nuxeo-development-framework 3.8.0 → 3.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +2255 -2579
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/activities-log/activities-log/activities-log.component.js +4 -4
  4. package/esm2015/lib/components/activities-log/activities-log/activities-log.service.js +5 -5
  5. package/esm2015/lib/components/activities-log/activities-log.module.js +5 -5
  6. package/esm2015/lib/components/activity/activity/activity.component.js +4 -4
  7. package/esm2015/lib/components/activity/activity.module.js +5 -5
  8. package/esm2015/lib/components/attachment-item/attachment-item/attachment-item.component.js +5 -5
  9. package/esm2015/lib/components/attachment-item/attachment-item.module.js +5 -5
  10. package/esm2015/lib/components/attachment-modal/attachment-modal.module.js +5 -5
  11. package/esm2015/lib/components/attachment-modal/attachments/attachments.component.js +4 -4
  12. package/esm2015/lib/components/avatar/avatar/avatar.component.js +4 -4
  13. package/esm2015/lib/components/avatar/avatar.module.js +5 -5
  14. package/esm2015/lib/components/card/card.component.js +4 -4
  15. package/esm2015/lib/components/card/card.module.js +5 -5
  16. package/esm2015/lib/components/comments/comments.module.js +5 -5
  17. package/esm2015/lib/components/comments/components/comment-item/comment-item.component.js +5 -5
  18. package/esm2015/lib/components/comments/components/comments-dashlet/comments-dashlet.component.js +5 -5
  19. package/esm2015/lib/components/comments/components/comments-list/comments-list.component.js +4 -4
  20. package/esm2015/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.js +5 -5
  21. package/esm2015/lib/components/comments/services/comment-api.service.js +6 -6
  22. package/esm2015/lib/components/confirm-caller/confirm-caller.dialog.js +4 -4
  23. package/esm2015/lib/components/confirm-caller/confirm-caller.module.js +5 -5
  24. package/esm2015/lib/components/confirm-caller/confirm-dialog/confirm-dialog.component.js +4 -4
  25. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog/confirmation-dialog.component.js +4 -4
  26. package/esm2015/lib/components/confirmation-dialog/confirmation-dialog.module.js +5 -5
  27. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.js +6 -6
  28. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-create-form/correspondence-relation-create-form.component.js +4 -4
  29. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.js +5 -5
  30. package/esm2015/lib/components/correspondence-relation/components/correspondence-relation-reply/correspondence-relation-reply.component.js +4 -4
  31. package/esm2015/lib/components/correspondence-relation/components/versions/versions.component.js +5 -5
  32. package/esm2015/lib/components/correspondence-relation/correspondence-relation.module.js +5 -5
  33. package/esm2015/lib/components/correspondence-relation/services/correspondence-realation.service.js +6 -6
  34. package/esm2015/lib/components/correspondence-relation/services/viewer-files.service.js +6 -6
  35. package/esm2015/lib/components/create-entity/create-entity/create-entity.component.js +5 -5
  36. package/esm2015/lib/components/create-entity/create-entity.module.js +5 -5
  37. package/esm2015/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.js +5 -5
  38. package/esm2015/lib/components/cts-tags/cts-tags.module.js +5 -5
  39. package/esm2015/lib/components/cts-tags/services/tags-api.service.js +5 -5
  40. package/esm2015/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.js +8 -8
  41. package/esm2015/lib/components/custom-toastr/custom-toastr.module.js +5 -5
  42. package/esm2015/lib/components/custom-toastr/interfaces/toast-type.interface.js +1 -1
  43. package/esm2015/lib/components/custom-toastr/services/custom-toastr.service.js +25 -13
  44. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/display-suitable-icon.component.js +4 -4
  45. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon/icon.service.js +4 -4
  46. package/esm2015/lib/components/display-suitable-icon/display-suitable-icon.module.js +5 -5
  47. package/esm2015/lib/components/documents/components/attachments-list/attachments-list.component.js +5 -5
  48. package/esm2015/lib/components/documents/components/attachments-page-provider/attachments-page-provider.component.js +4 -4
  49. package/esm2015/lib/components/documents/components/document-list/documents-list.component.js +5 -5
  50. package/esm2015/lib/components/documents/components/document-scan/document-scan.component.js +4 -4
  51. package/esm2015/lib/components/documents/components/document-scan/document-scan.service.js +4 -4
  52. package/esm2015/lib/components/documents/components/document-upload/document-upload.component.js +4 -4
  53. package/esm2015/lib/components/documents/components/documents/documents.component.js +4 -4
  54. package/esm2015/lib/components/documents/documents.module.js +5 -5
  55. package/esm2015/lib/components/documents/services/document-templates.service.js +6 -6
  56. package/esm2015/lib/components/documents/services/documents.service.js +6 -6
  57. package/esm2015/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.js +5 -5
  58. package/esm2015/lib/components/dynamic-chart/dynamic-chart.module.js +5 -5
  59. package/esm2015/lib/components/dynamic-chart/dynamic-single-chart/dynamic-single-chart.component.js +4 -4
  60. package/esm2015/lib/components/dynamic-chart/services/chart-data.service.js +5 -5
  61. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer/dynamic-fields-renderer.component.js +4 -4
  62. package/esm2015/lib/components/dynamic-fields-renderer/dynamic-fields-renderer.module.js +5 -5
  63. package/esm2015/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.js +5 -5
  64. package/esm2015/lib/components/dynamic-filter/dynamic-filter.module.js +5 -5
  65. package/esm2015/lib/components/dynamic-form/components/department-form/department-form.component.js +4 -4
  66. package/esm2015/lib/components/dynamic-form/components/dynamic-form/dynamic-form.component.js +4 -4
  67. package/esm2015/lib/components/dynamic-form/components/dynamic-form/fields.adapter.js +4 -4
  68. package/esm2015/lib/components/dynamic-form/components/dynamic-form/form-builder.service.js +5 -5
  69. package/esm2015/lib/components/dynamic-form/components/dynamic-form-boolitem/dynamic-form-boolitem.component.js +4 -4
  70. package/esm2015/lib/components/dynamic-form/components/dynamic-form-builder/dynamic-form-builder.component.js +4 -4
  71. package/esm2015/lib/components/dynamic-form/components/dynamic-form-checkbox-item/dynamic-form-checkbox-item.component.js +4 -4
  72. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.js +6 -6
  73. package/esm2015/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.js +5 -5
  74. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.js +5 -5
  75. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.js +8 -8
  76. package/esm2015/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.js +6 -6
  77. package/esm2015/lib/components/dynamic-form/components/dynamic-form-field/dynamic-form-field.component.js +4 -4
  78. package/esm2015/lib/components/dynamic-form/components/dynamic-form-hijri-dateitem/dynamic-form-hijri-dateitem.component.js +4 -4
  79. package/esm2015/lib/components/dynamic-form/components/dynamic-form-item-dispatcher/dynamic-form-item-dispatcher.component.js +4 -4
  80. package/esm2015/lib/components/dynamic-form/components/dynamic-form-mapitem/dynamic-form-mapitem.component.js +4 -4
  81. package/esm2015/lib/components/dynamic-form/components/dynamic-form-options/dynamic-form-options.component.js +4 -4
  82. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-tag/dynamic-form-select-tag.component.js +4 -4
  83. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-user-filter/dynamic-form-select-user-filter.component.js +4 -4
  84. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.js +5 -5
  85. package/esm2015/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.js +5 -5
  86. package/esm2015/lib/components/dynamic-form/components/dynamic-form-selectitem/dynamic-form-selectitem.component.js +4 -4
  87. package/esm2015/lib/components/dynamic-form/components/dynamic-form-slide-toggleitem/dynamic-form-slide-toggleitem.component.js +4 -4
  88. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textarea/dynamic-form-textarea.component.js +4 -4
  89. package/esm2015/lib/components/dynamic-form/components/dynamic-form-textitem/dynamic-form-textitem.component.js +4 -4
  90. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.js +26 -15
  91. package/esm2015/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.js +10 -7
  92. package/esm2015/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.js +5 -5
  93. package/esm2015/lib/components/dynamic-form/components/dynamic-form-vocabulary-item/dynamic-form-vocabulary-item.component.js +4 -4
  94. package/esm2015/lib/components/dynamic-form/components/form-wrappers/date-wrapper/date-wrapper.component.js +4 -4
  95. package/esm2015/lib/components/dynamic-form/components/form-wrappers/toggle-wrapper/toggle-wrapper.component.js +4 -4
  96. package/esm2015/lib/components/dynamic-form/components/form-wrappers/user-selector-wrapper/user-selector-wrapper.component.js +4 -4
  97. package/esm2015/lib/components/dynamic-form/components/form-wrappers/vocabulary-wrapper/vocabulary-wrapper.component.js +4 -4
  98. package/esm2015/lib/components/dynamic-form/directives/dynamic-form-content-proxy.directive.js +4 -4
  99. package/esm2015/lib/components/dynamic-form/dynamic-form.module.js +5 -5
  100. package/esm2015/lib/components/dynamic-form/services/card-item-types.service.js +4 -4
  101. package/esm2015/lib/components/dynamic-form/services/dynamic-form-update.service.js +5 -5
  102. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +5 -5
  103. package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +5 -5
  104. package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +6 -6
  105. package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +5 -5
  106. package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +4 -4
  107. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs/dynamic-tabs.component.js +4 -4
  108. package/esm2015/lib/components/dynamic-tabs/dynamic-tabs.module.js +5 -5
  109. package/esm2015/lib/components/dynamic-view/boolean-viewer/boolean-viewer.component.js +4 -4
  110. package/esm2015/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.js +6 -6
  111. package/esm2015/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.js +6 -6
  112. package/esm2015/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.js +5 -5
  113. package/esm2015/lib/components/dynamic-view/data-viewer/data-viewer.component.js +4 -4
  114. package/esm2015/lib/components/dynamic-view/date-viewer/date-viewer.component.js +5 -5
  115. package/esm2015/lib/components/dynamic-view/department-viewer/department-viewer.component.js +5 -5
  116. package/esm2015/lib/components/dynamic-view/dropdown-viewer/dropdown-viewer.component.js +4 -4
  117. package/esm2015/lib/components/dynamic-view/dynamic-view.module.js +5 -5
  118. package/esm2015/lib/components/dynamic-view/dynamic-viewe.service.js +4 -4
  119. package/esm2015/lib/components/dynamic-view/list-viewer/list-viewer.component.js +4 -4
  120. package/esm2015/lib/components/file-manger/components/add-to-collection/add-to-collection.component.js +4 -4
  121. package/esm2015/lib/components/file-manger/components/clipboard/clipboard.component.js +5 -5
  122. package/esm2015/lib/components/file-manger/components/copy/copy.component.js +4 -4
  123. package/esm2015/lib/components/file-manger/components/create-directory/create-directory.component.js +4 -4
  124. package/esm2015/lib/components/file-manger/components/create-modal/create-modal.component.js +7 -7
  125. package/esm2015/lib/components/file-manger/components/creation-type/creation-type.component.js +4 -4
  126. package/esm2015/lib/components/file-manger/components/delete/delete.component.js +4 -4
  127. package/esm2015/lib/components/file-manger/components/folder-modal/folder-modal.component.js +5 -5
  128. package/esm2015/lib/components/file-manger/components/loan-request/loan-request.component.js +4 -4
  129. package/esm2015/lib/components/file-manger/components/move/move.component.js +4 -4
  130. package/esm2015/lib/components/file-manger/components/publish-dialog/publish-dialog.component.js +4 -4
  131. package/esm2015/lib/components/file-manger/components/rename/rename.component.js +4 -4
  132. package/esm2015/lib/components/file-manger/components/scan-modal/scan-modal.component.js +7 -7
  133. package/esm2015/lib/components/file-manger/components/share-dialog/share-dialog.component.js +8 -8
  134. package/esm2015/lib/components/file-manger/components/sidepanel/sidepanel.component.js +7 -7
  135. package/esm2015/lib/components/file-manger/components/template-modal/template-modal.component.js +4 -4
  136. package/esm2015/lib/components/file-manger/components/transfer-doc/transfer-doc.component.js +4 -4
  137. package/esm2015/lib/components/file-manger/components/update-modal/update-modal.component.js +6 -6
  138. package/esm2015/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.js +78 -0
  139. package/esm2015/lib/components/file-manger/file-manager.abstract.js +461 -303
  140. package/esm2015/lib/components/file-manger/file-manger.module.js +14 -9
  141. package/esm2015/lib/components/file-manger/models/file-manager-config.model.js +7 -0
  142. package/esm2015/lib/components/file-manger/models/index.js +4 -0
  143. package/esm2015/lib/components/file-manger/models/pagination-payload.mode.js +2 -0
  144. package/esm2015/lib/components/file-manger/models/pagination-response.model.js +6 -0
  145. package/esm2015/lib/components/filter/filter/filter.component.js +4 -4
  146. package/esm2015/lib/components/filter/filter.module.js +5 -5
  147. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/gregorian-datepicker/gregorian-datepicker.component.js +4 -4
  148. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-datepicker/hijri-datepicker.component.js +4 -4
  149. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/hijri-gregorian-datepicker.component.js +4 -4
  150. package/esm2015/lib/components/hijri-gregorian-datepicker/hijri-gregorian-datepicker/provide-parent-form.directive.js +4 -4
  151. package/esm2015/lib/components/hijri-gregorian-datepicker/ngx-hijri-gregorian-datepicker.module.js +5 -5
  152. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-formatter.service.js +4 -4
  153. package/esm2015/lib/components/hijri-gregorian-datepicker/services/date-helper.service.js +4 -4
  154. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/CustomNgbDateParserFormatter.js +4 -4
  155. package/esm2015/lib/components/hijri-gregorian-datepicker/utils/IslamicI18n.js +4 -4
  156. package/esm2015/lib/components/latest-activity/components/activity-line/activity-line.component.js +4 -4
  157. package/esm2015/lib/components/latest-activity/components/latest-activity/latest-activity.component.js +4 -4
  158. package/esm2015/lib/components/latest-activity/components/single-activity/single-activity.component.js +4 -4
  159. package/esm2015/lib/components/latest-activity/latest-activity.module.js +5 -5
  160. package/esm2015/lib/components/latest-activity/services/activity-log.service.js +6 -6
  161. package/esm2015/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.js +5 -5
  162. package/esm2015/lib/components/mutiple-dynamic-form-viewer/mutiple-dynamic-form-viewer.module.js +5 -5
  163. package/esm2015/lib/components/notifications/components/notification-item/notification-item.component.js +5 -5
  164. package/esm2015/lib/components/notifications/components/notification-options/notification-options.component.js +4 -4
  165. package/esm2015/lib/components/notifications/components/notification-toast/notification-toast.component.js +6 -6
  166. package/esm2015/lib/components/notifications/components/notifications-button/notifications-button.component.js +5 -5
  167. package/esm2015/lib/components/notifications/components/notifications-list/notifications-list.component.js +5 -5
  168. package/esm2015/lib/components/notifications/notifications.module.js +5 -5
  169. package/esm2015/lib/components/notifications/notifications.service.js +8 -8
  170. package/esm2015/lib/components/pagination/pagination/pagination.component.js +4 -4
  171. package/esm2015/lib/components/pagination/pagination.module.js +5 -5
  172. package/esm2015/lib/components/pdf-tron/pdf-tron.module.js +5 -5
  173. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.component.js +6 -6
  174. package/esm2015/lib/components/pdf-tron/pdftron/pdftron.service.js +4 -4
  175. package/esm2015/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.js +5 -5
  176. package/esm2015/lib/components/permissions/permission.service.js +5 -5
  177. package/esm2015/lib/components/permissions/permissions/permissions.component.js +6 -6
  178. package/esm2015/lib/components/permissions/permissions-template/permissions-template.component.js +4 -4
  179. package/esm2015/lib/components/permissions/permissions.module.js +5 -5
  180. package/esm2015/lib/components/select/select/select.component.js +4 -4
  181. package/esm2015/lib/components/select/select.module.js +5 -5
  182. package/esm2015/lib/components/select-users-by-department/select-users-by-department.module.js +5 -5
  183. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/department-management.service.js +5 -5
  184. package/esm2015/lib/components/select-users-by-department/select-users-by-departments/select-users-by-departments.component.js +4 -4
  185. package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +5 -5
  186. package/esm2015/lib/components/table/table/table.component.js +6 -6
  187. package/esm2015/lib/components/table/table.module.js +5 -5
  188. package/esm2015/lib/components/user/user/user.component.js +4 -4
  189. package/esm2015/lib/components/user/user.module.js +5 -5
  190. package/esm2015/lib/components/users-card/users-card.component.js +4 -4
  191. package/esm2015/lib/components/users-card/users-card.module.js +5 -5
  192. package/esm2015/lib/components/viewer-log/components/viewer-log/viewer-log.component.js +4 -4
  193. package/esm2015/lib/components/viewer-log/viewer-log.module.js +5 -5
  194. package/esm2015/lib/components/vocabulary/services/vocabulary-api.service.js +5 -5
  195. package/esm2015/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.js +5 -5
  196. package/esm2015/lib/components/vocabulary/vocabulary/vocabulary.component.js +4 -4
  197. package/esm2015/lib/components/vocabulary/vocabulary.module.js +5 -5
  198. package/esm2015/lib/configuration/app-config.service.js +4 -4
  199. package/esm2015/lib/core/adapters/adapter.service.js +4 -4
  200. package/esm2015/lib/core/core.module.js +5 -5
  201. package/esm2015/lib/core/env/env-manager.js +1 -1
  202. package/esm2015/lib/core/env/index.js +1 -1
  203. package/esm2015/lib/core/services/callApi/call-api.service.js +4 -4
  204. package/esm2015/lib/core/services/extension/action.extensions.js +1 -1
  205. package/esm2015/lib/core/services/extension/component-register.service.js +4 -4
  206. package/esm2015/lib/core/services/extension/extenion-utils.js +1 -1
  207. package/esm2015/lib/core/services/extension/extension-element.js +1 -1
  208. package/esm2015/lib/core/services/extension/extension-loader.service.js +4 -4
  209. package/esm2015/lib/core/services/extension/extension.service.js +4 -4
  210. package/esm2015/lib/core/services/initialization/initialization.service.js +4 -4
  211. package/esm2015/lib/core/services/localStorag/local-storag.service.js +4 -4
  212. package/esm2015/lib/core/services/nuxeo/nuxeo.service.js +4 -4
  213. package/esm2015/lib/core/services/roles/roles.service.js +4 -4
  214. package/esm2015/lib/core/services/translation/translate-loader.service.js +4 -4
  215. package/esm2015/lib/core/services/translation/translation.service.js +4 -4
  216. package/esm2015/lib/core/services/user/user-preferences.service.js +4 -4
  217. package/esm2015/lib/core/utilities/moment-date-adapter.js +4 -4
  218. package/esm2015/lib/core/utilities/utility.service.js +4 -4
  219. package/esm2015/lib/directive/app-has-role/app-has-role.directive.js +5 -5
  220. package/esm2015/lib/directive/clickOutSide/click-outside.directive.js +4 -4
  221. package/esm2015/lib/directive/directive.module.js +5 -5
  222. package/esm2015/lib/directive/drag-and-drop/drag-and-drop.directive.js +4 -4
  223. package/esm2015/lib/directive/permissions/evaluators.service.js +5 -5
  224. package/esm2015/lib/directive/permissions/permissions.directive.js +5 -5
  225. package/esm2015/lib/directive/rtl/set-dir-rtl.directive.js +5 -5
  226. package/esm2015/lib/directive/rtl/set-rtl.directive.js +5 -5
  227. package/esm2015/lib/nuxeo-development-framework.component.js +4 -4
  228. package/esm2015/lib/nuxeo-development-framework.module.js +5 -5
  229. package/esm2015/lib/nuxeo-development-framework.service.js +4 -4
  230. package/esm2015/lib/pipes/file-size.pipe.js +4 -4
  231. package/esm2015/lib/pipes/hijri-date.pipe.js +4 -4
  232. package/esm2015/lib/pipes/localized-date.pipe.js +4 -4
  233. package/esm2015/lib/pipes/multi-value.pipe.js +4 -4
  234. package/esm2015/lib/pipes/pipes.module.js +5 -5
  235. package/esm2015/lib/pipes/secure-html.pipe.js +4 -4
  236. package/esm2015/lib/pipes/secure.pipe.js +4 -4
  237. package/esm2015/lib/pipes/time-ago.pipe.js +4 -4
  238. package/esm2015/lib/shared/components/button/button.component.js +4 -4
  239. package/esm2015/lib/shared/components/item-list/item-list.component.js +4 -4
  240. package/esm2015/lib/shared/components/no-data/no-data.component.js +4 -4
  241. package/esm2015/lib/shared/components/read-more/read-more.component.js +4 -4
  242. package/esm2015/lib/shared/components/search-autocomplete/search-autocomplete.component.js +4 -4
  243. package/esm2015/lib/shared/components/spinner/spinner.component.js +4 -4
  244. package/esm2015/lib/shared/components/user-card/user-card.component.js +4 -4
  245. package/esm2015/lib/shared/libraryShared.module.js +5 -5
  246. package/esm2015/lib/shared-services/dialog-mangment.service.js +4 -4
  247. package/esm2015/lib/shared-services/dynamic-form.service.js +5 -5
  248. package/esm2015/lib/shared-services/file-manager.adapter.js +4 -4
  249. package/esm2015/lib/shared-services/file-manager.service.js +457 -223
  250. package/esm2015/lib/shared-services/global-admin.service.js +4 -4
  251. package/esm2015/lib/shared-services/global-pdftron.service.js +4 -4
  252. package/esm2015/lib/shared-services/mainfolder.service.js +6 -6
  253. package/esm2015/lib/shared-services/publishing-document.service.js +6 -6
  254. package/esm2015/lib/shared-services/recently-viewed.service.js +6 -6
  255. package/esm2015/lib/shared-services/shared-docs.service.js +6 -6
  256. package/esm2015/lib/shared-services/shared-services.module.js +5 -5
  257. package/esm2015/lib/shared-services/upload-file.service.js +5 -5
  258. package/esm2015/lib/shared-services/upload-managment.service.js +5 -5
  259. package/esm2015/lib/shared-services/user.service.js +6 -6
  260. package/esm2015/public-api.js +23 -21
  261. package/fesm2015/nuxeo-development-framework.js +1993 -2421
  262. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  263. package/lib/components/activities-log/activities-log/activities-log.service.d.ts +1 -1
  264. package/lib/components/attachment-item/attachment-item/attachment-item.component.d.ts +1 -1
  265. package/lib/components/comments/components/comment-item/comment-item.component.d.ts +1 -1
  266. package/lib/components/comments/components/comments-dashlet/comments-dashlet.component.d.ts +1 -1
  267. package/lib/components/comments/components/edit-delete-modal/edit-delete-modal.component.d.ts +1 -1
  268. package/lib/components/comments/services/comment-api.service.d.ts +2 -2
  269. package/lib/components/correspondence-relation/components/correspondence-relation/correspondence-relation.component.d.ts +2 -2
  270. package/lib/components/correspondence-relation/components/correspondence-relation-list/correspondence-relation-list.component.d.ts +1 -1
  271. package/lib/components/correspondence-relation/components/versions/versions.component.d.ts +1 -1
  272. package/lib/components/correspondence-relation/services/correspondence-realation.service.d.ts +2 -2
  273. package/lib/components/correspondence-relation/services/viewer-files.service.d.ts +2 -2
  274. package/lib/components/create-entity/create-entity/create-entity.component.d.ts +1 -1
  275. package/lib/components/cts-tags/components/correspondence-tags/correspondence-tags.component.d.ts +1 -1
  276. package/lib/components/cts-tags/services/tags-api.service.d.ts +1 -1
  277. package/lib/components/custom-toastr/components/custom-toastr/custom-toastr.component.d.ts +1 -1
  278. package/lib/components/custom-toastr/interfaces/toast-type.interface.d.ts +1 -1
  279. package/lib/components/custom-toastr/services/custom-toastr.service.d.ts +8 -4
  280. package/lib/components/documents/components/attachments-list/attachments-list.component.d.ts +1 -1
  281. package/lib/components/documents/components/document-list/documents-list.component.d.ts +1 -1
  282. package/lib/components/documents/services/document-templates.service.d.ts +2 -2
  283. package/lib/components/documents/services/documents.service.d.ts +2 -2
  284. package/lib/components/dynamic-chart/dynamic-chart/dynamic-chart.component.d.ts +1 -1
  285. package/lib/components/dynamic-chart/services/chart-data.service.d.ts +1 -1
  286. package/lib/components/dynamic-filter/dynamic-filter/dynamic-filter.component.d.ts +1 -1
  287. package/lib/components/dynamic-form/components/dynamic-form/form-builder.service.d.ts +1 -1
  288. package/lib/components/dynamic-form/components/dynamic-form-dateitem/dynamic-form-dateitem.component.d.ts +1 -1
  289. package/lib/components/dynamic-form/components/dynamic-form-dateitem/owlDateTimeIntl.d.ts +1 -1
  290. package/lib/components/dynamic-form/components/dynamic-form-department/dynamic-form-department.component.d.ts +1 -1
  291. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-api.service.d.ts +4 -4
  292. package/lib/components/dynamic-form/components/dynamic-form-department/services/department-management.service.d.ts +2 -2
  293. package/lib/components/dynamic-form/components/dynamic-form-select-users/dynamic-form-select-users.component.d.ts +1 -1
  294. package/lib/components/dynamic-form/components/dynamic-form-select-users/services/user-api.service.d.ts +1 -1
  295. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select-i18n.d.ts +4 -2
  296. package/lib/components/dynamic-form/components/dynamic-form-treeview-select/dropdown-treeview-select.component.d.ts +5 -4
  297. package/lib/components/dynamic-form/components/dynamic-form-viewer/dynamic-form-viewer.component.d.ts +1 -1
  298. package/lib/components/dynamic-form/services/dynamic-form-update.service.d.ts +1 -1
  299. package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +1 -1
  300. package/lib/components/dynamic-table/dynamic-table/dynamic-table.component.d.ts +2 -2
  301. package/lib/components/dynamic-view/custom-document-viewer/custom-document-viewer.component.d.ts +2 -2
  302. package/lib/components/dynamic-view/custom-pp-viewer/custom-pp-viewer.component.d.ts +2 -2
  303. package/lib/components/dynamic-view/cutome-voc-viewer/cutome-voc-viewer.component.d.ts +1 -1
  304. package/lib/components/dynamic-view/date-viewer/date-viewer.component.d.ts +1 -1
  305. package/lib/components/dynamic-view/department-viewer/department-viewer.component.d.ts +1 -1
  306. package/lib/components/file-manger/components/clipboard/clipboard.component.d.ts +1 -1
  307. package/lib/components/file-manger/components/create-modal/create-modal.component.d.ts +3 -3
  308. package/lib/components/file-manger/components/folder-modal/folder-modal.component.d.ts +1 -1
  309. package/lib/components/file-manger/components/scan-modal/scan-modal.component.d.ts +3 -3
  310. package/lib/components/file-manger/components/share-dialog/share-dialog.component.d.ts +3 -3
  311. package/lib/components/file-manger/components/sidepanel/sidepanel.component.d.ts +2 -2
  312. package/lib/components/file-manger/components/update-modal/update-modal.component.d.ts +2 -2
  313. package/lib/components/file-manger/directives/file-grid-infinite-scroll.directive.d.ts +12 -0
  314. package/lib/components/file-manger/file-manager.abstract.d.ts +20 -8
  315. package/lib/components/file-manger/file-manger.module.d.ts +37 -36
  316. package/lib/components/file-manger/models/file-manager-config.model.d.ts +8 -0
  317. package/lib/components/file-manger/models/index.d.ts +3 -0
  318. package/lib/components/file-manger/models/pagination-payload.mode.d.ts +3 -0
  319. package/lib/components/file-manger/models/pagination-response.model.d.ts +30 -0
  320. package/lib/components/latest-activity/services/activity-log.service.d.ts +2 -2
  321. package/lib/components/mutiple-dynamic-form-viewer/multiple-dynamic-form-viewer/multiple-dynamic-form-viewer.component.d.ts +1 -1
  322. package/lib/components/notifications/components/notification-item/notification-item.component.d.ts +1 -1
  323. package/lib/components/notifications/components/notification-toast/notification-toast.component.d.ts +1 -1
  324. package/lib/components/notifications/components/notifications-button/notifications-button.component.d.ts +1 -1
  325. package/lib/components/notifications/components/notifications-list/notifications-list.component.d.ts +1 -1
  326. package/lib/components/notifications/notifications.service.d.ts +4 -4
  327. package/lib/components/pdf-tron/pdftron/pdftron.component.d.ts +2 -2
  328. package/lib/components/permissions/add-permissions-dialog/add-permissions-dialog.component.d.ts +1 -1
  329. package/lib/components/permissions/permission.service.d.ts +1 -1
  330. package/lib/components/permissions/permissions/permissions.component.d.ts +2 -2
  331. package/lib/components/select-users-by-department/select-users-by-departments/department-management.service.d.ts +1 -1
  332. package/lib/components/table/dynamic-column/dynamic-column.component.d.ts +1 -1
  333. package/lib/components/table/table/table.component.d.ts +2 -2
  334. package/lib/components/vocabulary/services/vocabulary-api.service.d.ts +1 -1
  335. package/lib/components/vocabulary/translated-vocabulary-select/translated-vocabulary-select.component.d.ts +1 -1
  336. package/lib/directive/app-has-role/app-has-role.directive.d.ts +1 -1
  337. package/lib/directive/permissions/evaluators.service.d.ts +1 -1
  338. package/lib/directive/permissions/permissions.directive.d.ts +1 -1
  339. package/lib/directive/rtl/set-dir-rtl.directive.d.ts +1 -1
  340. package/lib/directive/rtl/set-rtl.directive.d.ts +1 -1
  341. package/lib/shared-services/dynamic-form.service.d.ts +1 -1
  342. package/lib/shared-services/file-manager.service.d.ts +27 -19
  343. package/lib/shared-services/mainfolder.service.d.ts +2 -2
  344. package/lib/shared-services/publishing-document.service.d.ts +2 -2
  345. package/lib/shared-services/recently-viewed.service.d.ts +2 -2
  346. package/lib/shared-services/shared-docs.service.d.ts +2 -2
  347. package/lib/shared-services/upload-file.service.d.ts +1 -1
  348. package/lib/shared-services/upload-managment.service.d.ts +1 -1
  349. package/lib/shared-services/user.service.d.ts +2 -2
  350. package/package.json +1 -1
  351. package/public-api.d.ts +22 -20
@@ -7,12 +7,12 @@ import * as Stomp from "webstomp-client";
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common/http";
9
9
  import * as i2 from "@angular/router";
10
- import * as i3 from "../../Core/services/nuxeo/nuxeo.service";
10
+ import * as i3 from "../../core/services/nuxeo/nuxeo.service";
11
11
  import * as i4 from "keycloak-angular";
12
12
  import * as i5 from "ngx-cookie-service";
13
- import * as i6 from "../../Core/services/localStorag/local-storag.service";
14
- import * as i7 from "../../Core/services/initialization/initialization.service";
15
- import * as i8 from "../../Core/services/translation/translation.service";
13
+ import * as i6 from "../../core/services/localStorag/local-storag.service";
14
+ import * as i7 from "../../core/services/initialization/initialization.service";
15
+ import * as i8 from "../../core/services/translation/translation.service";
16
16
  export class NotificationsService {
17
17
  constructor(http, router, nuxeoService, keycloak, cookieService, localStorag, intializationService, translationService, environment) {
18
18
  this.http = http;
@@ -347,12 +347,12 @@ export class NotificationsService {
347
347
  this._notifications = notifications;
348
348
  }
349
349
  }
350
- NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsService, deps: [{ token: i1.HttpClient }, { token: i2.Router }, { token: i3.NuxeoService }, { token: i4.KeycloakService }, { token: i5.CookieService }, { token: i6.LocalStoragService }, { token: i7.InitializationService }, { token: i8.TranslationService }, { token: "environment" }], target: i0.ɵɵFactoryTarget.Injectable });
351
- NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsService });
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: NotificationsService, decorators: [{
350
+ NotificationsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsService, deps: [{ token: i1.HttpClient }, { token: i2.Router }, { token: i3.NuxeoService }, { token: i4.KeycloakService }, { token: i5.CookieService }, { token: i6.LocalStoragService }, { token: i7.InitializationService }, { token: i8.TranslationService }, { token: "environment" }], target: i0.ɵɵFactoryTarget.Injectable });
351
+ NotificationsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsService });
352
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NotificationsService, decorators: [{
353
353
  type: Injectable
354
354
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Router }, { type: i3.NuxeoService }, { type: i4.KeycloakService }, { type: i5.CookieService }, { type: i6.LocalStoragService }, { type: i7.InitializationService }, { type: i8.TranslationService }, { type: undefined, decorators: [{
355
355
  type: Inject,
356
356
  args: ["environment"]
357
357
  }] }]; } });
358
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLElBQWdCLEVBQ2pCLE1BQWMsRUFDZCxZQUEwQixFQUN6QixRQUF5QixFQUN6QixhQUE2QixFQUM3QixXQUFnQyxFQUNoQyxvQkFBNEMsRUFDNUMsa0JBQXNDLEVBQ2YsV0FBVztRQVJsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBL0M1QyxnQkFBVyxHQUFHLElBQUks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QUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELFVBQVUsR0FBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWE7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQzs7aUhBM1dVLG9CQUFvQixtUUFnRHJCLGFBQWE7cUhBaERaLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFpRE4sTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSBcImtleWNsb2FrLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHB1Ymxpc2hSZXBsYXksIHJlZkNvdW50IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCAqIGFzIFNvY2tKUyBmcm9tIFwic29ja2pzLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIFN0b21wIGZyb20gXCJ3ZWJzdG9tcC1jbGllbnRcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL0NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy9sb2NhbFN0b3JhZy9sb2NhbC1zdG9yYWcuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vQ29yZS9zZXJ2aWNlcy9pbml0aWFsaXphdGlvbi9pbml0aWFsaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XHJcbiAgc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gIHN1YnNjcmliZXIgPSBudWxsO1xyXG4gIGNvbm5lY3Rpb246IFByb21pc2U8YW55PjtcclxuICBjb25uZWN0ZWRQcm9taXNlOiBhbnkgPSBudWxsO1xyXG4gIGxpc3RlbmVyT2JzZXJ2ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwZGF0ZTogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcbiAgYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSBmYWxzZTtcclxuICBwYWdlU2l6ZSA9IDE1O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3RvbXAuU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zID0gW107XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zO1xyXG4gIH1cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIGdldCBub3RpZmljYXRpb25zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQ7XHJcbiAgfVxyXG4gIGJhc2UgPSBcIlwiO1xyXG4gIHByb2ZpbGUgPSB7IGlkOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLmlkIH07XHJcbiAgc3lzdGVtTGFuZyA9IFwiXCI7XHJcbiAgbGFuZ0NoYW5nZWQ6IGJvb2xlYW47XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRmlsdGVyVHlwZSA9IHtcclxuICAgIG5hbWU6ICdhbGwnLFxyXG4gICAgaWQgOiAnYWxsJ1xyXG4gIH07XHJcbiAgaXNSZWFkZWQgPSBmYWxzZTtcclxuICBzaG93RmlsdGVycyA9IGZhbHNlO1xyXG4gIHR5cGVzID0gW1xyXG4gICAgeyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9LFxyXG4gICAgeyBuYW1lOiAnY29ycmVzcG9uZGVuY2UnLCBpZCA6ICdjb3JyZXNwb25kZW5jZScgfSxcclxuICAgIHsgbmFtZTogJ2Fzc2lnbm1lbnQnLCBpZCA6ICdhc3NpZ25tZW50JyB9LFxyXG4gICAgeyBuYW1lOiAnd29ya3NwYWNlJywgaWQgOiAnY29ycldvcmtzcGFjZScgfSxcclxuICAgIHsgbmFtZTogJ2FwcHJvdmFscycsIGlkIDogJ2FwcHJvdmFsJyB9XHJcbiAgXVxyXG4gIHN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXSA7IC8vIHRvIHN0b3JlIGFsbCBub3RpZmljYXRpb24gaW4gaXQgc28gd2hlbiBmaWx0ZXJpbmcgbm90IGxvc2luZyBhbGwgZGF0YVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXljbG9hazogS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlIDogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWcgOiBMb2NhbFN0b3JhZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGludGlhbGl6YXRpb25TZXJ2aWNlIDogSW5pdGlhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIEBJbmplY3QoXCJlbnZpcm9ubWVudFwiKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5wcm9maWxlLmlkKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5yZXNldE5vdGlmaWNhdGlvbnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRDb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRvQ291bnROZXcodGhpcy5wcm9maWxlLmlkKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMudXBkYXRlLm5leHQoKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IFtdO1xyXG4gICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICByZXNldE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLnN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXTtcclxuICB9XHJcbiAgcmVzZXRGaWx0ZXJQYXJhbXMoKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlID0geyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9O1xyXG4gICAgdGhpcy5pc1JlYWRlZCA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBmZXRjaE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucyh0aGlzLnByb2ZpbGUuaWQsIHtcclxuICAgICAgcGFnZTpcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gTWF0aC5jZWlsKHRoaXMuX25vdGlmaWNhdGlvbnMubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSlcclxuICAgICAgICAgIDogMCxcclxuICAgICAgc2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgcGFnZWQ6IHRydWUsXHJcbiAgICAgIHNvcnQ6IFwic2VuZERhdGUsZGVzY1wiLFxyXG4gICAgICBzb3J0ZWQ6IHRydWUsXHJcbiAgICAgIGxhbmc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnVzZXJMYW5nLnRvVXBwZXJDYXNlKCksXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAoKG5vdGlmaWNhdGlvbnM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChub3RpZmljYXRpb25zLml0ZW1zKSB7XHJcbiAgICAgICAgICBpZih0aGlzLnNob3dGaWx0ZXJzKXtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gdGhpcy5zdG9yZWROb3RpZmljYXRpb25zLmNvbmNhdChub3RpZmljYXRpb25zLml0ZW1zKTtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KHRoaXMuZmlsdGVyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25zLml0ZW1zKSk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KG5vdGlmaWNhdGlvbnMuaXRlbXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIGZpbHRlciBub3RpZmNhdGlvbnMgaW4gZnJvbnQgZW5kIGFjY29yZGluZyB0byB0aGUgc2VsZWN0ZWQgZmlsdGVyc1xyXG4gIGZpbHRlck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICBsZXQgZmlsdGVyZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBpZih0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5uYW1lID09PSAnYWxsJyl7XHJcbiAgICAgIGlmKHRoaXMuaXNSZWFkZWQpe1xyXG4gICAgICAgIC8vIGZpbmQgcmVhZGVkIG5vdGlmaWNhdGlvbnMgb24gYWxsIHR5cGVzIG9mIG5vdGlmaWNhdGlvbnNcclxuICAgICAgICByZXR1cm4gdGhpcy5maW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oJ1JFQUQnICwgbm90aWZpY2F0aW9ucylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgLy8gZmluZCB1biByZWFkZWQgbm90aWZpY2F0aW9ucyBvbiBhbGwgdHlwZXMgb2Ygbm90aWZpY2F0aW9uc1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRSZWFkT3JVblJlYWRlZE5vdGlmaWNhdGlvbignVU5fUkVBRCcgLCBub3RpZmljYXRpb25zKVxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGV0IHJlcXVpcmVkU3RhdGUgPSB0aGlzLmlzUmVhZGVkID8gJ1JFQUQnIDogJ1VOX1JFQUQnO1xyXG4gICAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICAgIGlmKG5vdGlmaWNhdGlvbi5zb3VyY2VUeXBlID09PSB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5pZCAmJiBub3RpZmljYXRpb24uc3RhdHVzID09PSByZXF1aXJlZFN0YXRlKXtcclxuICAgICAgICAgIGZpbHRlcmVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiBmaWx0ZXJlZE5vdGlmaWNhdGlvbnNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGZpbmQgYSBub3RpZmljYXRpb24gYWNjb3JkaW5nIHRvIGl0cyBzdGF0ZSBSRUFEIG9yIFVOX1JFQURcclxuICBmaW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oc3RhdGUgLCBub3RpZmljYXRpb25zKXtcclxuICAgIGxldCBzdGF0ZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICBpZihub3RpZmljYXRpb24uc3RhdHVzID09PSBzdGF0ZSl7XHJcbiAgICAgICAgc3RhdGVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBzdGF0ZWROb3RpZmljYXRpb25zO1xyXG4gIH1cclxuICByZXNldENvdW50KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uc0NvdW50ID0gMDtcclxuICB9XHJcbiAgbWFya0FsbEFzUmVhZCgpIHtcclxuICAgIHRoaXMuZG9NYXJrQWxsQXNSZWFkKHRoaXMucHJvZmlsZS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zdGF0dXMgPSBcIlJFQURcIikpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHVwZGF0ZVN0YXR1cyhub3RpZmljYXRpb24sIG9uT3BlbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBib29sID1cclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJVTl9SRUFEXCIgfHxcclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJORVdcIiB8fFxyXG4gICAgICBvbk9wZW47XHJcbiAgICBpZiAoYm9vbCkge1xyXG4gICAgICB0aGlzLmRvTWFya0FzUmVhZChub3RpZmljYXRpb24uaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9IFwiUkVBRFwiO1xyXG4gICAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge30pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9NYXJrQXNVbnJlYWQobm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPSBcIlVOX1JFQURcIjtcclxuICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlbGV0ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5pZCA9PT0gbm90aWZpY2F0aW9uLmlkKSB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGUubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldE5vdGlmaWNhdGlvbnModXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2FsbC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oZW5kcG9pbnQsIHsgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLCBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcCkgPT4gKHtcclxuICAgICAgICAgIHRvdGFsQ291bnQ6IHJlc3AuaGVhZGVycy5nZXQoXCJ4LXRvdGFsLWNvdW50XCIpLFxyXG4gICAgICAgICAgaXRlbXM6IHJlc3AuYm9keS5tYXAoKGl0ZW0pID0+IGl0ZW0pLFxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJnZXROb3RpZmljYXRpb25zXCIsIFtdKSksXHJcbiAgICAgICAgcHVibGlzaFJlcGxheSgxKSxcclxuICAgICAgICByZWZDb3VudCgpXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIGRvQ291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2NvdW50TmV3LyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImNvdW50TmV3XCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb1Jlc2V0Q291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL3Jlc2V0Q291bnQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwicmVzZXRDb3VudE5ld1wiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9Db3VudFVucmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvY291bnRVblJlYWQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiY291bnRVbnJlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FsbEFzUmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FsbEFzUmVhZC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQWxsQXNSZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBc1JlYWQobm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FzUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1JlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FzVW5yZWFkKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBc1VuUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1VucmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZGVsZXRlPGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJkZWxldGVOb3RpZmljYXRpb25cIiwgW10pKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3I8VD4ob3BlcmF0aW9uID0gXCJvcGVyYXRpb25cIiwgcmVzdWx0PzogVCkge1xyXG4gICAgcmV0dXJuIChlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICAgIC8vIFRPRE86IHNlbmQgdGhlIGVycm9yIHRvIHJlbW90ZSBsb2dnaW5nIGluZnJhc3RydWN0dXJlXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOyAvLyBsb2cgdG8gY29uc29sZSBpbnN0ZWFkXHJcblxyXG4gICAgICAvLyBUT0RPOiBiZXR0ZXIgam9iIG9mIHRyYW5zZm9ybWluZyBlcnJvciBmb3IgdXNlciBjb25zdW1wdGlvblxyXG4gICAgICBjb25zb2xlLmxvZyhgJHtvcGVyYXRpb259IGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWApO1xyXG5cclxuICAgICAgLy8gTGV0IHRoZSBhcHAga2VlcCBydW5uaW5nIGJ5IHJldHVybmluZyBhbiBlbXB0eSByZXN1bHQuXHJcbiAgICAgIHJlc3VsdFtcInN0YXR1c1wiXSA9IGVycm9yLnN0YXR1cztcclxuICAgICAgaWYgKGVycm9yLmVycm9yLmhhc093blByb3BlcnR5KFwibWVzc2FnZVwiKSkge1xyXG4gICAgICAgIHJlc3VsdFtcIm1lc3NhZ2VcIl0gPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIHJlc3VsdFtcInR5cGVcIl0gPSBlcnJvci5lcnJvci50eXBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gb2YocmVzdWx0IGFzIFQpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgYXN5bmMgY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICAvLyBidWlsZGluZyBhYnNvbHV0ZSBwYXRoIHNvIHRoYXQgd2Vic29ja2V0IGRvZXNuJ3QgZmFpbCB3aGVuIGRlcGxveWluZyB3aXRoIGEgY29udGV4dCBwYXRoXHJcbiAgICBsZXQgdXJsO1xyXG4gICAgdXJsID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS93ZWJzb2NrZXQvZWtoYWFgOyAvL3VybFxyXG4gICAgY29uc3Qgc29ja2V0ID0gbmV3IFNvY2tKUyh1cmwpO1xyXG4gICAgdGhpcy5zdG9tcENsaWVudCA9IFN0b21wLm92ZXIoc29ja2V0KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICAgIC8vIFVwZ3JhZGU6ICd3ZWJzb2NrZXQnLFxyXG4gICAgICAvLyBDb25uZWN0aW9uOiAnVXBncmFkZScsXHJcbiAgICAgIHRva2VuOiB0aGlzLmVudmlyb25tZW50LmxvZ2luTWV0aG9kID09PSAnbnV4ZW8nID8gdGhpcy5nZXRDYWNoYWJsZSgpOiBgJHthd2FpdCB0aGlzLmtleWNsb2FrLmdldFRva2VuKCl9YCxcclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5jb25uZWN0KGhlYWRlcnMsICgpID0+IHtcclxuICAgICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZFByb21pc2UoXCJzdWNjZXNzXCIpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLnN0b21wQ2xpZW50ICE9PSBudWxsICYmIHRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5kaXNjb25uZWN0KCk7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29ubmVjdGVkUHJvbWlzZSkge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlKCkge1xyXG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvbXBDbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlciA9IHRoaXMuc3RvbXBDbGllbnQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICBcIi91c2VyL3RvcGljL25vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IEpTT04ucGFyc2UoZGF0YS5ib2R5KTtcclxuICAgICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnVuc2hpZnQobm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVyT2JzZXJ2ZXIuZW1pdChub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmliZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29ubmVjdGlvbigpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+ICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPSByZXNvbHZlKSk7XHJcbiAgfVxyXG5cclxuICB0ZXN0Tm90aWZpY2F0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKFwiU3lzdGVtLk5vdGlmaWNhdGlvblwiLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgYXBwbGljYXRpb25LZXk6IFwiY3RzblwiLFxyXG4gICAgICAgICAgbm90aWZpY2F0aW9uS2V5OiBcIk5vdGlmaWNhdGlvbldoZW5PdXRnb2luZ0NvcnJlc3BvbmRuZWNlQXBwcm92ZVwiLFxyXG4gICAgICAgICAgYXBpRGF0YTpcclxuICAgICAgICAgICAgJ3tcImlkXCI6IFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIsXCJzY2hlbWFcIjogXCJDb3JyZXNwb25kZW5jZVwifScsXHJcbiAgICAgICAgICBkYXRhOiBcInt9XCIsXHJcbiAgICAgICAgICBncm91cHNJZDogW10sXHJcbiAgICAgICAgICB1c2Vyc0lkOiBbXCJjdHNfc2VjXCJdLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIpXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWNoYWJsZSgpe1xyXG4gICAgbGV0IG15Q2FjaGFibGUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCdDTVNfQ0FDSEFCTEUnKTtcclxuICAgIG15Q2FjaGFibGUgPSAgdGhpcy5pbnRpYWxpemF0aW9uU2VydmljZS5kZWNyaXB0Rm9ybWF0aW5nKG15Q2FjaGFibGUpO1xyXG4gIHJldHVybiBteUNhY2hhYmxlWydhY2Nlc3NfdG9rZW4nXTtcclxuICB9XHJcblxyXG4gIHNldE5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gbm90aWZpY2F0aW9ucztcclxuICB9XHJcbn1cclxuIl19
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE9BQU8sRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFFeEMsT0FBTyxLQUFLLEtBQUssTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7OztBQU96QyxNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLElBQWdCLEVBQ2pCLE1BQWMsRUFDZCxZQUEwQixFQUN6QixRQUF5QixFQUN6QixhQUE2QixFQUM3QixXQUFnQyxFQUNoQyxvQkFBNEMsRUFDNUMsa0JBQXNDLEVBQ2YsV0FBVztRQVJsQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2pCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUN6QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZ0I7UUFDN0IsZ0JBQVcsR0FBWCxXQUFXLENBQXFCO1FBQ2hDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFDNUMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUNmLGdCQUFXLEdBQVgsV0FBVyxDQUFBO1FBL0M1QyxnQkFBVyxHQUFHLElBQUks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QUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNqQixNQUFNLEdBQUcsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELFVBQVUsR0FBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkUsT0FBTyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQWE7UUFDNUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUM7SUFDdEMsQ0FBQzs7a0hBM1dVLG9CQUFvQixtUUFnRHJCLGFBQWE7c0hBaERaLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFpRE4sTUFBTTsyQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgS2V5Y2xvYWtTZXJ2aWNlIH0gZnJvbSBcImtleWNsb2FrLWFuZ3VsYXJcIjtcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSwgb2YsIFJlcGxheVN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAsIHB1Ymxpc2hSZXBsYXksIHJlZkNvdW50IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCAqIGFzIFNvY2tKUyBmcm9tIFwic29ja2pzLWNsaWVudFwiO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlcy9udXhlby9udXhlby5zZXJ2aWNlXCI7XHJcbmltcG9ydCAqIGFzIFN0b21wIGZyb20gXCJ3ZWJzdG9tcC1jbGllbnRcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2VydmljZXMvdHJhbnNsYXRpb24vdHJhbnNsYXRpb24uc2VydmljZVwiO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbFN0b3JhZy9sb2NhbC1zdG9yYWcuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBJbml0aWFsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9zZXJ2aWNlcy9pbml0aWFsaXphdGlvbi9pbml0aWFsaXphdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENvb2tpZVNlcnZpY2UgfSBmcm9tICduZ3gtY29va2llLXNlcnZpY2UnXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XHJcbiAgc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gIHN1YnNjcmliZXIgPSBudWxsO1xyXG4gIGNvbm5lY3Rpb246IFByb21pc2U8YW55PjtcclxuICBjb25uZWN0ZWRQcm9taXNlOiBhbnkgPSBudWxsO1xyXG4gIGxpc3RlbmVyT2JzZXJ2ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIHVwZGF0ZTogUmVwbGF5U3ViamVjdDxhbnk+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XHJcbiAgYWxyZWFkeUNvbm5lY3RlZE9uY2UgPSBmYWxzZTtcclxuICBwYWdlU2l6ZSA9IDE1O1xyXG5cclxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3RvbXAuU3Vic2NyaXB0aW9uO1xyXG5cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zID0gW107XHJcbiAgZ2V0IG5vdGlmaWNhdGlvbnMoKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zO1xyXG4gIH1cclxuICBwcml2YXRlIF9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIGdldCBub3RpZmljYXRpb25zQ291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQ7XHJcbiAgfVxyXG4gIGJhc2UgPSBcIlwiO1xyXG4gIHByb2ZpbGUgPSB7IGlkOiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLmlkIH07XHJcbiAgc3lzdGVtTGFuZyA9IFwiXCI7XHJcbiAgbGFuZ0NoYW5nZWQ6IGJvb2xlYW47XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGVkRmlsdGVyVHlwZSA9IHtcclxuICAgIG5hbWU6ICdhbGwnLFxyXG4gICAgaWQgOiAnYWxsJ1xyXG4gIH07XHJcbiAgaXNSZWFkZWQgPSBmYWxzZTtcclxuICBzaG93RmlsdGVycyA9IGZhbHNlO1xyXG4gIHR5cGVzID0gW1xyXG4gICAgeyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9LFxyXG4gICAgeyBuYW1lOiAnY29ycmVzcG9uZGVuY2UnLCBpZCA6ICdjb3JyZXNwb25kZW5jZScgfSxcclxuICAgIHsgbmFtZTogJ2Fzc2lnbm1lbnQnLCBpZCA6ICdhc3NpZ25tZW50JyB9LFxyXG4gICAgeyBuYW1lOiAnd29ya3NwYWNlJywgaWQgOiAnY29ycldvcmtzcGFjZScgfSxcclxuICAgIHsgbmFtZTogJ2FwcHJvdmFscycsIGlkIDogJ2FwcHJvdmFsJyB9XHJcbiAgXVxyXG4gIHN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXSA7IC8vIHRvIHN0b3JlIGFsbCBub3RpZmljYXRpb24gaW4gaXQgc28gd2hlbiBmaWx0ZXJpbmcgbm90IGxvc2luZyBhbGwgZGF0YVxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHVibGljIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHVibGljIG51eGVvU2VydmljZTogTnV4ZW9TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBrZXljbG9hazogS2V5Y2xvYWtTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb29raWVTZXJ2aWNlIDogQ29va2llU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9jYWxTdG9yYWcgOiBMb2NhbFN0b3JhZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGludGlhbGl6YXRpb25TZXJ2aWNlIDogSW5pdGlhbGl6YXRpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGlvblNlcnZpY2U6IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIEBJbmplY3QoXCJlbnZpcm9ubWVudFwiKSBwcml2YXRlIGVudmlyb25tZW50XHJcbiAgKSB7XHJcbiAgICBpZiAodGhpcy5wcm9maWxlLmlkKSB7XHJcbiAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy50cmFuc2xhdGlvblNlcnZpY2UuaXNBcmFiaWMuc3Vic2NyaWJlKChyZXMpID0+IHtcclxuICAgICAgdGhpcy5yZXNldE5vdGlmaWNhdGlvbnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRDb3VudCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRvQ291bnROZXcodGhpcy5wcm9maWxlLmlkKS5waXBlKFxyXG4gICAgICBtYXAoKGRhdGEpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSBkYXRhO1xyXG4gICAgICAgIHRoaXMudXBkYXRlLm5leHQoKTtcclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IFtdO1xyXG4gICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zQ291bnQgPSAwO1xyXG4gIH1cclxuICByZXNldE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICB0aGlzLnN0b3JlZE5vdGlmaWNhdGlvbnMgPSBbXTtcclxuICB9XHJcbiAgcmVzZXRGaWx0ZXJQYXJhbXMoKXtcclxuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlID0geyBuYW1lOiAnYWxsJywgaWQgOiAnYWxsJyB9O1xyXG4gICAgdGhpcy5pc1JlYWRlZCA9IGZhbHNlXHJcbiAgfVxyXG5cclxuICBmZXRjaE5vdGlmaWNhdGlvbnMoKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0Tm90aWZpY2F0aW9ucyh0aGlzLnByb2ZpbGUuaWQsIHtcclxuICAgICAgcGFnZTpcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gTWF0aC5jZWlsKHRoaXMuX25vdGlmaWNhdGlvbnMubGVuZ3RoIC8gdGhpcy5wYWdlU2l6ZSlcclxuICAgICAgICAgIDogMCxcclxuICAgICAgc2l6ZTogdGhpcy5wYWdlU2l6ZSxcclxuICAgICAgcGFnZWQ6IHRydWUsXHJcbiAgICAgIHNvcnQ6IFwic2VuZERhdGUsZGVzY1wiLFxyXG4gICAgICBzb3J0ZWQ6IHRydWUsXHJcbiAgICAgIGxhbmc6IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnVzZXJMYW5nLnRvVXBwZXJDYXNlKCksXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBtYXAoKG5vdGlmaWNhdGlvbnM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGlmIChub3RpZmljYXRpb25zLml0ZW1zKSB7XHJcbiAgICAgICAgICBpZih0aGlzLnNob3dGaWx0ZXJzKXtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gdGhpcy5zdG9yZWROb3RpZmljYXRpb25zLmNvbmNhdChub3RpZmljYXRpb25zLml0ZW1zKTtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KHRoaXMuZmlsdGVyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25zLml0ZW1zKSk7XHJcbiAgICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucyA9IHRoaXMuX25vdGlmaWNhdGlvbnMuY29uY2F0KG5vdGlmaWNhdGlvbnMuaXRlbXMpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIG5vdGlmaWNhdGlvbnM7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX25vdGlmaWNhdGlvbnMgPSBbXTtcclxuICAgICAgICAgIHJldHVybiBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcclxuICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5zdG9yZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIGZpbHRlciBub3RpZmNhdGlvbnMgaW4gZnJvbnQgZW5kIGFjY29yZGluZyB0byB0aGUgc2VsZWN0ZWQgZmlsdGVyc1xyXG4gIGZpbHRlck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICBsZXQgZmlsdGVyZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBpZih0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5uYW1lID09PSAnYWxsJyl7XHJcbiAgICAgIGlmKHRoaXMuaXNSZWFkZWQpe1xyXG4gICAgICAgIC8vIGZpbmQgcmVhZGVkIG5vdGlmaWNhdGlvbnMgb24gYWxsIHR5cGVzIG9mIG5vdGlmaWNhdGlvbnNcclxuICAgICAgICByZXR1cm4gdGhpcy5maW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oJ1JFQUQnICwgbm90aWZpY2F0aW9ucylcclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgLy8gZmluZCB1biByZWFkZWQgbm90aWZpY2F0aW9ucyBvbiBhbGwgdHlwZXMgb2Ygbm90aWZpY2F0aW9uc1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRSZWFkT3JVblJlYWRlZE5vdGlmaWNhdGlvbignVU5fUkVBRCcgLCBub3RpZmljYXRpb25zKVxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGV0IHJlcXVpcmVkU3RhdGUgPSB0aGlzLmlzUmVhZGVkID8gJ1JFQUQnIDogJ1VOX1JFQUQnO1xyXG4gICAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICAgIGlmKG5vdGlmaWNhdGlvbi5zb3VyY2VUeXBlID09PSB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZS5pZCAmJiBub3RpZmljYXRpb24uc3RhdHVzID09PSByZXF1aXJlZFN0YXRlKXtcclxuICAgICAgICAgIGZpbHRlcmVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHJldHVybiBmaWx0ZXJlZE5vdGlmaWNhdGlvbnNcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIGZpbmQgYSBub3RpZmljYXRpb24gYWNjb3JkaW5nIHRvIGl0cyBzdGF0ZSBSRUFEIG9yIFVOX1JFQURcclxuICBmaW5kUmVhZE9yVW5SZWFkZWROb3RpZmljYXRpb24oc3RhdGUgLCBub3RpZmljYXRpb25zKXtcclxuICAgIGxldCBzdGF0ZWROb3RpZmljYXRpb25zID0gW107XHJcbiAgICBub3RpZmljYXRpb25zLm1hcChub3RpZmljYXRpb24gPT4ge1xyXG4gICAgICBpZihub3RpZmljYXRpb24uc3RhdHVzID09PSBzdGF0ZSl7XHJcbiAgICAgICAgc3RhdGVkTm90aWZpY2F0aW9ucy5wdXNoKG5vdGlmaWNhdGlvbilcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIHJldHVybiBzdGF0ZWROb3RpZmljYXRpb25zO1xyXG4gIH1cclxuICByZXNldENvdW50KCkge1xyXG4gICAgdGhpcy5fbm90aWZpY2F0aW9uc0NvdW50ID0gMDtcclxuICB9XHJcbiAgbWFya0FsbEFzUmVhZCgpIHtcclxuICAgIHRoaXMuZG9NYXJrQWxsQXNSZWFkKHRoaXMucHJvZmlsZS5pZCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5fbm90aWZpY2F0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zdGF0dXMgPSBcIlJFQURcIikpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHVwZGF0ZVN0YXR1cyhub3RpZmljYXRpb24sIG9uT3BlbiA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBib29sID1cclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJVTl9SRUFEXCIgfHxcclxuICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9PT0gXCJORVdcIiB8fFxyXG4gICAgICBvbk9wZW47XHJcbiAgICBpZiAoYm9vbCkge1xyXG4gICAgICB0aGlzLmRvTWFya0FzUmVhZChub3RpZmljYXRpb24uaWQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgbm90aWZpY2F0aW9uLnN0YXR1cyA9IFwiUkVBRFwiO1xyXG4gICAgICAgIHRoaXMuZ2V0Q291bnQoKS5zdWJzY3JpYmUoKCkgPT4ge30pO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZG9NYXJrQXNVbnJlYWQobm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIG5vdGlmaWNhdGlvbi5zdGF0dXMgPSBcIlVOX1JFQURcIjtcclxuICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGRlbGV0ZU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pIHtcclxuICAgIHRoaXMuZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLmlkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLl9ub3RpZmljYXRpb25zLmZpbHRlcigoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5pZCA9PT0gbm90aWZpY2F0aW9uLmlkKSB7XHJcbiAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy51cGRhdGUubmV4dCgpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldE5vdGlmaWNhdGlvbnModXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2FsbC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZ2V0PGFueT4oZW5kcG9pbnQsIHsgb2JzZXJ2ZTogXCJyZXNwb25zZVwiLCBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcCkgPT4gKHtcclxuICAgICAgICAgIHRvdGFsQ291bnQ6IHJlc3AuaGVhZGVycy5nZXQoXCJ4LXRvdGFsLWNvdW50XCIpLFxyXG4gICAgICAgICAgaXRlbXM6IHJlc3AuYm9keS5tYXAoKGl0ZW0pID0+IGl0ZW0pLFxyXG4gICAgICAgIH0pKSxcclxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJnZXROb3RpZmljYXRpb25zXCIsIFtdKSksXHJcbiAgICAgICAgcHVibGlzaFJlcGxheSgxKSxcclxuICAgICAgICByZWZDb3VudCgpXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIGRvQ291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL2NvdW50TmV3LyR7dXNlcklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcImNvdW50TmV3XCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb1Jlc2V0Q291bnROZXcodXNlcklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL3Jlc2V0Q291bnQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnB1dDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwicmVzZXRDb3VudE5ld1wiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9Db3VudFVucmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvY291bnRVblJlYWQvJHt1c2VySWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxhbnk+KGVuZHBvaW50LCB7IHBhcmFtczogcXVlcnlQYXJhbXMgfSlcclxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKFwiY291bnRVbnJlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FsbEFzUmVhZCh1c2VySWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FsbEFzUmVhZC8ke3VzZXJJZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucHV0PGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJtYXJrQWxsQXNSZWFkXCIsIFtdKSkpO1xyXG4gIH1cclxuICBkb01hcmtBc1JlYWQobm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvbWFya0FzUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1JlYWRcIiwgW10pKSk7XHJcbiAgfVxyXG4gIGRvTWFya0FzVW5yZWFkKG5vdGlmaWNhdGlvbklkLCBxdWVyeVBhcmFtcyA9IHt9KSB7XHJcbiAgICBjb25zdCBlbmRwb2ludCA9IGAke3RoaXMuZW52aXJvbm1lbnQubm90aWZpY2F0aW9uc30vYXBpL3N5c3RlbS1ub3RpZmljYXRpb25zL21hcmtBc1VuUmVhZC8ke25vdGlmaWNhdGlvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5wdXQ8YW55PihlbmRwb2ludCwgeyBwYXJhbXM6IHF1ZXJ5UGFyYW1zIH0pXHJcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcihcIm1hcmtBc1VucmVhZFwiLCBbXSkpKTtcclxuICB9XHJcbiAgZG9EZWxldGVOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSWQsIHF1ZXJ5UGFyYW1zID0ge30pIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS9hcGkvc3lzdGVtLW5vdGlmaWNhdGlvbnMvJHtub3RpZmljYXRpb25JZH1gO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAuZGVsZXRlPGFueT4oZW5kcG9pbnQsIHsgcGFyYW1zOiBxdWVyeVBhcmFtcyB9KVxyXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoXCJkZWxldGVOb3RpZmljYXRpb25cIiwgW10pKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3I8VD4ob3BlcmF0aW9uID0gXCJvcGVyYXRpb25cIiwgcmVzdWx0PzogVCkge1xyXG4gICAgcmV0dXJuIChlcnJvcjogYW55KTogT2JzZXJ2YWJsZTxUPiA9PiB7XHJcbiAgICAgIC8vIFRPRE86IHNlbmQgdGhlIGVycm9yIHRvIHJlbW90ZSBsb2dnaW5nIGluZnJhc3RydWN0dXJlXHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpOyAvLyBsb2cgdG8gY29uc29sZSBpbnN0ZWFkXHJcblxyXG4gICAgICAvLyBUT0RPOiBiZXR0ZXIgam9iIG9mIHRyYW5zZm9ybWluZyBlcnJvciBmb3IgdXNlciBjb25zdW1wdGlvblxyXG4gICAgICBjb25zb2xlLmxvZyhgJHtvcGVyYXRpb259IGZhaWxlZDogJHtlcnJvci5tZXNzYWdlfWApO1xyXG5cclxuICAgICAgLy8gTGV0IHRoZSBhcHAga2VlcCBydW5uaW5nIGJ5IHJldHVybmluZyBhbiBlbXB0eSByZXN1bHQuXHJcbiAgICAgIHJlc3VsdFtcInN0YXR1c1wiXSA9IGVycm9yLnN0YXR1cztcclxuICAgICAgaWYgKGVycm9yLmVycm9yLmhhc093blByb3BlcnR5KFwibWVzc2FnZVwiKSkge1xyXG4gICAgICAgIHJlc3VsdFtcIm1lc3NhZ2VcIl0gPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgIHJlc3VsdFtcInR5cGVcIl0gPSBlcnJvci5lcnJvci50eXBlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gb2YocmVzdWx0IGFzIFQpO1xyXG4gICAgfTtcclxuICB9XHJcbiAgYXN5bmMgY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5jb25uZWN0aW9uID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uKCk7XHJcbiAgICB9XHJcbiAgICAvLyBidWlsZGluZyBhYnNvbHV0ZSBwYXRoIHNvIHRoYXQgd2Vic29ja2V0IGRvZXNuJ3QgZmFpbCB3aGVuIGRlcGxveWluZyB3aXRoIGEgY29udGV4dCBwYXRoXHJcbiAgICBsZXQgdXJsO1xyXG4gICAgdXJsID0gYCR7dGhpcy5lbnZpcm9ubWVudC5ub3RpZmljYXRpb25zfS93ZWJzb2NrZXQvZWtoYWFgOyAvL3VybFxyXG4gICAgY29uc3Qgc29ja2V0ID0gbmV3IFNvY2tKUyh1cmwpO1xyXG4gICAgdGhpcy5zdG9tcENsaWVudCA9IFN0b21wLm92ZXIoc29ja2V0KTtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XHJcbiAgICAgIC8vIFVwZ3JhZGU6ICd3ZWJzb2NrZXQnLFxyXG4gICAgICAvLyBDb25uZWN0aW9uOiAnVXBncmFkZScsXHJcbiAgICAgIHRva2VuOiB0aGlzLmVudmlyb25tZW50LmxvZ2luTWV0aG9kID09PSAnbnV4ZW8nID8gdGhpcy5nZXRDYWNoYWJsZSgpOiBgJHthd2FpdCB0aGlzLmtleWNsb2FrLmdldFRva2VuKCl9YCxcclxuICAgIH07XHJcbiAgICBpZiAoIXRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5jb25uZWN0KGhlYWRlcnMsICgpID0+IHtcclxuICAgICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RlZFByb21pc2UoXCJzdWNjZXNzXCIpO1xyXG4gICAgICAgIHRoaXMuY29ubmVjdGVkUHJvbWlzZSA9IG51bGw7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGlzY29ubmVjdCgpIHtcclxuICAgIGlmICh0aGlzLnN0b21wQ2xpZW50ICE9PSBudWxsICYmIHRoaXMuYWxyZWFkeUNvbm5lY3RlZE9uY2UpIHtcclxuICAgICAgdGhpcy5zdG9tcENsaWVudC5kaXNjb25uZWN0KCk7XHJcbiAgICAgIHRoaXMuc3RvbXBDbGllbnQgPSBudWxsO1xyXG4gICAgICBpZiAodGhpcy5zdWJzY3JpcHRpb24pIHtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFscmVhZHlDb25uZWN0ZWRPbmNlID0gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29ubmVjdGVkUHJvbWlzZSkge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kaXNjb25uZWN0KCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlKCkge1xyXG4gICAgaWYgKHRoaXMuY29ubmVjdGlvbikge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rpb24udGhlbigoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvbXBDbGllbnQpIHtcclxuICAgICAgICAgIHRoaXMuc3Vic2NyaWJlciA9IHRoaXMuc3RvbXBDbGllbnQuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICBcIi91c2VyL3RvcGljL25vdGlmaWNhdGlvblwiLFxyXG4gICAgICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG5vdGlmaWNhdGlvbiA9IEpTT04ucGFyc2UoZGF0YS5ib2R5KTtcclxuICAgICAgICAgICAgICB0aGlzLl9ub3RpZmljYXRpb25zLnVuc2hpZnQobm90aWZpY2F0aW9uKTtcclxuICAgICAgICAgICAgICB0aGlzLmdldENvdW50KCkuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgICAgICAgICAgICB0aGlzLmxpc3RlbmVyT2JzZXJ2ZXIuZW1pdChub3RpZmljYXRpb24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1bnN1YnNjcmliZSgpIHtcclxuICAgIGlmICh0aGlzLnN1YnNjcmliZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5zdWJzY3JpYmVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQ29ubmVjdGlvbigpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+ICh0aGlzLmNvbm5lY3RlZFByb21pc2UgPSByZXNvbHZlKSk7XHJcbiAgfVxyXG5cclxuICB0ZXN0Tm90aWZpY2F0aW9uKCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gZnJvbShcclxuICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAub3BlcmF0aW9uKFwiU3lzdGVtLk5vdGlmaWNhdGlvblwiLCB7XHJcbiAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5wYXJhbXMoe1xyXG4gICAgICAgICAgYXBwbGljYXRpb25LZXk6IFwiY3RzblwiLFxyXG4gICAgICAgICAgbm90aWZpY2F0aW9uS2V5OiBcIk5vdGlmaWNhdGlvbldoZW5PdXRnb2luZ0NvcnJlc3BvbmRuZWNlQXBwcm92ZVwiLFxyXG4gICAgICAgICAgYXBpRGF0YTpcclxuICAgICAgICAgICAgJ3tcImlkXCI6IFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIsXCJzY2hlbWFcIjogXCJDb3JyZXNwb25kZW5jZVwifScsXHJcbiAgICAgICAgICBkYXRhOiBcInt9XCIsXHJcbiAgICAgICAgICBncm91cHNJZDogW10sXHJcbiAgICAgICAgICB1c2Vyc0lkOiBbXCJjdHNfc2VjXCJdLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmlucHV0KFwiYTdlZDYyOWUtYzhlYS00ZTg0LThiODMtMzI5MDA5NTE1ODc4XCIpXHJcbiAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgICAgIHRocm93IGVycjtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWNoYWJsZSgpe1xyXG4gICAgbGV0IG15Q2FjaGFibGUgPSB0aGlzLmNvb2tpZVNlcnZpY2UuZ2V0KCdDTVNfQ0FDSEFCTEUnKTtcclxuICAgIG15Q2FjaGFibGUgPSAgdGhpcy5pbnRpYWxpemF0aW9uU2VydmljZS5kZWNyaXB0Rm9ybWF0aW5nKG15Q2FjaGFibGUpO1xyXG4gIHJldHVybiBteUNhY2hhYmxlWydhY2Nlc3NfdG9rZW4nXTtcclxuICB9XHJcblxyXG4gIHNldE5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9ucyl7XHJcbiAgICB0aGlzLl9ub3RpZmljYXRpb25zID0gbm90aWZpY2F0aW9ucztcclxuICB9XHJcbn1cclxuIl19
@@ -102,9 +102,9 @@ export class PaginationComponent {
102
102
  return pages;
103
103
  }
104
104
  }
105
- PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
106
- PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: PaginationComponent, selector: "cts-pagination", inputs: { size: "size", count: "count", page: "page" }, outputs: { change: "change" }, ngImport: i0, template: "<ul class=\"pagination\" SetRtl *ngIf=\"pages.length > 1\">\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canPrevious()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to previous page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"prevPage()\"\r\n >\r\n <i class=\"bi bi-caret-left\"></i>\r\n </a>\r\n </li>\r\n <li\r\n role=\"button\"\r\n [attr.aria-label]=\"'page ' + pg.number\"\r\n class=\"pages\"\r\n *ngFor=\"let pg of pages\"\r\n [class.active]=\"pg.number === page\"\r\n >\r\n <a href=\"javascript:void(0)\" (click)=\"selectPage(pg.number)\">\r\n {{ pg.text }}\r\n </a>\r\n </li>\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canNext()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to next page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"nextPage()\"\r\n >\r\n <i class=\"bi bi-caret-right\"></i>\r\n </a>\r\n </li>\r\n</ul>\r\n", styles: [".pagination{padding:0;margin:0;display:inline-block;list-style:none}.pagination li{padding:0;margin:0;display:inline-block;list-style:none}.pagination li a{height:22px;min-width:24px;line-height:22px;padding:0 6px;border-radius:5px;margin:6px 3px;text-align:center;vertical-align:top;color:#0000008a;text-decoration:none;vertical-align:bottom}.pagination li a i{font-size:20px;line-height:20px;padding:0 3px}.pagination li.disabled a{color:#00000042!important;background-color:transparent!important;cursor:not-allowed}.pagination li.active{background-color:#9e9e9e33;font-weight:bold}.pagination.rtl .rotat-icon{transform:rotate(180deg)}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.SetRtlDirective, selector: "[SetRtl]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PaginationComponent, decorators: [{
105
+ PaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
106
+ PaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PaginationComponent, selector: "cts-pagination", inputs: { size: "size", count: "count", page: "page" }, outputs: { change: "change" }, ngImport: i0, template: "<ul class=\"pagination\" SetRtl *ngIf=\"pages.length > 1\">\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canPrevious()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to previous page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"prevPage()\"\r\n >\r\n <i class=\"bi bi-caret-left\"></i>\r\n </a>\r\n </li>\r\n <li\r\n role=\"button\"\r\n [attr.aria-label]=\"'page ' + pg.number\"\r\n class=\"pages\"\r\n *ngFor=\"let pg of pages\"\r\n [class.active]=\"pg.number === page\"\r\n >\r\n <a href=\"javascript:void(0)\" (click)=\"selectPage(pg.number)\">\r\n {{ pg.text }}\r\n </a>\r\n </li>\r\n <li class=\"rotat-icon\" [class.disabled]=\"!canNext()\">\r\n <a\r\n role=\"button\"\r\n aria-label=\"go to next page\"\r\n href=\"javascript:void(0)\"\r\n (click)=\"nextPage()\"\r\n >\r\n <i class=\"bi bi-caret-right\"></i>\r\n </a>\r\n </li>\r\n</ul>\r\n", styles: [".pagination{padding:0;margin:0;display:inline-block;list-style:none}.pagination li{padding:0;margin:0;display:inline-block;list-style:none}.pagination li a{height:22px;min-width:24px;line-height:22px;padding:0 6px;border-radius:5px;margin:6px 3px;text-align:center;vertical-align:top;color:#0000008a;text-decoration:none;vertical-align:bottom}.pagination li a i{font-size:20px;line-height:20px;padding:0 3px}.pagination li.disabled a{color:#00000042!important;background-color:transparent!important;cursor:not-allowed}.pagination li.active{background-color:#9e9e9e33;font-weight:bold}.pagination.rtl .rotat-icon{transform:rotate(180deg)}\n"], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.SetRtlDirective, selector: "[SetRtl]" }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
107
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PaginationComponent, decorators: [{
108
108
  type: Component,
109
109
  args: [{
110
110
  selector: 'cts-pagination',
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
121
121
  }], change: [{
122
122
  type: Output
123
123
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUVsRzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU9ILE1BQU0sT0FBTyxtQkFBbUI7SUFFOUI7UUF5Q0EseUJBQXlCO1FBQ2YsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpELFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixVQUFLLEdBQVcsQ0FBQyxDQUFDO0lBOUNGLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFDSSxJQUFJLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFDSSxLQUFLLENBQUMsR0FBVztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFH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LENBQUMsVUFBVSxDQUFDO2FBQzNCO1NBQ0Y7UUFFRCxLQUFLLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsSUFBSSxFQUFnQixHQUFJO2FBQ3pCLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztnSEEzR1UsbUJBQW1CO29HQUFuQixtQkFBbUIsNklDdkJoQyw4N0JBaUNBOzJGRFZhLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDMUMsYUFBYSxFQUFHLGlCQUFpQixDQUFDLElBQUk7aUJBQ3ZDOzBFQVVLLElBQUk7c0JBRFAsS0FBSztnQkFZRixLQUFLO3NCQURSLEtBQUs7Z0JBV0YsSUFBSTtzQkFEUCxLQUFLO2dCQWVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogeW91IGNhbiB1c2UgdGhpcyBjb21wb25lbnQgZm9yIGFueSBwYWdpbmF0aW9uXHJcbiAqXHJcbiAqICFbU2NyZWVuc2hvdC0xXSguLi9zY3JlZW5zaG90cy9wYWdpbmF0aW9uLnBuZylcclxuICogQHRpdGxlXHJcbiAqIFBhZ2luYXRpb25cclxuICpcclxuICogQGV4YW1wbGVcclxuICogPGN0cy1wYWdpbmF0aW9uXHJcbiAqICAgIFtwYWdlXT1cInBhZ2VOdW1iZXJcIlxyXG4gKiAgICAoY2hhbmdlKT1cIlBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAqICAgIFtzaXplXT1cIlBhZ2VTaXplXCJcclxuICogICAgW2NvdW50XT1cInRvdGFsUmVjb3Jkc1wiPlxyXG4gKiA8L2N0cy1wYWdpbmF0aW9uPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtcGFnaW5hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uIDogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLyoqIFBhZ2UgU2l6ZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNpemUodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NpemUgPSB2YWw7XHJcbiAgICB0aGlzLnBhZ2VzID0gdGhpcy5jYWxjUGFnZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCBzaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKiBUb3RhbCByZWNvcmRzIGNvdW50ICovXHJcbiAgQElucHV0KClcclxuICBzZXQgY291bnQodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2NvdW50ID0gdmFsO1xyXG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuY2FsY1BhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jb3VudDtcclxuICB9XHJcbiAvKiogUGFnZSBOdW1iZXIgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBwYWdlKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9wYWdlID0gdmFsO1xyXG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuY2FsY1BhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFnZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2U7XHJcbiAgfVxyXG4gLyoqIFBhZ2VzIENvdW50ICovXHJcbiAgZ2V0IHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5zaXplIDwgMSA/IDEgOiBNYXRoLmNlaWwodGhpcy5jb3VudCAvIHRoaXMuc2l6ZSk7XHJcbiAgICByZXR1cm4gTWF0aC5tYXgoY291bnQgfHwgMCwgMSk7XHJcbiAgfVxyXG4gIC8qKiBQYWdlIGNoYW5nZWQgZXZlbnQgKi9cclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgX2NvdW50OiBudW1iZXIgPSAwO1xyXG4gIF9wYWdlOiBudW1iZXIgPSAxO1xyXG4gIF9zaXplOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VzOiBhbnk7XHJcblxyXG4gIGNhblByZXZpb3VzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZSA+IDE7XHJcbiAgfVxyXG5cclxuICBjYW5OZXh0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZSA8IHRoaXMudG90YWxQYWdlcztcclxuICB9XHJcblxyXG4gIHByZXZQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RQYWdlKHRoaXMucGFnZSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFBhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdFBhZ2UodGhpcy5wYWdlICsgMSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RQYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHBhZ2UgPiAwICYmIHBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzICYmIHBhZ2UgIT09IHRoaXMucGFnZSkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xyXG5cclxuICAgICAgdGhpcy5jaGFuZ2UuZW1pdChcclxuICAgICAgICBwYWdlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjUGFnZXMocGFnZT86IG51bWJlcik6IGFueVtdIHtcclxuICAgIGNvbnN0IHBhZ2VzID0gW107XHJcbiAgICBsZXQgc3RhcnRQYWdlID0gMTtcclxuICAgIGxldCBlbmRQYWdlID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgY29uc3QgbWF4U2l6ZSA9IDU7XHJcbiAgICBjb25zdCBpc01heFNpemVkID0gbWF4U2l6ZSA8IHRoaXMudG90YWxQYWdlcztcclxuXHJcbiAgICBwYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2U7XHJcblxyXG4gICAgaWYgKGlzTWF4U2l6ZWQpIHtcclxuICAgICAgc3RhcnRQYWdlID0gcGFnZSAtIE1hdGguZmxvb3IobWF4U2l6ZSAvIDIpO1xyXG4gICAgICBlbmRQYWdlID0gcGFnZSArIE1hdGguZmxvb3IobWF4U2l6ZSAvIDIpO1xyXG5cclxuICAgICAgaWYgKHN0YXJ0UGFnZSA8IDEpIHtcclxuICAgICAgICBzdGFydFBhZ2UgPSAxO1xyXG4gICAgICAgIGVuZFBhZ2UgPSBNYXRoLm1pbihzdGFydFBhZ2UgKyBtYXhTaXplIC0gMSwgdGhpcy50b3RhbFBhZ2VzKTtcclxuICAgICAgfSBlbHNlIGlmIChlbmRQYWdlID4gdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgodGhpcy50b3RhbFBhZ2VzIC0gbWF4U2l6ZSArIDEsIDEpO1xyXG4gICAgICAgIGVuZFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBudW0gPSBzdGFydFBhZ2U7IG51bSA8PSBlbmRQYWdlOyBudW0rKykge1xyXG4gICAgICBwYWdlcy5wdXNoKHtcclxuICAgICAgICBudW1iZXI6IG51bSxcclxuICAgICAgICB0ZXh0OiA8c3RyaW5nPig8YW55Pm51bSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBhZ2VzO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJwYWdpbmF0aW9uXCIgU2V0UnRsICpuZ0lmPVwicGFnZXMubGVuZ3RoID4gMVwiPlxyXG4gIDxsaSBjbGFzcz1cInJvdGF0LWljb25cIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWNhblByZXZpb3VzKClcIj5cclxuICAgIDxhXHJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICBhcmlhLWxhYmVsPVwiZ28gdG8gcHJldmlvdXMgcGFnZVwiXHJcbiAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgICAoY2xpY2spPVwicHJldlBhZ2UoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2FyZXQtbGVmdFwiPjwvaT5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaVxyXG4gICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwYWdlICcgKyBwZy5udW1iZXJcIlxyXG4gICAgY2xhc3M9XCJwYWdlc1wiXHJcbiAgICAqbmdGb3I9XCJsZXQgcGcgb2YgcGFnZXNcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJwZy5udW1iZXIgPT09IHBhZ2VcIlxyXG4gID5cclxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwZy5udW1iZXIpXCI+XHJcbiAgICAgIHt7IHBnLnRleHQgfX1cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInJvdGF0LWljb25cIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWNhbk5leHQoKVwiPlxyXG4gICAgPGFcclxuICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgIGFyaWEtbGFiZWw9XCJnbyB0byBuZXh0IHBhZ2VcIlxyXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImJpIGJpLWNhcmV0LXJpZ2h0XCI+PC9pPlxyXG4gICAgPC9hPlxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUVsRzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU9ILE1BQU0sT0FBTyxtQkFBbUI7SUFFOUI7UUF5Q0EseUJBQXlCO1FBQ2YsV0FBTSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXpELFdBQU0sR0FBVyxDQUFDLENBQUM7UUFDbkIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUNsQixVQUFLLEdBQVcsQ0FBQyxDQUFDO0lBOUNGLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsSUFDSSxJQUFJLENBQUMsR0FBVztRQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCwwQkFBMEI7SUFDMUIsSUFDSSxLQUFLLENBQUMsR0FBVztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFH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LENBQUMsVUFBVSxDQUFDO2FBQzNCO1NBQ0Y7UUFFRCxLQUFLLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQy9DLEtBQUssQ0FBQyxJQUFJLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsSUFBSSxFQUFnQixHQUFJO2FBQ3pCLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDOztpSEEzR1UsbUJBQW1CO3FHQUFuQixtQkFBbUIsNklDdkJoQyw4N0JBaUNBOzRGRFZhLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixXQUFXLEVBQUUsNkJBQTZCO29CQUMxQyxTQUFTLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztvQkFDMUMsYUFBYSxFQUFHLGlCQUFpQixDQUFDLElBQUk7aUJBQ3ZDOzBFQVVLLElBQUk7c0JBRFAsS0FBSztnQkFZRixLQUFLO3NCQURSLEtBQUs7Z0JBV0YsSUFBSTtzQkFEUCxLQUFLO2dCQWVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogeW91IGNhbiB1c2UgdGhpcyBjb21wb25lbnQgZm9yIGFueSBwYWdpbmF0aW9uXHJcbiAqXHJcbiAqICFbU2NyZWVuc2hvdC0xXSguLi9zY3JlZW5zaG90cy9wYWdpbmF0aW9uLnBuZylcclxuICogQHRpdGxlXHJcbiAqIFBhZ2luYXRpb25cclxuICpcclxuICogQGV4YW1wbGVcclxuICogPGN0cy1wYWdpbmF0aW9uXHJcbiAqICAgIFtwYWdlXT1cInBhZ2VOdW1iZXJcIlxyXG4gKiAgICAoY2hhbmdlKT1cIlBhZ2luYXRpb25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAqICAgIFtzaXplXT1cIlBhZ2VTaXplXCJcclxuICogICAgW2NvdW50XT1cInRvdGFsUmVjb3Jkc1wiPlxyXG4gKiA8L2N0cy1wYWdpbmF0aW9uPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtcGFnaW5hdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BhZ2luYXRpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uIDogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcbiAgLyoqIFBhZ2UgU2l6ZSAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IHNpemUodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX3NpemUgPSB2YWw7XHJcbiAgICB0aGlzLnBhZ2VzID0gdGhpcy5jYWxjUGFnZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCBzaXplKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcclxuICB9XHJcblxyXG4gIC8qKiBUb3RhbCByZWNvcmRzIGNvdW50ICovXHJcbiAgQElucHV0KClcclxuICBzZXQgY291bnQodmFsOiBudW1iZXIpIHtcclxuICAgIHRoaXMuX2NvdW50ID0gdmFsO1xyXG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuY2FsY1BhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY291bnQoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9jb3VudDtcclxuICB9XHJcbiAvKiogUGFnZSBOdW1iZXIgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBwYWdlKHZhbDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9wYWdlID0gdmFsO1xyXG4gICAgdGhpcy5wYWdlcyA9IHRoaXMuY2FsY1BhZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGFnZSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX3BhZ2U7XHJcbiAgfVxyXG4gLyoqIFBhZ2VzIENvdW50ICovXHJcbiAgZ2V0IHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcclxuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5zaXplIDwgMSA/IDEgOiBNYXRoLmNlaWwodGhpcy5jb3VudCAvIHRoaXMuc2l6ZSk7XHJcbiAgICByZXR1cm4gTWF0aC5tYXgoY291bnQgfHwgMCwgMSk7XHJcbiAgfVxyXG4gIC8qKiBQYWdlIGNoYW5nZWQgZXZlbnQgKi9cclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgX2NvdW50OiBudW1iZXIgPSAwO1xyXG4gIF9wYWdlOiBudW1iZXIgPSAxO1xyXG4gIF9zaXplOiBudW1iZXIgPSAwO1xyXG4gIHBhZ2VzOiBhbnk7XHJcblxyXG4gIGNhblByZXZpb3VzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZSA+IDE7XHJcbiAgfVxyXG5cclxuICBjYW5OZXh0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMucGFnZSA8IHRoaXMudG90YWxQYWdlcztcclxuICB9XHJcblxyXG4gIHByZXZQYWdlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RQYWdlKHRoaXMucGFnZSAtIDEpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFBhZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdFBhZ2UodGhpcy5wYWdlICsgMSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RQYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKHBhZ2UgPiAwICYmIHBhZ2UgPD0gdGhpcy50b3RhbFBhZ2VzICYmIHBhZ2UgIT09IHRoaXMucGFnZSkge1xyXG4gICAgICB0aGlzLnBhZ2UgPSBwYWdlO1xyXG5cclxuICAgICAgdGhpcy5jaGFuZ2UuZW1pdChcclxuICAgICAgICBwYWdlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYWxjUGFnZXMocGFnZT86IG51bWJlcik6IGFueVtdIHtcclxuICAgIGNvbnN0IHBhZ2VzID0gW107XHJcbiAgICBsZXQgc3RhcnRQYWdlID0gMTtcclxuICAgIGxldCBlbmRQYWdlID0gdGhpcy50b3RhbFBhZ2VzO1xyXG4gICAgY29uc3QgbWF4U2l6ZSA9IDU7XHJcbiAgICBjb25zdCBpc01heFNpemVkID0gbWF4U2l6ZSA8IHRoaXMudG90YWxQYWdlcztcclxuXHJcbiAgICBwYWdlID0gcGFnZSB8fCB0aGlzLnBhZ2U7XHJcblxyXG4gICAgaWYgKGlzTWF4U2l6ZWQpIHtcclxuICAgICAgc3RhcnRQYWdlID0gcGFnZSAtIE1hdGguZmxvb3IobWF4U2l6ZSAvIDIpO1xyXG4gICAgICBlbmRQYWdlID0gcGFnZSArIE1hdGguZmxvb3IobWF4U2l6ZSAvIDIpO1xyXG5cclxuICAgICAgaWYgKHN0YXJ0UGFnZSA8IDEpIHtcclxuICAgICAgICBzdGFydFBhZ2UgPSAxO1xyXG4gICAgICAgIGVuZFBhZ2UgPSBNYXRoLm1pbihzdGFydFBhZ2UgKyBtYXhTaXplIC0gMSwgdGhpcy50b3RhbFBhZ2VzKTtcclxuICAgICAgfSBlbHNlIGlmIChlbmRQYWdlID4gdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgc3RhcnRQYWdlID0gTWF0aC5tYXgodGhpcy50b3RhbFBhZ2VzIC0gbWF4U2l6ZSArIDEsIDEpO1xyXG4gICAgICAgIGVuZFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBmb3IgKGxldCBudW0gPSBzdGFydFBhZ2U7IG51bSA8PSBlbmRQYWdlOyBudW0rKykge1xyXG4gICAgICBwYWdlcy5wdXNoKHtcclxuICAgICAgICBudW1iZXI6IG51bSxcclxuICAgICAgICB0ZXh0OiA8c3RyaW5nPig8YW55Pm51bSlcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBhZ2VzO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgY2xhc3M9XCJwYWdpbmF0aW9uXCIgU2V0UnRsICpuZ0lmPVwicGFnZXMubGVuZ3RoID4gMVwiPlxyXG4gIDxsaSBjbGFzcz1cInJvdGF0LWljb25cIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWNhblByZXZpb3VzKClcIj5cclxuICAgIDxhXHJcbiAgICAgIHJvbGU9XCJidXR0b25cIlxyXG4gICAgICBhcmlhLWxhYmVsPVwiZ28gdG8gcHJldmlvdXMgcGFnZVwiXHJcbiAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIlxyXG4gICAgICAoY2xpY2spPVwicHJldlBhZ2UoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2FyZXQtbGVmdFwiPjwvaT5cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaVxyXG4gICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwYWdlICcgKyBwZy5udW1iZXJcIlxyXG4gICAgY2xhc3M9XCJwYWdlc1wiXHJcbiAgICAqbmdGb3I9XCJsZXQgcGcgb2YgcGFnZXNcIlxyXG4gICAgW2NsYXNzLmFjdGl2ZV09XCJwZy5udW1iZXIgPT09IHBhZ2VcIlxyXG4gID5cclxuICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwic2VsZWN0UGFnZShwZy5udW1iZXIpXCI+XHJcbiAgICAgIHt7IHBnLnRleHQgfX1cclxuICAgIDwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSBjbGFzcz1cInJvdGF0LWljb25cIiBbY2xhc3MuZGlzYWJsZWRdPVwiIWNhbk5leHQoKVwiPlxyXG4gICAgPGFcclxuICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgIGFyaWEtbGFiZWw9XCJnbyB0byBuZXh0IHBhZ2VcIlxyXG4gICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgKGNsaWNrKT1cIm5leHRQYWdlKClcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImJpIGJpLWNhcmV0LXJpZ2h0XCI+PC9pPlxyXG4gICAgPC9hPlxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcbiJdfQ==
@@ -9,14 +9,14 @@ import * as i0 from "@angular/core";
9
9
  */
10
10
  export class PaginationModule {
11
11
  }
12
- PaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- PaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule,
12
+ PaginationModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PaginationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ PaginationModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PaginationModule, declarations: [PaginationComponent], imports: [CommonModule,
14
14
  DirectiveModule], exports: [PaginationComponent] });
15
- PaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PaginationModule, imports: [[
15
+ PaginationModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PaginationModule, imports: [[
16
16
  CommonModule,
17
17
  DirectiveModule
18
18
  ]] });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PaginationModule, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PaginationModule, decorators: [{
20
20
  type: NgModule,
21
21
  args: [{
22
22
  declarations: [PaginationComponent],
@@ -29,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
29
29
  ]
30
30
  }]
31
31
  }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUduRTs7O0dBR0c7QUFXSCxNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBVFosbUJBQW1CLGFBRWhDLFlBQVk7UUFDWixlQUFlLGFBR2YsbUJBQW1COzhHQUdWLGdCQUFnQixZQVJsQjtZQUNQLFlBQVk7WUFDWixlQUFlO1NBQ2hCOzJGQUtVLGdCQUFnQjtrQkFWNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFDO3dCQUNOLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAdGl0bGVcclxuICogUGFnaW5hdGlvbiBNb2R1bGVcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRGlyZWN0aXZlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltcclxuICAgIFBhZ2luYXRpb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kdWxlIHsgfVxyXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQUduRTs7O0dBR0c7QUFXSCxNQUFNLE9BQU8sZ0JBQWdCOzs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBVFosbUJBQW1CLGFBRWhDLFlBQVk7UUFDWixlQUFlLGFBR2YsbUJBQW1COytHQUdWLGdCQUFnQixZQVJsQjtZQUNQLFlBQVk7WUFDWixlQUFlO1NBQ2hCOzRGQUtVLGdCQUFnQjtrQkFWNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztvQkFDbkMsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFDO3dCQUNOLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlyZWN0aXZlTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlL2RpcmVjdGl2ZS5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBAdGl0bGVcclxuICogUGFnaW5hdGlvbiBNb2R1bGVcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGFnaW5hdGlvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRGlyZWN0aXZlTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltcclxuICAgIFBhZ2luYXRpb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTW9kdWxlIHsgfVxyXG4iXX0=
@@ -4,12 +4,12 @@ import { PdftronComponent } from './pdftron/pdftron.component';
4
4
  import * as i0 from "@angular/core";
5
5
  export class PdfTronModule {
6
6
  }
7
- PdfTronModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PdfTronModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
- PdfTronModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PdfTronModule, declarations: [PdftronComponent], imports: [CommonModule], exports: [PdftronComponent] });
9
- PdfTronModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PdfTronModule, imports: [[
7
+ PdfTronModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdfTronModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
8
+ PdfTronModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdfTronModule, declarations: [PdftronComponent], imports: [CommonModule], exports: [PdftronComponent] });
9
+ PdfTronModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdfTronModule, imports: [[
10
10
  CommonModule
11
11
  ]] });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: PdfTronModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PdfTronModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  declarations: [PdftronComponent],
@@ -21,4 +21,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
21
21
  ]
22
22
  }]
23
23
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXRyb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGYtdHJvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBYS9ELE1BQU0sT0FBTyxhQUFhOzswR0FBYixhQUFhOzJHQUFiLGFBQWEsaUJBUlQsZ0JBQWdCLGFBRTdCLFlBQVksYUFHWixnQkFBZ0I7MkdBR1AsYUFBYSxZQVBmO1lBQ1AsWUFBWTtTQUNiOzJGQUtVLGFBQWE7a0JBVHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBQzt3QkFDTixnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGRmdHJvbkNvbXBvbmVudCB9IGZyb20gJy4vcGRmdHJvbi9wZGZ0cm9uLmNvbXBvbmVudCc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGRmdHJvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltcclxuICAgIFBkZnRyb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZUcm9uTW9kdWxlIHsgfVxyXG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLXRyb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9wZGYtdHJvbi9wZGYtdHJvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBYS9ELE1BQU0sT0FBTyxhQUFhOzsyR0FBYixhQUFhOzRHQUFiLGFBQWEsaUJBUlQsZ0JBQWdCLGFBRTdCLFlBQVksYUFHWixnQkFBZ0I7NEdBR1AsYUFBYSxZQVBmO1lBQ1AsWUFBWTtTQUNiOzRGQUtVLGFBQWE7a0JBVHpCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBQzt3QkFDTixnQkFBZ0I7cUJBQ2pCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgUGRmdHJvbkNvbXBvbmVudCB9IGZyb20gJy4vcGRmdHJvbi9wZGZ0cm9uLmNvbXBvbmVudCc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbUGRmdHJvbkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOltcclxuICAgIFBkZnRyb25Db21wb25lbnRcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZGZUcm9uTW9kdWxlIHsgfVxyXG4iXX0=