@naniteninja/dashboard-components-lib 1.0.0 → 1.0.2

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 (378) hide show
  1. package/fesm2022/naniteninja-dashboard-components-lib.mjs +181 -191
  2. package/fesm2022/naniteninja-dashboard-components-lib.mjs.map +1 -1
  3. package/index.d.ts +1669 -3
  4. package/package.json +2 -4
  5. package/src/assets/auto-delegation-modal/cross.svg +17 -17
  6. package/src/assets/auto-delegation-modal/menu.svg +3 -3
  7. package/src/assets/auto-delegation-modal/timer-center-dot.svg +25 -25
  8. package/src/assets/auto-delegation-modal/user-profile.svg +9 -9
  9. package/src/assets/circle-progress/circle-progress-1.svg +159 -159
  10. package/src/assets/circle-progress/circle-progress-2.svg +155 -155
  11. package/src/assets/circle-progress/circle-progress-3.svg +25 -25
  12. package/src/assets/circle-progress/circle-progress.svg +159 -159
  13. package/src/assets/client-match-overview/background-eclipse.svg +13 -13
  14. package/src/assets/grid/icons/filter-button.svg +47 -47
  15. package/src/assets/grid/images/chips-background-shadow.svg +34 -34
  16. package/src/assets/icons/back-v2.svg +14 -14
  17. package/src/assets/icons/checkbox/checkbox-off.svg +72 -72
  18. package/src/assets/icons/checkbox/checkbox-on.svg +113 -113
  19. package/src/assets/icons/checkmark-button.svg +72 -72
  20. package/src/assets/icons/checkmark.svg +7 -7
  21. package/src/assets/icons/close-icon.svg +3 -3
  22. package/src/assets/icons/compose-matcher/notes.svg +4 -4
  23. package/src/assets/icons/compose-matcher/profile.svg +4 -4
  24. package/src/assets/icons/compose-matcher/suggest.svg +3 -3
  25. package/src/assets/icons/compose-matcher/visual.svg +3 -3
  26. package/src/assets/icons/default-profile.svg +23 -23
  27. package/src/assets/icons/defualt.svg +5 -5
  28. package/src/assets/icons/first-page.svg +7 -7
  29. package/src/assets/icons/incrementer/minus.svg +3 -3
  30. package/src/assets/icons/incrementer/plus.svg +3 -3
  31. package/src/assets/icons/info.svg +5 -5
  32. package/src/assets/icons/last-page.svg +7 -7
  33. package/src/assets/icons/minus.svg +3 -3
  34. package/src/assets/icons/next-page.svg +6 -6
  35. package/src/assets/icons/plus.svg +3 -3
  36. package/src/assets/icons/popup-defualt.svg +34 -34
  37. package/src/assets/icons/prev-page.svg +6 -6
  38. package/src/assets/icons/send-icon.svg +4 -4
  39. package/src/assets/icons/shake.svg +74 -74
  40. package/src/assets/icons/thumbs-up.svg +28 -28
  41. package/src/assets/nsfw/blazeface.bundle.js +1 -1
  42. package/src/assets/nsfw/model/model.json +4085 -4085
  43. package/src/assets/nsfw/nsfwjs.bundle.js +1 -1
  44. package/src/assets/nsfw/tf.bundle.js +1 -1
  45. package/src/assets/scheduler/accept.svg +3 -3
  46. package/src/assets/scheduler/accept_active.svg +3 -3
  47. package/src/assets/scheduler/arrow.svg +13 -13
  48. package/src/assets/scheduler/cancel.svg +3 -3
  49. package/src/assets/scheduler/cancel_active.svg +3 -3
  50. package/src/assets/scheduler/heart.svg +18 -18
  51. package/src/lib/shared-styles/common/animations.scss +48 -48
  52. package/src/lib/shared-styles/common/base-input-field.scss +132 -132
  53. package/src/lib/shared-styles/common/buttons.scss +152 -152
  54. package/src/lib/shared-styles/common/cards.scss +163 -163
  55. package/src/lib/shared-styles/common/client-dash.scss +5 -5
  56. package/src/lib/shared-styles/common/date-picker.scss +179 -179
  57. package/src/lib/shared-styles/common/draggable-scroll-and-marquee.scss +34 -34
  58. package/src/lib/shared-styles/common/feedback.scss +157 -157
  59. package/src/lib/shared-styles/common/fonts.scss +3 -3
  60. package/src/lib/shared-styles/common/information-card.scss +56 -56
  61. package/src/lib/shared-styles/common/input.scss +110 -110
  62. package/src/lib/shared-styles/common/lib-styles-utils.scss +157 -157
  63. package/src/lib/shared-styles/common/lists.scss +91 -91
  64. package/src/lib/shared-styles/common/login.scss +32 -32
  65. package/src/lib/shared-styles/common/maps.scss +10 -10
  66. package/src/lib/shared-styles/common/matcher-dash.scss +49 -49
  67. package/src/lib/shared-styles/common/modal_styles.scss +32 -32
  68. package/src/lib/shared-styles/common/notifications-list.scss +9 -9
  69. package/src/lib/shared-styles/common/overrides.scss +6 -6
  70. package/src/lib/shared-styles/common/pulse.scss +26 -26
  71. package/src/lib/shared-styles/common/swiper.scss +5 -5
  72. package/src/lib/shared-styles/common/tab-menu.scss +74 -74
  73. package/src/lib/shared-styles/common/theme.scss +55 -55
  74. package/src/lib/shared-styles/common/typography.scss +121 -121
  75. package/src/lib/shared-styles/common/user-menu.scss +129 -129
  76. package/src/lib/shared-styles/fonts/calistoga.font.scss +6 -6
  77. package/src/lib/shared-styles/fonts/gilroy.font.scss +160 -160
  78. package/src/lib/shared-styles/styles.scss +25 -25
  79. package/esm2022/lib/components/auto-delegation/animations.mjs +0 -20
  80. package/esm2022/lib/components/auto-delegation/auto-delegation-modal.component.mjs +0 -106
  81. package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-type.enum.mjs +0 -6
  82. package/esm2022/lib/components/auto-delegation/enums/auto-delegation.event-value.enum.mjs +0 -7
  83. package/esm2022/lib/components/auto-delegation/interface/auto-delegation-data.interface.mjs +0 -2
  84. package/esm2022/lib/components/auto-delegation/interface/auto-delegation.event.interface.mjs +0 -2
  85. package/esm2022/lib/components/auto-delegation/interface/auto-delegation.modal-data.interface.mjs +0 -2
  86. package/esm2022/lib/components/auto-delegation/interface/preferences.interface.mjs +0 -2
  87. package/esm2022/lib/components/calendar/agenda/agenda-day-card/agenda-day-card.component.mjs +0 -37
  88. package/esm2022/lib/components/calendar/agenda/agenda.component.mjs +0 -98
  89. package/esm2022/lib/components/calendar/agenda/agenda.module.mjs +0 -24
  90. package/esm2022/lib/components/calendar/agenda/interfaces/agenda.day.interface.mjs +0 -2
  91. package/esm2022/lib/components/calendar/agenda/interfaces/agenda.event.inetrface.mjs +0 -2
  92. package/esm2022/lib/components/calendar/components/edit-recurring-event/edit-recurring-event.component.mjs +0 -40
  93. package/esm2022/lib/components/calendar/components/event-form/event-form.component.mjs +0 -275
  94. package/esm2022/lib/components/calendar/components/event-form/event-form.module.mjs +0 -89
  95. package/esm2022/lib/components/calendar/components/event-info/event-info.component.mjs +0 -40
  96. package/esm2022/lib/components/calendar/enums/calendar.account.enum.mjs +0 -6
  97. package/esm2022/lib/components/calendar/enums/calendar.account.icons.enum.mjs +0 -6
  98. package/esm2022/lib/components/calendar/enums/event-type.enum.mjs +0 -10
  99. package/esm2022/lib/components/calendar/enums/recurring.edit.options.enum.mjs +0 -7
  100. package/esm2022/lib/components/calendar/enums/recurring.type.enum.mjs +0 -8
  101. package/esm2022/lib/components/calendar/interfaces/calendar.account.interface.mjs +0 -2
  102. package/esm2022/lib/components/calendar/interfaces/calendar.account.theme.interface.mjs +0 -2
  103. package/esm2022/lib/components/calendar/interfaces/event.form.interface.mjs +0 -2
  104. package/esm2022/lib/components/calendar/interfaces/event.form.output.interface.mjs +0 -2
  105. package/esm2022/lib/components/calendar/interfaces/event.interface.mjs +0 -2
  106. package/esm2022/lib/components/calendar/interfaces/event.time.interface.mjs +0 -2
  107. package/esm2022/lib/components/calendar/interfaces/recurring.event.interface.mjs +0 -2
  108. package/esm2022/lib/components/calendar/interfaces/recurring.exception.interface.mjs +0 -2
  109. package/esm2022/lib/components/calendar/interfaces/recurring.pattern.interface.mjs +0 -2
  110. package/esm2022/lib/components/calendar/lookups/recurring.options.lookup.mjs +0 -30
  111. package/esm2022/lib/components/calendar/scheduler/enums/schedule-date-status.enum.mjs +0 -7
  112. package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.action.interface.mjs +0 -2
  113. package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.day.interface.mjs +0 -2
  114. package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.interface.mjs +0 -2
  115. package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.event.suggestion.interface.mjs +0 -2
  116. package/esm2022/lib/components/calendar/scheduler/interfaces/scheduler.slots.interface.mjs +0 -2
  117. package/esm2022/lib/components/calendar/scheduler/mock-schedule.mjs +0 -80
  118. package/esm2022/lib/components/calendar/scheduler/scheduler.component.mjs +0 -144
  119. package/esm2022/lib/components/calendar/services/calendar-utils.service.mjs +0 -211
  120. package/esm2022/lib/components/chat/chat.component.mjs +0 -307
  121. package/esm2022/lib/components/chat/chat.component.module.mjs +0 -85
  122. package/esm2022/lib/components/chat/chat.service.mjs +0 -63
  123. package/esm2022/lib/components/chat/enums/sender-types.enum.mjs +0 -6
  124. package/esm2022/lib/components/chat/gif-selector/gif-selector.component.mjs +0 -77
  125. package/esm2022/lib/components/chat/gif-selector/gif-selector.service.mjs +0 -41
  126. package/esm2022/lib/components/chat/gif-selector/tenor-media-format.interface.mjs +0 -2
  127. package/esm2022/lib/components/chat/gif-selector/tenor-object.interface.mjs +0 -2
  128. package/esm2022/lib/components/chat/gif-selector/tenor-result.interface.mjs +0 -2
  129. package/esm2022/lib/components/chat/interfaces/date-messages.interface.mjs +0 -2
  130. package/esm2022/lib/components/chat/interfaces/message-attachment.interface.mjs +0 -2
  131. package/esm2022/lib/components/chat/interfaces/message.interface.mjs +0 -2
  132. package/esm2022/lib/components/chat/interfaces/send-options-message.interface.mjs +0 -2
  133. package/esm2022/lib/components/chat/interfaces/type-send-message.enum.mjs +0 -7
  134. package/esm2022/lib/components/chat-suggestion/chat-suggestion.component.mjs +0 -21
  135. package/esm2022/lib/components/chat-suggestion/interfaces/chat-suggestion.interface.mjs +0 -2
  136. package/esm2022/lib/components/circle-progress/circle-progress.component.mjs +0 -143
  137. package/esm2022/lib/components/circle-progress/circle-progress.module.mjs +0 -18
  138. package/esm2022/lib/components/circle-progress/enums/circle-variable.enum.mjs +0 -6
  139. package/esm2022/lib/components/circle-progress/interfaces/circle-progress-config.interface.mjs +0 -2
  140. package/esm2022/lib/components/client-home/client-home.component.mjs +0 -123
  141. package/esm2022/lib/components/client-home/enums/client-home-component.enum.mjs +0 -9
  142. package/esm2022/lib/components/client-home/interfaces/chat-meta.interface.mjs +0 -2
  143. package/esm2022/lib/components/client-home/interfaces/home-dashboard-inputs.interface.mjs +0 -2
  144. package/esm2022/lib/components/client-home/interfaces/inner-partial-circle-progress-colors.interface.mjs +0 -2
  145. package/esm2022/lib/components/client-home/interfaces/partial-circle-progress-colors.interface.mjs +0 -2
  146. package/esm2022/lib/components/client-home/lookup/client-home.config.mjs +0 -30
  147. package/esm2022/lib/components/client-home/lookup/inner-progress-default-colors.config.mjs +0 -6
  148. package/esm2022/lib/components/client-home/lookup/inner-progress-pink-colors.config.mjs +0 -6
  149. package/esm2022/lib/components/client-home/lookup/inner-progress-purple-colors.config.mjs +0 -6
  150. package/esm2022/lib/components/client-home/lookup/inner-progress-teal-colors.config.mjs +0 -6
  151. package/esm2022/lib/components/client-home/lookup/inner-progress-white-colors.config.mjs +0 -10
  152. package/esm2022/lib/components/client-home/lookup/progress-default-colors.config.mjs +0 -10
  153. package/esm2022/lib/components/client-home/lookup/progress-white-colors.config.mjs +0 -10
  154. package/esm2022/lib/components/client-home/pipes/chat-meta.pipe.mjs +0 -60
  155. package/esm2022/lib/components/client-home/pipes/get-color-by-matcher.pipe.mjs +0 -33
  156. package/esm2022/lib/components/client-match-overview/client-match-overview.component.mjs +0 -300
  157. package/esm2022/lib/components/client-match-overview/enums/conversation-flag.enum.mjs +0 -6
  158. package/esm2022/lib/components/client-match-overview/enums/counter-flag-base.enum.mjs +0 -6
  159. package/esm2022/lib/components/client-match-overview/enums/inner-circle-state.enum.mjs +0 -8
  160. package/esm2022/lib/components/client-match-overview/interfaces/client-match-overview.interface.mjs +0 -2
  161. package/esm2022/lib/components/client-match-overview/interfaces/conversation-flag.interface.mjs +0 -2
  162. package/esm2022/lib/components/client-match-overview/interfaces/dashboard-match-request.interface.mjs +0 -2
  163. package/esm2022/lib/components/client-match-overview/interfaces/progress-decision.interface.mjs +0 -2
  164. package/esm2022/lib/components/client-match-overview/interfaces/progress-facts.interface.mjs +0 -2
  165. package/esm2022/lib/components/client-match-overview/lookups/computer-inner-state.lookup.mjs +0 -81
  166. package/esm2022/lib/components/client-match-overview/lookups/limit-dates-indicator.lookup.mjs +0 -8
  167. package/esm2022/lib/components/client-match-overview/progress-ticker/progress-gap.config.mjs +0 -4
  168. package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.config.mjs +0 -3
  169. package/esm2022/lib/components/client-match-overview/progress-ticker/progress-ticker.service.mjs +0 -43
  170. package/esm2022/lib/components/dashboard-swipeable-tabs/dashboard-swipeable-tabs.component.mjs +0 -113
  171. package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-main-swiper-options.mjs +0 -11
  172. package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/dashboard-thumbs-swiper-options.mjs +0 -27
  173. package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/main-swiper-default-options.mjs +0 -19
  174. package/esm2022/lib/components/dashboard-swipeable-tabs/lookups/thumbs-swiper-default-options.mjs +0 -21
  175. package/esm2022/lib/components/lib-client-dashboard/client-dashboard.component.mjs +0 -170
  176. package/esm2022/lib/components/lib-client-dashboard/enums/alert-status-fields.enum.mjs +0 -11
  177. package/esm2022/lib/components/lib-client-dashboard/enums/client-dashboard-component.enum.mjs +0 -7
  178. package/esm2022/lib/components/lib-client-dashboard/interfaces/client-dashboard-inputs.interface.mjs +0 -2
  179. package/esm2022/lib/components/lib-client-dashboard/lookups/client-dashboard.config.mjs +0 -15
  180. package/esm2022/lib/components/lib-compose-matcher-dash/compose-matcher-dash.component.mjs +0 -146
  181. package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chart-data.interface.mjs +0 -2
  182. package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/chat-identifier.interface.mjs +0 -2
  183. package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-dashboard-inputs.interface.mjs +0 -2
  184. package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/matcher-profile.interface.mjs +0 -2
  185. package/esm2022/lib/components/lib-compose-matcher-dash/interfaces/prospect-data.interface.mjs +0 -2
  186. package/esm2022/lib/components/lib-compose-matcher-dash/pipes/get-profile-with-progress.pipe.mjs +0 -21
  187. package/esm2022/lib/components/matcher-statuses/enums/matcher-statuses.enum.mjs +0 -15
  188. package/esm2022/lib/components/matcher-statuses/interfaces/status.interface.mjs +0 -2
  189. package/esm2022/lib/components/matcher-statuses/lookups/matcher-statuses.lookup.mjs +0 -54
  190. package/esm2022/lib/components/matcher-statuses/matcher-statuses.component.mjs +0 -58
  191. package/esm2022/lib/components/matcher-statuses/pipes/is-status-included.pipe.mjs +0 -19
  192. package/esm2022/lib/components/profile-card/profile-card.component.mjs +0 -35
  193. package/esm2022/lib/components/profile-card/profile-card.module.mjs +0 -19
  194. package/esm2022/lib/components/spider-chart/interfaces/chart-data-circle.interface.mjs +0 -2
  195. package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-f.interface.mjs +0 -2
  196. package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-lg.interface.mjs +0 -2
  197. package/esm2022/lib/components/spider-chart/interfaces/chart-data-defs-rg.interface.mjs +0 -2
  198. package/esm2022/lib/components/spider-chart/interfaces/config.interface.mjs +0 -2
  199. package/esm2022/lib/components/spider-chart/interfaces/dataset.interface.mjs +0 -2
  200. package/esm2022/lib/components/spider-chart/interfaces/polygon-color.interface.mjs +0 -2
  201. package/esm2022/lib/components/spider-chart/interfaces/spider-chart-attribute.interface.mjs +0 -2
  202. package/esm2022/lib/components/spider-chart/lookup/default-spider-config.lookup.mjs +0 -18
  203. package/esm2022/lib/components/spider-chart/lookup/default-spider-config.mjs +0 -67
  204. package/esm2022/lib/components/spider-chart/lookup/demo-polygon-colors.lookup.mjs +0 -11
  205. package/esm2022/lib/components/spider-chart/lookup/svg-config.lookup.mjs +0 -277
  206. package/esm2022/lib/components/spider-chart/spider-chart.component.mjs +0 -235
  207. package/esm2022/lib/enums/direction.enum.mjs +0 -6
  208. package/esm2022/lib/enums/form-field-type.mjs +0 -30
  209. package/esm2022/lib/enums/local-storage-keys.enum.mjs +0 -5
  210. package/esm2022/lib/enums/status-types.mjs +0 -8
  211. package/esm2022/lib/model/select-option-template.mjs +0 -2
  212. package/esm2022/lib/operations/operations.mjs +0 -19
  213. package/esm2022/lib/pipes/array-sort/array.sort.pipe.mjs +0 -49
  214. package/esm2022/lib/pipes/count-non-empty-fields/count-non-empty-fields.pipe.mjs +0 -17
  215. package/esm2022/lib/pipes/date-localization/date-localization.pipe.mjs +0 -31
  216. package/esm2022/lib/pipes/fallback-translate/fallback-translate.pipe.mjs +0 -28
  217. package/esm2022/lib/pipes/get-display-value/get-display-value.pipe.mjs +0 -59
  218. package/esm2022/lib/pipes/get-multi-select-display-text/get-multi-select-display-text.pipe.mjs +0 -22
  219. package/esm2022/lib/pipes/initials/initials.pipe.mjs +0 -25
  220. package/esm2022/lib/pipes/round/round.pipe.mjs +0 -17
  221. package/esm2022/lib/pipes/update-llm-preference/update-llm-preference.pipe.mjs +0 -25
  222. package/esm2022/lib/services/abstract-cache.service.mjs +0 -10
  223. package/esm2022/lib/shared/shared/alert-popup/alert-popup.component.mjs +0 -38
  224. package/esm2022/lib/shared/shared/message-modal/message-modal.component.mjs +0 -95
  225. package/esm2022/lib/shared/shared/status-icon/status-icon.component.mjs +0 -14
  226. package/esm2022/lib/shared/shared.module.mjs +0 -23
  227. package/esm2022/naniteninja-dashboard-components-lib.mjs +0 -5
  228. package/esm2022/public-api.mjs +0 -122
  229. package/lib/components/auto-delegation/animations.d.ts +0 -1
  230. package/lib/components/auto-delegation/auto-delegation-modal.component.d.ts +0 -29
  231. package/lib/components/auto-delegation/enums/auto-delegation.event-type.enum.d.ts +0 -4
  232. package/lib/components/auto-delegation/enums/auto-delegation.event-value.enum.d.ts +0 -5
  233. package/lib/components/auto-delegation/interface/auto-delegation-data.interface.d.ts +0 -31
  234. package/lib/components/auto-delegation/interface/auto-delegation.event.interface.d.ts +0 -6
  235. package/lib/components/auto-delegation/interface/auto-delegation.modal-data.interface.d.ts +0 -8
  236. package/lib/components/auto-delegation/interface/preferences.interface.d.ts +0 -17
  237. package/lib/components/calendar/agenda/agenda-day-card/agenda-day-card.component.d.ts +0 -12
  238. package/lib/components/calendar/agenda/agenda.component.d.ts +0 -22
  239. package/lib/components/calendar/agenda/agenda.module.d.ts +0 -12
  240. package/lib/components/calendar/agenda/interfaces/agenda.day.interface.d.ts +0 -7
  241. package/lib/components/calendar/agenda/interfaces/agenda.event.inetrface.d.ts +0 -9
  242. package/lib/components/calendar/components/edit-recurring-event/edit-recurring-event.component.d.ts +0 -19
  243. package/lib/components/calendar/components/event-form/event-form.component.d.ts +0 -67
  244. package/lib/components/calendar/components/event-form/event-form.module.d.ts +0 -20
  245. package/lib/components/calendar/components/event-info/event-info.component.d.ts +0 -24
  246. package/lib/components/calendar/enums/calendar.account.enum.d.ts +0 -4
  247. package/lib/components/calendar/enums/calendar.account.icons.enum.d.ts +0 -4
  248. package/lib/components/calendar/enums/event-type.enum.d.ts +0 -8
  249. package/lib/components/calendar/enums/recurring.edit.options.enum.d.ts +0 -5
  250. package/lib/components/calendar/enums/recurring.type.enum.d.ts +0 -6
  251. package/lib/components/calendar/interfaces/calendar.account.interface.d.ts +0 -14
  252. package/lib/components/calendar/interfaces/calendar.account.theme.interface.d.ts +0 -5
  253. package/lib/components/calendar/interfaces/event.form.interface.d.ts +0 -22
  254. package/lib/components/calendar/interfaces/event.form.output.interface.d.ts +0 -10
  255. package/lib/components/calendar/interfaces/event.interface.d.ts +0 -33
  256. package/lib/components/calendar/interfaces/event.time.interface.d.ts +0 -4
  257. package/lib/components/calendar/interfaces/recurring.event.interface.d.ts +0 -16
  258. package/lib/components/calendar/interfaces/recurring.exception.interface.d.ts +0 -14
  259. package/lib/components/calendar/interfaces/recurring.pattern.interface.d.ts +0 -16
  260. package/lib/components/calendar/lookups/recurring.options.lookup.d.ts +0 -2
  261. package/lib/components/calendar/scheduler/enums/schedule-date-status.enum.d.ts +0 -5
  262. package/lib/components/calendar/scheduler/interfaces/scheduler.action.interface.d.ts +0 -10
  263. package/lib/components/calendar/scheduler/interfaces/scheduler.event.day.interface.d.ts +0 -5
  264. package/lib/components/calendar/scheduler/interfaces/scheduler.event.interface.d.ts +0 -26
  265. package/lib/components/calendar/scheduler/interfaces/scheduler.event.suggestion.interface.d.ts +0 -13
  266. package/lib/components/calendar/scheduler/interfaces/scheduler.slots.interface.d.ts +0 -6
  267. package/lib/components/calendar/scheduler/mock-schedule.d.ts +0 -9
  268. package/lib/components/calendar/scheduler/scheduler.component.d.ts +0 -36
  269. package/lib/components/calendar/services/calendar-utils.service.d.ts +0 -39
  270. package/lib/components/chat/chat.component.d.ts +0 -70
  271. package/lib/components/chat/chat.component.module.d.ts +0 -22
  272. package/lib/components/chat/chat.service.d.ts +0 -15
  273. package/lib/components/chat/enums/sender-types.enum.d.ts +0 -4
  274. package/lib/components/chat/gif-selector/gif-selector.component.d.ts +0 -25
  275. package/lib/components/chat/gif-selector/gif-selector.service.d.ts +0 -15
  276. package/lib/components/chat/gif-selector/tenor-media-format.interface.d.ts +0 -7
  277. package/lib/components/chat/gif-selector/tenor-object.interface.d.ts +0 -5
  278. package/lib/components/chat/gif-selector/tenor-result.interface.d.ts +0 -16
  279. package/lib/components/chat/interfaces/date-messages.interface.d.ts +0 -6
  280. package/lib/components/chat/interfaces/message-attachment.interface.d.ts +0 -6
  281. package/lib/components/chat/interfaces/message.interface.d.ts +0 -11
  282. package/lib/components/chat/interfaces/send-options-message.interface.d.ts +0 -5
  283. package/lib/components/chat/interfaces/type-send-message.enum.d.ts +0 -5
  284. package/lib/components/chat-suggestion/chat-suggestion.component.d.ts +0 -9
  285. package/lib/components/chat-suggestion/interfaces/chat-suggestion.interface.d.ts +0 -4
  286. package/lib/components/circle-progress/circle-progress.component.d.ts +0 -31
  287. package/lib/components/circle-progress/circle-progress.module.d.ts +0 -8
  288. package/lib/components/circle-progress/enums/circle-variable.enum.d.ts +0 -4
  289. package/lib/components/circle-progress/interfaces/circle-progress-config.interface.d.ts +0 -29
  290. package/lib/components/client-home/client-home.component.d.ts +0 -44
  291. package/lib/components/client-home/enums/client-home-component.enum.d.ts +0 -7
  292. package/lib/components/client-home/interfaces/chat-meta.interface.d.ts +0 -7
  293. package/lib/components/client-home/interfaces/home-dashboard-inputs.interface.d.ts +0 -45
  294. package/lib/components/client-home/interfaces/inner-partial-circle-progress-colors.interface.d.ts +0 -5
  295. package/lib/components/client-home/interfaces/partial-circle-progress-colors.interface.d.ts +0 -9
  296. package/lib/components/client-home/lookup/client-home.config.d.ts +0 -2
  297. package/lib/components/client-home/lookup/inner-progress-default-colors.config.d.ts +0 -2
  298. package/lib/components/client-home/lookup/inner-progress-pink-colors.config.d.ts +0 -2
  299. package/lib/components/client-home/lookup/inner-progress-purple-colors.config.d.ts +0 -2
  300. package/lib/components/client-home/lookup/inner-progress-teal-colors.config.d.ts +0 -2
  301. package/lib/components/client-home/lookup/inner-progress-white-colors.config.d.ts +0 -2
  302. package/lib/components/client-home/lookup/progress-default-colors.config.d.ts +0 -2
  303. package/lib/components/client-home/lookup/progress-white-colors.config.d.ts +0 -2
  304. package/lib/components/client-home/pipes/chat-meta.pipe.d.ts +0 -10
  305. package/lib/components/client-home/pipes/get-color-by-matcher.pipe.d.ts +0 -10
  306. package/lib/components/client-match-overview/client-match-overview.component.d.ts +0 -55
  307. package/lib/components/client-match-overview/enums/conversation-flag.enum.d.ts +0 -4
  308. package/lib/components/client-match-overview/enums/counter-flag-base.enum.d.ts +0 -4
  309. package/lib/components/client-match-overview/enums/inner-circle-state.enum.d.ts +0 -6
  310. package/lib/components/client-match-overview/interfaces/client-match-overview.interface.d.ts +0 -19
  311. package/lib/components/client-match-overview/interfaces/conversation-flag.interface.d.ts +0 -8
  312. package/lib/components/client-match-overview/interfaces/dashboard-match-request.interface.d.ts +0 -7
  313. package/lib/components/client-match-overview/interfaces/progress-decision.interface.d.ts +0 -10
  314. package/lib/components/client-match-overview/interfaces/progress-facts.interface.d.ts +0 -11
  315. package/lib/components/client-match-overview/lookups/computer-inner-state.lookup.d.ts +0 -7
  316. package/lib/components/client-match-overview/lookups/limit-dates-indicator.lookup.d.ts +0 -5
  317. package/lib/components/client-match-overview/progress-ticker/progress-gap.config.d.ts +0 -2
  318. package/lib/components/client-match-overview/progress-ticker/progress-ticker.config.d.ts +0 -2
  319. package/lib/components/client-match-overview/progress-ticker/progress-ticker.service.d.ts +0 -11
  320. package/lib/components/dashboard-swipeable-tabs/dashboard-swipeable-tabs.component.d.ts +0 -29
  321. package/lib/components/dashboard-swipeable-tabs/lookups/dashboard-main-swiper-options.d.ts +0 -2
  322. package/lib/components/dashboard-swipeable-tabs/lookups/dashboard-thumbs-swiper-options.d.ts +0 -2
  323. package/lib/components/dashboard-swipeable-tabs/lookups/main-swiper-default-options.d.ts +0 -2
  324. package/lib/components/dashboard-swipeable-tabs/lookups/thumbs-swiper-default-options.d.ts +0 -2
  325. package/lib/components/lib-client-dashboard/client-dashboard.component.d.ts +0 -73
  326. package/lib/components/lib-client-dashboard/enums/alert-status-fields.enum.d.ts +0 -9
  327. package/lib/components/lib-client-dashboard/enums/client-dashboard-component.enum.d.ts +0 -5
  328. package/lib/components/lib-client-dashboard/interfaces/client-dashboard-inputs.interface.d.ts +0 -29
  329. package/lib/components/lib-client-dashboard/lookups/client-dashboard.config.d.ts +0 -2
  330. package/lib/components/lib-compose-matcher-dash/compose-matcher-dash.component.d.ts +0 -48
  331. package/lib/components/lib-compose-matcher-dash/interfaces/chart-data.interface.d.ts +0 -5
  332. package/lib/components/lib-compose-matcher-dash/interfaces/chat-identifier.interface.d.ts +0 -5
  333. package/lib/components/lib-compose-matcher-dash/interfaces/matcher-dashboard-inputs.interface.d.ts +0 -26
  334. package/lib/components/lib-compose-matcher-dash/interfaces/matcher-profile.interface.d.ts +0 -8
  335. package/lib/components/lib-compose-matcher-dash/interfaces/prospect-data.interface.d.ts +0 -24
  336. package/lib/components/lib-compose-matcher-dash/pipes/get-profile-with-progress.pipe.d.ts +0 -9
  337. package/lib/components/matcher-statuses/enums/matcher-statuses.enum.d.ts +0 -13
  338. package/lib/components/matcher-statuses/interfaces/status.interface.d.ts +0 -6
  339. package/lib/components/matcher-statuses/lookups/matcher-statuses.lookup.d.ts +0 -2
  340. package/lib/components/matcher-statuses/matcher-statuses.component.d.ts +0 -23
  341. package/lib/components/matcher-statuses/pipes/is-status-included.pipe.d.ts +0 -8
  342. package/lib/components/profile-card/profile-card.component.d.ts +0 -11
  343. package/lib/components/profile-card/profile-card.module.d.ts +0 -9
  344. package/lib/components/spider-chart/interfaces/chart-data-circle.interface.d.ts +0 -10
  345. package/lib/components/spider-chart/interfaces/chart-data-defs-f.interface.d.ts +0 -11
  346. package/lib/components/spider-chart/interfaces/chart-data-defs-lg.interface.d.ts +0 -11
  347. package/lib/components/spider-chart/interfaces/chart-data-defs-rg.interface.d.ts +0 -10
  348. package/lib/components/spider-chart/interfaces/config.interface.d.ts +0 -19
  349. package/lib/components/spider-chart/interfaces/dataset.interface.d.ts +0 -7
  350. package/lib/components/spider-chart/interfaces/polygon-color.interface.d.ts +0 -4
  351. package/lib/components/spider-chart/interfaces/spider-chart-attribute.interface.d.ts +0 -6
  352. package/lib/components/spider-chart/lookup/default-spider-config.d.ts +0 -2
  353. package/lib/components/spider-chart/lookup/default-spider-config.lookup.d.ts +0 -2
  354. package/lib/components/spider-chart/lookup/demo-polygon-colors.lookup.d.ts +0 -2
  355. package/lib/components/spider-chart/lookup/svg-config.lookup.d.ts +0 -8
  356. package/lib/components/spider-chart/spider-chart.component.d.ts +0 -52
  357. package/lib/enums/direction.enum.d.ts +0 -4
  358. package/lib/enums/form-field-type.d.ts +0 -28
  359. package/lib/enums/local-storage-keys.enum.d.ts +0 -3
  360. package/lib/enums/status-types.d.ts +0 -6
  361. package/lib/model/select-option-template.d.ts +0 -5
  362. package/lib/operations/operations.d.ts +0 -19
  363. package/lib/pipes/array-sort/array.sort.pipe.d.ts +0 -7
  364. package/lib/pipes/count-non-empty-fields/count-non-empty-fields.pipe.d.ts +0 -7
  365. package/lib/pipes/date-localization/date-localization.pipe.d.ts +0 -8
  366. package/lib/pipes/fallback-translate/fallback-translate.pipe.d.ts +0 -11
  367. package/lib/pipes/get-display-value/get-display-value.pipe.d.ts +0 -13
  368. package/lib/pipes/get-multi-select-display-text/get-multi-select-display-text.pipe.d.ts +0 -8
  369. package/lib/pipes/initials/initials.pipe.d.ts +0 -7
  370. package/lib/pipes/round/round.pipe.d.ts +0 -7
  371. package/lib/pipes/update-llm-preference/update-llm-preference.pipe.d.ts +0 -8
  372. package/lib/services/abstract-cache.service.d.ts +0 -9
  373. package/lib/shared/shared/alert-popup/alert-popup.component.d.ts +0 -14
  374. package/lib/shared/shared/message-modal/message-modal.component.d.ts +0 -29
  375. package/lib/shared/shared/status-icon/status-icon.component.d.ts +0 -7
  376. package/lib/shared/shared.module.d.ts +0 -13
  377. package/naniteninja-dashboard-components-lib-1.0.0.tgz +0 -0
  378. package/public-api.d.ts +0 -121
@@ -1,235 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, Input, ViewChild } from '@angular/core';
2
- import * as d3 from 'd3';
3
- import { SharedModule } from '../../shared/shared.module';
4
- import { InitialsPipe } from '../../pipes/initials/initials.pipe';
5
- import { AlertStatusFields } from '../lib-client-dashboard/enums/alert-status-fields.enum';
6
- import { circleData, defsF, defsLG, defsRG } from './lookup/svg-config.lookup';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../shared/shared/alert-popup/alert-popup.component";
9
- export class SpiderChartComponent {
10
- constructor(cdr) {
11
- this.cdr = cdr;
12
- this.datasets = [];
13
- this.polygon_colors = [];
14
- this.showChartInfo = true;
15
- this.alertStatusFields = AlertStatusFields;
16
- this.titleAlertPopup = '';
17
- this.descriptionAlertPopup = '';
18
- this.isAlertPopupClosing = false;
19
- this.timeStateAlertPopup = 0;
20
- this.defsRG = [];
21
- this.defsF = [];
22
- this.defsLG = [];
23
- this.circleData = [];
24
- this.initialsPipe = inject(InitialsPipe);
25
- }
26
- ngOnChanges(changes) {
27
- if ((changes['datasets'] || changes['config']) && this.svg) {
28
- if (this.datasets.length && this.config) {
29
- this.createRadarChart();
30
- }
31
- else if (changes['config']?.currentValue?.['fullScreen'] !== changes['config']?.previousValue?.['fullScreen']) {
32
- this.createRadarChart();
33
- }
34
- }
35
- }
36
- ngAfterViewInit() {
37
- this.defsRG = defsRG;
38
- this.defsF = defsF;
39
- this.defsLG = defsLG;
40
- this.circleData = circleData;
41
- this.initializeChart();
42
- }
43
- ngOnDestroy() {
44
- if (this.svg) {
45
- this.svg.remove();
46
- this.svg = null;
47
- }
48
- }
49
- onClosedAlert(data) {
50
- console.log(data);
51
- }
52
- initializeChart() {
53
- this.svg = this.createSvgObject();
54
- const defsGroup = this.svg.append('g');
55
- this.defsLG.forEach((defData) => {
56
- this.createDefsAndLinearGradient(defsGroup, defData);
57
- });
58
- this.defsF.forEach((defData) => {
59
- this.createDefsAndFilter(defsGroup, defData);
60
- });
61
- this.defsRG.forEach((defData) => {
62
- this.createDefsAndRadialGradient(defsGroup, defData);
63
- });
64
- const circleGroup = this.svg.append('g');
65
- this.createCircle(circleGroup, this.circleData);
66
- if (!this.config)
67
- return;
68
- this.createRadarChart();
69
- }
70
- createSvgObject() {
71
- return d3.select(this.d3Chart?.nativeElement).append('svg').attr('class', 'svg').attr('height', 300).attr('width', 300);
72
- }
73
- createLine(group, data, MaxValue, angleSlice, rScale) {
74
- group.selectAll('line').remove();
75
- return group
76
- .selectAll('line')
77
- .data(data)
78
- .enter()
79
- .append('g')
80
- .append('line')
81
- .attr('class', 'line')
82
- .attr('class', 'line-group')
83
- .attr('x1', 0)
84
- .attr('y1', 0)
85
- .attr('x2', (_d, i) => rScale(MaxValue * 1.4) * Math.cos(angleSlice * i + 0.01 - Math.PI / 2))
86
- .attr('y2', (_d, i) => rScale(MaxValue * 1.4) * Math.sin(angleSlice * i + 0.01 - Math.PI / 2))
87
- .attr('stroke', 'url(#needleRadiant)')
88
- .attr('transform', 'translate(150,150)');
89
- }
90
- createCircle(group, data) {
91
- data?.forEach((datum) => {
92
- const g = group.append('circle');
93
- Object.keys(datum).forEach((key) => {
94
- g.attr(key, datum[key]);
95
- });
96
- });
97
- return group;
98
- }
99
- createText(group, data, rScale, MaxValue, angleSlice) {
100
- const toolTip = d3.select('#tooltip');
101
- group.selectAll('text').remove();
102
- const isFullScreenActive = this.config.fullScreen;
103
- // TODO left based on position of modal
104
- const left = isFullScreenActive ? 0 : 0;
105
- const top = isFullScreenActive ? -80 : -220;
106
- return group
107
- .selectAll('text')
108
- .data(data)
109
- .enter()
110
- .append('text')
111
- .text((d) => this.initialsPipe.transform(d.text))
112
- .attr('x', (_d, i) => {
113
- const x2 = rScale(MaxValue * 1.2) * Math.cos(angleSlice * i + 0.1 - Math.PI / 2);
114
- return x2;
115
- })
116
- .attr('y', (_d, i) => {
117
- const y2 = rScale(MaxValue * 1.2) * Math.sin(angleSlice * i + 0.1 - Math.PI / 2);
118
- return y2;
119
- })
120
- .attr('dy', '0.35em')
121
- .attr('transform', 'translate(150,150)')
122
- .style('fill', '#FE3C72')
123
- .style('text-shadow', '1px 2px 1px #000')
124
- .attr('class', 'line-label')
125
- .on('pointerdown', (event, d) => {
126
- const { titleAlertPopup, descriptionAlertPopup } = d;
127
- this.titleAlertPopup = titleAlertPopup;
128
- this.descriptionAlertPopup = descriptionAlertPopup;
129
- this.isAlertPopupClosing = false;
130
- this.timeStateAlertPopup = new Date().getTime();
131
- this.numberAlertPopup = Math.floor(Math.random() * 10);
132
- this.cdr.detectChanges();
133
- toolTip
134
- .style('display', 'block')
135
- .style('left', event.pageX + left + 'px')
136
- .style('top', event.pageY + top < 0 ? 0 : event.pageY + top + 'px');
137
- })
138
- .on('pointerup', (event, d) => { });
139
- }
140
- createPolygons(group, datasets, rScale, angleSlice) {
141
- group.selectAll('polygon').remove();
142
- group.selectAll('.radarCircle').remove();
143
- const polygonPoints = (data) => {
144
- const points = data?.keys?.map((key, i) => {
145
- const r = rScale(data?.values[key] ?? 1 * 1);
146
- const x = r * Math.cos(angleSlice * i + 0.01 - Math.PI / 2);
147
- const y = r * Math.sin(angleSlice * i + 0.01 - Math.PI / 2);
148
- return `${x},${y}`;
149
- });
150
- return points.join(' ');
151
- };
152
- group
153
- .selectAll('polygon')
154
- .data(datasets)
155
- .enter()
156
- .append('polygon')
157
- .attr('points', (d) => polygonPoints(d ?? {}))
158
- .attr('stroke', (_, i) => _.polygon_color?.value)
159
- .attr('transform', 'translate(150,150)')
160
- .attr('fill', (_, i) => `url(${this.polygon_colors?.[i]?.label})`);
161
- datasets.forEach((data, j) => {
162
- const allValuesAreZero = data.keys.every((key) => data.values[key] === 0);
163
- if (!allValuesAreZero) {
164
- group
165
- .append('g')
166
- .selectAll('circle')
167
- .data(data.keys)
168
- .enter()
169
- .append('circle')
170
- .attr('class', 'radarCircle')
171
- .attr('r', 3)
172
- .attr('cx', (key, i) => rScale(data.values[key] ?? 0) * Math.cos(angleSlice * i - Math.PI / 2))
173
- .attr('cy', (key, i) => rScale(data.values[key] ?? 0) * Math.sin(angleSlice * i - Math.PI / 2))
174
- .style('fill', 'white')
175
- .style('stroke', () => this.polygon_colors?.[j]?.value) // Using stroke colors from the strokeColors array
176
- .attr('transform', 'translate(150,150)')
177
- .attr('filter', 'blur(1px)')
178
- .style('stroke-width', 2)
179
- .style('fill-opacity', 0.8);
180
- }
181
- });
182
- }
183
- createDefsAndLinearGradient(group, data) {
184
- const defs = group.append('defs').append('linearGradient').attr('id', data.id).attr('x1', data.x1).attr('y1', data.y1).attr('x2', data.x2).attr('y2', data.y2);
185
- data.stopTags.forEach((elem) => {
186
- defs.append('stop').attr('offset', elem.offset).attr('style', elem.style);
187
- });
188
- }
189
- createDefsAndFilter(group, data) {
190
- const defs = group.append('defs').append('filter').attr('id', data.id).attr('x', data.x).attr('y', data.y).attr('height', data.height).attr('width', data.width);
191
- data.feGaussianTags.forEach((elem) => {
192
- defs.append('feGaussianBlur').attr('in', elem.in).attr('stdDeviation', elem.stdDeviation);
193
- });
194
- }
195
- createDefsAndRadialGradient(group, data) {
196
- const defs = group.append('defs').append('radialGradient').attr('id', data.id).attr('cx', data.cy).attr('cy', data.cx).attr('r', data.r);
197
- data.stopTags.forEach((elem) => {
198
- defs.append('stop').attr('offset', elem.offset).attr('style', elem.style);
199
- });
200
- }
201
- createRadarChart() {
202
- const { maxValue, datasets, attributes } = this.config;
203
- const allAxis = [...new Set(attributes)].map((i) => i);
204
- const total = allAxis.length;
205
- const angleSlice = (Math.PI * 2) / total;
206
- let MaxValue = datasets.length > 0
207
- ? Math.max(...datasets.reduce((a, i) => {
208
- return [...a, ...Object.values(i.values)];
209
- }, []))
210
- : maxValue;
211
- MaxValue = MaxValue > 0 ? MaxValue : 25;
212
- const rScale = d3.scaleLinear().range([0, 100]).domain([0, MaxValue]);
213
- this.createLine(this.svg, allAxis, MaxValue, angleSlice, rScale);
214
- this.createText(this.svg, allAxis, rScale, MaxValue, angleSlice);
215
- this.createPolygons(this.svg, datasets, rScale, angleSlice);
216
- }
217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
218
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SpiderChartComponent, isStandalone: true, selector: "lib-spider-chart", inputs: { datasets: "datasets", config: "config", polygon_colors: "polygon_colors", showChartInfo: "showChartInfo" }, viewQueries: [{ propertyName: "d3Chart", first: true, predicate: ["D3Chart"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"tooltip\">\r\n <lib-alert-popup [title]=\"titleAlertPopup\" [description]=\"descriptionAlertPopup\" [timeState]=\"timeStateAlertPopup\" [number]=\"numberAlertPopup\"></lib-alert-popup>\r\n</div>\r\n\r\n<div class=\"container\">\r\n <div class=\"d3-container\">\r\n <div class=\"d3-chart\" #D3Chart></div>\r\n @if (showChartInfo) {\r\n <div class=\"chartInfo\">\r\n @if (datasets.length > 0) {\r\n <div class=\"datachart\">\r\n @for (dataset of datasets; let j = $index; track dataset) {\r\n <div class=\"legend-item\">\r\n <div [style.border]=\"'5px solid ' + polygon_colors?.[j]?.value\" [style.boxShadow]=\"'0px 0px 12px ' + polygon_colors?.[j]?.value\" class=\"legend-color\"></div>\r\n {{ dataset.title }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".align-chart{display:flex;justify-content:center;align-items:center}.d3-container{width:100%;position:relative;min-height:300px;display:flex;align-items:center;transition:all .5s ease}.d3-chart{width:100%;height:clamp(300px,30vh,400px);display:flex;justify-content:center;align-items:center;transition:all .5s ease}.chartInfo{margin-top:20px}.datachart{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;padding:4px}.legend-color{width:15px;height:15px;border-radius:50%;background-color:#fff}#tooltip{position:absolute;display:none;z-index:1000}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1.AlertPopupComponent, selector: "lib-alert-popup", inputs: ["title", "description", "timeState", "number"], outputs: ["closed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
219
- }
220
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SpiderChartComponent, decorators: [{
221
- type: Component,
222
- args: [{ selector: 'lib-spider-chart', standalone: true, imports: [SharedModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div id=\"tooltip\">\r\n <lib-alert-popup [title]=\"titleAlertPopup\" [description]=\"descriptionAlertPopup\" [timeState]=\"timeStateAlertPopup\" [number]=\"numberAlertPopup\"></lib-alert-popup>\r\n</div>\r\n\r\n<div class=\"container\">\r\n <div class=\"d3-container\">\r\n <div class=\"d3-chart\" #D3Chart></div>\r\n @if (showChartInfo) {\r\n <div class=\"chartInfo\">\r\n @if (datasets.length > 0) {\r\n <div class=\"datachart\">\r\n @for (dataset of datasets; let j = $index; track dataset) {\r\n <div class=\"legend-item\">\r\n <div [style.border]=\"'5px solid ' + polygon_colors?.[j]?.value\" [style.boxShadow]=\"'0px 0px 12px ' + polygon_colors?.[j]?.value\" class=\"legend-color\"></div>\r\n {{ dataset.title }}\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n }\r\n </div>\r\n</div>\r\n", styles: [".align-chart{display:flex;justify-content:center;align-items:center}.d3-container{width:100%;position:relative;min-height:300px;display:flex;align-items:center;transition:all .5s ease}.d3-chart{width:100%;height:clamp(300px,30vh,400px);display:flex;justify-content:center;align-items:center;transition:all .5s ease}.chartInfo{margin-top:20px}.datachart{display:flex;flex-wrap:wrap;gap:10px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;padding:4px}.legend-color{width:15px;height:15px;border-radius:50%;background-color:#fff}#tooltip{position:absolute;display:none;z-index:1000}\n"] }]
223
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { d3Chart: [{
224
- type: ViewChild,
225
- args: ['D3Chart']
226
- }], datasets: [{
227
- type: Input
228
- }], config: [{
229
- type: Input
230
- }], polygon_colors: [{
231
- type: Input
232
- }], showChartInfo: [{
233
- type: Input
234
- }] } });
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BpZGVyLWNoYXJ0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvc3BpZGVyLWNoYXJ0L3NwaWRlci1jaGFydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9jb21wb25lbnRzL3NwaWRlci1jaGFydC9zcGlkZXItY2hhcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBcUIsU0FBUyxFQUFjLE1BQU0sRUFBRSxLQUFLLEVBQXVDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoTCxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBUzNGLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBVS9FLE1BQU0sT0FBTyxvQkFBb0I7SUFxQi9CLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkJqQyxhQUFRLEdBQWUsRUFBRSxDQUFDO1FBRTFCLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUNyQyxrQkFBYSxHQUFZLElBQUksQ0FBQztRQUVoQyxzQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztRQUN0QyxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQiwwQkFBcUIsR0FBRyxFQUFFLENBQUM7UUFDM0Isd0JBQW1C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QUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDOUQsQ0FBQzsrR0E1UFUsb0JBQW9CO21HQUFwQixvQkFBb0IsMlRDdkJqQyxpNkJBdUJBLG1wQkRIWSxZQUFZOzs0RkFHWCxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFDTix1QkFBdUIsQ0FBQyxNQUFNO3NGQUd6QixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ1gsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgZDMgZnJvbSAnZDMnO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XHJcbmltcG9ydCB7IEluaXRpYWxzUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2luaXRpYWxzL2luaXRpYWxzLnBpcGUnO1xyXG5pbXBvcnQgeyBBbGVydFN0YXR1c0ZpZWxkcyB9IGZyb20gJy4uL2xpYi1jbGllbnQtZGFzaGJvYXJkL2VudW1zL2FsZXJ0LXN0YXR1cy1maWVsZHMuZW51bSc7XHJcbmltcG9ydCB7IElDaXJjbGVEYXRhIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NoYXJ0LWRhdGEtY2lyY2xlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElEZWZzRiB9IGZyb20gJy4vaW50ZXJmYWNlcy9jaGFydC1kYXRhLWRlZnMtZi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJRGVmc0xHIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NoYXJ0LWRhdGEtZGVmcy1sZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJRGVmc1JHIH0gZnJvbSAnLi9pbnRlcmZhY2VzL2NoYXJ0LWRhdGEtZGVmcy1yZy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBJU3BpZGVyQ2hhcnRDb25maWcgfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElEYXRhc2V0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2RhdGFzZXQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSVBvbHlnb25Db2xvciB9IGZyb20gJy4vaW50ZXJmYWNlcy9wb2x5Z29uLWNvbG9yLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElTcGlkZXJDaGFydEF0dHJpYnV0ZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9zcGlkZXItY2hhcnQtYXR0cmlidXRlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IGNpcmNsZURhdGEsIGRlZnNGLCBkZWZzTEcsIGRlZnNSRyB9IGZyb20gJy4vbG9va3VwL3N2Zy1jb25maWcubG9va3VwJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXNwaWRlci1jaGFydCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3NwaWRlci1jaGFydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3NwaWRlci1jaGFydC5jb21wb25lbnQuc2NzcycsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNwaWRlckNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBWaWV3Q2hpbGQoJ0QzQ2hhcnQnKSBkM0NoYXJ0OiBFbGVtZW50UmVmO1xyXG4gIEBJbnB1dCgpIGRhdGFzZXRzOiBJRGF0YXNldFtdID0gW107XHJcbiAgQElucHV0KCkgY29uZmlnOiBJU3BpZGVyQ2hhcnRDb25maWc7XHJcbiAgQElucHV0KCkgcG9seWdvbl9jb2xvcnM6IElQb2x5Z29uQ29sb3JbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHNob3dDaGFydEluZm86IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBwdWJsaWMgYWxlcnRTdGF0dXNGaWVsZHMgPSBBbGVydFN0YXR1c0ZpZWxkcztcclxuICBwdWJsaWMgdGl0bGVBbGVydFBvcHVwID0gJyc7XHJcbiAgcHVibGljIGRlc2NyaXB0aW9uQWxlcnRQb3B1cCA9ICcnO1xyXG4gIHB1YmxpYyBpc0FsZXJ0UG9wdXBDbG9zaW5nID0gZmFsc2U7XHJcbiAgcHVibGljIHRpbWVTdGF0ZUFsZXJ0UG9wdXAgPSAwO1xyXG4gIHB1YmxpYyBudW1iZXJBbGVydFBvcHVwOiBudW1iZXI7XHJcblxyXG4gIHB1YmxpYyBzdmc6IGQzLlNlbGVjdGlvbjxTVkdTVkdFbGVtZW50LCB1bmtub3duLCBIVE1MRWxlbWVudCwgdW5rbm93bj47XHJcbiAgcHVibGljIGRlZnNSRzogSURlZnNSR1tdID0gW107XHJcbiAgcHVibGljIGRlZnNGOiBJRGVmc0ZbXSA9IFtdO1xyXG4gIHB1YmxpYyBkZWZzTEc6IElEZWZzTEdbXSA9IFtdO1xyXG4gIHB1YmxpYyBjaXJjbGVEYXRhOiBJQ2lyY2xlRGF0YVtdID0gW107XHJcbiAgcHVibGljIHJlYWRvbmx5IGluaXRpYWxzUGlwZTogSW5pdGlhbHNQaXBlID0gaW5qZWN0KEluaXRpYWxzUGlwZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKChjaGFuZ2VzWydkYXRhc2V0cyddIHx8IGNoYW5nZXNbJ2NvbmZpZyddKSAmJiB0aGlzLnN2Zykge1xyXG4gICAgICBpZiAodGhpcy5kYXRhc2V0cy5sZW5ndGggJiYgdGhpcy5jb25maWcpIHtcclxuICAgICAgICB0aGlzLmNyZWF0ZVJhZGFyQ2hhcnQoKTtcclxuICAgICAgfSBlbHNlIGlmIChjaGFuZ2VzWydjb25maWcnXT8uY3VycmVudFZhbHVlPy5bJ2Z1bGxTY3JlZW4nXSAhPT0gY2hhbmdlc1snY29uZmlnJ10/LnByZXZpb3VzVmFsdWU/LlsnZnVsbFNjcmVlbiddKSB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGVSYWRhckNoYXJ0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVmc1JHID0gZGVmc1JHO1xyXG4gICAgdGhpcy5kZWZzRiA9IGRlZnNGO1xyXG4gICAgdGhpcy5kZWZzTEcgPSBkZWZzTEc7XHJcbiAgICB0aGlzLmNpcmNsZURhdGEgPSBjaXJjbGVEYXRhO1xyXG4gICAgdGhpcy5pbml0aWFsaXplQ2hhcnQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3ZnKSB7XHJcbiAgICAgIHRoaXMuc3ZnLnJlbW92ZSgpO1xyXG4gICAgICB0aGlzLnN2ZyA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DbG9zZWRBbGVydChkYXRhOiB7IGV2ZW50OiBib29sZWFuOyBmaWVsZDogQWxlcnRTdGF0dXNGaWVsZHMgfSk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coZGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRpYWxpemVDaGFydCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3ZnID0gdGhpcy5jcmVhdGVTdmdPYmplY3QoKTtcclxuICAgIGNvbnN0IGRlZnNHcm91cCA9IHRoaXMuc3ZnLmFwcGVuZCgnZycpO1xyXG5cclxuICAgIHRoaXMuZGVmc0xHLmZvckVhY2goKGRlZkRhdGEpID0+IHtcclxuICAgICAgdGhpcy5jcmVhdGVEZWZzQW5kTGluZWFyR3JhZGllbnQoZGVmc0dyb3VwLCBkZWZEYXRhKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGVmc0YuZm9yRWFjaCgoZGVmRGF0YSkgPT4ge1xyXG4gICAgICB0aGlzLmNyZWF0ZURlZnNBbmRGaWx0ZXIoZGVmc0dyb3VwLCBkZWZEYXRhKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZGVmc1JHLmZvckVhY2goKGRlZkRhdGEpID0+IHtcclxuICAgICAgdGhpcy5jcmVhdGVEZWZzQW5kUmFkaWFsR3JhZGllbnQoZGVmc0dyb3VwLCBkZWZEYXRhKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IGNpcmNsZUdyb3VwID0gdGhpcy5zdmcuYXBwZW5kKCdnJyk7XHJcbiAgICB0aGlzLmNyZWF0ZUNpcmNsZShjaXJjbGVHcm91cCwgdGhpcy5jaXJjbGVEYXRhKTtcclxuICAgIGlmICghdGhpcy5jb25maWcpIHJldHVybjtcclxuICAgIHRoaXMuY3JlYXRlUmFkYXJDaGFydCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTdmdPYmplY3QoKTogZDMuU2VsZWN0aW9uPFNWR1NWR0VsZW1lbnQsIHVua25vd24sIEhUTUxFbGVtZW50LCB1bmtub3duPiB7XHJcbiAgICByZXR1cm4gZDMuc2VsZWN0KHRoaXMuZDNDaGFydD8ubmF0aXZlRWxlbWVudCkuYXBwZW5kKCdzdmcnKS5hdHRyKCdjbGFzcycsICdzdmcnKS5hdHRyKCdoZWlnaHQnLCAzMDApLmF0dHIoJ3dpZHRoJywgMzAwKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTGluZShcclxuICAgIGdyb3VwOiBkMy5TZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIEhUTUxFbGVtZW50LCB1bmtub3duPixcclxuICAgIGRhdGE6IElTcGlkZXJDaGFydEF0dHJpYnV0ZVtdLFxyXG4gICAgTWF4VmFsdWU6IG51bWJlcixcclxuICAgIGFuZ2xlU2xpY2U6IG51bWJlcixcclxuICAgIHJTY2FsZTogZDMuU2NhbGVMaW5lYXI8bnVtYmVyLCBudW1iZXI+LFxyXG4gICk6IHZvaWQge1xyXG4gICAgZ3JvdXAuc2VsZWN0QWxsKCdsaW5lJykucmVtb3ZlKCk7XHJcbiAgICByZXR1cm4gZ3JvdXBcclxuICAgICAgLnNlbGVjdEFsbCgnbGluZScpXHJcbiAgICAgIC5kYXRhKGRhdGEpXHJcbiAgICAgIC5lbnRlcigpXHJcbiAgICAgIC5hcHBlbmQoJ2cnKVxyXG4gICAgICAuYXBwZW5kKCdsaW5lJylcclxuICAgICAgLmF0dHIoJ2NsYXNzJywgJ2xpbmUnKVxyXG4gICAgICAuYXR0cignY2xhc3MnLCAnbGluZS1ncm91cCcpXHJcbiAgICAgIC5hdHRyKCd4MScsIDApXHJcbiAgICAgIC5hdHRyKCd5MScsIDApXHJcbiAgICAgIC5hdHRyKCd4MicsIChfZCwgaSkgPT4gclNjYWxlKE1heFZhbHVlICogMS40KSAqIE1hdGguY29zKGFuZ2xlU2xpY2UgKiBpICsgMC4wMSAtIE1hdGguUEkgLyAyKSlcclxuICAgICAgLmF0dHIoJ3kyJywgKF9kLCBpKSA9PiByU2NhbGUoTWF4VmFsdWUgKiAxLjQpICogTWF0aC5zaW4oYW5nbGVTbGljZSAqIGkgKyAwLjAxIC0gTWF0aC5QSSAvIDIpKVxyXG4gICAgICAuYXR0cignc3Ryb2tlJywgJ3VybCgjbmVlZGxlUmFkaWFudCknKVxyXG4gICAgICAuYXR0cigndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgxNTAsMTUwKScpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDaXJjbGUoZ3JvdXA6IGQzLlNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+LCBkYXRhOiBJQ2lyY2xlRGF0YVtdKTogdm9pZCB7XHJcbiAgICBkYXRhPy5mb3JFYWNoKChkYXR1bSkgPT4ge1xyXG4gICAgICBjb25zdCBnID0gZ3JvdXAuYXBwZW5kKCdjaXJjbGUnKTtcclxuICAgICAgT2JqZWN0LmtleXMoZGF0dW0pLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgIGcuYXR0cihrZXksIGRhdHVtW2tleV0pO1xyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGdyb3VwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUZXh0KFxyXG4gICAgZ3JvdXA6IGQzLlNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+LFxyXG4gICAgZGF0YTogSVNwaWRlckNoYXJ0QXR0cmlidXRlW10sXHJcbiAgICByU2NhbGU6IGQzLlNjYWxlTGluZWFyPG51bWJlciwgbnVtYmVyPixcclxuICAgIE1heFZhbHVlOiBudW1iZXIsXHJcbiAgICBhbmdsZVNsaWNlOiBudW1iZXIsXHJcbiAgKSB7XHJcbiAgICBjb25zdCB0b29sVGlwID0gZDMuc2VsZWN0KCcjdG9vbHRpcCcpO1xyXG4gICAgZ3JvdXAuc2VsZWN0QWxsKCd0ZXh0JykucmVtb3ZlKCk7XHJcblxyXG4gICAgY29uc3QgaXNGdWxsU2NyZWVuQWN0aXZlOiBib29sZWFuID0gdGhpcy5jb25maWcuZnVsbFNjcmVlbjtcclxuXHJcbiAgICAvLyBUT0RPIGxlZnQgYmFzZWQgb24gcG9zaXRpb24gb2YgbW9kYWxcclxuICAgIGNvbnN0IGxlZnQgPSBpc0Z1bGxTY3JlZW5BY3RpdmUgPyAwIDogMDtcclxuICAgIGNvbnN0IHRvcCA9IGlzRnVsbFNjcmVlbkFjdGl2ZSA/IC04MCA6IC0yMjA7XHJcbiAgICByZXR1cm4gZ3JvdXBcclxuICAgICAgLnNlbGVjdEFsbCgndGV4dCcpXHJcbiAgICAgIC5kYXRhKGRhdGEpXHJcbiAgICAgIC5lbnRlcigpXHJcbiAgICAgIC5hcHBlbmQoJ3RleHQnKVxyXG4gICAgICAudGV4dCgoZCkgPT4gdGhpcy5pbml0aWFsc1BpcGUudHJhbnNmb3JtKGQudGV4dCkpXHJcbiAgICAgIC5hdHRyKCd4JywgKF9kLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeDIgPSByU2NhbGUoTWF4VmFsdWUgKiAxLjIpICogTWF0aC5jb3MoYW5nbGVTbGljZSAqIGkgKyAwLjEgLSBNYXRoLlBJIC8gMik7XHJcbiAgICAgICAgcmV0dXJuIHgyO1xyXG4gICAgICB9KVxyXG4gICAgICAuYXR0cigneScsIChfZCwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHkyID0gclNjYWxlKE1heFZhbHVlICogMS4yKSAqIE1hdGguc2luKGFuZ2xlU2xpY2UgKiBpICsgMC4xIC0gTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgIHJldHVybiB5MjtcclxuICAgICAgfSlcclxuICAgICAgLmF0dHIoJ2R5JywgJzAuMzVlbScpXHJcbiAgICAgIC5hdHRyKCd0cmFuc2Zvcm0nLCAndHJhbnNsYXRlKDE1MCwxNTApJylcclxuICAgICAgLnN0eWxlKCdmaWxsJywgJyNGRTNDNzInKVxyXG4gICAgICAuc3R5bGUoJ3RleHQtc2hhZG93JywgJzFweCAycHggMXB4ICMwMDAnKVxyXG4gICAgICAuYXR0cignY2xhc3MnLCAnbGluZS1sYWJlbCcpXHJcbiAgICAgIC5vbigncG9pbnRlcmRvd24nLCAoZXZlbnQsIGQ6IElTcGlkZXJDaGFydEF0dHJpYnV0ZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgdGl0bGVBbGVydFBvcHVwLCBkZXNjcmlwdGlvbkFsZXJ0UG9wdXAgfSA9IGQ7XHJcbiAgICAgICAgdGhpcy50aXRsZUFsZXJ0UG9wdXAgPSB0aXRsZUFsZXJ0UG9wdXA7XHJcbiAgICAgICAgdGhpcy5kZXNjcmlwdGlvbkFsZXJ0UG9wdXAgPSBkZXNjcmlwdGlvbkFsZXJ0UG9wdXA7XHJcbiAgICAgICAgdGhpcy5pc0FsZXJ0UG9wdXBDbG9zaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW1lU3RhdGVBbGVydFBvcHVwID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICAgICAgdGhpcy5udW1iZXJBbGVydFBvcHVwID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0b29sVGlwXHJcbiAgICAgICAgICAuc3R5bGUoJ2Rpc3BsYXknLCAnYmxvY2snKVxyXG4gICAgICAgICAgLnN0eWxlKCdsZWZ0JywgZXZlbnQucGFnZVggKyBsZWZ0ICsgJ3B4JylcclxuICAgICAgICAgIC5zdHlsZSgndG9wJywgZXZlbnQucGFnZVkgKyB0b3AgPCAwID8gMCA6IGV2ZW50LnBhZ2VZICsgdG9wICsgJ3B4Jyk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5vbigncG9pbnRlcnVwJywgKGV2ZW50LCBkOiBJU3BpZGVyQ2hhcnRBdHRyaWJ1dGUpID0+IHt9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUG9seWdvbnMoZ3JvdXA6IGQzLlNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+LCBkYXRhc2V0czogSURhdGFzZXRbXSwgclNjYWxlOiBkMy5TY2FsZUxpbmVhcjxudW1iZXIsIG51bWJlcj4sIGFuZ2xlU2xpY2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgZ3JvdXAuc2VsZWN0QWxsKCdwb2x5Z29uJykucmVtb3ZlKCk7XHJcbiAgICBncm91cC5zZWxlY3RBbGwoJy5yYWRhckNpcmNsZScpLnJlbW92ZSgpO1xyXG5cclxuICAgIGNvbnN0IHBvbHlnb25Qb2ludHMgPSAoZGF0YSkgPT4ge1xyXG4gICAgICBjb25zdCBwb2ludHMgPSBkYXRhPy5rZXlzPy5tYXAoKGtleSwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHIgPSByU2NhbGUoZGF0YT8udmFsdWVzW2tleV0gPz8gMSAqIDEpO1xyXG4gICAgICAgIGNvbnN0IHggPSByICogTWF0aC5jb3MoYW5nbGVTbGljZSAqIGkgKyAwLjAxIC0gTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgIGNvbnN0IHkgPSByICogTWF0aC5zaW4oYW5nbGVTbGljZSAqIGkgKyAwLjAxIC0gTWF0aC5QSSAvIDIpO1xyXG4gICAgICAgIHJldHVybiBgJHt4fSwke3l9YDtcclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBwb2ludHMuam9pbignICcpO1xyXG4gICAgfTtcclxuICAgIGdyb3VwXHJcbiAgICAgIC5zZWxlY3RBbGwoJ3BvbHlnb24nKVxyXG4gICAgICAuZGF0YShkYXRhc2V0cylcclxuICAgICAgLmVudGVyKClcclxuICAgICAgLmFwcGVuZCgncG9seWdvbicpXHJcbiAgICAgIC5hdHRyKCdwb2ludHMnLCAoZCkgPT4gcG9seWdvblBvaW50cyhkID8/IHt9KSlcclxuICAgICAgLmF0dHIoJ3N0cm9rZScsIChfLCBpKSA9PiBfLnBvbHlnb25fY29sb3I/LnZhbHVlKVxyXG4gICAgICAuYXR0cigndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgxNTAsMTUwKScpXHJcblxyXG4gICAgICAuYXR0cignZmlsbCcsIChfLCBpKSA9PiBgdXJsKCR7dGhpcy5wb2x5Z29uX2NvbG9ycz8uW2ldPy5sYWJlbH0pYCk7XHJcbiAgICBkYXRhc2V0cy5mb3JFYWNoKChkYXRhLCBqKSA9PiB7XHJcbiAgICAgIGNvbnN0IGFsbFZhbHVlc0FyZVplcm8gPSBkYXRhLmtleXMuZXZlcnkoKGtleSkgPT4gZGF0YS52YWx1ZXNba2V5XSA9PT0gMCk7XHJcbiAgICAgIGlmICghYWxsVmFsdWVzQXJlWmVybykge1xyXG4gICAgICAgIGdyb3VwXHJcbiAgICAgICAgICAuYXBwZW5kKCdnJylcclxuICAgICAgICAgIC5zZWxlY3RBbGwoJ2NpcmNsZScpXHJcbiAgICAgICAgICAuZGF0YShkYXRhLmtleXMpXHJcbiAgICAgICAgICAuZW50ZXIoKVxyXG4gICAgICAgICAgLmFwcGVuZCgnY2lyY2xlJylcclxuICAgICAgICAgIC5hdHRyKCdjbGFzcycsICdyYWRhckNpcmNsZScpXHJcbiAgICAgICAgICAuYXR0cigncicsIDMpXHJcbiAgICAgICAgICAuYXR0cignY3gnLCAoa2V5LCBpKSA9PiByU2NhbGUoZGF0YS52YWx1ZXNba2V5XSA/PyAwKSAqIE1hdGguY29zKGFuZ2xlU2xpY2UgKiBpIC0gTWF0aC5QSSAvIDIpKVxyXG4gICAgICAgICAgLmF0dHIoJ2N5JywgKGtleSwgaSkgPT4gclNjYWxlKGRhdGEudmFsdWVzW2tleV0gPz8gMCkgKiBNYXRoLnNpbihhbmdsZVNsaWNlICogaSAtIE1hdGguUEkgLyAyKSlcclxuICAgICAgICAgIC5zdHlsZSgnZmlsbCcsICd3aGl0ZScpXHJcbiAgICAgICAgICAuc3R5bGUoJ3N0cm9rZScsICgpID0+IHRoaXMucG9seWdvbl9jb2xvcnM/LltqXT8udmFsdWUpIC8vIFVzaW5nIHN0cm9rZSBjb2xvcnMgZnJvbSB0aGUgc3Ryb2tlQ29sb3JzIGFycmF5XHJcbiAgICAgICAgICAuYXR0cigndHJhbnNmb3JtJywgJ3RyYW5zbGF0ZSgxNTAsMTUwKScpXHJcbiAgICAgICAgICAuYXR0cignZmlsdGVyJywgJ2JsdXIoMXB4KScpXHJcbiAgICAgICAgICAuc3R5bGUoJ3N0cm9rZS13aWR0aCcsIDIpXHJcbiAgICAgICAgICAuc3R5bGUoJ2ZpbGwtb3BhY2l0eScsIDAuOCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVEZWZzQW5kTGluZWFyR3JhZGllbnQoZ3JvdXA6IGQzLlNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+LCBkYXRhOiBJRGVmc0xHKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWZzID0gZ3JvdXAuYXBwZW5kKCdkZWZzJykuYXBwZW5kKCdsaW5lYXJHcmFkaWVudCcpLmF0dHIoJ2lkJywgZGF0YS5pZCkuYXR0cigneDEnLCBkYXRhLngxKS5hdHRyKCd5MScsIGRhdGEueTEpLmF0dHIoJ3gyJywgZGF0YS54MikuYXR0cigneTInLCBkYXRhLnkyKTtcclxuXHJcbiAgICBkYXRhLnN0b3BUYWdzLmZvckVhY2goKGVsZW0pID0+IHtcclxuICAgICAgZGVmcy5hcHBlbmQoJ3N0b3AnKS5hdHRyKCdvZmZzZXQnLCBlbGVtLm9mZnNldCkuYXR0cignc3R5bGUnLCBlbGVtLnN0eWxlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVEZWZzQW5kRmlsdGVyKGdyb3VwOiBkMy5TZWxlY3Rpb248U1ZHR0VsZW1lbnQsIHVua25vd24sIEhUTUxFbGVtZW50LCB1bmtub3duPiwgZGF0YTogSURlZnNGKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWZzID0gZ3JvdXAuYXBwZW5kKCdkZWZzJykuYXBwZW5kKCdmaWx0ZXInKS5hdHRyKCdpZCcsIGRhdGEuaWQpLmF0dHIoJ3gnLCBkYXRhLngpLmF0dHIoJ3knLCBkYXRhLnkpLmF0dHIoJ2hlaWdodCcsIGRhdGEuaGVpZ2h0KS5hdHRyKCd3aWR0aCcsIGRhdGEud2lkdGgpO1xyXG5cclxuICAgIGRhdGEuZmVHYXVzc2lhblRhZ3MuZm9yRWFjaCgoZWxlbSkgPT4ge1xyXG4gICAgICBkZWZzLmFwcGVuZCgnZmVHYXVzc2lhbkJsdXInKS5hdHRyKCdpbicsIGVsZW0uaW4pLmF0dHIoJ3N0ZERldmlhdGlvbicsIGVsZW0uc3RkRGV2aWF0aW9uKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVEZWZzQW5kUmFkaWFsR3JhZGllbnQoZ3JvdXA6IGQzLlNlbGVjdGlvbjxTVkdHRWxlbWVudCwgdW5rbm93biwgSFRNTEVsZW1lbnQsIHVua25vd24+LCBkYXRhOiBJRGVmc1JHKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZWZzID0gZ3JvdXAuYXBwZW5kKCdkZWZzJykuYXBwZW5kKCdyYWRpYWxHcmFkaWVudCcpLmF0dHIoJ2lkJywgZGF0YS5pZCkuYXR0cignY3gnLCBkYXRhLmN5KS5hdHRyKCdjeScsIGRhdGEuY3gpLmF0dHIoJ3InLCBkYXRhLnIpO1xyXG5cclxuICAgIGRhdGEuc3RvcFRhZ3MuZm9yRWFjaCgoZWxlbSkgPT4ge1xyXG4gICAgICBkZWZzLmFwcGVuZCgnc3RvcCcpLmF0dHIoJ29mZnNldCcsIGVsZW0ub2Zmc2V0KS5hdHRyKCdzdHlsZScsIGVsZW0uc3R5bGUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZVJhZGFyQ2hhcnQoKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IG1heFZhbHVlLCBkYXRhc2V0cywgYXR0cmlidXRlcyB9ID0gdGhpcy5jb25maWc7XHJcbiAgICBjb25zdCBhbGxBeGlzID0gWy4uLm5ldyBTZXQoYXR0cmlidXRlcyldLm1hcCgoaSkgPT4gaSk7XHJcbiAgICBjb25zdCB0b3RhbCA9IGFsbEF4aXMubGVuZ3RoO1xyXG4gICAgY29uc3QgYW5nbGVTbGljZSA9IChNYXRoLlBJICogMikgLyB0b3RhbDtcclxuICAgIGxldCBNYXhWYWx1ZSA9XHJcbiAgICAgIGRhdGFzZXRzLmxlbmd0aCA+IDBcclxuICAgICAgICA/IE1hdGgubWF4KFxyXG4gICAgICAgICAgICAuLi5kYXRhc2V0cy5yZWR1Y2UoKGEsIGkpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gWy4uLmEsIC4uLk9iamVjdC52YWx1ZXMoaS52YWx1ZXMpXTtcclxuICAgICAgICAgICAgfSwgW10pLFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogbWF4VmFsdWU7XHJcbiAgICBNYXhWYWx1ZSA9IE1heFZhbHVlID4gMCA/IE1heFZhbHVlIDogMjU7XHJcblxyXG4gICAgY29uc3QgclNjYWxlID0gZDMuc2NhbGVMaW5lYXIoKS5yYW5nZShbMCwgMTAwXSkuZG9tYWluKFswLCBNYXhWYWx1ZV0pO1xyXG5cclxuICAgIHRoaXMuY3JlYXRlTGluZSh0aGlzLnN2ZywgYWxsQXhpcywgTWF4VmFsdWUsIGFuZ2xlU2xpY2UsIHJTY2FsZSk7XHJcbiAgICB0aGlzLmNyZWF0ZVRleHQodGhpcy5zdmcsIGFsbEF4aXMsIHJTY2FsZSwgTWF4VmFsdWUsIGFuZ2xlU2xpY2UpO1xyXG4gICAgdGhpcy5jcmVhdGVQb2x5Z29ucyh0aGlzLnN2ZywgZGF0YXNldHMsIHJTY2FsZSwgYW5nbGVTbGljZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ0b29sdGlwXCI+XHJcbiAgPGxpYi1hbGVydC1wb3B1cCBbdGl0bGVdPVwidGl0bGVBbGVydFBvcHVwXCIgW2Rlc2NyaXB0aW9uXT1cImRlc2NyaXB0aW9uQWxlcnRQb3B1cFwiIFt0aW1lU3RhdGVdPVwidGltZVN0YXRlQWxlcnRQb3B1cFwiIFtudW1iZXJdPVwibnVtYmVyQWxlcnRQb3B1cFwiPjwvbGliLWFsZXJ0LXBvcHVwPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwiZDMtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZDMtY2hhcnRcIiAjRDNDaGFydD48L2Rpdj5cclxuICAgIEBpZiAoc2hvd0NoYXJ0SW5mbykge1xyXG4gICAgICA8ZGl2IGNsYXNzPVwiY2hhcnRJbmZvXCI+XHJcbiAgICAgICAgQGlmIChkYXRhc2V0cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGF0YWNoYXJ0XCI+XHJcbiAgICAgICAgICAgIEBmb3IgKGRhdGFzZXQgb2YgZGF0YXNldHM7IGxldCBqID0gJGluZGV4OyB0cmFjayBkYXRhc2V0KSB7XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZ2VuZC1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtzdHlsZS5ib3JkZXJdPVwiJzVweCBzb2xpZCAnICsgcG9seWdvbl9jb2xvcnM/LltqXT8udmFsdWVcIiBbc3R5bGUuYm94U2hhZG93XT1cIicwcHggMHB4IDEycHggJyArIHBvbHlnb25fY29sb3JzPy5bal0/LnZhbHVlXCIgY2xhc3M9XCJsZWdlbmQtY29sb3JcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIHt7IGRhdGFzZXQudGl0bGUgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIH1cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -1,6 +0,0 @@
1
- export var Direction;
2
- (function (Direction) {
3
- Direction["horizontal"] = "horizontal";
4
- Direction["vertical"] = "vertical";
5
- })(Direction || (Direction = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9uLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9lbnVtcy9kaXJlY3Rpb24uZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLHNDQUF5QixDQUFBO0lBQ3pCLGtDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XHJcbiAgaG9yaXpvbnRhbCA9ICdob3Jpem9udGFsJyxcclxuICB2ZXJ0aWNhbCA9ICd2ZXJ0aWNhbCcsXHJcbn1cclxuIl19
@@ -1,30 +0,0 @@
1
- export var FormFieldType;
2
- (function (FormFieldType) {
3
- FormFieldType["date"] = "date";
4
- FormFieldType["text"] = "text";
5
- FormFieldType["textarea"] = "textarea";
6
- FormFieldType["typeahead"] = "typeahead";
7
- FormFieldType["multiselect"] = "multiselect";
8
- FormFieldType["select"] = "select";
9
- FormFieldType["checkbox"] = "checkbox";
10
- FormFieldType["toggle"] = "toggle";
11
- FormFieldType["radio"] = "radio";
12
- FormFieldType["textlist"] = "textlist";
13
- FormFieldType["number"] = "number";
14
- FormFieldType["message"] = "message";
15
- FormFieldType["time"] = "time";
16
- FormFieldType["multifield"] = "multifield";
17
- FormFieldType["action"] = "action";
18
- FormFieldType["currency"] = "currency";
19
- FormFieldType["banner"] = "banner";
20
- FormFieldType["percentage"] = "percentage";
21
- FormFieldType["multiselectdropdown"] = "multiselectdropdown";
22
- FormFieldType["hyperlink"] = "hyperlink";
23
- FormFieldType["injectable"] = "injectable";
24
- FormFieldType["datetime"] = "datetime";
25
- FormFieldType["rating"] = "rating";
26
- FormFieldType["incrementer"] = "incrementer";
27
- FormFieldType["range"] = "range";
28
- FormFieldType["password"] = "password";
29
- })(FormFieldType || (FormFieldType = {}));
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvZW51bXMvZm9ybS1maWVsZC10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGFBMkJYO0FBM0JELFdBQVksYUFBYTtJQUN2Qiw4QkFBYSxDQUFBO0lBQ2IsOEJBQWEsQ0FBQTtJQUNiLHNDQUFxQixDQUFBO0lBQ3JCLHdDQUF1QixDQUFBO0lBQ3ZCLDRDQUEyQixDQUFBO0lBQzNCLGtDQUFpQixDQUFBO0lBQ2pCLHNDQUFxQixDQUFBO0lBQ3JCLGtDQUFpQixDQUFBO0lBQ2pCLGdDQUFlLENBQUE7SUFDZixzQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBaUIsQ0FBQTtJQUNqQixvQ0FBbUIsQ0FBQTtJQUNuQiw4QkFBYSxDQUFBO0lBQ2IsMENBQXlCLENBQUE7SUFDekIsa0NBQWlCLENBQUE7SUFDakIsc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsMENBQXlCLENBQUE7SUFDekIsNERBQTJDLENBQUE7SUFDM0Msd0NBQXVCLENBQUE7SUFDdkIsMENBQXlCLENBQUE7SUFDekIsc0NBQXFCLENBQUE7SUFDckIsa0NBQWlCLENBQUE7SUFDakIsNENBQTJCLENBQUE7SUFDM0IsZ0NBQWUsQ0FBQTtJQUNmLHNDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUEzQlcsYUFBYSxLQUFiLGFBQWEsUUEyQnhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRm9ybUZpZWxkVHlwZSB7XHJcbiAgZGF0ZSA9ICdkYXRlJyxcclxuICB0ZXh0ID0gJ3RleHQnLFxyXG4gIHRleHRhcmVhID0gJ3RleHRhcmVhJyxcclxuICB0eXBlYWhlYWQgPSAndHlwZWFoZWFkJyxcclxuICBtdWx0aXNlbGVjdCA9ICdtdWx0aXNlbGVjdCcsXHJcbiAgc2VsZWN0ID0gJ3NlbGVjdCcsXHJcbiAgY2hlY2tib3ggPSAnY2hlY2tib3gnLFxyXG4gIHRvZ2dsZSA9ICd0b2dnbGUnLFxyXG4gIHJhZGlvID0gJ3JhZGlvJyxcclxuICB0ZXh0bGlzdCA9ICd0ZXh0bGlzdCcsXHJcbiAgbnVtYmVyID0gJ251bWJlcicsXHJcbiAgbWVzc2FnZSA9ICdtZXNzYWdlJyxcclxuICB0aW1lID0gJ3RpbWUnLFxyXG4gIG11bHRpZmllbGQgPSAnbXVsdGlmaWVsZCcsXHJcbiAgYWN0aW9uID0gJ2FjdGlvbicsXHJcbiAgY3VycmVuY3kgPSAnY3VycmVuY3knLFxyXG4gIGJhbm5lciA9ICdiYW5uZXInLFxyXG4gIHBlcmNlbnRhZ2UgPSAncGVyY2VudGFnZScsXHJcbiAgbXVsdGlzZWxlY3Rkcm9wZG93biA9ICdtdWx0aXNlbGVjdGRyb3Bkb3duJyxcclxuICBoeXBlcmxpbmsgPSAnaHlwZXJsaW5rJyxcclxuICBpbmplY3RhYmxlID0gJ2luamVjdGFibGUnLFxyXG4gIGRhdGV0aW1lID0gJ2RhdGV0aW1lJyxcclxuICByYXRpbmcgPSAncmF0aW5nJyxcclxuICBpbmNyZW1lbnRlciA9ICdpbmNyZW1lbnRlcicsXHJcbiAgcmFuZ2UgPSAncmFuZ2UnLFxyXG4gIHBhc3N3b3JkID0gJ3Bhc3N3b3JkJyxcclxufVxyXG4iXX0=
@@ -1,5 +0,0 @@
1
- export var LocalStorageKeys;
2
- (function (LocalStorageKeys) {
3
- LocalStorageKeys["LongPressForSendImmediately"] = "longPressForSendImmediately";
4
- })(LocalStorageKeys || (LocalStorageKeys = {}));
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS1rZXlzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9lbnVtcy9sb2NhbC1zdG9yYWdlLWtleXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxnQkFFWDtBQUZELFdBQVksZ0JBQWdCO0lBQzFCLCtFQUEyRCxDQUFBO0FBQzdELENBQUMsRUFGVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBRTNCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gTG9jYWxTdG9yYWdlS2V5cyB7XHJcbiAgTG9uZ1ByZXNzRm9yU2VuZEltbWVkaWF0ZWx5ID0gJ2xvbmdQcmVzc0ZvclNlbmRJbW1lZGlhdGVseScsXHJcbn1cclxuIl19
@@ -1,8 +0,0 @@
1
- export var StatusTypes;
2
- (function (StatusTypes) {
3
- StatusTypes["Info"] = "info";
4
- StatusTypes["Warning"] = "warning";
5
- StatusTypes["Error"] = "error";
6
- StatusTypes["Success"] = "success";
7
- })(StatusTypes || (StatusTypes = {}));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvZW51bXMvc3RhdHVzLXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsNEJBQWEsQ0FBQTtJQUNiLGtDQUFtQixDQUFBO0lBQ25CLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBTFcsV0FBVyxLQUFYLFdBQVcsUUFLdEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBTdGF0dXNUeXBlcyB7XHJcbiAgSW5mbyA9ICdpbmZvJyxcclxuICBXYXJuaW5nID0gJ3dhcm5pbmcnLFxyXG4gIEVycm9yID0gJ2Vycm9yJyxcclxuICBTdWNjZXNzID0gJ3N1Y2Nlc3MnLFxyXG59XHJcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi10ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL21vZGVsL3NlbGVjdC1vcHRpb24tdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJ0BuYW5pdGVuaW5qYS9pb25pYy1saWInO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RPcHRpb25XaXRoVGVtcGxhdGU8VD4gZXh0ZW5kcyBTZWxlY3RPcHRpb248VD4ge1xyXG4gIGFkZE9uVGVtcGxhdGVSZWY/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XHJcbn1cclxuIl19
@@ -1,19 +0,0 @@
1
- /**
2
- * operations.ts - Contains common operations utility functions.
3
- *
4
- * @file This file exports utility functions for common operations.
5
- */
6
- /**
7
- * Generates a random string of the specified length.
8
- *
9
- * @param {number} [length=10] - The length of the random string to generate. Default is 10.
10
- * @return {string} A randomly generated string.
11
- */
12
- function randomString(length = 10) {
13
- return Array.from({ length }, () => Math.random().toString(36).charAt(2)).join('');
14
- }
15
- /**
16
- * Collection of common operations utility functions.
17
- */
18
- export const CommonOperations = { randomString };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL29wZXJhdGlvbnMvb3BlcmF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUg7Ozs7O0dBS0c7QUFDSCxTQUFTLFlBQVksQ0FBQyxTQUFpQixFQUFFO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JGLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLEVBQUUsWUFBWSxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogb3BlcmF0aW9ucy50cyAtIENvbnRhaW5zIGNvbW1vbiBvcGVyYXRpb25zIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4gKlxyXG4gKiBAZmlsZSBUaGlzIGZpbGUgZXhwb3J0cyB1dGlsaXR5IGZ1bmN0aW9ucyBmb3IgY29tbW9uIG9wZXJhdGlvbnMuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIEdlbmVyYXRlcyBhIHJhbmRvbSBzdHJpbmcgb2YgdGhlIHNwZWNpZmllZCBsZW5ndGguXHJcbiAqXHJcbiAqIEBwYXJhbSB7bnVtYmVyfSBbbGVuZ3RoPTEwXSAtIFRoZSBsZW5ndGggb2YgdGhlIHJhbmRvbSBzdHJpbmcgdG8gZ2VuZXJhdGUuIERlZmF1bHQgaXMgMTAuXHJcbiAqIEByZXR1cm4ge3N0cmluZ30gQSByYW5kb21seSBnZW5lcmF0ZWQgc3RyaW5nLlxyXG4gKi9cclxuZnVuY3Rpb24gcmFuZG9tU3RyaW5nKGxlbmd0aDogbnVtYmVyID0gMTApOiBzdHJpbmcge1xyXG4gIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoIH0sICgpID0+IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLmNoYXJBdCgyKSkuam9pbignJyk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBDb2xsZWN0aW9uIG9mIGNvbW1vbiBvcGVyYXRpb25zIHV0aWxpdHkgZnVuY3Rpb25zLlxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IENvbW1vbk9wZXJhdGlvbnMgPSB7IHJhbmRvbVN0cmluZyB9O1xyXG4iXX0=
@@ -1,49 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ArraySortPipe {
4
- transform(array, field, type = 'ASC') {
5
- if (!Array.isArray(array)) {
6
- return null;
7
- }
8
- switch (type.toUpperCase()) {
9
- case 'ASC': {
10
- array.sort((a, b) => {
11
- if (a[field] < b[field]) {
12
- return -1;
13
- }
14
- else if (a[field] > b[field]) {
15
- return 1;
16
- }
17
- else {
18
- return 0;
19
- }
20
- });
21
- break;
22
- }
23
- case 'DSC': {
24
- array.sort((a, b) => {
25
- if (a[field] > b[field]) {
26
- return -1;
27
- }
28
- else if (a[field] < b[field]) {
29
- return 1;
30
- }
31
- else {
32
- return 0;
33
- }
34
- });
35
- break;
36
- }
37
- }
38
- return array;
39
- }
40
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArraySortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
41
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ArraySortPipe, name: "sort" }); }
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ArraySortPipe, decorators: [{
44
- type: Pipe,
45
- args: [{
46
- name: 'sort',
47
- }]
48
- }] });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuc29ydC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvcGlwZXMvYXJyYXktc29ydC9hcnJheS5zb3J0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBS3BELE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLE9BQWUsS0FBSztRQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDM0IsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNaLENBQUM7eUJBQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQy9CLE9BQU8sQ0FBQyxDQUFDO29CQUNYLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsQ0FBQztvQkFDWCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUixDQUFDO1lBQ0QsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUNYLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsQ0FBTSxFQUFFLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNaLENBQUM7eUJBQU0sSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7d0JBQy9CLE9BQU8sQ0FBQyxDQUFDO29CQUNYLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLENBQUMsQ0FBQztvQkFDWCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzsrR0FoQ1UsYUFBYTs2R0FBYixhQUFhOzs0RkFBYixhQUFhO2tCQUh6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxNQUFNO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdzb3J0JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFycmF5U29ydFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oYXJyYXk6IGFueSwgZmllbGQ6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ0FTQycpOiBhbnlbXSB7XHJcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoYXJyYXkpKSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgc3dpdGNoICh0eXBlLnRvVXBwZXJDYXNlKCkpIHtcclxuICAgICAgY2FzZSAnQVNDJzoge1xyXG4gICAgICAgIGFycmF5LnNvcnQoKGE6IGFueSwgYjogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoYVtmaWVsZF0gPCBiW2ZpZWxkXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gLTE7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGFbZmllbGRdID4gYltmaWVsZF0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIDE7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdEU0MnOiB7XHJcbiAgICAgICAgYXJyYXkuc29ydCgoYTogYW55LCBiOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChhW2ZpZWxkXSA+IGJbZmllbGRdKSB7XHJcbiAgICAgICAgICAgIHJldHVybiAtMTtcclxuICAgICAgICAgIH0gZWxzZSBpZiAoYVtmaWVsZF0gPCBiW2ZpZWxkXSkge1xyXG4gICAgICAgICAgICByZXR1cm4gMTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyYXk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,17 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class CountNonEmptyFieldsPipe {
4
- transform(records) {
5
- return Object.values(records).filter(Boolean).length;
6
- }
7
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CountNonEmptyFieldsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: CountNonEmptyFieldsPipe, name: "countNonEmptyFields" }); }
9
- }
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CountNonEmptyFieldsPipe, decorators: [{
11
- type: Pipe,
12
- args: [{
13
- name: 'countNonEmptyFields',
14
- pure: true,
15
- }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQtbm9uLWVtcHR5LWZpZWxkcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGFzaGJvYXJkLWNvbXBvbmVudHMtbGliL3NyYy9saWIvcGlwZXMvY291bnQtbm9uLWVtcHR5LWZpZWxkcy9jb3VudC1ub24tZW1wdHktZmllbGRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTXBELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsU0FBUyxDQUFDLE9BQXNDO1FBQzlDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3ZELENBQUM7K0dBSFUsdUJBQXVCOzZHQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBSm5DLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2NvdW50Tm9uRW1wdHlGaWVsZHMnLFxyXG4gIHB1cmU6IHRydWUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3VudE5vbkVtcHR5RmllbGRzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShyZWNvcmRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudWxsPik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhyZWNvcmRzKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,31 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import moment from 'moment';
3
- import * as i0 from "@angular/core";
4
- export class DateLocalizationPipe {
5
- transform(value, dateFormat) {
6
- if (moment.isMoment(value)) {
7
- return value.format(dateFormat).toString();
8
- }
9
- else {
10
- let parsedDate = moment(value, moment.ISO_8601, true);
11
- if (!parsedDate.isValid()) {
12
- // If the value is entered manually by user then parse the value based on the date format
13
- parsedDate = moment(value, dateFormat, false);
14
- }
15
- if (parsedDate.isValid()) {
16
- return parsedDate.format(dateFormat).toString();
17
- }
18
- return null;
19
- }
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateLocalizationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
22
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: DateLocalizationPipe, name: "dateLocalization" }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateLocalizationPipe, decorators: [{
25
- type: Pipe,
26
- args: [{
27
- name: 'dateLocalization',
28
- pure: true,
29
- }]
30
- }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1sb2NhbGl6YXRpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL3BpcGVzL2RhdGUtbG9jYWxpemF0aW9uL2RhdGUtbG9jYWxpemF0aW9uLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDOztBQU01QixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFNBQVMsQ0FBQyxLQUE2QixFQUFFLFVBQWtCO1FBQ3pELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7Z0JBQzFCLHlGQUF5RjtnQkFDekYsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2hELENBQUM7WUFDRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixPQUFPLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEQsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7K0dBZlUsb0JBQW9COzZHQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBSmhDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnZGF0ZUxvY2FsaXphdGlvbicsXHJcbiAgcHVyZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVMb2NhbGl6YXRpb25QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcgfCBtb21lbnQuTW9tZW50LCBkYXRlRm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKG1vbWVudC5pc01vbWVudCh2YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHZhbHVlLmZvcm1hdChkYXRlRm9ybWF0KS50b1N0cmluZygpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGV0IHBhcnNlZERhdGUgPSBtb21lbnQodmFsdWUsIG1vbWVudC5JU09fODYwMSwgdHJ1ZSk7XHJcbiAgICAgIGlmICghcGFyc2VkRGF0ZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICAvLyBJZiB0aGUgdmFsdWUgaXMgZW50ZXJlZCBtYW51YWxseSBieSB1c2VyIHRoZW4gcGFyc2UgdGhlIHZhbHVlIGJhc2VkIG9uIHRoZSBkYXRlIGZvcm1hdFxyXG4gICAgICAgIHBhcnNlZERhdGUgPSBtb21lbnQodmFsdWUsIGRhdGVGb3JtYXQsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAocGFyc2VkRGF0ZS5pc1ZhbGlkKCkpIHtcclxuICAgICAgICByZXR1cm4gcGFyc2VkRGF0ZS5mb3JtYXQoZGF0ZUZvcm1hdCkudG9TdHJpbmcoKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,28 +0,0 @@
1
- import { Injectable, Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@ngx-translate/core";
4
- export class FallbackTranslatePipe {
5
- constructor(translate) {
6
- this.translate = translate;
7
- }
8
- transform(key, fallback) {
9
- const translated = this.translate.instant(key);
10
- return translated === key ? fallback : translated;
11
- }
12
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
13
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, isStandalone: true, name: "fallbackTranslate" }); }
14
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, providedIn: 'root' }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FallbackTranslatePipe, decorators: [{
17
- type: Pipe,
18
- args: [{
19
- name: 'fallbackTranslate',
20
- standalone: true,
21
- }]
22
- }, {
23
- type: Injectable,
24
- args: [{
25
- providedIn: 'root',
26
- }]
27
- }], ctorParameters: () => [{ type: i1.TranslateService }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stdHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXNoYm9hcmQtY29tcG9uZW50cy1saWIvc3JjL2xpYi9waXBlcy9mYWxsYmFjay10cmFuc2xhdGUvZmFsbGJhY2stdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFVaEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtJQUFHLENBQUM7SUFFbkQsU0FBUyxDQUFDLEdBQVcsRUFBRSxRQUFnQjtRQUNyQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQyxPQUFPLFVBQVUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ3BELENBQUM7K0dBTlUscUJBQXFCOzZHQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixjQUZwQixNQUFNOzs0RkFFUCxxQkFBcUI7a0JBUGpDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLG1CQUFtQjtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOztrQkFDQSxVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdmYWxsYmFja1RyYW5zbGF0ZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZhbGxiYWNrVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxyXG5cclxuICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcsIGZhbGxiYWNrOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5KTtcclxuICAgIHJldHVybiB0cmFuc2xhdGVkID09PSBrZXkgPyBmYWxsYmFjayA6IHRyYW5zbGF0ZWQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,59 +0,0 @@
1
- import { formatNumber } from '@angular/common';
2
- import { Pipe } from '@angular/core';
3
- import moment from 'moment';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../date-localization/date-localization.pipe";
6
- import * as i2 from "@angular/common";
7
- export class GetDisplayValuePipe {
8
- constructor(dateLocalizationPipe, currencyPipe) {
9
- this.dateLocalizationPipe = dateLocalizationPipe;
10
- this.currencyPipe = currencyPipe;
11
- }
12
- transform(data, column, dateFormat, corporateCurrency = 'USD') {
13
- if ((typeof data != 'boolean' && !data && data !== 0) || !column) {
14
- return '';
15
- }
16
- if (column.controlType === 'SingleSelect' || column.controlType === 'MultiSelect') {
17
- if (Array.isArray(data)) {
18
- return data.map((value) => column.values?.find((col) => col.Key === value)?.Value)?.join(', ') ?? '';
19
- }
20
- return column.values?.find((col) => col.Key === data)?.Value;
21
- }
22
- if (column.controlType === 'AutoComplete' || column.controlType === 'AutoCompleteMulti' || column.controlType === 'MultiField') {
23
- if (Array.isArray(data)) {
24
- return data?.map((kv) => kv?.Value)?.join(', ') ?? '';
25
- }
26
- return data?.Value;
27
- }
28
- if (column.controlType === 'Date') {
29
- if (moment.isMoment(data)) {
30
- return this.dateLocalizationPipe.transform(data, dateFormat);
31
- }
32
- else {
33
- return this.dateLocalizationPipe.transform(data?.toString() ?? '', dateFormat);
34
- }
35
- }
36
- if (column.controlType === 'Percent') {
37
- return `${formatNumber(data, 'en-US', '1.0-0')}%`;
38
- }
39
- if (column.controlType === 'Currency') {
40
- return this.currencyPipe.transform(Math.round(data), corporateCurrency, 'symbol', '1.0-0');
41
- }
42
- if (column.controlType === 'Boolean') {
43
- return data ? 'Yes' : 'No';
44
- }
45
- if (data.en)
46
- return data.en;
47
- return data.toString();
48
- }
49
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GetDisplayValuePipe, deps: [{ token: i1.DateLocalizationPipe }, { token: i2.CurrencyPipe }], target: i0.ɵɵFactoryTarget.Pipe }); }
50
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: GetDisplayValuePipe, name: "getDisplayValue" }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: GetDisplayValuePipe, decorators: [{
53
- type: Pipe,
54
- args: [{
55
- name: 'getDisplayValue',
56
- pure: true,
57
- }]
58
- }], ctorParameters: () => [{ type: i1.DateLocalizationPipe }, { type: i2.CurrencyPipe }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRpc3BsYXktdmFsdWUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rhc2hib2FyZC1jb21wb25lbnRzLWxpYi9zcmMvbGliL3BpcGVzL2dldC1kaXNwbGF5LXZhbHVlL2dldC1kaXNwbGF5LXZhbHVlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7Ozs7QUFRNUIsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixZQUNVLG9CQUEwQyxFQUMxQyxZQUEwQjtRQUQxQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBQ2pDLENBQUM7SUFFSixTQUFTLENBQUMsSUFBUyxFQUFFLE1BQWtCLEVBQUUsVUFBa0IsRUFBRSxvQkFBNEIsS0FBSztRQUM1RixJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksU0FBUyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pFLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxjQUFjLElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUNsRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZHLENBQUM7WUFDRCxPQUFPLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLGNBQWMsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLG1CQUFtQixJQUFJLE1BQU0sQ0FBQyxXQUFXLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDL0gsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLE9BQU8sSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEQsQ0FBQztZQUNELE9BQU8sSUFBSSxFQUFFLEtBQUssQ0FBQztRQUNyQixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUMxQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQy9ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNqRixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUNwRCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDN0IsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFNUIsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0FoRFUsbUJBQW1COzZHQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBSi9CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLElBQUk7aUJBQ1giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDdXJyZW5jeVBpcGUsIGZvcm1hdE51bWJlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBHcmlkQ29sdW1uIH0gZnJvbSAnQG5hbml0ZW5pbmphL2lvbmljLWxpYic7XHJcbmltcG9ydCB7IERhdGVMb2NhbGl6YXRpb25QaXBlIH0gZnJvbSAnLi4vZGF0ZS1sb2NhbGl6YXRpb24vZGF0ZS1sb2NhbGl6YXRpb24ucGlwZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2dldERpc3BsYXlWYWx1ZScsXHJcbiAgcHVyZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEdldERpc3BsYXlWYWx1ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGF0ZUxvY2FsaXphdGlvblBpcGU6IERhdGVMb2NhbGl6YXRpb25QaXBlLFxyXG4gICAgcHJpdmF0ZSBjdXJyZW5jeVBpcGU6IEN1cnJlbmN5UGlwZSxcclxuICApIHt9XHJcblxyXG4gIHRyYW5zZm9ybShkYXRhOiBhbnksIGNvbHVtbjogR3JpZENvbHVtbiwgZGF0ZUZvcm1hdDogc3RyaW5nLCBjb3Jwb3JhdGVDdXJyZW5jeTogc3RyaW5nID0gJ1VTRCcpOiBzdHJpbmcge1xyXG4gICAgaWYgKCh0eXBlb2YgZGF0YSAhPSAnYm9vbGVhbicgJiYgIWRhdGEgJiYgZGF0YSAhPT0gMCkgfHwgIWNvbHVtbikge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbHVtbi5jb250cm9sVHlwZSA9PT0gJ1NpbmdsZVNlbGVjdCcgfHwgY29sdW1uLmNvbnRyb2xUeXBlID09PSAnTXVsdGlTZWxlY3QnKSB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGEubWFwKCh2YWx1ZSkgPT4gY29sdW1uLnZhbHVlcz8uZmluZCgoY29sKSA9PiBjb2wuS2V5ID09PSB2YWx1ZSk/LlZhbHVlKT8uam9pbignLCAnKSA/PyAnJztcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY29sdW1uLnZhbHVlcz8uZmluZCgoY29sKSA9PiBjb2wuS2V5ID09PSBkYXRhKT8uVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbHVtbi5jb250cm9sVHlwZSA9PT0gJ0F1dG9Db21wbGV0ZScgfHwgY29sdW1uLmNvbnRyb2xUeXBlID09PSAnQXV0b0NvbXBsZXRlTXVsdGknIHx8IGNvbHVtbi5jb250cm9sVHlwZSA9PT0gJ011bHRpRmllbGQnKSB7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGEpKSB7XHJcbiAgICAgICAgcmV0dXJuIGRhdGE/Lm1hcCgoa3YpID0+IGt2Py5WYWx1ZSk/LmpvaW4oJywgJykgPz8gJyc7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIGRhdGE/LlZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2x1bW4uY29udHJvbFR5cGUgPT09ICdEYXRlJykge1xyXG4gICAgICBpZiAobW9tZW50LmlzTW9tZW50KGRhdGEpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZUxvY2FsaXphdGlvblBpcGUudHJhbnNmb3JtKGRhdGEsIGRhdGVGb3JtYXQpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGVMb2NhbGl6YXRpb25QaXBlLnRyYW5zZm9ybShkYXRhPy50b1N0cmluZygpID8/ICcnLCBkYXRlRm9ybWF0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2x1bW4uY29udHJvbFR5cGUgPT09ICdQZXJjZW50Jykge1xyXG4gICAgICByZXR1cm4gYCR7Zm9ybWF0TnVtYmVyKGRhdGEsICdlbi1VUycsICcxLjAtMCcpfSVgO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2x1bW4uY29udHJvbFR5cGUgPT09ICdDdXJyZW5jeScpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VycmVuY3lQaXBlLnRyYW5zZm9ybShNYXRoLnJvdW5kKGRhdGEpLCBjb3Jwb3JhdGVDdXJyZW5jeSwgJ3N5bWJvbCcsICcxLjAtMCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb2x1bW4uY29udHJvbFR5cGUgPT09ICdCb29sZWFuJykge1xyXG4gICAgICByZXR1cm4gZGF0YSA/ICdZZXMnIDogJ05vJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF0YS5lbikgcmV0dXJuIGRhdGEuZW47XHJcblxyXG4gICAgcmV0dXJuIGRhdGEudG9TdHJpbmcoKTtcclxuICB9XHJcbn1cclxuIl19