@plusscommunities/pluss-maintenance-app 3.0.2 → 3.0.3-beta.0

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 (39) hide show
  1. package/dist/module/actions/JobActions.js.map +1 -1
  2. package/dist/module/actions/index.js.map +1 -1
  3. package/dist/module/actions/types.js.map +1 -1
  4. package/dist/module/apis/generalActions.js +2 -8
  5. package/dist/module/apis/generalActions.js.map +1 -1
  6. package/dist/module/apis/index.js.map +1 -1
  7. package/dist/module/components/FilterPopupMenu.js +5 -19
  8. package/dist/module/components/FilterPopupMenu.js.map +1 -1
  9. package/dist/module/components/MaintenanceList.js +13 -49
  10. package/dist/module/components/MaintenanceList.js.map +1 -1
  11. package/dist/module/components/MaintenanceListItem.js +7 -21
  12. package/dist/module/components/MaintenanceListItem.js.map +1 -1
  13. package/dist/module/components/MaintenanceWidgetItem.js +3 -12
  14. package/dist/module/components/MaintenanceWidgetItem.js.map +1 -1
  15. package/dist/module/components/StatusSelectorPopup.js +0 -5
  16. package/dist/module/components/StatusSelectorPopup.js.map +1 -1
  17. package/dist/module/components/WidgetLarge.js +0 -3
  18. package/dist/module/components/WidgetLarge.js.map +1 -1
  19. package/dist/module/components/WidgetSmall.js +5 -22
  20. package/dist/module/components/WidgetSmall.js.map +1 -1
  21. package/dist/module/core.config.js.map +1 -1
  22. package/dist/module/feature.config.js +2 -3
  23. package/dist/module/feature.config.js.map +1 -1
  24. package/dist/module/helper.js +0 -3
  25. package/dist/module/helper.js.map +1 -1
  26. package/dist/module/index.js.map +1 -1
  27. package/dist/module/reducers/JobsReducer.js +6 -14
  28. package/dist/module/reducers/JobsReducer.js.map +1 -1
  29. package/dist/module/screens/JobTypePicker.js +5 -14
  30. package/dist/module/screens/JobTypePicker.js.map +1 -1
  31. package/dist/module/screens/MaintenancePage.js +3 -14
  32. package/dist/module/screens/MaintenancePage.js.map +1 -1
  33. package/dist/module/screens/RequestDetail.js +15 -59
  34. package/dist/module/screens/RequestDetail.js.map +1 -1
  35. package/dist/module/screens/RequestNotes.js +7 -40
  36. package/dist/module/screens/RequestNotes.js.map +1 -1
  37. package/dist/module/screens/ServiceRequest.js +7 -59
  38. package/dist/module/screens/ServiceRequest.js.map +1 -1
  39. package/package.json +4 -4
@@ -1,5 +1,6 @@
1
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
1
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
3
4
  import React, { Component } from 'react';
4
5
  import { Dimensions, Platform, KeyboardAvoidingView, ScrollView, Text, TouchableOpacity, View, Switch, FlatList, ImageBackground, Keyboard } from 'react-native';
5
6
  import _ from 'lodash';
@@ -10,11 +11,9 @@ import { generalActions } from '../apis';
10
11
  import { Services } from '../feature.config';
11
12
  import { Components, Colours, Helper, Config } from '../core.config';
12
13
  const PHOTO_SIZE = (Dimensions.get('window').width - 64) / 3;
13
-
14
14
  class MaintenanceRequest extends Component {
15
15
  constructor(props) {
16
16
  super(props);
17
-
18
17
  _defineProperty(this, "onUploadStarted", (uploadUri, imageUri) => {
19
18
  const images = [...this.state.images];
20
19
  images.splice(images.length - 1, 0, {
@@ -28,7 +27,6 @@ class MaintenanceRequest extends Component {
28
27
  images
29
28
  });
30
29
  });
31
-
32
30
  _defineProperty(this, "onUploadProgress", progress => {
33
31
  const images = [...this.state.images];
34
32
  images.map(img => {
@@ -42,7 +40,6 @@ class MaintenanceRequest extends Component {
42
40
  images
43
41
  });
44
42
  });
45
-
46
43
  _defineProperty(this, "onUploadSuccess", async (uri, uploadUri) => {
47
44
  const images = [...this.state.images];
48
45
  images.map(img => {
@@ -57,13 +54,11 @@ class MaintenanceRequest extends Component {
57
54
  images
58
55
  }, () => this.waitForThumbnails());
59
56
  });
60
-
61
57
  _defineProperty(this, "onUploadFailed", uploadUri => {
62
58
  const images = [...this.state.images];
63
59
  images.map(img => {
64
60
  if (img.uploadUri === uploadUri) {
65
61
  img.uploading = true; // Requried for retry
66
-
67
62
  img.uploadProgress = '';
68
63
  img.allowRetry = true;
69
64
  }
@@ -72,7 +67,6 @@ class MaintenanceRequest extends Component {
72
67
  images
73
68
  });
74
69
  });
75
-
76
70
  _defineProperty(this, "onLibrarySelected", uri => {
77
71
  const images = [...this.state.images];
78
72
  images.splice(images.length - 1, 0, {
@@ -86,39 +80,31 @@ class MaintenanceRequest extends Component {
86
80
  images
87
81
  });
88
82
  });
89
-
90
83
  _defineProperty(this, "showUploadMenu", () => {
91
84
  Keyboard.dismiss();
92
-
93
85
  if (this.state.uploadingImage || this.state.submitting) {
94
86
  return;
95
87
  }
96
-
97
88
  this.imageUploader.showUploadMenu();
98
89
  });
99
-
100
90
  _defineProperty(this, "submit", async () => {
101
91
  this.setState({
102
92
  submitting: true
103
93
  });
104
94
  let description = this.state.description;
105
-
106
95
  if (this.state.isHome) {
107
96
  description = description + `. -- Times Available: ${this.state.times}`;
108
97
  }
109
-
110
98
  setTimeout(() => {
111
99
  this.scrollContainer.scrollTo({
112
100
  y: 0
113
101
  });
114
102
  }, 100);
115
-
116
103
  const images = _.filter(this.state.images, img => {
117
104
  return !img.uploading && !img.add;
118
105
  }).map(img => {
119
106
  return img.url;
120
107
  });
121
-
122
108
  generalActions.sendMaintenanceRequest(this.props.uid, this.state.userName, this.state.phone, this.state.roomNumber, this.state.title, description, null, this.state.type, images, Helper.getSite(this.props.site), this.state.isHome, this.state.times).then(res => {
123
109
  if (res.data.success) {
124
110
  this.refreshRequest(res.data.searchResult);
@@ -141,39 +127,35 @@ class MaintenanceRequest extends Component {
141
127
  });
142
128
  });
143
129
  });
144
-
145
130
  _defineProperty(this, "refreshRequest", async id => {
146
131
  try {
147
- const job = await generalActions.getJob(Helper.getSite(this.props.site), id); // console.log('refreshRequest', job?.data);
148
-
132
+ const job = await generalActions.getJob(Helper.getSite(this.props.site), id);
133
+ // console.log('refreshRequest', job?.data);
149
134
  this.props.jobAdded(job.data);
150
135
  } catch (error) {
151
136
  console.log('refreshRequest error', error);
152
137
  }
153
138
  });
154
-
155
139
  _defineProperty(this, "waitForThumbnails", () => {
156
140
  if (this.checkThumb) return;
157
141
  this.checkThumb = setInterval(async () => {
158
142
  const images = [];
159
143
  await Promise.all(this.state.images.map(image => {
160
144
  return new Promise(async resolve => {
161
- const newImage = { ...image
145
+ const newImage = {
146
+ ...image
162
147
  };
163
148
  images.push(newImage);
164
-
165
149
  if (newImage.url && !newImage.thumbNailExists) {
166
150
  newImage.uploading = false;
167
151
  newImage.allowRetry = false;
168
152
  newImage.thumbNailExists = await Helper.imageExists(newImage.thumbNailUrl);
169
153
  resolve(newImage.thumbNailExists);
170
154
  }
171
-
172
155
  resolve(true);
173
156
  });
174
157
  }));
175
158
  const thumbnailsExist = images.every(image => !image.url || image.thumbNailExists);
176
-
177
159
  if (thumbnailsExist) {
178
160
  clearInterval(this.checkThumb);
179
161
  this.checkThumb = null;
@@ -183,7 +165,6 @@ class MaintenanceRequest extends Component {
183
165
  }
184
166
  }, 2000);
185
167
  });
186
-
187
168
  _defineProperty(this, "removeImage", index => {
188
169
  const images = [...this.state.images];
189
170
  images.splice(index, 1);
@@ -191,7 +172,6 @@ class MaintenanceRequest extends Component {
191
172
  images
192
173
  });
193
174
  });
194
-
195
175
  _defineProperty(this, "toggleFullscreenVideo", url => {
196
176
  if (typeof url !== 'string') url = '';
197
177
  this.setState({
@@ -199,7 +179,6 @@ class MaintenanceRequest extends Component {
199
179
  currentVideoUrl: url
200
180
  });
201
181
  });
202
-
203
182
  this.state = {
204
183
  submitting: false,
205
184
  success: false,
@@ -225,7 +204,6 @@ class MaintenanceRequest extends Component {
225
204
  };
226
205
  this.checkThumb = null;
227
206
  }
228
-
229
207
  componentDidMount() {
230
208
  if (this.props.userType !== 'KIOSK') {
231
209
  this.setState({
@@ -234,18 +212,14 @@ class MaintenanceRequest extends Component {
234
212
  phone: !_.isEmpty(this.props.phoneNumber) ? this.props.phoneNumber : ''
235
213
  });
236
214
  }
237
-
238
215
  this.getJobTypes();
239
216
  }
240
-
241
217
  componentWillUnmount() {
242
218
  clearInterval(this.checkThumb);
243
219
  }
244
-
245
220
  onPressBack() {
246
221
  Services.navigation.goBack();
247
222
  }
248
-
249
223
  onPressType() {
250
224
  Services.navigation.navigate('jobTypePicker', {
251
225
  currentType: this.state.type,
@@ -253,7 +227,6 @@ class MaintenanceRequest extends Component {
253
227
  onSelectType: this.pickType.bind(this)
254
228
  });
255
229
  }
256
-
257
230
  onCloseConfirmationPopup() {
258
231
  this.setState({
259
232
  confirmationToShow: false
@@ -261,7 +234,6 @@ class MaintenanceRequest extends Component {
261
234
  Services.navigation.goBack();
262
235
  this.props.onBack && this.props.onBack();
263
236
  }
264
-
265
237
  onConfirmationReset() {
266
238
  this.setState({
267
239
  confirmationToShow: false,
@@ -278,7 +250,6 @@ class MaintenanceRequest extends Component {
278
250
  fail: false
279
251
  });
280
252
  }
281
-
282
253
  getJobTypes() {
283
254
  const self = this;
284
255
  generalActions.getJobTypes(Helper.getSite(this.props.site)).then(res => {
@@ -288,7 +259,6 @@ class MaintenanceRequest extends Component {
288
259
  self.getDefaultJob();
289
260
  }).catch(() => {});
290
261
  }
291
-
292
262
  getDefaultJob() {
293
263
  if (this.state.types.length !== 0 && this.state.jobId == null) {
294
264
  this.setState({
@@ -296,13 +266,11 @@ class MaintenanceRequest extends Component {
296
266
  });
297
267
  }
298
268
  }
299
-
300
269
  pickType(type) {
301
270
  this.setState({
302
271
  type
303
272
  });
304
273
  }
305
-
306
274
  submitRequest() {
307
275
  if (this.state.submitting || !this.props.connected) {
308
276
  if (!this.props.connected) {
@@ -312,36 +280,29 @@ class MaintenanceRequest extends Component {
312
280
  }
313
281
  });
314
282
  }
315
-
316
283
  return;
317
284
  }
318
-
319
285
  if (this.state.uploadingImage) {
320
286
  return;
321
287
  }
322
-
323
288
  this.setState({
324
289
  error: null,
325
290
  showError: false
326
291
  });
327
-
328
292
  if (this.state.title.length === 0 || !this.state.roomNumber || this.state.roomNumber.length === 0) {
329
293
  this.setState({
330
294
  showError: true
331
295
  });
332
296
  return;
333
297
  }
334
-
335
298
  if (this.state.isHome && this.state.times.length < 2) {
336
299
  this.setState({
337
300
  showError: true
338
301
  });
339
302
  return;
340
303
  }
341
-
342
304
  this.submit();
343
305
  }
344
-
345
306
  renderUploadMenu() {
346
307
  return /*#__PURE__*/React.createElement(Components.ImageUploader, {
347
308
  ref: ref => this.imageUploader = ref,
@@ -362,10 +323,8 @@ class MaintenanceRequest extends Component {
362
323
  hideLibrary: true
363
324
  });
364
325
  }
365
-
366
326
  renderImage(item, index) {
367
327
  const isVideoUrl = Helper.isVideo(item.url);
368
-
369
328
  if (item.add) {
370
329
  return /*#__PURE__*/React.createElement(TouchableOpacity, {
371
330
  activeOpacity: 0.8,
@@ -384,7 +343,6 @@ class MaintenanceRequest extends Component {
384
343
  iconStyle: styles.addImageIcon
385
344
  }))));
386
345
  }
387
-
388
346
  return /*#__PURE__*/React.createElement(View, {
389
347
  style: [styles.imageContainer, this.state.images.length > 1 && styles.imageContainerNotEmpty, index % 3 === 0 && {
390
348
  marginLeft: 0
@@ -416,7 +374,6 @@ class MaintenanceRequest extends Component {
416
374
  style: styles.removeImage
417
375
  }))));
418
376
  }
419
-
420
377
  renderSuccess() {
421
378
  return /*#__PURE__*/React.createElement(View, {
422
379
  style: {
@@ -428,7 +385,6 @@ class MaintenanceRequest extends Component {
428
385
  style: styles.requestSuccess
429
386
  }, "Your request has been submitted. Thank you."));
430
387
  }
431
-
432
388
  renderImageList() {
433
389
  return /*#__PURE__*/React.createElement(View, {
434
390
  style: styles.imageSection
@@ -449,7 +405,6 @@ class MaintenanceRequest extends Component {
449
405
  numColumns: 3
450
406
  })));
451
407
  }
452
-
453
408
  renderForm() {
454
409
  return /*#__PURE__*/React.createElement(View, {
455
410
  style: {
@@ -626,7 +581,6 @@ class MaintenanceRequest extends Component {
626
581
  autoGrow: true
627
582
  })), this.renderImageList())));
628
583
  }
629
-
630
584
  renderRegisterConfirmation() {
631
585
  return /*#__PURE__*/React.createElement(Components.ConfirmationPopup, {
632
586
  confirmText: 'Request submitted',
@@ -636,7 +590,6 @@ class MaintenanceRequest extends Component {
636
590
  onPressAction: this.onConfirmationReset.bind(this)
637
591
  });
638
592
  }
639
-
640
593
  renderVideoPlayerPopup() {
641
594
  const {
642
595
  showFullscreenVideo,
@@ -650,7 +603,6 @@ class MaintenanceRequest extends Component {
650
603
  onClose: this.toggleFullscreenVideo
651
604
  });
652
605
  }
653
-
654
606
  render() {
655
607
  return /*#__PURE__*/React.createElement(KeyboardAvoidingView, {
656
608
  behavior: Platform.OS === 'ios' && 'padding',
@@ -666,9 +618,7 @@ class MaintenanceRequest extends Component {
666
618
  absoluteRight: true
667
619
  }), this.renderForm()), this.renderRegisterConfirmation(), this.renderVideoPlayerPopup());
668
620
  }
669
-
670
621
  }
671
-
672
622
  const styles = {
673
623
  viewContainer: {
674
624
  flex: 1,
@@ -770,7 +720,6 @@ const styles = {
770
720
  justifyContent: 'center'
771
721
  }
772
722
  };
773
-
774
723
  const mapStateToProps = state => {
775
724
  const {
776
725
  user,
@@ -796,7 +745,6 @@ const mapStateToProps = state => {
796
745
  colourBrandingMain: Colours.getMainBrandingColourFromState(state)
797
746
  };
798
747
  };
799
-
800
748
  export default connect(mapStateToProps, {
801
749
  jobAdded
802
750
  })(MaintenanceRequest);
@@ -1 +1 @@
1
- {"version":3,"names":["React","Component","Dimensions","Platform","KeyboardAvoidingView","ScrollView","Text","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","_","Icon","connect","jobAdded","generalActions","Services","Components","Colours","Helper","Config","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","uploadUri","imageUri","images","state","splice","length","uploading","uploadProgress","allowRetry","setState","progress","map","img","uri","percentage","url","replace","thumbNailExists","thumbNailUrl","getThumb300","waitForThumbnails","get1400","dismiss","uploadingImage","submitting","imageUploader","showUploadMenu","description","isHome","times","setTimeout","scrollContainer","scrollTo","y","filter","add","sendMaintenanceRequest","uid","userName","phone","roomNumber","title","type","getSite","site","then","res","data","success","refreshRequest","searchResult","onSubmissionSuccess","confirmationToShow","catch","err","console","log","id","job","getJob","error","checkThumb","setInterval","Promise","all","image","resolve","newImage","push","imageExists","thumbnailsExist","every","clearInterval","index","showFullscreenVideo","currentVideoUrl","fail","showError","types","componentDidMount","userType","displayName","unit","isEmpty","phoneNumber","getJobTypes","componentWillUnmount","onPressBack","navigation","goBack","onPressType","navigate","currentType","onSelectType","pickType","bind","onCloseConfirmationPopup","onBack","onConfirmationReset","self","getDefaultJob","jobId","typeName","submitRequest","connected","message","submit","renderUploadMenu","ref","onUploadStarted","onUploadSuccess","onUploadFailed","onUploadProgress","onLibrarySelected","renderImage","item","isVideoUrl","isVideo","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","addImageIcon","colourBrandingMain","imageBackground","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderSuccess","padding","flex","backgroundColor","requestSuccess","renderImageList","imageSection","imageListContainer","imageListContainerEmpty","renderForm","paddingBottom","errorText","paddingHorizontal","paddingVertical","flexDirection","justifyContent","sectionTitle","env","strings","JOB_TYPE","color","marginRight","fontSize","alignItems","position","borderBottomWidth","borderBottomColor","LINEGREY","MAINTENANCE_HOME","value","false","true","OS","renderRegisterConfirmation","renderVideoPlayerPopup","render","viewContainer","container","MAINTENANCE","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","minHeight","height","borderStyle","borderWidth","borderColor","borderRadius","PINKISH_GREY","top","left","right","bottom","textShadowColor","textShadowOffset","mapStateToProps","user","connection","profilePic","getMainBrandingColourFromState"],"sources":["ServiceRequest.js"],"sourcesContent":["import React, { Component } from 'react';\nimport {\n Dimensions,\n Platform,\n KeyboardAvoidingView,\n ScrollView,\n Text,\n TouchableOpacity,\n View,\n Switch,\n FlatList,\n ImageBackground,\n Keyboard,\n} from 'react-native';\nimport _ from 'lodash';\nimport { Icon } from 'react-native-elements';\nimport { connect } from 'react-redux';\nimport { jobAdded } from '../actions';\nimport { generalActions } from '../apis';\nimport { Services } from '../feature.config';\nimport { Components, Colours, Helper, Config } from '../core.config';\n\nconst PHOTO_SIZE = (Dimensions.get('window').width - 64) / 3;\n\nclass MaintenanceRequest extends Component {\n constructor(props) {\n super(props);\n this.state = {\n submitting: false,\n success: false,\n fail: false,\n error: null,\n showError: false,\n\n userName: '',\n roomNumber: '',\n phone: '',\n title: '',\n description: '',\n times: '',\n\n type: 'General',\n\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n showFullscreenVideo: false,\n currentVideoUrl: '',\n\n isHome: false,\n\n types: [],\n\n confirmationToShow: false,\n };\n this.checkThumb = null;\n }\n\n componentDidMount() {\n if (this.props.userType !== 'KIOSK') {\n this.setState({\n userName: this.props.displayName,\n roomNumber: this.props.unit,\n phone: !_.isEmpty(this.props.phoneNumber) ? this.props.phoneNumber : '',\n });\n }\n this.getJobTypes();\n }\n\n componentWillUnmount() {\n clearInterval(this.checkThumb);\n }\n\n onUploadStarted = (uploadUri, imageUri) => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: true,\n uploadProgress: '0%',\n uploadUri,\n imageUri,\n allowRetry: true,\n });\n\n this.setState({ images });\n };\n\n onUploadProgress = progress => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === progress.uri) {\n img.uploadProgress = progress.percentage;\n img.uploading = true;\n img.allowRetry = true;\n }\n });\n this.setState({ images });\n };\n\n onUploadSuccess = async (uri, uploadUri) => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri && img.uploading) {\n img.url = uri.replace('/general/', '/general1400/');\n img.thumbNailExists = false;\n img.thumbNailUrl = Helper.getThumb300(img.url);\n img.allowRetry = true;\n }\n });\n this.setState({ images }, () => this.waitForThumbnails());\n };\n\n onUploadFailed = uploadUri => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri) {\n img.uploading = true; // Requried for retry\n img.uploadProgress = '';\n img.allowRetry = true;\n }\n });\n\n this.setState({ images });\n };\n\n onLibrarySelected = uri => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: false,\n allowRetry: false,\n url: Helper.get1400(uri),\n thumbNailExists: true,\n thumbNailUrl: Helper.getThumb300(uri),\n });\n\n this.setState({ images });\n };\n\n onPressBack() {\n Services.navigation.goBack();\n }\n\n onPressType() {\n Services.navigation.navigate('jobTypePicker', {\n currentType: this.state.type,\n types: this.state.types,\n onSelectType: this.pickType.bind(this),\n });\n }\n\n onCloseConfirmationPopup() {\n this.setState({\n confirmationToShow: false,\n });\n Services.navigation.goBack();\n this.props.onBack && this.props.onBack();\n }\n\n onConfirmationReset() {\n this.setState({\n confirmationToShow: false,\n title: '',\n description: '',\n times: '',\n isHome: false,\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n submitting: false,\n success: false,\n fail: false,\n });\n }\n\n getJobTypes() {\n const self = this;\n generalActions\n .getJobTypes(Helper.getSite(this.props.site))\n .then(res => {\n self.setState({\n types: res.data,\n });\n self.getDefaultJob();\n })\n .catch(() => {});\n }\n\n getDefaultJob() {\n if (this.state.types.length !== 0 && this.state.jobId == null) {\n this.setState({ type: this.state.types[0].typeName });\n }\n }\n\n pickType(type) {\n this.setState({ type });\n }\n\n showUploadMenu = () => {\n Keyboard.dismiss();\n if (this.state.uploadingImage || this.state.submitting) {\n return;\n }\n this.imageUploader.showUploadMenu();\n };\n\n submit = async () => {\n this.setState({ submitting: true });\n\n let description = this.state.description;\n\n if (this.state.isHome) {\n description = description + `. -- Times Available: ${this.state.times}`;\n }\n\n setTimeout(() => {\n this.scrollContainer.scrollTo({ y: 0 });\n }, 100);\n\n const images = _.filter(this.state.images, img => {\n return !img.uploading && !img.add;\n }).map(img => {\n return img.url;\n });\n\n generalActions\n .sendMaintenanceRequest(\n this.props.uid,\n this.state.userName,\n this.state.phone,\n this.state.roomNumber,\n this.state.title,\n description,\n null,\n this.state.type,\n images,\n Helper.getSite(this.props.site),\n this.state.isHome,\n this.state.times,\n )\n .then(res => {\n if (res.data.success) {\n this.refreshRequest(res.data.searchResult);\n if (this.props.onSubmissionSuccess) this.props.onSubmissionSuccess(res.data);\n this.setState({\n submitting: false,\n success: true,\n confirmationToShow: true,\n });\n } else {\n this.setState({\n submitting: false,\n });\n }\n })\n .catch(err => {\n console.log('maintenance submission fail.');\n console.log(err);\n this.setState({\n submitting: false,\n });\n });\n };\n\n refreshRequest = async id => {\n try {\n const job = await generalActions.getJob(Helper.getSite(this.props.site), id);\n // console.log('refreshRequest', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('refreshRequest error', error);\n }\n };\n\n submitRequest() {\n if (this.state.submitting || !this.props.connected) {\n if (!this.props.connected) {\n this.setState({ error: { message: 'No internet connection detected' } });\n }\n return;\n }\n if (this.state.uploadingImage) {\n return;\n }\n this.setState({ error: null, showError: false });\n if (this.state.title.length === 0 || !this.state.roomNumber || this.state.roomNumber.length === 0) {\n this.setState({ showError: true });\n return;\n }\n if (this.state.isHome && this.state.times.length < 2) {\n this.setState({ showError: true });\n return;\n }\n this.submit();\n }\n\n waitForThumbnails = () => {\n if (this.checkThumb) return;\n\n this.checkThumb = setInterval(async () => {\n const images = [];\n await Promise.all(\n this.state.images.map(image => {\n return new Promise(async resolve => {\n const newImage = { ...image };\n images.push(newImage);\n if (newImage.url && !newImage.thumbNailExists) {\n newImage.uploading = false;\n newImage.allowRetry = false;\n newImage.thumbNailExists = await Helper.imageExists(newImage.thumbNailUrl);\n resolve(newImage.thumbNailExists);\n }\n resolve(true);\n });\n }),\n );\n const thumbnailsExist = images.every(image => !image.url || image.thumbNailExists);\n if (thumbnailsExist) {\n clearInterval(this.checkThumb);\n this.checkThumb = null;\n this.setState({ images });\n }\n }, 2000);\n };\n\n removeImage = index => {\n const images = [...this.state.images];\n images.splice(index, 1);\n\n this.setState({ images });\n };\n\n toggleFullscreenVideo = url => {\n if (typeof url !== 'string') url = '';\n this.setState({ showFullscreenVideo: url.length > 0, currentVideoUrl: url });\n };\n\n renderUploadMenu() {\n return (\n <Components.ImageUploader\n ref={ref => (this.imageUploader = ref)}\n onUploadStarted={this.onUploadStarted}\n onUploadSuccess={this.onUploadSuccess}\n onUploadFailed={this.onUploadFailed}\n onUploadProgress={this.onUploadProgress}\n onLibrarySelected={this.onLibrarySelected}\n size={{ width: 1400 }}\n quality={0.8}\n fileName={'serviceImage'}\n popupTitle={'Upload Image'}\n userId={this.props.uid}\n allowsEditing={false}\n multiple\n hideLibrary\n />\n );\n }\n\n renderImage(item, index) {\n const isVideoUrl = Helper.isVideo(item.url);\n\n if (item.add) {\n return (\n <TouchableOpacity activeOpacity={0.8} onPress={this.showUploadMenu}>\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n <View style={styles.imageCircle}>\n <Icon name=\"camera\" type=\"font-awesome\" iconStyle={styles.addImageIcon} />\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n return (\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n {item.uploading ? (\n <Components.ImageUploadProgress uploader={this.imageUploader} image={item} color={this.props.colourBrandingMain} />\n ) : (\n <ImageBackground\n style={styles.imageBackground}\n source={Helper.getImageSource(item.thumbNailExists ? item.thumbNailUrl : item.url)}\n >\n {isVideoUrl && (\n <View style={styles.imagePlayContainer}>\n <TouchableOpacity onPress={this.toggleFullscreenVideo.bind(this, item.url)}>\n <Icon name=\"play\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} />\n </TouchableOpacity>\n </View>\n )}\n <TouchableOpacity style={styles.removeImage} onPress={this.removeImage.bind(this, index)}>\n <Icon name=\"remove\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} style={styles.removeImage} />\n </TouchableOpacity>\n </ImageBackground>\n )}\n </View>\n );\n }\n\n renderSuccess() {\n return (\n <View style={{ padding: 16, flex: 1, backgroundColor: '#fff' }}>\n <Text style={styles.requestSuccess}>Your request has been submitted. Thank you.</Text>\n </View>\n );\n }\n\n renderImageList() {\n return (\n <View style={styles.imageSection}>\n <View style={[styles.imageListContainer, this.state.images.length < 2 && styles.imageListContainerEmpty]}>\n <FlatList\n keyboardShouldPersistTaps=\"always\"\n enableEmptySections\n data={this.state.images}\n renderItem={({ item, index }) => this.renderImage(item, index)}\n keyExtractor={(item, index) => index}\n numColumns={3}\n />\n </View>\n </View>\n );\n }\n\n renderForm() {\n return (\n <View style={{ flex: 1 }}>\n <ScrollView keyboardShouldPersistTaps=\"always\" style={{ flex: 1 }} ref={ref => (this.scrollContainer = ref)}>\n <View style={{ paddingBottom: 2 }}>\n <Components.LoadingIndicator visible={this.state.submitting} />\n {this.state.error && <Text style={styles.errorText}>{this.state.error}</Text>}\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Name'}\n placeholder={'Enter your name'}\n textValue={this.state.userName}\n onChangeText={userName => this.setState({ userName })}\n editable={this.props.userType === 'KIOSK' && this.state.submitting === false}\n isValid={() => {\n return this.state.userName.length > 1;\n }}\n required\n errorText=\"Please enter your name.\"\n showError={this.state.showError && this.state.userName.length < 2}\n hasUnderline\n />\n <Components.FormCardSection\n label={'Contact number'}\n placeholder={'Enter phone number'}\n textValue={this.state.phone}\n onChangeText={phone => this.setState({ phone })}\n editable={this.state.submitting === false}\n hasUnderline\n keyboardType={'phone-pad'}\n />\n <Components.FormCardSection\n label={'Address'}\n placeholder={'Enter your address'}\n textValue={this.state.roomNumber}\n onChangeText={roomNumber => this.setState({ roomNumber })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.roomNumber && this.state.roomNumber.length > 1;\n }}\n required\n errorText=\"Please provide your address.\"\n showError={this.state.showError && this.state.roomNumber && this.state.roomNumber.length < 2}\n />\n </Components.FormCard>\n <Components.FormCard\n style={{ marginTop: 16, paddingHorizontal: 24, paddingVertical: 16, flexDirection: 'row', justifyContent: 'space-between' }}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.JOB_TYPE}</Text>\n <TouchableOpacity onPress={this.onPressType.bind(this)}>\n <View style={{ flexDirection: 'row' }}>\n <Text style={[styles.sectionTitle, { color: this.props.colourBrandingMain, marginRight: 16 }]}>{this.state.type}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.sectionTitle, { fontSize: 20, color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Title'}\n placeholder={'Enter a title for your request'}\n textValue={this.state.title}\n onChangeText={title => this.setState({ title })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.title.length > 1;\n }}\n required\n errorText=\"Please provide a title.\"\n showError={this.state.showError && this.state.title.length < 2}\n autoCorrect\n multiline\n autoGrow\n />\n <Components.FormCardSection\n label={'Description'}\n placeholder={'Describe your request here in detail'}\n textValue={this.state.description}\n onChangeText={description => this.setState({ description })}\n editable={this.state.submitting === false}\n hasUnderline\n autoCorrect\n multiline\n autoGrow\n />\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16, paddingHorizontal: 24 }}>\n <View\n style={[\n {\n width: '100%',\n paddingVertical: 16,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n },\n this.state.isHome && { borderBottomWidth: 1, borderBottomColor: Colours.LINEGREY },\n ]}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.MAINTENANCE_HOME}</Text>\n <Switch\n value={this.state.isHome}\n disabled={this.state.submitting}\n onValueChange={value => this.setState({ isHome: value })}\n trackColor={{ false: '#ddd', true: this.props.colourBrandingMain }}\n thumbColor={Platform.OS === 'android' ? '#fff' : null}\n />\n </View>\n {this.state.isHome && (\n <Components.FormCardSection\n label={'Available times'}\n placeholder={'Describe your available times here in detail.'}\n textValue={this.state.times}\n onChangeText={times => this.setState({ times })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.times.length > 1;\n }}\n required\n errorText=\"Please provide available times.\"\n showError={this.state.showError && this.state.isHome && this.state.times.length < 2}\n minHeight={40}\n autoCorrect\n multiline\n autoGrow\n />\n )}\n </Components.FormCard>\n {this.renderImageList()}\n </View>\n </ScrollView>\n </View>\n );\n }\n\n renderRegisterConfirmation() {\n return (\n <Components.ConfirmationPopup\n confirmText={'Request submitted'}\n repeatText={'Submit another'}\n visible={this.state.confirmationToShow}\n onClose={this.onCloseConfirmationPopup.bind(this)}\n onPressAction={this.onConfirmationReset.bind(this)}\n />\n );\n }\n\n renderVideoPlayerPopup() {\n const { showFullscreenVideo, currentVideoUrl } = this.state;\n if (!currentVideoUrl) return;\n\n return (\n <Components.VideoPopup\n uri={currentVideoUrl}\n visible={showFullscreenVideo}\n showFullscreenButton={false}\n onClose={this.toggleFullscreenVideo}\n />\n );\n }\n\n render() {\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.viewContainer}>\n {this.renderUploadMenu()}\n <View style={styles.container}>\n <Components.Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n text={Config.env.strings.MAINTENANCE}\n rightText={this.state.submitting || this.state.success ? null : 'Done'}\n onPressRight={this.submitRequest.bind(this)}\n absoluteRight\n />\n {this.renderForm()}\n </View>\n {this.renderRegisterConfirmation()}\n {this.renderVideoPlayerPopup()}\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = {\n viewContainer: {\n flex: 1,\n backgroundColor: '#fff',\n },\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#f0f0f5',\n },\n errorText: {\n fontFamily: 'sf-regular',\n color: Colours.COLOUR_TANGERINE,\n fontSize: 16,\n },\n requestSuccess: {\n fontFamily: 'sf-regular',\n color: Colours.TEXT_DARK,\n fontSize: 17,\n textAlign: 'center',\n },\n sectionTitle: {\n fontFamily: 'sf-regular',\n fontSize: 17,\n color: Colours.TEXT_DARK,\n },\n imageListContainer: {\n marginTop: 8,\n padding: 8,\n flexDirection: 'row',\n backgroundColor: Colours.BOXGREY,\n minHeight: 106,\n },\n imageListContainerEmpty: {\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n },\n imageContainer: {\n width: PHOTO_SIZE,\n height: PHOTO_SIZE,\n borderStyle: 'dashed',\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n borderRadius: 4,\n marginLeft: 8,\n },\n imageContainerNotEmpty: {\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n backgroundColor: '#fff',\n borderStyle: 'dashed',\n },\n imageBackground: {\n flex: 1,\n height: '100%',\n width: '100%',\n borderRadius: 4,\n },\n imageCircle: {\n width: 90,\n height: 90,\n borderRadius: 45,\n backgroundColor: Colours.PINKISH_GREY,\n justifyContent: 'center',\n },\n addImageIcon: {\n color: '#fff',\n fontSize: 32,\n },\n imagePlayContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n },\n imageControlIcon: {\n color: '#fff',\n fontSize: 20,\n textShadowColor: 'rgba(0,0,0,0.3)',\n textShadowOffset: { width: 2, height: 2 },\n },\n removeImage: {\n position: 'absolute',\n top: 0,\n right: 0,\n padding: 4,\n width: 40,\n height: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n};\n\nconst mapStateToProps = state => {\n const { user, connection } = state;\n const { displayName, profilePic, uid, site, unit, phoneNumber } = user;\n return {\n connected: connection.connected,\n userType: user.type,\n displayName,\n profilePic,\n uid,\n site,\n unit,\n phoneNumber,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, { jobAdded })(MaintenanceRequest);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","Component","Dimensions","Platform","KeyboardAvoidingView","ScrollView","Text","TouchableOpacity","View","Switch","FlatList","ImageBackground","Keyboard","_","Icon","connect","jobAdded","generalActions","Services","Components","Colours","Helper","Config","PHOTO_SIZE","get","width","MaintenanceRequest","constructor","props","_defineProperty","uploadUri","imageUri","images","state","splice","length","uploading","uploadProgress","allowRetry","setState","progress","map","img","uri","percentage","url","replace","thumbNailExists","thumbNailUrl","getThumb300","waitForThumbnails","get1400","dismiss","uploadingImage","submitting","imageUploader","showUploadMenu","description","isHome","times","setTimeout","scrollContainer","scrollTo","y","filter","add","sendMaintenanceRequest","uid","userName","phone","roomNumber","title","type","getSite","site","then","res","data","success","refreshRequest","searchResult","onSubmissionSuccess","confirmationToShow","catch","err","console","log","id","job","getJob","error","checkThumb","setInterval","Promise","all","image","resolve","newImage","push","imageExists","thumbnailsExist","every","clearInterval","index","showFullscreenVideo","currentVideoUrl","fail","showError","types","componentDidMount","userType","displayName","unit","isEmpty","phoneNumber","getJobTypes","componentWillUnmount","onPressBack","navigation","goBack","onPressType","navigate","currentType","onSelectType","pickType","bind","onCloseConfirmationPopup","onBack","onConfirmationReset","self","getDefaultJob","jobId","typeName","submitRequest","connected","message","submit","renderUploadMenu","createElement","ImageUploader","ref","onUploadStarted","onUploadSuccess","onUploadFailed","onUploadProgress","onLibrarySelected","size","quality","fileName","popupTitle","userId","allowsEditing","multiple","hideLibrary","renderImage","item","isVideoUrl","isVideo","activeOpacity","onPress","style","styles","imageContainer","imageContainerNotEmpty","marginLeft","marginTop","imageCircle","name","iconStyle","addImageIcon","ImageUploadProgress","uploader","color","colourBrandingMain","imageBackground","source","getImageSource","imagePlayContainer","toggleFullscreenVideo","imageControlIcon","removeImage","renderSuccess","padding","flex","backgroundColor","requestSuccess","renderImageList","imageSection","imageListContainer","imageListContainerEmpty","keyboardShouldPersistTaps","enableEmptySections","renderItem","_ref","keyExtractor","numColumns","renderForm","paddingBottom","LoadingIndicator","visible","errorText","FormCard","FormCardSection","label","placeholder","textValue","onChangeText","editable","isValid","required","hasUnderline","keyboardType","paddingHorizontal","paddingVertical","flexDirection","justifyContent","sectionTitle","env","strings","JOB_TYPE","marginRight","fontSize","autoCorrect","multiline","autoGrow","alignItems","position","borderBottomWidth","borderBottomColor","LINEGREY","MAINTENANCE_HOME","value","disabled","onValueChange","trackColor","false","true","thumbColor","OS","minHeight","renderRegisterConfirmation","ConfirmationPopup","confirmText","repeatText","onClose","onPressAction","renderVideoPlayerPopup","VideoPopup","showFullscreenButton","render","behavior","viewContainer","container","Header","leftIcon","onPressLeft","text","MAINTENANCE","rightText","onPressRight","absoluteRight","fontFamily","COLOUR_TANGERINE","TEXT_DARK","textAlign","BOXGREY","height","borderStyle","borderWidth","borderColor","borderRadius","PINKISH_GREY","top","left","right","bottom","textShadowColor","textShadowOffset","mapStateToProps","user","connection","profilePic","getMainBrandingColourFromState"],"sources":["ServiceRequest.js"],"sourcesContent":["import React, { Component } from 'react';\nimport {\n Dimensions,\n Platform,\n KeyboardAvoidingView,\n ScrollView,\n Text,\n TouchableOpacity,\n View,\n Switch,\n FlatList,\n ImageBackground,\n Keyboard,\n} from 'react-native';\nimport _ from 'lodash';\nimport { Icon } from 'react-native-elements';\nimport { connect } from 'react-redux';\nimport { jobAdded } from '../actions';\nimport { generalActions } from '../apis';\nimport { Services } from '../feature.config';\nimport { Components, Colours, Helper, Config } from '../core.config';\n\nconst PHOTO_SIZE = (Dimensions.get('window').width - 64) / 3;\n\nclass MaintenanceRequest extends Component {\n constructor(props) {\n super(props);\n this.state = {\n submitting: false,\n success: false,\n fail: false,\n error: null,\n showError: false,\n\n userName: '',\n roomNumber: '',\n phone: '',\n title: '',\n description: '',\n times: '',\n\n type: 'General',\n\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n showFullscreenVideo: false,\n currentVideoUrl: '',\n\n isHome: false,\n\n types: [],\n\n confirmationToShow: false,\n };\n this.checkThumb = null;\n }\n\n componentDidMount() {\n if (this.props.userType !== 'KIOSK') {\n this.setState({\n userName: this.props.displayName,\n roomNumber: this.props.unit,\n phone: !_.isEmpty(this.props.phoneNumber) ? this.props.phoneNumber : '',\n });\n }\n this.getJobTypes();\n }\n\n componentWillUnmount() {\n clearInterval(this.checkThumb);\n }\n\n onUploadStarted = (uploadUri, imageUri) => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: true,\n uploadProgress: '0%',\n uploadUri,\n imageUri,\n allowRetry: true,\n });\n\n this.setState({ images });\n };\n\n onUploadProgress = progress => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === progress.uri) {\n img.uploadProgress = progress.percentage;\n img.uploading = true;\n img.allowRetry = true;\n }\n });\n this.setState({ images });\n };\n\n onUploadSuccess = async (uri, uploadUri) => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri && img.uploading) {\n img.url = uri.replace('/general/', '/general1400/');\n img.thumbNailExists = false;\n img.thumbNailUrl = Helper.getThumb300(img.url);\n img.allowRetry = true;\n }\n });\n this.setState({ images }, () => this.waitForThumbnails());\n };\n\n onUploadFailed = uploadUri => {\n const images = [...this.state.images];\n images.map(img => {\n if (img.uploadUri === uploadUri) {\n img.uploading = true; // Requried for retry\n img.uploadProgress = '';\n img.allowRetry = true;\n }\n });\n\n this.setState({ images });\n };\n\n onLibrarySelected = uri => {\n const images = [...this.state.images];\n images.splice(images.length - 1, 0, {\n uploading: false,\n allowRetry: false,\n url: Helper.get1400(uri),\n thumbNailExists: true,\n thumbNailUrl: Helper.getThumb300(uri),\n });\n\n this.setState({ images });\n };\n\n onPressBack() {\n Services.navigation.goBack();\n }\n\n onPressType() {\n Services.navigation.navigate('jobTypePicker', {\n currentType: this.state.type,\n types: this.state.types,\n onSelectType: this.pickType.bind(this),\n });\n }\n\n onCloseConfirmationPopup() {\n this.setState({\n confirmationToShow: false,\n });\n Services.navigation.goBack();\n this.props.onBack && this.props.onBack();\n }\n\n onConfirmationReset() {\n this.setState({\n confirmationToShow: false,\n title: '',\n description: '',\n times: '',\n isHome: false,\n uploadingImage: false,\n images: [\n {\n add: true,\n },\n ],\n submitting: false,\n success: false,\n fail: false,\n });\n }\n\n getJobTypes() {\n const self = this;\n generalActions\n .getJobTypes(Helper.getSite(this.props.site))\n .then(res => {\n self.setState({\n types: res.data,\n });\n self.getDefaultJob();\n })\n .catch(() => {});\n }\n\n getDefaultJob() {\n if (this.state.types.length !== 0 && this.state.jobId == null) {\n this.setState({ type: this.state.types[0].typeName });\n }\n }\n\n pickType(type) {\n this.setState({ type });\n }\n\n showUploadMenu = () => {\n Keyboard.dismiss();\n if (this.state.uploadingImage || this.state.submitting) {\n return;\n }\n this.imageUploader.showUploadMenu();\n };\n\n submit = async () => {\n this.setState({ submitting: true });\n\n let description = this.state.description;\n\n if (this.state.isHome) {\n description = description + `. -- Times Available: ${this.state.times}`;\n }\n\n setTimeout(() => {\n this.scrollContainer.scrollTo({ y: 0 });\n }, 100);\n\n const images = _.filter(this.state.images, img => {\n return !img.uploading && !img.add;\n }).map(img => {\n return img.url;\n });\n\n generalActions\n .sendMaintenanceRequest(\n this.props.uid,\n this.state.userName,\n this.state.phone,\n this.state.roomNumber,\n this.state.title,\n description,\n null,\n this.state.type,\n images,\n Helper.getSite(this.props.site),\n this.state.isHome,\n this.state.times,\n )\n .then(res => {\n if (res.data.success) {\n this.refreshRequest(res.data.searchResult);\n if (this.props.onSubmissionSuccess) this.props.onSubmissionSuccess(res.data);\n this.setState({\n submitting: false,\n success: true,\n confirmationToShow: true,\n });\n } else {\n this.setState({\n submitting: false,\n });\n }\n })\n .catch(err => {\n console.log('maintenance submission fail.');\n console.log(err);\n this.setState({\n submitting: false,\n });\n });\n };\n\n refreshRequest = async id => {\n try {\n const job = await generalActions.getJob(Helper.getSite(this.props.site), id);\n // console.log('refreshRequest', job?.data);\n this.props.jobAdded(job.data);\n } catch (error) {\n console.log('refreshRequest error', error);\n }\n };\n\n submitRequest() {\n if (this.state.submitting || !this.props.connected) {\n if (!this.props.connected) {\n this.setState({ error: { message: 'No internet connection detected' } });\n }\n return;\n }\n if (this.state.uploadingImage) {\n return;\n }\n this.setState({ error: null, showError: false });\n if (this.state.title.length === 0 || !this.state.roomNumber || this.state.roomNumber.length === 0) {\n this.setState({ showError: true });\n return;\n }\n if (this.state.isHome && this.state.times.length < 2) {\n this.setState({ showError: true });\n return;\n }\n this.submit();\n }\n\n waitForThumbnails = () => {\n if (this.checkThumb) return;\n\n this.checkThumb = setInterval(async () => {\n const images = [];\n await Promise.all(\n this.state.images.map(image => {\n return new Promise(async resolve => {\n const newImage = { ...image };\n images.push(newImage);\n if (newImage.url && !newImage.thumbNailExists) {\n newImage.uploading = false;\n newImage.allowRetry = false;\n newImage.thumbNailExists = await Helper.imageExists(newImage.thumbNailUrl);\n resolve(newImage.thumbNailExists);\n }\n resolve(true);\n });\n }),\n );\n const thumbnailsExist = images.every(image => !image.url || image.thumbNailExists);\n if (thumbnailsExist) {\n clearInterval(this.checkThumb);\n this.checkThumb = null;\n this.setState({ images });\n }\n }, 2000);\n };\n\n removeImage = index => {\n const images = [...this.state.images];\n images.splice(index, 1);\n\n this.setState({ images });\n };\n\n toggleFullscreenVideo = url => {\n if (typeof url !== 'string') url = '';\n this.setState({ showFullscreenVideo: url.length > 0, currentVideoUrl: url });\n };\n\n renderUploadMenu() {\n return (\n <Components.ImageUploader\n ref={ref => (this.imageUploader = ref)}\n onUploadStarted={this.onUploadStarted}\n onUploadSuccess={this.onUploadSuccess}\n onUploadFailed={this.onUploadFailed}\n onUploadProgress={this.onUploadProgress}\n onLibrarySelected={this.onLibrarySelected}\n size={{ width: 1400 }}\n quality={0.8}\n fileName={'serviceImage'}\n popupTitle={'Upload Image'}\n userId={this.props.uid}\n allowsEditing={false}\n multiple\n hideLibrary\n />\n );\n }\n\n renderImage(item, index) {\n const isVideoUrl = Helper.isVideo(item.url);\n\n if (item.add) {\n return (\n <TouchableOpacity activeOpacity={0.8} onPress={this.showUploadMenu}>\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n <View style={styles.imageCircle}>\n <Icon name=\"camera\" type=\"font-awesome\" iconStyle={styles.addImageIcon} />\n </View>\n </View>\n </TouchableOpacity>\n );\n }\n return (\n <View\n style={[\n styles.imageContainer,\n this.state.images.length > 1 && styles.imageContainerNotEmpty,\n index % 3 === 0 && { marginLeft: 0 },\n index > 2 && { marginTop: 8 },\n ]}\n >\n {item.uploading ? (\n <Components.ImageUploadProgress uploader={this.imageUploader} image={item} color={this.props.colourBrandingMain} />\n ) : (\n <ImageBackground\n style={styles.imageBackground}\n source={Helper.getImageSource(item.thumbNailExists ? item.thumbNailUrl : item.url)}\n >\n {isVideoUrl && (\n <View style={styles.imagePlayContainer}>\n <TouchableOpacity onPress={this.toggleFullscreenVideo.bind(this, item.url)}>\n <Icon name=\"play\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} />\n </TouchableOpacity>\n </View>\n )}\n <TouchableOpacity style={styles.removeImage} onPress={this.removeImage.bind(this, index)}>\n <Icon name=\"remove\" type=\"font-awesome\" iconStyle={styles.imageControlIcon} style={styles.removeImage} />\n </TouchableOpacity>\n </ImageBackground>\n )}\n </View>\n );\n }\n\n renderSuccess() {\n return (\n <View style={{ padding: 16, flex: 1, backgroundColor: '#fff' }}>\n <Text style={styles.requestSuccess}>Your request has been submitted. Thank you.</Text>\n </View>\n );\n }\n\n renderImageList() {\n return (\n <View style={styles.imageSection}>\n <View style={[styles.imageListContainer, this.state.images.length < 2 && styles.imageListContainerEmpty]}>\n <FlatList\n keyboardShouldPersistTaps=\"always\"\n enableEmptySections\n data={this.state.images}\n renderItem={({ item, index }) => this.renderImage(item, index)}\n keyExtractor={(item, index) => index}\n numColumns={3}\n />\n </View>\n </View>\n );\n }\n\n renderForm() {\n return (\n <View style={{ flex: 1 }}>\n <ScrollView keyboardShouldPersistTaps=\"always\" style={{ flex: 1 }} ref={ref => (this.scrollContainer = ref)}>\n <View style={{ paddingBottom: 2 }}>\n <Components.LoadingIndicator visible={this.state.submitting} />\n {this.state.error && <Text style={styles.errorText}>{this.state.error}</Text>}\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Name'}\n placeholder={'Enter your name'}\n textValue={this.state.userName}\n onChangeText={userName => this.setState({ userName })}\n editable={this.props.userType === 'KIOSK' && this.state.submitting === false}\n isValid={() => {\n return this.state.userName.length > 1;\n }}\n required\n errorText=\"Please enter your name.\"\n showError={this.state.showError && this.state.userName.length < 2}\n hasUnderline\n />\n <Components.FormCardSection\n label={'Contact number'}\n placeholder={'Enter phone number'}\n textValue={this.state.phone}\n onChangeText={phone => this.setState({ phone })}\n editable={this.state.submitting === false}\n hasUnderline\n keyboardType={'phone-pad'}\n />\n <Components.FormCardSection\n label={'Address'}\n placeholder={'Enter your address'}\n textValue={this.state.roomNumber}\n onChangeText={roomNumber => this.setState({ roomNumber })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.roomNumber && this.state.roomNumber.length > 1;\n }}\n required\n errorText=\"Please provide your address.\"\n showError={this.state.showError && this.state.roomNumber && this.state.roomNumber.length < 2}\n />\n </Components.FormCard>\n <Components.FormCard\n style={{ marginTop: 16, paddingHorizontal: 24, paddingVertical: 16, flexDirection: 'row', justifyContent: 'space-between' }}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.JOB_TYPE}</Text>\n <TouchableOpacity onPress={this.onPressType.bind(this)}>\n <View style={{ flexDirection: 'row' }}>\n <Text style={[styles.sectionTitle, { color: this.props.colourBrandingMain, marginRight: 16 }]}>{this.state.type}</Text>\n <Icon\n name=\"angle-right\"\n type=\"font-awesome\"\n iconStyle={[styles.sectionTitle, { fontSize: 20, color: this.props.colourBrandingMain }]}\n />\n </View>\n </TouchableOpacity>\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16 }}>\n <Components.FormCardSection\n label={'Title'}\n placeholder={'Enter a title for your request'}\n textValue={this.state.title}\n onChangeText={title => this.setState({ title })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.title.length > 1;\n }}\n required\n errorText=\"Please provide a title.\"\n showError={this.state.showError && this.state.title.length < 2}\n autoCorrect\n multiline\n autoGrow\n />\n <Components.FormCardSection\n label={'Description'}\n placeholder={'Describe your request here in detail'}\n textValue={this.state.description}\n onChangeText={description => this.setState({ description })}\n editable={this.state.submitting === false}\n hasUnderline\n autoCorrect\n multiline\n autoGrow\n />\n </Components.FormCard>\n <Components.FormCard style={{ marginTop: 16, paddingHorizontal: 24 }}>\n <View\n style={[\n {\n width: '100%',\n paddingVertical: 16,\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n position: 'relative',\n },\n this.state.isHome && { borderBottomWidth: 1, borderBottomColor: Colours.LINEGREY },\n ]}\n >\n <Text style={styles.sectionTitle}>{Config.env.strings.MAINTENANCE_HOME}</Text>\n <Switch\n value={this.state.isHome}\n disabled={this.state.submitting}\n onValueChange={value => this.setState({ isHome: value })}\n trackColor={{ false: '#ddd', true: this.props.colourBrandingMain }}\n thumbColor={Platform.OS === 'android' ? '#fff' : null}\n />\n </View>\n {this.state.isHome && (\n <Components.FormCardSection\n label={'Available times'}\n placeholder={'Describe your available times here in detail.'}\n textValue={this.state.times}\n onChangeText={times => this.setState({ times })}\n editable={this.state.submitting === false}\n hasUnderline\n isValid={() => {\n return this.state.times.length > 1;\n }}\n required\n errorText=\"Please provide available times.\"\n showError={this.state.showError && this.state.isHome && this.state.times.length < 2}\n minHeight={40}\n autoCorrect\n multiline\n autoGrow\n />\n )}\n </Components.FormCard>\n {this.renderImageList()}\n </View>\n </ScrollView>\n </View>\n );\n }\n\n renderRegisterConfirmation() {\n return (\n <Components.ConfirmationPopup\n confirmText={'Request submitted'}\n repeatText={'Submit another'}\n visible={this.state.confirmationToShow}\n onClose={this.onCloseConfirmationPopup.bind(this)}\n onPressAction={this.onConfirmationReset.bind(this)}\n />\n );\n }\n\n renderVideoPlayerPopup() {\n const { showFullscreenVideo, currentVideoUrl } = this.state;\n if (!currentVideoUrl) return;\n\n return (\n <Components.VideoPopup\n uri={currentVideoUrl}\n visible={showFullscreenVideo}\n showFullscreenButton={false}\n onClose={this.toggleFullscreenVideo}\n />\n );\n }\n\n render() {\n return (\n <KeyboardAvoidingView behavior={Platform.OS === 'ios' && 'padding'} style={styles.viewContainer}>\n {this.renderUploadMenu()}\n <View style={styles.container}>\n <Components.Header\n leftIcon=\"angle-left\"\n onPressLeft={this.onPressBack.bind(this)}\n text={Config.env.strings.MAINTENANCE}\n rightText={this.state.submitting || this.state.success ? null : 'Done'}\n onPressRight={this.submitRequest.bind(this)}\n absoluteRight\n />\n {this.renderForm()}\n </View>\n {this.renderRegisterConfirmation()}\n {this.renderVideoPlayerPopup()}\n </KeyboardAvoidingView>\n );\n }\n}\n\nconst styles = {\n viewContainer: {\n flex: 1,\n backgroundColor: '#fff',\n },\n container: {\n flex: 1,\n position: 'relative',\n backgroundColor: '#f0f0f5',\n },\n errorText: {\n fontFamily: 'sf-regular',\n color: Colours.COLOUR_TANGERINE,\n fontSize: 16,\n },\n requestSuccess: {\n fontFamily: 'sf-regular',\n color: Colours.TEXT_DARK,\n fontSize: 17,\n textAlign: 'center',\n },\n sectionTitle: {\n fontFamily: 'sf-regular',\n fontSize: 17,\n color: Colours.TEXT_DARK,\n },\n imageListContainer: {\n marginTop: 8,\n padding: 8,\n flexDirection: 'row',\n backgroundColor: Colours.BOXGREY,\n minHeight: 106,\n },\n imageListContainerEmpty: {\n justifyContent: 'center',\n alignItems: 'center',\n flexDirection: 'column',\n },\n imageContainer: {\n width: PHOTO_SIZE,\n height: PHOTO_SIZE,\n borderStyle: 'dashed',\n justifyContent: 'center',\n alignItems: 'center',\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n borderRadius: 4,\n marginLeft: 8,\n },\n imageContainerNotEmpty: {\n borderWidth: 1,\n borderColor: Colours.LINEGREY,\n backgroundColor: '#fff',\n borderStyle: 'dashed',\n },\n imageBackground: {\n flex: 1,\n height: '100%',\n width: '100%',\n borderRadius: 4,\n },\n imageCircle: {\n width: 90,\n height: 90,\n borderRadius: 45,\n backgroundColor: Colours.PINKISH_GREY,\n justifyContent: 'center',\n },\n addImageIcon: {\n color: '#fff',\n fontSize: 32,\n },\n imagePlayContainer: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n alignItems: 'center',\n justifyContent: 'center',\n },\n imageControlIcon: {\n color: '#fff',\n fontSize: 20,\n textShadowColor: 'rgba(0,0,0,0.3)',\n textShadowOffset: { width: 2, height: 2 },\n },\n removeImage: {\n position: 'absolute',\n top: 0,\n right: 0,\n padding: 4,\n width: 40,\n height: 40,\n alignItems: 'center',\n justifyContent: 'center',\n },\n};\n\nconst mapStateToProps = state => {\n const { user, connection } = state;\n const { displayName, profilePic, uid, site, unit, phoneNumber } = user;\n return {\n connected: connection.connected,\n userType: user.type,\n displayName,\n profilePic,\n uid,\n site,\n unit,\n phoneNumber,\n colourBrandingMain: Colours.getMainBrandingColourFromState(state),\n };\n};\n\nexport default connect(mapStateToProps, { jobAdded })(MaintenanceRequest);\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SACEC,UAAU,EACVC,QAAQ,EACRC,oBAAoB,EACpBC,UAAU,EACVC,IAAI,EACJC,gBAAgB,EAChBC,IAAI,EACJC,MAAM,EACNC,QAAQ,EACRC,eAAe,EACfC,QAAQ,QACH,cAAc;AACrB,OAAOC,CAAC,MAAM,QAAQ;AACtB,SAASC,IAAI,QAAQ,uBAAuB;AAC5C,SAASC,OAAO,QAAQ,aAAa;AACrC,SAASC,QAAQ,QAAQ,YAAY;AACrC,SAASC,cAAc,QAAQ,SAAS;AACxC,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,UAAU,EAAEC,OAAO,EAAEC,MAAM,EAAEC,MAAM,QAAQ,gBAAgB;AAEpE,MAAMC,UAAU,GAAG,CAACrB,UAAU,CAACsB,GAAG,CAAC,QAAQ,CAAC,CAACC,KAAK,GAAG,EAAE,IAAI,CAAC;AAE5D,MAAMC,kBAAkB,SAASzB,SAAS,CAAC;EACzC0B,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA,0BAkDG,CAACC,SAAS,EAAEC,QAAQ,KAAK;MACzC,MAAMC,MAAM,GAAG,CAAC,GAAG,IAAI,CAACC,KAAK,CAACD,MAAM,CAAC;MACrCA,MAAM,CAACE,MAAM,CAACF,MAAM,CAACG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;QAClCC,SAAS,EAAE,IAAI;QACfC,cAAc,EAAE,IAAI;QACpBP,SAAS;QACTC,QAAQ;QACRO,UAAU,EAAE;MACd,CAAC,CAAC;MAEF,IAAI,CAACC,QAAQ,CAAC;QAAEP;MAAO,CAAC,CAAC;IAC3B,CAAC;IAAAH,eAAA,2BAEkBW,QAAQ,IAAI;MAC7B,MAAMR,MAAM,GAAG,CAAC,GAAG,IAAI,CAACC,KAAK,CAACD,MAAM,CAAC;MACrCA,MAAM,CAACS,GAAG,CAACC,GAAG,IAAI;QAChB,IAAIA,GAAG,CAACZ,SAAS,KAAKU,QAAQ,CAACG,GAAG,EAAE;UAClCD,GAAG,CAACL,cAAc,GAAGG,QAAQ,CAACI,UAAU;UACxCF,GAAG,CAACN,SAAS,GAAG,IAAI;UACpBM,GAAG,CAACJ,UAAU,GAAG,IAAI;QACvB;MACF,CAAC,CAAC;MACF,IAAI,CAACC,QAAQ,CAAC;QAAEP;MAAO,CAAC,CAAC;IAC3B,CAAC;IAAAH,eAAA,0BAEiB,OAAOc,GAAG,EAAEb,SAAS,KAAK;MAC1C,MAAME,MAAM,GAAG,CAAC,GAAG,IAAI,CAACC,KAAK,CAACD,MAAM,CAAC;MACrCA,MAAM,CAACS,GAAG,CAACC,GAAG,IAAI;QAChB,IAAIA,GAAG,CAACZ,SAAS,KAAKA,SAAS,IAAIY,GAAG,CAACN,SAAS,EAAE;UAChDM,GAAG,CAACG,GAAG,GAAGF,GAAG,CAACG,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC;UACnDJ,GAAG,CAACK,eAAe,GAAG,KAAK;UAC3BL,GAAG,CAACM,YAAY,GAAG3B,MAAM,CAAC4B,WAAW,CAACP,GAAG,CAACG,GAAG,CAAC;UAC9CH,GAAG,CAACJ,UAAU,GAAG,IAAI;QACvB;MACF,CAAC,CAAC;MACF,IAAI,CAACC,QAAQ,CAAC;QAAEP;MAAO,CAAC,EAAE,MAAM,IAAI,CAACkB,iBAAiB,CAAC,CAAC,CAAC;IAC3D,CAAC;IAAArB,eAAA,yBAEgBC,SAAS,IAAI;MAC5B,MAAME,MAAM,GAAG,CAAC,GAAG,IAAI,CAACC,KAAK,CAACD,MAAM,CAAC;MACrCA,MAAM,CAACS,GAAG,CAACC,GAAG,IAAI;QAChB,IAAIA,GAAG,CAACZ,SAAS,KAAKA,SAAS,EAAE;UAC/BY,GAAG,CAACN,SAAS,GAAG,IAAI,CAAC,CAAC;UACtBM,GAAG,CAACL,cAAc,GAAG,EAAE;UACvBK,GAAG,CAACJ,UAAU,GAAG,IAAI;QACvB;MACF,CAAC,CAAC;MAEF,IAAI,CAACC,QAAQ,CAAC;QAAEP;MAAO,CAAC,CAAC;IAC3B,CAAC;IAAAH,eAAA,4BAEmBc,GAAG,IAAI;MACzB,MAAMX,MAAM,GAAG,CAAC,GAAG,IAAI,CAACC,KAAK,CAACD,MAAM,CAAC;MACrCA,MAAM,CAACE,MAAM,CAACF,MAAM,CAACG,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;QAClCC,SAAS,EAAE,KAAK;QAChBE,UAAU,EAAE,KAAK;QACjBO,GAAG,EAAExB,MAAM,CAAC8B,OAAO,CAACR,GAAG,CAAC;QACxBI,eAAe,EAAE,IAAI;QACrBC,YAAY,EAAE3B,MAAM,CAAC4B,WAAW,CAACN,GAAG;MACtC,CAAC,CAAC;MAEF,IAAI,CAACJ,QAAQ,CAAC;QAAEP;MAAO,CAAC,CAAC;IAC3B,CAAC;IAAAH,eAAA,yBAgEgB,MAAM;MACrBjB,QAAQ,CAACwC,OAAO,CAAC,CAAC;MAClB,IAAI,IAAI,CAACnB,KAAK,CAACoB,cAAc,IAAI,IAAI,CAACpB,KAAK,CAACqB,UAAU,EAAE;QACtD;MACF;MACA,IAAI,CAACC,aAAa,CAACC,cAAc,CAAC,CAAC;IACrC,CAAC;IAAA3B,eAAA,iBAEQ,YAAY;MACnB,IAAI,CAACU,QAAQ,CAAC;QAAEe,UAAU,EAAE;MAAK,CAAC,CAAC;MAEnC,IAAIG,WAAW,GAAG,IAAI,CAACxB,KAAK,CAACwB,WAAW;MAExC,IAAI,IAAI,CAACxB,KAAK,CAACyB,MAAM,EAAE;QACrBD,WAAW,GAAGA,WAAW,GAAI,0BAAyB,IAAI,CAACxB,KAAK,CAAC0B,KAAM,EAAC;MAC1E;MAEAC,UAAU,CAAC,MAAM;QACf,IAAI,CAACC,eAAe,CAACC,QAAQ,CAAC;UAAEC,CAAC,EAAE;QAAE,CAAC,CAAC;MACzC,CAAC,EAAE,GAAG,CAAC;MAEP,MAAM/B,MAAM,GAAGnB,CAAC,CAACmD,MAAM,CAAC,IAAI,CAAC/B,KAAK,CAACD,MAAM,EAAEU,GAAG,IAAI;QAChD,OAAO,CAACA,GAAG,CAACN,SAAS,IAAI,CAACM,GAAG,CAACuB,GAAG;MACnC,CAAC,CAAC,CAACxB,GAAG,CAACC,GAAG,IAAI;QACZ,OAAOA,GAAG,CAACG,GAAG;MAChB,CAAC,CAAC;MAEF5B,cAAc,CACXiD,sBAAsB,CACrB,IAAI,CAACtC,KAAK,CAACuC,GAAG,EACd,IAAI,CAAClC,KAAK,CAACmC,QAAQ,EACnB,IAAI,CAACnC,KAAK,CAACoC,KAAK,EAChB,IAAI,CAACpC,KAAK,CAACqC,UAAU,EACrB,IAAI,CAACrC,KAAK,CAACsC,KAAK,EAChBd,WAAW,EACX,IAAI,EACJ,IAAI,CAACxB,KAAK,CAACuC,IAAI,EACfxC,MAAM,EACNX,MAAM,CAACoD,OAAO,CAAC,IAAI,CAAC7C,KAAK,CAAC8C,IAAI,CAAC,EAC/B,IAAI,CAACzC,KAAK,CAACyB,MAAM,EACjB,IAAI,CAACzB,KAAK,CAAC0B,KACb,CAAC,CACAgB,IAAI,CAACC,GAAG,IAAI;QACX,IAAIA,GAAG,CAACC,IAAI,CAACC,OAAO,EAAE;UACpB,IAAI,CAACC,cAAc,CAACH,GAAG,CAACC,IAAI,CAACG,YAAY,CAAC;UAC1C,IAAI,IAAI,CAACpD,KAAK,CAACqD,mBAAmB,EAAE,IAAI,CAACrD,KAAK,CAACqD,mBAAmB,CAACL,GAAG,CAACC,IAAI,CAAC;UAC5E,IAAI,CAACtC,QAAQ,CAAC;YACZe,UAAU,EAAE,KAAK;YACjBwB,OAAO,EAAE,IAAI;YACbI,kBAAkB,EAAE;UACtB,CAAC,CAAC;QACJ,CAAC,MAAM;UACL,IAAI,CAAC3C,QAAQ,CAAC;YACZe,UAAU,EAAE;UACd,CAAC,CAAC;QACJ;MACF,CAAC,CAAC,CACD6B,KAAK,CAACC,GAAG,IAAI;QACZC,OAAO,CAACC,GAAG,CAAC,8BAA8B,CAAC;QAC3CD,OAAO,CAACC,GAAG,CAACF,GAAG,CAAC;QAChB,IAAI,CAAC7C,QAAQ,CAAC;UACZe,UAAU,EAAE;QACd,CAAC,CAAC;MACJ,CAAC,CAAC;IACN,CAAC;IAAAzB,eAAA,yBAEgB,MAAM0D,EAAE,IAAI;MAC3B,IAAI;QACF,MAAMC,GAAG,GAAG,MAAMvE,cAAc,CAACwE,MAAM,CAACpE,MAAM,CAACoD,OAAO,CAAC,IAAI,CAAC7C,KAAK,CAAC8C,IAAI,CAAC,EAAEa,EAAE,CAAC;QAC5E;QACA,IAAI,CAAC3D,KAAK,CAACZ,QAAQ,CAACwE,GAAG,CAACX,IAAI,CAAC;MAC/B,CAAC,CAAC,OAAOa,KAAK,EAAE;QACdL,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEI,KAAK,CAAC;MAC5C;IACF,CAAC;IAAA7D,eAAA,4BAwBmB,MAAM;MACxB,IAAI,IAAI,CAAC8D,UAAU,EAAE;MAErB,IAAI,CAACA,UAAU,GAAGC,WAAW,CAAC,YAAY;QACxC,MAAM5D,MAAM,GAAG,EAAE;QACjB,MAAM6D,OAAO,CAACC,GAAG,CACf,IAAI,CAAC7D,KAAK,CAACD,MAAM,CAACS,GAAG,CAACsD,KAAK,IAAI;UAC7B,OAAO,IAAIF,OAAO,CAAC,MAAMG,OAAO,IAAI;YAClC,MAAMC,QAAQ,GAAG;cAAE,GAAGF;YAAM,CAAC;YAC7B/D,MAAM,CAACkE,IAAI,CAACD,QAAQ,CAAC;YACrB,IAAIA,QAAQ,CAACpD,GAAG,IAAI,CAACoD,QAAQ,CAAClD,eAAe,EAAE;cAC7CkD,QAAQ,CAAC7D,SAAS,GAAG,KAAK;cAC1B6D,QAAQ,CAAC3D,UAAU,GAAG,KAAK;cAC3B2D,QAAQ,CAAClD,eAAe,GAAG,MAAM1B,MAAM,CAAC8E,WAAW,CAACF,QAAQ,CAACjD,YAAY,CAAC;cAC1EgD,OAAO,CAACC,QAAQ,CAAClD,eAAe,CAAC;YACnC;YACAiD,OAAO,CAAC,IAAI,CAAC;UACf,CAAC,CAAC;QACJ,CAAC,CACH,CAAC;QACD,MAAMI,eAAe,GAAGpE,MAAM,CAACqE,KAAK,CAACN,KAAK,IAAI,CAACA,KAAK,CAAClD,GAAG,IAAIkD,KAAK,CAAChD,eAAe,CAAC;QAClF,IAAIqD,eAAe,EAAE;UACnBE,aAAa,CAAC,IAAI,CAACX,UAAU,CAAC;UAC9B,IAAI,CAACA,UAAU,GAAG,IAAI;UACtB,IAAI,CAACpD,QAAQ,CAAC;YAAEP;UAAO,CAAC,CAAC;QAC3B;MACF,CAAC,EAAE,IAAI,CAAC;IACV,CAAC;IAAAH,eAAA,sBAEa0E,KAAK,IAAI;MACrB,MAAMvE,MAAM,GAAG,CAAC,GAAG,IAAI,CAACC,KAAK,CAACD,MAAM,CAAC;MACrCA,MAAM,CAACE,MAAM,CAACqE,KAAK,EAAE,CAAC,CAAC;MAEvB,IAAI,CAAChE,QAAQ,CAAC;QAAEP;MAAO,CAAC,CAAC;IAC3B,CAAC;IAAAH,eAAA,gCAEuBgB,GAAG,IAAI;MAC7B,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAEA,GAAG,GAAG,EAAE;MACrC,IAAI,CAACN,QAAQ,CAAC;QAAEiE,mBAAmB,EAAE3D,GAAG,CAACV,MAAM,GAAG,CAAC;QAAEsE,eAAe,EAAE5D;MAAI,CAAC,CAAC;IAC9E,CAAC;IAxTC,IAAI,CAACZ,KAAK,GAAG;MACXqB,UAAU,EAAE,KAAK;MACjBwB,OAAO,EAAE,KAAK;MACd4B,IAAI,EAAE,KAAK;MACXhB,KAAK,EAAE,IAAI;MACXiB,SAAS,EAAE,KAAK;MAEhBvC,QAAQ,EAAE,EAAE;MACZE,UAAU,EAAE,EAAE;MACdD,KAAK,EAAE,EAAE;MACTE,KAAK,EAAE,EAAE;MACTd,WAAW,EAAE,EAAE;MACfE,KAAK,EAAE,EAAE;MAETa,IAAI,EAAE,SAAS;MAEfnB,cAAc,EAAE,KAAK;MACrBrB,MAAM,EAAE,CACN;QACEiC,GAAG,EAAE;MACP,CAAC,CACF;MACDuC,mBAAmB,EAAE,KAAK;MAC1BC,eAAe,EAAE,EAAE;MAEnB/C,MAAM,EAAE,KAAK;MAEbkD,KAAK,EAAE,EAAE;MAET1B,kBAAkB,EAAE;IACtB,CAAC;IACD,IAAI,CAACS,UAAU,GAAG,IAAI;EACxB;EAEAkB,iBAAiBA,CAAA,EAAG;IAClB,IAAI,IAAI,CAACjF,KAAK,CAACkF,QAAQ,KAAK,OAAO,EAAE;MACnC,IAAI,CAACvE,QAAQ,CAAC;QACZ6B,QAAQ,EAAE,IAAI,CAACxC,KAAK,CAACmF,WAAW;QAChCzC,UAAU,EAAE,IAAI,CAAC1C,KAAK,CAACoF,IAAI;QAC3B3C,KAAK,EAAE,CAACxD,CAAC,CAACoG,OAAO,CAAC,IAAI,CAACrF,KAAK,CAACsF,WAAW,CAAC,GAAG,IAAI,CAACtF,KAAK,CAACsF,WAAW,GAAG;MACvE,CAAC,CAAC;IACJ;IACA,IAAI,CAACC,WAAW,CAAC,CAAC;EACpB;EAEAC,oBAAoBA,CAAA,EAAG;IACrBd,aAAa,CAAC,IAAI,CAACX,UAAU,CAAC;EAChC;EAkEA0B,WAAWA,CAAA,EAAG;IACZnG,QAAQ,CAACoG,UAAU,CAACC,MAAM,CAAC,CAAC;EAC9B;EAEAC,WAAWA,CAAA,EAAG;IACZtG,QAAQ,CAACoG,UAAU,CAACG,QAAQ,CAAC,eAAe,EAAE;MAC5CC,WAAW,EAAE,IAAI,CAACzF,KAAK,CAACuC,IAAI;MAC5BoC,KAAK,EAAE,IAAI,CAAC3E,KAAK,CAAC2E,KAAK;MACvBe,YAAY,EAAE,IAAI,CAACC,QAAQ,CAACC,IAAI,CAAC,IAAI;IACvC,CAAC,CAAC;EACJ;EAEAC,wBAAwBA,CAAA,EAAG;IACzB,IAAI,CAACvF,QAAQ,CAAC;MACZ2C,kBAAkB,EAAE;IACtB,CAAC,CAAC;IACFhE,QAAQ,CAACoG,UAAU,CAACC,MAAM,CAAC,CAAC;IAC5B,IAAI,CAAC3F,KAAK,CAACmG,MAAM,IAAI,IAAI,CAACnG,KAAK,CAACmG,MAAM,CAAC,CAAC;EAC1C;EAEAC,mBAAmBA,CAAA,EAAG;IACpB,IAAI,CAACzF,QAAQ,CAAC;MACZ2C,kBAAkB,EAAE,KAAK;MACzBX,KAAK,EAAE,EAAE;MACTd,WAAW,EAAE,EAAE;MACfE,KAAK,EAAE,EAAE;MACTD,MAAM,EAAE,KAAK;MACbL,cAAc,EAAE,KAAK;MACrBrB,MAAM,EAAE,CACN;QACEiC,GAAG,EAAE;MACP,CAAC,CACF;MACDX,UAAU,EAAE,KAAK;MACjBwB,OAAO,EAAE,KAAK;MACd4B,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEAS,WAAWA,CAAA,EAAG;IACZ,MAAMc,IAAI,GAAG,IAAI;IACjBhH,cAAc,CACXkG,WAAW,CAAC9F,MAAM,CAACoD,OAAO,CAAC,IAAI,CAAC7C,KAAK,CAAC8C,IAAI,CAAC,CAAC,CAC5CC,IAAI,CAACC,GAAG,IAAI;MACXqD,IAAI,CAAC1F,QAAQ,CAAC;QACZqE,KAAK,EAAEhC,GAAG,CAACC;MACb,CAAC,CAAC;MACFoD,IAAI,CAACC,aAAa,CAAC,CAAC;IACtB,CAAC,CAAC,CACD/C,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;EACpB;EAEA+C,aAAaA,CAAA,EAAG;IACd,IAAI,IAAI,CAACjG,KAAK,CAAC2E,KAAK,CAACzE,MAAM,KAAK,CAAC,IAAI,IAAI,CAACF,KAAK,CAACkG,KAAK,IAAI,IAAI,EAAE;MAC7D,IAAI,CAAC5F,QAAQ,CAAC;QAAEiC,IAAI,EAAE,IAAI,CAACvC,KAAK,CAAC2E,KAAK,CAAC,CAAC,CAAC,CAACwB;MAAS,CAAC,CAAC;IACvD;EACF;EAEAR,QAAQA,CAACpD,IAAI,EAAE;IACb,IAAI,CAACjC,QAAQ,CAAC;MAAEiC;IAAK,CAAC,CAAC;EACzB;EA8EA6D,aAAaA,CAAA,EAAG;IACd,IAAI,IAAI,CAACpG,KAAK,CAACqB,UAAU,IAAI,CAAC,IAAI,CAAC1B,KAAK,CAAC0G,SAAS,EAAE;MAClD,IAAI,CAAC,IAAI,CAAC1G,KAAK,CAAC0G,SAAS,EAAE;QACzB,IAAI,CAAC/F,QAAQ,CAAC;UAAEmD,KAAK,EAAE;YAAE6C,OAAO,EAAE;UAAkC;QAAE,CAAC,CAAC;MAC1E;MACA;IACF;IACA,IAAI,IAAI,CAACtG,KAAK,CAACoB,cAAc,EAAE;MAC7B;IACF;IACA,IAAI,CAACd,QAAQ,CAAC;MAAEmD,KAAK,EAAE,IAAI;MAAEiB,SAAS,EAAE;IAAM,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC1E,KAAK,CAACsC,KAAK,CAACpC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAACF,KAAK,CAACqC,UAAU,IAAI,IAAI,CAACrC,KAAK,CAACqC,UAAU,CAACnC,MAAM,KAAK,CAAC,EAAE;MACjG,IAAI,CAACI,QAAQ,CAAC;QAAEoE,SAAS,EAAE;MAAK,CAAC,CAAC;MAClC;IACF;IACA,IAAI,IAAI,CAAC1E,KAAK,CAACyB,MAAM,IAAI,IAAI,CAACzB,KAAK,CAAC0B,KAAK,CAACxB,MAAM,GAAG,CAAC,EAAE;MACpD,IAAI,CAACI,QAAQ,CAAC;QAAEoE,SAAS,EAAE;MAAK,CAAC,CAAC;MAClC;IACF;IACA,IAAI,CAAC6B,MAAM,CAAC,CAAC;EACf;EA2CAC,gBAAgBA,CAAA,EAAG;IACjB,oBACEzI,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACwH,aAAa;MACvBC,GAAG,EAAEA,GAAG,IAAK,IAAI,CAACrF,aAAa,GAAGqF,GAAK;MACvCC,eAAe,EAAE,IAAI,CAACA,eAAgB;MACtCC,eAAe,EAAE,IAAI,CAACA,eAAgB;MACtCC,cAAc,EAAE,IAAI,CAACA,cAAe;MACpCC,gBAAgB,EAAE,IAAI,CAACA,gBAAiB;MACxCC,iBAAiB,EAAE,IAAI,CAACA,iBAAkB;MAC1CC,IAAI,EAAE;QAAEzH,KAAK,EAAE;MAAK,CAAE;MACtB0H,OAAO,EAAE,GAAI;MACbC,QAAQ,EAAE,cAAe;MACzBC,UAAU,EAAE,cAAe;MAC3BC,MAAM,EAAE,IAAI,CAAC1H,KAAK,CAACuC,GAAI;MACvBoF,aAAa,EAAE,KAAM;MACrBC,QAAQ;MACRC,WAAW;IAAA,CACZ,CAAC;EAEN;EAEAC,WAAWA,CAACC,IAAI,EAAEpD,KAAK,EAAE;IACvB,MAAMqD,UAAU,GAAGvI,MAAM,CAACwI,OAAO,CAACF,IAAI,CAAC9G,GAAG,CAAC;IAE3C,IAAI8G,IAAI,CAAC1F,GAAG,EAAE;MACZ,oBACEjE,KAAA,CAAA0I,aAAA,CAACnI,gBAAgB;QAACuJ,aAAa,EAAE,GAAI;QAACC,OAAO,EAAE,IAAI,CAACvG;MAAe,gBACjExD,KAAA,CAAA0I,aAAA,CAAClI,IAAI;QACHwJ,KAAK,EAAE,CACLC,MAAM,CAACC,cAAc,EACrB,IAAI,CAACjI,KAAK,CAACD,MAAM,CAACG,MAAM,GAAG,CAAC,IAAI8H,MAAM,CAACE,sBAAsB,EAC7D5D,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI;UAAE6D,UAAU,EAAE;QAAE,CAAC,EACpC7D,KAAK,GAAG,CAAC,IAAI;UAAE8D,SAAS,EAAE;QAAE,CAAC;MAC7B,gBAEFrK,KAAA,CAAA0I,aAAA,CAAClI,IAAI;QAACwJ,KAAK,EAAEC,MAAM,CAACK;MAAY,gBAC9BtK,KAAA,CAAA0I,aAAA,CAAC5H,IAAI;QAACyJ,IAAI,EAAC,QAAQ;QAAC/F,IAAI,EAAC,cAAc;QAACgG,SAAS,EAAEP,MAAM,CAACQ;MAAa,CAAE,CACrE,CACF,CACU,CAAC;IAEvB;IACA,oBACEzK,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MACHwJ,KAAK,EAAE,CACLC,MAAM,CAACC,cAAc,EACrB,IAAI,CAACjI,KAAK,CAACD,MAAM,CAACG,MAAM,GAAG,CAAC,IAAI8H,MAAM,CAACE,sBAAsB,EAC7D5D,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI;QAAE6D,UAAU,EAAE;MAAE,CAAC,EACpC7D,KAAK,GAAG,CAAC,IAAI;QAAE8D,SAAS,EAAE;MAAE,CAAC;IAC7B,GAEDV,IAAI,CAACvH,SAAS,gBACbpC,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACuJ,mBAAmB;MAACC,QAAQ,EAAE,IAAI,CAACpH,aAAc;MAACwC,KAAK,EAAE4D,IAAK;MAACiB,KAAK,EAAE,IAAI,CAAChJ,KAAK,CAACiJ;IAAmB,CAAE,CAAC,gBAEnH7K,KAAA,CAAA0I,aAAA,CAAC/H,eAAe;MACdqJ,KAAK,EAAEC,MAAM,CAACa,eAAgB;MAC9BC,MAAM,EAAE1J,MAAM,CAAC2J,cAAc,CAACrB,IAAI,CAAC5G,eAAe,GAAG4G,IAAI,CAAC3G,YAAY,GAAG2G,IAAI,CAAC9G,GAAG;IAAE,GAElF+G,UAAU,iBACT5J,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAEC,MAAM,CAACgB;IAAmB,gBACrCjL,KAAA,CAAA0I,aAAA,CAACnI,gBAAgB;MAACwJ,OAAO,EAAE,IAAI,CAACmB,qBAAqB,CAACrD,IAAI,CAAC,IAAI,EAAE8B,IAAI,CAAC9G,GAAG;IAAE,gBACzE7C,KAAA,CAAA0I,aAAA,CAAC5H,IAAI;MAACyJ,IAAI,EAAC,MAAM;MAAC/F,IAAI,EAAC,cAAc;MAACgG,SAAS,EAAEP,MAAM,CAACkB;IAAiB,CAAE,CAC3D,CACd,CACP,eACDnL,KAAA,CAAA0I,aAAA,CAACnI,gBAAgB;MAACyJ,KAAK,EAAEC,MAAM,CAACmB,WAAY;MAACrB,OAAO,EAAE,IAAI,CAACqB,WAAW,CAACvD,IAAI,CAAC,IAAI,EAAEtB,KAAK;IAAE,gBACvFvG,KAAA,CAAA0I,aAAA,CAAC5H,IAAI;MAACyJ,IAAI,EAAC,QAAQ;MAAC/F,IAAI,EAAC,cAAc;MAACgG,SAAS,EAAEP,MAAM,CAACkB,gBAAiB;MAACnB,KAAK,EAAEC,MAAM,CAACmB;IAAY,CAAE,CACxF,CACH,CAEf,CAAC;EAEX;EAEAC,aAAaA,CAAA,EAAG;IACd,oBACErL,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAE;QAAEsB,OAAO,EAAE,EAAE;QAAEC,IAAI,EAAE,CAAC;QAAEC,eAAe,EAAE;MAAO;IAAE,gBAC7DxL,KAAA,CAAA0I,aAAA,CAACpI,IAAI;MAAC0J,KAAK,EAAEC,MAAM,CAACwB;IAAe,GAAC,6CAAiD,CACjF,CAAC;EAEX;EAEAC,eAAeA,CAAA,EAAG;IAChB,oBACE1L,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAEC,MAAM,CAAC0B;IAAa,gBAC/B3L,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAE,CAACC,MAAM,CAAC2B,kBAAkB,EAAE,IAAI,CAAC3J,KAAK,CAACD,MAAM,CAACG,MAAM,GAAG,CAAC,IAAI8H,MAAM,CAAC4B,uBAAuB;IAAE,gBACvG7L,KAAA,CAAA0I,aAAA,CAAChI,QAAQ;MACPoL,yBAAyB,EAAC,QAAQ;MAClCC,mBAAmB;MACnBlH,IAAI,EAAE,IAAI,CAAC5C,KAAK,CAACD,MAAO;MACxBgK,UAAU,EAAEC,IAAA;QAAA,IAAC;UAAEtC,IAAI;UAAEpD;QAAM,CAAC,GAAA0F,IAAA;QAAA,OAAK,IAAI,CAACvC,WAAW,CAACC,IAAI,EAAEpD,KAAK,CAAC;MAAA,CAAC;MAC/D2F,YAAY,EAAEA,CAACvC,IAAI,EAAEpD,KAAK,KAAKA,KAAM;MACrC4F,UAAU,EAAE;IAAE,CACf,CACG,CACF,CAAC;EAEX;EAEAC,UAAUA,CAAA,EAAG;IACX,oBACEpM,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAE;QAAEuB,IAAI,EAAE;MAAE;IAAE,gBACvBvL,KAAA,CAAA0I,aAAA,CAACrI,UAAU;MAACyL,yBAAyB,EAAC,QAAQ;MAAC9B,KAAK,EAAE;QAAEuB,IAAI,EAAE;MAAE,CAAE;MAAC3C,GAAG,EAAEA,GAAG,IAAK,IAAI,CAAC/E,eAAe,GAAG+E;IAAK,gBAC1G5I,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAE;QAAEqC,aAAa,EAAE;MAAE;IAAE,gBAChCrM,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACmL,gBAAgB;MAACC,OAAO,EAAE,IAAI,CAACtK,KAAK,CAACqB;IAAW,CAAE,CAAC,EAC9D,IAAI,CAACrB,KAAK,CAACyD,KAAK,iBAAI1F,KAAA,CAAA0I,aAAA,CAACpI,IAAI;MAAC0J,KAAK,EAAEC,MAAM,CAACuC;IAAU,GAAE,IAAI,CAACvK,KAAK,CAACyD,KAAY,CAAC,eAC7E1F,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACsL,QAAQ;MAACzC,KAAK,EAAE;QAAEK,SAAS,EAAE;MAAG;IAAE,gBAC5CrK,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACuL,eAAe;MACzBC,KAAK,EAAE,MAAO;MACdC,WAAW,EAAE,iBAAkB;MAC/BC,SAAS,EAAE,IAAI,CAAC5K,KAAK,CAACmC,QAAS;MAC/B0I,YAAY,EAAE1I,QAAQ,IAAI,IAAI,CAAC7B,QAAQ,CAAC;QAAE6B;MAAS,CAAC,CAAE;MACtD2I,QAAQ,EAAE,IAAI,CAACnL,KAAK,CAACkF,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC7E,KAAK,CAACqB,UAAU,KAAK,KAAM;MAC7E0J,OAAO,EAAEA,CAAA,KAAM;QACb,OAAO,IAAI,CAAC/K,KAAK,CAACmC,QAAQ,CAACjC,MAAM,GAAG,CAAC;MACvC,CAAE;MACF8K,QAAQ;MACRT,SAAS,EAAC,yBAAyB;MACnC7F,SAAS,EAAE,IAAI,CAAC1E,KAAK,CAAC0E,SAAS,IAAI,IAAI,CAAC1E,KAAK,CAACmC,QAAQ,CAACjC,MAAM,GAAG,CAAE;MAClE+K,YAAY;IAAA,CACb,CAAC,eACFlN,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACuL,eAAe;MACzBC,KAAK,EAAE,gBAAiB;MACxBC,WAAW,EAAE,oBAAqB;MAClCC,SAAS,EAAE,IAAI,CAAC5K,KAAK,CAACoC,KAAM;MAC5ByI,YAAY,EAAEzI,KAAK,IAAI,IAAI,CAAC9B,QAAQ,CAAC;QAAE8B;MAAM,CAAC,CAAE;MAChD0I,QAAQ,EAAE,IAAI,CAAC9K,KAAK,CAACqB,UAAU,KAAK,KAAM;MAC1C4J,YAAY;MACZC,YAAY,EAAE;IAAY,CAC3B,CAAC,eACFnN,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACuL,eAAe;MACzBC,KAAK,EAAE,SAAU;MACjBC,WAAW,EAAE,oBAAqB;MAClCC,SAAS,EAAE,IAAI,CAAC5K,KAAK,CAACqC,UAAW;MACjCwI,YAAY,EAAExI,UAAU,IAAI,IAAI,CAAC/B,QAAQ,CAAC;QAAE+B;MAAW,CAAC,CAAE;MAC1DyI,QAAQ,EAAE,IAAI,CAAC9K,KAAK,CAACqB,UAAU,KAAK,KAAM;MAC1C4J,YAAY;MACZF,OAAO,EAAEA,CAAA,KAAM;QACb,OAAO,IAAI,CAAC/K,KAAK,CAACqC,UAAU,IAAI,IAAI,CAACrC,KAAK,CAACqC,UAAU,CAACnC,MAAM,GAAG,CAAC;MAClE,CAAE;MACF8K,QAAQ;MACRT,SAAS,EAAC,8BAA8B;MACxC7F,SAAS,EAAE,IAAI,CAAC1E,KAAK,CAAC0E,SAAS,IAAI,IAAI,CAAC1E,KAAK,CAACqC,UAAU,IAAI,IAAI,CAACrC,KAAK,CAACqC,UAAU,CAACnC,MAAM,GAAG;IAAE,CAC9F,CACkB,CAAC,eACtBnC,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACsL,QAAQ;MAClBzC,KAAK,EAAE;QAAEK,SAAS,EAAE,EAAE;QAAE+C,iBAAiB,EAAE,EAAE;QAAEC,eAAe,EAAE,EAAE;QAAEC,aAAa,EAAE,KAAK;QAAEC,cAAc,EAAE;MAAgB;IAAE,gBAE5HvN,KAAA,CAAA0I,aAAA,CAACpI,IAAI;MAAC0J,KAAK,EAAEC,MAAM,CAACuD;IAAa,GAAElM,MAAM,CAACmM,GAAG,CAACC,OAAO,CAACC,QAAe,CAAC,eACtE3N,KAAA,CAAA0I,aAAA,CAACnI,gBAAgB;MAACwJ,OAAO,EAAE,IAAI,CAACvC,WAAW,CAACK,IAAI,CAAC,IAAI;IAAE,gBACrD7H,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAE;QAAEsD,aAAa,EAAE;MAAM;IAAE,gBACpCtN,KAAA,CAAA0I,aAAA,CAACpI,IAAI;MAAC0J,KAAK,EAAE,CAACC,MAAM,CAACuD,YAAY,EAAE;QAAE5C,KAAK,EAAE,IAAI,CAAChJ,KAAK,CAACiJ,kBAAkB;QAAE+C,WAAW,EAAE;MAAG,CAAC;IAAE,GAAE,IAAI,CAAC3L,KAAK,CAACuC,IAAW,CAAC,eACvHxE,KAAA,CAAA0I,aAAA,CAAC5H,IAAI;MACHyJ,IAAI,EAAC,aAAa;MAClB/F,IAAI,EAAC,cAAc;MACnBgG,SAAS,EAAE,CAACP,MAAM,CAACuD,YAAY,EAAE;QAAEK,QAAQ,EAAE,EAAE;QAAEjD,KAAK,EAAE,IAAI,CAAChJ,KAAK,CAACiJ;MAAmB,CAAC;IAAE,CAC1F,CACG,CACU,CACC,CAAC,eACtB7K,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACsL,QAAQ;MAACzC,KAAK,EAAE;QAAEK,SAAS,EAAE;MAAG;IAAE,gBAC5CrK,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACuL,eAAe;MACzBC,KAAK,EAAE,OAAQ;MACfC,WAAW,EAAE,gCAAiC;MAC9CC,SAAS,EAAE,IAAI,CAAC5K,KAAK,CAACsC,KAAM;MAC5BuI,YAAY,EAAEvI,KAAK,IAAI,IAAI,CAAChC,QAAQ,CAAC;QAAEgC;MAAM,CAAC,CAAE;MAChDwI,QAAQ,EAAE,IAAI,CAAC9K,KAAK,CAACqB,UAAU,KAAK,KAAM;MAC1C4J,YAAY;MACZF,OAAO,EAAEA,CAAA,KAAM;QACb,OAAO,IAAI,CAAC/K,KAAK,CAACsC,KAAK,CAACpC,MAAM,GAAG,CAAC;MACpC,CAAE;MACF8K,QAAQ;MACRT,SAAS,EAAC,yBAAyB;MACnC7F,SAAS,EAAE,IAAI,CAAC1E,KAAK,CAAC0E,SAAS,IAAI,IAAI,CAAC1E,KAAK,CAACsC,KAAK,CAACpC,MAAM,GAAG,CAAE;MAC/D2L,WAAW;MACXC,SAAS;MACTC,QAAQ;IAAA,CACT,CAAC,eACFhO,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACuL,eAAe;MACzBC,KAAK,EAAE,aAAc;MACrBC,WAAW,EAAE,sCAAuC;MACpDC,SAAS,EAAE,IAAI,CAAC5K,KAAK,CAACwB,WAAY;MAClCqJ,YAAY,EAAErJ,WAAW,IAAI,IAAI,CAAClB,QAAQ,CAAC;QAAEkB;MAAY,CAAC,CAAE;MAC5DsJ,QAAQ,EAAE,IAAI,CAAC9K,KAAK,CAACqB,UAAU,KAAK,KAAM;MAC1C4J,YAAY;MACZY,WAAW;MACXC,SAAS;MACTC,QAAQ;IAAA,CACT,CACkB,CAAC,eACtBhO,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACsL,QAAQ;MAACzC,KAAK,EAAE;QAAEK,SAAS,EAAE,EAAE;QAAE+C,iBAAiB,EAAE;MAAG;IAAE,gBACnEpN,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MACHwJ,KAAK,EAAE,CACL;QACEvI,KAAK,EAAE,MAAM;QACb4L,eAAe,EAAE,EAAE;QACnBC,aAAa,EAAE,KAAK;QACpBC,cAAc,EAAE,eAAe;QAC/BU,UAAU,EAAE,QAAQ;QACpBC,QAAQ,EAAE;MACZ,CAAC,EACD,IAAI,CAACjM,KAAK,CAACyB,MAAM,IAAI;QAAEyK,iBAAiB,EAAE,CAAC;QAAEC,iBAAiB,EAAEhN,OAAO,CAACiN;MAAS,CAAC;IAClF,gBAEFrO,KAAA,CAAA0I,aAAA,CAACpI,IAAI;MAAC0J,KAAK,EAAEC,MAAM,CAACuD;IAAa,GAAElM,MAAM,CAACmM,GAAG,CAACC,OAAO,CAACY,gBAAuB,CAAC,eAC9EtO,KAAA,CAAA0I,aAAA,CAACjI,MAAM;MACL8N,KAAK,EAAE,IAAI,CAACtM,KAAK,CAACyB,MAAO;MACzB8K,QAAQ,EAAE,IAAI,CAACvM,KAAK,CAACqB,UAAW;MAChCmL,aAAa,EAAEF,KAAK,IAAI,IAAI,CAAChM,QAAQ,CAAC;QAAEmB,MAAM,EAAE6K;MAAM,CAAC,CAAE;MACzDG,UAAU,EAAE;QAAEC,KAAK,EAAE,MAAM;QAAEC,IAAI,EAAE,IAAI,CAAChN,KAAK,CAACiJ;MAAmB,CAAE;MACnEgE,UAAU,EAAE1O,QAAQ,CAAC2O,EAAE,KAAK,SAAS,GAAG,MAAM,GAAG;IAAK,CACvD,CACG,CAAC,EACN,IAAI,CAAC7M,KAAK,CAACyB,MAAM,iBAChB1D,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACuL,eAAe;MACzBC,KAAK,EAAE,iBAAkB;MACzBC,WAAW,EAAE,+CAAgD;MAC7DC,SAAS,EAAE,IAAI,CAAC5K,KAAK,CAAC0B,KAAM;MAC5BmJ,YAAY,EAAEnJ,KAAK,IAAI,IAAI,CAACpB,QAAQ,CAAC;QAAEoB;MAAM,CAAC,CAAE;MAChDoJ,QAAQ,EAAE,IAAI,CAAC9K,KAAK,CAACqB,UAAU,KAAK,KAAM;MAC1C4J,YAAY;MACZF,OAAO,EAAEA,CAAA,KAAM;QACb,OAAO,IAAI,CAAC/K,KAAK,CAAC0B,KAAK,CAACxB,MAAM,GAAG,CAAC;MACpC,CAAE;MACF8K,QAAQ;MACRT,SAAS,EAAC,iCAAiC;MAC3C7F,SAAS,EAAE,IAAI,CAAC1E,KAAK,CAAC0E,SAAS,IAAI,IAAI,CAAC1E,KAAK,CAACyB,MAAM,IAAI,IAAI,CAACzB,KAAK,CAAC0B,KAAK,CAACxB,MAAM,GAAG,CAAE;MACpF4M,SAAS,EAAE,EAAG;MACdjB,WAAW;MACXC,SAAS;MACTC,QAAQ;IAAA,CACT,CAEgB,CAAC,EACrB,IAAI,CAACtC,eAAe,CAAC,CAClB,CACI,CACR,CAAC;EAEX;EAEAsD,0BAA0BA,CAAA,EAAG;IAC3B,oBACEhP,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAAC8N,iBAAiB;MAC3BC,WAAW,EAAE,mBAAoB;MACjCC,UAAU,EAAE,gBAAiB;MAC7B5C,OAAO,EAAE,IAAI,CAACtK,KAAK,CAACiD,kBAAmB;MACvCkK,OAAO,EAAE,IAAI,CAACtH,wBAAwB,CAACD,IAAI,CAAC,IAAI,CAAE;MAClDwH,aAAa,EAAE,IAAI,CAACrH,mBAAmB,CAACH,IAAI,CAAC,IAAI;IAAE,CACpD,CAAC;EAEN;EAEAyH,sBAAsBA,CAAA,EAAG;IACvB,MAAM;MAAE9I,mBAAmB;MAAEC;IAAgB,CAAC,GAAG,IAAI,CAACxE,KAAK;IAC3D,IAAI,CAACwE,eAAe,EAAE;IAEtB,oBACEzG,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAACoO,UAAU;MACpB5M,GAAG,EAAE8D,eAAgB;MACrB8F,OAAO,EAAE/F,mBAAoB;MAC7BgJ,oBAAoB,EAAE,KAAM;MAC5BJ,OAAO,EAAE,IAAI,CAAClE;IAAsB,CACrC,CAAC;EAEN;EAEAuE,MAAMA,CAAA,EAAG;IACP,oBACEzP,KAAA,CAAA0I,aAAA,CAACtI,oBAAoB;MAACsP,QAAQ,EAAEvP,QAAQ,CAAC2O,EAAE,KAAK,KAAK,IAAI,SAAU;MAAC9E,KAAK,EAAEC,MAAM,CAAC0F;IAAc,GAC7F,IAAI,CAAClH,gBAAgB,CAAC,CAAC,eACxBzI,KAAA,CAAA0I,aAAA,CAAClI,IAAI;MAACwJ,KAAK,EAAEC,MAAM,CAAC2F;IAAU,gBAC5B5P,KAAA,CAAA0I,aAAA,CAACvH,UAAU,CAAC0O,MAAM;MAChBC,QAAQ,EAAC,YAAY;MACrBC,WAAW,EAAE,IAAI,CAAC1I,WAAW,CAACQ,IAAI,CAAC,IAAI,CAAE;MACzCmI,IAAI,EAAE1O,MAAM,CAACmM,GAAG,CAACC,OAAO,CAACuC,WAAY;MACrCC,SAAS,EAAE,IAAI,CAACjO,KAAK,CAACqB,UAAU,IAAI,IAAI,CAACrB,KAAK,CAAC6C,OAAO,GAAG,IAAI,GAAG,MAAO;MACvEqL,YAAY,EAAE,IAAI,CAAC9H,aAAa,CAACR,IAAI,CAAC,IAAI,CAAE;MAC5CuI,aAAa;IAAA,CACd,CAAC,EACD,IAAI,CAAChE,UAAU,CAAC,CACb,CAAC,EACN,IAAI,CAAC4C,0BAA0B,CAAC,CAAC,EACjC,IAAI,CAACM,sBAAsB,CAAC,CACT,CAAC;EAE3B;AACF;AAEA,MAAMrF,MAAM,GAAG;EACb0F,aAAa,EAAE;IACbpE,IAAI,EAAE,CAAC;IACPC,eAAe,EAAE;EACnB,CAAC;EACDoE,SAAS,EAAE;IACTrE,IAAI,EAAE,CAAC;IACP2C,QAAQ,EAAE,UAAU;IACpB1C,eAAe,EAAE;EACnB,CAAC;EACDgB,SAAS,EAAE;IACT6D,UAAU,EAAE,YAAY;IACxBzF,KAAK,EAAExJ,OAAO,CAACkP,gBAAgB;IAC/BzC,QAAQ,EAAE;EACZ,CAAC;EACDpC,cAAc,EAAE;IACd4E,UAAU,EAAE,YAAY;IACxBzF,KAAK,EAAExJ,OAAO,CAACmP,SAAS;IACxB1C,QAAQ,EAAE,EAAE;IACZ2C,SAAS,EAAE;EACb,CAAC;EACDhD,YAAY,EAAE;IACZ6C,UAAU,EAAE,YAAY;IACxBxC,QAAQ,EAAE,EAAE;IACZjD,KAAK,EAAExJ,OAAO,CAACmP;EACjB,CAAC;EACD3E,kBAAkB,EAAE;IAClBvB,SAAS,EAAE,CAAC;IACZiB,OAAO,EAAE,CAAC;IACVgC,aAAa,EAAE,KAAK;IACpB9B,eAAe,EAAEpK,OAAO,CAACqP,OAAO;IAChC1B,SAAS,EAAE;EACb,CAAC;EACDlD,uBAAuB,EAAE;IACvB0B,cAAc,EAAE,QAAQ;IACxBU,UAAU,EAAE,QAAQ;IACpBX,aAAa,EAAE;EACjB,CAAC;EACDpD,cAAc,EAAE;IACdzI,KAAK,EAAEF,UAAU;IACjBmP,MAAM,EAAEnP,UAAU;IAClBoP,WAAW,EAAE,QAAQ;IACrBpD,cAAc,EAAE,QAAQ;IACxBU,UAAU,EAAE,QAAQ;IACpB2C,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEzP,OAAO,CAACiN,QAAQ;IAC7ByC,YAAY,EAAE,CAAC;IACf1G,UAAU,EAAE;EACd,CAAC;EACDD,sBAAsB,EAAE;IACtByG,WAAW,EAAE,CAAC;IACdC,WAAW,EAAEzP,OAAO,CAACiN,QAAQ;IAC7B7C,eAAe,EAAE,MAAM;IACvBmF,WAAW,EAAE;EACf,CAAC;EACD7F,eAAe,EAAE;IACfS,IAAI,EAAE,CAAC;IACPmF,MAAM,EAAE,MAAM;IACdjP,KAAK,EAAE,MAAM;IACbqP,YAAY,EAAE;EAChB,CAAC;EACDxG,WAAW,EAAE;IACX7I,KAAK,EAAE,EAAE;IACTiP,MAAM,EAAE,EAAE;IACVI,YAAY,EAAE,EAAE;IAChBtF,eAAe,EAAEpK,OAAO,CAAC2P,YAAY;IACrCxD,cAAc,EAAE;EAClB,CAAC;EACD9C,YAAY,EAAE;IACZG,KAAK,EAAE,MAAM;IACbiD,QAAQ,EAAE;EACZ,CAAC;EACD5C,kBAAkB,EAAE;IAClBiD,QAAQ,EAAE,UAAU;IACpB8C,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTlD,UAAU,EAAE,QAAQ;IACpBV,cAAc,EAAE;EAClB,CAAC;EACDpC,gBAAgB,EAAE;IAChBP,KAAK,EAAE,MAAM;IACbiD,QAAQ,EAAE,EAAE;IACZuD,eAAe,EAAE,iBAAiB;IAClCC,gBAAgB,EAAE;MAAE5P,KAAK,EAAE,CAAC;MAAEiP,MAAM,EAAE;IAAE;EAC1C,CAAC;EACDtF,WAAW,EAAE;IACX8C,QAAQ,EAAE,UAAU;IACpB8C,GAAG,EAAE,CAAC;IACNE,KAAK,EAAE,CAAC;IACR5F,OAAO,EAAE,CAAC;IACV7J,KAAK,EAAE,EAAE;IACTiP,MAAM,EAAE,EAAE;IACVzC,UAAU,EAAE,QAAQ;IACpBV,cAAc,EAAE;EAClB;AACF,CAAC;AAED,MAAM+D,eAAe,GAAGrP,KAAK,IAAI;EAC/B,MAAM;IAAEsP,IAAI;IAAEC;EAAW,CAAC,GAAGvP,KAAK;EAClC,MAAM;IAAE8E,WAAW;IAAE0K,UAAU;IAAEtN,GAAG;IAAEO,IAAI;IAAEsC,IAAI;IAAEE;EAAY,CAAC,GAAGqK,IAAI;EACtE,OAAO;IACLjJ,SAAS,EAAEkJ,UAAU,CAAClJ,SAAS;IAC/BxB,QAAQ,EAAEyK,IAAI,CAAC/M,IAAI;IACnBuC,WAAW;IACX0K,UAAU;IACVtN,GAAG;IACHO,IAAI;IACJsC,IAAI;IACJE,WAAW;IACX2D,kBAAkB,EAAEzJ,OAAO,CAACsQ,8BAA8B,CAACzP,KAAK;EAClE,CAAC;AACH,CAAC;AAED,eAAelB,OAAO,CAACuQ,eAAe,EAAE;EAAEtQ;AAAS,CAAC,CAAC,CAACU,kBAAkB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plusscommunities/pluss-maintenance-app",
3
- "version": "3.0.2",
3
+ "version": "3.0.3-beta.0",
4
4
  "description": "Extension package to enable maintenance on Pluss Communities Platform",
5
5
  "main": "dist/module/index.js",
6
6
  "module": "dist/module/index.js",
@@ -10,7 +10,7 @@
10
10
  "src/"
11
11
  ],
12
12
  "scripts": {
13
- "build": "npm i && bob build",
13
+ "build": "npm i --legacy-peer-deps && bob build",
14
14
  "betapatch": "npm version prepatch --preid=beta",
15
15
  "patch": "npm version patch",
16
16
  "betaupload": "npm run build && npm publish --access public --tag beta",
@@ -21,12 +21,12 @@
21
21
  "author": "Phillip Suh",
22
22
  "license": "ISC",
23
23
  "dependencies": {
24
- "@plusscommunities/pluss-core-app": "3.0.1",
24
+ "@plusscommunities/pluss-core-app": "3.1.3-beta.0",
25
25
  "axios": "^0.16.2",
26
26
  "lodash": "^4.17.4",
27
27
  "moment": "^2.18.1",
28
28
  "react": "18.2.0",
29
- "react-native": "0.71.6",
29
+ "react-native": "0.71.13",
30
30
  "react-native-elements": "^0.17.0",
31
31
  "react-native-iphone-x-helper": "^1.3.1",
32
32
  "react-native-webview": "11.26.0",