@flower-city-online/itinerary-lib 0.0.30 → 0.0.31

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 (398) hide show
  1. package/fesm2022/flower-city-online-itinerary-lib.mjs +2270 -3025
  2. package/fesm2022/flower-city-online-itinerary-lib.mjs.map +1 -1
  3. package/index.d.ts +777 -5
  4. package/package.json +23 -25
  5. package/src/lib/itinerary-app/_styles/styles.scss +7 -6
  6. package/src/lib/itinerary-app/styles.scss +69 -17
  7. package/environments/environment.d.ts +0 -11
  8. package/esm2022/environments/environment.mjs +0 -23
  9. package/esm2022/flower-city-online-itinerary-lib.mjs +0 -5
  10. package/esm2022/lib/itinerary-app/_constants/constants.mjs +0 -129
  11. package/esm2022/lib/itinerary-app/_data/app-service.service.mjs +0 -41
  12. package/esm2022/lib/itinerary-app/_data/comment.service.mjs +0 -100
  13. package/esm2022/lib/itinerary-app/_data/itinerary-member.service.mjs +0 -108
  14. package/esm2022/lib/itinerary-app/_data/user-friends.service.mjs +0 -121
  15. package/esm2022/lib/itinerary-app/_data/vote.service.mjs +0 -79
  16. package/esm2022/lib/itinerary-app/_dtos/Itinerary-primary-info.dto.mjs +0 -2
  17. package/esm2022/lib/itinerary-app/_dtos/comment.dto.mjs +0 -2
  18. package/esm2022/lib/itinerary-app/_dtos/i-Itinerary-stats.dto.mjs +0 -2
  19. package/esm2022/lib/itinerary-app/_dtos/itinerary-member-complete.dto.mjs +0 -2
  20. package/esm2022/lib/itinerary-app/_dtos/itinerary-member.dto.mjs +0 -2
  21. package/esm2022/lib/itinerary-app/_dtos/vote.dto.mjs +0 -2
  22. package/esm2022/lib/itinerary-app/_enums/ItenariesRoutes.enum.mjs +0 -64
  23. package/esm2022/lib/itinerary-app/_enums/PathwayRoutes.enum.mjs +0 -7
  24. package/esm2022/lib/itinerary-app/_enums/endpoints/comment-request-endpoint.enum.mjs +0 -11
  25. package/esm2022/lib/itinerary-app/_enums/endpoints/gateway-request-enpoints.enum.mjs +0 -6
  26. package/esm2022/lib/itinerary-app/_enums/endpoints/itinerary-member-enpoint.enum.mjs +0 -12
  27. package/esm2022/lib/itinerary-app/_enums/endpoints/itinerary-request-endpoints.enum.mjs +0 -10
  28. package/esm2022/lib/itinerary-app/_enums/endpoints/user-friend-request-endpoints.enum.mjs +0 -13
  29. package/esm2022/lib/itinerary-app/_enums/endpoints/vote-request-endpoint.enum.mjs +0 -8
  30. package/esm2022/lib/itinerary-app/_enums/userRoutes.enum.mjs +0 -5
  31. package/esm2022/lib/itinerary-app/_interface/bottomNavigationList.mjs +0 -2
  32. package/esm2022/lib/itinerary-app/_interface/cardData.mjs +0 -2
  33. package/esm2022/lib/itinerary-app/_interface/commentsdata.mjs +0 -2
  34. package/esm2022/lib/itinerary-app/_interface/conditions.mjs +0 -2
  35. package/esm2022/lib/itinerary-app/_interface/dashboardSideBar.mjs +0 -2
  36. package/esm2022/lib/itinerary-app/_interface/filterMenuOptions.mjs +0 -2
  37. package/esm2022/lib/itinerary-app/_interface/i-gateway-request.interface.mjs +0 -2
  38. package/esm2022/lib/itinerary-app/_interface/i-gateway-response.interface.mjs +0 -2
  39. package/esm2022/lib/itinerary-app/_interface/icon.mjs +0 -2
  40. package/esm2022/lib/itinerary-app/_interface/notification.mjs +0 -2
  41. package/esm2022/lib/itinerary-app/_interface/pages.mjs +0 -2
  42. package/esm2022/lib/itinerary-app/_interface/presetRecord.mjs +0 -2
  43. package/esm2022/lib/itinerary-app/_interface/reportOptions.mjs +0 -2
  44. package/esm2022/lib/itinerary-app/_interface/search-popup.mjs +0 -2
  45. package/esm2022/lib/itinerary-app/_interface/searchResults.mjs +0 -2
  46. package/esm2022/lib/itinerary-app/_models/I-interest.mjs +0 -2
  47. package/esm2022/lib/itinerary-app/_models/Itinerary-stats.mjs +0 -2
  48. package/esm2022/lib/itinerary-app/_models/app-user.mjs +0 -2
  49. package/esm2022/lib/itinerary-app/_models/base.model.mjs +0 -8
  50. package/esm2022/lib/itinerary-app/_models/i-Itinerary.mjs +0 -2
  51. package/esm2022/lib/itinerary-app/_models/i-comment.mjs +0 -2
  52. package/esm2022/lib/itinerary-app/_models/i-image.mjs +0 -2
  53. package/esm2022/lib/itinerary-app/_models/i-itinerary-member.mjs +0 -2
  54. package/esm2022/lib/itinerary-app/_models/i-vote.schema.mjs +0 -2
  55. package/esm2022/lib/itinerary-app/_models/itinerary-location.mjs +0 -2
  56. package/esm2022/lib/itinerary-app/_models/itineraryMember.mjs +0 -2
  57. package/esm2022/lib/itinerary-app/_models/location-review.mjs +0 -2
  58. package/esm2022/lib/itinerary-app/_models/matching-clients.mjs +0 -2
  59. package/esm2022/lib/itinerary-app/_models/position-model.mjs +0 -2
  60. package/esm2022/lib/itinerary-app/_pipes/capitalize-first.pipe.mjs +0 -18
  61. package/esm2022/lib/itinerary-app/_pipes/time-ago.pipe.mjs +0 -39
  62. package/esm2022/lib/itinerary-app/_pipes/votes.pipe.mjs +0 -24
  63. package/esm2022/lib/itinerary-app/_services/api.service.mjs +0 -31
  64. package/esm2022/lib/itinerary-app/_services/assets.service.mjs +0 -33
  65. package/esm2022/lib/itinerary-app/_services/bottom-navigation.service.mjs +0 -92
  66. package/esm2022/lib/itinerary-app/_services/comment-image.service.mjs +0 -16
  67. package/esm2022/lib/itinerary-app/_services/constants.service.mjs +0 -14
  68. package/esm2022/lib/itinerary-app/_services/custom-dropdown-menu.service.mjs +0 -256
  69. package/esm2022/lib/itinerary-app/_services/itinerary.drawmode.transfer.mjs +0 -34
  70. package/esm2022/lib/itinerary-app/_services/itinerary.service.mjs +0 -118
  71. package/esm2022/lib/itinerary-app/_services/location.service.mjs +0 -32
  72. package/esm2022/lib/itinerary-app/_services/modal.clearhistory.service.mjs +0 -17
  73. package/esm2022/lib/itinerary-app/_services/modal.sendclient.service.mjs +0 -17
  74. package/esm2022/lib/itinerary-app/_services/modal.service.mjs +0 -17
  75. package/esm2022/lib/itinerary-app/_services/modal.shareurlservice.mjs +0 -17
  76. package/esm2022/lib/itinerary-app/_services/shadow-root-handler.service.mjs +0 -38
  77. package/esm2022/lib/itinerary-app/_services/share-popup-data.mjs +0 -20
  78. package/esm2022/lib/itinerary-app/initalize.app.mjs +0 -16
  79. package/esm2022/lib/itinerary-app/itinerary-lib-routing.module.mjs +0 -50
  80. package/esm2022/lib/itinerary-app/itinerary-lib.component.mjs +0 -77
  81. package/esm2022/lib/itinerary-app/itinerary-lib.module.mjs +0 -94
  82. package/esm2022/lib/itinerary-app/modules/archives/archives-routing.module.mjs +0 -19
  83. package/esm2022/lib/itinerary-app/modules/archives/archives.component.mjs +0 -23
  84. package/esm2022/lib/itinerary-app/modules/archives/archives.module.mjs +0 -36
  85. package/esm2022/lib/itinerary-app/modules/archives/pages/main-archives/main-archives.component.mjs +0 -67
  86. package/esm2022/lib/itinerary-app/modules/dashboard/components/navbar/navbar.component.mjs +0 -61
  87. package/esm2022/lib/itinerary-app/modules/dashboard/components/sidebar/sidebar.component.mjs +0 -63
  88. package/esm2022/lib/itinerary-app/modules/dashboard/dashboard-routing.module.mjs +0 -24
  89. package/esm2022/lib/itinerary-app/modules/dashboard/dashboard.component.mjs +0 -14
  90. package/esm2022/lib/itinerary-app/modules/dashboard/dashboard.module.mjs +0 -52
  91. package/esm2022/lib/itinerary-app/modules/dashboard/pages/main-dashboard/main-dashboard.component.mjs +0 -11
  92. package/esm2022/lib/itinerary-app/modules/itineraries/components/app-header-desktop/app-header-desktop.component.mjs +0 -13
  93. package/esm2022/lib/itinerary-app/modules/itineraries/components/app-sidebar-desktop/app-sidebar-desktop.component.mjs +0 -64
  94. package/esm2022/lib/itinerary-app/modules/itineraries/components/comment-filter-menu/comment-filter-menu.component.mjs +0 -42
  95. package/esm2022/lib/itinerary-app/modules/itineraries/components/delete-itineraries/delete-itineraries.component.mjs +0 -51
  96. package/esm2022/lib/itinerary-app/modules/itineraries/components/filter-menu/filter-menu.component.mjs +0 -43
  97. package/esm2022/lib/itinerary-app/modules/itineraries/components/no-visual-map-filters/no-visual-map-filters.component.mjs +0 -80
  98. package/esm2022/lib/itinerary-app/modules/itineraries/components/report-itinerary-modal/report-itinerary-modal.component.mjs +0 -72
  99. package/esm2022/lib/itinerary-app/modules/itineraries/components/report-media-modal/report-media-modal.component.mjs +0 -71
  100. package/esm2022/lib/itinerary-app/modules/itineraries/components/send-to-client/send-to-client.component.mjs +0 -41
  101. package/esm2022/lib/itinerary-app/modules/itineraries/components/share-popup/share-popup.component.mjs +0 -78
  102. package/esm2022/lib/itinerary-app/modules/itineraries/itineraries-routing.module.mjs +0 -296
  103. package/esm2022/lib/itinerary-app/modules/itineraries/itineraries.component.mjs +0 -50
  104. package/esm2022/lib/itinerary-app/modules/itineraries/itineraries.module.mjs +0 -350
  105. package/esm2022/lib/itinerary-app/modules/itineraries/pages/advanced-filters/advanced-filters.component.mjs +0 -150
  106. package/esm2022/lib/itinerary-app/modules/itineraries/pages/branched-itineraries/branched-itineraries.component.mjs +0 -195
  107. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/builder.component.mjs +0 -34
  108. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal/create-itinerary-modal.component.mjs +0 -52
  109. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal-item/create-itinerary-modal-item.component.mjs +0 -47
  110. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary/create-itinerary.component.mjs +0 -144
  111. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-destination/create-itinerary-destination.component.mjs +0 -57
  112. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-mode/create-itinerary-draw-mode.component.mjs +0 -280
  113. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-preview/create-itinerary-draw-preview.component.mjs +0 -242
  114. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-header/create-itinerary-header.component.mjs +0 -61
  115. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-member-details/create-itinerary-member-details.component.mjs +0 -59
  116. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-filter/create-itinerary-no-visual-filter.component.mjs +0 -234
  117. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-preview/create-itinerary-no-visual-preview.component.mjs +0 -157
  118. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-start-location/create-itinerary-start-location.component.mjs +0 -93
  119. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-user-search/create-itinerary-user-search.component.mjs +0 -75
  120. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary/created-itinerary.component.mjs +0 -61
  121. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-detail/created-itinerary-detail.component.mjs +0 -38
  122. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-map/created-itinerary-map.component.mjs +0 -319
  123. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-preview.component.mjs +0 -91
  124. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-add-place.component.mjs +0 -76
  125. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-basic-info/itinerary-place-basic-info.component.mjs +0 -14
  126. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-date-time/itinerary-place-date-time.component.mjs +0 -12
  127. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-members/itinerary-place-members.component.mjs +0 -51
  128. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/location-picker/location-picker.component.mjs +0 -85
  129. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/select-itinerary-event/select-itinerary-event.component.mjs +0 -77
  130. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-location/suggested-events-location.component.mjs +0 -90
  131. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-radius/suggested-events-route-radius.component.mjs +0 -60
  132. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-type/suggested-events-route-type.component.mjs +0 -74
  133. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comment-replies/comment-replies.component.mjs +0 -257
  134. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comment-replies/components/comment-single/comment-single.component.mjs +0 -113
  135. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/comment-comparison/comment-comparison.component.mjs +0 -72
  136. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/comment-search/comment-search.component.mjs +0 -114
  137. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/comments-page.component.mjs +0 -47
  138. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/handle-update-comment-request/handle-update-comment-request.component.mjs +0 -21
  139. package/esm2022/lib/itinerary-app/modules/itineraries/pages/explore/explore.component.mjs +0 -103
  140. package/esm2022/lib/itinerary-app/modules/itineraries/pages/favorites/favorites.component.mjs +0 -41
  141. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-author-history/itinerary-author-history.component.mjs +0 -50
  142. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/details/details.component.mjs +0 -113
  143. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/map/map.component.mjs +0 -281
  144. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/summary/summary.component.mjs +0 -85
  145. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/itinerary-detail.component.mjs +0 -98
  146. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/existing-friends/existing-friends.component.mjs +0 -76
  147. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/friend-requests/friend-requests.component.mjs +0 -69
  148. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/itinerary-friends.component.mjs +0 -21
  149. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/list-friend-users/list-friend-users.component.mjs +0 -117
  150. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/all-people/all-people.component.mjs +0 -144
  151. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/existing-members/existing-members.component.mjs +0 -67
  152. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-members.component.mjs +0 -41
  153. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-sent-invites/itinerary-sent-invites.component.mjs +0 -79
  154. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/user-list/user-list.component.mjs +0 -77
  155. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-upvote-users/itinerary-upvote-users.component.mjs +0 -53
  156. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-users/itinerary-users.component.mjs +0 -52
  157. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-watching-users/itinerary-watching-users.component.mjs +0 -53
  158. package/esm2022/lib/itinerary-app/modules/itineraries/pages/notifications/notifications.component.mjs +0 -53
  159. package/esm2022/lib/itinerary-app/modules/itineraries/pages/stories/story.component.mjs +0 -53
  160. package/esm2022/lib/itinerary-app/modules/pathway/components/googlemap/googlemap.component.mjs +0 -281
  161. package/esm2022/lib/itinerary-app/modules/pathway/components/map-header/map-header.component.mjs +0 -39
  162. package/esm2022/lib/itinerary-app/modules/pathway/pages/default-destination/default-destination.component.mjs +0 -26
  163. package/esm2022/lib/itinerary-app/modules/pathway/pages/itinerary-preview/itinerary-preview.component.mjs +0 -56
  164. package/esm2022/lib/itinerary-app/modules/pathway/pages/non-visual-map-filter/non-visual-map-filter.component.mjs +0 -30
  165. package/esm2022/lib/itinerary-app/modules/pathway/pathway-routing.module.mjs +0 -41
  166. package/esm2022/lib/itinerary-app/modules/pathway/pathway.component.mjs +0 -12
  167. package/esm2022/lib/itinerary-app/modules/pathway/pathway.module.mjs +0 -72
  168. package/esm2022/lib/itinerary-app/modules/search/components/clear-history-popup/clear-history-popup.component.mjs +0 -30
  169. package/esm2022/lib/itinerary-app/modules/search/components/quick-actions/quick-actions.component.mjs +0 -17
  170. package/esm2022/lib/itinerary-app/modules/search/components/recent-searches/recent-searches.component.mjs +0 -13
  171. package/esm2022/lib/itinerary-app/modules/search/components/recent-searches-item/recent-searches-item.component.mjs +0 -14
  172. package/esm2022/lib/itinerary-app/modules/search/components/recent-searches-list/recent-searches-list.component.mjs +0 -12
  173. package/esm2022/lib/itinerary-app/modules/search/components/search-chips/search-chips.component.mjs +0 -77
  174. package/esm2022/lib/itinerary-app/modules/search/components/search-results/search-results.component.mjs +0 -15
  175. package/esm2022/lib/itinerary-app/modules/search/components/serach-bottom-bar/serach-bottom-bar.component.mjs +0 -14
  176. package/esm2022/lib/itinerary-app/modules/search/components/serach-clear-history/serach-clear-history.component.mjs +0 -33
  177. package/esm2022/lib/itinerary-app/modules/search/pages/main-search/main-search.component.mjs +0 -243
  178. package/esm2022/lib/itinerary-app/modules/search/search-routing.module.mjs +0 -19
  179. package/esm2022/lib/itinerary-app/modules/search/search.component.mjs +0 -12
  180. package/esm2022/lib/itinerary-app/modules/search/search.module.mjs +0 -87
  181. package/esm2022/lib/itinerary-app/modules/user/profile/profile.component.mjs +0 -54
  182. package/esm2022/lib/itinerary-app/modules/user/user-routing.module.mjs +0 -22
  183. package/esm2022/lib/itinerary-app/modules/user/user.module.mjs +0 -36
  184. package/esm2022/lib/itinerary-app/shared/card-component/card-component.component.mjs +0 -127
  185. package/esm2022/lib/itinerary-app/shared/comment/comment-images/comment-images.component.mjs +0 -23
  186. package/esm2022/lib/itinerary-app/shared/comment/comment.component.mjs +0 -118
  187. package/esm2022/lib/itinerary-app/shared/custom-heading-with-button/custom-heading-with-button.component.mjs +0 -27
  188. package/esm2022/lib/itinerary-app/shared/custom-story-card/custom-story-card.component.mjs +0 -162
  189. package/esm2022/lib/itinerary-app/shared/cutom-card/cutom-card.component.mjs +0 -94
  190. package/esm2022/lib/itinerary-app/shared/footer/components/bottom-navigation-items/bottom-navigation-items.component.mjs +0 -28
  191. package/esm2022/lib/itinerary-app/shared/footer/footer.component.mjs +0 -109
  192. package/esm2022/lib/itinerary-app/shared/header/header.component.mjs +0 -88
  193. package/esm2022/lib/itinerary-app/shared/image-viewer/image-viewer.component.mjs +0 -31
  194. package/esm2022/lib/itinerary-app/shared/notification-tile/notification-tile.component.mjs +0 -40
  195. package/esm2022/lib/itinerary-app/shared/search-popup/search-popup.component.mjs +0 -54
  196. package/esm2022/lib/itinerary-app/shared/shared.module.mjs +0 -206
  197. package/esm2022/lib/itinerary-app/shared/swiper-dialog/swiper-dialog.component.mjs +0 -46
  198. package/esm2022/lib/itinerary-app/shared/tab-bar/tab-bar.component.mjs +0 -62
  199. package/esm2022/lib/itinerary-app/shared/user-stack-tile/user-stack-tile.component.mjs +0 -51
  200. package/esm2022/lib/itinerary-app/shared/user-tile/user-tile.component.mjs +0 -28
  201. package/esm2022/lib/itinerary-app/shared/users-stack/users-stack.component.mjs +0 -47
  202. package/esm2022/public-api.mjs +0 -4
  203. package/lib/itinerary-app/_constants/constants.d.ts +0 -2
  204. package/lib/itinerary-app/_data/app-service.service.d.ts +0 -12
  205. package/lib/itinerary-app/_data/comment.service.d.ts +0 -19
  206. package/lib/itinerary-app/_data/itinerary-member.service.d.ts +0 -21
  207. package/lib/itinerary-app/_data/user-friends.service.d.ts +0 -19
  208. package/lib/itinerary-app/_data/vote.service.d.ts +0 -21
  209. package/lib/itinerary-app/_dtos/Itinerary-primary-info.dto.d.ts +0 -6
  210. package/lib/itinerary-app/_dtos/comment.dto.d.ts +0 -11
  211. package/lib/itinerary-app/_dtos/i-Itinerary-stats.dto.d.ts +0 -8
  212. package/lib/itinerary-app/_dtos/itinerary-member-complete.dto.d.ts +0 -6
  213. package/lib/itinerary-app/_dtos/itinerary-member.dto.d.ts +0 -5
  214. package/lib/itinerary-app/_dtos/vote.dto.d.ts +0 -10
  215. package/lib/itinerary-app/_enums/ItenariesRoutes.enum.d.ts +0 -62
  216. package/lib/itinerary-app/_enums/PathwayRoutes.enum.d.ts +0 -5
  217. package/lib/itinerary-app/_enums/endpoints/comment-request-endpoint.enum.d.ts +0 -9
  218. package/lib/itinerary-app/_enums/endpoints/gateway-request-enpoints.enum.d.ts +0 -4
  219. package/lib/itinerary-app/_enums/endpoints/itinerary-member-enpoint.enum.d.ts +0 -10
  220. package/lib/itinerary-app/_enums/endpoints/itinerary-request-endpoints.enum.d.ts +0 -8
  221. package/lib/itinerary-app/_enums/endpoints/user-friend-request-endpoints.enum.d.ts +0 -11
  222. package/lib/itinerary-app/_enums/endpoints/vote-request-endpoint.enum.d.ts +0 -6
  223. package/lib/itinerary-app/_enums/userRoutes.enum.d.ts +0 -3
  224. package/lib/itinerary-app/_interface/bottomNavigationList.d.ts +0 -11
  225. package/lib/itinerary-app/_interface/cardData.d.ts +0 -16
  226. package/lib/itinerary-app/_interface/commentsdata.d.ts +0 -14
  227. package/lib/itinerary-app/_interface/conditions.d.ts +0 -5
  228. package/lib/itinerary-app/_interface/dashboardSideBar.d.ts +0 -7
  229. package/lib/itinerary-app/_interface/filterMenuOptions.d.ts +0 -4
  230. package/lib/itinerary-app/_interface/i-gateway-request.interface.d.ts +0 -10
  231. package/lib/itinerary-app/_interface/i-gateway-response.interface.d.ts +0 -5
  232. package/lib/itinerary-app/_interface/icon.d.ts +0 -3
  233. package/lib/itinerary-app/_interface/notification.d.ts +0 -7
  234. package/lib/itinerary-app/_interface/pages.d.ts +0 -4
  235. package/lib/itinerary-app/_interface/presetRecord.d.ts +0 -5
  236. package/lib/itinerary-app/_interface/reportOptions.d.ts +0 -4
  237. package/lib/itinerary-app/_interface/search-popup.d.ts +0 -6
  238. package/lib/itinerary-app/_interface/searchResults.d.ts +0 -5
  239. package/lib/itinerary-app/_models/I-interest.d.ts +0 -4
  240. package/lib/itinerary-app/_models/Itinerary-stats.d.ts +0 -9
  241. package/lib/itinerary-app/_models/app-user.d.ts +0 -11
  242. package/lib/itinerary-app/_models/base.model.d.ts +0 -7
  243. package/lib/itinerary-app/_models/i-Itinerary.d.ts +0 -25
  244. package/lib/itinerary-app/_models/i-comment.d.ts +0 -15
  245. package/lib/itinerary-app/_models/i-image.d.ts +0 -6
  246. package/lib/itinerary-app/_models/i-itinerary-member.d.ts +0 -8
  247. package/lib/itinerary-app/_models/i-vote.schema.d.ts +0 -6
  248. package/lib/itinerary-app/_models/itinerary-location.d.ts +0 -16
  249. package/lib/itinerary-app/_models/itineraryMember.d.ts +0 -6
  250. package/lib/itinerary-app/_models/location-review.d.ts +0 -8
  251. package/lib/itinerary-app/_models/matching-clients.d.ts +0 -9
  252. package/lib/itinerary-app/_models/position-model.d.ts +0 -5
  253. package/lib/itinerary-app/_pipes/capitalize-first.pipe.d.ts +0 -7
  254. package/lib/itinerary-app/_pipes/time-ago.pipe.d.ts +0 -7
  255. package/lib/itinerary-app/_pipes/votes.pipe.d.ts +0 -7
  256. package/lib/itinerary-app/_services/api.service.d.ts +0 -14
  257. package/lib/itinerary-app/_services/assets.service.d.ts +0 -17
  258. package/lib/itinerary-app/_services/bottom-navigation.service.d.ts +0 -26
  259. package/lib/itinerary-app/_services/comment-image.service.d.ts +0 -8
  260. package/lib/itinerary-app/_services/constants.service.d.ts +0 -6
  261. package/lib/itinerary-app/_services/custom-dropdown-menu.service.d.ts +0 -37
  262. package/lib/itinerary-app/_services/itinerary.drawmode.transfer.d.ts +0 -27
  263. package/lib/itinerary-app/_services/itinerary.service.d.ts +0 -18
  264. package/lib/itinerary-app/_services/location.service.d.ts +0 -10
  265. package/lib/itinerary-app/_services/modal.clearhistory.service.d.ts +0 -9
  266. package/lib/itinerary-app/_services/modal.sendclient.service.d.ts +0 -9
  267. package/lib/itinerary-app/_services/modal.service.d.ts +0 -9
  268. package/lib/itinerary-app/_services/modal.shareurlservice.d.ts +0 -9
  269. package/lib/itinerary-app/_services/shadow-root-handler.service.d.ts +0 -6
  270. package/lib/itinerary-app/_services/share-popup-data.d.ts +0 -11
  271. package/lib/itinerary-app/initalize.app.d.ts +0 -2
  272. package/lib/itinerary-app/itinerary-lib-routing.module.d.ts +0 -7
  273. package/lib/itinerary-app/itinerary-lib.component.d.ts +0 -25
  274. package/lib/itinerary-app/itinerary-lib.module.d.ts +0 -18
  275. package/lib/itinerary-app/modules/archives/archives-routing.module.d.ts +0 -7
  276. package/lib/itinerary-app/modules/archives/archives.component.d.ts +0 -9
  277. package/lib/itinerary-app/modules/archives/archives.module.d.ts +0 -13
  278. package/lib/itinerary-app/modules/archives/pages/main-archives/main-archives.component.d.ts +0 -32
  279. package/lib/itinerary-app/modules/dashboard/components/navbar/navbar.component.d.ts +0 -19
  280. package/lib/itinerary-app/modules/dashboard/components/sidebar/sidebar.component.d.ts +0 -16
  281. package/lib/itinerary-app/modules/dashboard/dashboard-routing.module.d.ts +0 -7
  282. package/lib/itinerary-app/modules/dashboard/dashboard.component.d.ts +0 -5
  283. package/lib/itinerary-app/modules/dashboard/dashboard.module.d.ts +0 -16
  284. package/lib/itinerary-app/modules/dashboard/pages/main-dashboard/main-dashboard.component.d.ts +0 -5
  285. package/lib/itinerary-app/modules/itineraries/components/app-header-desktop/app-header-desktop.component.d.ts +0 -5
  286. package/lib/itinerary-app/modules/itineraries/components/app-sidebar-desktop/app-sidebar-desktop.component.d.ts +0 -19
  287. package/lib/itinerary-app/modules/itineraries/components/comment-filter-menu/comment-filter-menu.component.d.ts +0 -21
  288. package/lib/itinerary-app/modules/itineraries/components/delete-itineraries/delete-itineraries.component.d.ts +0 -20
  289. package/lib/itinerary-app/modules/itineraries/components/filter-menu/filter-menu.component.d.ts +0 -21
  290. package/lib/itinerary-app/modules/itineraries/components/no-visual-map-filters/no-visual-map-filters.component.d.ts +0 -29
  291. package/lib/itinerary-app/modules/itineraries/components/report-itinerary-modal/report-itinerary-modal.component.d.ts +0 -28
  292. package/lib/itinerary-app/modules/itineraries/components/report-media-modal/report-media-modal.component.d.ts +0 -28
  293. package/lib/itinerary-app/modules/itineraries/components/send-to-client/send-to-client.component.d.ts +0 -21
  294. package/lib/itinerary-app/modules/itineraries/components/share-popup/share-popup.component.d.ts +0 -33
  295. package/lib/itinerary-app/modules/itineraries/itineraries-routing.module.d.ts +0 -7
  296. package/lib/itinerary-app/modules/itineraries/itineraries.component.d.ts +0 -20
  297. package/lib/itinerary-app/modules/itineraries/itineraries.module.d.ts +0 -83
  298. package/lib/itinerary-app/modules/itineraries/pages/advanced-filters/advanced-filters.component.d.ts +0 -43
  299. package/lib/itinerary-app/modules/itineraries/pages/branched-itineraries/branched-itineraries.component.d.ts +0 -40
  300. package/lib/itinerary-app/modules/itineraries/pages/builder/builder.component.d.ts +0 -15
  301. package/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal/create-itinerary-modal.component.d.ts +0 -21
  302. package/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal-item/create-itinerary-modal-item.component.d.ts +0 -20
  303. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary/create-itinerary.component.d.ts +0 -42
  304. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-destination/create-itinerary-destination.component.d.ts +0 -23
  305. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-mode/create-itinerary-draw-mode.component.d.ts +0 -58
  306. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-preview/create-itinerary-draw-preview.component.d.ts +0 -51
  307. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-header/create-itinerary-header.component.d.ts +0 -22
  308. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-member-details/create-itinerary-member-details.component.d.ts +0 -14
  309. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-filter/create-itinerary-no-visual-filter.component.d.ts +0 -50
  310. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-preview/create-itinerary-no-visual-preview.component.d.ts +0 -27
  311. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-start-location/create-itinerary-start-location.component.d.ts +0 -32
  312. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-user-search/create-itinerary-user-search.component.d.ts +0 -28
  313. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary/created-itinerary.component.d.ts +0 -24
  314. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-detail/created-itinerary-detail.component.d.ts +0 -21
  315. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-map/created-itinerary-map.component.d.ts +0 -40
  316. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-preview.component.d.ts +0 -25
  317. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-add-place.component.d.ts +0 -25
  318. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-basic-info/itinerary-place-basic-info.component.d.ts +0 -7
  319. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-date-time/itinerary-place-date-time.component.d.ts +0 -5
  320. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-members/itinerary-place-members.component.d.ts +0 -20
  321. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/location-picker/location-picker.component.d.ts +0 -26
  322. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/select-itinerary-event/select-itinerary-event.component.d.ts +0 -26
  323. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-location/suggested-events-location.component.d.ts +0 -27
  324. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-radius/suggested-events-route-radius.component.d.ts +0 -24
  325. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-type/suggested-events-route-type.component.d.ts +0 -27
  326. package/lib/itinerary-app/modules/itineraries/pages/comment-replies/comment-replies.component.d.ts +0 -47
  327. package/lib/itinerary-app/modules/itineraries/pages/comment-replies/components/comment-single/comment-single.component.d.ts +0 -45
  328. package/lib/itinerary-app/modules/itineraries/pages/comments/comment-comparison/comment-comparison.component.d.ts +0 -25
  329. package/lib/itinerary-app/modules/itineraries/pages/comments/comment-search/comment-search.component.d.ts +0 -26
  330. package/lib/itinerary-app/modules/itineraries/pages/comments/comments-page.component.d.ts +0 -12
  331. package/lib/itinerary-app/modules/itineraries/pages/comments/handle-update-comment-request/handle-update-comment-request.component.d.ts +0 -9
  332. package/lib/itinerary-app/modules/itineraries/pages/explore/explore.component.d.ts +0 -39
  333. package/lib/itinerary-app/modules/itineraries/pages/favorites/favorites.component.d.ts +0 -21
  334. package/lib/itinerary-app/modules/itineraries/pages/itinerary-author-history/itinerary-author-history.component.d.ts +0 -13
  335. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/details/details.component.d.ts +0 -20
  336. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/map/map.component.d.ts +0 -38
  337. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/summary/summary.component.d.ts +0 -30
  338. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/itinerary-detail.component.d.ts +0 -25
  339. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/existing-friends/existing-friends.component.d.ts +0 -33
  340. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/friend-requests/friend-requests.component.d.ts +0 -28
  341. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/itinerary-friends.component.d.ts +0 -9
  342. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/list-friend-users/list-friend-users.component.d.ts +0 -38
  343. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/all-people/all-people.component.d.ts +0 -43
  344. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/existing-members/existing-members.component.d.ts +0 -29
  345. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-members.component.d.ts +0 -13
  346. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-sent-invites/itinerary-sent-invites.component.d.ts +0 -34
  347. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/user-list/user-list.component.d.ts +0 -31
  348. package/lib/itinerary-app/modules/itineraries/pages/itinerary-upvote-users/itinerary-upvote-users.component.d.ts +0 -24
  349. package/lib/itinerary-app/modules/itineraries/pages/itinerary-users/itinerary-users.component.d.ts +0 -24
  350. package/lib/itinerary-app/modules/itineraries/pages/itinerary-watching-users/itinerary-watching-users.component.d.ts +0 -24
  351. package/lib/itinerary-app/modules/itineraries/pages/notifications/notifications.component.d.ts +0 -26
  352. package/lib/itinerary-app/modules/itineraries/pages/stories/story.component.d.ts +0 -27
  353. package/lib/itinerary-app/modules/pathway/components/googlemap/googlemap.component.d.ts +0 -35
  354. package/lib/itinerary-app/modules/pathway/components/map-header/map-header.component.d.ts +0 -15
  355. package/lib/itinerary-app/modules/pathway/pages/default-destination/default-destination.component.d.ts +0 -11
  356. package/lib/itinerary-app/modules/pathway/pages/itinerary-preview/itinerary-preview.component.d.ts +0 -29
  357. package/lib/itinerary-app/modules/pathway/pages/non-visual-map-filter/non-visual-map-filter.component.d.ts +0 -20
  358. package/lib/itinerary-app/modules/pathway/pathway-routing.module.d.ts +0 -7
  359. package/lib/itinerary-app/modules/pathway/pathway.component.d.ts +0 -5
  360. package/lib/itinerary-app/modules/pathway/pathway.module.d.ts +0 -20
  361. package/lib/itinerary-app/modules/search/components/clear-history-popup/clear-history-popup.component.d.ts +0 -14
  362. package/lib/itinerary-app/modules/search/components/quick-actions/quick-actions.component.d.ts +0 -9
  363. package/lib/itinerary-app/modules/search/components/recent-searches/recent-searches.component.d.ts +0 -5
  364. package/lib/itinerary-app/modules/search/components/recent-searches-item/recent-searches-item.component.d.ts +0 -7
  365. package/lib/itinerary-app/modules/search/components/recent-searches-list/recent-searches-list.component.d.ts +0 -5
  366. package/lib/itinerary-app/modules/search/components/search-chips/search-chips.component.d.ts +0 -24
  367. package/lib/itinerary-app/modules/search/components/search-results/search-results.component.d.ts +0 -8
  368. package/lib/itinerary-app/modules/search/components/serach-bottom-bar/serach-bottom-bar.component.d.ts +0 -7
  369. package/lib/itinerary-app/modules/search/components/serach-clear-history/serach-clear-history.component.d.ts +0 -16
  370. package/lib/itinerary-app/modules/search/pages/main-search/main-search.component.d.ts +0 -74
  371. package/lib/itinerary-app/modules/search/search-routing.module.d.ts +0 -7
  372. package/lib/itinerary-app/modules/search/search.component.d.ts +0 -5
  373. package/lib/itinerary-app/modules/search/search.module.d.ts +0 -22
  374. package/lib/itinerary-app/modules/user/profile/profile.component.d.ts +0 -12
  375. package/lib/itinerary-app/modules/user/user-routing.module.d.ts +0 -7
  376. package/lib/itinerary-app/modules/user/user.module.d.ts +0 -11
  377. package/lib/itinerary-app/shared/card-component/card-component.component.d.ts +0 -42
  378. package/lib/itinerary-app/shared/comment/comment-images/comment-images.component.d.ts +0 -9
  379. package/lib/itinerary-app/shared/comment/comment.component.d.ts +0 -46
  380. package/lib/itinerary-app/shared/custom-heading-with-button/custom-heading-with-button.component.d.ts +0 -11
  381. package/lib/itinerary-app/shared/custom-story-card/custom-story-card.component.d.ts +0 -44
  382. package/lib/itinerary-app/shared/cutom-card/cutom-card.component.d.ts +0 -50
  383. package/lib/itinerary-app/shared/footer/components/bottom-navigation-items/bottom-navigation-items.component.d.ts +0 -10
  384. package/lib/itinerary-app/shared/footer/footer.component.d.ts +0 -23
  385. package/lib/itinerary-app/shared/header/header.component.d.ts +0 -17
  386. package/lib/itinerary-app/shared/image-viewer/image-viewer.component.d.ts +0 -16
  387. package/lib/itinerary-app/shared/notification-tile/notification-tile.component.d.ts +0 -20
  388. package/lib/itinerary-app/shared/search-popup/search-popup.component.d.ts +0 -23
  389. package/lib/itinerary-app/shared/shared.module.d.ts +0 -33
  390. package/lib/itinerary-app/shared/swiper-dialog/swiper-dialog.component.d.ts +0 -26
  391. package/lib/itinerary-app/shared/tab-bar/tab-bar.component.d.ts +0 -17
  392. package/lib/itinerary-app/shared/user-stack-tile/user-stack-tile.component.d.ts +0 -22
  393. package/lib/itinerary-app/shared/user-tile/user-tile.component.d.ts +0 -12
  394. package/lib/itinerary-app/shared/users-stack/users-stack.component.d.ts +0 -19
  395. package/public-api.d.ts +0 -3
  396. package/src/assets/icons/food-pink.png +0 -0
  397. package/src/assets/icons/food.png +0 -0
  398. package/src/assets/jsons/reports-options.json +0 -12
@@ -1,57 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ItinerariesRoutesEnum } from '../../../../../../_enums/ItenariesRoutes.enum';
3
- import { ICONS } from '../../../../../../_constants/constants';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/router";
7
- import * as i3 from "../../../../../../_services/itinerary.service";
8
- import * as i4 from "@naniteninja/ionic-lib";
9
- import * as i5 from "../create-itinerary-header/create-itinerary-header.component";
10
- export class CreateItineraryDestinationComponent {
11
- location;
12
- router;
13
- route;
14
- itineraryService;
15
- ICONS = ICONS;
16
- isOpen = true;
17
- itinerary;
18
- //LIFE CYCLE
19
- constructor(location, router, route, itineraryService) {
20
- this.location = location;
21
- this.router = router;
22
- this.route = route;
23
- this.itineraryService = itineraryService;
24
- }
25
- ngOnInit() {
26
- const id = this.route.snapshot.params['id'];
27
- if (id) {
28
- this.itineraryService.getById(id).subscribe({
29
- next: (res) => {
30
- this.itinerary = res;
31
- }
32
- });
33
- }
34
- }
35
- //UI LOGIC
36
- showBottomModal() {
37
- this.isOpen = true;
38
- }
39
- //NAVIGATIONS
40
- navToPickStartLocation() {
41
- this.router.navigate([
42
- ItinerariesRoutesEnum.ITINERARY,
43
- ItinerariesRoutesEnum.LOCATION_PICKER,
44
- this.itinerary?._id,
45
- ], { queryParams: { mode: 'end' } });
46
- }
47
- back() {
48
- this.location.back();
49
- }
50
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateItineraryDestinationComponent, deps: [{ token: i1.Location }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.ItineraryService }], target: i0.ɵɵFactoryTarget.Component });
51
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateItineraryDestinationComponent, selector: "app-create-itinerary-destination", ngImport: i0, template: "<app-create-itinerary-header\r\n [progressBarValue]=\"15\"\r\n heading=\"Create Itinerary\"\r\n></app-create-itinerary-header>\r\n<lib-map class=\"maps-100vh\"></lib-map>\r\n<lib-bottom-modal\r\n (submitModal)=\"navToPickStartLocation()\"\r\n submitButtonTitle=\"Continue\"\r\n [showArrow]=\"true\"\r\n [(isOpen)]=\"isOpen\"\r\n [adaptToContentHeight]=\"true\"\r\n>\r\n <div class=\"pl-4 pr-4\">\r\n <div class=\"flex items-center justify-between\">\r\n <div class=\"flex items-center\">\r\n <lib-icon-btn class=\"checkmark-icon-button\">\r\n <img\r\n [src]=\"ICONS['startMarkerImage']\"\r\n alt=\"icon\"\r\n height=\"16\"\r\n width=\"16\"\r\n />\r\n </lib-icon-btn>\r\n <div class=\"ml-4\">\r\n <span>{{ itinerary?.startLocation?.address }}</span>\r\n <p>Starting location</p>\r\n </div>\r\n </div>\r\n <img [src]=\"ICONS['editPink']\" alt=\"edit\" height=\"13\" width=\"13\" />\r\n </div>\r\n\r\n <h1 class=\"font-Calistoga text-lg mt-5\">Destination</h1>\r\n <p class=\"mt-3\">Select final destination for itinenary route.</p>\r\n\r\n <div class=\"mt-3\">\r\n <lib-text-box\r\n (click)=\"navToPickStartLocation()\"\r\n class=\"textbox-1\"\r\n label=\"Where To?\"\r\n ></lib-text-box>\r\n </div>\r\n </div>\r\n</lib-bottom-modal>\r\n\r\n<div\r\n (click)=\"showBottomModal()\"\r\n class=\"absolute bottom-0 cursor-pointer z-10\"\r\n style=\"left: 50%\"\r\n>\r\n <img\r\n style=\"transform: rotate(270deg)\"\r\n [src]=\"ICONS['rightArrow']\"\r\n alt=\"icon\"\r\n height=\"15\"\r\n width=\"15\"\r\n />\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i4.IconBtnComponent, selector: "lib-icon-btn", inputs: ["hoverOutline", "disabled", "type", "form", "label", "showArrowIcon", "disableTextShadow", "notificationCount", "loading$", "illuminateIcon"] }, { kind: "component", type: i4.BottomModalComponent, selector: "lib-bottom-modal", inputs: ["breakpoints", "initialBreakpoint", "isOpen", "canDismiss", "showArrow", "showBackBtn", "showConfirm", "showCloseBtn", "loading", "showHeaderSeparator", "title", "confirmationTitle", "confirmationMsg", "confirmButton", "confirmCancelButton", "description", "secondaryButtonTitle", "submitButtonTitle", "cancelButtonTitle", "validModal", "adaptToContentHeight", "customClass"], outputs: ["isOpenChange", "breakpointChange", "closeModal", "submitModal", "secondaryButtonClick", "backClick", "showConfirmChange", "confirmEvent"] }, { kind: "directive", type: i4.LazyImageDirective, selector: "img" }, { kind: "component", type: i4.TextBoxComponent, selector: "lib-text-box", inputs: ["label", "maxLength", "includeEmojiPicker", "emojiPickerConfig", "includeImageAttachment", "maxImageAttachmentLength"] }, { kind: "component", type: i5.CreateItineraryHeaderComponent, selector: "app-create-itinerary-header", inputs: ["heading", "progressBarValue", "discardItineraryId", "class"] }] });
52
- }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateItineraryDestinationComponent, decorators: [{
54
- type: Component,
55
- args: [{ selector: 'app-create-itinerary-destination', template: "<app-create-itinerary-header\r\n [progressBarValue]=\"15\"\r\n heading=\"Create Itinerary\"\r\n></app-create-itinerary-header>\r\n<lib-map class=\"maps-100vh\"></lib-map>\r\n<lib-bottom-modal\r\n (submitModal)=\"navToPickStartLocation()\"\r\n submitButtonTitle=\"Continue\"\r\n [showArrow]=\"true\"\r\n [(isOpen)]=\"isOpen\"\r\n [adaptToContentHeight]=\"true\"\r\n>\r\n <div class=\"pl-4 pr-4\">\r\n <div class=\"flex items-center justify-between\">\r\n <div class=\"flex items-center\">\r\n <lib-icon-btn class=\"checkmark-icon-button\">\r\n <img\r\n [src]=\"ICONS['startMarkerImage']\"\r\n alt=\"icon\"\r\n height=\"16\"\r\n width=\"16\"\r\n />\r\n </lib-icon-btn>\r\n <div class=\"ml-4\">\r\n <span>{{ itinerary?.startLocation?.address }}</span>\r\n <p>Starting location</p>\r\n </div>\r\n </div>\r\n <img [src]=\"ICONS['editPink']\" alt=\"edit\" height=\"13\" width=\"13\" />\r\n </div>\r\n\r\n <h1 class=\"font-Calistoga text-lg mt-5\">Destination</h1>\r\n <p class=\"mt-3\">Select final destination for itinenary route.</p>\r\n\r\n <div class=\"mt-3\">\r\n <lib-text-box\r\n (click)=\"navToPickStartLocation()\"\r\n class=\"textbox-1\"\r\n label=\"Where To?\"\r\n ></lib-text-box>\r\n </div>\r\n </div>\r\n</lib-bottom-modal>\r\n\r\n<div\r\n (click)=\"showBottomModal()\"\r\n class=\"absolute bottom-0 cursor-pointer z-10\"\r\n style=\"left: 50%\"\r\n>\r\n <img\r\n style=\"transform: rotate(270deg)\"\r\n [src]=\"ICONS['rightArrow']\"\r\n alt=\"icon\"\r\n height=\"15\"\r\n width=\"15\"\r\n />\r\n</div>\r\n" }]
56
- }], ctorParameters: () => [{ type: i1.Location }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.ItineraryService }] });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWl0aW5lcmFyeS1kZXN0aW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pdGluZXJhcnktbGliL3NyYy9saWIvaXRpbmVyYXJ5LWFwcC9tb2R1bGVzL2l0aW5lcmFyaWVzL3BhZ2VzL2J1aWxkZXIvcGFnZXMvY3JlYXRlLWl0aW5lcmFyeS1kZXN0aW5hdGlvbi9jcmVhdGUtaXRpbmVyYXJ5LWRlc3RpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL21vZHVsZXMvaXRpbmVyYXJpZXMvcGFnZXMvYnVpbGRlci9wYWdlcy9jcmVhdGUtaXRpbmVyYXJ5LWRlc3RpbmF0aW9uL2NyZWF0ZS1pdGluZXJhcnktZGVzdGluYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUVsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUl0RixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7Ozs7Ozs7QUFPL0QsTUFBTSxPQUFPLG1DQUFtQztJQU9wQztJQUNBO0lBQ0E7SUFDQTtJQVRWLEtBQUssR0FBVSxLQUFLLENBQUM7SUFDckIsTUFBTSxHQUFZLElBQUksQ0FBQztJQUN2QixTQUFTLENBQXlCO0lBRWxDLFlBQVk7SUFDWixZQUNVLFFBQWtCLEVBQ2xCLE1BQWMsRUFDZCxLQUFxQixFQUNyQixnQkFBa0M7UUFIbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN4QyxDQUFDO0lBRUwsUUFBUTtRQUNOLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QyxJQUFJLEVBQUUsRUFBRTtZQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDO2dCQUMxQyxJQUFJLEVBQUUsQ0FBQyxHQUFlLEVBQUUsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7Z0JBQ3ZCLENBQUM7YUFDRixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxVQUFVO0lBQ1YsZUFBZTtRQUNiLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxhQUFhO0lBQ2Isc0JBQXNCO1FBQ3BCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUNsQjtZQUNFLHFCQUFxQixDQUFDLFNBQVM7WUFDL0IscUJBQXFCLENBQUMsZUFBZTtZQUNyQyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUc7U0FDcEIsRUFDRCxFQUFFLFdBQVcsRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3ZCLENBQUM7d0dBM0NVLG1DQUFtQzs0RkFBbkMsbUNBQW1DLHdFQ2RoRCxxckRBeURBOzs0RkQzQ2EsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNFLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEl0aW5lcmFyaWVzUm91dGVzRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL19lbnVtcy9JdGVuYXJpZXNSb3V0ZXMuZW51bSc7XHJcbmltcG9ydCB7IElpY29uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vX2ludGVyZmFjZS9pY29uJztcclxuaW1wb3J0IHsgSUl0aW5lcmFyeSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL19tb2RlbHMvaS1JdGluZXJhcnknO1xyXG5pbXBvcnQgeyBJdGluZXJhcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vX3NlcnZpY2VzL2l0aW5lcmFyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9fY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jcmVhdGUtaXRpbmVyYXJ5LWRlc3RpbmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWl0aW5lcmFyeS1kZXN0aW5hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NyZWF0ZS1pdGluZXJhcnktZGVzdGluYXRpb24uY29tcG9uZW50LmNzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVJdGluZXJhcnlEZXN0aW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgSUNPTlM6IElpY29uID0gSUNPTlM7XHJcbiAgaXNPcGVuOiBib29sZWFuID0gdHJ1ZTtcclxuICBpdGluZXJhcnk6IElJdGluZXJhcnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vTElGRSBDWUNMRVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvbjogTG9jYXRpb24sXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIGl0aW5lcmFyeVNlcnZpY2U6IEl0aW5lcmFyeVNlcnZpY2UsXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIHRoaXMuaXRpbmVyYXJ5U2VydmljZS5nZXRCeUlkKGlkKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IElJdGluZXJhcnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaXRpbmVyYXJ5ID0gcmVzO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1VJIExPR0lDXHJcbiAgc2hvd0JvdHRvbU1vZGFsKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc09wZW4gPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgLy9OQVZJR0FUSU9OU1xyXG4gIG5hdlRvUGlja1N0YXJ0TG9jYXRpb24oKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShcclxuICAgICAgW1xyXG4gICAgICAgIEl0aW5lcmFyaWVzUm91dGVzRW51bS5JVElORVJBUlksXHJcbiAgICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLkxPQ0FUSU9OX1BJQ0tFUixcclxuICAgICAgICB0aGlzLml0aW5lcmFyeT8uX2lkLFxyXG4gICAgICBdLFxyXG4gICAgICB7IHF1ZXJ5UGFyYW1zOiB7IG1vZGU6ICdlbmQnIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBiYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtY3JlYXRlLWl0aW5lcmFyeS1oZWFkZXJcclxuICBbcHJvZ3Jlc3NCYXJWYWx1ZV09XCIxNVwiXHJcbiAgaGVhZGluZz1cIkNyZWF0ZSBJdGluZXJhcnlcIlxyXG4+PC9hcHAtY3JlYXRlLWl0aW5lcmFyeS1oZWFkZXI+XHJcbjxsaWItbWFwIGNsYXNzPVwibWFwcy0xMDB2aFwiPjwvbGliLW1hcD5cclxuPGxpYi1ib3R0b20tbW9kYWxcclxuICAoc3VibWl0TW9kYWwpPVwibmF2VG9QaWNrU3RhcnRMb2NhdGlvbigpXCJcclxuICBzdWJtaXRCdXR0b25UaXRsZT1cIkNvbnRpbnVlXCJcclxuICBbc2hvd0Fycm93XT1cInRydWVcIlxyXG4gIFsoaXNPcGVuKV09XCJpc09wZW5cIlxyXG4gIFthZGFwdFRvQ29udGVudEhlaWdodF09XCJ0cnVlXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJwbC00IHByLTRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGxpYi1pY29uLWJ0biBjbGFzcz1cImNoZWNrbWFyay1pY29uLWJ1dHRvblwiPlxyXG4gICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICBbc3JjXT1cIklDT05TWydzdGFydE1hcmtlckltYWdlJ11cIlxyXG4gICAgICAgICAgICBhbHQ9XCJpY29uXCJcclxuICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIlxyXG4gICAgICAgICAgICB3aWR0aD1cIjE2XCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgPC9saWItaWNvbi1idG4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1sLTRcIj5cclxuICAgICAgICAgIDxzcGFuPnt7IGl0aW5lcmFyeT8uc3RhcnRMb2NhdGlvbj8uYWRkcmVzcyB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxwPlN0YXJ0aW5nIGxvY2F0aW9uPC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGltZyBbc3JjXT1cIklDT05TWydlZGl0UGluayddXCIgYWx0PVwiZWRpdFwiIGhlaWdodD1cIjEzXCIgd2lkdGg9XCIxM1wiIC8+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8aDEgY2xhc3M9XCJmb250LUNhbGlzdG9nYSB0ZXh0LWxnIG10LTVcIj5EZXN0aW5hdGlvbjwvaDE+XHJcbiAgICA8cCBjbGFzcz1cIm10LTNcIj5TZWxlY3QgZmluYWwgZGVzdGluYXRpb24gZm9yIGl0aW5lbmFyeSByb3V0ZS48L3A+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm10LTNcIj5cclxuICAgICAgPGxpYi10ZXh0LWJveFxyXG4gICAgICAgIChjbGljayk9XCJuYXZUb1BpY2tTdGFydExvY2F0aW9uKClcIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dGJveC0xXCJcclxuICAgICAgICBsYWJlbD1cIldoZXJlIFRvP1wiXHJcbiAgICAgID48L2xpYi10ZXh0LWJveD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2xpYi1ib3R0b20tbW9kYWw+XHJcblxyXG48ZGl2XHJcbiAgKGNsaWNrKT1cInNob3dCb3R0b21Nb2RhbCgpXCJcclxuICBjbGFzcz1cImFic29sdXRlIGJvdHRvbS0wIGN1cnNvci1wb2ludGVyIHotMTBcIlxyXG4gIHN0eWxlPVwibGVmdDogNTAlXCJcclxuPlxyXG4gIDxpbWdcclxuICAgIHN0eWxlPVwidHJhbnNmb3JtOiByb3RhdGUoMjcwZGVnKVwiXHJcbiAgICBbc3JjXT1cIklDT05TWydyaWdodEFycm93J11cIlxyXG4gICAgYWx0PVwiaWNvblwiXHJcbiAgICBoZWlnaHQ9XCIxNVwiXHJcbiAgICB3aWR0aD1cIjE1XCJcclxuICAvPlxyXG48L2Rpdj5cclxuIl19
@@ -1,280 +0,0 @@
1
- import { Component, ViewChild } from '@angular/core';
2
- import { ICONS } from '../../../../../../_constants/constants';
3
- import { ItinerariesRoutesEnum } from '../../../../../../_enums/ItenariesRoutes.enum';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/router";
7
- import * as i3 from "../../../../../../_services/itinerary.service";
8
- import * as i4 from "../../../../../../_services/location.service";
9
- import * as i5 from "../../../../../../_services/itinerary.drawmode.transfer";
10
- import * as i6 from "@naniteninja/ionic-lib";
11
- import * as i7 from "../create-itinerary-header/create-itinerary-header.component";
12
- import * as i8 from "@ngx-translate/core";
13
- const defaultIcon = 'assets/icons/map-markers-yellow.svg';
14
- const selectedIcon = 'assets/icons/restu-icon-large.svg';
15
- export class CreateItineraryDrawModeComponent {
16
- location;
17
- cdr;
18
- router;
19
- activatedRoute;
20
- itineraryService;
21
- locationService;
22
- transferService;
23
- ICONS = ICONS;
24
- actions = [ICONS['location'], ICONS['pencil'], ICONS['ban']];
25
- selected = this.actions[1];
26
- isOpen = true;
27
- itinerary;
28
- libMap;
29
- mapDrawn = false;
30
- polygon; //The polygon rendered on map
31
- initialLocation = { lat: 24.8607, lng: 67.0011 }; //Location of the user
32
- plottedMarkers = []; //Plotted markers on the map
33
- selectedMarkers = []; //Selected markers on the map
34
- placesResult; //Places result required for preview
35
- placeMarkers = [];
36
- //LIFE CYCLES
37
- constructor(location, cdr, router, activatedRoute, itineraryService, locationService, transferService) {
38
- this.location = location;
39
- this.cdr = cdr;
40
- this.router = router;
41
- this.activatedRoute = activatedRoute;
42
- this.itineraryService = itineraryService;
43
- this.locationService = locationService;
44
- this.transferService = transferService;
45
- }
46
- ngOnInit() {
47
- const id = this.activatedRoute.snapshot.params['id'];
48
- if (id) {
49
- this.itineraryService.getById(id).subscribe((itinerary) => {
50
- this.itinerary = itinerary;
51
- });
52
- }
53
- }
54
- //UI LOGIC
55
- updateAction(action) {
56
- this.selected = action;
57
- if (action === this.actions[0]) {
58
- this.router.navigate([
59
- ItinerariesRoutesEnum.ITINERARY,
60
- ItinerariesRoutesEnum.CREATE_ITINERARY_ORIGIN,
61
- this.itinerary?._id
62
- ]);
63
- }
64
- if (action === this.actions[2]) {
65
- this.router.navigate([
66
- ItinerariesRoutesEnum.ITINERARY,
67
- ItinerariesRoutesEnum.CREATE_ITINERARY_NO_VISUAL_FILTER_MODE,
68
- ItinerariesRoutesEnum.CREATE_ITINERARY_NO_VISUAL_FILTER_MODE_CREATE,
69
- this.itinerary?._id
70
- ]);
71
- }
72
- }
73
- showBottomModal() {
74
- this.isOpen = true;
75
- this.cdr.detectChanges();
76
- }
77
- searchRestaurantsInPolygon(polygonCoords) {
78
- if (polygonCoords) {
79
- this.mapDrawn = true;
80
- const bounds = new google.maps.LatLngBounds();
81
- polygonCoords.forEach((coord) => bounds.extend(coord));
82
- const service = new google.maps.places.PlacesService(this.libMap.map.googleMap);
83
- service.nearbySearch({
84
- bounds: bounds,
85
- type: 'restaurant',
86
- }, (results, status) => {
87
- if (status === google.maps.places.PlacesServiceStatus.OK && results) {
88
- const filteredResults = results.filter((place) => {
89
- const location = place.geometry?.location;
90
- if (!location)
91
- return false;
92
- return google.maps.geometry.poly.containsLocation(location, this.polygon);
93
- });
94
- this.placesResult = filteredResults;
95
- filteredResults.forEach((place) => {
96
- this.addCustomMarker(place);
97
- });
98
- this.mapDrawn = true;
99
- }
100
- });
101
- }
102
- }
103
- addCustomMarker(place) {
104
- const marker = new google.maps.Marker({
105
- map: this.libMap.map.googleMap,
106
- position: place.geometry?.location,
107
- title: place.name,
108
- icon: {
109
- url: 'assets/icons/map-markers-yellow.svg',
110
- },
111
- });
112
- this.plottedMarkers.push(marker);
113
- this.placeMarkers.push({
114
- place: place,
115
- marker: marker
116
- });
117
- marker.addListener('click', () => {
118
- // Toggle selection
119
- const index = this.selectedMarkers.indexOf(marker);
120
- if (index > -1) {
121
- // Marker was already selected → deselect
122
- marker.setIcon(defaultIcon);
123
- this.selectedMarkers.splice(index, 1);
124
- }
125
- else {
126
- // Select marker
127
- marker.setIcon(selectedIcon);
128
- this.selectedMarkers.push(marker);
129
- }
130
- });
131
- }
132
- clearMap() {
133
- this.mapDrawn = false;
134
- if (this.polygon) {
135
- this.polygon.setMap(null);
136
- }
137
- this.clearMarkers();
138
- }
139
- continue() {
140
- const coordinates = [];
141
- this.polygon.getPath().forEach(coord => {
142
- coordinates.push({ lat: coord.lat(), lng: coord.lng() });
143
- });
144
- this.transferService.setPolygon(coordinates);
145
- const selectedPlaces = this.selectedMarkers.map((selectedMarker) => {
146
- const placeMarker = this.placeMarkers.find(placeMarker => placeMarker.marker === selectedMarker);
147
- return placeMarker.place;
148
- });
149
- const allPlaces = this.placeMarkers.map(placeMarker => placeMarker.place);
150
- this.transferService.setPlaces(allPlaces);
151
- this.transferService.setSelectedPlaces(selectedPlaces);
152
- this.transferService.setCurrentLocation(this.initialLocation);
153
- this.router.navigate([
154
- ItinerariesRoutesEnum.ITINERARY,
155
- ItinerariesRoutesEnum.CREATE_ITINERARY_DRAW_MODE,
156
- ItinerariesRoutesEnum.CREATE_ITINERARY_DRAW_MODE_PREVIEW,
157
- this.itinerary?._id
158
- ]);
159
- }
160
- clearPolygonIfExist() {
161
- if (this.polygon) {
162
- this.polygon.setMap(null);
163
- }
164
- }
165
- clearMarkers() {
166
- if (this.plottedMarkers?.length) {
167
- this.plottedMarkers?.forEach((plottedMarker) => plottedMarker.setMap(null));
168
- }
169
- }
170
- ngAfterViewInit() {
171
- this.locationService.getCurrentLocation()
172
- .subscribe((location) => {
173
- this.libMap.map.googleMap?.setCenter({
174
- lat: location.lat,
175
- lng: location.long
176
- });
177
- //Set the initial location of the user
178
- this.initialLocation = {
179
- lat: location.lat,
180
- lng: location.long
181
- };
182
- this.libMap.map.googleMap?.setZoom(15);
183
- //Add marker for user position
184
- new google.maps.Marker({
185
- map: this.libMap.map.googleMap,
186
- position: {
187
- lat: location.lat,
188
- lng: location.long
189
- },
190
- title: 'You are here',
191
- icon: {
192
- url: 'assets/current_location.svg',
193
- scaledSize: new google.maps.Size(40, 40),
194
- },
195
- });
196
- // Enable polygon drawing
197
- const drawingManager = new google.maps.drawing.DrawingManager({
198
- drawingMode: google.maps.drawing.OverlayType.POLYGON,
199
- drawingControl: true,
200
- drawingControlOptions: {
201
- position: google.maps.ControlPosition.RIGHT_CENTER,
202
- drawingModes: [google.maps.drawing.OverlayType.POLYGON],
203
- },
204
- polygonOptions: {
205
- strokeColor: '#E17575',
206
- strokeOpacity: 0,
207
- strokeWeight: 0,
208
- fillColor: '#E17575',
209
- fillOpacity: 0.3,
210
- clickable: true,
211
- editable: true,
212
- zIndex: 1,
213
- },
214
- });
215
- drawingManager.setMap(this.libMap.map.googleMap);
216
- google.maps.event.addListener(drawingManager, 'drawingmode_changed', () => {
217
- const mode = drawingManager.getDrawingMode();
218
- if (mode === google.maps.drawing.OverlayType.POLYGON) {
219
- this.clearPolygonIfExist();
220
- }
221
- });
222
- // Listen for polygon completion
223
- google.maps.event.addListener(drawingManager, 'overlaycomplete', (event) => {
224
- if (event.type === google.maps.drawing.OverlayType.POLYGON) {
225
- const polygon = event.overlay;
226
- this.polygon = polygon;
227
- // Disable drawing after one polygon
228
- drawingManager.setDrawingMode(null);
229
- // Access the polygon coordinates
230
- const path = polygon.getPath();
231
- const coordinates = [];
232
- path.forEach((coord) => {
233
- coordinates.push({ lat: coord.lat(), lng: coord.lng() });
234
- });
235
- this.searchRestaurantsInPolygon(coordinates);
236
- }
237
- });
238
- });
239
- }
240
- //NAVIGATIONS
241
- back() {
242
- this.location.back();
243
- }
244
- navToPickStartLocation() {
245
- this.router.navigate([
246
- ItinerariesRoutesEnum.ITINERARY,
247
- ItinerariesRoutesEnum.LOCATION_PICKER,
248
- this.itinerary?._id,
249
- ], { queryParams: { mode: 'start' } });
250
- }
251
- getClosestPointOnPolygon(polygon, point) {
252
- const path = polygon.getPath();
253
- let closestPoint = null;
254
- let minDistance = Infinity;
255
- for (let i = 0; i < path.getLength(); i++) {
256
- const start = path.getAt(i);
257
- const end = path.getAt((i + 1) % path.getLength());
258
- // Interpolate points along the segment
259
- for (let t = 0; t <= 1; t += 0.05) {
260
- const interp = google.maps.geometry.spherical.interpolate(start, end, t);
261
- const dist = google.maps.geometry.spherical.computeDistanceBetween(point, interp);
262
- if (dist < minDistance) {
263
- minDistance = dist;
264
- closestPoint = interp;
265
- }
266
- }
267
- }
268
- return closestPoint;
269
- }
270
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateItineraryDrawModeComponent, deps: [{ token: i1.Location }, { token: i0.ChangeDetectorRef }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.ItineraryService }, { token: i4.LocationService }, { token: i5.ItineraryDrawModeTransferService }], target: i0.ɵɵFactoryTarget.Component });
271
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CreateItineraryDrawModeComponent, selector: "lib-create-itinerary-draw-mode", viewQueries: [{ propertyName: "libMap", first: true, predicate: ["libMap"], descendants: true }], ngImport: i0, template: "<app-create-itinerary-header\r\n [progressBarValue]=\"50\"\r\n heading=\"Create Itinerary\"\r\n></app-create-itinerary-header>\r\n<lib-map #libMap class=\"maps-100vh\"></lib-map>\r\n<lib-bottom-modal\r\n [showArrow]=\"true\"\r\n [(isOpen)]=\"isOpen\"\r\n [adaptToContentHeight]=\"true\"\r\n>\r\n <div class=\"\">\r\n <ng-container *ngIf=\"!mapDrawn\">\r\n <div class=\"flex items-center justify-between pl-4 pr-4\">\r\n <h3 class=\"font-Calistoga text-lg\">{{ \"ITINERARY.DRAW\" | translate }}</h3>\r\n <div class=\"selectables flex items-center\">\r\n <div\r\n (click)=\"updateAction(a)\"\r\n class=\"flex items-center justify-center actions\"\r\n *ngFor=\"let a of actions\"\r\n [ngClass]=\"{ selected: a === selected }\"\r\n >\r\n <img [src]=\"a\" alt=\"icon\" loading=\"lazy\" />\r\n </div>\r\n </div>\r\n </div>\r\n <p class=\"mt-3 px-4 mb-4\">{{ \"ITINERARY.DRAW_DESCRIPTION\" | translate }}</p>\r\n </ng-container>\r\n <ng-container *ngIf=\"mapDrawn\">\r\n <div class=\"ml-auto flex items-center justify-center gap-x-2\">\r\n <div class=\"flex items-center gap-x-1 text-xs\">\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"ICONS['locationWhite']\"\r\n alt=\"location\"\r\n />\r\n <span>&nbsp;{{ \"ITINERARY.SELECT_MIN_PLACES\" | translate }}</span>\r\n </div>\r\n <div class=\"h-4 border w-0 border-secondary\"></div>\r\n <div class=\"flex items-center justify-center gap-x-2 text-xs\">\r\n <img loading=\"lazy\" [src]=\"ICONS['clock']\" alt=\"\" />\r\n <span>&nbsp;0 minutes</span>\r\n <span class=\"text-secondary font-thin\">(0.0 km)</span>\r\n </div>\r\n </div>\r\n <div class=\"select-places-description mt-5 text-center mb-4\">\r\n {{ \"ITINERARY.SELECT_PLACES_INSTRUCTION\" | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <lib-footer-shared\r\n (continueButtonClick)=\"continue()\"\r\n (secondaryButtonClick)=\"clearMap()\"\r\n [canContinue]=\"true\"\r\n [continueButtonText]=\"'COMMON.CONTINUE' | translate\"\r\n [secondaryButtonText]=\"'COMMON.CLEAR' | translate\"\r\n ></lib-footer-shared>\r\n </div>\r\n</lib-bottom-modal>\r\n<div\r\n (click)=\"showBottomModal()\"\r\n class=\"absolute bottom-0 cursor-pointer z-10\"\r\n style=\"left: 50%\"\r\n>\r\n <img\r\n style=\"transform: rotate(270deg)\"\r\n [src]=\"ICONS['rightArrow']\"\r\n alt=\"icon\"\r\n height=\"15\"\r\n width=\"15\"\r\n />\r\n</div>\r\n", styles: [":host{--lib-popup-modal-radius: 16px;--border-radius: var(--lib-popup-modal-radius);--lib-popup-modal-background: #28252d !important;--background: #28252d !important;--overflow: hidden !important;--lib-popup-modal-color: #a8a8a8;--color: var(--lib-popup-modal-color, #a8a8a8);--max-width: var(--lib-bottom-modal-max-width, 500px);--lib-popup-modal-shadow: 5px 5px 95px 0px rgba(255, 255, 255, .32), -3px -3px 16px 0px rgba(255, 255, 255, .1) !important;--box-shadow: var( --lib-popup-modal-shadow, 5px 5px 95px 0px rgba(255, 255, 255, .32), -3px -3px 16px 0px rgba(255, 255, 255, .1) )}.selectables{background:#28252d;box-shadow:4.1px 4.1px 8.2px #00000052 inset;box-shadow:-2.46px -2.46px 3.28px #ffffff1a inset;border-radius:27.9px}.actions{width:42px;height:28px;border-radius:82.05px}.selected{background:linear-gradient(94.44deg,#fe3c72 1.26%,#e15561);box-shadow:3.28px 3.28px 6.56px #00000040;box-shadow:-1.64px -1.64px 8.2px #ffffff40}.select-places-text,.select-places-description{font-size:var(--font-size-small)}.button-container{background-color:#27242c;box-shadow:inset 0 6px 6px -6px #8a8a8aab}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.BottomModalComponent, selector: "lib-bottom-modal", inputs: ["breakpoints", "initialBreakpoint", "isOpen", "canDismiss", "showArrow", "showBackBtn", "showConfirm", "showCloseBtn", "loading", "showHeaderSeparator", "title", "confirmationTitle", "confirmationMsg", "confirmButton", "confirmCancelButton", "description", "secondaryButtonTitle", "submitButtonTitle", "cancelButtonTitle", "validModal", "adaptToContentHeight", "customClass"], outputs: ["isOpenChange", "breakpointChange", "closeModal", "submitModal", "secondaryButtonClick", "backClick", "showConfirmChange", "confirmEvent"] }, { kind: "directive", type: i6.LazyImageDirective, selector: "img" }, { kind: "component", type: i6.FooterSharedComponent, selector: "lib-footer-shared", inputs: ["loading$", "canContinue", "continueButtonText", "secondaryButtonText", "showBackButton", "continueButtonParameter$"], outputs: ["secondaryButtonClick", "continueButtonClick"] }, { kind: "component", type: i7.CreateItineraryHeaderComponent, selector: "app-create-itinerary-header", inputs: ["heading", "progressBarValue", "discardItineraryId", "class"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
272
- }
273
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateItineraryDrawModeComponent, decorators: [{
274
- type: Component,
275
- args: [{ selector: 'lib-create-itinerary-draw-mode', template: "<app-create-itinerary-header\r\n [progressBarValue]=\"50\"\r\n heading=\"Create Itinerary\"\r\n></app-create-itinerary-header>\r\n<lib-map #libMap class=\"maps-100vh\"></lib-map>\r\n<lib-bottom-modal\r\n [showArrow]=\"true\"\r\n [(isOpen)]=\"isOpen\"\r\n [adaptToContentHeight]=\"true\"\r\n>\r\n <div class=\"\">\r\n <ng-container *ngIf=\"!mapDrawn\">\r\n <div class=\"flex items-center justify-between pl-4 pr-4\">\r\n <h3 class=\"font-Calistoga text-lg\">{{ \"ITINERARY.DRAW\" | translate }}</h3>\r\n <div class=\"selectables flex items-center\">\r\n <div\r\n (click)=\"updateAction(a)\"\r\n class=\"flex items-center justify-center actions\"\r\n *ngFor=\"let a of actions\"\r\n [ngClass]=\"{ selected: a === selected }\"\r\n >\r\n <img [src]=\"a\" alt=\"icon\" loading=\"lazy\" />\r\n </div>\r\n </div>\r\n </div>\r\n <p class=\"mt-3 px-4 mb-4\">{{ \"ITINERARY.DRAW_DESCRIPTION\" | translate }}</p>\r\n </ng-container>\r\n <ng-container *ngIf=\"mapDrawn\">\r\n <div class=\"ml-auto flex items-center justify-center gap-x-2\">\r\n <div class=\"flex items-center gap-x-1 text-xs\">\r\n <img\r\n loading=\"lazy\"\r\n [src]=\"ICONS['locationWhite']\"\r\n alt=\"location\"\r\n />\r\n <span>&nbsp;{{ \"ITINERARY.SELECT_MIN_PLACES\" | translate }}</span>\r\n </div>\r\n <div class=\"h-4 border w-0 border-secondary\"></div>\r\n <div class=\"flex items-center justify-center gap-x-2 text-xs\">\r\n <img loading=\"lazy\" [src]=\"ICONS['clock']\" alt=\"\" />\r\n <span>&nbsp;0 minutes</span>\r\n <span class=\"text-secondary font-thin\">(0.0 km)</span>\r\n </div>\r\n </div>\r\n <div class=\"select-places-description mt-5 text-center mb-4\">\r\n {{ \"ITINERARY.SELECT_PLACES_INSTRUCTION\" | translate }}\r\n </div>\r\n </ng-container>\r\n\r\n <lib-footer-shared\r\n (continueButtonClick)=\"continue()\"\r\n (secondaryButtonClick)=\"clearMap()\"\r\n [canContinue]=\"true\"\r\n [continueButtonText]=\"'COMMON.CONTINUE' | translate\"\r\n [secondaryButtonText]=\"'COMMON.CLEAR' | translate\"\r\n ></lib-footer-shared>\r\n </div>\r\n</lib-bottom-modal>\r\n<div\r\n (click)=\"showBottomModal()\"\r\n class=\"absolute bottom-0 cursor-pointer z-10\"\r\n style=\"left: 50%\"\r\n>\r\n <img\r\n style=\"transform: rotate(270deg)\"\r\n [src]=\"ICONS['rightArrow']\"\r\n alt=\"icon\"\r\n height=\"15\"\r\n width=\"15\"\r\n />\r\n</div>\r\n", styles: [":host{--lib-popup-modal-radius: 16px;--border-radius: var(--lib-popup-modal-radius);--lib-popup-modal-background: #28252d !important;--background: #28252d !important;--overflow: hidden !important;--lib-popup-modal-color: #a8a8a8;--color: var(--lib-popup-modal-color, #a8a8a8);--max-width: var(--lib-bottom-modal-max-width, 500px);--lib-popup-modal-shadow: 5px 5px 95px 0px rgba(255, 255, 255, .32), -3px -3px 16px 0px rgba(255, 255, 255, .1) !important;--box-shadow: var( --lib-popup-modal-shadow, 5px 5px 95px 0px rgba(255, 255, 255, .32), -3px -3px 16px 0px rgba(255, 255, 255, .1) )}.selectables{background:#28252d;box-shadow:4.1px 4.1px 8.2px #00000052 inset;box-shadow:-2.46px -2.46px 3.28px #ffffff1a inset;border-radius:27.9px}.actions{width:42px;height:28px;border-radius:82.05px}.selected{background:linear-gradient(94.44deg,#fe3c72 1.26%,#e15561);box-shadow:3.28px 3.28px 6.56px #00000040;box-shadow:-1.64px -1.64px 8.2px #ffffff40}.select-places-text,.select-places-description{font-size:var(--font-size-small)}.button-container{background-color:#27242c;box-shadow:inset 0 6px 6px -6px #8a8a8aab}\n"] }]
276
- }], ctorParameters: () => [{ type: i1.Location }, { type: i0.ChangeDetectorRef }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.ItineraryService }, { type: i4.LocationService }, { type: i5.ItineraryDrawModeTransferService }], propDecorators: { libMap: [{
277
- type: ViewChild,
278
- args: ['libMap']
279
- }] } });
280
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWl0aW5lcmFyeS1kcmF3LW1vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvbW9kdWxlcy9pdGluZXJhcmllcy9wYWdlcy9idWlsZGVyL3BhZ2VzL2NyZWF0ZS1pdGluZXJhcnktZHJhdy1tb2RlL2NyZWF0ZS1pdGluZXJhcnktZHJhdy1tb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL21vZHVsZXMvaXRpbmVyYXJpZXMvcGFnZXMvYnVpbGRlci9wYWdlcy9jcmVhdGUtaXRpbmVyYXJ5LWRyYXctbW9kZS9jcmVhdGUtaXRpbmVyYXJ5LWRyYXctbW9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7O0FBSXRGLE1BQU0sV0FBVyxHQUFHLHFDQUFxQyxDQUFDO0FBQzFELE1BQU0sWUFBWSxHQUFHLG1DQUFtQyxDQUFDO0FBT3pELE1BQU0sT0FBTyxnQ0FBZ0M7SUFxQmpDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBMUJWLEtBQUssR0FBVSxLQUFLLENBQUM7SUFDckIsT0FBTyxHQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxRQUFR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LFlBQVksR0FBRyxNQUFNLENBQUM7aUJBQ3ZCO2FBQ0Y7U0FDRjtRQUVELE9BQU8sWUFBYSxDQUFDO0lBQ3ZCLENBQUM7d0dBM1NVLGdDQUFnQzs0RkFBaEMsZ0NBQWdDLHdLQ25CN0MscW1GQXVFQTs7NEZEcERhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSxnQ0FBZ0M7MlFBVXJCLE1BQU07c0JBQTFCLFNBQVM7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IElDT05TIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vX2NvbnN0YW50cy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBJaWNvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL19pbnRlcmZhY2UvaWNvbic7XHJcbmltcG9ydCB7IElJdGluZXJhcnkgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9fbW9kZWxzL2ktSXRpbmVyYXJ5JztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEl0aW5lcmFyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9fc2VydmljZXMvaXRpbmVyYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJdGluZXJhcmllc1JvdXRlc0VudW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9fZW51bXMvSXRlbmFyaWVzUm91dGVzLmVudW0nO1xyXG5pbXBvcnQgeyBMaWJNYXBzQ29tcG9uZW50IH0gZnJvbSAnQG5hbml0ZW5pbmphL2lvbmljLWxpYic7XHJcbmltcG9ydCB7IExvY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL19zZXJ2aWNlcy9sb2NhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSXRpbmVyYXJ5RHJhd01vZGVUcmFuc2ZlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9fc2VydmljZXMvaXRpbmVyYXJ5LmRyYXdtb2RlLnRyYW5zZmVyJztcclxuY29uc3QgZGVmYXVsdEljb24gPSAnYXNzZXRzL2ljb25zL21hcC1tYXJrZXJzLXllbGxvdy5zdmcnO1xyXG5jb25zdCBzZWxlY3RlZEljb24gPSAnYXNzZXRzL2ljb25zL3Jlc3R1LWljb24tbGFyZ2Uuc3ZnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNyZWF0ZS1pdGluZXJhcnktZHJhdy1tb2RlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWl0aW5lcmFyeS1kcmF3LW1vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jcmVhdGUtaXRpbmVyYXJ5LWRyYXctbW9kZS5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlSXRpbmVyYXJ5RHJhd01vZGVDb21wb25lbnQge1xyXG4gIElDT05TOiBJaWNvbiA9IElDT05TO1xyXG4gIGFjdGlvbnM6IHN0cmluZ1tdID0gW0lDT05TWydsb2NhdGlvbiddLCBJQ09OU1sncGVuY2lsJ10sIElDT05TWydiYW4nXV07XHJcbiAgc2VsZWN0ZWQ6IHN0cmluZyA9IHRoaXMuYWN0aW9uc1sxXTtcclxuICBpc09wZW46IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGl0aW5lcmFyeSE6IElJdGluZXJhcnkgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnbGliTWFwJykgbGliTWFwITogTGliTWFwc0NvbXBvbmVudDtcclxuICBtYXBEcmF3bjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwb2x5Z29uITogZ29vZ2xlLm1hcHMuUG9seWdvbjsvL1RoZSBwb2x5Z29uIHJlbmRlcmVkIG9uIG1hcFxyXG4gIGluaXRpYWxMb2NhdGlvbiA9IHsgbGF0OiAyNC44NjA3LCBsbmc6IDY3LjAwMTEgfTsvL0xvY2F0aW9uIG9mIHRoZSB1c2VyXHJcbiAgcGxvdHRlZE1hcmtlcnM6IGdvb2dsZS5tYXBzLk1hcmtlcltdID0gW107Ly9QbG90dGVkIG1hcmtlcnMgb24gdGhlIG1hcFxyXG4gIHNlbGVjdGVkTWFya2VyczogZ29vZ2xlLm1hcHMuTWFya2VyW10gPSBbXTsvL1NlbGVjdGVkIG1hcmtlcnMgb24gdGhlIG1hcFxyXG4gIHBsYWNlc1Jlc3VsdCE6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdFtdOy8vUGxhY2VzIHJlc3VsdCByZXF1aXJlZCBmb3IgcHJldmlld1xyXG4gIHBsYWNlTWFya2Vyczoge1xyXG4gICAgbWFya2VyOiBnb29nbGUubWFwcy5NYXJrZXIsXHJcbiAgICBwbGFjZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlUmVzdWx0XHJcbiAgfVtdID0gW107XHJcblxyXG4gIC8vTElGRSBDWUNMRVNcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBpdGluZXJhcnlTZXJ2aWNlOiBJdGluZXJhcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNmZXJTZXJ2aWNlOiBJdGluZXJhcnlEcmF3TW9kZVRyYW5zZmVyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIHRoaXMuaXRpbmVyYXJ5U2VydmljZS5nZXRCeUlkKGlkKS5zdWJzY3JpYmUoKGl0aW5lcmFyeSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXRpbmVyYXJ5ID0gaXRpbmVyYXJ5O1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vVUkgTE9HSUNcclxuICB1cGRhdGVBY3Rpb24oYWN0aW9uOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWQgPSBhY3Rpb247XHJcbiAgICBpZihhY3Rpb24gPT09IHRoaXMuYWN0aW9uc1swXSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXHJcbiAgICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLklUSU5FUkFSWSxcclxuICAgICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uQ1JFQVRFX0lUSU5FUkFSWV9PUklHSU4sXHJcbiAgICAgICAgdGhpcy5pdGluZXJhcnk/Ll9pZFxyXG4gICAgICBdKTtcclxuICAgIH1cclxuICAgIGlmKGFjdGlvbiA9PT0gdGhpcy5hY3Rpb25zWzJdKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcclxuICAgICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uSVRJTkVSQVJZLFxyXG4gICAgICAgIEl0aW5lcmFyaWVzUm91dGVzRW51bS5DUkVBVEVfSVRJTkVSQVJZX05PX1ZJU1VBTF9GSUxURVJfTU9ERSxcclxuICAgICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uQ1JFQVRFX0lUSU5FUkFSWV9OT19WSVNVQUxfRklMVEVSX01PREVfQ1JFQVRFLFxyXG4gICAgICAgIHRoaXMuaXRpbmVyYXJ5Py5faWRcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93Qm90dG9tTW9kYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hSZXN0YXVyYW50c0luUG9seWdvbihcclxuICAgIHBvbHlnb25Db29yZHM6XHJcbiAgICAgIHwgQXJyYXk8e1xyXG4gICAgICAgICAgbGF0OiBudW1iZXI7XHJcbiAgICAgICAgICBsbmc6IG51bWJlcjtcclxuICAgICAgICB9PlxyXG4gICAgICB8IHVuZGVmaW5lZCxcclxuICApIHtcclxuICAgIGlmIChwb2x5Z29uQ29vcmRzKSB7XHJcbiAgICAgIHRoaXMubWFwRHJhd24gPSB0cnVlO1xyXG4gICAgICBjb25zdCBib3VuZHMgPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzKCk7XHJcbiAgICAgIHBvbHlnb25Db29yZHMuZm9yRWFjaCgoY29vcmQpID0+IGJvdW5kcy5leHRlbmQoY29vcmQpKTtcclxuXHJcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UoXHJcbiAgICAgICAgdGhpcy5saWJNYXAubWFwLmdvb2dsZU1hcCEsXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBzZXJ2aWNlLm5lYXJieVNlYXJjaChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBib3VuZHM6IGJvdW5kcyxcclxuICAgICAgICAgIHR5cGU6ICdyZXN0YXVyYW50JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIChcclxuICAgICAgICAgIHJlc3VsdHM6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdFtdIHwgbnVsbCxcclxuICAgICAgICAgIHN0YXR1czogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2VTdGF0dXMsXHJcbiAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSyAmJiByZXN1bHRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkUmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKChwbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcGxhY2UuZ2VvbWV0cnk/LmxvY2F0aW9uO1xyXG4gICAgICAgICAgICAgIGlmICghbG9jYXRpb24pIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICByZXR1cm4gZ29vZ2xlLm1hcHMuZ2VvbWV0cnkucG9seS5jb250YWluc0xvY2F0aW9uKGxvY2F0aW9uLCB0aGlzLnBvbHlnb24pO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGxhY2VzUmVzdWx0ID0gZmlsdGVyZWRSZXN1bHRzO1xyXG4gICAgICAgICAgICBmaWx0ZXJlZFJlc3VsdHMuZm9yRWFjaCgocGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tTWFya2VyKHBsYWNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubWFwRHJhd24gPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRDdXN0b21NYXJrZXIocGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCkge1xyXG4gICAgY29uc3QgbWFya2VyID0gbmV3IGdvb2dsZS5tYXBzLk1hcmtlcih7XHJcbiAgICAgIG1hcDogdGhpcy5saWJNYXAubWFwLmdvb2dsZU1hcCxcclxuICAgICAgcG9zaXRpb246IHBsYWNlLmdlb21ldHJ5Py5sb2NhdGlvbixcclxuICAgICAgdGl0bGU6IHBsYWNlLm5hbWUsXHJcbiAgICAgIGljb246IHtcclxuICAgICAgICB1cmw6ICdhc3NldHMvaWNvbnMvbWFwLW1hcmtlcnMteWVsbG93LnN2ZycsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHRoaXMucGxvdHRlZE1hcmtlcnMucHVzaChtYXJrZXIpO1xyXG4gICAgdGhpcy5wbGFjZU1hcmtlcnMucHVzaCh7XHJcbiAgICAgIHBsYWNlOiBwbGFjZSxcclxuICAgICAgbWFya2VyOiBtYXJrZXJcclxuICAgIH0pO1xyXG4gICAgbWFya2VyLmFkZExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgLy8gVG9nZ2xlIHNlbGVjdGlvblxyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRNYXJrZXJzLmluZGV4T2YobWFya2VyKTtcclxuXHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgLy8gTWFya2VyIHdhcyBhbHJlYWR5IHNlbGVjdGVkIOKGkiBkZXNlbGVjdFxyXG4gICAgICAgIG1hcmtlci5zZXRJY29uKGRlZmF1bHRJY29uKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTWFya2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFNlbGVjdCBtYXJrZXJcclxuICAgICAgICBtYXJrZXIuc2V0SWNvbihzZWxlY3RlZEljb24pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNYXJrZXJzLnB1c2gobWFya2VyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhck1hcCgpIHtcclxuICAgIHRoaXMubWFwRHJhd24gPSBmYWxzZTtcclxuICAgIGlmKHRoaXMucG9seWdvbikge1xyXG4gICAgICB0aGlzLnBvbHlnb24uc2V0TWFwKG51bGwpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGVhck1hcmtlcnMoKTtcclxuICB9XHJcblxyXG4gIGNvbnRpbnVlKCkge1xyXG4gICAgY29uc3QgY29vcmRpbmF0ZXM6IEFycmF5PHsgbGF0OiBudW1iZXI7IGxuZzogbnVtYmVyIH0+ID0gW107XHJcbiAgICB0aGlzLnBvbHlnb24uZ2V0UGF0aCgpLmZvckVhY2goY29vcmQgPT4ge1xyXG4gICAgICBjb29yZGluYXRlcy5wdXNoKHsgbGF0OiBjb29yZC5sYXQoKSwgbG5nOiBjb29yZC5sbmcoKSB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmFuc2ZlclNlcnZpY2Uuc2V0UG9seWdvbihjb29yZGluYXRlcyk7XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRQbGFjZXMgPSB0aGlzLnNlbGVjdGVkTWFya2Vycy5tYXAoKHNlbGVjdGVkTWFya2VyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlTWFya2VyID0gdGhpcy5wbGFjZU1hcmtlcnMuZmluZChwbGFjZU1hcmtlciA9PiBwbGFjZU1hcmtlci5tYXJrZXIgPT09IHNlbGVjdGVkTWFya2VyKTtcclxuICAgICAgcmV0dXJuIHBsYWNlTWFya2VyIS5wbGFjZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGFsbFBsYWNlcyA9IHRoaXMucGxhY2VNYXJrZXJzLm1hcChwbGFjZU1hcmtlciA9PiBwbGFjZU1hcmtlci5wbGFjZSk7XHJcblxyXG4gICAgdGhpcy50cmFuc2ZlclNlcnZpY2Uuc2V0UGxhY2VzKGFsbFBsYWNlcyk7XHJcbiAgICB0aGlzLnRyYW5zZmVyU2VydmljZS5zZXRTZWxlY3RlZFBsYWNlcyhzZWxlY3RlZFBsYWNlcyk7XHJcbiAgICB0aGlzLnRyYW5zZmVyU2VydmljZS5zZXRDdXJyZW50TG9jYXRpb24odGhpcy5pbml0aWFsTG9jYXRpb24pO1xyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcclxuICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLklUSU5FUkFSWSxcclxuICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLkNSRUFURV9JVElORVJBUllfRFJBV19NT0RFLFxyXG4gICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uQ1JFQVRFX0lUSU5FUkFSWV9EUkFXX01PREVfUFJFVklFVyxcclxuICAgICAgdGhpcy5pdGluZXJhcnk/Ll9pZFxyXG4gICAgXSk7XHJcbiAgfVxyXG5cclxuICBjbGVhclBvbHlnb25JZkV4aXN0KCkge1xyXG4gICAgaWYodGhpcy5wb2x5Z29uKSB7XHJcbiAgICAgIHRoaXMucG9seWdvbi5zZXRNYXAobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhck1hcmtlcnMoKSB7XHJcbiAgICBpZih0aGlzLnBsb3R0ZWRNYXJrZXJzPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5wbG90dGVkTWFya2Vycz8uZm9yRWFjaCgocGxvdHRlZE1hcmtlcikgPT4gcGxvdHRlZE1hcmtlci5zZXRNYXAobnVsbCkpO1xyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICAgdGhpcy5sb2NhdGlvblNlcnZpY2UuZ2V0Q3VycmVudExvY2F0aW9uKClcclxuICAgICAgLnN1YnNjcmliZSgobG9jYXRpb24pID0+IHtcclxuICAgICAgICB0aGlzLmxpYk1hcC5tYXAuZ29vZ2xlTWFwPy5zZXRDZW50ZXIoe1xyXG4gICAgICAgICAgbGF0OiBsb2NhdGlvbi5sYXQsXHJcbiAgICAgICAgICBsbmc6IGxvY2F0aW9uLmxvbmdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy9TZXQgdGhlIGluaXRpYWwgbG9jYXRpb24gb2YgdGhlIHVzZXJcclxuICAgICAgICB0aGlzLmluaXRpYWxMb2NhdGlvbiA9IHtcclxuICAgICAgICAgIGxhdDogbG9jYXRpb24ubGF0LFxyXG4gICAgICAgICAgbG5nOiBsb2NhdGlvbi5sb25nXHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGliTWFwLm1hcC5nb29nbGVNYXA/LnNldFpvb20oMTUpO1xyXG5cclxuICAgICAgICAvL0FkZCBtYXJrZXIgZm9yIHVzZXIgcG9zaXRpb25cclxuICAgICAgICBuZXcgZ29vZ2xlLm1hcHMuTWFya2VyKHtcclxuICAgICAgICAgIG1hcDogdGhpcy5saWJNYXAubWFwLmdvb2dsZU1hcCxcclxuICAgICAgICAgIHBvc2l0aW9uOiB7XHJcbiAgICAgICAgICAgIGxhdDogbG9jYXRpb24ubGF0LFxyXG4gICAgICAgICAgICBsbmc6IGxvY2F0aW9uLmxvbmdcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB0aXRsZTogJ1lvdSBhcmUgaGVyZScsXHJcbiAgICAgICAgICBpY29uOiB7XHJcbiAgICAgICAgICAgIHVybDogJ2Fzc2V0cy9jdXJyZW50X2xvY2F0aW9uLnN2ZycsXHJcbiAgICAgICAgICAgIHNjYWxlZFNpemU6IG5ldyBnb29nbGUubWFwcy5TaXplKDQwLCA0MCksXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBFbmFibGUgcG9seWdvbiBkcmF3aW5nXHJcbiAgICAgICAgY29uc3QgZHJhd2luZ01hbmFnZXIgPSBuZXcgZ29vZ2xlLm1hcHMuZHJhd2luZy5EcmF3aW5nTWFuYWdlcih7XHJcbiAgICAgICAgICBkcmF3aW5nTW9kZTogZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5VHlwZS5QT0xZR09OLFxyXG4gICAgICAgICAgZHJhd2luZ0NvbnRyb2w6IHRydWUsXHJcbiAgICAgICAgICBkcmF3aW5nQ29udHJvbE9wdGlvbnM6IHtcclxuICAgICAgICAgICAgcG9zaXRpb246IGdvb2dsZS5tYXBzLkNvbnRyb2xQb3NpdGlvbi5SSUdIVF9DRU5URVIsXHJcbiAgICAgICAgICAgIGRyYXdpbmdNb2RlczogW2dvb2dsZS5tYXBzLmRyYXdpbmcuT3ZlcmxheVR5cGUuUE9MWUdPTl0sXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcG9seWdvbk9wdGlvbnM6IHtcclxuICAgICAgICAgICAgc3Ryb2tlQ29sb3I6ICcjRTE3NTc1JyxcclxuICAgICAgICAgICAgc3Ryb2tlT3BhY2l0eTogMCxcclxuICAgICAgICAgICAgc3Ryb2tlV2VpZ2h0OiAwLFxyXG4gICAgICAgICAgICBmaWxsQ29sb3I6ICcjRTE3NTc1JyxcclxuICAgICAgICAgICAgZmlsbE9wYWNpdHk6IDAuMyxcclxuICAgICAgICAgICAgY2xpY2thYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICBlZGl0YWJsZTogdHJ1ZSxcclxuICAgICAgICAgICAgekluZGV4OiAxLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBkcmF3aW5nTWFuYWdlci5zZXRNYXAodGhpcy5saWJNYXAubWFwLmdvb2dsZU1hcCEpO1xyXG5cclxuICAgICAgICBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihkcmF3aW5nTWFuYWdlciwgJ2RyYXdpbmdtb2RlX2NoYW5nZWQnLCAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtb2RlID0gZHJhd2luZ01hbmFnZXIuZ2V0RHJhd2luZ01vZGUoKTtcclxuICAgICAgICAgIGlmIChtb2RlID09PSBnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlUeXBlLlBPTFlHT04pIHtcclxuICAgICAgICAgICAgdGhpcy5jbGVhclBvbHlnb25JZkV4aXN0KCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIExpc3RlbiBmb3IgcG9seWdvbiBjb21wbGV0aW9uXHJcbiAgICAgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoZHJhd2luZ01hbmFnZXIsICdvdmVybGF5Y29tcGxldGUnLCAoZXZlbnQ6IGdvb2dsZS5tYXBzLmRyYXdpbmcuT3ZlcmxheUNvbXBsZXRlRXZlbnQpID0+IHtcclxuICAgICAgICAgIGlmIChldmVudC50eXBlID09PSBnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlUeXBlLlBPTFlHT04pIHtcclxuICAgICAgICAgICAgY29uc3QgcG9seWdvbiA9IGV2ZW50Lm92ZXJsYXkgYXMgZ29vZ2xlLm1hcHMuUG9seWdvbjtcclxuICAgICAgICAgICAgdGhpcy5wb2x5Z29uID0gcG9seWdvbjtcclxuICAgICAgICAgICAgLy8gRGlzYWJsZSBkcmF3aW5nIGFmdGVyIG9uZSBwb2x5Z29uXHJcbiAgICAgICAgICAgIGRyYXdpbmdNYW5hZ2VyLnNldERyYXdpbmdNb2RlKG51bGwpO1xyXG5cclxuICAgICAgICAgICAgLy8gQWNjZXNzIHRoZSBwb2x5Z29uIGNvb3JkaW5hdGVzXHJcbiAgICAgICAgICAgIGNvbnN0IHBhdGggPSBwb2x5Z29uLmdldFBhdGgoKTtcclxuICAgICAgICAgICAgY29uc3QgY29vcmRpbmF0ZXM6IEFycmF5PGFueT4gPSBbXTtcclxuICAgICAgICAgICAgcGF0aC5mb3JFYWNoKChjb29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgY29vcmRpbmF0ZXMucHVzaCh7IGxhdDogY29vcmQubGF0KCksIGxuZzogY29vcmQubG5nKCkgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN0YXVyYW50c0luUG9seWdvbihjb29yZGluYXRlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vTkFWSUdBVElPTlNcclxuICBiYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgfVxyXG5cclxuICBuYXZUb1BpY2tTdGFydExvY2F0aW9uKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgIFtcclxuICAgICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uSVRJTkVSQVJZLFxyXG4gICAgICAgIEl0aW5lcmFyaWVzUm91dGVzRW51bS5MT0NBVElPTl9QSUNLRVIsXHJcbiAgICAgICAgdGhpcy5pdGluZXJhcnk/Ll9pZCxcclxuICAgICAgXSxcclxuICAgICAgeyBxdWVyeVBhcmFtczogeyBtb2RlOiAnc3RhcnQnIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDbG9zZXN0UG9pbnRPblBvbHlnb24ocG9seWdvbjogZ29vZ2xlLm1hcHMuUG9seWdvbiwgcG9pbnQ6IGdvb2dsZS5tYXBzLkxhdExuZyk6IGdvb2dsZS5tYXBzLkxhdExuZyB7XHJcbiAgICBjb25zdCBwYXRoID0gcG9seWdvbi5nZXRQYXRoKCk7XHJcbiAgICBsZXQgY2xvc2VzdFBvaW50ID0gbnVsbDtcclxuICAgIGxldCBtaW5EaXN0YW5jZSA9IEluZmluaXR5O1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcGF0aC5nZXRMZW5ndGgoKTsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0YXJ0ID0gcGF0aC5nZXRBdChpKTtcclxuICAgICAgY29uc3QgZW5kID0gcGF0aC5nZXRBdCgoaSArIDEpICUgcGF0aC5nZXRMZW5ndGgoKSk7XHJcblxyXG4gICAgICAvLyBJbnRlcnBvbGF0ZSBwb2ludHMgYWxvbmcgdGhlIHNlZ21lbnRcclxuICAgICAgZm9yIChsZXQgdCA9IDA7IHQgPD0gMTsgdCArPSAwLjA1KSB7XHJcbiAgICAgICAgY29uc3QgaW50ZXJwID0gZ29vZ2xlLm1hcHMuZ2VvbWV0cnkuc3BoZXJpY2FsLmludGVycG9sYXRlKHN0YXJ0LCBlbmQsIHQpO1xyXG4gICAgICAgIGNvbnN0IGRpc3QgPSBnb29nbGUubWFwcy5nZW9tZXRyeS5zcGhlcmljYWwuY29tcHV0ZURpc3RhbmNlQmV0d2Vlbihwb2ludCwgaW50ZXJwKTtcclxuICAgICAgICBpZiAoZGlzdCA8IG1pbkRpc3RhbmNlKSB7XHJcbiAgICAgICAgICBtaW5EaXN0YW5jZSA9IGRpc3Q7XHJcbiAgICAgICAgICBjbG9zZXN0UG9pbnQgPSBpbnRlcnA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNsb3Nlc3RQb2ludCE7XHJcbiAgfVxyXG59XHJcbiIsIjxhcHAtY3JlYXRlLWl0aW5lcmFyeS1oZWFkZXJcclxuICBbcHJvZ3Jlc3NCYXJWYWx1ZV09XCI1MFwiXHJcbiAgaGVhZGluZz1cIkNyZWF0ZSBJdGluZXJhcnlcIlxyXG4+PC9hcHAtY3JlYXRlLWl0aW5lcmFyeS1oZWFkZXI+XHJcbjxsaWItbWFwICNsaWJNYXAgY2xhc3M9XCJtYXBzLTEwMHZoXCI+PC9saWItbWFwPlxyXG48bGliLWJvdHRvbS1tb2RhbFxyXG4gIFtzaG93QXJyb3ddPVwidHJ1ZVwiXHJcbiAgWyhpc09wZW4pXT1cImlzT3BlblwiXHJcbiAgW2FkYXB0VG9Db250ZW50SGVpZ2h0XT1cInRydWVcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIlwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtYXBEcmF3blwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIHBsLTQgcHItNFwiPlxyXG4gICAgICAgIDxoMyBjbGFzcz1cImZvbnQtQ2FsaXN0b2dhIHRleHQtbGdcIj57eyBcIklUSU5FUkFSWS5EUkFXXCIgfCB0cmFuc2xhdGUgfX08L2gzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RhYmxlcyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidXBkYXRlQWN0aW9uKGEpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBhY3Rpb25zXCJcclxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGEgb2YgYWN0aW9uc1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgc2VsZWN0ZWQ6IGEgPT09IHNlbGVjdGVkIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwiYVwiIGFsdD1cImljb25cIiBsb2FkaW5nPVwibGF6eVwiIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxwIGNsYXNzPVwibXQtMyBweC00IG1iLTRcIj57eyBcIklUSU5FUkFSWS5EUkFXX0RFU0NSSVBUSU9OXCIgfCB0cmFuc2xhdGUgfX08L3A+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtYXBEcmF3blwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibWwtYXV0byBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAteC0yXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTEgdGV4dC14c1wiPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIGxvYWRpbmc9XCJsYXp5XCJcclxuICAgICAgICAgICAgW3NyY109XCJJQ09OU1snbG9jYXRpb25XaGl0ZSddXCJcclxuICAgICAgICAgICAgYWx0PVwibG9jYXRpb25cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8c3Bhbj4mbmJzcDt7eyBcIklUSU5FUkFSWS5TRUxFQ1RfTUlOX1BMQUNFU1wiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoLTQgYm9yZGVyIHctMCBib3JkZXItc2Vjb25kYXJ5XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC14LTIgdGV4dC14c1wiPlxyXG4gICAgICAgICAgICA8aW1nIGxvYWRpbmc9XCJsYXp5XCIgW3NyY109XCJJQ09OU1snY2xvY2snXVwiIGFsdD1cIlwiIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPiZuYnNwOzAgbWludXRlczwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXNlY29uZGFyeSBmb250LXRoaW5cIj4oMC4wIGttKTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtcGxhY2VzLWRlc2NyaXB0aW9uIG10LTUgdGV4dC1jZW50ZXIgbWItNFwiPlxyXG4gICAgICAgIHt7IFwiSVRJTkVSQVJZLlNFTEVDVF9QTEFDRVNfSU5TVFJVQ1RJT05cIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxsaWItZm9vdGVyLXNoYXJlZFxyXG4gICAgKGNvbnRpbnVlQnV0dG9uQ2xpY2spPVwiY29udGludWUoKVwiXHJcbiAgICAoc2Vjb25kYXJ5QnV0dG9uQ2xpY2spPVwiY2xlYXJNYXAoKVwiXHJcbiAgICBbY2FuQ29udGludWVdPVwidHJ1ZVwiXHJcbiAgICBbY29udGludWVCdXR0b25UZXh0XT1cIidDT01NT04uQ09OVElOVUUnIHwgdHJhbnNsYXRlXCJcclxuICAgIFtzZWNvbmRhcnlCdXR0b25UZXh0XT1cIidDT01NT04uQ0xFQVInIHwgdHJhbnNsYXRlXCJcclxuICAgID48L2xpYi1mb290ZXItc2hhcmVkPlxyXG4gIDwvZGl2PlxyXG48L2xpYi1ib3R0b20tbW9kYWw+XHJcbjxkaXZcclxuICAoY2xpY2spPVwic2hvd0JvdHRvbU1vZGFsKClcIlxyXG4gIGNsYXNzPVwiYWJzb2x1dGUgYm90dG9tLTAgY3Vyc29yLXBvaW50ZXIgei0xMFwiXHJcbiAgc3R5bGU9XCJsZWZ0OiA1MCVcIlxyXG4+XHJcbiAgPGltZ1xyXG4gICAgc3R5bGU9XCJ0cmFuc2Zvcm06IHJvdGF0ZSgyNzBkZWcpXCJcclxuICAgIFtzcmNdPVwiSUNPTlNbJ3JpZ2h0QXJyb3cnXVwiXHJcbiAgICBhbHQ9XCJpY29uXCJcclxuICAgIGhlaWdodD1cIjE1XCJcclxuICAgIHdpZHRoPVwiMTVcIlxyXG4gIC8+XHJcbjwvZGl2PlxyXG4iXX0=