@flower-city-online/itinerary-lib 0.0.43 → 0.0.44

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 (350) hide show
  1. package/package.json +6 -15
  2. package/src/lib/itinerary-app/_styles/{tailwind.scss → tailwind.css} +4 -10
  3. package/environments/environment.d.ts +0 -13
  4. package/esm2022/environments/environment.mjs +0 -25
  5. package/esm2022/flower-city-online-itinerary-lib.mjs +0 -5
  6. package/esm2022/lib/itinerary-app/_constants/constants.mjs +0 -129
  7. package/esm2022/lib/itinerary-app/_enums/ItenariesRoutes.enum.mjs +0 -67
  8. package/esm2022/lib/itinerary-app/_enums/PathwayRoutes.enum.mjs +0 -7
  9. package/esm2022/lib/itinerary-app/_enums/userRoutes.enum.mjs +0 -5
  10. package/esm2022/lib/itinerary-app/_interface/bottomNavigationList.mjs +0 -2
  11. package/esm2022/lib/itinerary-app/_interface/cardData.mjs +0 -2
  12. package/esm2022/lib/itinerary-app/_interface/commentsdata.mjs +0 -2
  13. package/esm2022/lib/itinerary-app/_interface/conditions.mjs +0 -2
  14. package/esm2022/lib/itinerary-app/_interface/dashboardSideBar.mjs +0 -2
  15. package/esm2022/lib/itinerary-app/_interface/filterMenuOptions.mjs +0 -2
  16. package/esm2022/lib/itinerary-app/_interface/icon.mjs +0 -2
  17. package/esm2022/lib/itinerary-app/_interface/notification.mjs +0 -2
  18. package/esm2022/lib/itinerary-app/_interface/pages.mjs +0 -2
  19. package/esm2022/lib/itinerary-app/_interface/presetRecord.mjs +0 -2
  20. package/esm2022/lib/itinerary-app/_interface/reportOptions.mjs +0 -2
  21. package/esm2022/lib/itinerary-app/_interface/search-popup.mjs +0 -2
  22. package/esm2022/lib/itinerary-app/_interface/searchResults.mjs +0 -2
  23. package/esm2022/lib/itinerary-app/_models/Itinerary-stats.mjs +0 -2
  24. package/esm2022/lib/itinerary-app/_models/Itinerary.mjs +0 -2
  25. package/esm2022/lib/itinerary-app/_models/app-user.mjs +0 -2
  26. package/esm2022/lib/itinerary-app/_models/itinerary-location.mjs +0 -2
  27. package/esm2022/lib/itinerary-app/_models/itineraryMember.mjs +0 -2
  28. package/esm2022/lib/itinerary-app/_models/location-review.mjs +0 -2
  29. package/esm2022/lib/itinerary-app/_models/matching-clients.mjs +0 -2
  30. package/esm2022/lib/itinerary-app/_models/position-model.mjs +0 -2
  31. package/esm2022/lib/itinerary-app/_pipes/votes.pipe.mjs +0 -25
  32. package/esm2022/lib/itinerary-app/_services/api.service.mjs +0 -31
  33. package/esm2022/lib/itinerary-app/_services/assets.service.mjs +0 -42
  34. package/esm2022/lib/itinerary-app/_services/bottom-navigation.service.mjs +0 -92
  35. package/esm2022/lib/itinerary-app/_services/comment-image.service.mjs +0 -16
  36. package/esm2022/lib/itinerary-app/_services/constants.service.mjs +0 -14
  37. package/esm2022/lib/itinerary-app/_services/custom-dropdown-menu.service.mjs +0 -256
  38. package/esm2022/lib/itinerary-app/_services/itinerary.drawmode.transfer.mjs +0 -34
  39. package/esm2022/lib/itinerary-app/_services/itinerary.service.mjs +0 -57
  40. package/esm2022/lib/itinerary-app/_services/location.service.mjs +0 -32
  41. package/esm2022/lib/itinerary-app/_services/modal.clearhistory.service.mjs +0 -17
  42. package/esm2022/lib/itinerary-app/_services/modal.sendclient.service.mjs +0 -17
  43. package/esm2022/lib/itinerary-app/_services/modal.service.mjs +0 -17
  44. package/esm2022/lib/itinerary-app/_services/modal.shareurlservice.mjs +0 -17
  45. package/esm2022/lib/itinerary-app/_services/shadow-root-handler.service.mjs +0 -38
  46. package/esm2022/lib/itinerary-app/_services/share-popup-data.mjs +0 -20
  47. package/esm2022/lib/itinerary-app/itinerary-lib-routing.module.mjs +0 -50
  48. package/esm2022/lib/itinerary-app/itinerary-lib.component.mjs +0 -77
  49. package/esm2022/lib/itinerary-app/itinerary-lib.module.mjs +0 -96
  50. package/esm2022/lib/itinerary-app/modules/archives/archives-routing.module.mjs +0 -19
  51. package/esm2022/lib/itinerary-app/modules/archives/archives.component.mjs +0 -23
  52. package/esm2022/lib/itinerary-app/modules/archives/archives.module.mjs +0 -40
  53. package/esm2022/lib/itinerary-app/modules/archives/pages/main-archives/main-archives.component.mjs +0 -72
  54. package/esm2022/lib/itinerary-app/modules/dashboard/components/navbar/navbar.component.mjs +0 -61
  55. package/esm2022/lib/itinerary-app/modules/dashboard/components/sidebar/sidebar.component.mjs +0 -64
  56. package/esm2022/lib/itinerary-app/modules/dashboard/dashboard-routing.module.mjs +0 -24
  57. package/esm2022/lib/itinerary-app/modules/dashboard/dashboard.component.mjs +0 -14
  58. package/esm2022/lib/itinerary-app/modules/dashboard/dashboard.module.mjs +0 -55
  59. package/esm2022/lib/itinerary-app/modules/dashboard/pages/main-dashboard/main-dashboard.component.mjs +0 -11
  60. package/esm2022/lib/itinerary-app/modules/itineraries/components/app-header-desktop/app-header-desktop.component.mjs +0 -13
  61. package/esm2022/lib/itinerary-app/modules/itineraries/components/app-sidebar-desktop/app-sidebar-desktop.component.mjs +0 -64
  62. package/esm2022/lib/itinerary-app/modules/itineraries/components/comment-filter-menu/comment-filter-menu.component.mjs +0 -42
  63. package/esm2022/lib/itinerary-app/modules/itineraries/components/delete-itineraries/delete-itineraries.component.mjs +0 -51
  64. package/esm2022/lib/itinerary-app/modules/itineraries/components/filter-menu/filter-menu.component.mjs +0 -43
  65. package/esm2022/lib/itinerary-app/modules/itineraries/components/no-visual-map-filters/no-visual-map-filters.component.mjs +0 -80
  66. package/esm2022/lib/itinerary-app/modules/itineraries/components/report-itinerary-modal/report-itinerary-modal.component.mjs +0 -72
  67. package/esm2022/lib/itinerary-app/modules/itineraries/components/report-media-modal/report-media-modal.component.mjs +0 -71
  68. package/esm2022/lib/itinerary-app/modules/itineraries/components/send-to-client/send-to-client.component.mjs +0 -42
  69. package/esm2022/lib/itinerary-app/modules/itineraries/components/share-popup/share-popup.component.mjs +0 -78
  70. package/esm2022/lib/itinerary-app/modules/itineraries/itineraries-routing.module.mjs +0 -292
  71. package/esm2022/lib/itinerary-app/modules/itineraries/itineraries.component.mjs +0 -50
  72. package/esm2022/lib/itinerary-app/modules/itineraries/itineraries.module.mjs +0 -361
  73. package/esm2022/lib/itinerary-app/modules/itineraries/pages/advanced-filters/advanced-filters.component.mjs +0 -150
  74. package/esm2022/lib/itinerary-app/modules/itineraries/pages/branched-itineraries/branched-itineraries.component.mjs +0 -173
  75. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/builder.component.mjs +0 -98
  76. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal/create-itinerary-modal.component.mjs +0 -52
  77. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal-item/create-itinerary-modal-item.component.mjs +0 -47
  78. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary/create-itinerary.component.mjs +0 -89
  79. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-destination/create-itinerary-destination.component.mjs +0 -53
  80. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-mode/create-itinerary-draw-mode.component.mjs +0 -278
  81. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-preview/create-itinerary-draw-preview.component.mjs +0 -243
  82. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-header/create-itinerary-header.component.mjs +0 -61
  83. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-member-details/create-itinerary-member-details.component.mjs +0 -59
  84. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-filter/create-itinerary-no-visual-filter.component.mjs +0 -232
  85. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-preview/create-itinerary-no-visual-preview.component.mjs +0 -157
  86. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-start-location/create-itinerary-start-location.component.mjs +0 -89
  87. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-user-search/create-itinerary-user-search.component.mjs +0 -78
  88. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary/created-itinerary.component.mjs +0 -57
  89. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-detail/created-itinerary-detail.component.mjs +0 -38
  90. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-map/created-itinerary-map.component.mjs +0 -322
  91. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-preview.component.mjs +0 -87
  92. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-add-place.component.mjs +0 -72
  93. 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
  94. 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
  95. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-members/itinerary-place-members.component.mjs +0 -47
  96. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/location-picker/location-picker.component.mjs +0 -81
  97. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/select-itinerary-event/select-itinerary-event.component.mjs +0 -73
  98. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-location/suggested-events-location.component.mjs +0 -86
  99. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-radius/suggested-events-route-radius.component.mjs +0 -56
  100. package/esm2022/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-type/suggested-events-route-type.component.mjs +0 -70
  101. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comment-replies/comment-replies.component.mjs +0 -61
  102. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comment-replies/components/comment-single/comment-single.component.mjs +0 -38
  103. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/comment-comparison/comment-comparison.component.mjs +0 -81
  104. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/comment-search/comment-search.component.mjs +0 -114
  105. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/comments-page.component.mjs +0 -120
  106. package/esm2022/lib/itinerary-app/modules/itineraries/pages/comments/handle-update-comment-request/handle-update-comment-request.component.mjs +0 -21
  107. package/esm2022/lib/itinerary-app/modules/itineraries/pages/explore/explore.component.mjs +0 -99
  108. package/esm2022/lib/itinerary-app/modules/itineraries/pages/favorites/favorites.component.mjs +0 -45
  109. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-author-history/itinerary-author-history.component.mjs +0 -50
  110. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/details/details.component.mjs +0 -113
  111. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/map/map.component.mjs +0 -284
  112. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/summary/summary.component.mjs +0 -85
  113. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/itinerary-detail.component.mjs +0 -98
  114. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/existing-friends/existing-friends.component.mjs +0 -67
  115. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/friend-requests/friend-requests.component.mjs +0 -49
  116. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/itinerary-friends.component.mjs +0 -21
  117. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/list-friend-users/list-friend-users.component.mjs +0 -80
  118. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/send-friend-request/send-friend-request.component.mjs +0 -62
  119. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/all-people/all-people.component.mjs +0 -76
  120. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/existing-members/existing-members.component.mjs +0 -65
  121. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-members.component.mjs +0 -21
  122. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-sent-invites/itinerary-sent-invites.component.mjs +0 -48
  123. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/send-invite/send-invite.component.mjs +0 -38
  124. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-members/user-list/user-list.component.mjs +0 -73
  125. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-upvote-users/itinerary-upvote-users.component.mjs +0 -55
  126. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-users/itinerary-users.component.mjs +0 -54
  127. package/esm2022/lib/itinerary-app/modules/itineraries/pages/itinerary-watching-users/itinerary-watching-users.component.mjs +0 -55
  128. package/esm2022/lib/itinerary-app/modules/itineraries/pages/notifications/notifications.component.mjs +0 -53
  129. package/esm2022/lib/itinerary-app/modules/itineraries/pages/stories/story.component.mjs +0 -54
  130. package/esm2022/lib/itinerary-app/modules/pathway/components/googlemap/googlemap.component.mjs +0 -284
  131. package/esm2022/lib/itinerary-app/modules/pathway/components/map-header/map-header.component.mjs +0 -39
  132. package/esm2022/lib/itinerary-app/modules/pathway/pages/default-destination/default-destination.component.mjs +0 -26
  133. package/esm2022/lib/itinerary-app/modules/pathway/pages/itinerary-preview/itinerary-preview.component.mjs +0 -56
  134. package/esm2022/lib/itinerary-app/modules/pathway/pages/non-visual-map-filter/non-visual-map-filter.component.mjs +0 -30
  135. package/esm2022/lib/itinerary-app/modules/pathway/pathway-routing.module.mjs +0 -41
  136. package/esm2022/lib/itinerary-app/modules/pathway/pathway.component.mjs +0 -12
  137. package/esm2022/lib/itinerary-app/modules/pathway/pathway.module.mjs +0 -81
  138. package/esm2022/lib/itinerary-app/modules/search/components/clear-history-popup/clear-history-popup.component.mjs +0 -30
  139. package/esm2022/lib/itinerary-app/modules/search/components/quick-actions/quick-actions.component.mjs +0 -17
  140. package/esm2022/lib/itinerary-app/modules/search/components/recent-searches/recent-searches.component.mjs +0 -13
  141. package/esm2022/lib/itinerary-app/modules/search/components/recent-searches-item/recent-searches-item.component.mjs +0 -14
  142. package/esm2022/lib/itinerary-app/modules/search/components/recent-searches-list/recent-searches-list.component.mjs +0 -12
  143. package/esm2022/lib/itinerary-app/modules/search/components/search-chips/search-chips.component.mjs +0 -79
  144. package/esm2022/lib/itinerary-app/modules/search/components/search-results/search-results.component.mjs +0 -16
  145. package/esm2022/lib/itinerary-app/modules/search/components/serach-bottom-bar/serach-bottom-bar.component.mjs +0 -14
  146. package/esm2022/lib/itinerary-app/modules/search/components/serach-clear-history/serach-clear-history.component.mjs +0 -33
  147. package/esm2022/lib/itinerary-app/modules/search/pages/main-search/main-search.component.mjs +0 -243
  148. package/esm2022/lib/itinerary-app/modules/search/search-routing.module.mjs +0 -19
  149. package/esm2022/lib/itinerary-app/modules/search/search.component.mjs +0 -12
  150. package/esm2022/lib/itinerary-app/modules/search/search.module.mjs +0 -87
  151. package/esm2022/lib/itinerary-app/modules/user/profile/profile.component.mjs +0 -54
  152. package/esm2022/lib/itinerary-app/modules/user/user-routing.module.mjs +0 -22
  153. package/esm2022/lib/itinerary-app/modules/user/user.module.mjs +0 -40
  154. package/esm2022/lib/itinerary-app/shared/action-card/action-card.component.mjs +0 -29
  155. package/esm2022/lib/itinerary-app/shared/card-component/card-component.component.mjs +0 -127
  156. package/esm2022/lib/itinerary-app/shared/comment/comment-images/comment-images.component.mjs +0 -22
  157. package/esm2022/lib/itinerary-app/shared/comment/comment.component.mjs +0 -82
  158. package/esm2022/lib/itinerary-app/shared/custom-heading-with-button/custom-heading-with-button.component.mjs +0 -27
  159. package/esm2022/lib/itinerary-app/shared/custom-story-card/custom-story-card.component.mjs +0 -171
  160. package/esm2022/lib/itinerary-app/shared/cutom-card/cutom-card.component.mjs +0 -128
  161. package/esm2022/lib/itinerary-app/shared/footer/components/bottom-navigation-items/bottom-navigation-items.component.mjs +0 -28
  162. package/esm2022/lib/itinerary-app/shared/footer/footer.component.mjs +0 -109
  163. package/esm2022/lib/itinerary-app/shared/header/header.component.mjs +0 -88
  164. package/esm2022/lib/itinerary-app/shared/icon-button/icon-button.component.mjs +0 -19
  165. package/esm2022/lib/itinerary-app/shared/image-viewer/image-viewer.component.mjs +0 -31
  166. package/esm2022/lib/itinerary-app/shared/matching-clients/matching-clients.component.mjs +0 -71
  167. package/esm2022/lib/itinerary-app/shared/notification-tile/notification-tile.component.mjs +0 -40
  168. package/esm2022/lib/itinerary-app/shared/search-popup/search-popup.component.mjs +0 -54
  169. package/esm2022/lib/itinerary-app/shared/selectable-badge/selectable-badge.component.mjs +0 -25
  170. package/esm2022/lib/itinerary-app/shared/shared.module.mjs +0 -207
  171. package/esm2022/lib/itinerary-app/shared/swiper-dialog/swiper-dialog.component.mjs +0 -46
  172. package/esm2022/lib/itinerary-app/shared/tab-bar/tab-bar.component.mjs +0 -62
  173. package/esm2022/lib/itinerary-app/shared/user-stack-tile/user-stack-tile.component.mjs +0 -44
  174. package/esm2022/lib/itinerary-app/shared/user-tile/user-tile.component.mjs +0 -28
  175. package/esm2022/lib/itinerary-app/shared/users-stack/users-stack.component.mjs +0 -60
  176. package/esm2022/public-api.mjs +0 -4
  177. package/fesm2022/flower-city-online-itinerary-lib.mjs +0 -9344
  178. package/fesm2022/flower-city-online-itinerary-lib.mjs.map +0 -1
  179. package/index.d.ts +0 -5
  180. package/lib/itinerary-app/_constants/constants.d.ts +0 -2
  181. package/lib/itinerary-app/_enums/ItenariesRoutes.enum.d.ts +0 -65
  182. package/lib/itinerary-app/_enums/PathwayRoutes.enum.d.ts +0 -5
  183. package/lib/itinerary-app/_enums/userRoutes.enum.d.ts +0 -3
  184. package/lib/itinerary-app/_interface/bottomNavigationList.d.ts +0 -11
  185. package/lib/itinerary-app/_interface/cardData.d.ts +0 -16
  186. package/lib/itinerary-app/_interface/commentsdata.d.ts +0 -14
  187. package/lib/itinerary-app/_interface/conditions.d.ts +0 -5
  188. package/lib/itinerary-app/_interface/dashboardSideBar.d.ts +0 -7
  189. package/lib/itinerary-app/_interface/filterMenuOptions.d.ts +0 -4
  190. package/lib/itinerary-app/_interface/icon.d.ts +0 -3
  191. package/lib/itinerary-app/_interface/notification.d.ts +0 -7
  192. package/lib/itinerary-app/_interface/pages.d.ts +0 -4
  193. package/lib/itinerary-app/_interface/presetRecord.d.ts +0 -5
  194. package/lib/itinerary-app/_interface/reportOptions.d.ts +0 -4
  195. package/lib/itinerary-app/_interface/search-popup.d.ts +0 -6
  196. package/lib/itinerary-app/_interface/searchResults.d.ts +0 -5
  197. package/lib/itinerary-app/_models/Itinerary-stats.d.ts +0 -10
  198. package/lib/itinerary-app/_models/Itinerary.d.ts +0 -23
  199. package/lib/itinerary-app/_models/app-user.d.ts +0 -6
  200. package/lib/itinerary-app/_models/itinerary-location.d.ts +0 -16
  201. package/lib/itinerary-app/_models/itineraryMember.d.ts +0 -6
  202. package/lib/itinerary-app/_models/location-review.d.ts +0 -8
  203. package/lib/itinerary-app/_models/matching-clients.d.ts +0 -9
  204. package/lib/itinerary-app/_models/position-model.d.ts +0 -5
  205. package/lib/itinerary-app/_pipes/votes.pipe.d.ts +0 -7
  206. package/lib/itinerary-app/_services/api.service.d.ts +0 -22
  207. package/lib/itinerary-app/_services/assets.service.d.ts +0 -21
  208. package/lib/itinerary-app/_services/bottom-navigation.service.d.ts +0 -26
  209. package/lib/itinerary-app/_services/comment-image.service.d.ts +0 -8
  210. package/lib/itinerary-app/_services/constants.service.d.ts +0 -6
  211. package/lib/itinerary-app/_services/custom-dropdown-menu.service.d.ts +0 -37
  212. package/lib/itinerary-app/_services/itinerary.drawmode.transfer.d.ts +0 -27
  213. package/lib/itinerary-app/_services/itinerary.service.d.ts +0 -24
  214. package/lib/itinerary-app/_services/location.service.d.ts +0 -10
  215. package/lib/itinerary-app/_services/modal.clearhistory.service.d.ts +0 -9
  216. package/lib/itinerary-app/_services/modal.sendclient.service.d.ts +0 -9
  217. package/lib/itinerary-app/_services/modal.service.d.ts +0 -9
  218. package/lib/itinerary-app/_services/modal.shareurlservice.d.ts +0 -9
  219. package/lib/itinerary-app/_services/shadow-root-handler.service.d.ts +0 -6
  220. package/lib/itinerary-app/_services/share-popup-data.d.ts +0 -11
  221. package/lib/itinerary-app/itinerary-lib-routing.module.d.ts +0 -7
  222. package/lib/itinerary-app/itinerary-lib.component.d.ts +0 -25
  223. package/lib/itinerary-app/itinerary-lib.module.d.ts +0 -28
  224. package/lib/itinerary-app/modules/archives/archives-routing.module.d.ts +0 -7
  225. package/lib/itinerary-app/modules/archives/archives.component.d.ts +0 -9
  226. package/lib/itinerary-app/modules/archives/archives.module.d.ts +0 -14
  227. package/lib/itinerary-app/modules/archives/pages/main-archives/main-archives.component.d.ts +0 -34
  228. package/lib/itinerary-app/modules/dashboard/components/navbar/navbar.component.d.ts +0 -19
  229. package/lib/itinerary-app/modules/dashboard/components/sidebar/sidebar.component.d.ts +0 -16
  230. package/lib/itinerary-app/modules/dashboard/dashboard-routing.module.d.ts +0 -7
  231. package/lib/itinerary-app/modules/dashboard/dashboard.component.d.ts +0 -5
  232. package/lib/itinerary-app/modules/dashboard/dashboard.module.d.ts +0 -16
  233. package/lib/itinerary-app/modules/dashboard/pages/main-dashboard/main-dashboard.component.d.ts +0 -5
  234. package/lib/itinerary-app/modules/itineraries/components/app-header-desktop/app-header-desktop.component.d.ts +0 -5
  235. package/lib/itinerary-app/modules/itineraries/components/app-sidebar-desktop/app-sidebar-desktop.component.d.ts +0 -19
  236. package/lib/itinerary-app/modules/itineraries/components/comment-filter-menu/comment-filter-menu.component.d.ts +0 -21
  237. package/lib/itinerary-app/modules/itineraries/components/delete-itineraries/delete-itineraries.component.d.ts +0 -20
  238. package/lib/itinerary-app/modules/itineraries/components/filter-menu/filter-menu.component.d.ts +0 -21
  239. package/lib/itinerary-app/modules/itineraries/components/no-visual-map-filters/no-visual-map-filters.component.d.ts +0 -29
  240. package/lib/itinerary-app/modules/itineraries/components/report-itinerary-modal/report-itinerary-modal.component.d.ts +0 -28
  241. package/lib/itinerary-app/modules/itineraries/components/report-media-modal/report-media-modal.component.d.ts +0 -28
  242. package/lib/itinerary-app/modules/itineraries/components/send-to-client/send-to-client.component.d.ts +0 -21
  243. package/lib/itinerary-app/modules/itineraries/components/share-popup/share-popup.component.d.ts +0 -33
  244. package/lib/itinerary-app/modules/itineraries/itineraries-routing.module.d.ts +0 -7
  245. package/lib/itinerary-app/modules/itineraries/itineraries.component.d.ts +0 -20
  246. package/lib/itinerary-app/modules/itineraries/itineraries.module.d.ts +0 -84
  247. package/lib/itinerary-app/modules/itineraries/pages/advanced-filters/advanced-filters.component.d.ts +0 -43
  248. package/lib/itinerary-app/modules/itineraries/pages/branched-itineraries/branched-itineraries.component.d.ts +0 -30
  249. package/lib/itinerary-app/modules/itineraries/pages/builder/builder.component.d.ts +0 -42
  250. package/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal/create-itinerary-modal.component.d.ts +0 -21
  251. package/lib/itinerary-app/modules/itineraries/pages/builder/components/create-itinerary-modal-item/create-itinerary-modal-item.component.d.ts +0 -20
  252. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary/create-itinerary.component.d.ts +0 -26
  253. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-destination/create-itinerary-destination.component.d.ts +0 -23
  254. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-mode/create-itinerary-draw-mode.component.d.ts +0 -58
  255. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-draw-preview/create-itinerary-draw-preview.component.d.ts +0 -53
  256. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-header/create-itinerary-header.component.d.ts +0 -22
  257. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-member-details/create-itinerary-member-details.component.d.ts +0 -14
  258. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-filter/create-itinerary-no-visual-filter.component.d.ts +0 -50
  259. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-no-visual-preview/create-itinerary-no-visual-preview.component.d.ts +0 -27
  260. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-start-location/create-itinerary-start-location.component.d.ts +0 -33
  261. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/create-itinerary-user-search/create-itinerary-user-search.component.d.ts +0 -30
  262. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary/created-itinerary.component.d.ts +0 -24
  263. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-detail/created-itinerary-detail.component.d.ts +0 -21
  264. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-map/created-itinerary-map.component.d.ts +0 -40
  265. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/created-itinerary-preview/created-itinerary-preview.component.d.ts +0 -25
  266. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-add-place.component.d.ts +0 -25
  267. 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
  268. 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
  269. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/itinerary-add-place/itinerary-place-members/itinerary-place-members.component.d.ts +0 -20
  270. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/location-picker/location-picker.component.d.ts +0 -26
  271. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/select-itinerary-event/select-itinerary-event.component.d.ts +0 -26
  272. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-location/suggested-events-location.component.d.ts +0 -27
  273. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-radius/suggested-events-route-radius.component.d.ts +0 -24
  274. package/lib/itinerary-app/modules/itineraries/pages/builder/pages/suggested-events-route-type/suggested-events-route-type.component.d.ts +0 -27
  275. package/lib/itinerary-app/modules/itineraries/pages/comment-replies/comment-replies.component.d.ts +0 -34
  276. package/lib/itinerary-app/modules/itineraries/pages/comment-replies/components/comment-single/comment-single.component.d.ts +0 -20
  277. package/lib/itinerary-app/modules/itineraries/pages/comments/comment-comparison/comment-comparison.component.d.ts +0 -28
  278. package/lib/itinerary-app/modules/itineraries/pages/comments/comment-search/comment-search.component.d.ts +0 -26
  279. package/lib/itinerary-app/modules/itineraries/pages/comments/comments-page.component.d.ts +0 -38
  280. package/lib/itinerary-app/modules/itineraries/pages/comments/handle-update-comment-request/handle-update-comment-request.component.d.ts +0 -9
  281. package/lib/itinerary-app/modules/itineraries/pages/explore/explore.component.d.ts +0 -39
  282. package/lib/itinerary-app/modules/itineraries/pages/favorites/favorites.component.d.ts +0 -23
  283. package/lib/itinerary-app/modules/itineraries/pages/itinerary-author-history/itinerary-author-history.component.d.ts +0 -13
  284. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/details/details.component.d.ts +0 -20
  285. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/map/map.component.d.ts +0 -38
  286. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/components/summary/summary.component.d.ts +0 -30
  287. package/lib/itinerary-app/modules/itineraries/pages/itinerary-detail/itinerary-detail.component.d.ts +0 -25
  288. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/existing-friends/existing-friends.component.d.ts +0 -31
  289. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/friend-requests/friend-requests.component.d.ts +0 -25
  290. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/itinerary-friends.component.d.ts +0 -9
  291. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/list-friend-users/list-friend-users.component.d.ts +0 -35
  292. package/lib/itinerary-app/modules/itineraries/pages/itinerary-friends/send-friend-request/send-friend-request.component.d.ts +0 -27
  293. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/all-people/all-people.component.d.ts +0 -34
  294. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/existing-members/existing-members.component.d.ts +0 -30
  295. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-members.component.d.ts +0 -9
  296. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/itinerary-sent-invites/itinerary-sent-invites.component.d.ts +0 -25
  297. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/send-invite/send-invite.component.d.ts +0 -18
  298. package/lib/itinerary-app/modules/itineraries/pages/itinerary-members/user-list/user-list.component.d.ts +0 -33
  299. package/lib/itinerary-app/modules/itineraries/pages/itinerary-upvote-users/itinerary-upvote-users.component.d.ts +0 -26
  300. package/lib/itinerary-app/modules/itineraries/pages/itinerary-users/itinerary-users.component.d.ts +0 -26
  301. package/lib/itinerary-app/modules/itineraries/pages/itinerary-watching-users/itinerary-watching-users.component.d.ts +0 -26
  302. package/lib/itinerary-app/modules/itineraries/pages/notifications/notifications.component.d.ts +0 -26
  303. package/lib/itinerary-app/modules/itineraries/pages/stories/story.component.d.ts +0 -34
  304. package/lib/itinerary-app/modules/pathway/components/googlemap/googlemap.component.d.ts +0 -35
  305. package/lib/itinerary-app/modules/pathway/components/map-header/map-header.component.d.ts +0 -15
  306. package/lib/itinerary-app/modules/pathway/pages/default-destination/default-destination.component.d.ts +0 -11
  307. package/lib/itinerary-app/modules/pathway/pages/itinerary-preview/itinerary-preview.component.d.ts +0 -29
  308. package/lib/itinerary-app/modules/pathway/pages/non-visual-map-filter/non-visual-map-filter.component.d.ts +0 -20
  309. package/lib/itinerary-app/modules/pathway/pathway-routing.module.d.ts +0 -7
  310. package/lib/itinerary-app/modules/pathway/pathway.component.d.ts +0 -5
  311. package/lib/itinerary-app/modules/pathway/pathway.module.d.ts +0 -20
  312. package/lib/itinerary-app/modules/search/components/clear-history-popup/clear-history-popup.component.d.ts +0 -14
  313. package/lib/itinerary-app/modules/search/components/quick-actions/quick-actions.component.d.ts +0 -9
  314. package/lib/itinerary-app/modules/search/components/recent-searches/recent-searches.component.d.ts +0 -5
  315. package/lib/itinerary-app/modules/search/components/recent-searches-item/recent-searches-item.component.d.ts +0 -7
  316. package/lib/itinerary-app/modules/search/components/recent-searches-list/recent-searches-list.component.d.ts +0 -5
  317. package/lib/itinerary-app/modules/search/components/search-chips/search-chips.component.d.ts +0 -24
  318. package/lib/itinerary-app/modules/search/components/search-results/search-results.component.d.ts +0 -8
  319. package/lib/itinerary-app/modules/search/components/serach-bottom-bar/serach-bottom-bar.component.d.ts +0 -7
  320. package/lib/itinerary-app/modules/search/components/serach-clear-history/serach-clear-history.component.d.ts +0 -16
  321. package/lib/itinerary-app/modules/search/pages/main-search/main-search.component.d.ts +0 -74
  322. package/lib/itinerary-app/modules/search/search-routing.module.d.ts +0 -7
  323. package/lib/itinerary-app/modules/search/search.component.d.ts +0 -5
  324. package/lib/itinerary-app/modules/search/search.module.d.ts +0 -22
  325. package/lib/itinerary-app/modules/user/profile/profile.component.d.ts +0 -12
  326. package/lib/itinerary-app/modules/user/user-routing.module.d.ts +0 -7
  327. package/lib/itinerary-app/modules/user/user.module.d.ts +0 -12
  328. package/lib/itinerary-app/shared/action-card/action-card.component.d.ts +0 -12
  329. package/lib/itinerary-app/shared/card-component/card-component.component.d.ts +0 -42
  330. package/lib/itinerary-app/shared/comment/comment-images/comment-images.component.d.ts +0 -9
  331. package/lib/itinerary-app/shared/comment/comment.component.d.ts +0 -32
  332. package/lib/itinerary-app/shared/custom-heading-with-button/custom-heading-with-button.component.d.ts +0 -11
  333. package/lib/itinerary-app/shared/custom-story-card/custom-story-card.component.d.ts +0 -47
  334. package/lib/itinerary-app/shared/cutom-card/cutom-card.component.d.ts +0 -53
  335. package/lib/itinerary-app/shared/footer/components/bottom-navigation-items/bottom-navigation-items.component.d.ts +0 -10
  336. package/lib/itinerary-app/shared/footer/footer.component.d.ts +0 -23
  337. package/lib/itinerary-app/shared/header/header.component.d.ts +0 -17
  338. package/lib/itinerary-app/shared/icon-button/icon-button.component.d.ts +0 -9
  339. package/lib/itinerary-app/shared/image-viewer/image-viewer.component.d.ts +0 -16
  340. package/lib/itinerary-app/shared/matching-clients/matching-clients.component.d.ts +0 -24
  341. package/lib/itinerary-app/shared/notification-tile/notification-tile.component.d.ts +0 -20
  342. package/lib/itinerary-app/shared/search-popup/search-popup.component.d.ts +0 -23
  343. package/lib/itinerary-app/shared/selectable-badge/selectable-badge.component.d.ts +0 -10
  344. package/lib/itinerary-app/shared/shared.module.d.ts +0 -34
  345. package/lib/itinerary-app/shared/swiper-dialog/swiper-dialog.component.d.ts +0 -26
  346. package/lib/itinerary-app/shared/tab-bar/tab-bar.component.d.ts +0 -17
  347. package/lib/itinerary-app/shared/user-stack-tile/user-stack-tile.component.d.ts +0 -19
  348. package/lib/itinerary-app/shared/user-tile/user-tile.component.d.ts +0 -12
  349. package/lib/itinerary-app/shared/users-stack/users-stack.component.d.ts +0 -23
  350. package/public-api.d.ts +0 -3
@@ -1,278 +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.itinerary = this.itineraryService.getById(id);
50
- }
51
- }
52
- //UI LOGIC
53
- updateAction(action) {
54
- this.selected = action;
55
- if (action === this.actions[0]) {
56
- this.router.navigate([
57
- ItinerariesRoutesEnum.ITINERARY,
58
- ItinerariesRoutesEnum.CREATE_ITINERARY_ORIGIN,
59
- this.itinerary?.id
60
- ]);
61
- }
62
- if (action === this.actions[2]) {
63
- this.router.navigate([
64
- ItinerariesRoutesEnum.ITINERARY,
65
- ItinerariesRoutesEnum.CREATE_ITINERARY_NO_VISUAL_FILTER_MODE,
66
- ItinerariesRoutesEnum.CREATE_ITINERARY_NO_VISUAL_FILTER_MODE_CREATE,
67
- this.itinerary?.id
68
- ]);
69
- }
70
- }
71
- showBottomModal() {
72
- this.isOpen = true;
73
- this.cdr.detectChanges();
74
- }
75
- searchRestaurantsInPolygon(polygonCoords) {
76
- if (polygonCoords) {
77
- this.mapDrawn = true;
78
- const bounds = new google.maps.LatLngBounds();
79
- polygonCoords.forEach((coord) => bounds.extend(coord));
80
- const service = new google.maps.places.PlacesService(this.libMap.map.googleMap);
81
- service.nearbySearch({
82
- bounds: bounds,
83
- type: 'restaurant',
84
- }, (results, status) => {
85
- if (status === google.maps.places.PlacesServiceStatus.OK && results) {
86
- const filteredResults = results.filter((place) => {
87
- const location = place.geometry?.location;
88
- if (!location)
89
- return false;
90
- return google.maps.geometry.poly.containsLocation(location, this.polygon);
91
- });
92
- this.placesResult = filteredResults;
93
- filteredResults.forEach((place) => {
94
- this.addCustomMarker(place);
95
- });
96
- this.mapDrawn = true;
97
- }
98
- });
99
- }
100
- }
101
- addCustomMarker(place) {
102
- const marker = new google.maps.Marker({
103
- map: this.libMap.map.googleMap,
104
- position: place.geometry?.location,
105
- title: place.name,
106
- icon: {
107
- url: 'assets/icons/map-markers-yellow.svg',
108
- },
109
- });
110
- this.plottedMarkers.push(marker);
111
- this.placeMarkers.push({
112
- place: place,
113
- marker: marker
114
- });
115
- marker.addListener('click', () => {
116
- // Toggle selection
117
- const index = this.selectedMarkers.indexOf(marker);
118
- if (index > -1) {
119
- // Marker was already selected → deselect
120
- marker.setIcon(defaultIcon);
121
- this.selectedMarkers.splice(index, 1);
122
- }
123
- else {
124
- // Select marker
125
- marker.setIcon(selectedIcon);
126
- this.selectedMarkers.push(marker);
127
- }
128
- });
129
- }
130
- clearMap() {
131
- this.mapDrawn = false;
132
- if (this.polygon) {
133
- this.polygon.setMap(null);
134
- }
135
- this.clearMarkers();
136
- }
137
- continue() {
138
- const coordinates = [];
139
- this.polygon.getPath().forEach(coord => {
140
- coordinates.push({ lat: coord.lat(), lng: coord.lng() });
141
- });
142
- this.transferService.setPolygon(coordinates);
143
- const selectedPlaces = this.selectedMarkers.map((selectedMarker) => {
144
- const placeMarker = this.placeMarkers.find(placeMarker => placeMarker.marker === selectedMarker);
145
- return placeMarker.place;
146
- });
147
- const allPlaces = this.placeMarkers.map(placeMarker => placeMarker.place);
148
- this.transferService.setPlaces(allPlaces);
149
- this.transferService.setSelectedPlaces(selectedPlaces);
150
- this.transferService.setCurrentLocation(this.initialLocation);
151
- this.router.navigate([
152
- ItinerariesRoutesEnum.ITINERARY,
153
- ItinerariesRoutesEnum.CREATE_ITINERARY_DRAW_MODE,
154
- ItinerariesRoutesEnum.CREATE_ITINERARY_DRAW_MODE_PREVIEW,
155
- this.itinerary?.id
156
- ]);
157
- }
158
- clearPolygonIfExist() {
159
- if (this.polygon) {
160
- this.polygon.setMap(null);
161
- }
162
- }
163
- clearMarkers() {
164
- if (this.plottedMarkers?.length) {
165
- this.plottedMarkers?.forEach((plottedMarker) => plottedMarker.setMap(null));
166
- }
167
- }
168
- ngAfterViewInit() {
169
- this.locationService.getCurrentLocation()
170
- .subscribe((location) => {
171
- this.libMap.map.googleMap?.setCenter({
172
- lat: location.lat,
173
- lng: location.long
174
- });
175
- //Set the initial location of the user
176
- this.initialLocation = {
177
- lat: location.lat,
178
- lng: location.long
179
- };
180
- this.libMap.map.googleMap?.setZoom(15);
181
- //Add marker for user position
182
- new google.maps.Marker({
183
- map: this.libMap.map.googleMap,
184
- position: {
185
- lat: location.lat,
186
- lng: location.long
187
- },
188
- title: 'You are here',
189
- icon: {
190
- url: 'assets/current_location.svg',
191
- scaledSize: new google.maps.Size(40, 40),
192
- },
193
- });
194
- // Enable polygon drawing
195
- const drawingManager = new google.maps.drawing.DrawingManager({
196
- drawingMode: google.maps.drawing.OverlayType.POLYGON,
197
- drawingControl: true,
198
- drawingControlOptions: {
199
- position: google.maps.ControlPosition.RIGHT_CENTER,
200
- drawingModes: [google.maps.drawing.OverlayType.POLYGON],
201
- },
202
- polygonOptions: {
203
- strokeColor: '#E17575',
204
- strokeOpacity: 0,
205
- strokeWeight: 0,
206
- fillColor: '#E17575',
207
- fillOpacity: 0.3,
208
- clickable: true,
209
- editable: true,
210
- zIndex: 1,
211
- },
212
- });
213
- drawingManager.setMap(this.libMap.map.googleMap);
214
- google.maps.event.addListener(drawingManager, 'drawingmode_changed', () => {
215
- const mode = drawingManager.getDrawingMode();
216
- if (mode === google.maps.drawing.OverlayType.POLYGON) {
217
- this.clearPolygonIfExist();
218
- }
219
- });
220
- // Listen for polygon completion
221
- google.maps.event.addListener(drawingManager, 'overlaycomplete', (event) => {
222
- if (event.type === google.maps.drawing.OverlayType.POLYGON) {
223
- const polygon = event.overlay;
224
- this.polygon = polygon;
225
- // Disable drawing after one polygon
226
- drawingManager.setDrawingMode(null);
227
- // Access the polygon coordinates
228
- const path = polygon.getPath();
229
- const coordinates = [];
230
- path.forEach((coord) => {
231
- coordinates.push({ lat: coord.lat(), lng: coord.lng() });
232
- });
233
- this.searchRestaurantsInPolygon(coordinates);
234
- }
235
- });
236
- });
237
- }
238
- //NAVIGATIONS
239
- back() {
240
- this.location.back();
241
- }
242
- navToPickStartLocation() {
243
- this.router.navigate([
244
- ItinerariesRoutesEnum.ITINERARY,
245
- ItinerariesRoutesEnum.LOCATION_PICKER,
246
- this.itinerary?.id,
247
- ], { queryParams: { mode: 'start' } });
248
- }
249
- getClosestPointOnPolygon(polygon, point) {
250
- const path = polygon.getPath();
251
- let closestPoint = null;
252
- let minDistance = Infinity;
253
- for (let i = 0; i < path.getLength(); i++) {
254
- const start = path.getAt(i);
255
- const end = path.getAt((i + 1) % path.getLength());
256
- // Interpolate points along the segment
257
- for (let t = 0; t <= 1; t += 0.05) {
258
- const interp = google.maps.geometry.spherical.interpolate(start, end, t);
259
- const dist = google.maps.geometry.spherical.computeDistanceBetween(point, interp);
260
- if (dist < minDistance) {
261
- minDistance = dist;
262
- closestPoint = interp;
263
- }
264
- }
265
- }
266
- return closestPoint;
267
- }
268
- 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 });
269
- 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: i6.LibMapsComponent, selector: "lib-map", inputs: ["disableNotification", "markers", "initialLocation", "mapType", "enableDrag", "locations", "searchMapsString", "mapOptions", "directions$", "directionRenderOptions"], outputs: ["mapActionEvent"] }, { kind: "component", type: i7.CreateItineraryHeaderComponent, selector: "app-create-itinerary-header", inputs: ["heading", "progressBarValue", "discardItineraryId", "class"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
270
- }
271
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CreateItineraryDrawModeComponent, decorators: [{
272
- type: Component,
273
- args: [{ selector: 'lib-create-itinerary-draw-mode', standalone: false, 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"] }]
274
- }], ctorParameters: () => [{ type: i1.Location }, { type: i0.ChangeDetectorRef }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.ItineraryService }, { type: i4.LocationService }, { type: i5.ItineraryDrawModeTransferService }], propDecorators: { libMap: [{
275
- type: ViewChild,
276
- args: ['libMap']
277
- }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWl0aW5lcmFyeS1kcmF3LW1vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaXRpbmVyYXJ5LWxpYi9zcmMvbGliL2l0aW5lcmFyeS1hcHAvbW9kdWxlcy9pdGluZXJhcmllcy9wYWdlcy9idWlsZGVyL3BhZ2VzL2NyZWF0ZS1pdGluZXJhcnktZHJhdy1tb2RlL2NyZWF0ZS1pdGluZXJhcnktZHJhdy1tb2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2l0aW5lcmFyeS1saWIvc3JjL2xpYi9pdGluZXJhcnktYXBwL21vZHVsZXMvaXRpbmVyYXJpZXMvcGFnZXMvYnVpbGRlci9wYWdlcy9jcmVhdGUtaXRpbmVyYXJ5LWRyYXctbW9kZS9jcmVhdGUtaXRpbmVyYXJ5LWRyYXctbW9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBSy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7Ozs7O0FBSXRGLE1BQU0sV0FBVyxHQUFHLHFDQUFxQyxDQUFDO0FBQzFELE1BQU0sWUFBWSxHQUFHLG1DQUFtQyxDQUFDO0FBUXpELE1BQU0sT0FBTyxnQ0FBZ0M7SUFxQmpDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBMUJWLEtBQUssR0FBVSxLQUFLLENBQUM7SUFDckIsT0FBTyxHQUFhLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxRQUFR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QUFDO3dHQXpTVSxnQ0FBZ0M7NEZBQWhDLGdDQUFnQyx3S0NwQjdDLHFtRkF1RUE7OzRGRG5EYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7K0JBQ0ksZ0NBQWdDLGNBRzlCLEtBQUs7MlFBUUUsTUFBTTtzQkFBMUIsU0FBUzt1QkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSUNPTlMgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9fY29uc3RhbnRzL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IElpY29uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vX2ludGVyZmFjZS9pY29uJztcclxuaW1wb3J0IHsgSXRpbmVyYXJ5IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vX21vZGVscy9JdGluZXJhcnknO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSXRpbmVyYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL19zZXJ2aWNlcy9pdGluZXJhcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IEl0aW5lcmFyaWVzUm91dGVzRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL19lbnVtcy9JdGVuYXJpZXNSb3V0ZXMuZW51bSc7XHJcbmltcG9ydCB7IExpYk1hcHNDb21wb25lbnQgfSBmcm9tICdAbmFuaXRlbmluamEvaW9uaWMtbGliJztcclxuaW1wb3J0IHsgTG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vX3NlcnZpY2VzL2xvY2F0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJdGluZXJhcnlEcmF3TW9kZVRyYW5zZmVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL19zZXJ2aWNlcy9pdGluZXJhcnkuZHJhd21vZGUudHJhbnNmZXInO1xyXG5jb25zdCBkZWZhdWx0SWNvbiA9ICdhc3NldHMvaWNvbnMvbWFwLW1hcmtlcnMteWVsbG93LnN2Zyc7XHJcbmNvbnN0IHNlbGVjdGVkSWNvbiA9ICdhc3NldHMvaWNvbnMvcmVzdHUtaWNvbi1sYXJnZS5zdmcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1jcmVhdGUtaXRpbmVyYXJ5LWRyYXctbW9kZScsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLWl0aW5lcmFyeS1kcmF3LW1vZGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NyZWF0ZS1pdGluZXJhcnktZHJhdy1tb2RlLmNvbXBvbmVudC5jc3MnLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZUl0aW5lcmFyeURyYXdNb2RlQ29tcG9uZW50IHtcclxuICBJQ09OUzogSWljb24gPSBJQ09OUztcclxuICBhY3Rpb25zOiBzdHJpbmdbXSA9IFtJQ09OU1snbG9jYXRpb24nXSwgSUNPTlNbJ3BlbmNpbCddLCBJQ09OU1snYmFuJ11dO1xyXG4gIHNlbGVjdGVkOiBzdHJpbmcgPSB0aGlzLmFjdGlvbnNbMV07XHJcbiAgaXNPcGVuOiBib29sZWFuID0gdHJ1ZTtcclxuICBpdGluZXJhcnkhOiBJdGluZXJhcnkgfCB1bmRlZmluZWQ7XHJcbiAgQFZpZXdDaGlsZCgnbGliTWFwJykgbGliTWFwITogTGliTWFwc0NvbXBvbmVudDtcclxuICBtYXBEcmF3bjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwb2x5Z29uITogZ29vZ2xlLm1hcHMuUG9seWdvbjsvL1RoZSBwb2x5Z29uIHJlbmRlcmVkIG9uIG1hcFxyXG4gIGluaXRpYWxMb2NhdGlvbiA9IHsgbGF0OiAyNC44NjA3LCBsbmc6IDY3LjAwMTEgfTsvL0xvY2F0aW9uIG9mIHRoZSB1c2VyXHJcbiAgcGxvdHRlZE1hcmtlcnM6IGdvb2dsZS5tYXBzLk1hcmtlcltdID0gW107Ly9QbG90dGVkIG1hcmtlcnMgb24gdGhlIG1hcFxyXG4gIHNlbGVjdGVkTWFya2VyczogZ29vZ2xlLm1hcHMuTWFya2VyW10gPSBbXTsvL1NlbGVjdGVkIG1hcmtlcnMgb24gdGhlIG1hcFxyXG4gIHBsYWNlc1Jlc3VsdCE6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdFtdOy8vUGxhY2VzIHJlc3VsdCByZXF1aXJlZCBmb3IgcHJldmlld1xyXG4gIHBsYWNlTWFya2Vyczoge1xyXG4gICAgbWFya2VyOiBnb29nbGUubWFwcy5NYXJrZXIsXHJcbiAgICBwbGFjZTogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlUmVzdWx0XHJcbiAgfVtdID0gW107XHJcblxyXG4gIC8vTElGRSBDWUNMRVNcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBpdGluZXJhcnlTZXJ2aWNlOiBJdGluZXJhcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsb2NhdGlvblNlcnZpY2U6IExvY2F0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNmZXJTZXJ2aWNlOiBJdGluZXJhcnlEcmF3TW9kZVRyYW5zZmVyU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zdCBpZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucGFyYW1zWydpZCddO1xyXG4gICAgaWYgKGlkKSB7XHJcbiAgICAgIHRoaXMuaXRpbmVyYXJ5ID0gdGhpcy5pdGluZXJhcnlTZXJ2aWNlLmdldEJ5SWQoaWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9VSSBMT0dJQ1xyXG4gIHVwZGF0ZUFjdGlvbihhY3Rpb246IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWxlY3RlZCA9IGFjdGlvbjtcclxuICAgIGlmKGFjdGlvbiA9PT0gdGhpcy5hY3Rpb25zWzBdKSB7XHJcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcclxuICAgICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uSVRJTkVSQVJZLFxyXG4gICAgICAgIEl0aW5lcmFyaWVzUm91dGVzRW51bS5DUkVBVEVfSVRJTkVSQVJZX09SSUdJTixcclxuICAgICAgICB0aGlzLml0aW5lcmFyeT8uaWRcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgICBpZihhY3Rpb24gPT09IHRoaXMuYWN0aW9uc1syXSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXHJcbiAgICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLklUSU5FUkFSWSxcclxuICAgICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uQ1JFQVRFX0lUSU5FUkFSWV9OT19WSVNVQUxfRklMVEVSX01PREUsXHJcbiAgICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLkNSRUFURV9JVElORVJBUllfTk9fVklTVUFMX0ZJTFRFUl9NT0RFX0NSRUFURSxcclxuICAgICAgICB0aGlzLml0aW5lcmFyeT8uaWRcclxuICAgICAgXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93Qm90dG9tTW9kYWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzT3BlbiA9IHRydWU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hSZXN0YXVyYW50c0luUG9seWdvbihcclxuICAgIHBvbHlnb25Db29yZHM6XHJcbiAgICAgIHwgQXJyYXk8e1xyXG4gICAgICAgICAgbGF0OiBudW1iZXI7XHJcbiAgICAgICAgICBsbmc6IG51bWJlcjtcclxuICAgICAgICB9PlxyXG4gICAgICB8IHVuZGVmaW5lZCxcclxuICApIHtcclxuICAgIGlmIChwb2x5Z29uQ29vcmRzKSB7XHJcbiAgICAgIHRoaXMubWFwRHJhd24gPSB0cnVlO1xyXG4gICAgICBjb25zdCBib3VuZHMgPSBuZXcgZ29vZ2xlLm1hcHMuTGF0TG5nQm91bmRzKCk7XHJcbiAgICAgIHBvbHlnb25Db29yZHMuZm9yRWFjaCgoY29vcmQpID0+IGJvdW5kcy5leHRlbmQoY29vcmQpKTtcclxuXHJcbiAgICAgIGNvbnN0IHNlcnZpY2UgPSBuZXcgZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2UoXHJcbiAgICAgICAgdGhpcy5saWJNYXAubWFwLmdvb2dsZU1hcCEsXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBzZXJ2aWNlLm5lYXJieVNlYXJjaChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBib3VuZHM6IGJvdW5kcyxcclxuICAgICAgICAgIHR5cGU6ICdyZXN0YXVyYW50JyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIChcclxuICAgICAgICAgIHJlc3VsdHM6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdFtdIHwgbnVsbCxcclxuICAgICAgICAgIHN0YXR1czogZ29vZ2xlLm1hcHMucGxhY2VzLlBsYWNlc1NlcnZpY2VTdGF0dXMsXHJcbiAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSBnb29nbGUubWFwcy5wbGFjZXMuUGxhY2VzU2VydmljZVN0YXR1cy5PSyAmJiByZXN1bHRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkUmVzdWx0cyA9IHJlc3VsdHMuZmlsdGVyKChwbGFjZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gcGxhY2UuZ2VvbWV0cnk/LmxvY2F0aW9uO1xyXG4gICAgICAgICAgICAgIGlmICghbG9jYXRpb24pIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICByZXR1cm4gZ29vZ2xlLm1hcHMuZ2VvbWV0cnkucG9seS5jb250YWluc0xvY2F0aW9uKGxvY2F0aW9uLCB0aGlzLnBvbHlnb24pO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGxhY2VzUmVzdWx0ID0gZmlsdGVyZWRSZXN1bHRzO1xyXG4gICAgICAgICAgICBmaWx0ZXJlZFJlc3VsdHMuZm9yRWFjaCgocGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRkQ3VzdG9tTWFya2VyKHBsYWNlKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMubWFwRHJhd24gPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRDdXN0b21NYXJrZXIocGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCkge1xyXG4gICAgY29uc3QgbWFya2VyID0gbmV3IGdvb2dsZS5tYXBzLk1hcmtlcih7XHJcbiAgICAgIG1hcDogdGhpcy5saWJNYXAubWFwLmdvb2dsZU1hcCxcclxuICAgICAgcG9zaXRpb246IHBsYWNlLmdlb21ldHJ5Py5sb2NhdGlvbixcclxuICAgICAgdGl0bGU6IHBsYWNlLm5hbWUsXHJcbiAgICAgIGljb246IHtcclxuICAgICAgICB1cmw6ICdhc3NldHMvaWNvbnMvbWFwLW1hcmtlcnMteWVsbG93LnN2ZycsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuICAgIHRoaXMucGxvdHRlZE1hcmtlcnMucHVzaChtYXJrZXIpO1xyXG4gICAgdGhpcy5wbGFjZU1hcmtlcnMucHVzaCh7XHJcbiAgICAgIHBsYWNlOiBwbGFjZSxcclxuICAgICAgbWFya2VyOiBtYXJrZXJcclxuICAgIH0pO1xyXG4gICAgbWFya2VyLmFkZExpc3RlbmVyKCdjbGljaycsICgpID0+IHtcclxuICAgICAgLy8gVG9nZ2xlIHNlbGVjdGlvblxyXG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRNYXJrZXJzLmluZGV4T2YobWFya2VyKTtcclxuXHJcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgICAgLy8gTWFya2VyIHdhcyBhbHJlYWR5IHNlbGVjdGVkIOKGkiBkZXNlbGVjdFxyXG4gICAgICAgIG1hcmtlci5zZXRJY29uKGRlZmF1bHRJY29uKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkTWFya2Vycy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIFNlbGVjdCBtYXJrZXJcclxuICAgICAgICBtYXJrZXIuc2V0SWNvbihzZWxlY3RlZEljb24pO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNYXJrZXJzLnB1c2gobWFya2VyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjbGVhck1hcCgpIHtcclxuICAgIHRoaXMubWFwRHJhd24gPSBmYWxzZTtcclxuICAgIGlmKHRoaXMucG9seWdvbikge1xyXG4gICAgICB0aGlzLnBvbHlnb24uc2V0TWFwKG51bGwpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jbGVhck1hcmtlcnMoKTtcclxuICB9XHJcblxyXG4gIGNvbnRpbnVlKCkge1xyXG4gICAgY29uc3QgY29vcmRpbmF0ZXM6IEFycmF5PHsgbGF0OiBudW1iZXI7IGxuZzogbnVtYmVyIH0+ID0gW107XHJcbiAgICB0aGlzLnBvbHlnb24uZ2V0UGF0aCgpLmZvckVhY2goY29vcmQgPT4ge1xyXG4gICAgICBjb29yZGluYXRlcy5wdXNoKHsgbGF0OiBjb29yZC5sYXQoKSwgbG5nOiBjb29yZC5sbmcoKSB9KTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmFuc2ZlclNlcnZpY2Uuc2V0UG9seWdvbihjb29yZGluYXRlcyk7XHJcblxyXG4gICAgY29uc3Qgc2VsZWN0ZWRQbGFjZXMgPSB0aGlzLnNlbGVjdGVkTWFya2Vycy5tYXAoKHNlbGVjdGVkTWFya2VyKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlTWFya2VyID0gdGhpcy5wbGFjZU1hcmtlcnMuZmluZChwbGFjZU1hcmtlciA9PiBwbGFjZU1hcmtlci5tYXJrZXIgPT09IHNlbGVjdGVkTWFya2VyKTtcclxuICAgICAgcmV0dXJuIHBsYWNlTWFya2VyIS5wbGFjZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGFsbFBsYWNlcyA9IHRoaXMucGxhY2VNYXJrZXJzLm1hcChwbGFjZU1hcmtlciA9PiBwbGFjZU1hcmtlci5wbGFjZSk7XHJcblxyXG4gICAgdGhpcy50cmFuc2ZlclNlcnZpY2Uuc2V0UGxhY2VzKGFsbFBsYWNlcyk7XHJcbiAgICB0aGlzLnRyYW5zZmVyU2VydmljZS5zZXRTZWxlY3RlZFBsYWNlcyhzZWxlY3RlZFBsYWNlcyk7XHJcbiAgICB0aGlzLnRyYW5zZmVyU2VydmljZS5zZXRDdXJyZW50TG9jYXRpb24odGhpcy5pbml0aWFsTG9jYXRpb24pO1xyXG5cclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcclxuICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLklUSU5FUkFSWSxcclxuICAgICAgSXRpbmVyYXJpZXNSb3V0ZXNFbnVtLkNSRUFURV9JVElORVJBUllfRFJBV19NT0RFLFxyXG4gICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uQ1JFQVRFX0lUSU5FUkFSWV9EUkFXX01PREVfUFJFVklFVyxcclxuICAgICAgdGhpcy5pdGluZXJhcnk/LmlkXHJcbiAgICBdKTtcclxuICB9XHJcblxyXG4gIGNsZWFyUG9seWdvbklmRXhpc3QoKSB7XHJcbiAgICBpZih0aGlzLnBvbHlnb24pIHtcclxuICAgICAgdGhpcy5wb2x5Z29uLnNldE1hcChudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyTWFya2VycygpIHtcclxuICAgIGlmKHRoaXMucGxvdHRlZE1hcmtlcnM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLnBsb3R0ZWRNYXJrZXJzPy5mb3JFYWNoKChwbG90dGVkTWFya2VyKSA9PiBwbG90dGVkTWFya2VyLnNldE1hcChudWxsKSk7XHJcbiAgICB9IFxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICB0aGlzLmxvY2F0aW9uU2VydmljZS5nZXRDdXJyZW50TG9jYXRpb24oKVxyXG4gICAgICAuc3Vic2NyaWJlKChsb2NhdGlvbikgPT4ge1xyXG4gICAgICAgIHRoaXMubGliTWFwLm1hcC5nb29nbGVNYXA/LnNldENlbnRlcih7XHJcbiAgICAgICAgICBsYXQ6IGxvY2F0aW9uLmxhdCxcclxuICAgICAgICAgIGxuZzogbG9jYXRpb24ubG9uZ1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvL1NldCB0aGUgaW5pdGlhbCBsb2NhdGlvbiBvZiB0aGUgdXNlclxyXG4gICAgICAgIHRoaXMuaW5pdGlhbExvY2F0aW9uID0ge1xyXG4gICAgICAgICAgbGF0OiBsb2NhdGlvbi5sYXQsXHJcbiAgICAgICAgICBsbmc6IGxvY2F0aW9uLmxvbmdcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5saWJNYXAubWFwLmdvb2dsZU1hcD8uc2V0Wm9vbSgxNSk7XHJcblxyXG4gICAgICAgIC8vQWRkIG1hcmtlciBmb3IgdXNlciBwb3NpdGlvblxyXG4gICAgICAgIG5ldyBnb29nbGUubWFwcy5NYXJrZXIoe1xyXG4gICAgICAgICAgbWFwOiB0aGlzLmxpYk1hcC5tYXAuZ29vZ2xlTWFwLFxyXG4gICAgICAgICAgcG9zaXRpb246IHtcclxuICAgICAgICAgICAgbGF0OiBsb2NhdGlvbi5sYXQsXHJcbiAgICAgICAgICAgIGxuZzogbG9jYXRpb24ubG9uZ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHRpdGxlOiAnWW91IGFyZSBoZXJlJyxcclxuICAgICAgICAgIGljb246IHtcclxuICAgICAgICAgICAgdXJsOiAnYXNzZXRzL2N1cnJlbnRfbG9jYXRpb24uc3ZnJyxcclxuICAgICAgICAgICAgc2NhbGVkU2l6ZTogbmV3IGdvb2dsZS5tYXBzLlNpemUoNDAsIDQwKSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEVuYWJsZSBwb2x5Z29uIGRyYXdpbmdcclxuICAgICAgICBjb25zdCBkcmF3aW5nTWFuYWdlciA9IG5ldyBnb29nbGUubWFwcy5kcmF3aW5nLkRyYXdpbmdNYW5hZ2VyKHtcclxuICAgICAgICAgIGRyYXdpbmdNb2RlOiBnb29nbGUubWFwcy5kcmF3aW5nLk92ZXJsYXlUeXBlLlBPTFlHT04sXHJcbiAgICAgICAgICBkcmF3aW5nQ29udHJvbDogdHJ1ZSxcclxuICAgICAgICAgIGRyYXdpbmdDb250cm9sT3B0aW9uczoge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogZ29vZ2xlLm1hcHMuQ29udHJvbFBvc2l0aW9uLlJJR0hUX0NFTlRFUixcclxuICAgICAgICAgICAgZHJhd2luZ01vZGVzOiBbZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5VHlwZS5QT0xZR09OXSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBwb2x5Z29uT3B0aW9uczoge1xyXG4gICAgICAgICAgICBzdHJva2VDb2xvcjogJyNFMTc1NzUnLFxyXG4gICAgICAgICAgICBzdHJva2VPcGFjaXR5OiAwLFxyXG4gICAgICAgICAgICBzdHJva2VXZWlnaHQ6IDAsXHJcbiAgICAgICAgICAgIGZpbGxDb2xvcjogJyNFMTc1NzUnLFxyXG4gICAgICAgICAgICBmaWxsT3BhY2l0eTogMC4zLFxyXG4gICAgICAgICAgICBjbGlja2FibGU6IHRydWUsXHJcbiAgICAgICAgICAgIGVkaXRhYmxlOiB0cnVlLFxyXG4gICAgICAgICAgICB6SW5kZXg6IDEsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGRyYXdpbmdNYW5hZ2VyLnNldE1hcCh0aGlzLmxpYk1hcC5tYXAuZ29vZ2xlTWFwISk7XHJcblxyXG4gICAgICAgIGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGRyYXdpbmdNYW5hZ2VyLCAnZHJhd2luZ21vZGVfY2hhbmdlZCcsICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IG1vZGUgPSBkcmF3aW5nTWFuYWdlci5nZXREcmF3aW5nTW9kZSgpO1xyXG4gICAgICAgICAgaWYgKG1vZGUgPT09IGdvb2dsZS5tYXBzLmRyYXdpbmcuT3ZlcmxheVR5cGUuUE9MWUdPTikge1xyXG4gICAgICAgICAgICB0aGlzLmNsZWFyUG9seWdvbklmRXhpc3QoKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gTGlzdGVuIGZvciBwb2x5Z29uIGNvbXBsZXRpb25cclxuICAgICAgICBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcihkcmF3aW5nTWFuYWdlciwgJ292ZXJsYXljb21wbGV0ZScsIChldmVudDogZ29vZ2xlLm1hcHMuZHJhd2luZy5PdmVybGF5Q29tcGxldGVFdmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IGdvb2dsZS5tYXBzLmRyYXdpbmcuT3ZlcmxheVR5cGUuUE9MWUdPTikge1xyXG4gICAgICAgICAgICBjb25zdCBwb2x5Z29uID0gZXZlbnQub3ZlcmxheSBhcyBnb29nbGUubWFwcy5Qb2x5Z29uO1xyXG4gICAgICAgICAgICB0aGlzLnBvbHlnb24gPSBwb2x5Z29uO1xyXG4gICAgICAgICAgICAvLyBEaXNhYmxlIGRyYXdpbmcgYWZ0ZXIgb25lIHBvbHlnb25cclxuICAgICAgICAgICAgZHJhd2luZ01hbmFnZXIuc2V0RHJhd2luZ01vZGUobnVsbCk7XHJcblxyXG4gICAgICAgICAgICAvLyBBY2Nlc3MgdGhlIHBvbHlnb24gY29vcmRpbmF0ZXNcclxuICAgICAgICAgICAgY29uc3QgcGF0aCA9IHBvbHlnb24uZ2V0UGF0aCgpO1xyXG4gICAgICAgICAgICBjb25zdCBjb29yZGluYXRlczogQXJyYXk8eyBsYXQ6IG51bWJlcjsgbG5nOiBudW1iZXIgfT4gPSBbXTtcclxuICAgICAgICAgICAgcGF0aC5mb3JFYWNoKChjb29yZDogZ29vZ2xlLm1hcHMuTGF0TG5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29vcmRpbmF0ZXMucHVzaCh7IGxhdDogY29vcmQubGF0KCksIGxuZzogY29vcmQubG5nKCkgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hSZXN0YXVyYW50c0luUG9seWdvbihjb29yZGluYXRlcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vTkFWSUdBVElPTlNcclxuICBiYWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XHJcbiAgfVxyXG5cclxuICBuYXZUb1BpY2tTdGFydExvY2F0aW9uKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoXHJcbiAgICAgIFtcclxuICAgICAgICBJdGluZXJhcmllc1JvdXRlc0VudW0uSVRJTkVSQVJZLFxyXG4gICAgICAgIEl0aW5lcmFyaWVzUm91dGVzRW51bS5MT0NBVElPTl9QSUNLRVIsXHJcbiAgICAgICAgdGhpcy5pdGluZXJhcnk/LmlkLFxyXG4gICAgICBdLFxyXG4gICAgICB7IHF1ZXJ5UGFyYW1zOiB7IG1vZGU6ICdzdGFydCcgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldENsb3Nlc3RQb2ludE9uUG9seWdvbihwb2x5Z29uOiBnb29nbGUubWFwcy5Qb2x5Z29uLCBwb2ludDogZ29vZ2xlLm1hcHMuTGF0TG5nKTogZ29vZ2xlLm1hcHMuTGF0TG5nIHtcclxuICAgIGNvbnN0IHBhdGggPSBwb2x5Z29uLmdldFBhdGgoKTtcclxuICAgIGxldCBjbG9zZXN0UG9pbnQgPSBudWxsO1xyXG4gICAgbGV0IG1pbkRpc3RhbmNlID0gSW5maW5pdHk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXRoLmdldExlbmd0aCgpOyBpKyspIHtcclxuICAgICAgY29uc3Qgc3RhcnQgPSBwYXRoLmdldEF0KGkpO1xyXG4gICAgICBjb25zdCBlbmQgPSBwYXRoLmdldEF0KChpICsgMSkgJSBwYXRoLmdldExlbmd0aCgpKTtcclxuXHJcbiAgICAgIC8vIEludGVycG9sYXRlIHBvaW50cyBhbG9uZyB0aGUgc2VnbWVudFxyXG4gICAgICBmb3IgKGxldCB0ID0gMDsgdCA8PSAxOyB0ICs9IDAuMDUpIHtcclxuICAgICAgICBjb25zdCBpbnRlcnAgPSBnb29nbGUubWFwcy5nZW9tZXRyeS5zcGhlcmljYWwuaW50ZXJwb2xhdGUoc3RhcnQsIGVuZCwgdCk7XHJcbiAgICAgICAgY29uc3QgZGlzdCA9IGdvb2dsZS5tYXBzLmdlb21ldHJ5LnNwaGVyaWNhbC5jb21wdXRlRGlzdGFuY2VCZXR3ZWVuKHBvaW50LCBpbnRlcnApO1xyXG4gICAgICAgIGlmIChkaXN0IDwgbWluRGlzdGFuY2UpIHtcclxuICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdDtcclxuICAgICAgICAgIGNsb3Nlc3RQb2ludCA9IGludGVycDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY2xvc2VzdFBvaW50ITtcclxuICB9XHJcbn1cclxuIiwiPGFwcC1jcmVhdGUtaXRpbmVyYXJ5LWhlYWRlclxyXG4gIFtwcm9ncmVzc0JhclZhbHVlXT1cIjUwXCJcclxuICBoZWFkaW5nPVwiQ3JlYXRlIEl0aW5lcmFyeVwiXHJcbj48L2FwcC1jcmVhdGUtaXRpbmVyYXJ5LWhlYWRlcj5cclxuPGxpYi1tYXAgI2xpYk1hcCBjbGFzcz1cIm1hcHMtMTAwdmhcIj48L2xpYi1tYXA+XHJcbjxsaWItYm90dG9tLW1vZGFsXHJcbiAgW3Nob3dBcnJvd109XCJ0cnVlXCJcclxuICBbKGlzT3BlbildPVwiaXNPcGVuXCJcclxuICBbYWRhcHRUb0NvbnRlbnRIZWlnaHRdPVwidHJ1ZVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW1hcERyYXduXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcGwtNCBwci00XCI+XHJcbiAgICAgICAgPGgzIGNsYXNzPVwiZm9udC1DYWxpc3RvZ2EgdGV4dC1sZ1wiPnt7IFwiSVRJTkVSQVJZLkRSQVdcIiB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGFibGVzIGZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVBY3Rpb24oYSlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGFjdGlvbnNcIlxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgYSBvZiBhY3Rpb25zXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyBzZWxlY3RlZDogYSA9PT0gc2VsZWN0ZWQgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbWcgW3NyY109XCJhXCIgYWx0PVwiaWNvblwiIGxvYWRpbmc9XCJsYXp5XCIgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHAgY2xhc3M9XCJtdC0zIHB4LTQgbWItNFwiPnt7IFwiSVRJTkVSQVJZLkRSQVdfREVTQ1JJUFRJT05cIiB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1hcERyYXduXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtbC1hdXRvIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC14LTJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMSB0ZXh0LXhzXCI+XHJcbiAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgbG9hZGluZz1cImxhenlcIlxyXG4gICAgICAgICAgICBbc3JjXT1cIklDT05TWydsb2NhdGlvbldoaXRlJ11cIlxyXG4gICAgICAgICAgICBhbHQ9XCJsb2NhdGlvblwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuPiZuYnNwO3t7IFwiSVRJTkVSQVJZLlNFTEVDVF9NSU5fUExBQ0VTXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImgtNCBib3JkZXIgdy0wIGJvcmRlci1zZWNvbmRhcnlcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLXgtMiB0ZXh0LXhzXCI+XHJcbiAgICAgICAgICAgIDxpbWcgbG9hZGluZz1cImxhenlcIiBbc3JjXT1cIklDT05TWydjbG9jayddXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICAgICAgPHNwYW4+Jm5ic3A7MCBtaW51dGVzPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtc2Vjb25kYXJ5IGZvbnQtdGhpblwiPigwLjAga20pPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1wbGFjZXMtZGVzY3JpcHRpb24gbXQtNSB0ZXh0LWNlbnRlciBtYi00XCI+XHJcbiAgICAgICAge3sgXCJJVElORVJBUlkuU0VMRUNUX1BMQUNFU19JTlNUUlVDVElPTlwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPGxpYi1mb290ZXItc2hhcmVkXHJcbiAgICAoY29udGludWVCdXR0b25DbGljayk9XCJjb250aW51ZSgpXCJcclxuICAgIChzZWNvbmRhcnlCdXR0b25DbGljayk9XCJjbGVhck1hcCgpXCJcclxuICAgIFtjYW5Db250aW51ZV09XCJ0cnVlXCJcclxuICAgIFtjb250aW51ZUJ1dHRvblRleHRdPVwiJ0NPTU1PTi5DT05USU5VRScgfCB0cmFuc2xhdGVcIlxyXG4gICAgW3NlY29uZGFyeUJ1dHRvblRleHRdPVwiJ0NPTU1PTi5DTEVBUicgfCB0cmFuc2xhdGVcIlxyXG4gICAgPjwvbGliLWZvb3Rlci1zaGFyZWQ+XHJcbiAgPC9kaXY+XHJcbjwvbGliLWJvdHRvbS1tb2RhbD5cclxuPGRpdlxyXG4gIChjbGljayk9XCJzaG93Qm90dG9tTW9kYWwoKVwiXHJcbiAgY2xhc3M9XCJhYnNvbHV0ZSBib3R0b20tMCBjdXJzb3ItcG9pbnRlciB6LTEwXCJcclxuICBzdHlsZT1cImxlZnQ6IDUwJVwiXHJcbj5cclxuICA8aW1nXHJcbiAgICBzdHlsZT1cInRyYW5zZm9ybTogcm90YXRlKDI3MGRlZylcIlxyXG4gICAgW3NyY109XCJJQ09OU1sncmlnaHRBcnJvdyddXCJcclxuICAgIGFsdD1cImljb25cIlxyXG4gICAgaGVpZ2h0PVwiMTVcIlxyXG4gICAgd2lkdGg9XCIxNVwiXHJcbiAgLz5cclxuPC9kaXY+XHJcbiJdfQ==