@bizdoc/core 1.9.13 → 1.10.0-next.3

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 (481) hide show
  1. package/assets/dayjs/locale/af.js +1 -0
  2. package/assets/dayjs/locale/am.js +1 -0
  3. package/assets/dayjs/locale/ar-dz.js +1 -0
  4. package/assets/dayjs/locale/ar-iq.js +1 -0
  5. package/assets/dayjs/locale/ar-kw.js +1 -0
  6. package/assets/dayjs/locale/ar-ly.js +1 -0
  7. package/assets/dayjs/locale/ar-ma.js +1 -0
  8. package/assets/dayjs/locale/ar-sa.js +1 -0
  9. package/assets/dayjs/locale/ar-tn.js +1 -0
  10. package/assets/dayjs/locale/ar.js +1 -0
  11. package/assets/dayjs/locale/az.js +1 -0
  12. package/assets/dayjs/locale/be.js +1 -0
  13. package/assets/dayjs/locale/bg.js +1 -0
  14. package/assets/dayjs/locale/bi.js +1 -0
  15. package/assets/dayjs/locale/bm.js +1 -0
  16. package/assets/dayjs/locale/bn.js +1 -0
  17. package/assets/dayjs/locale/bo.js +1 -0
  18. package/assets/dayjs/locale/br.js +1 -0
  19. package/assets/dayjs/locale/bs.js +1 -0
  20. package/assets/dayjs/locale/ca.js +1 -0
  21. package/assets/dayjs/locale/cs.js +1 -0
  22. package/assets/dayjs/locale/cv.js +1 -0
  23. package/assets/dayjs/locale/cy.js +1 -0
  24. package/assets/dayjs/locale/da.js +1 -0
  25. package/assets/dayjs/locale/de-at.js +1 -0
  26. package/assets/dayjs/locale/de-ch.js +1 -0
  27. package/assets/dayjs/locale/de.js +1 -0
  28. package/assets/dayjs/locale/dv.js +1 -0
  29. package/assets/dayjs/locale/el.js +1 -0
  30. package/assets/dayjs/locale/en-au.js +1 -0
  31. package/assets/dayjs/locale/en-ca.js +1 -0
  32. package/assets/dayjs/locale/en-gb.js +1 -0
  33. package/assets/dayjs/locale/en-ie.js +1 -0
  34. package/assets/dayjs/locale/en-il.js +1 -0
  35. package/assets/dayjs/locale/en-in.js +1 -0
  36. package/assets/dayjs/locale/en-nz.js +1 -0
  37. package/assets/dayjs/locale/en-sg.js +1 -0
  38. package/assets/dayjs/locale/en-tt.js +1 -0
  39. package/assets/dayjs/locale/en.js +1 -0
  40. package/assets/dayjs/locale/eo.js +1 -0
  41. package/assets/dayjs/locale/es-do.js +1 -0
  42. package/assets/dayjs/locale/es-mx.js +1 -0
  43. package/assets/dayjs/locale/es-pr.js +1 -0
  44. package/assets/dayjs/locale/es-us.js +1 -0
  45. package/assets/dayjs/locale/es.js +1 -0
  46. package/assets/dayjs/locale/et.js +1 -0
  47. package/assets/dayjs/locale/eu.js +1 -0
  48. package/assets/dayjs/locale/fa.js +1 -0
  49. package/assets/dayjs/locale/fi.js +1 -0
  50. package/assets/dayjs/locale/fo.js +1 -0
  51. package/assets/dayjs/locale/fr-ca.js +1 -0
  52. package/assets/dayjs/locale/fr-ch.js +1 -0
  53. package/assets/dayjs/locale/fr.js +1 -0
  54. package/assets/dayjs/locale/fy.js +1 -0
  55. package/assets/dayjs/locale/ga.js +1 -0
  56. package/assets/dayjs/locale/gd.js +1 -0
  57. package/assets/dayjs/locale/gl.js +1 -0
  58. package/assets/dayjs/locale/gom-latn.js +1 -0
  59. package/assets/dayjs/locale/gu.js +1 -0
  60. package/assets/dayjs/locale/he.js +1 -0
  61. package/assets/dayjs/locale/hi.js +1 -0
  62. package/assets/dayjs/locale/hr.js +1 -0
  63. package/assets/dayjs/locale/ht.js +1 -0
  64. package/assets/dayjs/locale/hu.js +1 -0
  65. package/assets/dayjs/locale/hy-am.js +1 -0
  66. package/assets/dayjs/locale/id.js +1 -0
  67. package/assets/dayjs/locale/index.d.ts +11 -0
  68. package/assets/dayjs/locale/is.js +1 -0
  69. package/assets/dayjs/locale/it-ch.js +1 -0
  70. package/assets/dayjs/locale/it.js +1 -0
  71. package/assets/dayjs/locale/ja.js +1 -0
  72. package/assets/dayjs/locale/jv.js +1 -0
  73. package/assets/dayjs/locale/ka.js +1 -0
  74. package/assets/dayjs/locale/kk.js +1 -0
  75. package/assets/dayjs/locale/km.js +1 -0
  76. package/assets/dayjs/locale/kn.js +1 -0
  77. package/assets/dayjs/locale/ko.js +1 -0
  78. package/assets/dayjs/locale/ku.js +1 -0
  79. package/assets/dayjs/locale/ky.js +1 -0
  80. package/assets/dayjs/locale/lb.js +1 -0
  81. package/assets/dayjs/locale/lo.js +1 -0
  82. package/assets/dayjs/locale/lt.js +1 -0
  83. package/assets/dayjs/locale/lv.js +1 -0
  84. package/assets/dayjs/locale/me.js +1 -0
  85. package/assets/dayjs/locale/mi.js +1 -0
  86. package/assets/dayjs/locale/mk.js +1 -0
  87. package/assets/dayjs/locale/ml.js +1 -0
  88. package/assets/dayjs/locale/mn.js +1 -0
  89. package/assets/dayjs/locale/mr.js +1 -0
  90. package/assets/dayjs/locale/ms-my.js +1 -0
  91. package/assets/dayjs/locale/ms.js +1 -0
  92. package/assets/dayjs/locale/mt.js +1 -0
  93. package/assets/dayjs/locale/my.js +1 -0
  94. package/assets/dayjs/locale/nb.js +1 -0
  95. package/assets/dayjs/locale/ne.js +1 -0
  96. package/assets/dayjs/locale/nl-be.js +1 -0
  97. package/assets/dayjs/locale/nl.js +1 -0
  98. package/assets/dayjs/locale/nn.js +1 -0
  99. package/assets/dayjs/locale/oc-lnc.js +1 -0
  100. package/assets/dayjs/locale/pa-in.js +1 -0
  101. package/assets/dayjs/locale/pl.js +1 -0
  102. package/assets/dayjs/locale/pt-br.js +1 -0
  103. package/assets/dayjs/locale/pt.js +1 -0
  104. package/assets/dayjs/locale/ro.js +1 -0
  105. package/assets/dayjs/locale/ru.js +1 -0
  106. package/assets/dayjs/locale/rw.js +1 -0
  107. package/assets/dayjs/locale/sd.js +1 -0
  108. package/assets/dayjs/locale/se.js +1 -0
  109. package/assets/dayjs/locale/si.js +1 -0
  110. package/assets/dayjs/locale/sk.js +1 -0
  111. package/assets/dayjs/locale/sl.js +1 -0
  112. package/assets/dayjs/locale/sq.js +1 -0
  113. package/assets/dayjs/locale/sr-cyrl.js +1 -0
  114. package/assets/dayjs/locale/sr.js +1 -0
  115. package/assets/dayjs/locale/ss.js +1 -0
  116. package/assets/dayjs/locale/sv-fi.js +1 -0
  117. package/assets/dayjs/locale/sv.js +1 -0
  118. package/assets/dayjs/locale/sw.js +1 -0
  119. package/assets/dayjs/locale/ta.js +1 -0
  120. package/assets/dayjs/locale/te.js +1 -0
  121. package/assets/dayjs/locale/tet.js +1 -0
  122. package/assets/dayjs/locale/tg.js +1 -0
  123. package/assets/dayjs/locale/th.js +1 -0
  124. package/assets/dayjs/locale/tk.js +1 -0
  125. package/assets/dayjs/locale/tl-ph.js +1 -0
  126. package/assets/dayjs/locale/tlh.js +1 -0
  127. package/assets/dayjs/locale/tr.js +1 -0
  128. package/assets/dayjs/locale/types.d.ts +33 -0
  129. package/assets/dayjs/locale/tzl.js +1 -0
  130. package/assets/dayjs/locale/tzm-latn.js +1 -0
  131. package/assets/dayjs/locale/tzm.js +1 -0
  132. package/assets/dayjs/locale/ug-cn.js +1 -0
  133. package/assets/dayjs/locale/uk.js +1 -0
  134. package/assets/dayjs/locale/ur.js +1 -0
  135. package/assets/dayjs/locale/uz-latn.js +1 -0
  136. package/assets/dayjs/locale/uz.js +1 -0
  137. package/assets/dayjs/locale/vi.js +1 -0
  138. package/assets/dayjs/locale/x-pseudo.js +1 -0
  139. package/assets/dayjs/locale/yo.js +1 -0
  140. package/assets/dayjs/locale/zh-cn.js +1 -0
  141. package/assets/dayjs/locale/zh-hk.js +1 -0
  142. package/assets/dayjs/locale/zh-tw.js +1 -0
  143. package/assets/dayjs/locale/zh.js +1 -0
  144. package/assets/themes/brown.min.css +1 -1
  145. package/assets/themes/dark.min.css +1 -1
  146. package/assets/themes/deep-purple-light-blue.min.css +3 -3
  147. package/assets/themes/default.min.css +1 -1
  148. package/assets/themes/green.min.css +1 -1
  149. package/assets/themes/indigo.min.css +1 -1
  150. package/esm2020/lib/admin/admin-dismiss.service.mjs +3 -3
  151. package/esm2020/lib/admin/admin-menu.component.mjs +3 -3
  152. package/esm2020/lib/admin/core/ace.input.mjs +3 -3
  153. package/esm2020/lib/admin/core/color-picker.input.mjs +3 -3
  154. package/esm2020/lib/admin/core/search.input.mjs +3 -3
  155. package/esm2020/lib/admin/diff/configuration-diff.component.mjs +5 -5
  156. package/esm2020/lib/admin/document-trace/document-trace.component.mjs +9 -10
  157. package/esm2020/lib/admin/document-trace/reassign.dialog.mjs +3 -3
  158. package/esm2020/lib/admin/document-trace/trace-element.component.mjs +4 -4
  159. package/esm2020/lib/admin/form/form.resolve.service.mjs +3 -3
  160. package/esm2020/lib/admin/form/form.service.mjs +3 -3
  161. package/esm2020/lib/admin/form/workflow/node.component.mjs +3 -3
  162. package/esm2020/lib/admin/form/workflow/role-node.component.mjs +3 -3
  163. package/esm2020/lib/admin/form/workflow/workflow.component.mjs +6 -5
  164. package/esm2020/lib/admin/indices/manage-cube-index.component.mjs +3 -3
  165. package/esm2020/lib/admin/patterns/patterns.component.mjs +3 -3
  166. package/esm2020/lib/admin/permissions/permissions.component.mjs +3 -3
  167. package/esm2020/lib/admin/positions/positions-popup.component.mjs +3 -3
  168. package/esm2020/lib/admin/positions/positions.component.mjs +3 -3
  169. package/esm2020/lib/admin/profiler/profiler.component.mjs +10 -10
  170. package/esm2020/lib/admin/utility-wrapper.component.mjs +3 -3
  171. package/esm2020/lib/admin/utility.pane.component.mjs +3 -3
  172. package/esm2020/lib/app.component.mjs +6 -6
  173. package/esm2020/lib/bizdoc.module.mjs +8 -20
  174. package/esm2020/lib/browse/browse-items.component.mjs +13 -8
  175. package/esm2020/lib/browse/browse.mobile.component.mjs +3 -3
  176. package/esm2020/lib/browse/browse.pane.component.mjs +6 -4
  177. package/esm2020/lib/browse/expanded-item/expanded-item.component.mjs +12 -12
  178. package/esm2020/lib/browse/filter/filter.component.mjs +3 -3
  179. package/esm2020/lib/browse/folders-menu.component.mjs +3 -3
  180. package/esm2020/lib/chat/chat-info.mjs +3 -3
  181. package/esm2020/lib/chat/chat.mobile.component.mjs +3 -3
  182. package/esm2020/lib/chat/chat.service.mjs +3 -3
  183. package/esm2020/lib/chat/contacts.component.mjs +9 -8
  184. package/esm2020/lib/chat/contacts.pane.component.mjs +3 -3
  185. package/esm2020/lib/chat/conversation.component.mjs +8 -6
  186. package/esm2020/lib/chat/conversation.pane.component.mjs +3 -3
  187. package/esm2020/lib/compose/action/action-picker.component.mjs +3 -3
  188. package/esm2020/lib/compose/action/action.dialog.mjs +3 -3
  189. package/esm2020/lib/compose/action/action.pane.dialog.mjs +3 -3
  190. package/esm2020/lib/compose/action/assign-action.component.mjs +3 -3
  191. package/esm2020/lib/compose/action/return-action.component.mjs +3 -3
  192. package/esm2020/lib/compose/attachments/attachments.component.mjs +4 -4
  193. package/esm2020/lib/compose/attachments/preview/attachment-preview.component.mjs +3 -3
  194. package/esm2020/lib/compose/attachments/progress-button.directive.mjs +3 -3
  195. package/esm2020/lib/compose/can-deactivate-changes.service.mjs +3 -3
  196. package/esm2020/lib/compose/comments/Comments.pane.component.mjs +3 -3
  197. package/esm2020/lib/compose/comments/comment.component.mjs +6 -5
  198. package/esm2020/lib/compose/comments/comments.component.mjs +3 -3
  199. package/esm2020/lib/compose/comments/edit-comment.component.mjs +3 -3
  200. package/esm2020/lib/compose/comments/edits.component.mjs +4 -4
  201. package/esm2020/lib/compose/comments/quick-comment.component.exp.mjs +3 -3
  202. package/esm2020/lib/compose/comments/votes.component.mjs +6 -5
  203. package/esm2020/lib/compose/compose-resolve.service.mjs +6 -6
  204. package/esm2020/lib/compose/compose.mobile.component.mjs +3 -3
  205. package/esm2020/lib/compose/compose.pane.component.mjs +6 -4
  206. package/esm2020/lib/compose/copy/copy.dialog.mjs +3 -3
  207. package/esm2020/lib/compose/dismiss.service.mjs +3 -3
  208. package/esm2020/lib/compose/document-resolver.service.mjs +3 -3
  209. package/esm2020/lib/compose/document.component.mjs +3 -3
  210. package/esm2020/lib/compose/document.mobile.component.mjs +3 -3
  211. package/esm2020/lib/compose/document.pane.component.mjs +3 -3
  212. package/esm2020/lib/compose/events/events.component.mjs +4 -4
  213. package/esm2020/lib/compose/form-selector/form-selector.sheet.mjs +3 -3
  214. package/esm2020/lib/compose/form.component.mjs +3 -3
  215. package/esm2020/lib/compose/new-menu.component.mjs +3 -3
  216. package/esm2020/lib/compose/privilage.directive.mjs +6 -6
  217. package/esm2020/lib/compose/recipient-resolver.service.mjs +3 -3
  218. package/esm2020/lib/compose/save-changes.dialog.mjs +3 -3
  219. package/esm2020/lib/compose/state.component.mjs +3 -3
  220. package/esm2020/lib/compose/tag/tags.component.mjs +3 -3
  221. package/esm2020/lib/compose/trace/flow.component.mjs +39 -31
  222. package/esm2020/lib/compose/trace/people.component.mjs +3 -3
  223. package/esm2020/lib/compose/trace/trace.base.mjs +6 -7
  224. package/esm2020/lib/compose/trace/trace.component.mjs +10 -10
  225. package/esm2020/lib/compose/trace/trace.pane.component.mjs +3 -3
  226. package/esm2020/lib/compose/version-compare/version-compare.component.mjs +3 -3
  227. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +9 -9
  228. package/esm2020/lib/compose/version-compare/version.pane.component.mjs +5 -5
  229. package/esm2020/lib/core/NgComponentOutlet.mjs +3 -3
  230. package/esm2020/lib/core/account.service.mjs +3 -3
  231. package/esm2020/lib/core/animated-icon/animated-icon.directive.mjs +3 -3
  232. package/esm2020/lib/core/avatar/avatar.component.mjs +3 -3
  233. package/esm2020/lib/core/component-factory-resolver.mjs +3 -3
  234. package/esm2020/lib/core/controls/address.input.mjs +3 -3
  235. package/esm2020/lib/core/controls/auto-complete.input.mjs +3 -3
  236. package/esm2020/lib/core/controls/combination-picker-body.mjs +3 -3
  237. package/esm2020/lib/core/controls/combination-picker.mjs +3 -3
  238. package/esm2020/lib/core/controls/combination-pool.mjs +3 -3
  239. package/esm2020/lib/core/controls/select.input.mjs +3 -3
  240. package/esm2020/lib/core/controls/time-picker.mjs +3 -3
  241. package/esm2020/lib/core/controls/timespan.input.mjs +3 -3
  242. package/esm2020/lib/core/datasource.service.mjs +3 -3
  243. package/esm2020/lib/core/guide/guide.component.mjs +3 -3
  244. package/esm2020/lib/core/guide/guide.service.mjs +3 -3
  245. package/esm2020/lib/core/http.interceptor.mjs +3 -3
  246. package/esm2020/lib/core/hub.service.mjs +3 -3
  247. package/esm2020/lib/core/identity/identity.component.mjs +3 -3
  248. package/esm2020/lib/core/info/attachment-info.service.mjs +3 -3
  249. package/esm2020/lib/core/info/document-info.service.mjs +3 -3
  250. package/esm2020/lib/core/info/location-info.component.mjs +3 -3
  251. package/esm2020/lib/core/info/map-info.mjs +3 -3
  252. package/esm2020/lib/core/layout/autocomplete.field.mjs +3 -3
  253. package/esm2020/lib/core/layout/checkbox.field.mjs +3 -3
  254. package/esm2020/lib/core/layout/checkbox.mjs +3 -3
  255. package/esm2020/lib/core/layout/date-range.field.mjs +3 -3
  256. package/esm2020/lib/core/layout/date.field.mjs +3 -3
  257. package/esm2020/lib/core/layout/expression.field.mjs +3 -3
  258. package/esm2020/lib/core/layout/html.field.mjs +3 -3
  259. package/esm2020/lib/core/layout/input.base.mjs +3 -3
  260. package/esm2020/lib/core/layout/input.field.mjs +3 -3
  261. package/esm2020/lib/core/layout/layout.component.mjs +3 -3
  262. package/esm2020/lib/core/layout/numeric.field.mjs +3 -3
  263. package/esm2020/lib/core/layout/select.field.mjs +3 -3
  264. package/esm2020/lib/core/layout/switch.field.mjs +3 -3
  265. package/esm2020/lib/core/layout/textarea.field.mjs +3 -3
  266. package/esm2020/lib/core/layout/timespan.field.mjs +3 -3
  267. package/esm2020/lib/core/lottie-animation.mjs +3 -3
  268. package/esm2020/lib/core/mailbox.service.mjs +3 -3
  269. package/esm2020/lib/core/none.component.mjs +3 -3
  270. package/esm2020/lib/core/pipes/action.pipe.mjs +3 -3
  271. package/esm2020/lib/core/pipes/calendar.pipe.mjs +72 -0
  272. package/esm2020/lib/core/pipes/date-format.pipe.mjs +19 -0
  273. package/esm2020/lib/core/pipes/daterange.pipe.mjs +13 -14
  274. package/esm2020/lib/core/pipes/difference.pipe.mjs +15 -0
  275. package/esm2020/lib/core/pipes/duration-format.pipe.mjs +48 -0
  276. package/esm2020/lib/core/pipes/duration.pipe.mjs +13 -42
  277. package/esm2020/lib/core/pipes/form.pipe.mjs +3 -3
  278. package/esm2020/lib/core/pipes/join.pipe.mjs +3 -3
  279. package/esm2020/lib/core/pipes/role.pipe.mjs +3 -3
  280. package/esm2020/lib/core/pipes/sanitize-html.pipe.mjs +3 -3
  281. package/esm2020/lib/core/pipes/sort.pipe.mjs +6 -6
  282. package/esm2020/lib/core/pipes/state.pipe.mjs +3 -3
  283. package/esm2020/lib/core/pipes/time-ago.pipe.mjs +66 -0
  284. package/esm2020/lib/core/pipes/translate.pipe.mjs +3 -3
  285. package/esm2020/lib/core/pipes/type-value.pipe.mjs +3 -3
  286. package/esm2020/lib/core/pipes/user-name.pipe.mjs +3 -3
  287. package/esm2020/lib/core/popup/popup.component.mjs +3 -3
  288. package/esm2020/lib/core/popup/popup.service.mjs +3 -3
  289. package/esm2020/lib/core/popup/tooltip.directive.mjs +6 -6
  290. package/esm2020/lib/core/prompt/ask/ask.dialog.mjs +3 -3
  291. package/esm2020/lib/core/prompt/mask/mask.component.mjs +3 -3
  292. package/esm2020/lib/core/prompt.service.mjs +3 -3
  293. package/esm2020/lib/core/router.mjs +6 -6
  294. package/esm2020/lib/core/session.service.mjs +9 -9
  295. package/esm2020/lib/core/slots/router.directive.mjs +3 -3
  296. package/esm2020/lib/core/slots/router.service.mjs +3 -3
  297. package/esm2020/lib/core/slots/slots.component.mjs +12 -11
  298. package/esm2020/lib/core/tagging/documents.component.mjs +3 -3
  299. package/esm2020/lib/core/tagging/edit-input.component.mjs +9 -8
  300. package/esm2020/lib/core/tagging/emoji.component.mjs +3 -3
  301. package/esm2020/lib/core/tagging/tagging-item.directive.mjs +3 -3
  302. package/esm2020/lib/core/tagging/tagging.component-base.mjs +3 -3
  303. package/esm2020/lib/core/tagging/tagging.directive.mjs +3 -3
  304. package/esm2020/lib/core/tagging/tagging.pipe.mjs +3 -3
  305. package/esm2020/lib/core/tagging/users.component.mjs +3 -3
  306. package/esm2020/lib/core/translate.service.mjs +28 -103
  307. package/esm2020/lib/core/translations.mjs +4 -4
  308. package/esm2020/lib/core/window-title.service.mjs +3 -3
  309. package/esm2020/lib/cube/accum/accum.component.mjs +10 -6
  310. package/esm2020/lib/cube/chart/chart.component.mjs +14 -6
  311. package/esm2020/lib/cube/cube-info.service.mjs +3 -3
  312. package/esm2020/lib/cube/cube-menu.component.mjs +3 -3
  313. package/esm2020/lib/cube/cube-view.component.mjs +24 -18
  314. package/esm2020/lib/cube/cube.service.mjs +5 -5
  315. package/esm2020/lib/cube/declarations.mjs +1 -1
  316. package/esm2020/lib/cube/explore/document-item.component.mjs +3 -3
  317. package/esm2020/lib/cube/explore/explore-item.component.mjs +3 -3
  318. package/esm2020/lib/cube/explore/explore-items.component.mjs +4 -4
  319. package/esm2020/lib/cube/explore/explore.pane.component.mjs +3 -3
  320. package/esm2020/lib/cube/explore/item-resolver.service.mjs +6 -6
  321. package/esm2020/lib/cube/explore/item.pane.component.mjs +3 -3
  322. package/esm2020/lib/cube/filter/filter-tags.component.exp.mjs +3 -3
  323. package/esm2020/lib/cube/filter/filter.component.mjs +3 -3
  324. package/esm2020/lib/cube/grid/grid.component.mjs +6 -7
  325. package/esm2020/lib/cube/grid/spreadsheet.component.mjs +15 -16
  326. package/esm2020/lib/cube/matrix/matrix.base.mjs +3 -3
  327. package/esm2020/lib/cube/matrix/matrix.component.mjs +3 -3
  328. package/esm2020/lib/cube/matrix/matrix.mobile.component.mjs +3 -3
  329. package/esm2020/lib/cube/matrix/matrix.pane.component.mjs +3 -3
  330. package/esm2020/lib/cube/matrix/table.component.mjs +17 -18
  331. package/esm2020/lib/cube/parallel/item.mjs +2 -1
  332. package/esm2020/lib/cube/parallel/parallel.component.mjs +3 -3
  333. package/esm2020/lib/cube/pivot/pivot.component.mjs +19 -14
  334. package/esm2020/lib/cube/sum/sum.component.mjs +5 -5
  335. package/esm2020/lib/cube/view-base.mjs +4 -4
  336. package/esm2020/lib/cube/view.mobile.component.mjs +3 -3
  337. package/esm2020/lib/cube/view.pane.component.mjs +10 -7
  338. package/esm2020/lib/dashboard/actions/actions.widget.mjs +3 -3
  339. package/esm2020/lib/dashboard/cube/accum-cube.widget.mjs +3 -3
  340. package/esm2020/lib/dashboard/cube/cube-analysis.base.mjs +3 -3
  341. package/esm2020/lib/dashboard/cube/cube-analysis.widget.mjs +3 -3
  342. package/esm2020/lib/dashboard/cube/cube-chart.widget.mjs +5 -4
  343. package/esm2020/lib/dashboard/cube/documents.widget.mjs +3 -3
  344. package/esm2020/lib/dashboard/cube/filter/filter.component.mjs +3 -3
  345. package/esm2020/lib/dashboard/dashboard.component.mjs +3 -3
  346. package/esm2020/lib/dashboard/dashboard.pane.component.mjs +3 -3
  347. package/esm2020/lib/dashboard/recents/recents.widget.mjs +3 -3
  348. package/esm2020/lib/dashboard/score/activity.widget.mjs +6 -7
  349. package/esm2020/lib/dashboard/score/compare-departments.widget.mjs +7 -8
  350. package/esm2020/lib/dashboard/score/peers-performance.widget.mjs +7 -8
  351. package/esm2020/lib/dashboard/score/pending-results.widget.mjs +7 -8
  352. package/esm2020/lib/dashboard/score/personal-score.widget.mjs +5 -5
  353. package/esm2020/lib/dashboard/widget-item.component.mjs +3 -3
  354. package/esm2020/lib/desktop.module.mjs +5 -9
  355. package/esm2020/lib/home/about/about.dialog.mjs +8 -9
  356. package/esm2020/lib/home/home-base.component.mjs +3 -3
  357. package/esm2020/lib/home/home.desktop.component.mjs +3 -3
  358. package/esm2020/lib/home/home.mobile.component.mjs +3 -3
  359. package/esm2020/lib/home/notifications/notifications.component.mjs +7 -6
  360. package/esm2020/lib/home/options/options.component.mjs +3 -3
  361. package/esm2020/lib/home/outofoffice/outofoffice.component.mjs +3 -3
  362. package/esm2020/lib/home/search.service.mjs +11 -8
  363. package/esm2020/lib/home/sign/sign.component.mjs +3 -3
  364. package/esm2020/lib/home/tools.component.mjs +3 -3
  365. package/esm2020/lib/impersonate/impersonate.component.mjs +3 -3
  366. package/esm2020/lib/mobile.module.mjs +5 -9
  367. package/esm2020/lib/modules/chart.module.mjs +9 -9
  368. package/esm2020/lib/modules/circular-gauge.module.mjs +4 -4
  369. package/esm2020/lib/modules/date.adapter.mjs +30 -0
  370. package/esm2020/lib/modules/datepicker.intl.mjs +39 -0
  371. package/esm2020/lib/modules/diagram.module.mjs +4 -4
  372. package/esm2020/lib/modules/gantt.module.mjs +17 -0
  373. package/esm2020/lib/modules/grid.module.mjs +4 -4
  374. package/esm2020/lib/modules/material.module.mjs +15 -9
  375. package/esm2020/lib/modules/paginator.intl.mjs +21 -0
  376. package/esm2020/lib/modules/pivot.module.mjs +4 -4
  377. package/esm2020/lib/modules/schedule.module.mjs +4 -4
  378. package/esm2020/lib/modules/spreadsheet.module.mjs +4 -4
  379. package/esm2020/lib/modules/stepper.intl.mjs +17 -0
  380. package/esm2020/lib/modules/texteditor.module.mjs +27 -0
  381. package/esm2020/lib/notifications/filter.component.mjs +3 -3
  382. package/esm2020/lib/notifications/notifications-table.component.mjs +6 -5
  383. package/esm2020/lib/notifications/notifications.mobile.component.mjs +3 -3
  384. package/esm2020/lib/notifications/notifications.pane.component.mjs +3 -3
  385. package/esm2020/lib/notifications/notifications.service.mjs +3 -3
  386. package/esm2020/lib/notifications/types/commented.notification.mjs +3 -3
  387. package/esm2020/lib/notifications/types/cube-anomaly.notification.mjs +3 -3
  388. package/esm2020/lib/notifications/types/escalated.notification.mjs +3 -3
  389. package/esm2020/lib/notifications/types/liked.notification.mjs +3 -3
  390. package/esm2020/lib/notifications/types/long-running-task.notification.mjs +3 -3
  391. package/esm2020/lib/notifications/types/notification-base.mjs +3 -3
  392. package/esm2020/lib/notifications/types/nudge.notification.mjs +6 -7
  393. package/esm2020/lib/notifications/types/state-changed.notification.mjs +3 -3
  394. package/esm2020/lib/notifications/types/tagged.notification.mjs +3 -3
  395. package/esm2020/lib/notifications/types/text.notification.mjs +3 -3
  396. package/esm2020/lib/notifications/types/upcoming-event.notification.mjs +7 -8
  397. package/esm2020/lib/options/options.component.mjs +3 -3
  398. package/esm2020/lib/options/options.service.mjs +3 -3
  399. package/esm2020/lib/reports/arguments-component.mjs +3 -3
  400. package/esm2020/lib/reports/cube/grid-documents.component.mjs +4 -4
  401. package/esm2020/lib/reports/cube/table-documents.component.mjs +3 -3
  402. package/esm2020/lib/reports/cube/usage-args.component.mjs +3 -3
  403. package/esm2020/lib/reports/cube/usage-base.mjs +3 -3
  404. package/esm2020/lib/reports/cube/usage-chart.component.mjs +3 -3
  405. package/esm2020/lib/reports/cube/usage-pivot.component.mjs +3 -3
  406. package/esm2020/lib/reports/report-viewer.component.mjs +3 -3
  407. package/esm2020/lib/reports/report.mobile.component.mjs +3 -3
  408. package/esm2020/lib/reports/report.pane.component.mjs +3 -3
  409. package/esm2020/lib/reports/reports-menu.component.mjs +3 -3
  410. package/esm2020/lib/reports/substitution/substitution.component.mjs +4 -4
  411. package/esm2020/lib/reports/table/table-view.component.mjs +3 -3
  412. package/esm2020/lib/reports/tasks/tasks.component.mjs +3 -3
  413. package/esm2020/lib/routes.mobile.mjs +1 -1
  414. package/esm2020/lib/scheduler/schedule.component.mjs +8 -9
  415. package/esm2020/lib/scheduler/scheduler.mobile.component.mjs +7 -8
  416. package/esm2020/lib/scheduler/scheduler.pane.component.mjs +7 -8
  417. package/esm2020/lib/shared.module.mjs +38 -28
  418. package/esm2020/lib/system.module.mjs +5 -9
  419. package/esm2020/lib/views/cube/chart.component.mjs +3 -3
  420. package/esm2020/lib/views/cube/cube-base.mjs +3 -3
  421. package/esm2020/lib/views/cube/explore.component.mjs +3 -3
  422. package/esm2020/lib/views/cube/matrix.component.mjs +5 -5
  423. package/esm2020/lib/views/cube/parallel.component.mjs +5 -5
  424. package/esm2020/lib/views/cube/pivot.component.mjs +3 -3
  425. package/esm2020/lib/views/cube/sum.component.mjs +5 -5
  426. package/esm2020/lib/views/cube/view.component.mjs +3 -3
  427. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +6 -7
  428. package/esm2020/lib/views/view-item.component.mjs +3 -3
  429. package/esm2020/lib/views/views.component.mjs +3 -3
  430. package/esm2020/lib/views/views.mobile.component.mjs +3 -3
  431. package/esm2020/lib/views/views.pane.component.mjs +3 -3
  432. package/esm2020/public-api.mjs +7 -2
  433. package/fesm2015/bizdoc-core.mjs +1444 -1200
  434. package/fesm2015/bizdoc-core.mjs.map +1 -1
  435. package/fesm2020/bizdoc-core.mjs +1444 -1198
  436. package/fesm2020/bizdoc-core.mjs.map +1 -1
  437. package/lib/admin/diff/configuration-diff.component.d.ts +1 -1
  438. package/lib/bizdoc.module.d.ts +6 -7
  439. package/lib/browse/browse-items.component.d.ts +1 -1
  440. package/lib/chat/conversation.component.d.ts +1 -1
  441. package/lib/compose/trace/flow.component.d.ts +1 -1
  442. package/lib/compose/trace/trace.component.d.ts +1 -1
  443. package/lib/compose/version-compare/version.pane.component.d.ts +1 -1
  444. package/lib/core/pipes/calendar.pipe.d.ts +27 -0
  445. package/lib/core/pipes/date-format.pipe.d.ts +8 -0
  446. package/lib/core/pipes/daterange.pipe.d.ts +1 -1
  447. package/lib/core/pipes/difference.pipe.d.ts +7 -0
  448. package/lib/core/pipes/duration-format.pipe.d.ts +11 -0
  449. package/lib/core/pipes/duration.pipe.d.ts +5 -8
  450. package/lib/core/pipes/time-ago.pipe.d.ts +16 -0
  451. package/lib/core/session.service.d.ts +2 -1
  452. package/lib/core/translate.service.d.ts +2 -56
  453. package/lib/cube/accum/accum.component.d.ts +1 -0
  454. package/lib/cube/chart/chart.component.d.ts +4 -2
  455. package/lib/cube/cube-view.component.d.ts +4 -5
  456. package/lib/cube/declarations.d.ts +1 -0
  457. package/lib/cube/grid/grid.component.d.ts +2 -3
  458. package/lib/cube/grid/spreadsheet.component.d.ts +1 -0
  459. package/lib/cube/matrix/table.component.d.ts +2 -2
  460. package/lib/cube/parallel/item.d.ts +2 -2
  461. package/lib/cube/pivot/pivot.component.d.ts +3 -5
  462. package/lib/cube/sum/sum.component.d.ts +1 -1
  463. package/lib/dashboard/score/peers-performance.widget.d.ts +1 -1
  464. package/lib/dashboard/score/personal-score.widget.d.ts +1 -1
  465. package/lib/desktop.module.d.ts +2 -3
  466. package/lib/home/about/about.dialog.d.ts +2 -1
  467. package/lib/mobile.module.d.ts +2 -3
  468. package/lib/modules/chart.module.d.ts +1 -1
  469. package/lib/modules/date.adapter.d.ts +13 -0
  470. package/lib/modules/datepicker.intl.d.ts +30 -0
  471. package/lib/modules/gantt.module.d.ts +7 -0
  472. package/lib/modules/paginator.intl.d.ts +14 -0
  473. package/lib/modules/stepper.intl.d.ts +10 -0
  474. package/lib/modules/texteditor.module.d.ts +8 -0
  475. package/lib/notifications/types/nudge.notification.d.ts +2 -1
  476. package/lib/notifications/types/upcoming-event.notification.d.ts +2 -1
  477. package/lib/shared.module.d.ts +175 -172
  478. package/lib/system.module.d.ts +4 -5
  479. package/lib/views/cube/matrix.component.d.ts +2 -2
  480. package/package.json +3 -6
  481. package/public-api.d.ts +6 -1
@@ -16,9 +16,9 @@ export class FormPipe {
16
16
  return `_${value}`;
17
17
  }
18
18
  }
19
- FormPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FormPipe, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Pipe });
20
- FormPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FormPipe, name: "form" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FormPipe, decorators: [{
19
+ FormPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FormPipe, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Pipe });
20
+ FormPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FormPipe, name: "form" });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FormPipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{ name: 'form' }]
24
24
  }], ctorParameters: function () { return [{ type: i1.SessionService }]; } });
@@ -9,9 +9,9 @@ export class JoinPipe {
9
9
  return this._translate.join(value);
10
10
  }
11
11
  }
12
- JoinPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: JoinPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
13
- JoinPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: JoinPipe, name: "join" });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: JoinPipe, decorators: [{
12
+ JoinPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JoinPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ JoinPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JoinPipe, name: "join" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: JoinPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{ name: 'join' }]
17
17
  }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
@@ -16,9 +16,9 @@ export class RolePipe {
16
16
  return `_${value}`;
17
17
  }
18
18
  }
19
- RolePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: RolePipe, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Pipe });
20
- RolePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: RolePipe, name: "role" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: RolePipe, decorators: [{
19
+ RolePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RolePipe, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Pipe });
20
+ RolePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RolePipe, name: "role" });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: RolePipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{ name: 'role' }]
24
24
  }], ctorParameters: function () { return [{ type: i1.SessionService }]; } });
@@ -9,9 +9,9 @@ export class SanitizeHtmlPipe {
9
9
  return value ? this._sanitizer.bypassSecurityTrustHtml(value) : '';
10
10
  }
11
11
  }
12
- SanitizeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SanitizeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
- SanitizeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SanitizeHtmlPipe, name: "sanitizeHtml" });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SanitizeHtmlPipe, decorators: [{
12
+ SanitizeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SanitizeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
13
+ SanitizeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SanitizeHtmlPipe, name: "sanitizeHtml" });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SanitizeHtmlPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{ name: 'sanitizeHtml' }]
17
17
  }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
@@ -19,9 +19,9 @@ export class ArraySortPipe {
19
19
  return array;
20
20
  }
21
21
  }
22
- ArraySortPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ArraySortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
23
- ArraySortPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ArraySortPipe, name: "sort" });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: ArraySortPipe, decorators: [{
22
+ ArraySortPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ArraySortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
23
+ ArraySortPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ArraySortPipe, name: "sort" });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ArraySortPipe, decorators: [{
25
25
  type: Pipe,
26
26
  args: [{
27
27
  name: "sort"
@@ -37,9 +37,9 @@ export class FilterPipe {
37
37
  return array.filter(i => i[field].toLowerCase().indexOf(value) > -1);
38
38
  }
39
39
  }
40
- FilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
41
- FilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FilterPipe, name: "filter" });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: FilterPipe, decorators: [{
40
+ FilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
41
+ FilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FilterPipe, name: "filter" });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: FilterPipe, decorators: [{
43
43
  type: Pipe,
44
44
  args: [{
45
45
  name: "filter"
@@ -16,9 +16,9 @@ export class StatePipe {
16
16
  return `_${value}`;
17
17
  }
18
18
  }
19
- StatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: StatePipe, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Pipe });
20
- StatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: StatePipe, name: "state" });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: StatePipe, decorators: [{
19
+ StatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StatePipe, deps: [{ token: i1.SessionService }], target: i0.ɵɵFactoryTarget.Pipe });
20
+ StatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StatePipe, name: "state" });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: StatePipe, decorators: [{
22
22
  type: Pipe,
23
23
  args: [{ name: 'state' }]
24
24
  }], ctorParameters: function () { return [{ type: i1.SessionService }]; } });
@@ -0,0 +1,66 @@
1
+ import { Pipe } from '@angular/core';
2
+ /// <reference path="./node_modules/dayjs/plugin/relativeTime.d.ts" />
3
+ import dayjs from 'dayjs';
4
+ import * as i0 from "@angular/core";
5
+ export class TimeAgoPipe {
6
+ constructor(cdRef, ngZone) {
7
+ this.cdRef = cdRef;
8
+ this.ngZone = ngZone;
9
+ }
10
+ transform(value, ...args) {
11
+ this.lastTime = dayjs(value);
12
+ this.createTimer();
13
+ return this.lastTime.fromNow();
14
+ }
15
+ ngOnDestroy() {
16
+ this.removeTimer();
17
+ }
18
+ createTimer() {
19
+ if (this.currentTimer) {
20
+ return;
21
+ }
22
+ const timeToUpdate = getSecondsUntilUpdate(this.lastTime) * 1000;
23
+ this.currentTimer = this.ngZone.runOutsideAngular(() => {
24
+ if (typeof window !== 'undefined') {
25
+ return window.setTimeout(() => {
26
+ this.currentTimer = null;
27
+ this.ngZone.run(() => this.cdRef.markForCheck());
28
+ }, timeToUpdate);
29
+ }
30
+ else {
31
+ return null;
32
+ }
33
+ });
34
+ }
35
+ removeTimer() {
36
+ if (this.currentTimer) {
37
+ window.clearTimeout(this.currentTimer);
38
+ this.currentTimer = null;
39
+ }
40
+ }
41
+ }
42
+ TimeAgoPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TimeAgoPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Pipe });
43
+ TimeAgoPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TimeAgoPipe, name: "amTimeAgo", pure: false });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TimeAgoPipe, decorators: [{
45
+ type: Pipe,
46
+ args: [{
47
+ name: 'amTimeAgo',
48
+ pure: false
49
+ }]
50
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; } });
51
+ function getSecondsUntilUpdate(time) {
52
+ const howOld = Math.abs(time.diff(new Date(), 'minute'));
53
+ if (howOld < 1) {
54
+ return 1;
55
+ }
56
+ else if (howOld < 60) {
57
+ return 30;
58
+ }
59
+ else if (howOld < 180) {
60
+ return 300;
61
+ }
62
+ else {
63
+ return 3600;
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29yZS9waXBlcy90aW1lLWFnby5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBNkIsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUMvRSxzRUFBc0U7QUFDdEUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOztBQU0xQixNQUFNLE9BQU8sV0FBVztJQVF0QixZQUFvQixLQUF3QixFQUFVLE1BQWM7UUFBaEQsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3BFLENBQUM7SUFORCxTQUFTLENBQUMsS0FBVSxFQUFFLEdBQUcsSUFBVztRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFHRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDTyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixPQUFPO1NBQ1I7UUFFRCxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBRWpFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDckQsSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUU7Z0JBQ2pDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO29CQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7Z0JBQ25ELENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDOzt3R0FyQ1UsV0FBVztzR0FBWCxXQUFXOzJGQUFYLFdBQVc7a0JBSnZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFdBQVc7b0JBQ2pCLElBQUksRUFBRSxLQUFLO2lCQUNaOztBQXdDRCxTQUFTLHFCQUFxQixDQUFDLElBQWlCO0lBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDekQsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ2QsT0FBTyxDQUFDLENBQUM7S0FDVjtTQUFNLElBQUksTUFBTSxHQUFHLEVBQUUsRUFBRTtRQUN0QixPQUFPLEVBQUUsQ0FBQztLQUNYO1NBQU0sSUFBSSxNQUFNLEdBQUcsR0FBRyxFQUFFO1FBQ3ZCLE9BQU8sR0FBRyxDQUFDO0tBQ1o7U0FBTTtRQUNMLE9BQU8sSUFBSSxDQUFDO0tBQ2I7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIE5nWm9uZSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLy8gPHJlZmVyZW5jZSBwYXRoPVwiLi9ub2RlX21vZHVsZXMvZGF5anMvcGx1Z2luL3JlbGF0aXZlVGltZS5kLnRzXCIgLz5cclxuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcclxuXHJcbkBQaXBlKHtcclxuICBuYW1lOiAnYW1UaW1lQWdvJyxcclxuICBwdXJlOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGltZUFnb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBwcml2YXRlIGN1cnJlbnRUaW1lcjogbnVtYmVyO1xyXG4gIGxhc3RUaW1lOiBkYXlqcy5EYXlqcztcclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwgLi4uYXJnczogYW55W10pIHtcclxuICAgIHRoaXMubGFzdFRpbWUgPSBkYXlqcyh2YWx1ZSk7XHJcbiAgICB0aGlzLmNyZWF0ZVRpbWVyKCk7XHJcbiAgICByZXR1cm4gdGhpcy5sYXN0VGltZS5mcm9tTm93KCk7XHJcbiAgfVxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIG5nWm9uZTogTmdab25lKSB7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZW1vdmVUaW1lcigpO1xyXG4gIH1cclxuICBwcml2YXRlIGNyZWF0ZVRpbWVyKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRpbWVyKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB0aW1lVG9VcGRhdGUgPSBnZXRTZWNvbmRzVW50aWxVcGRhdGUodGhpcy5sYXN0VGltZSkgKiAxMDAwO1xyXG5cclxuICAgIHRoaXMuY3VycmVudFRpbWVyID0gdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcclxuICAgICAgICByZXR1cm4gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jdXJyZW50VGltZXIgPSBudWxsO1xyXG4gICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCkpO1xyXG4gICAgICAgIH0sIHRpbWVUb1VwZGF0ZSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVUaW1lcigpIHtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRUaW1lcikge1xyXG4gICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpbWVyKTtcclxuICAgICAgdGhpcy5jdXJyZW50VGltZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5mdW5jdGlvbiBnZXRTZWNvbmRzVW50aWxVcGRhdGUodGltZTogZGF5anMuRGF5anMpIHtcclxuICBjb25zdCBob3dPbGQgPSBNYXRoLmFicyh0aW1lLmRpZmYobmV3IERhdGUoKSwgJ21pbnV0ZScpKTtcclxuICBpZiAoaG93T2xkIDwgMSkge1xyXG4gICAgcmV0dXJuIDE7XHJcbiAgfSBlbHNlIGlmIChob3dPbGQgPCA2MCkge1xyXG4gICAgcmV0dXJuIDMwO1xyXG4gIH0gZWxzZSBpZiAoaG93T2xkIDwgMTgwKSB7XHJcbiAgICByZXR1cm4gMzAwO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gMzYwMDtcclxuICB9XHJcbn1cclxuIl19
@@ -14,9 +14,9 @@ export class TranslatePipe {
14
14
  return str;
15
15
  }
16
16
  }
17
- TranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
18
- TranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TranslatePipe, name: "translate" });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TranslatePipe, decorators: [{
17
+ TranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
18
+ TranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslatePipe, name: "translate" });
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslatePipe, decorators: [{
20
20
  type: Pipe,
21
21
  args: [{ name: 'translate' }]
22
22
  }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
@@ -31,9 +31,9 @@ export class TypeValuePipe {
31
31
  }));
32
32
  }
33
33
  }
34
- TypeValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TypeValuePipe, deps: [{ token: i1.TranslateService }, { token: i2.DatasourceService }], target: i0.ɵɵFactoryTarget.Pipe });
35
- TypeValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TypeValuePipe, name: "typeValue" });
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TypeValuePipe, decorators: [{
34
+ TypeValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TypeValuePipe, deps: [{ token: i1.TranslateService }, { token: i2.DatasourceService }], target: i0.ɵɵFactoryTarget.Pipe });
35
+ TypeValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TypeValuePipe, name: "typeValue" });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TypeValuePipe, decorators: [{
37
37
  type: Pipe,
38
38
  args: [{
39
39
  name: 'typeValue',
@@ -12,9 +12,9 @@ export class UserNamePipe {
12
12
  return subject;
13
13
  }
14
14
  }
15
- UserNamePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: UserNamePipe, deps: [{ token: i1.AccountService }], target: i0.ɵɵFactoryTarget.Pipe });
16
- UserNamePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: UserNamePipe, name: "userName" });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: UserNamePipe, decorators: [{
15
+ UserNamePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UserNamePipe, deps: [{ token: i1.AccountService }], target: i0.ɵɵFactoryTarget.Pipe });
16
+ UserNamePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UserNamePipe, name: "userName" });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: UserNamePipe, decorators: [{
18
18
  type: Pipe,
19
19
  args: [{ name: 'userName' }]
20
20
  }], ctorParameters: function () { return [{ type: i1.AccountService }]; } });
@@ -22,9 +22,9 @@ export class PopupComponent {
22
22
  this._ref._opened.next(this._instance);
23
23
  }
24
24
  }
25
- PopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PopupComponent, deps: [{ token: POPUP_DATA }, { token: i1.PopupRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
26
- PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: PopupComponent, selector: "bizdoc-popup", viewQueries: [{ propertyName: "_container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div class=\"popup-content\">\r\n <ng-container #container></ng-container>\r\n</div>\r\n<div class=\"tooltip-container\">\r\n <div class=\"tooltip\"></div>\r\n</div>\r\n" });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PopupComponent, decorators: [{
25
+ PopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PopupComponent, deps: [{ token: POPUP_DATA }, { token: i1.PopupRef }, { token: i0.Injector }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });
26
+ PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: PopupComponent, selector: "bizdoc-popup", viewQueries: [{ propertyName: "_container", first: true, predicate: ["container"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div class=\"popup-content\">\r\n <ng-container #container></ng-container>\r\n</div>\r\n<div class=\"tooltip-container\">\r\n <div class=\"tooltip\"></div>\r\n</div>\r\n" });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PopupComponent, decorators: [{
28
28
  type: Component,
29
29
  args: [{ selector: 'bizdoc-popup', template: "<div class=\"popup-content\">\r\n <ng-container #container></ng-container>\r\n</div>\r\n<div class=\"tooltip-container\">\r\n <div class=\"tooltip\"></div>\r\n</div>\r\n" }]
30
30
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -139,9 +139,9 @@ export class Popup {
139
139
  return pRef;
140
140
  }
141
141
  }
142
- Popup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: Popup, deps: [{ token: i1.Overlay }, { token: i2.SessionService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
143
- Popup.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: Popup, providedIn: 'root' });
144
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: Popup, decorators: [{
142
+ Popup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Popup, deps: [{ token: i1.Overlay }, { token: i2.SessionService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
143
+ Popup.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Popup, providedIn: 'root' });
144
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Popup, decorators: [{
145
145
  type: Injectable,
146
146
  args: [{ providedIn: 'root' }]
147
147
  }], ctorParameters: function () { return [{ type: i1.Overlay }, { type: i2.SessionService }, { type: i0.Injector }]; } });
@@ -9,9 +9,9 @@ export class TooltipComponent {
9
9
  _element.nativeElement.innerHTML = _data;
10
10
  }
11
11
  }
12
- TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TooltipComponent, deps: [{ token: POPUP_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
13
- TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: TooltipComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TooltipComponent, decorators: [{
12
+ TooltipComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TooltipComponent, deps: [{ token: POPUP_DATA }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
13
+ TooltipComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TooltipComponent, selector: "ng-component", ngImport: i0, template: '', isInline: true });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TooltipComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ template: '' }]
17
17
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -55,9 +55,9 @@ export class TooltipDirective {
55
55
  }
56
56
  }
57
57
  TooltipDirective._active = [];
58
- TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i1.Popup }], target: i0.ɵɵFactoryTarget.Directive });
59
- TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: { content: ["bizdocTooltip", "content"], template: ["bizdocTooltipTemplate", "template"], context: ["bizdocTooltipContext", "context"], position: ["bizdocTooltipPosition", "position"], duration: ["bizdocTooltipDuration", "duration"], disabled: ["bizdocTooltipDisabled", "disabled"] }, ngImport: i0 });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: TooltipDirective, decorators: [{
58
+ TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TooltipDirective, deps: [{ token: i0.ElementRef }, { token: i1.Popup }], target: i0.ɵɵFactoryTarget.Directive });
59
+ TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: { content: ["bizdocTooltip", "content"], template: ["bizdocTooltipTemplate", "template"], context: ["bizdocTooltipContext", "context"], position: ["bizdocTooltipPosition", "position"], duration: ["bizdocTooltipDuration", "duration"], disabled: ["bizdocTooltipDisabled", "disabled"] }, ngImport: i0 });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TooltipDirective, decorators: [{
61
61
  type: Directive,
62
62
  args: [{ selector: '[bizdocTooltip]' }]
63
63
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.Popup }]; }, propDecorators: { content: [{
@@ -17,9 +17,9 @@ export class AskDialog {
17
17
  });
18
18
  }
19
19
  }
20
- AskDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: AskDialog, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
21
- AskDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: AskDialog, selector: "bizdoc-ask", ngImport: i0, template: "<h2 mat-dialog-title>{{title}}</h2>\r\n<mat-dialog-content class=\"mat-body\">{{content}}</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" [color]=\"color\">{{ok}}</button>\r\n <button mat-button mat-dialog-close>{{cancel}}</button>\r\n</mat-dialog-actions>\r\n", components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: AskDialog, decorators: [{
20
+ AskDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AskDialog, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
21
+ AskDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: AskDialog, selector: "bizdoc-ask", ngImport: i0, template: "<h2 mat-dialog-title>{{title}}</h2>\r\n<mat-dialog-content class=\"mat-body\">{{content}}</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" [color]=\"color\">{{ok}}</button>\r\n <button mat-button mat-dialog-close>{{cancel}}</button>\r\n</mat-dialog-actions>\r\n", components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }, { type: i3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }] });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: AskDialog, decorators: [{
23
23
  type: Component,
24
24
  args: [{ selector: 'bizdoc-ask', template: "<h2 mat-dialog-title>{{title}}</h2>\r\n<mat-dialog-content class=\"mat-body\">{{content}}</mat-dialog-content>\r\n<mat-dialog-actions>\r\n <button mat-button [mat-dialog-close]=\"true\" [color]=\"color\">{{ok}}</button>\r\n <button mat-button mat-dialog-close>{{cancel}}</button>\r\n</mat-dialog-actions>\r\n" }]
25
25
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -9,9 +9,9 @@ export class MaskComponent {
9
9
  this.resource = resource;
10
10
  }
11
11
  }
12
- MaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: MaskComponent, deps: [{ token: MASK_DATA }], target: i0.ɵɵFactoryTarget.Component });
13
- MaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: MaskComponent, selector: "bizdoc-mask", ngImport: i0, template: "<h1 class=\"mat-display-2\">{{resource|translate}}</h1>\r\n", styles: [":host{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;padding:2em;opacity:.8;display:flex;flex-direction:row;place-content:center center;align-items:center}\n"], pipes: { "translate": i1.TranslatePipe } });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: MaskComponent, decorators: [{
12
+ MaskComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MaskComponent, deps: [{ token: MASK_DATA }], target: i0.ɵɵFactoryTarget.Component });
13
+ MaskComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: MaskComponent, selector: "bizdoc-mask", ngImport: i0, template: "<h1 class=\"mat-display-2\">{{resource|translate}}</h1>\r\n", styles: [":host{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;padding:2em;opacity:.8;display:flex;flex-direction:row;place-content:center center;align-items:center}\n"], pipes: { "translate": i1.TranslatePipe } });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: MaskComponent, decorators: [{
15
15
  type: Component,
16
16
  args: [{ selector: 'bizdoc-mask', template: "<h1 class=\"mat-display-2\">{{resource|translate}}</h1>\r\n", styles: [":host{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#fff;padding:2em;opacity:.8;display:flex;flex-direction:row;place-content:center center;align-items:center}\n"] }]
17
17
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -77,9 +77,9 @@ export class PromptService {
77
77
  return oRef;
78
78
  }
79
79
  }
80
- PromptService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PromptService, deps: [{ token: i1.MatDialog }, { token: i2.MatSnackBar }, { token: i0.Injector }, { token: i3.Overlay }, { token: i4.TranslateService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Injectable });
81
- PromptService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PromptService, providedIn: 'root' });
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PromptService, decorators: [{
80
+ PromptService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PromptService, deps: [{ token: i1.MatDialog }, { token: i2.MatSnackBar }, { token: i0.Injector }, { token: i3.Overlay }, { token: i4.TranslateService }, { token: i5.SessionService }], target: i0.ɵɵFactoryTarget.Injectable });
81
+ PromptService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PromptService, providedIn: 'root' });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PromptService, decorators: [{
83
83
  type: Injectable,
84
84
  args: [{ providedIn: 'root' }]
85
85
  }], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.MatSnackBar }, { type: i0.Injector }, { type: i3.Overlay }, { type: i4.TranslateService }, { type: i5.SessionService }]; } });
@@ -13,9 +13,9 @@ export class PaneRouter extends RouterImpl {
13
13
  this._router.navigate(commands, extra);
14
14
  }
15
15
  }
16
- PaneRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PaneRouter, deps: [{ token: i1.PanesRouter }], target: i0.ɵɵFactoryTarget.Injectable });
17
- PaneRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PaneRouter });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PaneRouter, decorators: [{
16
+ PaneRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PaneRouter, deps: [{ token: i1.PanesRouter }], target: i0.ɵɵFactoryTarget.Injectable });
17
+ PaneRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PaneRouter });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PaneRouter, decorators: [{
19
19
  type: Injectable
20
20
  }], ctorParameters: function () { return [{ type: i1.PanesRouter }]; } });
21
21
  export class NgRouter extends RouterImpl {
@@ -27,9 +27,9 @@ export class NgRouter extends RouterImpl {
27
27
  this._router.navigate(commands, extra);
28
28
  }
29
29
  }
30
- NgRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: NgRouter, deps: [{ token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
31
- NgRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: NgRouter });
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: NgRouter, decorators: [{
30
+ NgRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NgRouter, deps: [{ token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
31
+ NgRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NgRouter });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NgRouter, decorators: [{
33
33
  type: Injectable
34
34
  }], ctorParameters: function () { return [{ type: i2.Router }]; } });
35
35
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBSTNDLE1BQU0sT0FBZ0IsVUFBVTtDQUUvQjtBQUVELE1BQU0sT0FBTyxVQUFXLFNBQVEsVUFBVTtJQUN4QyxZQUNVLE9BQW9CO1FBRTVCLEtBQUssRUFBRSxDQUFDO1FBRkEsWUFBTyxHQUFQLE9BQU8sQ0FBYTtJQUc5QixDQUFDO0lBQ0QsUUFBUSxDQUFDLFFBQWtCLEVBQUUsS0FBTTtRQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekMsQ0FBQzs7dUdBUlUsVUFBVTsyR0FBVixVQUFVOzJGQUFWLFVBQVU7a0JBRHRCLFVBQVU7O0FBWVgsTUFBTSxPQUFPLFFBQVMsU0FBUSxVQUFVO0lBQ3RDLFlBQ1UsT0FBZTtRQUVyQixLQUFLLEVBQUUsQ0FBQztRQUZGLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFHekIsQ0FBQztJQUNELFFBQVEsQ0FBQyxRQUFrQixFQUFFLEtBQU07UUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O3FHQVJVLFFBQVE7eUdBQVIsUUFBUTsyRkFBUixRQUFRO2tCQURwQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgUGFuZXNSb3V0ZXIgfSBmcm9tIFwiLi9zbG90cy9yb3V0ZXIuc2VydmljZVwiO1xyXG5cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJvdXRlckltcGwge1xyXG4gIGFic3RyYWN0IG5hdmlnYXRlKGNvbW1hbmRzOiAoc3RyaW5nfG51bWJlcilbXSwgZXh0cmE/KTtcclxufVxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQYW5lUm91dGVyIGV4dGVuZHMgUm91dGVySW1wbCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFBhbmVzUm91dGVyXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuICBuYXZpZ2F0ZShjb21tYW5kczogc3RyaW5nW10sIGV4dHJhPykge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKGNvbW1hbmRzLCBleHRyYSk7XHJcbiAgfVxyXG59XHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIE5nUm91dGVyIGV4dGVuZHMgUm91dGVySW1wbCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlclxyXG4gICkge1xyXG4gICAgICBzdXBlcigpO1xyXG4gIH1cclxuICBuYXZpZ2F0ZShjb21tYW5kczogc3RyaW5nW10sIGV4dHJhPykge1xyXG4gICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlKGNvbW1hbmRzLCBleHRyYSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -2,7 +2,7 @@ import { Injectable, Inject } from '@angular/core';
2
2
  import { Subject, fromEvent, Observable, of } from 'rxjs';
3
3
  import { tap } from 'rxjs/operators';
4
4
  import { HubConnectionState } from '@microsoft/signalr';
5
- import * as moment_ from 'moment';
5
+ import dayjs from 'dayjs';
6
6
  import { BIZDOC_CONFIG } from '../core/configuration';
7
7
  import { FirebaseService, FirebaseState } from './firebase.service';
8
8
  import { MATERIAL_PALETTES } from './colors';
@@ -10,7 +10,6 @@ import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/common/http";
11
11
  import * as i2 from "ngx-cookie-service";
12
12
  import * as i3 from "./hub.service";
13
- const moment = moment_.default;
14
13
  const THEMES = [
15
14
  { name: 'default', primary: 'purple', color: 'purple', accent: 'amber' },
16
15
  { name: 'indigo', primary: 'indigo', color: '#3f51b5', accent: 'pink' },
@@ -35,6 +34,7 @@ export class SessionService {
35
34
  _config && _config.maps && this._loadMaps();
36
35
  }
37
36
  get profile() { return this._profile; }
37
+ get gender() { return this._profile.byGender || this._profile.gender; }
38
38
  get accentPalette() {
39
39
  return Object.values(MATERIAL_PALETTES[this.theme.accent]).
40
40
  slice(1);
@@ -104,9 +104,9 @@ export class SessionService {
104
104
  get isOutOfOffice() {
105
105
  const options = this.profile.options.outOfOffice;
106
106
  if (options && options.active) {
107
- const today = moment().startOf('day');
108
- return (!options.from || moment(options.from).startOf('day') <= today)
109
- && (!options.to || moment(options.to).startOf('day') >= today);
107
+ const today = dayjs().startOf('day');
108
+ return (!options.from || dayjs(options.from).startOf('day') <= today)
109
+ && (!options.to || dayjs(options.to).startOf('day') >= today);
110
110
  }
111
111
  else
112
112
  return false;
@@ -222,13 +222,13 @@ export class SessionService {
222
222
  document.head.append(script);
223
223
  }
224
224
  }
225
- SessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SessionService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: i2.CookieService }, { token: i3.HubService }], target: i0.ɵɵFactoryTarget.Injectable });
226
- SessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SessionService, providedIn: 'root' });
227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SessionService, decorators: [{
225
+ SessionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SessionService, deps: [{ token: BIZDOC_CONFIG }, { token: i1.HttpClient }, { token: i2.CookieService }, { token: i3.HubService }], target: i0.ɵɵFactoryTarget.Injectable });
226
+ SessionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SessionService, providedIn: 'root' });
227
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SessionService, decorators: [{
228
228
  type: Injectable,
229
229
  args: [{ providedIn: 'root' }]
230
230
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
231
231
  type: Inject,
232
232
  args: [BIZDOC_CONFIG]
233
233
  }] }, { type: i1.HttpClient }, { type: i2.CookieService }, { type: i3.HubService }]; } });
234
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssT0FBTyxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUEyQyxNQUFNLHVCQUF1QixDQUFDO0FBRS9GLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQUxWLE1BQU0sTUFBTSxHQUFJLE9BQWUsQ0FBQyxPQUFPLENBQUM7QUFRM0UsTUFBTSxNQUFNLEdBQVk7SUFDdEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtJQUN2RSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7SUFDdEUsRUFBRSxJQUFJLEVBQUUs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QUFnQixDQUFDLE1BQU0sRUFBRTtZQUM5QixTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdkQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ08sU0FBUztRQUNmLE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBMkIsQ0FBQyxNQUFNLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsR0FBRyxHQUFHLCtDQUErQyxNQUFNLDhCQUE4QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEgsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7MkdBak5VLGNBQWMsa0JBRUwsYUFBYTsrR0FGdEIsY0FBYyxjQURELE1BQU07MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFHbkIsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7IGNvbnN0IG1vbWVudCA9IChtb21lbnRfIGFzIGFueSkuZGVmYXVsdDtcclxuaW1wb3J0IHsgQklaRE9DX0NPTkZJRywgQml6RG9jQ29uZmlnLCBHb29nbGVNYXBzU2V0dGluZ3MsIFRoZW1lIH0gZnJvbSAnLi4vY29yZS9jb25maWd1cmF0aW9uJztcclxuaW1wb3J0IHsgUHJvZmlsZSwgVXNlckluZm8sIEF2YWlsYWJpbGl0eVN0YXRlLCBPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaXJlYmFzZVNlcnZpY2UsIEZpcmViYXNlU3RhdGUgfSBmcm9tICcuL2ZpcmViYXNlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdWJTZXJ2aWNlIH0gZnJvbSAnLi9odWIuc2VydmljZSc7XHJcbmltcG9ydCB7IE1BVEVSSUFMX1BBTEVUVEVTIH0gZnJvbSAnLi9jb2xvcnMnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE1vZGUgfSBmcm9tICcuL2Z1bmN0aW9ucyc7XHJcblxyXG5jb25zdCBUSEVNRVM6IFRoZW1lW10gPSBbXHJcbiAgeyBuYW1lOiAnZGVmYXVsdCcsIHByaW1hcnk6ICdwdXJwbGUnLCBjb2xvcjogJ3B1cnBsZScsIGFjY2VudDogJ2FtYmVyJyB9LFxyXG4gIHsgbmFtZTogJ2luZGlnbycsIHByaW1hcnk6ICdpbmRpZ28nLCBjb2xvcjogJyMzZjUxYjUnLCBhY2NlbnQ6ICdwaW5rJyB9LFxyXG4gIHsgbmFtZTogJ2dyZWVuJywgcHJpbWFyeTogJ2dyZWVuJywgY29sb3I6ICcjNENBRjUwJywgYWNjZW50OiAnYW1iZXInIH0sXHJcbiAgeyBuYW1lOiAnZGFyaycsIHByaW1hcnk6ICdkZWVwUHVycGxlJywgY29sb3I6ICcjNDA0MDQxJywgYWNjZW50OiAnYW1iZXInLCBkYXJrOiB0cnVlIH0sXHJcbiAgeyBuYW1lOiAnYnJvd24nLCBwcmltYXJ5OiAnYnJvd24nLCBjb2xvcjogJyM3OTU1NDgnLCBhY2NlbnQ6ICdncmV5JyB9XTtcclxuXHJcbmNvbnN0IFNVUFBPUlRFRF9MQU5HVUFHRVMgPSBbJ2VuLVVTJywgJ2hlLUlMJywgJ2RlLURFJ10sIFJUTF9MQU5HVUFMR0VTID0gWydoZS1JTCddO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBTZXNzaW9uU2VydmljZSB7XHJcbiAgcmVhZG9ubHkgVGhlbWVzOiBUaGVtZVtdID0gdGhpcy5fY29uZmlnLnRoZW1lcyB8fCBUSEVNRVM7XHJcbiAgY29uc3RydWN0b3IoQEluamVjdChCSVpET0NfQ09ORklHKSBwcml2YXRlIF9jb25maWc6IEJpekRvY0NvbmZpZyxcclxuICAgIHByaXZhdGUgX2h0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIF9jb29raWVzOiBDb29raWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaHViOiBIdWJTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgKCdzZXJ2aWNlV29ya2VyJyBpbiBuYXZpZ2F0b3IpICYmIHRoaXMuX2xvYWRTdygpO1xyXG4gICAgX2NvbmZpZyAmJiBfY29uZmlnLm1hcHMgJiYgdGhpcy5fbG9hZE1hcHMoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfbG9hZGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZUNoYW5nZSA9IG5ldyBTdWJqZWN0PFRoZW1lPigpO1xyXG4gIHJlYWRvbmx5IGxvYWRlZCA9IHRoaXMuX2xvYWRlZC5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSB0aGVtZUNoYW5nZSA9IHRoaXMuX3RoZW1lQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIHByaXZhdGUgX3Byb2ZpbGU6IFByb2ZpbGU7XHJcbiAgcHJpdmF0ZSBfbGFuZzogc3RyaW5nO1xyXG4gIHByaXZhdGUgX2ZpcmViYXNlID0gbmV3IEZpcmViYXNlU2VydmljZSh0aGlzLl9jb25maWcgPyB0aGlzLl9jb25maWcuZmlyZWJhc2UgOiBudWxsLCB0aGlzKTtcclxuICBnZXQgcHJvZmlsZSgpOiBQcm9maWxlIHsgcmV0dXJuIHRoaXMuX3Byb2ZpbGU7IH1cclxuICBnZXQgYWNjZW50UGFsZXR0ZSgpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyhNQVRFUklBTF9QQUxFVFRFU1t0aGlzLnRoZW1lLmFjY2VudF0pLlxyXG4gICAgICBzbGljZSgxKTtcclxuICB9XHJcbiAgZ2V0IHByaW1lcnlQYWxldHRlKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1BVEVSSUFMX1BBTEVUVEVTW3RoaXMudGhlbWUucHJpbWFyeV0pLlxyXG4gICAgICBzbGljZSgxKTtcclxuICB9XHJcbiAgZ2V0QWNjZW50KG1vZGU6IE1hdGVyaWFsTW9kZSA9IDUwMCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTUFURVJJQUxfUEFMRVRURVNbdGhpcy50aGVtZS5hY2NlbnRdW21vZGVdO1xyXG4gIH1cclxuICBnZXRQcmltZXJ5KG1vZGU6IE1hdGVyaWFsTW9kZSA9IDUwMCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gTUFURVJJQUxfUEFMRVRURVNbdGhpcy50aGVtZS5wcmltYXJ5XVttb2RlXTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfdGhlbWU6IFRoZW1lO1xyXG4gIGdldCB0aGVtZSgpOiBUaGVtZSB7XHJcbiAgICBpZiAoIXRoaXMuX3RoZW1lKSB7XHJcbiAgICAgIGNvbnN0IG5hbWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGhlbWUnKTtcclxuICAgICAgdGhpcy5fdGhlbWUgPSBuYW1lID8gdGhpcy5UaGVtZXMuZmluZCh0ID0+IHQubmFtZSA9PT0gbmFtZSkgOiB0aGlzLlRoZW1lc1swXTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl90aGVtZTtcclxuICB9XHJcbiAgc2V0IHRoZW1lKHZhbHVlOiBUaGVtZSkge1xyXG4gICAgdGhpcy5fdGhlbWUgPSB2YWx1ZTtcclxuICAgIHRoaXMuX2NoYW5nZVRoZW1lKHZhbHVlKS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgdGhpcy5fdGhlbWVDaGFuZ2UubmV4dCh2YWx1ZSkpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RoZW1lJywgdmFsdWUubmFtZSk7XHJcbiAgfVxyXG4gIGdldCBvaygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMucHJvZmlsZSAhPT0gdW5kZWZpbmVkOyB9XHJcbiAgLyoqIGxhbmd1YWdlIGRpcmVjdGlvbiAqL1xyXG4gIGdldCBkaXJlY3Rpb24oKTogRGlyZWN0aW9uIHtcclxuICAgIHJldHVybiBSVExfTEFOR1VBTEdFUy5pbmRleE9mKHRoaXMubGFuZ3VhZ2UpID4gLTEgPyAncnRsJyA6ICdsdHInO1xyXG4gIH1cclxuICBnZXQgaW52ZXJzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbiA9PT0gJ3J0bCc7XHJcbiAgfVxyXG4gIGdldCB1c2VySWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9wcm9maWxlLmJ5SWQgfHwgdGhpcy5wcm9maWxlLnVzZXJJZDtcclxuICB9XHJcbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMuX2xhbmcpIHtcclxuICAgICAgdGhpcy5fbGFuZyA9IHRoaXMuX2Nvb2tpZXMuZ2V0KCdsYW5nJyk7XHJcbiAgICAgIGlmICghdGhpcy5fbGFuZykge1xyXG4gICAgICAgIHRoaXMuX2xhbmcgPSB0aGlzLl9nZXRCcm93c2VyTGFuZygpIHx8ICdlbi1VUyc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9sYW5nO1xyXG4gIH1cclxuICBnZXQgYXJpYSgpIHsgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdhcmlhJykgPT09ICcxJyB9XHJcbiAgc2V0IGFyaWEodmFsOiBib29sZWFuKSB7IGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdhcmlhJywgdmFsID8gJzEnIDogJzAnKSB9XHJcbiAgc2V0IGxhbmd1YWdlKGNvZGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY29va2llcy5zZXQoJ2xhbmcnLCBjb2RlLCAzNjUsICcvJyk7XHJcbiAgfVxyXG4gIGdldCBsYW5ndWFnZXMoKTogc3RyaW5nW10geyByZXR1cm4gdGhpcy5fY29uZmlnLmxhbmd1YWdlcyA/IHRoaXMuX2NvbmZpZy5sYW5ndWFnZXMgOiBTVVBQT1JURURfTEFOR1VBR0VTOyB9XHJcbiAgZ2V0IGlzSW1wZXJzb25hdGluZygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMucHJvZmlsZS5ieUlkICE9PSB1bmRlZmluZWQ7IH1cclxuICAvKiogc3lzdGVtIGFkbWluICovXHJcbiAgZ2V0IGlzU3lzdGVtKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZS5zeXN0ZW07XHJcbiAgfVxyXG4gIC8qKiBvbmxpbmUgb3Igc2V0IGluIHByb2ZpbGUgKi9cclxuICBnZXQgc3RhdGUoKTogQXZhaWxhYmlsaXR5U3RhdGUge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZS5hdmFpbGFibGUgfHwgJ09ubGluZSc7XHJcbiAgfVxyXG4gIHNldCBzdGF0ZSh2YWx1ZTogQXZhaWxhYmlsaXR5U3RhdGUpIHtcclxuICAgIHRoaXMucHJvZmlsZS5hdmFpbGFibGUgPSB2YWx1ZSA9PT0gJ09ubGluZScgPyBudWxsIDogdmFsdWU7XHJcbiAgICB0aGlzLl9odHRwLnB1dChgL2FwaS9hY2NvdW50L2F2YWlsYWJsZT9tb2RlPSR7dGhpcy5wcm9maWxlLmF2YWlsYWJsZSB8fCAnJ31gLCB7fSkuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIC8qKiAqL1xyXG4gIGdldCBpc091dE9mT2ZmaWNlKCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMucHJvZmlsZS5vcHRpb25zLm91dE9mT2ZmaWNlO1xyXG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5hY3RpdmUpIHtcclxuICAgICAgY29uc3QgdG9kYXkgPSBtb21lbnQoKS5zdGFydE9mKCdkYXknKTtcclxuICAgICAgcmV0dXJuICghb3B0aW9ucy5mcm9tIHx8IG1vbWVudChvcHRpb25zLmZyb20pLnN0YXJ0T2YoJ2RheScpIDw9IHRvZGF5KVxyXG4gICAgICAgICYmICghb3B0aW9ucy50byB8fCBtb21lbnQob3B0aW9ucy50bykuc3RhcnRPZignZGF5JykgPj0gdG9kYXkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG4gIC8qKiB1cGRhdGUgcHJvZmlsZSAgKi9cclxuICB1cGRhdGUocHJvZmlsZTogT3B0aW9ucyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQoJy9hcGkvYWNjb3VudC91cGRhdGUnLCBwcm9maWxlKS5waXBlKHRhcCgoKSA9PlxyXG4gICAgICBPYmplY3QuYXNzaWduKHRoaXMuX3Byb2ZpbGUub3B0aW9ucywgcHJvZmlsZSkpKTtcclxuICB9XHJcbiAgLyoqIG1hcmsgZ3VpZGUgYXMgdmlzaXRlZCBpbiBwcm9maWxlICovXHJcbiAgZ3VpZGUobmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dChgL2FwaS9hY2NvdW50L2d1aWRlLyR7bmFtZX1gLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnBpcGUoXHJcbiAgICAgIHRhcCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZ3VpZGUgPSB0aGlzLl9wcm9maWxlLmd1aWRlcy5maW5kKGcgPT4gZy5uYW1lID09PSBuYW1lKTtcclxuICAgICAgICBpZiAoZ3VpZGUpIGd1aWRlLm1vZGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fcHJvZmlsZS5vcHRpb25zLmd1aWRlcy5wdXNoKG5hbWUpO1xyXG4gICAgICB9KSk7XHJcbiAgfVxyXG4gIC8qKiBnZXQgcHJvZmlsZSAqL1xyXG4gIHJlZnJlc2goKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxhbnk+KG9ic2VydmUgPT4ge1xyXG4gICAgICB0aGlzLl9odHRwLmdldDxQcm9maWxlPignL2FwaS9hY2NvdW50L3JlZnJlc2gnKS5zdWJzY3JpYmUociA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLl9wcm9maWxlKVxyXG4gICAgICAgICAgdGhpcy5fY2hhbmdlVGhlbWUodGhpcy50aGVtZSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fcHJvZmlsZSA9IHI7XHJcbiAgICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgICB0aGlzLl9sb2FkZWQubmV4dCgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9wcm9maWxlID0gcjtcclxuICAgICAgICAgIG9ic2VydmUubmV4dCgpO1xyXG4gICAgICAgICAgdGhpcy5fbG9hZGVkLm5leHQoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5faHViLnN0YXRlICE9PSBIdWJDb25uZWN0aW9uU3RhdGUuQ29ubmVjdGVkICYmIHRoaXMuX2h1Yi5zdGFydCgpO1xyXG4gICAgICAgIHRoaXMuX2ZpcmViYXNlLnN0YXRlICE9PSBGaXJlYmFzZVN0YXRlLkFjdGl2YXRlZCAmJlxyXG4gICAgICAgICAgdGhpcy5fZmlyZWJhc2UuYWN0aXZhdGUoKTtcclxuICAgICAgfSwgKCkgPT4gb2JzZXJ2ZS5lcnJvcigpKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgdW5yZWdpc3RlckRldmljZSh0eXBlOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdCgnL2FwaS9hY2NvdW50L3VucmVnaXN0ZXJEZXZpY2UnLCB7IHR5cGUsIHRva2VuIH0pO1xyXG4gIH1cclxuICBwdWJsaWMgcmVnaXN0ZXJEZXZpY2UodHlwZTogc3RyaW5nLCB0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3QoJy9hcGkvYWNjb3VudC9yZWdpc3RlckRldmljZScsIHsgdHlwZSwgdG9rZW4gfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbWF5SW1wZXJzb25hdGUoc2VhcmNoOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFVzZXJJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxVc2VySW5mb1tdPignL2FwaS9hY2NvdW50L2dyYW50ZWQnLCB7XHJcbiAgICAgIHNlYXJjaFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBpbXBlcnNvbmF0ZSh1c2VySWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PFByb2ZpbGU+KCcvYXBpL2FjY291bnQvaW1wZXJzb25hdGUnLCB7XHJcbiAgICAgIHVzZXJJZFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyBpbmJveFRvdWNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFdhdGVybWFya0luZm8+KCcvYXBpL2FjY291bnQvaW5ib3h2aWV3Jywge30sIHsgaGVhZGVyczogeyAnbm8tcHJvZ3Jlc3MnOiAndHJ1ZScgfSB9KS5waXBlKFxyXG4gICAgICB0YXAoZSA9PiB7XHJcbiAgICAgICAgdGhpcy5wcm9maWxlLmluYm94Q291bnQgPSAwO1xyXG4gICAgICAgIHRoaXMucHJvZmlsZS5vcHRpb25zLmluYm94VmlldyA9IGUudGltZTtcclxuICAgICAgfSkpLnRvUHJvbWlzZSgpO1xyXG4gIH1cclxuICBwdWJsaWMgbm90aWZpY2F0aW9uc1RvdWNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFdhdGVybWFya0luZm8+KCcvYXBpL2FjY291bnQvbm90aWZpY2F0aW9uc1ZpZXcnLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnBpcGUodGFwKGUgPT4ge1xyXG4gICAgICB0aGlzLnByb2ZpbGUubm90aWZpY2F0aW9uc0NvdW50ID0gMDtcclxuICAgICAgdGhpcy5wcm9maWxlLm9wdGlvbnMubm90aWZpY2F0aW9uc1ZpZXcgPSBlLnRpbWU7XHJcbiAgICB9KSkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2dldEJyb3dzZXJMYW5nKCk6IHN0cmluZyB7XHJcbiAgICBsZXQgbGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZTtcclxuICAgIGlmICh0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGxhbmcpID4gLTEpXHJcbiAgICAgIHJldHVybiBsYW5nO1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxhbmcgPSBuYXZpZ2F0b3IubGFuZ3VhZ2VzW2ldO1xyXG4gICAgICBpZiAodGhpcy5sYW5ndWFnZXMuaW5kZXhPZihsYW5nKSA+IC0xKVxyXG4gICAgICAgIHJldHVybiBsYW5nO1xyXG4gICAgfVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBuYXZpZ2F0b3IubGFuZ3VhZ2VzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGN1bHR1cmUgPSBuYXZpZ2F0b3IubGFuZ3VhZ2VzW2ldLnN1YnN0cmluZygwLCAyKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2VzLmZpbmQobCA9PiBsLnN0YXJ0c1dpdGgoY3VsdHVyZSkpO1xyXG4gICAgICBpZiAobGFuZ3VhZ2UpXHJcbiAgICAgICAgcmV0dXJuIGxhbmd1YWdlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB0aGVtZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgX2NoYW5nZVRoZW1lKHRoZW1lOiBUaGVtZSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgc3R5bGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYml6ZG9jLXRoZW1lJykgYXMgSFRNTExpbmtFbGVtZW50O1xyXG4gICAgaWYgKHN0eWxlKVxyXG4gICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHN0eWxlKTtcclxuXHJcbiAgICBpZiAodGhlbWUubmFtZSA9PT0gdGhpcy5UaGVtZXNbMF0ubmFtZSkge1xyXG4gICAgICByZXR1cm4gb2YodGhlbWUpO1xyXG4gICAgfVxyXG4gICAgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XHJcbiAgICBzdHlsZS5pZCA9ICdiaXpkb2MtdGhlbWUnO1xyXG4gICAgc3R5bGUudHlwZSA9ICd0ZXh0L2Nzcyc7XHJcbiAgICBzdHlsZS5yZWwgPSAnc3R5bGVzaGVldCc7XHJcbiAgICBzdHlsZS5ocmVmID0gYC9hc3NldHMvdGhlbWVzLyR7dGhlbWUubmFtZX0ubWluLmNzc2A7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChzdHlsZSk7XHJcblxyXG4gICAgcmV0dXJuIGZyb21FdmVudChzdHlsZSwgJ2xvYWQnKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbG9hZFN3KCkge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCcvanMvYXBwLXN3LmpzJykudGhlbihmdW5jdGlvbiAoKSB7XHJcbiAgICAgIH0sIG51bGwpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2xvYWRNYXBzKCkge1xyXG4gICAgY29uc3QgYXBpS2V5ID0gKHRoaXMuX2NvbmZpZy5tYXBzIGFzIEdvb2dsZU1hcHNTZXR0aW5ncykuYXBpS2V5O1xyXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBzY3JpcHQuc3JjID0gYGh0dHBzOi8vbWFwcy5nb29nbGVhcGlzLmNvbS9tYXBzL2FwaS9qcz9rZXk9JHthcGlLZXl9JmxpYnJhcmllcz1wbGFjZXMmbGFuZ3VhZ2U9JHt0aGlzLmxhbmd1YWdlfWA7XHJcbiAgICBkb2N1bWVudC5oZWFkLmFwcGVuZChzY3JpcHQpO1xyXG4gIH1cclxufVxyXG5pbnRlcmZhY2UgV2F0ZXJtYXJrSW5mbyB7XHJcbiAgdGltZTogRGF0ZTtcclxufVxyXG4iXX0=
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicmFyaWVzL2NvcmUvc3JjL2xpYi9jb3JlL3Nlc3Npb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRCxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGFBQWEsRUFBMkMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7QUFHN0MsTUFBTSxNQUFNLEdBQVk7SUFDdEIsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFO0lBQ3hFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRTtJQUN2RSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7SUFDdEUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFNBQVMs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QU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFDTyxPQUFPO1FBQ2IsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRTtZQUM5QixTQUFTLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDdkQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ08sU0FBUztRQUNmLE1BQU0sTUFBTSxHQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBMkIsQ0FBQyxNQUFNLENBQUM7UUFDaEUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsR0FBRyxHQUFHLCtDQUErQyxNQUFNLDhCQUE4QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEgsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7MkdBbE5VLGNBQWMsa0JBRUwsYUFBYTsrR0FGdEIsY0FBYyxjQURELE1BQU07MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFHbkIsTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcclxuaW1wb3J0IHsgU3ViamVjdCwgZnJvbUV2ZW50LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEh1YkNvbm5lY3Rpb25TdGF0ZSB9IGZyb20gJ0BtaWNyb3NvZnQvc2lnbmFscic7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyBCSVpET0NfQ09ORklHLCBCaXpEb2NDb25maWcsIEdvb2dsZU1hcHNTZXR0aW5ncywgVGhlbWUgfSBmcm9tICcuLi9jb3JlL2NvbmZpZ3VyYXRpb24nO1xyXG5pbXBvcnQgeyBQcm9maWxlLCBVc2VySW5mbywgQXZhaWxhYmlsaXR5U3RhdGUsIE9wdGlvbnMsIEdlbmRlciB9IGZyb20gJy4vbW9kZWxzJztcclxuaW1wb3J0IHsgRmlyZWJhc2VTZXJ2aWNlLCBGaXJlYmFzZVN0YXRlIH0gZnJvbSAnLi9maXJlYmFzZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSHViU2VydmljZSB9IGZyb20gJy4vaHViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNQVRFUklBTF9QQUxFVFRFUyB9IGZyb20gJy4vY29sb3JzJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2RlIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xyXG5cclxuY29uc3QgVEhFTUVTOiBUaGVtZVtdID0gW1xyXG4gIHsgbmFtZTogJ2RlZmF1bHQnLCBwcmltYXJ5OiAncHVycGxlJywgY29sb3I6ICdwdXJwbGUnLCBhY2NlbnQ6ICdhbWJlcicgfSxcclxuICB7IG5hbWU6ICdpbmRpZ28nLCBwcmltYXJ5OiAnaW5kaWdvJywgY29sb3I6ICcjM2Y1MWI1JywgYWNjZW50OiAncGluaycgfSxcclxuICB7IG5hbWU6ICdncmVlbicsIHByaW1hcnk6ICdncmVlbicsIGNvbG9yOiAnIzRDQUY1MCcsIGFjY2VudDogJ2FtYmVyJyB9LFxyXG4gIHsgbmFtZTogJ2RhcmsnLCBwcmltYXJ5OiAnZGVlcFB1cnBsZScsIGNvbG9yOiAnIzQwNDA0MScsIGFjY2VudDogJ2FtYmVyJywgZGFyazogdHJ1ZSB9LFxyXG4gIHsgbmFtZTogJ2Jyb3duJywgcHJpbWFyeTogJ2Jyb3duJywgY29sb3I6ICcjNzk1NTQ4JywgYWNjZW50OiAnZ3JleScgfV07XHJcblxyXG5jb25zdCBTVVBQT1JURURfTEFOR1VBR0VTID0gWydlbi1VUycsICdoZS1JTCcsICdkZS1ERSddLCBSVExfTEFOR1VBTEdFUyA9IFsnaGUtSUwnXTtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgU2Vzc2lvblNlcnZpY2Uge1xyXG4gIHJlYWRvbmx5IFRoZW1lczogVGhlbWVbXSA9IHRoaXMuX2NvbmZpZy50aGVtZXMgfHwgVEhFTUVTO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQklaRE9DX0NPTkZJRykgcHJpdmF0ZSBfY29uZmlnOiBCaXpEb2NDb25maWcsXHJcbiAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBfY29va2llczogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgX2h1YjogSHViU2VydmljZSxcclxuICApIHtcclxuICAgICgnc2VydmljZVdvcmtlcicgaW4gbmF2aWdhdG9yKSAmJiB0aGlzLl9sb2FkU3coKTtcclxuICAgIF9jb25maWcgJiYgX2NvbmZpZy5tYXBzICYmIHRoaXMuX2xvYWRNYXBzKCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvYWRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfdGhlbWVDaGFuZ2UgPSBuZXcgU3ViamVjdDxUaGVtZT4oKTtcclxuICByZWFkb25seSBsb2FkZWQgPSB0aGlzLl9sb2FkZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgdGhlbWVDaGFuZ2UgPSB0aGlzLl90aGVtZUNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICBwcml2YXRlIF9wcm9maWxlOiBQcm9maWxlO1xyXG4gIHByaXZhdGUgX2xhbmc6IHN0cmluZztcclxuICBwcml2YXRlIF9maXJlYmFzZSA9IG5ldyBGaXJlYmFzZVNlcnZpY2UodGhpcy5fY29uZmlnID8gdGhpcy5fY29uZmlnLmZpcmViYXNlIDogbnVsbCwgdGhpcyk7XHJcbiAgZ2V0IHByb2ZpbGUoKTogUHJvZmlsZSB7IHJldHVybiB0aGlzLl9wcm9maWxlOyB9XHJcbiAgZ2V0IGdlbmRlcigpOiBHZW5kZXIgeyByZXR1cm4gdGhpcy5fcHJvZmlsZS5ieUdlbmRlciB8fCB0aGlzLl9wcm9maWxlLmdlbmRlcjsgfVxyXG4gIGdldCBhY2NlbnRQYWxldHRlKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBPYmplY3QudmFsdWVzKE1BVEVSSUFMX1BBTEVUVEVTW3RoaXMudGhlbWUuYWNjZW50XSkuXHJcbiAgICAgIHNsaWNlKDEpO1xyXG4gIH1cclxuICBnZXQgcHJpbWVyeVBhbGV0dGUoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoTUFURVJJQUxfUEFMRVRURVNbdGhpcy50aGVtZS5wcmltYXJ5XSkuXHJcbiAgICAgIHNsaWNlKDEpO1xyXG4gIH1cclxuICBnZXRBY2NlbnQobW9kZTogTWF0ZXJpYWxNb2RlID0gNTAwKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNQVRFUklBTF9QQUxFVFRFU1t0aGlzLnRoZW1lLmFjY2VudF1bbW9kZV07XHJcbiAgfVxyXG4gIGdldFByaW1lcnkobW9kZTogTWF0ZXJpYWxNb2RlID0gNTAwKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBNQVRFUklBTF9QQUxFVFRFU1t0aGlzLnRoZW1lLnByaW1hcnldW21vZGVdO1xyXG4gIH1cclxuICBwcml2YXRlIF90aGVtZTogVGhlbWU7XHJcbiAgZ2V0IHRoZW1lKCk6IFRoZW1lIHtcclxuICAgIGlmICghdGhpcy5fdGhlbWUpIHtcclxuICAgICAgY29uc3QgbmFtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0aGVtZScpO1xyXG4gICAgICB0aGlzLl90aGVtZSA9IG5hbWUgPyB0aGlzLlRoZW1lcy5maW5kKHQgPT4gdC5uYW1lID09PSBuYW1lKSA6IHRoaXMuVGhlbWVzWzBdO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX3RoZW1lO1xyXG4gIH1cclxuICBzZXQgdGhlbWUodmFsdWU6IFRoZW1lKSB7XHJcbiAgICB0aGlzLl90aGVtZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5fY2hhbmdlVGhlbWUodmFsdWUpLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLl90aGVtZUNoYW5nZS5uZXh0KHZhbHVlKSk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndGhlbWUnLCB2YWx1ZS5uYW1lKTtcclxuICB9XHJcbiAgZ2V0IG9rKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5wcm9maWxlICE9PSB1bmRlZmluZWQ7IH1cclxuICAvKiogbGFuZ3VhZ2UgZGlyZWN0aW9uICovXHJcbiAgZ2V0IGRpcmVjdGlvbigpOiBEaXJlY3Rpb24ge1xyXG4gICAgcmV0dXJuIFJUTF9MQU5HVUFMR0VTLmluZGV4T2YodGhpcy5sYW5ndWFnZSkgPiAtMSA/ICdydGwnIDogJ2x0cic7XHJcbiAgfVxyXG4gIGdldCBpbnZlcnNlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uID09PSAncnRsJztcclxuICB9XHJcbiAgZ2V0IHVzZXJJZCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Byb2ZpbGUuYnlJZCB8fCB0aGlzLnByb2ZpbGUudXNlcklkO1xyXG4gIH1cclxuICBnZXQgbGFuZ3VhZ2UoKTogc3RyaW5nIHtcclxuICAgIGlmICghdGhpcy5fbGFuZykge1xyXG4gICAgICB0aGlzLl9sYW5nID0gdGhpcy5fY29va2llcy5nZXQoJ2xhbmcnKTtcclxuICAgICAgaWYgKCF0aGlzLl9sYW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbGFuZyA9IHRoaXMuX2dldEJyb3dzZXJMYW5nKCkgfHwgJ2VuLVVTJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2xhbmc7XHJcbiAgfVxyXG4gIGdldCBhcmlhKCkgeyByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2FyaWEnKSA9PT0gJzEnIH1cclxuICBzZXQgYXJpYSh2YWw6IGJvb2xlYW4pIHsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2FyaWEnLCB2YWwgPyAnMScgOiAnMCcpIH1cclxuICBzZXQgbGFuZ3VhZ2UoY29kZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb29raWVzLnNldCgnbGFuZycsIGNvZGUsIDM2NSwgJy8nKTtcclxuICB9XHJcbiAgZ2V0IGxhbmd1YWdlcygpOiBzdHJpbmdbXSB7IHJldHVybiB0aGlzLl9jb25maWcubGFuZ3VhZ2VzID8gdGhpcy5fY29uZmlnLmxhbmd1YWdlcyA6IFNVUFBPUlRFRF9MQU5HVUFHRVM7IH1cclxuICBnZXQgaXNJbXBlcnNvbmF0aW5nKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5wcm9maWxlLmJ5SWQgIT09IHVuZGVmaW5lZDsgfVxyXG4gIC8qKiBzeXN0ZW0gYWRtaW4gKi9cclxuICBnZXQgaXNTeXN0ZW0oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlLnN5c3RlbTtcclxuICB9XHJcbiAgLyoqIG9ubGluZSBvciBzZXQgaW4gcHJvZmlsZSAqL1xyXG4gIGdldCBzdGF0ZSgpOiBBdmFpbGFiaWxpdHlTdGF0ZSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlLmF2YWlsYWJsZSB8fCAnT25saW5lJztcclxuICB9XHJcbiAgc2V0IHN0YXRlKHZhbHVlOiBBdmFpbGFiaWxpdHlTdGF0ZSkge1xyXG4gICAgdGhpcy5wcm9maWxlLmF2YWlsYWJsZSA9IHZhbHVlID09PSAnT25saW5lJyA/IG51bGwgOiB2YWx1ZTtcclxuICAgIHRoaXMuX2h0dHAucHV0KGAvYXBpL2FjY291bnQvYXZhaWxhYmxlP21vZGU9JHt0aGlzLnByb2ZpbGUuYXZhaWxhYmxlIHx8ICcnfWAsIHt9KS5zdWJzY3JpYmUoKTtcclxuICB9XHJcbiAgLyoqICovXHJcbiAgZ2V0IGlzT3V0T2ZPZmZpY2UoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5wcm9maWxlLm9wdGlvbnMub3V0T2ZPZmZpY2U7XHJcbiAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLmFjdGl2ZSkge1xyXG4gICAgICBjb25zdCB0b2RheSA9IGRheWpzKCkuc3RhcnRPZignZGF5Jyk7XHJcbiAgICAgIHJldHVybiAoIW9wdGlvbnMuZnJvbSB8fCBkYXlqcyhvcHRpb25zLmZyb20pLnN0YXJ0T2YoJ2RheScpIDw9IHRvZGF5KVxyXG4gICAgICAgICYmICghb3B0aW9ucy50byB8fCBkYXlqcyhvcHRpb25zLnRvKS5zdGFydE9mKCdkYXknKSA+PSB0b2RheSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgLyoqIHVwZGF0ZSBwcm9maWxlICAqL1xyXG4gIHVwZGF0ZShwcm9maWxlOiBPcHRpb25zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dCgnL2FwaS9hY2NvdW50L3VwZGF0ZScsIHByb2ZpbGUpLnBpcGUodGFwKCgpID0+XHJcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5fcHJvZmlsZS5vcHRpb25zLCBwcm9maWxlKSkpO1xyXG4gIH1cclxuICAvKiogbWFyayBndWlkZSBhcyB2aXNpdGVkIGluIHByb2ZpbGUgKi9cclxuICBndWlkZShuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0KGAvYXBpL2FjY291bnQvZ3VpZGUvJHtuYW1lfWAsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSkucGlwZShcclxuICAgICAgdGFwKCgpID0+IHtcclxuICAgICAgICBjb25zdCBndWlkZSA9IHRoaXMuX3Byb2ZpbGUuZ3VpZGVzLmZpbmQoZyA9PiBnLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgICAgIGlmIChndWlkZSkgZ3VpZGUubW9kZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB0aGlzLl9wcm9maWxlLm9wdGlvbnMuZ3VpZGVzLnB1c2gobmFtZSk7XHJcbiAgICAgIH0pKTtcclxuICB9XHJcbiAgLyoqIGdldCBwcm9maWxlICovXHJcbiAgcmVmcmVzaCgpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGFueT4ob2JzZXJ2ZSA9PiB7XHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0PFByb2ZpbGU+KCcvYXBpL2FjY291bnQvcmVmcmVzaCcpLnN1YnNjcmliZShyID0+IHtcclxuICAgICAgICBpZiAoIXRoaXMuX3Byb2ZpbGUpXHJcbiAgICAgICAgICB0aGlzLl9jaGFuZ2VUaGVtZSh0aGlzLnRoZW1lKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9wcm9maWxlID0gcjtcclxuICAgICAgICAgICAgb2JzZXJ2ZS5uZXh0KCk7XHJcbiAgICAgICAgICAgIHRoaXMuX2xvYWRlZC5uZXh0KCk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX3Byb2ZpbGUgPSByO1xyXG4gICAgICAgICAgb2JzZXJ2ZS5uZXh0KCk7XHJcbiAgICAgICAgICB0aGlzLl9sb2FkZWQubmV4dCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9odWIuc3RhdGUgIT09IEh1YkNvbm5lY3Rpb25TdGF0ZS5Db25uZWN0ZWQgJiYgdGhpcy5faHViLnN0YXJ0KCk7XHJcbiAgICAgICAgdGhpcy5fZmlyZWJhc2Uuc3RhdGUgIT09IEZpcmViYXNlU3RhdGUuQWN0aXZhdGVkICYmXHJcbiAgICAgICAgICB0aGlzLl9maXJlYmFzZS5hY3RpdmF0ZSgpO1xyXG4gICAgICB9LCAoKSA9PiBvYnNlcnZlLmVycm9yKCkpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyB1bnJlZ2lzdGVyRGV2aWNlKHR5cGU6IHN0cmluZywgdG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0KCcvYXBpL2FjY291bnQvdW5yZWdpc3RlckRldmljZScsIHsgdHlwZSwgdG9rZW4gfSk7XHJcbiAgfVxyXG4gIHB1YmxpYyByZWdpc3RlckRldmljZSh0eXBlOiBzdHJpbmcsIHRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucG9zdCgnL2FwaS9hY2NvdW50L3JlZ2lzdGVyRGV2aWNlJywgeyB0eXBlLCB0b2tlbiB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBtYXlJbXBlcnNvbmF0ZShzZWFyY2g6IHN0cmluZyk6IE9ic2VydmFibGU8VXNlckluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PFVzZXJJbmZvW10+KCcvYXBpL2FjY291bnQvZ3JhbnRlZCcsIHtcclxuICAgICAgc2VhcmNoXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHVibGljIGltcGVyc29uYXRlKHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8UHJvZmlsZT4oJy9hcGkvYWNjb3VudC9pbXBlcnNvbmF0ZScsIHtcclxuICAgICAgdXNlcklkXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHVibGljIGluYm94VG91Y2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8V2F0ZXJtYXJrSW5mbz4oJy9hcGkvYWNjb3VudC9pbmJveHZpZXcnLCB7fSwgeyBoZWFkZXJzOiB7ICduby1wcm9ncmVzcyc6ICd0cnVlJyB9IH0pLnBpcGUoXHJcbiAgICAgIHRhcChlID0+IHtcclxuICAgICAgICB0aGlzLnByb2ZpbGUuaW5ib3hDb3VudCA9IDA7XHJcbiAgICAgICAgdGhpcy5wcm9maWxlLm9wdGlvbnMuaW5ib3hWaWV3ID0gZS50aW1lO1xyXG4gICAgICB9KSkudG9Qcm9taXNlKCk7XHJcbiAgfVxyXG4gIHB1YmxpYyBub3RpZmljYXRpb25zVG91Y2goKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8V2F0ZXJtYXJrSW5mbz4oJy9hcGkvYWNjb3VudC9ub3RpZmljYXRpb25zVmlldycsIHt9LCB7IGhlYWRlcnM6IHsgJ25vLXByb2dyZXNzJzogJ3RydWUnIH0gfSkucGlwZSh0YXAoZSA9PiB7XHJcbiAgICAgIHRoaXMucHJvZmlsZS5ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gICAgICB0aGlzLnByb2ZpbGUub3B0aW9ucy5ub3RpZmljYXRpb25zVmlldyA9IGUudGltZTtcclxuICAgIH0pKS50b1Byb21pc2UoKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfZ2V0QnJvd3NlckxhbmcoKTogc3RyaW5nIHtcclxuICAgIGxldCBsYW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlO1xyXG4gICAgaWYgKHRoaXMubGFuZ3VhZ2VzLmluZGV4T2YobGFuZykgPiAtMSlcclxuICAgICAgcmV0dXJuIGxhbmc7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdmlnYXRvci5sYW5ndWFnZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgbGFuZyA9IG5hdmlnYXRvci5sYW5ndWFnZXNbaV07XHJcbiAgICAgIGlmICh0aGlzLmxhbmd1YWdlcy5pbmRleE9mKGxhbmcpID4gLTEpXHJcbiAgICAgICAgcmV0dXJuIGxhbmc7XHJcbiAgICB9XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5hdmlnYXRvci5sYW5ndWFnZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgY3VsdHVyZSA9IG5hdmlnYXRvci5sYW5ndWFnZXNbaV0uc3Vic3RyaW5nKDAsIDIpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIGNvbnN0IGxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZXMuZmluZChsID0+IGwuc3RhcnRzV2l0aChjdWx0dXJlKSk7XHJcbiAgICAgIGlmIChsYW5ndWFnZSlcclxuICAgICAgICByZXR1cm4gbGFuZ3VhZ2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHRoZW1lXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBfY2hhbmdlVGhlbWUodGhlbWU6IFRoZW1lKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBzdHlsZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdiaXpkb2MtdGhlbWUnKSBhcyBIVE1MTGlua0VsZW1lbnQ7XHJcbiAgICBpZiAoc3R5bGUpXHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoc3R5bGUpO1xyXG5cclxuICAgIGlmICh0aGVtZS5uYW1lID09PSB0aGlzLlRoZW1lc1swXS5uYW1lKSB7XHJcbiAgICAgIHJldHVybiBvZih0aGVtZSk7XHJcbiAgICB9XHJcbiAgICBzdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpbmsnKTtcclxuICAgIHN0eWxlLmlkID0gJ2JpemRvYy10aGVtZSc7XHJcbiAgICBzdHlsZS50eXBlID0gJ3RleHQvY3NzJztcclxuICAgIHN0eWxlLnJlbCA9ICdzdHlsZXNoZWV0JztcclxuICAgIHN0eWxlLmhyZWYgPSBgL2Fzc2V0cy90aGVtZXMvJHt0aGVtZS5uYW1lfS5taW4uY3NzYDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kKHN0eWxlKTtcclxuXHJcbiAgICByZXR1cm4gZnJvbUV2ZW50KHN0eWxlLCAnbG9hZCcpO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2FkU3coKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoJy9qcy9hcHAtc3cuanMnKS50aGVuKGZ1bmN0aW9uICgpIHtcclxuICAgICAgfSwgbnVsbCk7XHJcbiAgICB9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbG9hZE1hcHMoKSB7XHJcbiAgICBjb25zdCBhcGlLZXkgPSAodGhpcy5fY29uZmlnLm1hcHMgYXMgR29vZ2xlTWFwc1NldHRpbmdzKS5hcGlLZXk7XHJcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIHNjcmlwdC5zcmMgPSBgaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzP2tleT0ke2FwaUtleX0mbGlicmFyaWVzPXBsYWNlcyZsYW5ndWFnZT0ke3RoaXMubGFuZ3VhZ2V9YDtcclxuICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kKHNjcmlwdCk7XHJcbiAgfVxyXG59XHJcbmludGVyZmFjZSBXYXRlcm1hcmtJbmZvIHtcclxuICB0aW1lOiBEYXRlO1xyXG59XHJcbiJdfQ==
@@ -41,9 +41,9 @@ export class SlotRouterDirective {
41
41
  this._destroy.complete();
42
42
  }
43
43
  }
44
- SlotRouterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SlotRouterDirective, deps: [{ token: i0.ElementRef }, { token: i1.PanesRouter }], target: i0.ɵɵFactoryTarget.Directive });
45
- SlotRouterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.2", type: SlotRouterDirective, selector: "[slotRouterLink]", inputs: { link: ["slotRouterLink", "link"], active: ["slotRouterLinkActive", "active"], disabled: ["slotRouterLinkDisabled", "disabled"], policy: ["slotRouterLinkPolicy", "policy"], options: ["slotRouterLinkOptions", "options"] }, host: { listeners: { "click": "_navigate()" } }, ngImport: i0 });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SlotRouterDirective, decorators: [{
44
+ SlotRouterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SlotRouterDirective, deps: [{ token: i0.ElementRef }, { token: i1.PanesRouter }], target: i0.ɵɵFactoryTarget.Directive });
45
+ SlotRouterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.3", type: SlotRouterDirective, selector: "[slotRouterLink]", inputs: { link: ["slotRouterLink", "link"], active: ["slotRouterLinkActive", "active"], disabled: ["slotRouterLinkDisabled", "disabled"], policy: ["slotRouterLinkPolicy", "policy"], options: ["slotRouterLinkOptions", "options"] }, host: { listeners: { "click": "_navigate()" } }, ngImport: i0 });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: SlotRouterDirective, decorators: [{
47
47
  type: Directive,
48
48
  args: [{
49
49
  selector: '[slotRouterLink]',
@@ -39,9 +39,9 @@ export class PanesRouter {
39
39
  this._comm$.next('collapse');
40
40
  }
41
41
  }
42
- PanesRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PanesRouter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
- PanesRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PanesRouter, providedIn: 'root' });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: PanesRouter, decorators: [{
42
+ PanesRouter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PanesRouter, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
43
+ PanesRouter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PanesRouter, providedIn: 'root' });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: PanesRouter, decorators: [{
45
45
  type: Injectable,
46
46
  args: [{ providedIn: 'root' }]
47
47
  }], ctorParameters: function () { return []; } });