openstack-uicore-foundation 4.1.41 → 4.1.43

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 (187) hide show
  1. package/lib/components/ajaxloader.js +184 -2
  2. package/lib/components/attendance-tracker.js +2066 -2
  3. package/lib/components/bulk-actions-selector.js +197 -2
  4. package/lib/components/circle-button.js +223 -2
  5. package/lib/components/clock.js +767 -2
  6. package/lib/components/exclusive-wrapper.js +151 -2
  7. package/lib/components/extra-questions.js +2011 -2
  8. package/lib/components/form-validation.js +190 -2
  9. package/lib/components/forms/rsvp-form.js +940 -2
  10. package/lib/components/forms/simple-form.js +774 -2
  11. package/lib/components/free-text-search.js +2154 -2
  12. package/lib/components/google-map.js +642 -2
  13. package/lib/components/index.js +13417 -2
  14. package/lib/components/inputs/access-levels-input.js +2381 -2
  15. package/lib/components/inputs/action-dropdown.js +219 -2
  16. package/lib/components/inputs/checkbox-list.js +339 -2
  17. package/lib/components/inputs/company-input.js +2416 -2
  18. package/lib/components/inputs/country-dropdown.js +2474 -2
  19. package/lib/components/inputs/country-input.js +2377 -2
  20. package/lib/components/inputs/datetimepicker.js +314 -2
  21. package/lib/components/inputs/dropdown.js +259 -2
  22. package/lib/components/inputs/editor-input.js +270 -2
  23. package/lib/components/inputs/event-input.js +2355 -2
  24. package/lib/components/inputs/free-multi-text-input.js +252 -2
  25. package/lib/components/inputs/group-input.js +2350 -2
  26. package/lib/components/inputs/grouped-dropdown.js +244 -2
  27. package/lib/components/inputs/language-input.js +2382 -2
  28. package/lib/components/inputs/member-input.js +2377 -2
  29. package/lib/components/inputs/operator-input.js +328 -2
  30. package/lib/components/inputs/organization-input.js +2400 -2
  31. package/lib/components/inputs/promocode-input.js +2385 -2
  32. package/lib/components/inputs/radio-list.js +297 -2
  33. package/lib/components/inputs/registration-company-input.js +2438 -2
  34. package/lib/components/inputs/speaker-input.js +2411 -2
  35. package/lib/components/inputs/sponsor-input.js +2359 -2
  36. package/lib/components/inputs/stepped-select.js +197 -2
  37. package/lib/components/inputs/summit-days-select.js +162 -2
  38. package/lib/components/inputs/summit-input.js +2357 -2
  39. package/lib/components/inputs/summit-venues-select.js +203 -2
  40. package/lib/components/inputs/tag-input.js +2427 -2
  41. package/lib/components/inputs/text-input.js +202 -2
  42. package/lib/components/inputs/textarea-input.js +174 -2
  43. package/lib/components/inputs/ticket-types-input.js +2415 -2
  44. package/lib/components/inputs/upload-input-v2.js +860 -2
  45. package/lib/components/inputs/upload-input.js +391 -2
  46. package/lib/components/progressive-img.js +296 -2
  47. package/lib/components/raw-html.js +125 -2
  48. package/lib/components/schedule-builder-constants.js +87 -2
  49. package/lib/components/schedule-builder-view.js +2188 -2
  50. package/lib/components/sections/panel.js +156 -2
  51. package/lib/components/simple-link-list.js +790 -2
  52. package/lib/components/sponsored-project-input.js +2356 -2
  53. package/lib/components/summit-dropdown.js +214 -2
  54. package/lib/components/table-editable.js +961 -2
  55. package/lib/components/table-selectable.js +552 -2
  56. package/lib/components/table-sortable.js +743 -2
  57. package/lib/components/table.js +510 -2
  58. package/lib/components/video-stream.js +226 -2
  59. package/lib/css/components/bulk-actions-selector.css +19 -2
  60. package/lib/css/components/circle-button.css +28 -1
  61. package/lib/css/components/extra-questions.css +35 -2
  62. package/lib/css/components/form-validation.css +29 -2
  63. package/lib/css/components/free-text-search.css +35 -2
  64. package/lib/css/components/index.css +1397 -3
  65. package/lib/css/components/inputs/action-dropdown.css +46 -2
  66. package/lib/css/components/inputs/datetimepicker.css +208 -2
  67. package/lib/css/components/inputs/grouped-dropdown.css +25 -2
  68. package/lib/css/components/inputs/stepped-select.css +12 -2
  69. package/lib/css/components/inputs/upload-input-v2.css +108 -2
  70. package/lib/css/components/inputs/upload-input.css +43 -2
  71. package/lib/css/components/progressive-img.css +18 -1
  72. package/lib/css/components/schedule-builder-view.css +249 -2
  73. package/lib/css/components/simple-link-list.css +195 -2
  74. package/lib/css/components/summit-dropdown.css +35 -2
  75. package/lib/css/components/table-editable.css +145 -2
  76. package/lib/css/components/table-selectable.css +147 -2
  77. package/lib/css/components/table-sortable.css +156 -2
  78. package/lib/css/components/table.css +147 -2
  79. package/lib/i18n.js +515 -2
  80. package/lib/models/index.js +238 -2
  81. package/lib/models/summit-event.js +210 -2
  82. package/lib/security/abstract-auth-callback-route.js +2192 -2
  83. package/lib/security/actions.js +1892 -2
  84. package/lib/security/constants.js +75 -2
  85. package/lib/security/methods.js +1892 -2
  86. package/lib/security/reducers.js +2035 -2
  87. package/lib/security/session-checker.js +2253 -2
  88. package/lib/utils/actions.js +1892 -2
  89. package/lib/utils/fragment-parser.js +207 -2
  90. package/lib/utils/methods.js +435 -2
  91. package/lib/utils/query-actions.js +2229 -2
  92. package/lib/utils/questions-set.js +681 -2
  93. package/lib/utils/reducers.js +1948 -2
  94. package/lib/utils/use-fit-text.js +178 -2
  95. package/package.json +1 -1
  96. package/lib/components/ajaxloader.js.map +0 -1
  97. package/lib/components/attendance-tracker.js.map +0 -1
  98. package/lib/components/bulk-actions-selector.js.map +0 -1
  99. package/lib/components/circle-button.js.map +0 -1
  100. package/lib/components/clock.js.map +0 -1
  101. package/lib/components/exclusive-wrapper.js.map +0 -1
  102. package/lib/components/extra-questions.js.map +0 -1
  103. package/lib/components/form-validation.js.map +0 -1
  104. package/lib/components/forms/rsvp-form.js.map +0 -1
  105. package/lib/components/forms/simple-form.js.map +0 -1
  106. package/lib/components/free-text-search.js.map +0 -1
  107. package/lib/components/google-map.js.map +0 -1
  108. package/lib/components/index.js.map +0 -1
  109. package/lib/components/inputs/access-levels-input.js.map +0 -1
  110. package/lib/components/inputs/action-dropdown.js.map +0 -1
  111. package/lib/components/inputs/checkbox-list.js.map +0 -1
  112. package/lib/components/inputs/company-input.js.map +0 -1
  113. package/lib/components/inputs/country-dropdown.js.map +0 -1
  114. package/lib/components/inputs/country-input.js.map +0 -1
  115. package/lib/components/inputs/datetimepicker.js.map +0 -1
  116. package/lib/components/inputs/dropdown.js.map +0 -1
  117. package/lib/components/inputs/editor-input.js.map +0 -1
  118. package/lib/components/inputs/event-input.js.map +0 -1
  119. package/lib/components/inputs/free-multi-text-input.js.map +0 -1
  120. package/lib/components/inputs/group-input.js.map +0 -1
  121. package/lib/components/inputs/grouped-dropdown.js.map +0 -1
  122. package/lib/components/inputs/language-input.js.map +0 -1
  123. package/lib/components/inputs/member-input.js.map +0 -1
  124. package/lib/components/inputs/operator-input.js.map +0 -1
  125. package/lib/components/inputs/organization-input.js.map +0 -1
  126. package/lib/components/inputs/promocode-input.js.map +0 -1
  127. package/lib/components/inputs/radio-list.js.map +0 -1
  128. package/lib/components/inputs/registration-company-input.js.map +0 -1
  129. package/lib/components/inputs/speaker-input.js.map +0 -1
  130. package/lib/components/inputs/sponsor-input.js.map +0 -1
  131. package/lib/components/inputs/stepped-select.js.map +0 -1
  132. package/lib/components/inputs/summit-days-select.js.map +0 -1
  133. package/lib/components/inputs/summit-input.js.map +0 -1
  134. package/lib/components/inputs/summit-venues-select.js.map +0 -1
  135. package/lib/components/inputs/tag-input.js.map +0 -1
  136. package/lib/components/inputs/text-input.js.map +0 -1
  137. package/lib/components/inputs/textarea-input.js.map +0 -1
  138. package/lib/components/inputs/ticket-types-input.js.map +0 -1
  139. package/lib/components/inputs/upload-input-v2.js.map +0 -1
  140. package/lib/components/inputs/upload-input.js.map +0 -1
  141. package/lib/components/progressive-img.js.map +0 -1
  142. package/lib/components/raw-html.js.map +0 -1
  143. package/lib/components/schedule-builder-constants.js.map +0 -1
  144. package/lib/components/schedule-builder-view.js.map +0 -1
  145. package/lib/components/sections/panel.js.map +0 -1
  146. package/lib/components/simple-link-list.js.map +0 -1
  147. package/lib/components/sponsored-project-input.js.map +0 -1
  148. package/lib/components/summit-dropdown.js.map +0 -1
  149. package/lib/components/table-editable.js.map +0 -1
  150. package/lib/components/table-selectable.js.map +0 -1
  151. package/lib/components/table-sortable.js.map +0 -1
  152. package/lib/components/table.js.map +0 -1
  153. package/lib/components/video-stream.js.map +0 -1
  154. package/lib/css/components/bulk-actions-selector.css.map +0 -1
  155. package/lib/css/components/extra-questions.css.map +0 -1
  156. package/lib/css/components/form-validation.css.map +0 -1
  157. package/lib/css/components/free-text-search.css.map +0 -1
  158. package/lib/css/components/index.css.map +0 -1
  159. package/lib/css/components/inputs/action-dropdown.css.map +0 -1
  160. package/lib/css/components/inputs/datetimepicker.css.map +0 -1
  161. package/lib/css/components/inputs/grouped-dropdown.css.map +0 -1
  162. package/lib/css/components/inputs/stepped-select.css.map +0 -1
  163. package/lib/css/components/inputs/upload-input-v2.css.map +0 -1
  164. package/lib/css/components/inputs/upload-input.css.map +0 -1
  165. package/lib/css/components/schedule-builder-view.css.map +0 -1
  166. package/lib/css/components/simple-link-list.css.map +0 -1
  167. package/lib/css/components/summit-dropdown.css.map +0 -1
  168. package/lib/css/components/table-editable.css.map +0 -1
  169. package/lib/css/components/table-selectable.css.map +0 -1
  170. package/lib/css/components/table-sortable.css.map +0 -1
  171. package/lib/css/components/table.css.map +0 -1
  172. package/lib/i18n.js.map +0 -1
  173. package/lib/models/index.js.map +0 -1
  174. package/lib/models/summit-event.js.map +0 -1
  175. package/lib/security/abstract-auth-callback-route.js.map +0 -1
  176. package/lib/security/actions.js.map +0 -1
  177. package/lib/security/constants.js.map +0 -1
  178. package/lib/security/methods.js.map +0 -1
  179. package/lib/security/reducers.js.map +0 -1
  180. package/lib/security/session-checker.js.map +0 -1
  181. package/lib/utils/actions.js.map +0 -1
  182. package/lib/utils/fragment-parser.js.map +0 -1
  183. package/lib/utils/methods.js.map +0 -1
  184. package/lib/utils/query-actions.js.map +0 -1
  185. package/lib/utils/questions-set.js.map +0 -1
  186. package/lib/utils/reducers.js.map +0 -1
  187. package/lib/utils/use-fit-text.js.map +0 -1
@@ -1,2 +1,238 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],e):"object"==typeof exports?exports["openstack-uicore-foundation"]=e():t["openstack-uicore-foundation"]=e()}(this,(()=>(()=>{"use strict";var t={8575:(t,e,i)=>{i.d(e,{default:()=>r});var n=i(8362),s=i.n(n);const r=class{constructor(t,e=null){this._event=t,this._summit=e}set summit(t){this._summit=t}get summit(){return this._summit}getId(){return this._event.id}isPublished(){return this._event.hasOwnProperty("is_published")&&this._event.is_published}getMinutesDuration(t){if(this._event.hasOwnProperty("start_date")&&this._event.hasOwnProperty("end_date")&&null!=this._event.start_date&&null!=this._event.end_date){let t=s()(1e3*this._event.start_date).tz(this._summit.time_zone.name);return s()(1e3*this._event.end_date).tz(this._summit.time_zone.name).diff(t,"minutes")}return this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):t}canMove(t,e,i,n){let r=this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):n;this.isPublished()&&(r=this.getMinutesDuration());let m=s().tz(e+" "+i.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name),a=s().tz(e+" "+i.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name);a=a.add(r,"minutes");for(let e of t.filter((t=>t.id!==this.getId()))){let t=s()(1e3*e.start_date).tz(this._summit.time_zone.name),i=s()(1e3*e.end_date).tz(this._summit.time_zone.name);if(t.isBefore(a)&&i.isAfter(m))return!1}return!0}calculateNewDates(t,e,i){return i=this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):i,[s().tz(t+" "+e.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name),s().tz(t+" "+e.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name).add(i,"minutes")]}isValidEndDate(t){if(null==t)return!0;let e=s().tz(1e3*this._event.start_date,this._summit.time_zone.name);t=s().tz(1e3*t,this._summit.time_zone.name);let i=s().tz(1e3*this._summit.end_date,this._summit.time_zone.name);return t.isAfter(e)&&(t.isBefore(i)||t.isSame(i))}isValidStartDate(t){if(null==t)return!0;t=s().tz(1e3*t,this._summit.time_zone.name);let e=s().tz(1e3*this._event.end_date,this._summit.time_zone.name),i=s().tz(1e3*this._summit.start_date,this._summit.time_zone.name);return s().isMoment(t)&&t.isAfter(i)&&t.isBefore(e)}isValidTitle(t){return""!==t.trim()}isValid(){return this.isValidTitle(this._event.title)&&this.isValidStartDate(this._event.start_date)&&this.isValidEndDate(this._event.end_date)}}},8362:t=>{t.exports=require("moment-timezone")}},e={};function i(n){var s=e[n];if(void 0!==s)return s.exports;var r=e[n]={exports:{}};return t[n](r,r.exports,i),r.exports}(()=>{i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e}})(),(()=>{i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})}})(),(()=>{i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)})(),(()=>{i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}})();var n={};return(()=>{i.r(n),i.d(n,{SummitEvent:()=>t.default});require("react");var t=i(8575)})(),n})()));
2
- //# sourceMappingURL=index.js.map
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define("openstack-uicore-foundation", [], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["openstack-uicore-foundation"] = factory();
8
+ else
9
+ root["openstack-uicore-foundation"] = factory();
10
+ })(this, () => {
11
+ return /******/ (() => { // webpackBootstrap
12
+ /******/ "use strict";
13
+ /******/ var __webpack_modules__ = ({
14
+
15
+ /***/ "./src/models/summit-event.js":
16
+ /*!************************************!*\
17
+ !*** ./src/models/summit-event.js ***!
18
+ \************************************/
19
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
20
+
21
+ __webpack_require__.r(__webpack_exports__);
22
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
23
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
24
+ /* harmony export */ });
25
+ /* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ "moment-timezone");
26
+ /* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);
27
+ /**
28
+ * Copyright 2017 OpenStack Foundation
29
+ * Licensed under the Apache License, Version 2.0 (the "License");
30
+ * you may not use this file except in compliance with the License.
31
+ * You may obtain a copy of the License at
32
+ * http://www.apache.org/licenses/LICENSE-2.0
33
+ * Unless required by applicable law or agreed to in writing, software
34
+ * distributed under the License is distributed on an "AS IS" BASIS,
35
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
36
+ * See the License for the specific language governing permissions and
37
+ * limitations under the License.
38
+ **/
39
+
40
+
41
+ class SummitEvent {
42
+ constructor(event, summit = null) {
43
+ this._event = event;
44
+ this._summit = summit;
45
+ }
46
+
47
+ set summit(summit) {
48
+ this._summit = summit;
49
+ }
50
+
51
+ get summit() {
52
+ return this._summit;
53
+ }
54
+
55
+ getId() {
56
+ return this._event.id;
57
+ }
58
+
59
+ isPublished() {
60
+ return this._event.hasOwnProperty('is_published') && this._event.is_published;
61
+ }
62
+
63
+ getMinutesDuration(slotSize) {
64
+ if (this._event.hasOwnProperty('start_date') && this._event.hasOwnProperty('end_date') && this._event.start_date != null && this._event.end_date != null) {
65
+ let eventStartDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(this._event.start_date * 1000).tz(this._summit.time_zone.name);
66
+ let eventEndDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(this._event.end_date * 1000).tz(this._summit.time_zone.name);
67
+ return eventEndDateTime.diff(eventStartDateTime, 'minutes');
68
+ } // default
69
+
70
+
71
+ return this._event.hasOwnProperty('duration') && this._event.duration > 0 ? parseInt(this._event.duration / 60) : slotSize;
72
+ }
73
+
74
+ canMove(siblings, day, startTime, interval) {
75
+ let duration = this._event.hasOwnProperty('duration') && this._event.duration > 0 ? parseInt(this._event.duration / 60) : interval; // check if published to get real duration ...
76
+
77
+ if (this.isPublished()) duration = this.getMinutesDuration();
78
+ let startDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name);
79
+ let endDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name);
80
+ endDateTime = endDateTime.add(duration, 'minutes'); // check siblings overlap
81
+
82
+ for (let auxEvent of siblings.filter(item => item.id !== this.getId())) {
83
+ let auxEventStartDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(auxEvent.start_date * 1000).tz(this._summit.time_zone.name);
84
+ let auxEventEndDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(auxEvent.end_date * 1000).tz(this._summit.time_zone.name); // if time segments overlap
85
+
86
+ if (auxEventStartDateTime.isBefore(endDateTime) && auxEventEndDateTime.isAfter(startDateTime)) return false;
87
+ }
88
+
89
+ return true;
90
+ }
91
+
92
+ calculateNewDates(day, startTime, minutes) {
93
+ minutes = this._event.hasOwnProperty('duration') && this._event.duration > 0 ? parseInt(this._event.duration / 60) : minutes;
94
+ let newStarDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name);
95
+ let newEndDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name).add(minutes, 'minutes');
96
+ return [newStarDateTime, newEndDateTime];
97
+ }
98
+
99
+ isValidEndDate(endDate) {
100
+ if (endDate == null) return true;
101
+ let startDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._event.start_date * 1000, this._summit.time_zone.name);
102
+ endDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(endDate * 1000, this._summit.time_zone.name);
103
+ let summitEndDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._summit.end_date * 1000, this._summit.time_zone.name);
104
+ return endDate.isAfter(startDate) && (endDate.isBefore(summitEndDate) || endDate.isSame(summitEndDate));
105
+ }
106
+
107
+ isValidStartDate(startDate) {
108
+ if (startDate == null) return true;
109
+ startDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(startDate * 1000, this._summit.time_zone.name);
110
+ let endDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._event.end_date * 1000, this._summit.time_zone.name);
111
+ let summitStartDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._summit.start_date * 1000, this._summit.time_zone.name);
112
+ return moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().isMoment(startDate) && startDate.isAfter(summitStartDate) && startDate.isBefore(endDate);
113
+ }
114
+
115
+ isValidTitle(title) {
116
+ return title.trim() !== '';
117
+ }
118
+
119
+ isValid() {
120
+ return this.isValidTitle(this._event.title) && this.isValidStartDate(this._event.start_date) && this.isValidEndDate(this._event.end_date);
121
+ }
122
+
123
+ }
124
+
125
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SummitEvent);
126
+
127
+ /***/ }),
128
+
129
+ /***/ "moment-timezone":
130
+ /*!**********************************!*\
131
+ !*** external "moment-timezone" ***!
132
+ \**********************************/
133
+ /***/ ((module) => {
134
+
135
+ module.exports = require("moment-timezone");
136
+
137
+ /***/ }),
138
+
139
+ /***/ "react":
140
+ /*!************************!*\
141
+ !*** external "react" ***!
142
+ \************************/
143
+ /***/ ((module) => {
144
+
145
+ module.exports = require("react");
146
+
147
+ /***/ })
148
+
149
+ /******/ });
150
+ /************************************************************************/
151
+ /******/ // The module cache
152
+ /******/ var __webpack_module_cache__ = {};
153
+ /******/
154
+ /******/ // The require function
155
+ /******/ function __webpack_require__(moduleId) {
156
+ /******/ // Check if module is in cache
157
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
158
+ /******/ if (cachedModule !== undefined) {
159
+ /******/ return cachedModule.exports;
160
+ /******/ }
161
+ /******/ // Create a new module (and put it into the cache)
162
+ /******/ var module = __webpack_module_cache__[moduleId] = {
163
+ /******/ // no module.id needed
164
+ /******/ // no module.loaded needed
165
+ /******/ exports: {}
166
+ /******/ };
167
+ /******/
168
+ /******/ // Execute the module function
169
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
170
+ /******/
171
+ /******/ // Return the exports of the module
172
+ /******/ return module.exports;
173
+ /******/ }
174
+ /******/
175
+ /************************************************************************/
176
+ /******/ /* webpack/runtime/compat get default export */
177
+ /******/ (() => {
178
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
179
+ /******/ __webpack_require__.n = (module) => {
180
+ /******/ var getter = module && module.__esModule ?
181
+ /******/ () => (module['default']) :
182
+ /******/ () => (module);
183
+ /******/ __webpack_require__.d(getter, { a: getter });
184
+ /******/ return getter;
185
+ /******/ };
186
+ /******/ })();
187
+ /******/
188
+ /******/ /* webpack/runtime/define property getters */
189
+ /******/ (() => {
190
+ /******/ // define getter functions for harmony exports
191
+ /******/ __webpack_require__.d = (exports, definition) => {
192
+ /******/ for(var key in definition) {
193
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
194
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
195
+ /******/ }
196
+ /******/ }
197
+ /******/ };
198
+ /******/ })();
199
+ /******/
200
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
201
+ /******/ (() => {
202
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
203
+ /******/ })();
204
+ /******/
205
+ /******/ /* webpack/runtime/make namespace object */
206
+ /******/ (() => {
207
+ /******/ // define __esModule on exports
208
+ /******/ __webpack_require__.r = (exports) => {
209
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
210
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
211
+ /******/ }
212
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
213
+ /******/ };
214
+ /******/ })();
215
+ /******/
216
+ /************************************************************************/
217
+ var __webpack_exports__ = {};
218
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
219
+ (() => {
220
+ /*!*****************************!*\
221
+ !*** ./src/models/index.js ***!
222
+ \*****************************/
223
+ __webpack_require__.r(__webpack_exports__);
224
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
225
+ /* harmony export */ "SummitEvent": () => (/* reexport safe */ _summit_event_js__WEBPACK_IMPORTED_MODULE_1__["default"])
226
+ /* harmony export */ });
227
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
228
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
229
+ /* harmony import */ var _summit_event_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./summit-event.js */ "./src/models/summit-event.js");
230
+
231
+
232
+ })();
233
+
234
+ /******/ return __webpack_exports__;
235
+ /******/ })()
236
+ ;
237
+ });
238
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWxzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCxPOzs7Ozs7Ozs7Ozs7Ozs7O0FDVkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7O0FBRUEsTUFBTUMsV0FBTixDQUFrQjtFQUVkQyxXQUFXLENBQUNDLEtBQUQsRUFBUUMsTUFBTSxHQUFHLElBQWpCLEVBQXNCO0lBQzdCLEtBQUtDLE1BQUwsR0FBZUYsS0FBZjtJQUNBLEtBQUtHLE9BQUwsR0FBZUYsTUFBZjtFQUNIOztFQUVTLElBQU5BLE1BQU0sQ0FBQ0EsTUFBRCxFQUFRO0lBQ2QsS0FBS0UsT0FBTCxHQUFlRixNQUFmO0VBQ0g7O0VBRVMsSUFBTkEsTUFBTSxHQUFFO0lBQ1IsT0FBTyxLQUFLRSxPQUFaO0VBQ0g7O0VBRURDLEtBQUssR0FBRTtJQUNILE9BQU8sS0FBS0YsTUFBTCxDQUFZRyxFQUFuQjtFQUNIOztFQUVEQyxXQUFXLEdBQUU7SUFDVCxPQUFPLEtBQUtKLE1BQUwsQ0FBWUssY0FBWixDQUEyQixjQUEzQixLQUE4QyxLQUFLTCxNQUFMLENBQVlNLFlBQWpFO0VBQ0g7O0VBRURDLGtCQUFrQixDQUFDQyxRQUFELEVBQVU7SUFFeEIsSUFBRyxLQUFLUixNQUFMLENBQVlLLGNBQVosQ0FBMkIsWUFBM0IsS0FBNEMsS0FBS0wsTUFBTCxDQUFZSyxjQUFaLENBQTJCLFVBQTNCLENBQTVDLElBQXVGLEtBQUtMLE1BQUwsQ0FBWVMsVUFBWixJQUEwQixJQUFqSCxJQUF5SCxLQUFLVCxNQUFMLENBQVlVLFFBQVosSUFBd0IsSUFBcEosRUFBMko7TUFDdkosSUFBSUMsa0JBQWtCLEdBQUdoQixzREFBTSxDQUFDLEtBQUtLLE1BQUwsQ0FBWVMsVUFBWixHQUF5QixJQUExQixDQUFOLENBQXNDRyxFQUF0QyxDQUF5QyxLQUFLWCxPQUFMLENBQWFZLFNBQWIsQ0FBdUJDLElBQWhFLENBQXpCO01BQ0EsSUFBSUMsZ0JBQWdCLEdBQUtwQixzREFBTSxDQUFDLEtBQUtLLE1BQUwsQ0FBWVUsUUFBWixHQUF1QixJQUF4QixDQUFOLENBQW9DRSxFQUFwQyxDQUF1QyxLQUFLWCxPQUFMLENBQWFZLFNBQWIsQ0FBdUJDLElBQTlELENBQXpCO01BQ0EsT0FBT0MsZ0JBQWdCLENBQUNDLElBQWpCLENBQXNCTCxrQkFBdEIsRUFBMEMsU0FBMUMsQ0FBUDtJQUNILENBTnVCLENBT3hCOzs7SUFFQSxPQUFPLEtBQUtYLE1BQUwsQ0FBWUssY0FBWixDQUEyQixVQUEzQixLQUEwQyxLQUFLTCxNQUFMLENBQVlpQixRQUFaLEdBQXVCLENBQWpFLEdBQXNFQyxRQUFRLENBQUUsS0FBS2xCLE1BQUwsQ0FBWWlCLFFBQVosR0FBdUIsRUFBekIsQ0FBOUUsR0FBOEdULFFBQXJIO0VBQ0g7O0VBRURXLE9BQU8sQ0FBQ0MsUUFBRCxFQUFXQyxHQUFYLEVBQWdCQyxTQUFoQixFQUEyQkMsUUFBM0IsRUFBb0M7SUFFdkMsSUFBSU4sUUFBUSxHQUFTLEtBQUtqQixNQUFMLENBQVlLLGNBQVosQ0FBMkIsVUFBM0IsS0FBMEMsS0FBS0wsTUFBTCxDQUFZaUIsUUFBWixHQUF1QixDQUFqRSxHQUFzRUMsUUFBUSxDQUFFLEtBQUtsQixNQUFMLENBQVlpQixRQUFaLEdBQXVCLEVBQXpCLENBQTlFLEdBQThHTSxRQUFuSSxDQUZ1QyxDQUd2Qzs7SUFDQSxJQUFHLEtBQUtuQixXQUFMLEVBQUgsRUFDSWEsUUFBUSxHQUFHLEtBQUtWLGtCQUFMLEVBQVg7SUFFSixJQUFJaUIsYUFBYSxHQUFLN0IseURBQUEsQ0FBVTBCLEdBQUcsR0FBQyxHQUFKLEdBQVNDLFNBQVMsQ0FBQ0csTUFBVixDQUFpQixPQUFqQixDQUFuQixFQUE4QyxrQkFBOUMsRUFBa0UsS0FBS3hCLE9BQUwsQ0FBYVksU0FBYixDQUF1QkMsSUFBekYsQ0FBdEI7SUFDQSxJQUFJWSxXQUFXLEdBQU8vQix5REFBQSxDQUFVMEIsR0FBRyxHQUFDLEdBQUosR0FBU0MsU0FBUyxDQUFDRyxNQUFWLENBQWlCLE9BQWpCLENBQW5CLEVBQThDLGtCQUE5QyxFQUFrRSxLQUFLeEIsT0FBTCxDQUFhWSxTQUFiLENBQXVCQyxJQUF6RixDQUF0QjtJQUNBWSxXQUFXLEdBQVdBLFdBQVcsQ0FBQ0MsR0FBWixDQUFnQlYsUUFBaEIsRUFBMEIsU0FBMUIsQ0FBdEIsQ0FUdUMsQ0FXdkM7O0lBQ0EsS0FBSyxJQUFJVyxRQUFULElBQXFCUixRQUFRLENBQUNTLE1BQVQsQ0FBZ0JDLElBQUksSUFBSUEsSUFBSSxDQUFDM0IsRUFBTCxLQUFZLEtBQUtELEtBQUwsRUFBcEMsQ0FBckIsRUFBd0U7TUFDcEUsSUFBSTZCLHFCQUFxQixHQUFHcEMsc0RBQU0sQ0FBQ2lDLFFBQVEsQ0FBQ25CLFVBQVQsR0FBc0IsSUFBdkIsQ0FBTixDQUFtQ0csRUFBbkMsQ0FBc0MsS0FBS1gsT0FBTCxDQUFhWSxTQUFiLENBQXVCQyxJQUE3RCxDQUE1QjtNQUNBLElBQUlrQixtQkFBbUIsR0FBS3JDLHNEQUFNLENBQUNpQyxRQUFRLENBQUNsQixRQUFULEdBQW9CLElBQXJCLENBQU4sQ0FBaUNFLEVBQWpDLENBQW9DLEtBQUtYLE9BQUwsQ0FBYVksU0FBYixDQUF1QkMsSUFBM0QsQ0FBNUIsQ0FGb0UsQ0FJcEU7O01BQ0EsSUFBR2lCLHFCQUFxQixDQUFDRSxRQUF0QixDQUErQlAsV0FBL0IsS0FBK0NNLG1CQUFtQixDQUFDRSxPQUFwQixDQUE0QlYsYUFBNUIsQ0FBbEQsRUFDSSxPQUFPLEtBQVA7SUFDUDs7SUFFRCxPQUFPLElBQVA7RUFDSDs7RUFFRFcsaUJBQWlCLENBQUNkLEdBQUQsRUFBTUMsU0FBTixFQUFpQmMsT0FBakIsRUFBeUI7SUFFdENBLE9BQU8sR0FBRyxLQUFLcEMsTUFBTCxDQUFZSyxjQUFaLENBQTJCLFVBQTNCLEtBQTBDLEtBQUtMLE1BQUwsQ0FBWWlCLFFBQVosR0FBdUIsQ0FBakUsR0FDTkMsUUFBUSxDQUFFLEtBQUtsQixNQUFMLENBQVlpQixRQUFaLEdBQXVCLEVBQXpCLENBREYsR0FDa0NtQixPQUQ1QztJQUdBLElBQUlDLGVBQWUsR0FBRzFDLHlEQUFBLENBQVUwQixHQUFHLEdBQUMsR0FBSixHQUFRQyxTQUFTLENBQUNHLE1BQVYsQ0FBaUIsT0FBakIsQ0FBbEIsRUFBNkMsa0JBQTdDLEVBQWlFLEtBQUt4QixPQUFMLENBQWFZLFNBQWIsQ0FBdUJDLElBQXhGLENBQXRCO0lBQ0EsSUFBSXdCLGNBQWMsR0FBSTNDLHlEQUFBLENBQVUwQixHQUFHLEdBQUMsR0FBSixHQUFRQyxTQUFTLENBQUNHLE1BQVYsQ0FBaUIsT0FBakIsQ0FBbEIsRUFBNkMsa0JBQTdDLEVBQWlFLEtBQUt4QixPQUFMLENBQWFZLFNBQWIsQ0FBdUJDLElBQXhGLEVBQThGYSxHQUE5RixDQUFrR1MsT0FBbEcsRUFBMkcsU0FBM0csQ0FBdEI7SUFDQSxPQUFPLENBQUNDLGVBQUQsRUFBa0JDLGNBQWxCLENBQVA7RUFDSDs7RUFFREMsY0FBYyxDQUFDQyxPQUFELEVBQVM7SUFDbkIsSUFBR0EsT0FBTyxJQUFJLElBQWQsRUFBb0IsT0FBTyxJQUFQO0lBQ3BCLElBQUlDLFNBQVMsR0FBUzlDLHlEQUFBLENBQVUsS0FBS0ssTUFBTCxDQUFZUyxVQUFaLEdBQXlCLElBQW5DLEVBQXlDLEtBQUtSLE9BQUwsQ0FBYVksU0FBYixDQUF1QkMsSUFBaEUsQ0FBdEI7SUFDQTBCLE9BQU8sR0FBZTdDLHlEQUFBLENBQVU2QyxPQUFPLEdBQUcsSUFBcEIsRUFBMEIsS0FBS3ZDLE9BQUwsQ0FBYVksU0FBYixDQUF1QkMsSUFBakQsQ0FBdEI7SUFDQSxJQUFJNEIsYUFBYSxHQUFLL0MseURBQUEsQ0FBVSxLQUFLTSxPQUFMLENBQWFTLFFBQWIsR0FBd0IsSUFBbEMsRUFBd0MsS0FBS1QsT0FBTCxDQUFhWSxTQUFiLENBQXVCQyxJQUEvRCxDQUF0QjtJQUNBLE9BQU8wQixPQUFPLENBQUNOLE9BQVIsQ0FBZ0JPLFNBQWhCLE1BQStCRCxPQUFPLENBQUNQLFFBQVIsQ0FBaUJTLGFBQWpCLEtBQW1DRixPQUFPLENBQUNHLE1BQVIsQ0FBZUQsYUFBZixDQUFsRSxDQUFQO0VBQ0g7O0VBRURFLGdCQUFnQixDQUFDSCxTQUFELEVBQVc7SUFDdkIsSUFBR0EsU0FBUyxJQUFJLElBQWhCLEVBQXNCLE9BQU8sSUFBUDtJQUN0QkEsU0FBUyxHQUFhOUMseURBQUEsQ0FBVThDLFNBQVMsR0FBRSxJQUFyQixFQUEyQixLQUFLeEMsT0FBTCxDQUFhWSxTQUFiLENBQXVCQyxJQUFsRCxDQUF0QjtJQUNBLElBQUkwQixPQUFPLEdBQVc3Qyx5REFBQSxDQUFVLEtBQUtLLE1BQUwsQ0FBWVUsUUFBWixHQUF1QixJQUFqQyxFQUF1QyxLQUFLVCxPQUFMLENBQWFZLFNBQWIsQ0FBdUJDLElBQTlELENBQXRCO0lBQ0EsSUFBSStCLGVBQWUsR0FBR2xELHlEQUFBLENBQVUsS0FBS00sT0FBTCxDQUFhUSxVQUFiLEdBQTBCLElBQXBDLEVBQTBDLEtBQUtSLE9BQUwsQ0FBYVksU0FBYixDQUF1QkMsSUFBakUsQ0FBdEI7SUFDQSxPQUFPbkIsK0RBQUEsQ0FBZ0I4QyxTQUFoQixLQUE4QkEsU0FBUyxDQUFDUCxPQUFWLENBQWtCVyxlQUFsQixDQUE5QixJQUFvRUosU0FBUyxDQUFDUixRQUFWLENBQW1CTyxPQUFuQixDQUEzRTtFQUNIOztFQUVETyxZQUFZLENBQUNDLEtBQUQsRUFBTztJQUNmLE9BQU9BLEtBQUssQ0FBQ0MsSUFBTixPQUFpQixFQUF4QjtFQUNIOztFQUVEQyxPQUFPLEdBQUU7SUFDTCxPQUFPLEtBQUtILFlBQUwsQ0FBa0IsS0FBSy9DLE1BQUwsQ0FBWWdELEtBQTlCLEtBQ0EsS0FBS0osZ0JBQUwsQ0FBc0IsS0FBSzVDLE1BQUwsQ0FBWVMsVUFBbEMsQ0FEQSxJQUVBLEtBQUs4QixjQUFMLENBQW9CLEtBQUt2QyxNQUFMLENBQVlVLFFBQWhDLENBRlA7RUFHSDs7QUE3RmE7O0FBaUdsQixpRUFBZWQsV0FBZjs7Ozs7Ozs7OztBQ2hIQTs7Ozs7Ozs7OztBQ0FBOzs7Ozs7VUNBQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBOztVQUVBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBOzs7OztXQ3RCQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EsaUNBQWlDLFdBQVc7V0FDNUM7V0FDQTs7Ozs7V0NQQTtXQUNBO1dBQ0E7V0FDQTtXQUNBLHlDQUF5Qyx3Q0FBd0M7V0FDakY7V0FDQTtXQUNBOzs7OztXQ1BBOzs7OztXQ0FBO1dBQ0E7V0FDQTtXQUNBLHVEQUF1RCxpQkFBaUI7V0FDeEU7V0FDQSxnREFBZ0QsYUFBYTtXQUM3RDs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNOQSIsInNvdXJjZXMiOlsid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uLy4vc3JjL21vZGVscy9zdW1taXQtZXZlbnQuanMiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL2V4dGVybmFsIGNvbW1vbmpzIFwibW9tZW50LXRpbWV6b25lXCIiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uLy4vc3JjL21vZGVscy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gd2VicGFja1VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24ocm9vdCwgZmFjdG9yeSkge1xuXHRpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcpXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KCk7XG5cdGVsc2UgaWYodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKVxuXHRcdGRlZmluZShcIm9wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvblwiLCBbXSwgZmFjdG9yeSk7XG5cdGVsc2UgaWYodHlwZW9mIGV4cG9ydHMgPT09ICdvYmplY3QnKVxuXHRcdGV4cG9ydHNbXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb25cIl0gPSBmYWN0b3J5KCk7XG5cdGVsc2Vcblx0XHRyb290W1wib3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uXCJdID0gZmFjdG9yeSgpO1xufSkodGhpcywgKCkgPT4ge1xucmV0dXJuICIsIi8qKlxuICogQ29weXJpZ2h0IDIwMTcgT3BlblN0YWNrIEZvdW5kYXRpb25cbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqKi9cblxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQtdGltZXpvbmUnXG5cbmNsYXNzIFN1bW1pdEV2ZW50IHtcblxuICAgIGNvbnN0cnVjdG9yKGV2ZW50LCBzdW1taXQgPSBudWxsKXtcbiAgICAgICAgdGhpcy5fZXZlbnQgID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuX3N1bW1pdCA9IHN1bW1pdDtcbiAgICB9XG5cbiAgICBzZXQgc3VtbWl0KHN1bW1pdCl7XG4gICAgICAgIHRoaXMuX3N1bW1pdCA9IHN1bW1pdDtcbiAgICB9XG5cbiAgICBnZXQgc3VtbWl0KCl7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdW1taXQ7XG4gICAgfVxuXG4gICAgZ2V0SWQoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50LmlkO1xuICAgIH1cblxuICAgIGlzUHVibGlzaGVkKCl7XG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudC5oYXNPd25Qcm9wZXJ0eSgnaXNfcHVibGlzaGVkJykgJiYgdGhpcy5fZXZlbnQuaXNfcHVibGlzaGVkO1xuICAgIH1cblxuICAgIGdldE1pbnV0ZXNEdXJhdGlvbihzbG90U2l6ZSl7XG5cbiAgICAgICAgaWYodGhpcy5fZXZlbnQuaGFzT3duUHJvcGVydHkoJ3N0YXJ0X2RhdGUnKSAmJiB0aGlzLl9ldmVudC5oYXNPd25Qcm9wZXJ0eSgnZW5kX2RhdGUnKSAgJiYgdGhpcy5fZXZlbnQuc3RhcnRfZGF0ZSAhPSBudWxsICYmIHRoaXMuX2V2ZW50LmVuZF9kYXRlICE9IG51bGwgKSB7XG4gICAgICAgICAgICBsZXQgZXZlbnRTdGFydERhdGVUaW1lID0gbW9tZW50KHRoaXMuX2V2ZW50LnN0YXJ0X2RhdGUgKiAxMDAwKS50eih0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuICAgICAgICAgICAgbGV0IGV2ZW50RW5kRGF0ZVRpbWUgICA9IG1vbWVudCh0aGlzLl9ldmVudC5lbmRfZGF0ZSAqIDEwMDApLnR6KHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gZXZlbnRFbmREYXRlVGltZS5kaWZmKGV2ZW50U3RhcnREYXRlVGltZSwgJ21pbnV0ZXMnKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBkZWZhdWx0XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2V2ZW50Lmhhc093blByb3BlcnR5KCdkdXJhdGlvbicpICYmIHRoaXMuX2V2ZW50LmR1cmF0aW9uID4gMCA/ICBwYXJzZUludCggdGhpcy5fZXZlbnQuZHVyYXRpb24gLyA2MCApIDogc2xvdFNpemU7XG4gICAgfVxuXG4gICAgY2FuTW92ZShzaWJsaW5ncywgZGF5LCBzdGFydFRpbWUsIGludGVydmFsKXtcblxuICAgICAgICBsZXQgZHVyYXRpb24gICAgICAgPSB0aGlzLl9ldmVudC5oYXNPd25Qcm9wZXJ0eSgnZHVyYXRpb24nKSAmJiB0aGlzLl9ldmVudC5kdXJhdGlvbiA+IDAgPyAgcGFyc2VJbnQoIHRoaXMuX2V2ZW50LmR1cmF0aW9uIC8gNjAgKSA6IGludGVydmFsO1xuICAgICAgICAvLyBjaGVjayBpZiBwdWJsaXNoZWQgdG8gZ2V0IHJlYWwgZHVyYXRpb24gLi4uXG4gICAgICAgIGlmKHRoaXMuaXNQdWJsaXNoZWQoKSlcbiAgICAgICAgICAgIGR1cmF0aW9uID0gdGhpcy5nZXRNaW51dGVzRHVyYXRpb24oKTtcblxuICAgICAgICBsZXQgc3RhcnREYXRlVGltZSAgID0gbW9tZW50LnR6KGRheSsnICcrIHN0YXJ0VGltZS5mb3JtYXQoJ0hIOm1tJyksICdZWVlZLU1NLUREIEhIOm1tJywgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgbGV0IGVuZERhdGVUaW1lICAgICA9IG1vbWVudC50eihkYXkrJyAnKyBzdGFydFRpbWUuZm9ybWF0KCdISDptbScpLCAnWVlZWS1NTS1ERCBISDptbScsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgIGVuZERhdGVUaW1lICAgICAgICAgPSBlbmREYXRlVGltZS5hZGQoZHVyYXRpb24sICdtaW51dGVzJyk7XG5cbiAgICAgICAgLy8gY2hlY2sgc2libGluZ3Mgb3ZlcmxhcFxuICAgICAgICBmb3IgKGxldCBhdXhFdmVudCBvZiBzaWJsaW5ncy5maWx0ZXIoaXRlbSA9PiBpdGVtLmlkICE9PSB0aGlzLmdldElkKCkpKSB7XG4gICAgICAgICAgICBsZXQgYXV4RXZlbnRTdGFydERhdGVUaW1lID0gbW9tZW50KGF1eEV2ZW50LnN0YXJ0X2RhdGUgKiAxMDAwKS50eih0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuICAgICAgICAgICAgbGV0IGF1eEV2ZW50RW5kRGF0ZVRpbWUgICA9IG1vbWVudChhdXhFdmVudC5lbmRfZGF0ZSAqIDEwMDApLnR6KHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG5cbiAgICAgICAgICAgIC8vIGlmIHRpbWUgc2VnbWVudHMgb3ZlcmxhcFxuICAgICAgICAgICAgaWYoYXV4RXZlbnRTdGFydERhdGVUaW1lLmlzQmVmb3JlKGVuZERhdGVUaW1lKSAmJiBhdXhFdmVudEVuZERhdGVUaW1lLmlzQWZ0ZXIoc3RhcnREYXRlVGltZSkpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY2FsY3VsYXRlTmV3RGF0ZXMoZGF5LCBzdGFydFRpbWUsIG1pbnV0ZXMpe1xuXG4gICAgICAgIG1pbnV0ZXMgPSB0aGlzLl9ldmVudC5oYXNPd25Qcm9wZXJ0eSgnZHVyYXRpb24nKSAmJiB0aGlzLl9ldmVudC5kdXJhdGlvbiA+IDAgP1xuICAgICAgICAgICAgcGFyc2VJbnQoIHRoaXMuX2V2ZW50LmR1cmF0aW9uIC8gNjAgKSA6IG1pbnV0ZXM7XG5cbiAgICAgICAgbGV0IG5ld1N0YXJEYXRlVGltZSA9IG1vbWVudC50eihkYXkrJyAnK3N0YXJ0VGltZS5mb3JtYXQoJ0hIOm1tJyksICdZWVlZLU1NLUREIEhIOm1tJywgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgbGV0IG5ld0VuZERhdGVUaW1lICA9IG1vbWVudC50eihkYXkrJyAnK3N0YXJ0VGltZS5mb3JtYXQoJ0hIOm1tJyksICdZWVlZLU1NLUREIEhIOm1tJywgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKS5hZGQobWludXRlcywgJ21pbnV0ZXMnKTtcbiAgICAgICAgcmV0dXJuIFtuZXdTdGFyRGF0ZVRpbWUsIG5ld0VuZERhdGVUaW1lXTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkRW5kRGF0ZShlbmREYXRlKXtcbiAgICAgICAgaWYoZW5kRGF0ZSA9PSBudWxsKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgbGV0IHN0YXJ0RGF0ZSAgICAgICA9IG1vbWVudC50eih0aGlzLl9ldmVudC5zdGFydF9kYXRlICogMTAwMCwgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgZW5kRGF0ZSAgICAgICAgICAgICA9IG1vbWVudC50eihlbmREYXRlICogMTAwMCwgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgbGV0IHN1bW1pdEVuZERhdGUgICA9IG1vbWVudC50eih0aGlzLl9zdW1taXQuZW5kX2RhdGUgKiAxMDAwLCB0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuICAgICAgICByZXR1cm4gZW5kRGF0ZS5pc0FmdGVyKHN0YXJ0RGF0ZSkgJiYgKGVuZERhdGUuaXNCZWZvcmUoc3VtbWl0RW5kRGF0ZSkgfHwgZW5kRGF0ZS5pc1NhbWUoc3VtbWl0RW5kRGF0ZSkpO1xuICAgIH1cblxuICAgIGlzVmFsaWRTdGFydERhdGUoc3RhcnREYXRlKXtcbiAgICAgICAgaWYoc3RhcnREYXRlID09IG51bGwpIHJldHVybiB0cnVlO1xuICAgICAgICBzdGFydERhdGUgICAgICAgICAgID0gbW9tZW50LnR6KHN0YXJ0RGF0ZSogMTAwMCwgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgbGV0IGVuZERhdGUgICAgICAgICA9IG1vbWVudC50eih0aGlzLl9ldmVudC5lbmRfZGF0ZSAqIDEwMDAsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgIGxldCBzdW1taXRTdGFydERhdGUgPSBtb21lbnQudHoodGhpcy5fc3VtbWl0LnN0YXJ0X2RhdGUgKiAxMDAwLCB0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuICAgICAgICByZXR1cm4gbW9tZW50LmlzTW9tZW50KHN0YXJ0RGF0ZSkgJiYgc3RhcnREYXRlLmlzQWZ0ZXIoc3VtbWl0U3RhcnREYXRlKSAmJiBzdGFydERhdGUuaXNCZWZvcmUoZW5kRGF0ZSk7XG4gICAgfVxuXG4gICAgaXNWYWxpZFRpdGxlKHRpdGxlKXtcbiAgICAgICAgcmV0dXJuIHRpdGxlLnRyaW0oKSAhPT0gJyc7XG4gICAgfVxuXG4gICAgaXNWYWxpZCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkVGl0bGUodGhpcy5fZXZlbnQudGl0bGUpXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsaWRTdGFydERhdGUodGhpcy5fZXZlbnQuc3RhcnRfZGF0ZSlcbiAgICAgICAgICAgICYmIHRoaXMuaXNWYWxpZEVuZERhdGUodGhpcy5fZXZlbnQuZW5kX2RhdGUpO1xuICAgIH1cblxufVxuXG5leHBvcnQgZGVmYXVsdCBTdW1taXRFdmVudDtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIm1vbWVudC10aW1lem9uZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuZXhwb3J0IHtkZWZhdWx0IGFzIFN1bW1pdEV2ZW50fSBmcm9tICcuL3N1bW1pdC1ldmVudC5qcydcbiJdLCJuYW1lcyI6WyJtb21lbnQiLCJTdW1taXRFdmVudCIsImNvbnN0cnVjdG9yIiwiZXZlbnQiLCJzdW1taXQiLCJfZXZlbnQiLCJfc3VtbWl0IiwiZ2V0SWQiLCJpZCIsImlzUHVibGlzaGVkIiwiaGFzT3duUHJvcGVydHkiLCJpc19wdWJsaXNoZWQiLCJnZXRNaW51dGVzRHVyYXRpb24iLCJzbG90U2l6ZSIsInN0YXJ0X2RhdGUiLCJlbmRfZGF0ZSIsImV2ZW50U3RhcnREYXRlVGltZSIsInR6IiwidGltZV96b25lIiwibmFtZSIsImV2ZW50RW5kRGF0ZVRpbWUiLCJkaWZmIiwiZHVyYXRpb24iLCJwYXJzZUludCIsImNhbk1vdmUiLCJzaWJsaW5ncyIsImRheSIsInN0YXJ0VGltZSIsImludGVydmFsIiwic3RhcnREYXRlVGltZSIsImZvcm1hdCIsImVuZERhdGVUaW1lIiwiYWRkIiwiYXV4RXZlbnQiLCJmaWx0ZXIiLCJpdGVtIiwiYXV4RXZlbnRTdGFydERhdGVUaW1lIiwiYXV4RXZlbnRFbmREYXRlVGltZSIsImlzQmVmb3JlIiwiaXNBZnRlciIsImNhbGN1bGF0ZU5ld0RhdGVzIiwibWludXRlcyIsIm5ld1N0YXJEYXRlVGltZSIsIm5ld0VuZERhdGVUaW1lIiwiaXNWYWxpZEVuZERhdGUiLCJlbmREYXRlIiwic3RhcnREYXRlIiwic3VtbWl0RW5kRGF0ZSIsImlzU2FtZSIsImlzVmFsaWRTdGFydERhdGUiLCJzdW1taXRTdGFydERhdGUiLCJpc01vbWVudCIsImlzVmFsaWRUaXRsZSIsInRpdGxlIiwidHJpbSIsImlzVmFsaWQiLCJSZWFjdCIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9
@@ -1,2 +1,210 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("openstack-uicore-foundation",[],e):"object"==typeof exports?exports["openstack-uicore-foundation"]=e():t["openstack-uicore-foundation"]=e()}(this,(()=>(()=>{"use strict";var t={8362:t=>{t.exports=require("moment-timezone")}},e={};function i(n){var s=e[n];if(void 0!==s)return s.exports;var r=e[n]={exports:{}};return t[n](r,r.exports,i),r.exports}(()=>{i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e}})(),(()=>{i.d=(t,e)=>{for(var n in e)i.o(e,n)&&!i.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})}})(),(()=>{i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e)})(),(()=>{i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}})();var n={};return(()=>{i.r(n),i.d(n,{default:()=>s});var t=i(8362),e=i.n(t);const s=class{constructor(t,e=null){this._event=t,this._summit=e}set summit(t){this._summit=t}get summit(){return this._summit}getId(){return this._event.id}isPublished(){return this._event.hasOwnProperty("is_published")&&this._event.is_published}getMinutesDuration(t){if(this._event.hasOwnProperty("start_date")&&this._event.hasOwnProperty("end_date")&&null!=this._event.start_date&&null!=this._event.end_date){let t=e()(1e3*this._event.start_date).tz(this._summit.time_zone.name);return e()(1e3*this._event.end_date).tz(this._summit.time_zone.name).diff(t,"minutes")}return this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):t}canMove(t,i,n,s){let r=this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):s;this.isPublished()&&(r=this.getMinutesDuration());let m=e().tz(i+" "+n.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name),a=e().tz(i+" "+n.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name);a=a.add(r,"minutes");for(let i of t.filter((t=>t.id!==this.getId()))){let t=e()(1e3*i.start_date).tz(this._summit.time_zone.name),n=e()(1e3*i.end_date).tz(this._summit.time_zone.name);if(t.isBefore(a)&&n.isAfter(m))return!1}return!0}calculateNewDates(t,i,n){return n=this._event.hasOwnProperty("duration")&&this._event.duration>0?parseInt(this._event.duration/60):n,[e().tz(t+" "+i.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name),e().tz(t+" "+i.format("HH:mm"),"YYYY-MM-DD HH:mm",this._summit.time_zone.name).add(n,"minutes")]}isValidEndDate(t){if(null==t)return!0;let i=e().tz(1e3*this._event.start_date,this._summit.time_zone.name);t=e().tz(1e3*t,this._summit.time_zone.name);let n=e().tz(1e3*this._summit.end_date,this._summit.time_zone.name);return t.isAfter(i)&&(t.isBefore(n)||t.isSame(n))}isValidStartDate(t){if(null==t)return!0;t=e().tz(1e3*t,this._summit.time_zone.name);let i=e().tz(1e3*this._event.end_date,this._summit.time_zone.name),n=e().tz(1e3*this._summit.start_date,this._summit.time_zone.name);return e().isMoment(t)&&t.isAfter(n)&&t.isBefore(i)}isValidTitle(t){return""!==t.trim()}isValid(){return this.isValidTitle(this._event.title)&&this.isValidStartDate(this._event.start_date)&&this.isValidEndDate(this._event.end_date)}}})(),n})()));
2
- //# sourceMappingURL=summit-event.js.map
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if(typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if(typeof define === 'function' && define.amd)
5
+ define("openstack-uicore-foundation", [], factory);
6
+ else if(typeof exports === 'object')
7
+ exports["openstack-uicore-foundation"] = factory();
8
+ else
9
+ root["openstack-uicore-foundation"] = factory();
10
+ })(this, () => {
11
+ return /******/ (() => { // webpackBootstrap
12
+ /******/ "use strict";
13
+ /******/ var __webpack_modules__ = ({
14
+
15
+ /***/ "moment-timezone":
16
+ /*!**********************************!*\
17
+ !*** external "moment-timezone" ***!
18
+ \**********************************/
19
+ /***/ ((module) => {
20
+
21
+ module.exports = require("moment-timezone");
22
+
23
+ /***/ })
24
+
25
+ /******/ });
26
+ /************************************************************************/
27
+ /******/ // The module cache
28
+ /******/ var __webpack_module_cache__ = {};
29
+ /******/
30
+ /******/ // The require function
31
+ /******/ function __webpack_require__(moduleId) {
32
+ /******/ // Check if module is in cache
33
+ /******/ var cachedModule = __webpack_module_cache__[moduleId];
34
+ /******/ if (cachedModule !== undefined) {
35
+ /******/ return cachedModule.exports;
36
+ /******/ }
37
+ /******/ // Create a new module (and put it into the cache)
38
+ /******/ var module = __webpack_module_cache__[moduleId] = {
39
+ /******/ // no module.id needed
40
+ /******/ // no module.loaded needed
41
+ /******/ exports: {}
42
+ /******/ };
43
+ /******/
44
+ /******/ // Execute the module function
45
+ /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
46
+ /******/
47
+ /******/ // Return the exports of the module
48
+ /******/ return module.exports;
49
+ /******/ }
50
+ /******/
51
+ /************************************************************************/
52
+ /******/ /* webpack/runtime/compat get default export */
53
+ /******/ (() => {
54
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
55
+ /******/ __webpack_require__.n = (module) => {
56
+ /******/ var getter = module && module.__esModule ?
57
+ /******/ () => (module['default']) :
58
+ /******/ () => (module);
59
+ /******/ __webpack_require__.d(getter, { a: getter });
60
+ /******/ return getter;
61
+ /******/ };
62
+ /******/ })();
63
+ /******/
64
+ /******/ /* webpack/runtime/define property getters */
65
+ /******/ (() => {
66
+ /******/ // define getter functions for harmony exports
67
+ /******/ __webpack_require__.d = (exports, definition) => {
68
+ /******/ for(var key in definition) {
69
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
70
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
71
+ /******/ }
72
+ /******/ }
73
+ /******/ };
74
+ /******/ })();
75
+ /******/
76
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
77
+ /******/ (() => {
78
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
79
+ /******/ })();
80
+ /******/
81
+ /******/ /* webpack/runtime/make namespace object */
82
+ /******/ (() => {
83
+ /******/ // define __esModule on exports
84
+ /******/ __webpack_require__.r = (exports) => {
85
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
86
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
87
+ /******/ }
88
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
89
+ /******/ };
90
+ /******/ })();
91
+ /******/
92
+ /************************************************************************/
93
+ var __webpack_exports__ = {};
94
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
95
+ (() => {
96
+ /*!************************************!*\
97
+ !*** ./src/models/summit-event.js ***!
98
+ \************************************/
99
+ __webpack_require__.r(__webpack_exports__);
100
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
101
+ /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
102
+ /* harmony export */ });
103
+ /* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! moment-timezone */ "moment-timezone");
104
+ /* harmony import */ var moment_timezone__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(moment_timezone__WEBPACK_IMPORTED_MODULE_0__);
105
+ /**
106
+ * Copyright 2017 OpenStack Foundation
107
+ * Licensed under the Apache License, Version 2.0 (the "License");
108
+ * you may not use this file except in compliance with the License.
109
+ * You may obtain a copy of the License at
110
+ * http://www.apache.org/licenses/LICENSE-2.0
111
+ * Unless required by applicable law or agreed to in writing, software
112
+ * distributed under the License is distributed on an "AS IS" BASIS,
113
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
114
+ * See the License for the specific language governing permissions and
115
+ * limitations under the License.
116
+ **/
117
+
118
+
119
+ class SummitEvent {
120
+ constructor(event, summit = null) {
121
+ this._event = event;
122
+ this._summit = summit;
123
+ }
124
+
125
+ set summit(summit) {
126
+ this._summit = summit;
127
+ }
128
+
129
+ get summit() {
130
+ return this._summit;
131
+ }
132
+
133
+ getId() {
134
+ return this._event.id;
135
+ }
136
+
137
+ isPublished() {
138
+ return this._event.hasOwnProperty('is_published') && this._event.is_published;
139
+ }
140
+
141
+ getMinutesDuration(slotSize) {
142
+ if (this._event.hasOwnProperty('start_date') && this._event.hasOwnProperty('end_date') && this._event.start_date != null && this._event.end_date != null) {
143
+ let eventStartDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(this._event.start_date * 1000).tz(this._summit.time_zone.name);
144
+ let eventEndDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(this._event.end_date * 1000).tz(this._summit.time_zone.name);
145
+ return eventEndDateTime.diff(eventStartDateTime, 'minutes');
146
+ } // default
147
+
148
+
149
+ return this._event.hasOwnProperty('duration') && this._event.duration > 0 ? parseInt(this._event.duration / 60) : slotSize;
150
+ }
151
+
152
+ canMove(siblings, day, startTime, interval) {
153
+ let duration = this._event.hasOwnProperty('duration') && this._event.duration > 0 ? parseInt(this._event.duration / 60) : interval; // check if published to get real duration ...
154
+
155
+ if (this.isPublished()) duration = this.getMinutesDuration();
156
+ let startDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name);
157
+ let endDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name);
158
+ endDateTime = endDateTime.add(duration, 'minutes'); // check siblings overlap
159
+
160
+ for (let auxEvent of siblings.filter(item => item.id !== this.getId())) {
161
+ let auxEventStartDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(auxEvent.start_date * 1000).tz(this._summit.time_zone.name);
162
+ let auxEventEndDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default()(auxEvent.end_date * 1000).tz(this._summit.time_zone.name); // if time segments overlap
163
+
164
+ if (auxEventStartDateTime.isBefore(endDateTime) && auxEventEndDateTime.isAfter(startDateTime)) return false;
165
+ }
166
+
167
+ return true;
168
+ }
169
+
170
+ calculateNewDates(day, startTime, minutes) {
171
+ minutes = this._event.hasOwnProperty('duration') && this._event.duration > 0 ? parseInt(this._event.duration / 60) : minutes;
172
+ let newStarDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name);
173
+ let newEndDateTime = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(day + ' ' + startTime.format('HH:mm'), 'YYYY-MM-DD HH:mm', this._summit.time_zone.name).add(minutes, 'minutes');
174
+ return [newStarDateTime, newEndDateTime];
175
+ }
176
+
177
+ isValidEndDate(endDate) {
178
+ if (endDate == null) return true;
179
+ let startDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._event.start_date * 1000, this._summit.time_zone.name);
180
+ endDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(endDate * 1000, this._summit.time_zone.name);
181
+ let summitEndDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._summit.end_date * 1000, this._summit.time_zone.name);
182
+ return endDate.isAfter(startDate) && (endDate.isBefore(summitEndDate) || endDate.isSame(summitEndDate));
183
+ }
184
+
185
+ isValidStartDate(startDate) {
186
+ if (startDate == null) return true;
187
+ startDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(startDate * 1000, this._summit.time_zone.name);
188
+ let endDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._event.end_date * 1000, this._summit.time_zone.name);
189
+ let summitStartDate = moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().tz(this._summit.start_date * 1000, this._summit.time_zone.name);
190
+ return moment_timezone__WEBPACK_IMPORTED_MODULE_0___default().isMoment(startDate) && startDate.isAfter(summitStartDate) && startDate.isBefore(endDate);
191
+ }
192
+
193
+ isValidTitle(title) {
194
+ return title.trim() !== '';
195
+ }
196
+
197
+ isValid() {
198
+ return this.isValidTitle(this._event.title) && this.isValidStartDate(this._event.start_date) && this.isValidEndDate(this._event.end_date);
199
+ }
200
+
201
+ }
202
+
203
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (SummitEvent);
204
+ })();
205
+
206
+ /******/ return __webpack_exports__;
207
+ /******/ })()
208
+ ;
209
+ });
210
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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RUFFRE8sWUFBWSxDQUFDQyxLQUFELEVBQU87SUFDZixPQUFPQSxLQUFLLENBQUNDLElBQU4sT0FBaUIsRUFBeEI7RUFDSDs7RUFFREMsT0FBTyxHQUFFO0lBQ0wsT0FBTyxLQUFLSCxZQUFMLENBQWtCLEtBQUsvQyxNQUFMLENBQVlnRCxLQUE5QixLQUNBLEtBQUtKLGdCQUFMLENBQXNCLEtBQUs1QyxNQUFMLENBQVlTLFVBQWxDLENBREEsSUFFQSxLQUFLOEIsY0FBTCxDQUFvQixLQUFLdkMsTUFBTCxDQUFZVSxRQUFoQyxDQUZQO0VBR0g7O0FBN0ZhOztBQWlHbEIsaUVBQWVkLFdBQWYsRSIsInNvdXJjZXMiOlsid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3VuaXZlcnNhbE1vZHVsZURlZmluaXRpb24iLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL2V4dGVybmFsIGNvbW1vbmpzIFwibW9tZW50LXRpbWV6b25lXCIiLCJ3ZWJwYWNrOi8vb3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9vcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb24vd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kIiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi93ZWJwYWNrL3J1bnRpbWUvbWFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL29wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvbi8uL3NyYy9tb2RlbHMvc3VtbWl0LWV2ZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiB3ZWJwYWNrVW5pdmVyc2FsTW9kdWxlRGVmaW5pdGlvbihyb290LCBmYWN0b3J5KSB7XG5cdGlmKHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlID09PSAnb2JqZWN0Jylcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKTtcblx0ZWxzZSBpZih0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQpXG5cdFx0ZGVmaW5lKFwib3BlbnN0YWNrLXVpY29yZS1mb3VuZGF0aW9uXCIsIFtdLCBmYWN0b3J5KTtcblx0ZWxzZSBpZih0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcpXG5cdFx0ZXhwb3J0c1tcIm9wZW5zdGFjay11aWNvcmUtZm91bmRhdGlvblwiXSA9IGZhY3RvcnkoKTtcblx0ZWxzZVxuXHRcdHJvb3RbXCJvcGVuc3RhY2stdWljb3JlLWZvdW5kYXRpb25cIl0gPSBmYWN0b3J5KCk7XG59KSh0aGlzLCAoKSA9PiB7XG5yZXR1cm4gIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibW9tZW50LXRpbWV6b25lXCIpOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4iLCIvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuXHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cblx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcblx0XHQoKSA9PiAobW9kdWxlKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG5cdHJldHVybiBnZXR0ZXI7XG59OyIsIi8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG5cdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcblx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG5cdFx0fVxuXHR9XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCIvKipcbiAqIENvcHlyaWdodCAyMDE3IE9wZW5TdGFjayBGb3VuZGF0aW9uXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKiovXG5cbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50LXRpbWV6b25lJ1xuXG5jbGFzcyBTdW1taXRFdmVudCB7XG5cbiAgICBjb25zdHJ1Y3RvcihldmVudCwgc3VtbWl0ID0gbnVsbCl7XG4gICAgICAgIHRoaXMuX2V2ZW50ICA9IGV2ZW50O1xuICAgICAgICB0aGlzLl9zdW1taXQgPSBzdW1taXQ7XG4gICAgfVxuXG4gICAgc2V0IHN1bW1pdChzdW1taXQpe1xuICAgICAgICB0aGlzLl9zdW1taXQgPSBzdW1taXQ7XG4gICAgfVxuXG4gICAgZ2V0IHN1bW1pdCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VtbWl0O1xuICAgIH1cblxuICAgIGdldElkKCl7XG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudC5pZDtcbiAgICB9XG5cbiAgICBpc1B1Ymxpc2hlZCgpe1xuICAgICAgICByZXR1cm4gdGhpcy5fZXZlbnQuaGFzT3duUHJvcGVydHkoJ2lzX3B1Ymxpc2hlZCcpICYmIHRoaXMuX2V2ZW50LmlzX3B1Ymxpc2hlZDtcbiAgICB9XG5cbiAgICBnZXRNaW51dGVzRHVyYXRpb24oc2xvdFNpemUpe1xuXG4gICAgICAgIGlmKHRoaXMuX2V2ZW50Lmhhc093blByb3BlcnR5KCdzdGFydF9kYXRlJykgJiYgdGhpcy5fZXZlbnQuaGFzT3duUHJvcGVydHkoJ2VuZF9kYXRlJykgICYmIHRoaXMuX2V2ZW50LnN0YXJ0X2RhdGUgIT0gbnVsbCAmJiB0aGlzLl9ldmVudC5lbmRfZGF0ZSAhPSBudWxsICkge1xuICAgICAgICAgICAgbGV0IGV2ZW50U3RhcnREYXRlVGltZSA9IG1vbWVudCh0aGlzLl9ldmVudC5zdGFydF9kYXRlICogMTAwMCkudHoodGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgICAgIGxldCBldmVudEVuZERhdGVUaW1lICAgPSBtb21lbnQodGhpcy5fZXZlbnQuZW5kX2RhdGUgKiAxMDAwKS50eih0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuICAgICAgICAgICAgcmV0dXJuIGV2ZW50RW5kRGF0ZVRpbWUuZGlmZihldmVudFN0YXJ0RGF0ZVRpbWUsICdtaW51dGVzJyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gZGVmYXVsdFxuXG4gICAgICAgIHJldHVybiB0aGlzLl9ldmVudC5oYXNPd25Qcm9wZXJ0eSgnZHVyYXRpb24nKSAmJiB0aGlzLl9ldmVudC5kdXJhdGlvbiA+IDAgPyAgcGFyc2VJbnQoIHRoaXMuX2V2ZW50LmR1cmF0aW9uIC8gNjAgKSA6IHNsb3RTaXplO1xuICAgIH1cblxuICAgIGNhbk1vdmUoc2libGluZ3MsIGRheSwgc3RhcnRUaW1lLCBpbnRlcnZhbCl7XG5cbiAgICAgICAgbGV0IGR1cmF0aW9uICAgICAgID0gdGhpcy5fZXZlbnQuaGFzT3duUHJvcGVydHkoJ2R1cmF0aW9uJykgJiYgdGhpcy5fZXZlbnQuZHVyYXRpb24gPiAwID8gIHBhcnNlSW50KCB0aGlzLl9ldmVudC5kdXJhdGlvbiAvIDYwICkgOiBpbnRlcnZhbDtcbiAgICAgICAgLy8gY2hlY2sgaWYgcHVibGlzaGVkIHRvIGdldCByZWFsIGR1cmF0aW9uIC4uLlxuICAgICAgICBpZih0aGlzLmlzUHVibGlzaGVkKCkpXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHRoaXMuZ2V0TWludXRlc0R1cmF0aW9uKCk7XG5cbiAgICAgICAgbGV0IHN0YXJ0RGF0ZVRpbWUgICA9IG1vbWVudC50eihkYXkrJyAnKyBzdGFydFRpbWUuZm9ybWF0KCdISDptbScpLCAnWVlZWS1NTS1ERCBISDptbScsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgIGxldCBlbmREYXRlVGltZSAgICAgPSBtb21lbnQudHooZGF5KycgJysgc3RhcnRUaW1lLmZvcm1hdCgnSEg6bW0nKSwgJ1lZWVktTU0tREQgSEg6bW0nLCB0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuICAgICAgICBlbmREYXRlVGltZSAgICAgICAgID0gZW5kRGF0ZVRpbWUuYWRkKGR1cmF0aW9uLCAnbWludXRlcycpO1xuXG4gICAgICAgIC8vIGNoZWNrIHNpYmxpbmdzIG92ZXJsYXBcbiAgICAgICAgZm9yIChsZXQgYXV4RXZlbnQgb2Ygc2libGluZ3MuZmlsdGVyKGl0ZW0gPT4gaXRlbS5pZCAhPT0gdGhpcy5nZXRJZCgpKSkge1xuICAgICAgICAgICAgbGV0IGF1eEV2ZW50U3RhcnREYXRlVGltZSA9IG1vbWVudChhdXhFdmVudC5zdGFydF9kYXRlICogMTAwMCkudHoodGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgICAgIGxldCBhdXhFdmVudEVuZERhdGVUaW1lICAgPSBtb21lbnQoYXV4RXZlbnQuZW5kX2RhdGUgKiAxMDAwKS50eih0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuXG4gICAgICAgICAgICAvLyBpZiB0aW1lIHNlZ21lbnRzIG92ZXJsYXBcbiAgICAgICAgICAgIGlmKGF1eEV2ZW50U3RhcnREYXRlVGltZS5pc0JlZm9yZShlbmREYXRlVGltZSkgJiYgYXV4RXZlbnRFbmREYXRlVGltZS5pc0FmdGVyKHN0YXJ0RGF0ZVRpbWUpKVxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGNhbGN1bGF0ZU5ld0RhdGVzKGRheSwgc3RhcnRUaW1lLCBtaW51dGVzKXtcblxuICAgICAgICBtaW51dGVzID0gdGhpcy5fZXZlbnQuaGFzT3duUHJvcGVydHkoJ2R1cmF0aW9uJykgJiYgdGhpcy5fZXZlbnQuZHVyYXRpb24gPiAwID9cbiAgICAgICAgICAgIHBhcnNlSW50KCB0aGlzLl9ldmVudC5kdXJhdGlvbiAvIDYwICkgOiBtaW51dGVzO1xuXG4gICAgICAgIGxldCBuZXdTdGFyRGF0ZVRpbWUgPSBtb21lbnQudHooZGF5KycgJytzdGFydFRpbWUuZm9ybWF0KCdISDptbScpLCAnWVlZWS1NTS1ERCBISDptbScsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgIGxldCBuZXdFbmREYXRlVGltZSAgPSBtb21lbnQudHooZGF5KycgJytzdGFydFRpbWUuZm9ybWF0KCdISDptbScpLCAnWVlZWS1NTS1ERCBISDptbScsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSkuYWRkKG1pbnV0ZXMsICdtaW51dGVzJyk7XG4gICAgICAgIHJldHVybiBbbmV3U3RhckRhdGVUaW1lLCBuZXdFbmREYXRlVGltZV07XG4gICAgfVxuXG4gICAgaXNWYWxpZEVuZERhdGUoZW5kRGF0ZSl7XG4gICAgICAgIGlmKGVuZERhdGUgPT0gbnVsbCkgcmV0dXJuIHRydWU7XG4gICAgICAgIGxldCBzdGFydERhdGUgICAgICAgPSBtb21lbnQudHoodGhpcy5fZXZlbnQuc3RhcnRfZGF0ZSAqIDEwMDAsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgIGVuZERhdGUgICAgICAgICAgICAgPSBtb21lbnQudHooZW5kRGF0ZSAqIDEwMDAsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgIGxldCBzdW1taXRFbmREYXRlICAgPSBtb21lbnQudHoodGhpcy5fc3VtbWl0LmVuZF9kYXRlICogMTAwMCwgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIGVuZERhdGUuaXNBZnRlcihzdGFydERhdGUpICYmIChlbmREYXRlLmlzQmVmb3JlKHN1bW1pdEVuZERhdGUpIHx8IGVuZERhdGUuaXNTYW1lKHN1bW1pdEVuZERhdGUpKTtcbiAgICB9XG5cbiAgICBpc1ZhbGlkU3RhcnREYXRlKHN0YXJ0RGF0ZSl7XG4gICAgICAgIGlmKHN0YXJ0RGF0ZSA9PSBudWxsKSByZXR1cm4gdHJ1ZTtcbiAgICAgICAgc3RhcnREYXRlICAgICAgICAgICA9IG1vbWVudC50eihzdGFydERhdGUqIDEwMDAsIHRoaXMuX3N1bW1pdC50aW1lX3pvbmUubmFtZSk7XG4gICAgICAgIGxldCBlbmREYXRlICAgICAgICAgPSBtb21lbnQudHoodGhpcy5fZXZlbnQuZW5kX2RhdGUgKiAxMDAwLCB0aGlzLl9zdW1taXQudGltZV96b25lLm5hbWUpO1xuICAgICAgICBsZXQgc3VtbWl0U3RhcnREYXRlID0gbW9tZW50LnR6KHRoaXMuX3N1bW1pdC5zdGFydF9kYXRlICogMTAwMCwgdGhpcy5fc3VtbWl0LnRpbWVfem9uZS5uYW1lKTtcbiAgICAgICAgcmV0dXJuIG1vbWVudC5pc01vbWVudChzdGFydERhdGUpICYmIHN0YXJ0RGF0ZS5pc0FmdGVyKHN1bW1pdFN0YXJ0RGF0ZSkgJiYgc3RhcnREYXRlLmlzQmVmb3JlKGVuZERhdGUpO1xuICAgIH1cblxuICAgIGlzVmFsaWRUaXRsZSh0aXRsZSl7XG4gICAgICAgIHJldHVybiB0aXRsZS50cmltKCkgIT09ICcnO1xuICAgIH1cblxuICAgIGlzVmFsaWQoKXtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZFRpdGxlKHRoaXMuX2V2ZW50LnRpdGxlKVxuICAgICAgICAgICAgJiYgdGhpcy5pc1ZhbGlkU3RhcnREYXRlKHRoaXMuX2V2ZW50LnN0YXJ0X2RhdGUpXG4gICAgICAgICAgICAmJiB0aGlzLmlzVmFsaWRFbmREYXRlKHRoaXMuX2V2ZW50LmVuZF9kYXRlKTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGRlZmF1bHQgU3VtbWl0RXZlbnQ7XG4iXSwibmFtZXMiOlsibW9tZW50IiwiU3VtbWl0RXZlbnQiLCJjb25zdHJ1Y3RvciIsImV2ZW50Iiwic3VtbWl0IiwiX2V2ZW50IiwiX3N1bW1pdCIsImdldElkIiwiaWQiLCJpc1B1Ymxpc2hlZCIsImhhc093blByb3BlcnR5IiwiaXNfcHVibGlzaGVkIiwiZ2V0TWludXRlc0R1cmF0aW9uIiwic2xvdFNpemUiLCJzdGFydF9kYXRlIiwiZW5kX2RhdGUiLCJldmVudFN0YXJ0RGF0ZVRpbWUiLCJ0eiIsInRpbWVfem9uZSIsIm5hbWUiLCJldmVudEVuZERhdGVUaW1lIiwiZGlmZiIsImR1cmF0aW9uIiwicGFyc2VJbnQiLCJjYW5Nb3ZlIiwic2libGluZ3MiLCJkYXkiLCJzdGFydFRpbWUiLCJpbnRlcnZhbCIsInN0YXJ0RGF0ZVRpbWUiLCJmb3JtYXQiLCJlbmREYXRlVGltZSIsImFkZCIsImF1eEV2ZW50IiwiZmlsdGVyIiwiaXRlbSIsImF1eEV2ZW50U3RhcnREYXRlVGltZSIsImF1eEV2ZW50RW5kRGF0ZVRpbWUiLCJpc0JlZm9yZSIsImlzQWZ0ZXIiLCJjYWxjdWxhdGVOZXdEYXRlcyIsIm1pbnV0ZXMiLCJuZXdTdGFyRGF0ZVRpbWUiLCJuZXdFbmREYXRlVGltZSIsImlzVmFsaWRFbmREYXRlIiwiZW5kRGF0ZSIsInN0YXJ0RGF0ZSIsInN1bW1pdEVuZERhdGUiLCJpc1NhbWUiLCJpc1ZhbGlkU3RhcnREYXRlIiwic3VtbWl0U3RhcnREYXRlIiwiaXNNb21lbnQiLCJpc1ZhbGlkVGl0bGUiLCJ0aXRsZSIsInRyaW0iLCJpc1ZhbGlkIl0sInNvdXJjZVJvb3QiOiIifQ==