@vendure/admin-ui 2.0.6 → 2.1.0-next.1

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 (414) hide show
  1. package/core/common/generated-types.d.ts +1820 -1720
  2. package/core/common/version.d.ts +1 -1
  3. package/core/data/definitions/facet-definitions.d.ts +1 -0
  4. package/core/data/providers/base-data.service.d.ts +1 -3
  5. package/core/providers/data-table/data-table-filter-collection.d.ts +10 -6
  6. package/core/providers/data-table/data-table-filter.d.ts +16 -2
  7. package/core/providers/local-storage/local-storage.service.d.ts +4 -0
  8. package/core/public_api.d.ts +4 -0
  9. package/core/shared/components/data-table-2/data-table2.component.d.ts +6 -2
  10. package/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.d.ts +25 -0
  11. package/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.d.ts +29 -0
  12. package/core/shared/components/data-table-filter-presets/filter-preset.service.d.ts +34 -0
  13. package/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.d.ts +9 -0
  14. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  15. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +1 -1
  16. package/core/shared/shared.module.d.ts +14 -11
  17. package/esm2022/catalog/catalog.module.mjs +4 -4
  18. package/esm2022/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +3 -3
  19. package/esm2022/catalog/components/asset-detail/asset-detail.component.mjs +3 -3
  20. package/esm2022/catalog/components/asset-list/asset-list.component.mjs +3 -3
  21. package/esm2022/catalog/components/assets/assets.component.mjs +3 -3
  22. package/esm2022/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +3 -3
  23. package/esm2022/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +3 -3
  24. package/esm2022/catalog/components/collection-contents/collection-contents.component.mjs +3 -3
  25. package/esm2022/catalog/components/collection-data-table/collection-data-table.component.mjs +4 -4
  26. package/esm2022/catalog/components/collection-detail/collection-detail.component.mjs +4 -4
  27. package/esm2022/catalog/components/collection-list/collection-breadcrumb.pipe.mjs +3 -3
  28. package/esm2022/catalog/components/collection-list/collection-list.component.mjs +6 -5
  29. package/esm2022/catalog/components/collection-tree/collection-tree-node.component.mjs +5 -5
  30. package/esm2022/catalog/components/collection-tree/collection-tree.component.mjs +3 -3
  31. package/esm2022/catalog/components/collection-tree/collection-tree.service.mjs +3 -3
  32. package/esm2022/catalog/components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component.mjs +3 -3
  33. package/esm2022/catalog/components/create-product-option-group-dialog/create-product-option-group-dialog.component.mjs +3 -3
  34. package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +3 -3
  35. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
  36. package/esm2022/catalog/components/facet-list/facet-list.component.mjs +11 -10
  37. package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +3 -3
  38. package/esm2022/catalog/components/move-collections-dialog/move-collections-dialog.component.mjs +4 -4
  39. package/esm2022/catalog/components/option-value-input/option-value-input.component.mjs +3 -3
  40. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +4 -4
  41. package/esm2022/catalog/components/product-list/product-list.component.mjs +6 -11
  42. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +3 -3
  43. package/esm2022/catalog/components/product-variant-detail/product-variant-detail.component.mjs +4 -4
  44. package/esm2022/catalog/components/product-variant-list/product-variant-list.component.mjs +6 -11
  45. package/esm2022/catalog/components/product-variant-quick-jump/product-variant-quick-jump.component.mjs +3 -3
  46. package/esm2022/catalog/components/product-variants-editor/product-variants-editor.component.mjs +4 -4
  47. package/esm2022/catalog/components/product-variants-table/product-variants-table.component.mjs +3 -3
  48. package/esm2022/catalog/components/stock-location-detail/stock-location-detail.component.mjs +3 -3
  49. package/esm2022/catalog/components/stock-location-list/stock-location-list.component.mjs +5 -10
  50. package/esm2022/catalog/components/update-product-option-dialog/update-product-option-dialog.component.mjs +3 -3
  51. package/esm2022/catalog/components/variant-price-detail/variant-price-detail.component.mjs +3 -3
  52. package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +3 -3
  53. package/esm2022/catalog/providers/routing/product-variants-resolver.mjs +3 -3
  54. package/esm2022/core/app.component.mjs +3 -3
  55. package/esm2022/core/app.component.module.mjs +4 -4
  56. package/esm2022/core/common/base-list.component.mjs +6 -6
  57. package/esm2022/core/common/generated-types.mjs +8 -7
  58. package/esm2022/core/common/version.mjs +2 -2
  59. package/esm2022/core/components/alerts/alerts.component.mjs +3 -3
  60. package/esm2022/core/components/app-shell/app-shell.component.mjs +4 -4
  61. package/esm2022/core/components/base-nav/base-nav.component.mjs +3 -3
  62. package/esm2022/core/components/breadcrumb/breadcrumb.component.mjs +3 -3
  63. package/esm2022/core/components/channel-switcher/channel-switcher.component.mjs +3 -3
  64. package/esm2022/core/components/main-nav/main-nav.component.mjs +4 -4
  65. package/esm2022/core/components/notification/notification.component.mjs +3 -3
  66. package/esm2022/core/components/overlay-host/overlay-host.component.mjs +3 -3
  67. package/esm2022/core/components/settings-nav/settings-nav.component.mjs +4 -4
  68. package/esm2022/core/components/theme-switcher/theme-switcher.component.mjs +4 -4
  69. package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +3 -3
  70. package/esm2022/core/components/user-menu/user-menu.component.mjs +4 -4
  71. package/esm2022/core/core.module.mjs +4 -4
  72. package/esm2022/core/data/data.module.mjs +6 -5
  73. package/esm2022/core/data/definitions/facet-definitions.mjs +24 -1
  74. package/esm2022/core/data/definitions/promotion-definitions.mjs +2 -1
  75. package/esm2022/core/data/providers/base-data.service.mjs +7 -9
  76. package/esm2022/core/data/providers/data.service.mjs +3 -3
  77. package/esm2022/core/data/providers/fetch-adapter.mjs +3 -3
  78. package/esm2022/core/data/providers/interceptor.mjs +3 -3
  79. package/esm2022/core/data/providers/promotion-data.service.mjs +3 -1
  80. package/esm2022/core/data/server-config.mjs +3 -3
  81. package/esm2022/core/providers/alerts/alerts.service.mjs +3 -3
  82. package/esm2022/core/providers/auth/auth.service.mjs +3 -3
  83. package/esm2022/core/providers/breadcrumb/breadcrumb.service.mjs +3 -3
  84. package/esm2022/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +3 -3
  85. package/esm2022/core/providers/channel/channel.service.mjs +3 -3
  86. package/esm2022/core/providers/component-registry/component-registry.service.mjs +3 -3
  87. package/esm2022/core/providers/custom-detail-component/custom-detail-component.service.mjs +3 -3
  88. package/esm2022/core/providers/custom-field-component/custom-field-component.service.mjs +3 -3
  89. package/esm2022/core/providers/custom-history-entry-component/history-entry-component.service.mjs +3 -3
  90. package/esm2022/core/providers/dashboard-widget/dashboard-widget.service.mjs +3 -3
  91. package/esm2022/core/providers/data-table/data-table-filter-collection.mjs +77 -29
  92. package/esm2022/core/providers/data-table/data-table-filter.mjs +31 -13
  93. package/esm2022/core/providers/guard/auth.guard.mjs +3 -3
  94. package/esm2022/core/providers/health-check/health-check.service.mjs +3 -3
  95. package/esm2022/core/providers/i18n/custom-message-format-compiler.mjs +3 -3
  96. package/esm2022/core/providers/i18n/i18n.service.mjs +3 -3
  97. package/esm2022/core/providers/job-queue/job-queue.service.mjs +3 -3
  98. package/esm2022/core/providers/local-storage/local-storage.service.mjs +4 -4
  99. package/esm2022/core/providers/modal/modal.service.mjs +3 -3
  100. package/esm2022/core/providers/nav-builder/nav-builder.service.mjs +3 -3
  101. package/esm2022/core/providers/notification/notification.service.mjs +3 -3
  102. package/esm2022/core/providers/overlay-host/overlay-host.service.mjs +3 -3
  103. package/esm2022/core/providers/page/page.service.mjs +3 -3
  104. package/esm2022/core/public_api.mjs +5 -1
  105. package/esm2022/core/shared/components/action-bar/action-bar.component.mjs +10 -10
  106. package/esm2022/core/shared/components/action-bar-items/action-bar-items.component.mjs +3 -3
  107. package/esm2022/core/shared/components/address-form/address-form.component.mjs +3 -3
  108. package/esm2022/core/shared/components/affixed-input/affixed-input.component.mjs +4 -4
  109. package/esm2022/core/shared/components/affixed-input/percentage-suffix-input.component.mjs +3 -3
  110. package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +3 -3
  111. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +4 -4
  112. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +3 -3
  113. package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
  114. package/esm2022/core/shared/components/asset-preview-dialog/asset-preview-dialog.component.mjs +3 -3
  115. package/esm2022/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +3 -3
  116. package/esm2022/core/shared/components/asset-search-input/asset-search-input.component.mjs +3 -3
  117. package/esm2022/core/shared/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +3 -3
  118. package/esm2022/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +3 -3
  119. package/esm2022/core/shared/components/card/card.component.mjs +7 -7
  120. package/esm2022/core/shared/components/channel-assignment-control/channel-assignment-control.component.mjs +5 -5
  121. package/esm2022/core/shared/components/channel-badge/channel-badge.component.mjs +4 -4
  122. package/esm2022/core/shared/components/chart/chart.component.mjs +3 -3
  123. package/esm2022/core/shared/components/chip/chip.component.mjs +4 -4
  124. package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +5 -5
  125. package/esm2022/core/shared/components/currency-code-selector/currency-code-selector.component.mjs +4 -4
  126. package/esm2022/core/shared/components/currency-input/currency-input.component.mjs +3 -3
  127. package/esm2022/core/shared/components/custom-detail-component-host/custom-detail-component-host.component.mjs +3 -3
  128. package/esm2022/core/shared/components/custom-field-control/custom-field-control.component.mjs +3 -3
  129. package/esm2022/core/shared/components/customer-label/customer-label.component.mjs +4 -4
  130. package/esm2022/core/shared/components/data-table/data-table-column.component.mjs +3 -3
  131. package/esm2022/core/shared/components/data-table/data-table.component.mjs +3 -3
  132. package/esm2022/core/shared/components/data-table-2/data-table-column.component.mjs +3 -3
  133. package/esm2022/core/shared/components/data-table-2/data-table-custom-field-column.component.mjs +3 -3
  134. package/esm2022/core/shared/components/data-table-2/data-table-search.component.mjs +4 -4
  135. package/esm2022/core/shared/components/data-table-2/data-table2.component.mjs +36 -22
  136. package/esm2022/core/shared/components/data-table-column-picker/data-table-column-picker.component.mjs +3 -3
  137. package/esm2022/core/shared/components/data-table-filter-label/data-table-filter-label.component.mjs +5 -5
  138. package/esm2022/core/shared/components/data-table-filter-presets/add-filter-preset-button.component.mjs +69 -0
  139. package/esm2022/core/shared/components/data-table-filter-presets/data-table-filter-presets.component.mjs +78 -0
  140. package/esm2022/core/shared/components/data-table-filter-presets/filter-preset.service.mjs +79 -0
  141. package/esm2022/core/shared/components/data-table-filter-presets/rename-filter-preset-dialog.component.mjs +20 -0
  142. package/esm2022/core/shared/components/data-table-filters/custom-filter-component.directive.mjs +3 -3
  143. package/esm2022/core/shared/components/data-table-filters/data-table-filters.component.mjs +50 -35
  144. package/esm2022/core/shared/components/datetime-picker/datetime-picker.component.mjs +5 -5
  145. package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +3 -3
  146. package/esm2022/core/shared/components/dropdown/dropdown-item.directive.mjs +3 -3
  147. package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +5 -5
  148. package/esm2022/core/shared/components/dropdown/dropdown-trigger.directive.mjs +3 -3
  149. package/esm2022/core/shared/components/dropdown/dropdown.component.mjs +3 -3
  150. package/esm2022/core/shared/components/edit-note-dialog/edit-note-dialog.component.mjs +4 -4
  151. package/esm2022/core/shared/components/empty-placeholder/empty-placeholder.component.mjs +3 -3
  152. package/esm2022/core/shared/components/entity-info/entity-info.component.mjs +3 -3
  153. package/esm2022/core/shared/components/extension-host/extension-host.component.mjs +3 -3
  154. package/esm2022/core/shared/components/extension-host/extension-host.service.mjs +3 -3
  155. package/esm2022/core/shared/components/facet-value-chip/facet-value-chip.component.mjs +4 -4
  156. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +4 -4
  157. package/esm2022/core/shared/components/focal-point-control/focal-point-control.component.mjs +3 -3
  158. package/esm2022/core/shared/components/form-field/form-field-control.directive.mjs +3 -3
  159. package/esm2022/core/shared/components/form-field/form-field.component.mjs +3 -3
  160. package/esm2022/core/shared/components/form-item/form-item.component.mjs +3 -3
  161. package/esm2022/core/shared/components/formatted-address/formatted-address.component.mjs +3 -3
  162. package/esm2022/core/shared/components/help-tooltip/help-tooltip.component.mjs +3 -3
  163. package/esm2022/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +3 -3
  164. package/esm2022/core/shared/components/items-per-page-controls/items-per-page-controls.component.mjs +3 -3
  165. package/esm2022/core/shared/components/labeled-data/labeled-data.component.mjs +3 -3
  166. package/esm2022/core/shared/components/language-code-selector/language-code-selector.component.mjs +4 -4
  167. package/esm2022/core/shared/components/language-selector/language-selector.component.mjs +3 -3
  168. package/esm2022/core/shared/components/localized-text/localized-text.component.mjs +3 -3
  169. package/esm2022/core/shared/components/manage-tags-dialog/manage-tags-dialog.component.mjs +3 -3
  170. package/esm2022/core/shared/components/modal-dialog/dialog-buttons.directive.mjs +3 -3
  171. package/esm2022/core/shared/components/modal-dialog/dialog-component-outlet.component.mjs +3 -3
  172. package/esm2022/core/shared/components/modal-dialog/dialog-title.directive.mjs +3 -3
  173. package/esm2022/core/shared/components/modal-dialog/modal-dialog.component.mjs +3 -3
  174. package/esm2022/core/shared/components/object-tree/object-tree.component.mjs +5 -5
  175. package/esm2022/core/shared/components/order-state-label/order-state-label.component.mjs +4 -4
  176. package/esm2022/core/shared/components/page/page.component.mjs +3 -3
  177. package/esm2022/core/shared/components/page-block/page-block.component.mjs +4 -4
  178. package/esm2022/core/shared/components/page-body/page-body.component.mjs +3 -3
  179. package/esm2022/core/shared/components/page-detail-layout/page-detail-layout.component.mjs +3 -3
  180. package/esm2022/core/shared/components/page-detail-layout/page-detail-sidebar.component.mjs +3 -3
  181. package/esm2022/core/shared/components/page-entity-info/page-entity-info.component.mjs +3 -3
  182. package/esm2022/core/shared/components/page-header/page-header.component.mjs +4 -4
  183. package/esm2022/core/shared/components/page-header-description/page-header-description.component.mjs +3 -3
  184. package/esm2022/core/shared/components/page-header-tabs/page-header-tabs.component.mjs +4 -4
  185. package/esm2022/core/shared/components/page-title/page-title.component.mjs +3 -3
  186. package/esm2022/core/shared/components/pagination-controls/pagination-controls.component.mjs +3 -3
  187. package/esm2022/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +4 -4
  188. package/esm2022/core/shared/components/product-search-input/product-search-input.component.mjs +4 -4
  189. package/esm2022/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +4 -4
  190. package/esm2022/core/shared/components/radio-card/radio-card-fieldset.component.mjs +3 -3
  191. package/esm2022/core/shared/components/radio-card/radio-card.component.mjs +4 -4
  192. package/esm2022/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +4 -4
  193. package/esm2022/core/shared/components/rich-text-editor/link-dialog/link-dialog.component.mjs +3 -3
  194. package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +4 -4
  195. package/esm2022/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +3 -3
  196. package/esm2022/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +3 -3
  197. package/esm2022/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +3 -3
  198. package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +5 -5
  199. package/esm2022/core/shared/components/select-toggle/select-toggle.component.mjs +4 -4
  200. package/esm2022/core/shared/components/simple-dialog/simple-dialog.component.mjs +3 -3
  201. package/esm2022/core/shared/components/split-view/split-view.component.mjs +4 -4
  202. package/esm2022/core/shared/components/split-view/split-view.directive.mjs +6 -6
  203. package/esm2022/core/shared/components/status-badge/status-badge.component.mjs +3 -3
  204. package/esm2022/core/shared/components/tabbed-custom-fields/tabbed-custom-fields.component.mjs +3 -3
  205. package/esm2022/core/shared/components/table-row-action/table-row-action.component.mjs +3 -3
  206. package/esm2022/core/shared/components/tag-selector/tag-selector.component.mjs +4 -4
  207. package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +4 -4
  208. package/esm2022/core/shared/components/title-input/title-input.component.mjs +3 -3
  209. package/esm2022/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +3 -3
  210. package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +4 -4
  211. package/esm2022/core/shared/directives/disabled.directive.mjs +3 -3
  212. package/esm2022/core/shared/directives/if-default-channel-active.directive.mjs +3 -3
  213. package/esm2022/core/shared/directives/if-directive-base.mjs +3 -3
  214. package/esm2022/core/shared/directives/if-multichannel.directive.mjs +3 -3
  215. package/esm2022/core/shared/directives/if-permissions.directive.mjs +3 -3
  216. package/esm2022/core/shared/dynamic-form-inputs/boolean-form-input/boolean-form-input.component.mjs +3 -3
  217. package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +3 -3
  218. package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +3 -3
  219. package/esm2022/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +3 -3
  220. package/esm2022/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +3 -3
  221. package/esm2022/core/shared/dynamic-form-inputs/currency-form-input/currency-form-input.component.mjs +3 -3
  222. package/esm2022/core/shared/dynamic-form-inputs/customer-group-form-input/customer-group-form-input.component.mjs +3 -3
  223. package/esm2022/core/shared/dynamic-form-inputs/date-form-input/date-form-input.component.mjs +3 -3
  224. package/esm2022/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +3 -3
  225. package/esm2022/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +3 -3
  226. package/esm2022/core/shared/dynamic-form-inputs/number-form-input/number-form-input.component.mjs +3 -3
  227. package/esm2022/core/shared/dynamic-form-inputs/password-form-input/password-form-input.component.mjs +3 -3
  228. package/esm2022/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +3 -3
  229. package/esm2022/core/shared/dynamic-form-inputs/product-selector-form-input/product-selector-form-input.component.mjs +4 -4
  230. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +3 -3
  231. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/customer/relation-customer-input.component.mjs +3 -3
  232. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +3 -3
  233. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product/relation-product-input.component.mjs +3 -3
  234. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/product-variant/relation-product-variant-input.component.mjs +3 -3
  235. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-card/relation-card.component.mjs +9 -9
  236. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-form-input.component.mjs +3 -3
  237. package/esm2022/core/shared/dynamic-form-inputs/relation-form-input/relation-selector-dialog/relation-selector-dialog.component.mjs +3 -3
  238. package/esm2022/core/shared/dynamic-form-inputs/rich-text-form-input/rich-text-form-input.component.mjs +3 -3
  239. package/esm2022/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +3 -3
  240. package/esm2022/core/shared/dynamic-form-inputs/text-form-input/text-form-input.component.mjs +3 -3
  241. package/esm2022/core/shared/dynamic-form-inputs/textarea-form-input/textarea-form-input.component.mjs +3 -3
  242. package/esm2022/core/shared/pipes/asset-preview.pipe.mjs +3 -3
  243. package/esm2022/core/shared/pipes/channel-label.pipe.mjs +3 -3
  244. package/esm2022/core/shared/pipes/custom-field-description.pipe.mjs +3 -3
  245. package/esm2022/core/shared/pipes/custom-field-label.pipe.mjs +3 -3
  246. package/esm2022/core/shared/pipes/duration.pipe.mjs +3 -3
  247. package/esm2022/core/shared/pipes/file-size.pipe.mjs +3 -3
  248. package/esm2022/core/shared/pipes/has-permission.pipe.mjs +3 -3
  249. package/esm2022/core/shared/pipes/locale-base.pipe.mjs +3 -3
  250. package/esm2022/core/shared/pipes/locale-currency-name.pipe.mjs +3 -3
  251. package/esm2022/core/shared/pipes/locale-currency.pipe.mjs +3 -3
  252. package/esm2022/core/shared/pipes/locale-date.pipe.mjs +3 -3
  253. package/esm2022/core/shared/pipes/locale-language-name.pipe.mjs +3 -3
  254. package/esm2022/core/shared/pipes/locale-region-name.pipe.mjs +3 -3
  255. package/esm2022/core/shared/pipes/sentence-case.pipe.mjs +3 -3
  256. package/esm2022/core/shared/pipes/sort.pipe.mjs +3 -3
  257. package/esm2022/core/shared/pipes/state-i18n-token.pipe.mjs +3 -3
  258. package/esm2022/core/shared/pipes/string-to-color.pipe.mjs +3 -3
  259. package/esm2022/core/shared/pipes/time-ago.pipe.mjs +3 -3
  260. package/esm2022/core/shared/providers/routing/can-deactivate-detail-guard.mjs +3 -3
  261. package/esm2022/core/shared/shared.module.mjs +18 -7
  262. package/esm2022/customer/components/add-customer-to-group-dialog/add-customer-to-group-dialog.component.mjs +3 -3
  263. package/esm2022/customer/components/address-card/address-card.component.mjs +3 -3
  264. package/esm2022/customer/components/address-detail-dialog/address-detail-dialog.component.mjs +3 -3
  265. package/esm2022/customer/components/customer-detail/customer-detail.component.mjs +4 -4
  266. package/esm2022/customer/components/customer-group-detail/customer-group-detail.component.mjs +3 -3
  267. package/esm2022/customer/components/customer-group-detail-dialog/customer-group-detail-dialog.component.mjs +3 -3
  268. package/esm2022/customer/components/customer-group-list/customer-group-list.component.mjs +5 -4
  269. package/esm2022/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
  270. package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +3 -3
  271. package/esm2022/customer/components/customer-history/customer-history.component.mjs +4 -4
  272. package/esm2022/customer/components/customer-list/customer-list.component.mjs +28 -27
  273. package/esm2022/customer/components/customer-status-label/customer-status-label.component.mjs +3 -3
  274. package/esm2022/customer/components/select-customer-group-dialog/select-customer-group-dialog.component.mjs +3 -3
  275. package/esm2022/customer/customer.module.mjs +4 -4
  276. package/esm2022/dashboard/components/dashboard/dashboard.component.mjs +3 -3
  277. package/esm2022/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +3 -3
  278. package/esm2022/dashboard/dashboard.module.mjs +4 -4
  279. package/esm2022/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +7 -7
  280. package/esm2022/dashboard/widgets/order-chart-widget/order-chart-widget.component.mjs +3 -3
  281. package/esm2022/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +7 -7
  282. package/esm2022/dashboard/widgets/test-widget/test-widget.component.mjs +7 -7
  283. package/esm2022/dashboard/widgets/welcome-widget/welcome-widget.component.mjs +7 -7
  284. package/esm2022/login/components/login/login.component.mjs +4 -4
  285. package/esm2022/login/login.module.mjs +4 -4
  286. package/esm2022/login/providers/login.guard.mjs +3 -3
  287. package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +8 -5
  288. package/esm2022/marketing/components/promotion-list/promotion-list.component.mjs +14 -6
  289. package/esm2022/marketing/marketing.module.mjs +4 -4
  290. package/esm2022/order/components/add-manual-payment-dialog/add-manual-payment-dialog.component.mjs +3 -3
  291. package/esm2022/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +4 -4
  292. package/esm2022/order/components/coupon-code-selector/coupon-code-selector.component.mjs +3 -3
  293. package/esm2022/order/components/draft-order-detail/draft-order-detail.component.mjs +3 -3
  294. package/esm2022/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +3 -3
  295. package/esm2022/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +4 -4
  296. package/esm2022/order/components/fulfillment-card/fulfillment-card.component.mjs +3 -3
  297. package/esm2022/order/components/fulfillment-detail/fulfillment-detail.component.mjs +3 -3
  298. package/esm2022/order/components/fulfillment-state-label/fulfillment-state-label.component.mjs +3 -3
  299. package/esm2022/order/components/line-fulfillment/line-fulfillment.component.mjs +3 -3
  300. package/esm2022/order/components/line-refunds/line-refunds.component.mjs +3 -3
  301. package/esm2022/order/components/modification-detail/modification-detail.component.mjs +3 -3
  302. package/esm2022/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +3 -3
  303. package/esm2022/order/components/order-data-table/order-data-table.component.mjs +4 -4
  304. package/esm2022/order/components/order-data-table/order-total-column.component.mjs +3 -3
  305. package/esm2022/order/components/order-detail/order-detail.component.mjs +3 -3
  306. package/esm2022/order/components/order-editor/order-editor.component.mjs +4 -4
  307. package/esm2022/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +3 -3
  308. package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +3 -3
  309. package/esm2022/order/components/order-history/order-history.component.mjs +4 -4
  310. package/esm2022/order/components/order-list/order-list.component.mjs +5 -4
  311. package/esm2022/order/components/order-payment-card/order-payment-card.component.mjs +4 -4
  312. package/esm2022/order/components/order-process-graph/order-process-edge.component.mjs +3 -3
  313. package/esm2022/order/components/order-process-graph/order-process-graph.component.mjs +3 -3
  314. package/esm2022/order/components/order-process-graph/order-process-node.component.mjs +4 -4
  315. package/esm2022/order/components/order-process-graph-dialog/order-process-graph-dialog.component.mjs +3 -3
  316. package/esm2022/order/components/order-state-select-dialog/order-state-select-dialog.component.mjs +3 -3
  317. package/esm2022/order/components/order-table/order-table.component.mjs +4 -4
  318. package/esm2022/order/components/payment-detail/payment-detail.component.mjs +3 -3
  319. package/esm2022/order/components/payment-state-label/payment-state-label.component.mjs +3 -3
  320. package/esm2022/order/components/refund-order-dialog/refund-order-dialog.component.mjs +4 -4
  321. package/esm2022/order/components/refund-state-label/refund-state-label.component.mjs +3 -3
  322. package/esm2022/order/components/select-address-dialog/select-address-dialog.component.mjs +3 -3
  323. package/esm2022/order/components/select-customer-dialog/select-customer-dialog.component.mjs +3 -3
  324. package/esm2022/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +3 -3
  325. package/esm2022/order/components/seller-orders-card/seller-orders-card.component.mjs +3 -3
  326. package/esm2022/order/components/settle-refund-dialog/settle-refund-dialog.component.mjs +3 -3
  327. package/esm2022/order/components/simple-item-list/simple-item-list.component.mjs +4 -4
  328. package/esm2022/order/order.module.mjs +4 -4
  329. package/esm2022/order/providers/order-transition.service.mjs +3 -3
  330. package/esm2022/order/providers/routing/order-resolver.mjs +3 -3
  331. package/esm2022/order/providers/routing/order.guard.mjs +3 -3
  332. package/esm2022/settings/components/add-country-to-zone-dialog/add-country-to-zone-dialog.component.mjs +3 -3
  333. package/esm2022/settings/components/admin-detail/admin-detail.component.mjs +3 -3
  334. package/esm2022/settings/components/administrator-list/administrator-list.component.mjs +5 -4
  335. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +3 -3
  336. package/esm2022/settings/components/channel-list/channel-list.component.mjs +5 -4
  337. package/esm2022/settings/components/country-detail/country-detail.component.mjs +3 -3
  338. package/esm2022/settings/components/country-list/country-list.component.mjs +6 -5
  339. package/esm2022/settings/components/global-settings/global-settings.component.mjs +3 -3
  340. package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +3 -3
  341. package/esm2022/settings/components/payment-method-list/payment-method-list.component.mjs +5 -4
  342. package/esm2022/settings/components/permission-grid/permission-grid.component.mjs +3 -3
  343. package/esm2022/settings/components/profile/profile.component.mjs +3 -3
  344. package/esm2022/settings/components/role-detail/role-detail.component.mjs +3 -3
  345. package/esm2022/settings/components/role-list/role-list.component.mjs +5 -4
  346. package/esm2022/settings/components/seller-detail/seller-detail.component.mjs +3 -3
  347. package/esm2022/settings/components/seller-list/seller-list.component.mjs +5 -4
  348. package/esm2022/settings/components/shipping-eligibility-test-result/shipping-eligibility-test-result.component.mjs +4 -4
  349. package/esm2022/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +3 -3
  350. package/esm2022/settings/components/shipping-method-list/shipping-method-list.component.mjs +5 -4
  351. package/esm2022/settings/components/shipping-method-test-result/shipping-method-test-result.component.mjs +4 -4
  352. package/esm2022/settings/components/tax-category-detail/tax-category-detail.component.mjs +3 -3
  353. package/esm2022/settings/components/tax-category-list/tax-category-list.component.mjs +5 -4
  354. package/esm2022/settings/components/tax-rate-detail/tax-rate-detail.component.mjs +3 -3
  355. package/esm2022/settings/components/tax-rate-list/tax-rate-list.component.mjs +5 -4
  356. package/esm2022/settings/components/test-address-form/test-address-form.component.mjs +3 -3
  357. package/esm2022/settings/components/test-order-builder/test-order-builder.component.mjs +3 -3
  358. package/esm2022/settings/components/test-shipping-methods/test-shipping-methods.component.mjs +3 -3
  359. package/esm2022/settings/components/zone-detail/zone-detail.component.mjs +3 -3
  360. package/esm2022/settings/components/zone-list/zone-list.component.mjs +6 -5
  361. package/esm2022/settings/components/zone-member-list/zone-member-controls.directive.mjs +3 -3
  362. package/esm2022/settings/components/zone-member-list/zone-member-list-header.directive.mjs +3 -3
  363. package/esm2022/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
  364. package/esm2022/settings/providers/routing/profile-resolver.mjs +3 -3
  365. package/esm2022/settings/settings.module.mjs +4 -4
  366. package/esm2022/system/components/health-check/health-check.component.mjs +4 -4
  367. package/esm2022/system/components/job-list/job-list.component.mjs +4 -4
  368. package/esm2022/system/components/job-state-label/job-state-label.component.mjs +4 -4
  369. package/esm2022/system/system.module.mjs +4 -4
  370. package/fesm2022/vendure-admin-ui-catalog.mjs +132 -145
  371. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  372. package/fesm2022/vendure-admin-ui-core.mjs +1104 -780
  373. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  374. package/fesm2022/vendure-admin-ui-customer.mjs +70 -68
  375. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  376. package/fesm2022/vendure-admin-ui-dashboard.mjs +41 -41
  377. package/fesm2022/vendure-admin-ui-login.mjs +11 -11
  378. package/fesm2022/vendure-admin-ui-login.mjs.map +1 -1
  379. package/fesm2022/vendure-admin-ui-marketing.mjs +24 -13
  380. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  381. package/fesm2022/vendure-admin-ui-order.mjs +138 -137
  382. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  383. package/fesm2022/vendure-admin-ui-settings.mjs +117 -107
  384. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  385. package/fesm2022/vendure-admin-ui-system.mjs +16 -16
  386. package/fesm2022/vendure-admin-ui-system.mjs.map +1 -1
  387. package/marketing/components/promotion-detail/promotion-detail.component.d.ts +1 -0
  388. package/marketing/components/promotion-list/promotion-list.component.d.ts +1 -1
  389. package/package.json +51 -51
  390. package/static/i18n-messages/ar.json +505 -490
  391. package/static/i18n-messages/cs.json +789 -774
  392. package/static/i18n-messages/de.json +789 -774
  393. package/static/i18n-messages/en.json +789 -774
  394. package/static/i18n-messages/es.json +789 -774
  395. package/static/i18n-messages/fr.json +789 -774
  396. package/static/i18n-messages/he.json +789 -774
  397. package/static/i18n-messages/it.json +789 -774
  398. package/static/i18n-messages/pl.json +789 -774
  399. package/static/i18n-messages/pt_BR.json +789 -774
  400. package/static/i18n-messages/pt_PT.json +789 -774
  401. package/static/i18n-messages/ru.json +789 -774
  402. package/static/i18n-messages/uk.json +789 -774
  403. package/static/i18n-messages/zh_Hans.json +789 -774
  404. package/static/i18n-messages/zh_Hant.json +789 -774
  405. package/static/styles/_mixins.scss +3 -3
  406. package/static/styles/global/_forms.scss +2 -2
  407. package/static/styles/global/_global.scss +2 -2
  408. package/static/styles/global/_overrides.scss +5 -1
  409. package/static/styles/global/_utilities.scss +4 -4
  410. package/static/styles/rtl.scss +143 -0
  411. package/static/styles/styles.scss +2 -0
  412. package/static/styles/theme/dark.scss +1 -0
  413. package/static/styles/theme/default.scss +1 -0
  414. package/static/theme.min.css +1 -1
@@ -24,10 +24,10 @@ export class ChannelService {
24
24
  }
25
25
  }));
26
26
  }
27
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ChannelService, deps: [{ token: i1.DataService }, { token: i2.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
28
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ChannelService, providedIn: 'root' }); }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ChannelService, deps: [{ token: i1.DataService }, { token: i2.LocalStorageService }], target: i0.ɵɵFactoryTarget.Injectable }); }
28
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ChannelService, providedIn: 'root' }); }
29
29
  }
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ChannelService, decorators: [{
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ChannelService, decorators: [{
31
31
  type: Injectable,
32
32
  args: [{
33
33
  providedIn: 'root',
@@ -13,10 +13,10 @@ export class ComponentRegistryService {
13
13
  getInputComponent(id) {
14
14
  return this.inputComponentMap.get(id);
15
15
  }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ComponentRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ComponentRegistryService, providedIn: 'root' }); }
16
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ComponentRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
17
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ComponentRegistryService, providedIn: 'root' }); }
18
18
  }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: ComponentRegistryService, decorators: [{
19
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: ComponentRegistryService, decorators: [{
20
20
  type: Injectable,
21
21
  args: [{
22
22
  providedIn: 'root',
@@ -32,10 +32,10 @@ export class CustomDetailComponentService {
32
32
  getCustomDetailComponentsFor(locationId) {
33
33
  return this.customDetailComponents.get(locationId) ?? [];
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CustomDetailComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CustomDetailComponentService, providedIn: 'root' }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomDetailComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomDetailComponentService, providedIn: 'root' }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CustomDetailComponentService, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomDetailComponentService, decorators: [{
39
39
  type: Injectable,
40
40
  args: [{
41
41
  providedIn: 'root',
@@ -26,10 +26,10 @@ export class CustomFieldComponentService {
26
26
  id += '-' + fieldName;
27
27
  return id;
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CustomFieldComponentService, deps: [{ token: i1.ComponentRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CustomFieldComponentService, providedIn: 'root' }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomFieldComponentService, deps: [{ token: i1.ComponentRegistryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomFieldComponentService, providedIn: 'root' }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: CustomFieldComponentService, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: CustomFieldComponentService, decorators: [{
33
33
  type: Injectable,
34
34
  args: [{
35
35
  providedIn: 'root',
@@ -28,10 +28,10 @@ export class HistoryEntryComponentService {
28
28
  getComponent(type) {
29
29
  return this.customEntryComponents.get(type)?.component;
30
30
  }
31
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: HistoryEntryComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: HistoryEntryComponentService, providedIn: 'root' }); }
31
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HistoryEntryComponentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
32
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HistoryEntryComponentService, providedIn: 'root' }); }
33
33
  }
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: HistoryEntryComponentService, decorators: [{
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HistoryEntryComponentService, decorators: [{
35
35
  type: Injectable,
36
36
  args: [{
37
37
  providedIn: 'root',
@@ -79,10 +79,10 @@ export class DashboardWidgetService {
79
79
  layout.push(row);
80
80
  return layout;
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: DashboardWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
83
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: DashboardWidgetService, providedIn: 'root' }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DashboardWidgetService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
83
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DashboardWidgetService, providedIn: 'root' }); }
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: DashboardWidgetService, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: DashboardWidgetService, decorators: [{
86
86
  type: Injectable,
87
87
  args: [{
88
88
  providedIn: 'root',
@@ -1,7 +1,8 @@
1
1
  import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
2
2
  import { assertNever } from '@vendure/common/lib/shared-utils';
3
- import { Subject } from 'rxjs';
4
3
  import extend from 'just-extend';
4
+ import { Subject } from 'rxjs';
5
+ import { debounceTime, distinctUntilChanged, map, startWith } from 'rxjs/operators';
5
6
  import { DataTableFilter, } from './data-table-filter';
6
7
  export class FilterWithValue {
7
8
  constructor(filter, value, onUpdate) {
@@ -21,6 +22,9 @@ export class FilterWithValue {
21
22
  fn(value);
22
23
  }
23
24
  }
25
+ isId() {
26
+ return this.filter.type.kind === 'id';
27
+ }
24
28
  isText() {
25
29
  return this.filter.type.kind === 'text';
26
30
  }
@@ -52,7 +56,7 @@ export class DataTableFilterCollection {
52
56
  this.#activeFilters = [];
53
57
  this.#valueChanges$ = new Subject();
54
58
  this.#connectedToRouter = false;
55
- this.valueChanges = this.#valueChanges$.asObservable();
59
+ this.valueChanges = this.#valueChanges$.asObservable().pipe(debounceTime(10));
56
60
  this.#filtersQueryParamName = 'filters';
57
61
  }
58
62
  get length() {
@@ -74,6 +78,15 @@ export class DataTableFilterCollection {
74
78
  }
75
79
  return this;
76
80
  }
81
+ addIdFilter() {
82
+ this.addFilter({
83
+ name: 'id',
84
+ type: { kind: 'id' },
85
+ label: _('common.id'),
86
+ filterField: 'id',
87
+ });
88
+ return this;
89
+ }
77
90
  addDateFilters() {
78
91
  this.addFilter({
79
92
  name: 'createdAt',
@@ -148,29 +161,46 @@ export class DataTableFilterCollection {
148
161
  }, {});
149
162
  }
150
163
  connectToRoute(route) {
151
- this.valueChanges.subscribe(value => {
164
+ this.valueChanges.subscribe(() => {
152
165
  this.router.navigate(['./'], {
153
166
  queryParams: { [this.#filtersQueryParamName]: this.serialize(), page: 1 },
154
167
  relativeTo: route,
155
168
  queryParamsHandling: 'merge',
156
169
  });
157
170
  });
158
- const filterQueryParams = (route.snapshot.queryParamMap.get(this.#filtersQueryParamName) ?? '')
159
- .split(';')
160
- .map(value => value.split(':'))
161
- .map(([name, value]) => ({ name, value }));
162
- for (const { name, value } of filterQueryParams) {
163
- const filter = this.getFilter(name);
164
- if (filter) {
165
- const val = this.deserializeValue(filter, value);
166
- this.#activeFilters.push(this.createFacetWithValue(filter, val));
171
+ route.queryParamMap
172
+ .pipe(map(params => params.get(this.#filtersQueryParamName)), distinctUntilChanged(), startWith(route.snapshot.queryParamMap.get(this.#filtersQueryParamName) ?? ''))
173
+ .subscribe(value => {
174
+ this.#activeFilters = [];
175
+ if (value === '' || value === null) {
176
+ this.#valueChanges$.next(this.#activeFilters);
177
+ return;
167
178
  }
168
- }
179
+ const filterQueryParams = (value ?? '')
180
+ .split(';')
181
+ .map(value => value.split(':'))
182
+ .map(([name, value]) => ({ name, value }));
183
+ for (const { name, value } of filterQueryParams) {
184
+ const filter = this.getFilter(name);
185
+ if (filter) {
186
+ const val = this.deserializeValue(filter, value);
187
+ filter.activate(val);
188
+ }
189
+ }
190
+ });
169
191
  this.#connectedToRouter = true;
170
192
  return this;
171
193
  }
194
+ serialize() {
195
+ return this.#activeFilters
196
+ .map((filterWithValue, i) => `${filterWithValue.filter.name}:${this.serializeValue(filterWithValue)}`)
197
+ .join(';');
198
+ }
172
199
  serializeValue(filterWithValue) {
173
- const valueAsType = (_filter, _value) => _value;
200
+ if (filterWithValue.isId()) {
201
+ const val = filterWithValue.value;
202
+ return `${val?.operator},${val?.term}`;
203
+ }
174
204
  if (filterWithValue.isText()) {
175
205
  const val = filterWithValue.value;
176
206
  return `${val?.operator},${val?.term}`;
@@ -189,9 +219,14 @@ export class DataTableFilterCollection {
189
219
  }
190
220
  else if (filterWithValue.isDateRange()) {
191
221
  const val = filterWithValue.value;
192
- const start = val.start ? new Date(val.start).getTime() : '';
193
- const end = val.end ? new Date(val.end).getTime() : '';
194
- return `${start},${end}`;
222
+ if (val.mode === 'relative') {
223
+ return `${val.mode},${val.relativeValue},${val.relativeUnit}`;
224
+ }
225
+ else {
226
+ const start = val.start ? new Date(val.start).getTime() : '';
227
+ const end = val.end ? new Date(val.end).getTime() : '';
228
+ return `${start},${end}`;
229
+ }
195
230
  }
196
231
  else if (filterWithValue.isCustom()) {
197
232
  return filterWithValue.filter.type.serializeValue(filterWithValue.value);
@@ -199,6 +234,10 @@ export class DataTableFilterCollection {
199
234
  }
200
235
  deserializeValue(filter, value) {
201
236
  switch (filter.type.kind) {
237
+ case 'id': {
238
+ const [operator, term] = value.split(',');
239
+ return { operator, term };
240
+ }
202
241
  case 'text': {
203
242
  const [operator, term] = value.split(',');
204
243
  return { operator, term };
@@ -212,27 +251,36 @@ export class DataTableFilterCollection {
212
251
  case 'boolean':
213
252
  return value === '1';
214
253
  case 'dateRange':
215
- const [startTimestamp, endTimestamp] = value.split(',');
216
- const start = startTimestamp ? new Date(Number(startTimestamp)).toISOString() : '';
217
- const end = endTimestamp ? new Date(Number(endTimestamp)).toISOString() : '';
218
- return { start, end };
254
+ let mode = 'relative';
255
+ let relativeValue;
256
+ let relativeUnit;
257
+ let start;
258
+ let end;
259
+ if (value.startsWith('relative')) {
260
+ mode = 'relative';
261
+ const [_, relativeValueStr, relativeUnitStr] = value.split(',');
262
+ relativeValue = Number(relativeValueStr);
263
+ relativeUnit = relativeUnitStr;
264
+ }
265
+ else {
266
+ mode = 'range';
267
+ const [startTimestamp, endTimestamp] = value.split(',');
268
+ start = startTimestamp ? new Date(Number(startTimestamp)).toISOString() : '';
269
+ end = endTimestamp ? new Date(Number(endTimestamp)).toISOString() : '';
270
+ }
271
+ return { mode, relativeValue, relativeUnit, start, end };
219
272
  case 'custom':
220
273
  return filter.type.deserializeValue(value);
221
274
  default:
222
275
  assertNever(filter.type);
223
276
  }
224
277
  }
225
- serialize() {
226
- return this.#activeFilters
227
- .map((filterWithValue, i) => `${filterWithValue.filter.name}:${this.serializeValue(filterWithValue)}`)
228
- .join(';');
229
- }
230
278
  onActivateFilter(filter, value) {
231
- this.#activeFilters.push(this.createFacetWithValue(filter, value));
279
+ this.#activeFilters.push(this.createFilterWithValue(filter, value));
232
280
  this.#valueChanges$.next(this.#activeFilters);
233
281
  }
234
- createFacetWithValue(filter, value) {
282
+ createFilterWithValue(filter, value) {
235
283
  return new FilterWithValue(filter, value, v => this.#valueChanges$.next(v));
236
284
  }
237
285
  }
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQztBQU9qQyxPQUFPLEVBQ0gsZUFBZSxHQVVsQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFlBQ29CLE1BQWtDLEVBQzNDLEtBQWlDLEVBQ3hDLFFBQXNEO1FBRnRDLFdBQU0sR0FBTixNQUFNLENBQTRCO1FBQzNDLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBSHBDLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7UUFNekUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBK0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDL0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2I7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNGLE9BQU8sSUFB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RUFBRSxHQUFHLEVBQUUsQ0FBQztZQUMxQixLQUFLLFFBQVE7Z0JBQ1QsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DO2dCQUNJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRU8sU0FBUztRQUNiLE9BQU8sSUFBSSxDQUFDLGNBQWM7YUFDckIsR0FBRyxDQUNBLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ25CLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUMvRTthQUNBLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBaUMsRUFBRSxLQUFnQztRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxvQkFBb0IsQ0FDeEIsTUFBaUMsRUFDakMsS0FBZ0Q7UUFFaEQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQgeyBDdXN0b21GaWVsZFR5cGUgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC10eXBlcyc7XHJcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBleHRlbmQgZnJvbSAnanVzdC1leHRlbmQnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3VzdG9tRmllbGRDb25maWcsXHJcbiAgICBEYXRlT3BlcmF0b3JzLFxyXG4gICAgTnVtYmVyT3BlcmF0b3JzLFxyXG4gICAgU3RyaW5nT3BlcmF0b3JzLFxyXG59IGZyb20gJy4uLy4uL2NvbW1vbi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVRhYmxlRmlsdGVyLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlck51bWJlclR5cGUsXHJcbiAgICBEYXRhVGFibGVGaWx0ZXJPcHRpb25zLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyU2VsZWN0VHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlclRleHRUeXBlLFxyXG4gICAgRGF0YVRhYmxlRmlsdGVyVHlwZSxcclxuICAgIERhdGFUYWJsZUZpbHRlclZhbHVlLFxyXG59IGZyb20gJy4vZGF0YS10YWJsZS1maWx0ZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIEZpbHRlcldpdGhWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZSA9IERhdGFUYWJsZUZpbHRlclR5cGU+IHtcclxuICAgIHByaXZhdGUgb25VcGRhdGVGbnMgPSBuZXcgU2V0PCh2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4pID0+IHZvaWQ+KCk7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXI8YW55LCBUeXBlPixcclxuICAgICAgICBwdWJsaWMgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+LFxyXG4gICAgICAgIG9uVXBkYXRlPzogKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZCxcclxuICAgICkge1xyXG4gICAgICAgIGlmIChvblVwZGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChvblVwZGF0ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlKGZuOiAodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSA9PiB2b2lkKSB7XHJcbiAgICAgICAgdGhpcy5vblVwZGF0ZUZucy5hZGQoZm4pO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVZhbHVlKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICBmb3IgKGNvbnN0IGZuIG9mIHRoaXMub25VcGRhdGVGbnMpIHtcclxuICAgICAgICAgICAgZm4odmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpc1RleHQoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyVGV4dFR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAndGV4dCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNOdW1iZXIoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdudW1iZXInO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQm9vbGVhbigpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJCb29sZWFuVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdib29sZWFuJztcclxuICAgIH1cclxuXHJcbiAgICBpc1NlbGVjdCgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJTZWxlY3RUeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ3NlbGVjdCc7XHJcbiAgICB9XHJcblxyXG4gICAgaXNEYXRlUmFuZ2UoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdkYXRlUmFuZ2UnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzQ3VzdG9tKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlckN1c3RvbVR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnY3VzdG9tJztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xyXG4gICAgcmVhZG9ubHkgI2ZpbHRlcnM6IEFycmF5PERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgYW55Pj4gPSBbXTtcclxuICAgICNhY3RpdmVGaWx0ZXJzOiBGaWx0ZXJXaXRoVmFsdWVbXSA9IFtdO1xyXG4gICAgI3ZhbHVlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDxGaWx0ZXJXaXRoVmFsdWVbXT4oKTtcclxuICAgICNjb25uZWN0ZWRUb1JvdXRlciA9IGZhbHNlO1xyXG4gICAgdmFsdWVDaGFuZ2VzID0gdGhpcy4jdmFsdWVDaGFuZ2VzJC5hc09ic2VydmFibGUoKTtcclxuICAgIHJlYWRvbmx5ICNmaWx0ZXJzUXVlcnlQYXJhbU5hbWUgPSAnZmlsdGVycyc7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlcikge31cclxuXHJcbiAgICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2ZpbHRlcnMubGVuZ3RoO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBhY3RpdmVGaWx0ZXJzKCk6IEZpbHRlcldpdGhWYWx1ZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jYWN0aXZlRmlsdGVycztcclxuICAgIH1cclxuXHJcbiAgICBhZGRGaWx0ZXI8RmlsdGVyVHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+KFxyXG4gICAgICAgIGNvbmZpZzogRGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4sXHJcbiAgICApOiBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uPEZpbHRlcklucHV0PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuI2Nvbm5lY3RlZFRvUm91dGVyKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgICdDYW5ub3QgYWRkIGZpbHRlciBhZnRlciBjb25uZWN0aW5nIHRvIHJvdXRlci4gTWFrZSBzdXJlIHRvIGNhbGwgYWRkRmlsdGVyKCkgYmVmb3JlIGNvbm5lY3RUb1JvdXRlKCknLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLiNmaWx0ZXJzLnB1c2goXHJcbiAgICAgICAgICAgIG5ldyBEYXRhVGFibGVGaWx0ZXIoY29uZmlnLCAoZmlsdGVyLCB2YWx1ZSkgPT4gdGhpcy5vbkFjdGl2YXRlRmlsdGVyKGZpbHRlciwgdmFsdWUpKSxcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZEZpbHRlcnM8RmlsdGVyVHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+KFxyXG4gICAgICAgIGNvbmZpZ3M6IEFycmF5PERhdGFUYWJsZUZpbHRlck9wdGlvbnM8RmlsdGVySW5wdXQsIEZpbHRlclR5cGU+PixcclxuICAgICk6IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+IHtcclxuICAgICAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjb25maWdzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyKGNvbmZpZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZERhdGVGaWx0ZXJzKCk6IEZpbHRlcklucHV0IGV4dGVuZHMge1xyXG4gICAgICAgIGNyZWF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xyXG4gICAgICAgIHVwZGF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xyXG4gICAgfVxyXG4gICAgICAgID8gRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjxGaWx0ZXJJbnB1dD5cclxuICAgICAgICA6IG5ldmVyIHtcclxuICAgICAgICB0aGlzLmFkZEZpbHRlcih7XHJcbiAgICAgICAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxyXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdkYXRlUmFuZ2UnIH0sXHJcbiAgICAgICAgICAgIGxhYmVsOiBfKCdjb21tb24uY3JlYXRlZC1hdCcpLFxyXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2NyZWF0ZWRBdCcsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xyXG4gICAgICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcclxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnZGF0ZVJhbmdlJyB9LFxyXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLnVwZGF0ZWQtYXQnKSxcclxuICAgICAgICAgICAgZmlsdGVyRmllbGQ6ICd1cGRhdGVkQXQnLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcclxuICAgIH1cclxuXHJcbiAgICBhZGRDdXN0b21GaWVsZEZpbHRlcnMoY3VzdG9tRmllbGRzOiBDdXN0b21GaWVsZENvbmZpZ1tdKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBjb25maWcgb2YgY3VzdG9tRmllbGRzKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBjb25maWcudHlwZSBhcyBDdXN0b21GaWVsZFR5cGU7XHJcbiAgICAgICAgICAgIGlmIChjb25maWcubGlzdCkge1xyXG4gICAgICAgICAgICAgICAgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgbGV0IGZpbHRlclR5cGU6IERhdGFUYWJsZUZpbHRlclR5cGUgfCB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ2Jvb2xlYW4nIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdpbnQnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnZmxvYXQnOlxyXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICdudW1iZXInIH07XHJcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICBjYXNlICdkYXRldGltZSc6XHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ2RhdGVSYW5nZScgfTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICdsb2NhbGVTdHJpbmcnOlxyXG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWxlVGV4dCc6XHJcbiAgICAgICAgICAgICAgICBjYXNlICd0ZXh0JzpcclxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0geyBraW5kOiAndGV4dCcgfTtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGNhc2UgJ3JlbGF0aW9uJzpcclxuICAgICAgICAgICAgICAgICAgICAvLyBDYW5ub3Qgc29ydCByZWxhdGlvbnNcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGZpbHRlclR5cGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuYWRkRmlsdGVyKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBmaWx0ZXJUeXBlLFxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsOiBjb25maWcubGFiZWwgPz8gY29uZmlnLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6IGNvbmZpZy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVyKG5hbWU6IHN0cmluZyk6IERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dD4gfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzLmZpbmQoZiA9PiBmLm5hbWUgPT09IG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEZpbHRlcnMoKTogQXJyYXk8RGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0Pj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbW92ZUFjdGl2ZUZpbHRlckF0SW5kZXgoaW5kZXg6IG51bWJlcikge1xyXG4gICAgICAgIHRoaXMuI2FjdGl2ZUZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodGhpcy4jYWN0aXZlRmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlRmlsdGVySW5wdXQoKTogRmlsdGVySW5wdXQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzLnJlZHVjZSgoYWNjLCB7IGZpbHRlciwgdmFsdWUgfSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlICE9IG51bGwgPyBmaWx0ZXIudG9GaWx0ZXJJbnB1dCh2YWx1ZSkgOiB7fTtcclxuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gZXh0ZW5kKHRydWUsIGFjYywgbmV3VmFsdWUpO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIEZpbHRlcklucHV0O1xyXG4gICAgICAgIH0sIHt9IGFzIEZpbHRlcklucHV0KTtcclxuICAgIH1cclxuXHJcbiAgICBjb25uZWN0VG9Sb3V0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGUpIHtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJ10sIHtcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zOiB7IFt0aGlzLiNmaWx0ZXJzUXVlcnlQYXJhbU5hbWVdOiB0aGlzLnNlcmlhbGl6ZSgpLCBwYWdlOiAxIH0sXHJcbiAgICAgICAgICAgICAgICByZWxhdGl2ZVRvOiByb3V0ZSxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5UGFyYW1zID0gKHJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMuI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSkgPz8gJycpXHJcbiAgICAgICAgICAgIC5zcGxpdCgnOycpXHJcbiAgICAgICAgICAgIC5tYXAodmFsdWUgPT4gdmFsdWUuc3BsaXQoJzonKSlcclxuICAgICAgICAgICAgLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHsgbmFtZSwgdmFsdWUgfSkpO1xyXG4gICAgICAgIGZvciAoY29uc3QgeyBuYW1lLCB2YWx1ZSB9IG9mIGZpbHRlclF1ZXJ5UGFyYW1zKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZ2V0RmlsdGVyKG5hbWUpO1xyXG4gICAgICAgICAgICBpZiAoZmlsdGVyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSB0aGlzLmRlc2VyaWFsaXplVmFsdWUoZmlsdGVyLCB2YWx1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLiNhY3RpdmVGaWx0ZXJzLnB1c2godGhpcy5jcmVhdGVGYWNldFdpdGhWYWx1ZShmaWx0ZXIsIHZhbCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuI2Nvbm5lY3RlZFRvUm91dGVyID0gdHJ1ZTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBzZXJpYWxpemVWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXHJcbiAgICAgICAgZmlsdGVyV2l0aFZhbHVlOiBGaWx0ZXJXaXRoVmFsdWU8VHlwZT4sXHJcbiAgICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIGNvbnN0IHZhbHVlQXNUeXBlID0gPFQgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXI8YW55LCBhbnk+PihcclxuICAgICAgICAgICAgX2ZpbHRlcjogVCxcclxuICAgICAgICAgICAgX3ZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxhbnk+LFxyXG4gICAgICAgICk6IFQgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXI8YW55LCBpbmZlciBSPiA/IERhdGFUYWJsZUZpbHRlclZhbHVlPFI+IDogYW55ID0+IF92YWx1ZTtcclxuXHJcbiAgICAgICAgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc1RleHQoKSkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XHJcbiAgICAgICAgICAgIHJldHVybiBgJHt2YWw/Lm9wZXJhdG9yfSwke3ZhbD8udGVybX1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzTnVtYmVyKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsLm9wZXJhdG9yfSwke3ZhbC5hbW91bnR9YDtcclxuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc1NlbGVjdCgpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbC5qb2luKCcsJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNCb29sZWFuKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICByZXR1cm4gdmFsID8gJzEnIDogJzAnO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzRGF0ZVJhbmdlKCkpIHtcclxuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IHZhbC5zdGFydCA/IG5ldyBEYXRlKHZhbC5zdGFydCkuZ2V0VGltZSgpIDogJyc7XHJcbiAgICAgICAgICAgIGNvbnN0IGVuZCA9IHZhbC5lbmQgPyBuZXcgRGF0ZSh2YWwuZW5kKS5nZXRUaW1lKCkgOiAnJztcclxuICAgICAgICAgICAgcmV0dXJuIGAke3N0YXJ0fSwke2VuZH1gO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzQ3VzdG9tKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcldpdGhWYWx1ZS5maWx0ZXIudHlwZS5zZXJpYWxpemVWYWx1ZShmaWx0ZXJXaXRoVmFsdWUudmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBkZXNlcmlhbGl6ZVZhbHVlKGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyLCB2YWx1ZTogc3RyaW5nKTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8RGF0YVRhYmxlRmlsdGVyVHlwZT4ge1xyXG4gICAgICAgIHN3aXRjaCAoZmlsdGVyLnR5cGUua2luZCkge1xyXG4gICAgICAgICAgICBjYXNlICd0ZXh0Jzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCB0ZXJtXSA9IHZhbHVlLnNwbGl0KCcsJykgYXMgW2tleW9mIFN0cmluZ09wZXJhdG9ycywgc3RyaW5nXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IG9wZXJhdG9yLCB0ZXJtIH07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzoge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCBhbW91bnRdID0gdmFsdWUuc3BsaXQoJywnKSBhcyBba2V5b2YgTnVtYmVyT3BlcmF0b3JzLCBzdHJpbmddO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3IsIGFtb3VudDogK2Ftb3VudCB9O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUuc3BsaXQoJywnKTtcclxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09ICcxJztcclxuICAgICAgICAgICAgY2FzZSAnZGF0ZVJhbmdlJzpcclxuICAgICAgICAgICAgICAgIGNvbnN0IFtzdGFydFRpbWVzdGFtcCwgZW5kVGltZXN0YW1wXSA9IHZhbHVlLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHN0YXJ0VGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKHN0YXJ0VGltZXN0YW1wKSkudG9JU09TdHJpbmcoKSA6ICcnO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZW5kID0gZW5kVGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKGVuZFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcclxuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXJ0LCBlbmQgfTtcclxuICAgICAgICAgICAgY2FzZSAnY3VzdG9tJzpcclxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudHlwZS5kZXNlcmlhbGl6ZVZhbHVlKHZhbHVlKTtcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKGZpbHRlci50eXBlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXJpYWxpemUoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy4jYWN0aXZlRmlsdGVyc1xyXG4gICAgICAgICAgICAubWFwKFxyXG4gICAgICAgICAgICAgICAgKGZpbHRlcldpdGhWYWx1ZSwgaSkgPT5cclxuICAgICAgICAgICAgICAgICAgICBgJHtmaWx0ZXJXaXRoVmFsdWUuZmlsdGVyLm5hbWV9OiR7dGhpcy5zZXJpYWxpemVWYWx1ZShmaWx0ZXJXaXRoVmFsdWUpfWAsXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLmpvaW4oJzsnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uQWN0aXZhdGVGaWx0ZXIoZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXI8YW55LCBhbnk+LCB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8YW55Pikge1xyXG4gICAgICAgIHRoaXMuI2FjdGl2ZUZpbHRlcnMucHVzaCh0aGlzLmNyZWF0ZUZhY2V0V2l0aFZhbHVlKGZpbHRlciwgdmFsdWUpKTtcclxuICAgICAgICB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodGhpcy4jYWN0aXZlRmlsdGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVGYWNldFdpdGhWYWx1ZShcclxuICAgICAgICBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcjxhbnksIGFueT4sXHJcbiAgICAgICAgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPERhdGFUYWJsZUZpbHRlclR5cGU+LFxyXG4gICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJXaXRoVmFsdWUoZmlsdGVyLCB2YWx1ZSwgdiA9PiB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodikpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvcHJvdmlkZXJzL2RhdGEtdGFibGUvZGF0YS10YWJsZS1maWx0ZXItY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUM7QUFDakMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVFwRixPQUFPLEVBQ0gsZUFBZSxHQVdsQixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE1BQU0sT0FBTyxlQUFlO0lBRXhCLFlBQ29CLE1BQWtDLEVBQzNDLEtBQWlDLEVBQ3hDLFFBQXNEO1FBRnRDLFdBQU0sR0FBTixNQUFNLENBQTRCO1FBQzNDLFVBQUssR0FBTCxLQUFLLENBQTRCO1FBSHBDLGdCQUFXLEdBQUcsSUFBSSxHQUFHLEVBQStDLENBQUM7UUFNekUsSUFBSSxRQUFRLEVBQUU7WUFDVixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsRUFBK0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFpQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxXQUFX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QUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9DO2dCQUNJLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsTUFBaUMsRUFBRSxLQUFnQztRQUN4RixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxxQkFBcUIsQ0FDekIsTUFBaUMsRUFDakMsS0FBZ0Q7UUFFaEQsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcbmltcG9ydCB7IEN1c3RvbUZpZWxkVHlwZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvc2hhcmVkLXR5cGVzJztcbmltcG9ydCB7IGFzc2VydE5ldmVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xuaW1wb3J0IGV4dGVuZCBmcm9tICdqdXN0LWV4dGVuZCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgQ3VzdG9tRmllbGRDb25maWcsXG4gICAgRGF0ZU9wZXJhdG9ycyxcbiAgICBJZE9wZXJhdG9ycyxcbiAgICBOdW1iZXJPcGVyYXRvcnMsXG4gICAgU3RyaW5nT3BlcmF0b3JzLFxufSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcbmltcG9ydCB7XG4gICAgRGF0YVRhYmxlRmlsdGVyLFxuICAgIERhdGFUYWJsZUZpbHRlckJvb2xlYW5UeXBlLFxuICAgIERhdGFUYWJsZUZpbHRlckN1c3RvbVR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZSxcbiAgICBEYXRhVGFibGVGaWx0ZXJJRFR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZSxcbiAgICBEYXRhVGFibGVGaWx0ZXJPcHRpb25zLFxuICAgIERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyVGV4dFR5cGUsXG4gICAgRGF0YVRhYmxlRmlsdGVyVHlwZSxcbiAgICBEYXRhVGFibGVGaWx0ZXJWYWx1ZSxcbn0gZnJvbSAnLi9kYXRhLXRhYmxlLWZpbHRlcic7XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJXaXRoVmFsdWU8VHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGUgPSBEYXRhVGFibGVGaWx0ZXJUeXBlPiB7XG4gICAgcHJpdmF0ZSBvblVwZGF0ZUZucyA9IG5ldyBTZXQ8KHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZD4oKTtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyPGFueSwgVHlwZT4sXG4gICAgICAgIHB1YmxpYyB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4sXG4gICAgICAgIG9uVXBkYXRlPzogKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZCxcbiAgICApIHtcbiAgICAgICAgaWYgKG9uVXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChvblVwZGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblVwZGF0ZShmbjogKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVXBkYXRlRm5zLmFkZChmbik7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsdWUodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgZm9yIChjb25zdCBmbiBvZiB0aGlzLm9uVXBkYXRlRm5zKSB7XG4gICAgICAgICAgICBmbih2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpc0lkKCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlcklEVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnaWQnO1xuICAgIH1cblxuICAgIGlzVGV4dCgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJUZXh0VHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAndGV4dCc7XG4gICAgfVxuXG4gICAgaXNOdW1iZXIoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnbnVtYmVyJztcbiAgICB9XG5cbiAgICBpc0Jvb2xlYW4oKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ2Jvb2xlYW4nO1xuICAgIH1cblxuICAgIGlzU2VsZWN0KCk6IHRoaXMgaXMgRmlsdGVyV2l0aFZhbHVlPERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyLnR5cGUua2luZCA9PT0gJ3NlbGVjdCc7XG4gICAgfVxuXG4gICAgaXNEYXRlUmFuZ2UoKTogdGhpcyBpcyBGaWx0ZXJXaXRoVmFsdWU8RGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIudHlwZS5raW5kID09PSAnZGF0ZVJhbmdlJztcbiAgICB9XG5cbiAgICBpc0N1c3RvbSgpOiB0aGlzIGlzIEZpbHRlcldpdGhWYWx1ZTxEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbHRlci50eXBlLmtpbmQgPT09ICdjdXN0b20nO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gUmVjb3JkPHN0cmluZywgYW55Pj4ge1xuICAgIHJlYWRvbmx5ICNmaWx0ZXJzOiBBcnJheTxEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIGFueT4+ID0gW107XG4gICAgI2FjdGl2ZUZpbHRlcnM6IEZpbHRlcldpdGhWYWx1ZVtdID0gW107XG4gICAgI3ZhbHVlQ2hhbmdlcyQgPSBuZXcgU3ViamVjdDxGaWx0ZXJXaXRoVmFsdWVbXT4oKTtcbiAgICAjY29ubmVjdGVkVG9Sb3V0ZXIgPSBmYWxzZTtcbiAgICB2YWx1ZUNoYW5nZXMgPSB0aGlzLiN2YWx1ZUNoYW5nZXMkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGVib3VuY2VUaW1lKDEwKSk7XG4gICAgcmVhZG9ubHkgI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSA9ICdmaWx0ZXJzJztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcm91dGVyOiBSb3V0ZXIpIHt9XG5cbiAgICBnZXQgbGVuZ3RoKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzLmxlbmd0aDtcbiAgICB9XG5cbiAgICBnZXQgYWN0aXZlRmlsdGVycygpOiBGaWx0ZXJXaXRoVmFsdWVbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzO1xuICAgIH1cblxuICAgIGFkZEZpbHRlcjxGaWx0ZXJUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXG4gICAgICAgIGNvbmZpZzogRGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4sXG4gICAgKTogRGF0YVRhYmxlRmlsdGVyQ29sbGVjdGlvbjxGaWx0ZXJJbnB1dD4ge1xuICAgICAgICBpZiAodGhpcy4jY29ubmVjdGVkVG9Sb3V0ZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnQ2Fubm90IGFkZCBmaWx0ZXIgYWZ0ZXIgY29ubmVjdGluZyB0byByb3V0ZXIuIE1ha2Ugc3VyZSB0byBjYWxsIGFkZEZpbHRlcigpIGJlZm9yZSBjb25uZWN0VG9Sb3V0ZSgpJyxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy4jZmlsdGVycy5wdXNoKFxuICAgICAgICAgICAgbmV3IERhdGFUYWJsZUZpbHRlcihjb25maWcsIChmaWx0ZXIsIHZhbHVlKSA9PiB0aGlzLm9uQWN0aXZhdGVGaWx0ZXIoZmlsdGVyLCB2YWx1ZSkpLFxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhZGRGaWx0ZXJzPEZpbHRlclR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlPihcbiAgICAgICAgY29uZmlnczogQXJyYXk8RGF0YVRhYmxlRmlsdGVyT3B0aW9uczxGaWx0ZXJJbnB1dCwgRmlsdGVyVHlwZT4+LFxuICAgICk6IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBjb25maWcgb2YgY29uZmlncykge1xuICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXIoY29uZmlnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBhZGRJZEZpbHRlcigpOiBGaWx0ZXJJbnB1dCBleHRlbmRzIHtcbiAgICAgICAgaWQ/OiBJZE9wZXJhdG9ycyB8IG51bGw7XG4gICAgfVxuICAgICAgICA/IERhdGFUYWJsZUZpbHRlckNvbGxlY3Rpb248RmlsdGVySW5wdXQ+XG4gICAgICAgIDogbmV2ZXIge1xuICAgICAgICB0aGlzLmFkZEZpbHRlcih7XG4gICAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnaWQnIH0sXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLmlkJyksXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ2lkJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB0aGlzIGFzIGFueTtcbiAgICB9XG5cbiAgICBhZGREYXRlRmlsdGVycygpOiBGaWx0ZXJJbnB1dCBleHRlbmRzIHtcbiAgICAgICAgY3JlYXRlZEF0PzogRGF0ZU9wZXJhdG9ycyB8IG51bGw7XG4gICAgICAgIHVwZGF0ZWRBdD86IERhdGVPcGVyYXRvcnMgfCBudWxsO1xuICAgIH1cbiAgICAgICAgPyBEYXRhVGFibGVGaWx0ZXJDb2xsZWN0aW9uPEZpbHRlcklucHV0PlxuICAgICAgICA6IG5ldmVyIHtcbiAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xuICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgICB0eXBlOiB7IGtpbmQ6ICdkYXRlUmFuZ2UnIH0sXG4gICAgICAgICAgICBsYWJlbDogXygnY29tbW9uLmNyZWF0ZWQtYXQnKSxcbiAgICAgICAgICAgIGZpbHRlckZpZWxkOiAnY3JlYXRlZEF0JyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYWRkRmlsdGVyKHtcbiAgICAgICAgICAgIG5hbWU6ICd1cGRhdGVkQXQnLFxuICAgICAgICAgICAgdHlwZTogeyBraW5kOiAnZGF0ZVJhbmdlJyB9LFxuICAgICAgICAgICAgbGFiZWw6IF8oJ2NvbW1vbi51cGRhdGVkLWF0JyksXG4gICAgICAgICAgICBmaWx0ZXJGaWVsZDogJ3VwZGF0ZWRBdCcsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcyBhcyBhbnk7XG4gICAgfVxuXG4gICAgYWRkQ3VzdG9tRmllbGRGaWx0ZXJzKGN1c3RvbUZpZWxkczogQ3VzdG9tRmllbGRDb25maWdbXSkge1xuICAgICAgICBmb3IgKGNvbnN0IGNvbmZpZyBvZiBjdXN0b21GaWVsZHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBjb25maWcudHlwZSBhcyBDdXN0b21GaWVsZFR5cGU7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmxpc3QpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGxldCBmaWx0ZXJUeXBlOiBEYXRhVGFibGVGaWx0ZXJUeXBlIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICdib29sZWFuJyB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdpbnQnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2Zsb2F0JzpcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZSA9IHsga2luZDogJ251bWJlcicgfTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGF0ZXRpbWUnOlxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlID0geyBraW5kOiAnZGF0ZVJhbmdlJyB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgICAgIGNhc2UgJ2xvY2FsZVN0cmluZyc6XG4gICAgICAgICAgICAgICAgY2FzZSAnbG9jYWxlVGV4dCc6XG4gICAgICAgICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlclR5cGUgPSB7IGtpbmQ6ICd0ZXh0JyB9O1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlICdyZWxhdGlvbic6XG4gICAgICAgICAgICAgICAgICAgIC8vIENhbm5vdCBzb3J0IHJlbGF0aW9uc1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBhc3NlcnROZXZlcih0eXBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChmaWx0ZXJUeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hZGRGaWx0ZXIoe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBjb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGNvbmZpZy5sYWJlbCA/PyBjb25maWcubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyRmllbGQ6IGNvbmZpZy5uYW1lLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGdldEZpbHRlcihuYW1lOiBzdHJpbmcpOiBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuI2ZpbHRlcnMuZmluZChmID0+IGYubmFtZSA9PT0gbmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0RmlsdGVycygpOiBBcnJheTxEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQ+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLiNmaWx0ZXJzO1xuICAgIH1cblxuICAgIHJlbW92ZUFjdGl2ZUZpbHRlckF0SW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgICAgICB0aGlzLiNhY3RpdmVGaWx0ZXJzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIHRoaXMuI3ZhbHVlQ2hhbmdlcyQubmV4dCh0aGlzLiNhY3RpdmVGaWx0ZXJzKTtcbiAgICB9XG5cbiAgICBjcmVhdGVGaWx0ZXJJbnB1dCgpOiBGaWx0ZXJJbnB1dCB7XG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzLnJlZHVjZSgoYWNjLCB7IGZpbHRlciwgdmFsdWUgfSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZSAhPSBudWxsID8gZmlsdGVyLnRvRmlsdGVySW5wdXQodmFsdWUpIDoge307XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBleHRlbmQodHJ1ZSwgYWNjLCBuZXdWYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIEZpbHRlcklucHV0O1xuICAgICAgICB9LCB7fSBhcyBGaWx0ZXJJbnB1dCk7XG4gICAgfVxuXG4gICAgY29ubmVjdFRvUm91dGUocm91dGU6IEFjdGl2YXRlZFJvdXRlKSB7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4vJ10sIHtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtczogeyBbdGhpcy4jZmlsdGVyc1F1ZXJ5UGFyYW1OYW1lXTogdGhpcy5zZXJpYWxpemUoKSwgcGFnZTogMSB9LFxuICAgICAgICAgICAgICAgIHJlbGF0aXZlVG86IHJvdXRlLFxuICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1zSGFuZGxpbmc6ICdtZXJnZScsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcm91dGUucXVlcnlQYXJhbU1hcFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKHBhcmFtcyA9PiBwYXJhbXMuZ2V0KHRoaXMuI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSkpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1NYXAuZ2V0KHRoaXMuI2ZpbHRlcnNRdWVyeVBhcmFtTmFtZSkgPz8gJycpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy4jYWN0aXZlRmlsdGVycyA9IFtdO1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gJycgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jdmFsdWVDaGFuZ2VzJC5uZXh0KHRoaXMuI2FjdGl2ZUZpbHRlcnMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlclF1ZXJ5UGFyYW1zID0gKHZhbHVlID8/ICcnKVxuICAgICAgICAgICAgICAgICAgICAuc3BsaXQoJzsnKVxuICAgICAgICAgICAgICAgICAgICAubWFwKHZhbHVlID0+IHZhbHVlLnNwbGl0KCc6JykpXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoKFtuYW1lLCB2YWx1ZV0pID0+ICh7IG5hbWUsIHZhbHVlIH0pKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHsgbmFtZSwgdmFsdWUgfSBvZiBmaWx0ZXJRdWVyeVBhcmFtcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdldEZpbHRlcihuYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsID0gdGhpcy5kZXNlcmlhbGl6ZVZhbHVlKGZpbHRlciwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmFjdGl2YXRlKHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLiNjb25uZWN0ZWRUb1JvdXRlciA9IHRydWU7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgc2VyaWFsaXplKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLiNhY3RpdmVGaWx0ZXJzXG4gICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAgIChmaWx0ZXJXaXRoVmFsdWUsIGkpID0+XG4gICAgICAgICAgICAgICAgICAgIGAke2ZpbHRlcldpdGhWYWx1ZS5maWx0ZXIubmFtZX06JHt0aGlzLnNlcmlhbGl6ZVZhbHVlKGZpbHRlcldpdGhWYWx1ZSl9YCxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5qb2luKCc7Jyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXJpYWxpemVWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4oXG4gICAgICAgIGZpbHRlcldpdGhWYWx1ZTogRmlsdGVyV2l0aFZhbHVlPFR5cGU+LFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNJZCgpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsPy5vcGVyYXRvcn0sJHt2YWw/LnRlcm19YDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzVGV4dCgpKSB7XG4gICAgICAgICAgICBjb25zdCB2YWwgPSBmaWx0ZXJXaXRoVmFsdWUudmFsdWU7XG4gICAgICAgICAgICByZXR1cm4gYCR7dmFsPy5vcGVyYXRvcn0sJHt2YWw/LnRlcm19YDtcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNOdW1iZXIoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIGAke3ZhbC5vcGVyYXRvcn0sJHt2YWwuYW1vdW50fWA7XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzU2VsZWN0KCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IGZpbHRlcldpdGhWYWx1ZS52YWx1ZTtcbiAgICAgICAgICAgIHJldHVybiB2YWwuam9pbignLCcpO1xuICAgICAgICB9IGVsc2UgaWYgKGZpbHRlcldpdGhWYWx1ZS5pc0Jvb2xlYW4oKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHZhbCA/ICcxJyA6ICcwJztcbiAgICAgICAgfSBlbHNlIGlmIChmaWx0ZXJXaXRoVmFsdWUuaXNEYXRlUmFuZ2UoKSkge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gZmlsdGVyV2l0aFZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgaWYgKHZhbC5tb2RlID09PSAncmVsYXRpdmUnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAke3ZhbC5tb2RlfSwke3ZhbC5yZWxhdGl2ZVZhbHVlfSwke3ZhbC5yZWxhdGl2ZVVuaXR9YDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhcnQgPSB2YWwuc3RhcnQgPyBuZXcgRGF0ZSh2YWwuc3RhcnQpLmdldFRpbWUoKSA6ICcnO1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHZhbC5lbmQgPyBuZXcgRGF0ZSh2YWwuZW5kKS5nZXRUaW1lKCkgOiAnJztcbiAgICAgICAgICAgICAgICByZXR1cm4gYCR7c3RhcnR9LCR7ZW5kfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZmlsdGVyV2l0aFZhbHVlLmlzQ3VzdG9tKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJXaXRoVmFsdWUuZmlsdGVyLnR5cGUuc2VyaWFsaXplVmFsdWUoZmlsdGVyV2l0aFZhbHVlLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZGVzZXJpYWxpemVWYWx1ZShcbiAgICAgICAgZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXIsXG4gICAgICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgKTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8RGF0YVRhYmxlRmlsdGVyVHlwZT4ge1xuICAgICAgICBzd2l0Y2ggKGZpbHRlci50eXBlLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2lkJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvcGVyYXRvciwgdGVybV0gPSB2YWx1ZS5zcGxpdCgnLCcpIGFzIFtrZXlvZiBTdHJpbmdPcGVyYXRvcnMsIHN0cmluZ107XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgb3BlcmF0b3IsIHRlcm0gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgJ3RleHQnOiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW29wZXJhdG9yLCB0ZXJtXSA9IHZhbHVlLnNwbGl0KCcsJykgYXMgW2tleW9mIFN0cmluZ09wZXJhdG9ycywgc3RyaW5nXTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgdGVybSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvcGVyYXRvciwgYW1vdW50XSA9IHZhbHVlLnNwbGl0KCcsJykgYXMgW2tleW9mIE51bWJlck9wZXJhdG9ycywgc3RyaW5nXTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBvcGVyYXRvciwgYW1vdW50OiArYW1vdW50IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdzZWxlY3QnOlxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZS5zcGxpdCgnLCcpO1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlID09PSAnMSc7XG4gICAgICAgICAgICBjYXNlICdkYXRlUmFuZ2UnOlxuICAgICAgICAgICAgICAgIGxldCBtb2RlID0gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICBsZXQgcmVsYXRpdmVWYWx1ZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGxldCByZWxhdGl2ZVVuaXQ6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgc3RhcnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBsZXQgZW5kOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlLnN0YXJ0c1dpdGgoJ3JlbGF0aXZlJykpIHtcbiAgICAgICAgICAgICAgICAgICAgbW9kZSA9ICdyZWxhdGl2ZSc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtfLCByZWxhdGl2ZVZhbHVlU3RyLCByZWxhdGl2ZVVuaXRTdHJdID0gdmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVWYWx1ZSA9IE51bWJlcihyZWxhdGl2ZVZhbHVlU3RyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVsYXRpdmVVbml0ID0gcmVsYXRpdmVVbml0U3RyIGFzICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJztcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBtb2RlID0gJ3JhbmdlJztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgW3N0YXJ0VGltZXN0YW1wLCBlbmRUaW1lc3RhbXBdID0gdmFsdWUuc3BsaXQoJywnKTtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgPSBzdGFydFRpbWVzdGFtcCA/IG5ldyBEYXRlKE51bWJlcihzdGFydFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcbiAgICAgICAgICAgICAgICAgICAgZW5kID0gZW5kVGltZXN0YW1wID8gbmV3IERhdGUoTnVtYmVyKGVuZFRpbWVzdGFtcCkpLnRvSVNPU3RyaW5nKCkgOiAnJztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgbW9kZSwgcmVsYXRpdmVWYWx1ZSwgcmVsYXRpdmVVbml0LCBzdGFydCwgZW5kIH07XG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOlxuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudHlwZS5kZXNlcmlhbGl6ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIoZmlsdGVyLnR5cGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkFjdGl2YXRlRmlsdGVyKGZpbHRlcjogRGF0YVRhYmxlRmlsdGVyPGFueSwgYW55PiwgdmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPGFueT4pIHtcbiAgICAgICAgdGhpcy4jYWN0aXZlRmlsdGVycy5wdXNoKHRoaXMuY3JlYXRlRmlsdGVyV2l0aFZhbHVlKGZpbHRlciwgdmFsdWUpKTtcbiAgICAgICAgdGhpcy4jdmFsdWVDaGFuZ2VzJC5uZXh0KHRoaXMuI2FjdGl2ZUZpbHRlcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRmlsdGVyV2l0aFZhbHVlKFxuICAgICAgICBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcjxhbnksIGFueT4sXG4gICAgICAgIHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxEYXRhVGFibGVGaWx0ZXJUeXBlPixcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBGaWx0ZXJXaXRoVmFsdWUoZmlsdGVyLCB2YWx1ZSwgdiA9PiB0aGlzLiN2YWx1ZUNoYW5nZXMkLm5leHQodikpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { assertNever } from '@vendure/common/lib/shared-utils';
2
+ import dayjs from 'dayjs';
2
3
  export class DataTableFilter {
3
4
  constructor(options, onActivate) {
4
5
  this.options = options;
@@ -22,22 +23,32 @@ export class DataTableFilter {
22
23
  };
23
24
  case 'dateRange': {
24
25
  let dateOperators;
25
- const start = value.start ?? undefined;
26
- const end = value.end ?? undefined;
27
- if (start && end) {
26
+ const mode = value.mode ?? 'relative';
27
+ if (mode === 'relative') {
28
+ const relativeValue = value.relativeValue ?? 30;
29
+ const relativeUnit = value.relativeUnit ?? 'day';
28
30
  dateOperators = {
29
- between: { start, end },
30
- };
31
- }
32
- else if (start) {
33
- dateOperators = {
34
- after: start,
31
+ after: dayjs().subtract(relativeValue, relativeUnit).startOf('day').toISOString(),
35
32
  };
36
33
  }
37
34
  else {
38
- dateOperators = {
39
- before: end,
40
- };
35
+ const start = value.start ?? undefined;
36
+ const end = value.end ?? undefined;
37
+ if (start && end) {
38
+ dateOperators = {
39
+ between: { start, end },
40
+ };
41
+ }
42
+ else if (start) {
43
+ dateOperators = {
44
+ after: start,
45
+ };
46
+ }
47
+ else {
48
+ dateOperators = {
49
+ before: end,
50
+ };
51
+ }
41
52
  }
42
53
  return dateOperators;
43
54
  }
@@ -51,6 +62,10 @@ export class DataTableFilter {
51
62
  return {
52
63
  [value.operator]: value.term,
53
64
  };
65
+ case 'id':
66
+ return {
67
+ [value.operator]: value.term,
68
+ };
54
69
  case 'custom': {
55
70
  return value;
56
71
  }
@@ -74,6 +89,9 @@ export class DataTableFilter {
74
89
  this.onActivate(this, value);
75
90
  }
76
91
  }
92
+ isId() {
93
+ return this.type.kind === 'id';
94
+ }
77
95
  isText() {
78
96
  return this.type.kind === 'text';
79
97
  }
@@ -93,4 +111,4 @@ export class DataTableFilter {
93
111
  return this.type.kind === 'custom';
94
112
  }
95
113
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQTRFL0QsTUFBTSxPQUFPLGVBQWU7SUFJeEIsWUFDcUIsT0FBa0QsRUFDM0QsVUFHQztRQUpRLFlBQU8sR0FBUCxPQUFPLENBQTJDO1FBQzNELGVBQVUsR0FBVixVQUFVLENBR1Q7SUFDVixDQUFDO0lBRUosSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBVTtRQUN4QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztRQUMvQixRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZixLQUFLLFNBQVM7Z0JBQ1YsT0FBTztvQkFDSCxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUs7aUJBQ2QsQ0FBQztZQUNOLEtBQUssV0FBVyxDQUFDLENBQUM7Z0JBQ2QsSUFBSSxhQUE0QixDQUFDO2dCQUNqQyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxJQUFJLFNBQVMsQ0FBQztnQkFDdkMsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxTQUFTLENBQUM7Z0JBQ25DLElBQUksS0FBSyxJQUFJLEdBQUcsRUFBRTtvQkFDZCxhQUFhLEdBQUc7d0JBQ1osT0FBTyxFQUFFLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRTtxQkFDMUIsQ0FBQztpQkFDTDtxQkFBTSxJQUFJLEtBQUssRUFBRTtvQkFDZCxhQUFhLEdBQUc7d0JBQ1osS0FBSyxFQUFFLEtBQUs7cUJBQ2YsQ0FBQztpQkFDTDtxQkFBTTtvQkFDSCxhQUFhLEdBQUc7d0JBQ1osTUFBTSxFQUFFLEdBQUc7cUJBQ2QsQ0FBQztpQkFDTDtnQkFDRCxPQUFPLGFBQWEsQ0FBQzthQUN4QjtZQUNELEtBQUssUUFBUTtnQkFDVCxPQUFPO29CQUNILENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2lCQUN6QyxDQUFDO1lBRU4sS0FBSyxRQUFRO2dCQUNULE9BQU8sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDekIsS0FBSyxNQUFNO2dCQUNQLE9BQU87b0JBQ0gsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLElBQUk7aUJBQy9CLENBQUM7WUFDTixLQUFLLFFBQVEsQ0FBQyxDQUFDO2dCQUNYLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1lBQ0Q7Z0JBQ0ksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFpQztRQUMzQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFO1lBQzVCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7UUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQzFCLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxFQUEwQixDQUFDO1NBQ2hHO2FBQU07WUFDSCxNQUFNLElBQUksS0FBSyxDQUNYLHlFQUF5RSxJQUFJLENBQUMsSUFBSSxLQUFLLENBQzFGLENBQUM7U0FDTDtJQUNMLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBaUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO0lBQ0wsQ0FBQztJQUVELE1BQU07UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxTQUFTO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDSixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFFRCxRQUFRO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSBhcyBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXplZFN0cmluZyB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IEZvcm1JbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvbW1vbi9jb21wb25lbnQtcmVnaXN0cnktdHlwZXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQm9vbGVhbk9wZXJhdG9ycyxcclxuICAgIERhdGVPcGVyYXRvcnMsXHJcbiAgICBOdW1iZXJPcGVyYXRvcnMsXHJcbiAgICBTdHJpbmdPcGVyYXRvcnMsXHJcbn0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZUZpbHRlclRleHRUeXBlIHtcclxuICAgIGtpbmQ6ICd0ZXh0JztcclxuICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGUge1xyXG4gICAga2luZDogJ3NlbGVjdCc7XHJcbiAgICBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBhbnk7IGxhYmVsOiBzdHJpbmcgfT47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGUge1xyXG4gICAga2luZDogJ2Jvb2xlYW4nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZUZpbHRlck51bWJlclR5cGUge1xyXG4gICAga2luZDogJ251bWJlcic7XHJcbiAgICBpbnB1dFR5cGU/OiAnbnVtYmVyJyB8ICdjdXJyZW5jeSc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZSB7XHJcbiAgICBraW5kOiAnZGF0ZVJhbmdlJztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlIHtcclxuICAgIGtpbmQ6ICdjdXN0b20nO1xyXG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEZvcm1JbnB1dENvbXBvbmVudD47XHJcbiAgICBzZXJpYWxpemVWYWx1ZTogKHZhbHVlOiBhbnkpID0+IHN0cmluZztcclxuICAgIGRlc2VyaWFsaXplVmFsdWU6IChzZXJpYWxpemVkOiBzdHJpbmcpID0+IGFueTtcclxuICAgIGdldExhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEtpbmRWYWx1ZU1hcCA9IHtcclxuICAgIHRleHQ6IHtcclxuICAgICAgICByYXc6IHtcclxuICAgICAgICAgICAgb3BlcmF0b3I6IGtleW9mIFN0cmluZ09wZXJhdG9ycztcclxuICAgICAgICAgICAgdGVybTogc3RyaW5nO1xyXG4gICAgICAgIH07XHJcbiAgICAgICAgaW5wdXQ6IFN0cmluZ09wZXJhdG9ycztcclxuICAgIH07XHJcbiAgICBzZWxlY3Q6IHsgcmF3OiBzdHJpbmdbXTsgaW5wdXQ6IFN0cmluZ09wZXJhdG9ycyB9O1xyXG4gICAgYm9vbGVhbjogeyByYXc6IGJvb2xlYW47IGlucHV0OiBCb29sZWFuT3BlcmF0b3JzIH07XHJcbiAgICBkYXRlUmFuZ2U6IHsgcmF3OiB7IHN0YXJ0Pzogc3RyaW5nOyBlbmQ/OiBzdHJpbmcgfTsgaW5wdXQ6IERhdGVPcGVyYXRvcnMgfTtcclxuICAgIG51bWJlcjogeyByYXc6IHsgb3BlcmF0b3I6IGtleW9mIE51bWJlck9wZXJhdG9yczsgYW1vdW50OiBudW1iZXIgfTsgaW5wdXQ6IE51bWJlck9wZXJhdG9ycyB9O1xyXG4gICAgY3VzdG9tOiB7IHJhdzogYW55OyBpbnB1dDogYW55IH07XHJcbn07XHJcbmV4cG9ydCB0eXBlIERhdGFUYWJsZUZpbHRlclR5cGUgPVxyXG4gICAgfCBEYXRhVGFibGVGaWx0ZXJUZXh0VHlwZVxyXG4gICAgfCBEYXRhVGFibGVGaWx0ZXJTZWxlY3RUeXBlXHJcbiAgICB8IERhdGFUYWJsZUZpbHRlckJvb2xlYW5UeXBlXHJcbiAgICB8IERhdGFUYWJsZUZpbHRlckRhdGVSYW5nZVR5cGVcclxuICAgIHwgRGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZVxyXG4gICAgfCBEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVGaWx0ZXJPcHRpb25zPFxyXG4gICAgRmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gYW55LFxyXG4gICAgVHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGUgPSBEYXRhVGFibGVGaWx0ZXJUeXBlLFxyXG4+IHtcclxuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IHR5cGU6IFR5cGU7XHJcbiAgICByZWFkb25seSBsYWJlbDogc3RyaW5nIHwgTG9jYWxpemVkU3RyaW5nW107XHJcbiAgICByZWFkb25seSBmaWx0ZXJGaWVsZD86IGtleW9mIEZpbHRlcklucHV0O1xyXG4gICAgcmVhZG9ubHkgdG9GaWx0ZXJJbnB1dD86ICh2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4pID0+IFBhcnRpYWw8RmlsdGVySW5wdXQ+O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlIGV4dGVuZHMgRGF0YVRhYmxlRmlsdGVyVHlwZT4gPSBLaW5kVmFsdWVNYXBbVHlwZVsna2luZCddXVsncmF3J107XHJcbmV4cG9ydCB0eXBlIERhdGFUYWJsZUZpbHRlck9wZXJhdG9yPFR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlPiA9IEtpbmRWYWx1ZU1hcFtUeXBlWydraW5kJ11dWydpbnB1dCddO1xyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUZpbHRlcjxcclxuICAgIEZpbHRlcklucHV0IGV4dGVuZHMgUmVjb3JkPHN0cmluZywgYW55PiA9IGFueSxcclxuICAgIFR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlID0gRGF0YVRhYmxlRmlsdGVyVHlwZSxcclxuPiB7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IERhdGFUYWJsZUZpbHRlck9wdGlvbnM8RmlsdGVySW5wdXQsIFR5cGU+LFxyXG4gICAgICAgIHByaXZhdGUgb25BY3RpdmF0ZT86IChcclxuICAgICAgICAgICAgZmlsdGVyOiBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIFR5cGU+LFxyXG4gICAgICAgICAgICB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4gfCB1bmRlZmluZWQsXHJcbiAgICAgICAgKSA9PiB2b2lkLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIGdldCBuYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5uYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCB0eXBlKCk6IFR5cGUge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMudHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgbGFiZWwoKTogc3RyaW5nIHwgTG9jYWxpemVkU3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMubGFiZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RmlsdGVyT3BlcmF0b3IodmFsdWU6IGFueSk6IERhdGFUYWJsZUZpbHRlck9wZXJhdG9yPFR5cGU+IHtcclxuICAgICAgICBjb25zdCB0eXBlID0gdGhpcy5vcHRpb25zLnR5cGU7XHJcbiAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHtcclxuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGVxOiAhIXZhbHVlLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgY2FzZSAnZGF0ZVJhbmdlJzoge1xyXG4gICAgICAgICAgICAgICAgbGV0IGRhdGVPcGVyYXRvcnM6IERhdGVPcGVyYXRvcnM7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHZhbHVlLnN0YXJ0ID8/IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGVuZCA9IHZhbHVlLmVuZCA/PyB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoc3RhcnQgJiYgZW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZU9wZXJhdG9ycyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmV0d2VlbjogeyBzdGFydCwgZW5kIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhcnQpIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRlT3BlcmF0b3JzID0ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBhZnRlcjogc3RhcnQsXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZU9wZXJhdG9ycyA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlOiBlbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlT3BlcmF0b3JzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNhc2UgJ251bWJlcic6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZS5vcGVyYXRvcl06IE51bWJlcih2YWx1ZS5hbW91bnQpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpbjogdmFsdWUgfTtcclxuICAgICAgICAgICAgY2FzZSAndGV4dCc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZS5vcGVyYXRvcl06IHZhbHVlLnRlcm0sXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBjYXNlICdjdXN0b20nOiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIGFzc2VydE5ldmVyKHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0b0ZpbHRlcklucHV0KHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPik6IFBhcnRpYWw8RmlsdGVySW5wdXQ+IHtcclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLnRvRmlsdGVySW5wdXQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy50b0ZpbHRlcklucHV0KHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5maWx0ZXJGaWVsZCkge1xyXG4gICAgICAgICAgICByZXR1cm4geyBbdGhpcy5vcHRpb25zLmZpbHRlckZpZWxkXTogdGhpcy5nZXRGaWx0ZXJPcGVyYXRvcih2YWx1ZSkgfSBhcyBQYXJ0aWFsPEZpbHRlcklucHV0PjtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgRWl0aGVyIFwiZmlsdGVyRmllbGRcIiBvciBcInRvRmlsdGVySW5wdXRcIiBtdXN0IGJlIHByb3ZpZGVkIChmb3IgZmlsdGVyIFwiJHt0aGlzLm5hbWV9XCIpKWAsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGFjdGl2YXRlKHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPikge1xyXG4gICAgICAgIGlmICh0aGlzLm9uQWN0aXZhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkFjdGl2YXRlKHRoaXMsIHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNUZXh0KCk6IHRoaXMgaXMgRGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0LCBEYXRhVGFibGVGaWx0ZXJUZXh0VHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUua2luZCA9PT0gJ3RleHQnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzTnVtYmVyKCk6IHRoaXMgaXMgRGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0LCBEYXRhVGFibGVGaWx0ZXJOdW1iZXJUeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5raW5kID09PSAnbnVtYmVyJztcclxuICAgIH1cclxuXHJcbiAgICBpc0Jvb2xlYW4oKTogdGhpcyBpcyBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIERhdGFUYWJsZUZpbHRlckJvb2xlYW5UeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5raW5kID09PSAnYm9vbGVhbic7XHJcbiAgICB9XHJcblxyXG4gICAgaXNTZWxlY3QoKTogdGhpcyBpcyBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGU+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmtpbmQgPT09ICdzZWxlY3QnO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRGF0ZVJhbmdlKCk6IHRoaXMgaXMgRGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0LCBEYXRhVGFibGVGaWx0ZXJEYXRlUmFuZ2VUeXBlPiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5raW5kID09PSAnZGF0ZVJhbmdlJztcclxuICAgIH1cclxuXHJcbiAgICBpc0N1c3RvbSgpOiB0aGlzIGlzIERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgRGF0YVRhYmxlRmlsdGVyQ3VzdG9tVHlwZT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUua2luZCA9PT0gJ2N1c3RvbSc7XHJcbiAgICB9XHJcbn1cclxuIl19
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1maWx0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL3Byb3ZpZGVycy9kYXRhLXRhYmxlL2RhdGEtdGFibGUtZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFrRzFCLE1BQU0sT0FBTyxlQUFlO0lBSXhCLFlBQ3FCLE9BQWtELEVBQzNELFVBR0M7UUFKUSxZQUFPLEdBQVAsT0FBTyxDQUEyQztRQUMzRCxlQUFVLEdBQVYsVUFBVSxDQUdUO0lBQ1YsQ0FBQztJQUVKLElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDeEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7UUFDL0IsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2YsS0FBSyxTQUFTO2dCQUNWLE9BQU87b0JBQ0gsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLO2lCQUNkLENBQUM7WUFDTixLQUFLLFdBQVcsQ0FBQyxDQUFDO2dCQUNkLElBQUksYUFBNEIsQ0FBQztnQkFDakMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUM7Z0JBQ3RDLElBQUksSUFBSSxLQUFLLFVBQVUsRUFBRTtvQkFDckIsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsSUFBSSxF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QUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQztJQUMxQyxDQUFDO0lBRUQsUUFBUTtRQUNKLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0lBQ3ZDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgYXMgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9jYWxpemVkU3RyaW5nIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtdHlwZXMnO1xuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xuaW1wb3J0IHsgRm9ybUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbXBvbmVudC1yZWdpc3RyeS10eXBlcyc7XG5pbXBvcnQge1xuICAgIEJvb2xlYW5PcGVyYXRvcnMsXG4gICAgRGF0ZU9wZXJhdG9ycyxcbiAgICBJZE9wZXJhdG9ycyxcbiAgICBOdW1iZXJPcGVyYXRvcnMsXG4gICAgU3RyaW5nT3BlcmF0b3JzLFxufSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVGaWx0ZXJJRFR5cGUge1xuICAgIGtpbmQ6ICdpZCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlRmlsdGVyVGV4dFR5cGUge1xuICAgIGtpbmQ6ICd0ZXh0JztcbiAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVGaWx0ZXJTZWxlY3RUeXBlIHtcbiAgICBraW5kOiAnc2VsZWN0JztcbiAgICBvcHRpb25zOiBBcnJheTx7IHZhbHVlOiBhbnk7IGxhYmVsOiBzdHJpbmcgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGUge1xuICAgIGtpbmQ6ICdib29sZWFuJztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhVGFibGVGaWx0ZXJOdW1iZXJUeXBlIHtcbiAgICBraW5kOiAnbnVtYmVyJztcbiAgICBpbnB1dFR5cGU/OiAnbnVtYmVyJyB8ICdjdXJyZW5jeSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZSB7XG4gICAga2luZDogJ2RhdGVSYW5nZSc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVRhYmxlRmlsdGVyQ3VzdG9tVHlwZSB7XG4gICAga2luZDogJ2N1c3RvbSc7XG4gICAgY29tcG9uZW50OiBDb21wb25lbnRUeXBlPEZvcm1JbnB1dENvbXBvbmVudD47XG4gICAgc2VyaWFsaXplVmFsdWU6ICh2YWx1ZTogYW55KSA9PiBzdHJpbmc7XG4gICAgZGVzZXJpYWxpemVWYWx1ZTogKHNlcmlhbGl6ZWQ6IHN0cmluZykgPT4gYW55O1xuICAgIGdldExhYmVsKHZhbHVlOiBhbnkpOiBzdHJpbmcgfCBQcm9taXNlPHN0cmluZz47XG59XG5cbmV4cG9ydCB0eXBlIEtpbmRWYWx1ZU1hcCA9IHtcbiAgICBpZDoge1xuICAgICAgICByYXc6IHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiBrZXlvZiBJZE9wZXJhdG9ycztcbiAgICAgICAgICAgIHRlcm06IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgaW5wdXQ6IElkT3BlcmF0b3JzO1xuICAgIH07XG4gICAgdGV4dDoge1xuICAgICAgICByYXc6IHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiBrZXlvZiBTdHJpbmdPcGVyYXRvcnM7XG4gICAgICAgICAgICB0ZXJtOiBzdHJpbmc7XG4gICAgICAgIH07XG4gICAgICAgIGlucHV0OiBTdHJpbmdPcGVyYXRvcnM7XG4gICAgfTtcbiAgICBzZWxlY3Q6IHsgcmF3OiBzdHJpbmdbXTsgaW5wdXQ6IFN0cmluZ09wZXJhdG9ycyB9O1xuICAgIGJvb2xlYW46IHsgcmF3OiBib29sZWFuOyBpbnB1dDogQm9vbGVhbk9wZXJhdG9ycyB9O1xuICAgIGRhdGVSYW5nZToge1xuICAgICAgICByYXc6IHtcbiAgICAgICAgICAgIG1vZGU6ICdyZWxhdGl2ZScgfCAncmFuZ2UnO1xuICAgICAgICAgICAgcmVsYXRpdmVWYWx1ZTogbnVtYmVyO1xuICAgICAgICAgICAgcmVsYXRpdmVVbml0OiAnZGF5JyB8ICdtb250aCcgfCAneWVhcic7XG4gICAgICAgICAgICBzdGFydD86IHN0cmluZztcbiAgICAgICAgICAgIGVuZD86IHN0cmluZztcbiAgICAgICAgfTtcbiAgICAgICAgaW5wdXQ6IERhdGVPcGVyYXRvcnM7XG4gICAgfTtcbiAgICBudW1iZXI6IHsgcmF3OiB7IG9wZXJhdG9yOiBrZXlvZiBOdW1iZXJPcGVyYXRvcnM7IGFtb3VudDogbnVtYmVyIH07IGlucHV0OiBOdW1iZXJPcGVyYXRvcnMgfTtcbiAgICBjdXN0b206IHsgcmF3OiBhbnk7IGlucHV0OiBhbnkgfTtcbn07XG5leHBvcnQgdHlwZSBEYXRhVGFibGVGaWx0ZXJUeXBlID1cbiAgICB8IERhdGFUYWJsZUZpbHRlcklEVHlwZVxuICAgIHwgRGF0YVRhYmxlRmlsdGVyVGV4dFR5cGVcbiAgICB8IERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGVcbiAgICB8IERhdGFUYWJsZUZpbHRlckJvb2xlYW5UeXBlXG4gICAgfCBEYXRhVGFibGVGaWx0ZXJEYXRlUmFuZ2VUeXBlXG4gICAgfCBEYXRhVGFibGVGaWx0ZXJOdW1iZXJUeXBlXG4gICAgfCBEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFUYWJsZUZpbHRlck9wdGlvbnM8XG4gICAgRmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gYW55LFxuICAgIFR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlID0gRGF0YVRhYmxlRmlsdGVyVHlwZSxcbj4ge1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgICByZWFkb25seSB0eXBlOiBUeXBlO1xuICAgIHJlYWRvbmx5IGxhYmVsOiBzdHJpbmcgfCBMb2NhbGl6ZWRTdHJpbmdbXTtcbiAgICByZWFkb25seSBmaWx0ZXJGaWVsZD86IGtleW9mIEZpbHRlcklucHV0O1xuICAgIHJlYWRvbmx5IHRvRmlsdGVySW5wdXQ/OiAodmFsdWU6IERhdGFUYWJsZUZpbHRlclZhbHVlPFR5cGU+KSA9PiBQYXJ0aWFsPEZpbHRlcklucHV0Pjtcbn1cblxuZXhwb3J0IHR5cGUgRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+ID0gS2luZFZhbHVlTWFwW1R5cGVbJ2tpbmQnXV1bJ3JhdyddO1xuZXhwb3J0IHR5cGUgRGF0YVRhYmxlRmlsdGVyT3BlcmF0b3I8VHlwZSBleHRlbmRzIERhdGFUYWJsZUZpbHRlclR5cGU+ID0gS2luZFZhbHVlTWFwW1R5cGVbJ2tpbmQnXV1bJ2lucHV0J107XG5cbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVGaWx0ZXI8XG4gICAgRmlsdGVySW5wdXQgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gYW55LFxuICAgIFR5cGUgZXh0ZW5kcyBEYXRhVGFibGVGaWx0ZXJUeXBlID0gRGF0YVRhYmxlRmlsdGVyVHlwZSxcbj4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnM6IERhdGFUYWJsZUZpbHRlck9wdGlvbnM8RmlsdGVySW5wdXQsIFR5cGU+LFxuICAgICAgICBwcml2YXRlIG9uQWN0aXZhdGU/OiAoXG4gICAgICAgICAgICBmaWx0ZXI6IERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgVHlwZT4sXG4gICAgICAgICAgICB2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4gfCB1bmRlZmluZWQsXG4gICAgICAgICkgPT4gdm9pZCxcbiAgICApIHt9XG5cbiAgICBnZXQgbmFtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm5hbWU7XG4gICAgfVxuXG4gICAgZ2V0IHR5cGUoKTogVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMudHlwZTtcbiAgICB9XG5cbiAgICBnZXQgbGFiZWwoKTogc3RyaW5nIHwgTG9jYWxpemVkU3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmxhYmVsO1xuICAgIH1cblxuICAgIGdldEZpbHRlck9wZXJhdG9yKHZhbHVlOiBhbnkpOiBEYXRhVGFibGVGaWx0ZXJPcGVyYXRvcjxUeXBlPiB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSB0aGlzLm9wdGlvbnMudHlwZTtcbiAgICAgICAgc3dpdGNoICh0eXBlLmtpbmQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGVxOiAhIXZhbHVlLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjYXNlICdkYXRlUmFuZ2UnOiB7XG4gICAgICAgICAgICAgICAgbGV0IGRhdGVPcGVyYXRvcnM6IERhdGVPcGVyYXRvcnM7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHZhbHVlLm1vZGUgPz8gJ3JlbGF0aXZlJztcbiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3JlbGF0aXZlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWxhdGl2ZVZhbHVlID0gdmFsdWUucmVsYXRpdmVWYWx1ZSA/PyAzMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVsYXRpdmVVbml0ID0gdmFsdWUucmVsYXRpdmVVbml0ID8/ICdkYXknO1xuICAgICAgICAgICAgICAgICAgICBkYXRlT3BlcmF0b3JzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXI6IGRheWpzKCkuc3VidHJhY3QocmVsYXRpdmVWYWx1ZSwgcmVsYXRpdmVVbml0KS5zdGFydE9mKCdkYXknKS50b0lTT1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gdmFsdWUuc3RhcnQgPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmQgPSB2YWx1ZS5lbmQgPz8gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnQgJiYgZW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRlT3BlcmF0b3JzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJldHdlZW46IHsgc3RhcnQsIGVuZCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZU9wZXJhdG9ycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZnRlcjogc3RhcnQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZU9wZXJhdG9ycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmU6IGVuZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGVPcGVyYXRvcnM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZS5vcGVyYXRvcl06IE51bWJlcih2YWx1ZS5hbW91bnQpLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGNhc2UgJ3NlbGVjdCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaW46IHZhbHVlIH07XG4gICAgICAgICAgICBjYXNlICd0ZXh0JzpcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBbdmFsdWUub3BlcmF0b3JdOiB2YWx1ZS50ZXJtLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjYXNlICdpZCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlLm9wZXJhdG9yXTogdmFsdWUudGVybSxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgY2FzZSAnY3VzdG9tJzoge1xuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYXNzZXJ0TmV2ZXIodHlwZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0b0ZpbHRlcklucHV0KHZhbHVlOiBEYXRhVGFibGVGaWx0ZXJWYWx1ZTxUeXBlPik6IFBhcnRpYWw8RmlsdGVySW5wdXQ+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy50b0ZpbHRlcklucHV0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRvRmlsdGVySW5wdXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuZmlsdGVyRmllbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB7IFt0aGlzLm9wdGlvbnMuZmlsdGVyRmllbGRdOiB0aGlzLmdldEZpbHRlck9wZXJhdG9yKHZhbHVlKSB9IGFzIFBhcnRpYWw8RmlsdGVySW5wdXQ+O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBFaXRoZXIgXCJmaWx0ZXJGaWVsZFwiIG9yIFwidG9GaWx0ZXJJbnB1dFwiIG11c3QgYmUgcHJvdmlkZWQgKGZvciBmaWx0ZXIgXCIke3RoaXMubmFtZX1cIikpYCxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhY3RpdmF0ZSh2YWx1ZTogRGF0YVRhYmxlRmlsdGVyVmFsdWU8VHlwZT4pIHtcbiAgICAgICAgaWYgKHRoaXMub25BY3RpdmF0ZSkge1xuICAgICAgICAgICAgdGhpcy5vbkFjdGl2YXRlKHRoaXMsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzSWQoKTogdGhpcyBpcyBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIERhdGFUYWJsZUZpbHRlcklEVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmtpbmQgPT09ICdpZCc7XG4gICAgfVxuXG4gICAgaXNUZXh0KCk6IHRoaXMgaXMgRGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0LCBEYXRhVGFibGVGaWx0ZXJUZXh0VHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmtpbmQgPT09ICd0ZXh0JztcbiAgICB9XG5cbiAgICBpc051bWJlcigpOiB0aGlzIGlzIERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgRGF0YVRhYmxlRmlsdGVyTnVtYmVyVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmtpbmQgPT09ICdudW1iZXInO1xuICAgIH1cblxuICAgIGlzQm9vbGVhbigpOiB0aGlzIGlzIERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgRGF0YVRhYmxlRmlsdGVyQm9vbGVhblR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5raW5kID09PSAnYm9vbGVhbic7XG4gICAgfVxuXG4gICAgaXNTZWxlY3QoKTogdGhpcyBpcyBEYXRhVGFibGVGaWx0ZXI8RmlsdGVySW5wdXQsIERhdGFUYWJsZUZpbHRlclNlbGVjdFR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZS5raW5kID09PSAnc2VsZWN0JztcbiAgICB9XG5cbiAgICBpc0RhdGVSYW5nZSgpOiB0aGlzIGlzIERhdGFUYWJsZUZpbHRlcjxGaWx0ZXJJbnB1dCwgRGF0YVRhYmxlRmlsdGVyRGF0ZVJhbmdlVHlwZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlLmtpbmQgPT09ICdkYXRlUmFuZ2UnO1xuICAgIH1cblxuICAgIGlzQ3VzdG9tKCk6IHRoaXMgaXMgRGF0YVRhYmxlRmlsdGVyPEZpbHRlcklucHV0LCBEYXRhVGFibGVGaWx0ZXJDdXN0b21UeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUua2luZCA9PT0gJ2N1c3RvbSc7XG4gICAgfVxufVxuIl19
@@ -26,10 +26,10 @@ export class AuthGuard {
26
26
  }
27
27
  }));
28
28
  }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AuthGuard, deps: [{ token: i1.Router }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
30
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AuthGuard, providedIn: 'root' }); }
31
31
  }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: AuthGuard, decorators: [{
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: AuthGuard, decorators: [{
33
33
  type: Injectable,
34
34
  args: [{
35
35
  providedIn: 'root',
@@ -22,10 +22,10 @@ export class HealthCheckService {
22
22
  checkHealth() {
23
23
  return this.httpClient.get(this.healthCheckEndpoint).pipe(catchError(err => of(err.error)), map(res => ({ ...res, lastChecked: new Date() })));
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: HealthCheckService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
26
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: HealthCheckService, providedIn: 'root' }); }
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HealthCheckService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
26
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HealthCheckService, providedIn: 'root' }); }
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: HealthCheckService, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: HealthCheckService, decorators: [{
29
29
  type: Injectable,
30
30
  args: [{
31
31
  providedIn: 'root',
@@ -21,10 +21,10 @@ export class InjectableTranslateMessageFormatCompiler extends TranslateMessageFo
21
21
  console.log(`Check the messageformat docs: https://messageformat.github.io/messageformat/page-guide`);
22
22
  }
23
23
  }
24
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: InjectableTranslateMessageFormatCompiler, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
25
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: InjectableTranslateMessageFormatCompiler, providedIn: 'root' }); }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: InjectableTranslateMessageFormatCompiler, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
25
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: InjectableTranslateMessageFormatCompiler, providedIn: 'root' }); }
26
26
  }
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: InjectableTranslateMessageFormatCompiler, decorators: [{
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: InjectableTranslateMessageFormatCompiler, decorators: [{
28
28
  type: Injectable,
29
29
  args: [{ providedIn: 'root' }]
30
30
  }] });
@@ -53,10 +53,10 @@ export class I18nService {
53
53
  ];
54
54
  return rtlLanguageCodes.includes(languageCode);
55
55
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: I18nService, deps: [{ token: i1.TranslateService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
57
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: I18nService, providedIn: 'root' }); }
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, deps: [{ token: i1.TranslateService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
57
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, providedIn: 'root' }); }
58
58
  }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: I18nService, decorators: [{
59
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: I18nService, decorators: [{
60
60
  type: Injectable,
61
61
  args: [{
62
62
  providedIn: 'root',
@@ -79,10 +79,10 @@ export class JobQueueService {
79
79
  }
80
80
  return jobMap;
81
81
  }
82
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: JobQueueService, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Injectable }); }
83
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: JobQueueService, providedIn: 'root' }); }
82
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: JobQueueService, deps: [{ token: i1.DataService }], target: i0.ɵɵFactoryTarget.Injectable }); }
83
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: JobQueueService, providedIn: 'root' }); }
84
84
  }
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.3", ngImport: i0, type: JobQueueService, decorators: [{
85
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: JobQueueService, decorators: [{
86
86
  type: Injectable,
87
87
  args: [{
88
88
  providedIn: 'root',