@vendure/admin-ui 2.0.0-next.2 → 2.0.0-next.21

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 (341) hide show
  1. package/catalog/catalog.module.d.ts +15 -11
  2. package/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.d.ts +22 -0
  3. package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.d.ts +41 -0
  4. package/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.d.ts +4 -0
  5. package/catalog/components/collection-contents/collection-contents.component.d.ts +10 -2
  6. package/catalog/components/collection-detail/collection-detail.component.d.ts +13 -4
  7. package/catalog/components/collection-list/collection-list-bulk-actions.d.ts +6 -0
  8. package/catalog/components/collection-list/collection-list.component.d.ts +9 -5
  9. package/catalog/components/collection-tree/array-to-tree.d.ts +1 -1
  10. package/catalog/components/collection-tree/collection-tree-node.component.d.ts +14 -6
  11. package/catalog/components/collection-tree/collection-tree.component.d.ts +4 -1
  12. package/catalog/components/facet-list/facet-list-bulk-actions.d.ts +5 -0
  13. package/catalog/components/facet-list/facet-list.component.d.ts +2 -1
  14. package/catalog/components/generate-product-variants/generate-product-variants.component.d.ts +3 -3
  15. package/catalog/components/option-value-input/option-value-input.component.d.ts +21 -9
  16. package/catalog/components/product-detail/product-detail.component.d.ts +1 -1
  17. package/catalog/components/product-list/product-list-bulk-actions.d.ts +6 -0
  18. package/catalog/components/product-list/product-list.component.d.ts +4 -2
  19. package/catalog/components/product-variants-editor/product-variants-editor.component.d.ts +22 -12
  20. package/catalog/components/product-variants-list/product-variants-list.component.d.ts +1 -0
  21. package/catalog/public_api.d.ts +6 -1
  22. package/core/common/component-registry-types.d.ts +1 -1
  23. package/core/common/generated-types.d.ts +3184 -195
  24. package/core/common/utilities/bulk-action-utils.d.ts +19 -0
  25. package/core/common/utilities/configurable-operation-utils.d.ts +7 -2
  26. package/core/common/utilities/selection-manager.d.ts +30 -0
  27. package/core/common/version.d.ts +1 -1
  28. package/core/components/app-shell/app-shell.component.d.ts +1 -0
  29. package/core/data/definitions/collection-definitions.d.ts +4 -0
  30. package/core/data/definitions/facet-definitions.d.ts +3 -0
  31. package/core/data/definitions/order-definitions.d.ts +14 -0
  32. package/core/data/definitions/product-definitions.d.ts +2 -0
  33. package/core/data/providers/collection-data.service.d.ts +7 -0
  34. package/core/data/providers/facet-data.service.d.ts +3 -0
  35. package/core/data/providers/order-data.service.d.ts +18 -0
  36. package/core/data/providers/product-data.service.d.ts +2 -0
  37. package/core/providers/bulk-action-registry/bulk-action-registry.service.d.ts +9 -0
  38. package/core/providers/bulk-action-registry/bulk-action-types.d.ts +149 -0
  39. package/core/providers/bulk-action-registry/register-bulk-action.d.ts +53 -0
  40. package/core/providers/local-storage/local-storage.service.d.ts +1 -0
  41. package/core/providers/modal/modal.types.d.ts +2 -0
  42. package/core/providers/nav-builder/nav-builder-types.d.ts +1 -0
  43. package/core/public_api.d.ts +24 -1
  44. package/core/shared/components/asset-gallery/asset-gallery.component.d.ts +27 -3
  45. package/core/shared/components/bulk-action-menu/bulk-action-menu.component.d.ts +32 -0
  46. package/core/shared/components/configurable-input/configurable-input.component.d.ts +8 -3
  47. package/core/shared/components/custom-field-control/custom-field-control.component.d.ts +6 -2
  48. package/core/shared/components/data-table/data-table.component.d.ts +29 -7
  49. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +2 -1
  50. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +3 -2
  51. package/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.d.ts +38 -0
  52. package/{catalog → core/shared}/components/product-search-input/product-search-input.component.d.ts +1 -1
  53. package/core/shared/components/radio-card/radio-card-fieldset.component.d.ts +24 -0
  54. package/core/shared/components/radio-card/radio-card.component.d.ts +22 -0
  55. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.d.ts +31 -0
  56. package/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.d.ts +34 -0
  57. package/core/shared/components/rich-text-editor/prosemirror/custom-nodes.d.ts +4 -0
  58. package/core/shared/components/rich-text-editor/prosemirror/inputrules.d.ts +5 -5
  59. package/core/shared/components/rich-text-editor/prosemirror/menu/links.d.ts +1 -1
  60. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.d.ts +12 -0
  61. package/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.d.ts +9 -0
  62. package/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.d.ts +14 -0
  63. package/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.d.ts +7 -0
  64. package/core/shared/components/rich-text-editor/prosemirror/plugins/link-select-plugin.d.ts +1 -1
  65. package/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.d.ts +7 -0
  66. package/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.d.ts +13 -0
  67. package/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.d.ts +7 -3
  68. package/core/shared/components/rich-text-editor/prosemirror/types.d.ts +0 -2
  69. package/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.d.ts +21 -0
  70. package/core/shared/components/rich-text-editor/rich-text-editor.component.d.ts +6 -2
  71. package/core/shared/components/select-toggle/select-toggle.component.d.ts +2 -1
  72. package/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.d.ts +30 -0
  73. package/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.d.ts +22 -0
  74. package/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.d.ts +5 -17
  75. package/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.d.ts +28 -0
  76. package/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.d.ts +2 -0
  77. package/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.d.ts +23 -0
  78. package/core/shared/dynamic-form-inputs/register-dynamic-input-components.d.ts +5 -1
  79. package/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.d.ts +6 -3
  80. package/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.d.ts +10 -2
  81. package/core/shared/pipes/custom-field-description.pipe.d.ts +11 -0
  82. package/core/shared/pipes/custom-field-label.pipe.d.ts +4 -10
  83. package/core/shared/shared.module.d.ts +68 -57
  84. package/customer/components/customer-group-list/customer-group-list.component.d.ts +6 -4
  85. package/customer/components/customer-group-member-list/customer-group-member-list.component.d.ts +11 -4
  86. package/esm2020/catalog/catalog.module.mjs +31 -10
  87. package/esm2020/catalog/components/apply-facet-dialog/apply-facet-dialog.component.mjs +1 -1
  88. package/esm2020/catalog/components/assets/assets.component.mjs +2 -2
  89. package/esm2020/catalog/components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component.mjs +4 -1
  90. package/esm2020/catalog/components/assign-to-channel-dialog/assign-to-channel-dialog.component.mjs +50 -0
  91. package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component.mjs +84 -0
  92. package/esm2020/catalog/components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.graphql.mjs +69 -0
  93. package/esm2020/catalog/components/collection-contents/collection-contents.component.mjs +61 -13
  94. package/esm2020/catalog/components/collection-detail/collection-detail.component.mjs +70 -32
  95. package/esm2020/catalog/components/collection-list/collection-list-bulk-actions.mjs +143 -0
  96. package/esm2020/catalog/components/collection-list/collection-list.component.mjs +46 -12
  97. package/esm2020/catalog/components/collection-tree/array-to-tree.mjs +3 -3
  98. package/esm2020/catalog/components/collection-tree/collection-tree-node.component.mjs +36 -10
  99. package/esm2020/catalog/components/collection-tree/collection-tree.component.mjs +9 -4
  100. package/esm2020/catalog/components/facet-detail/facet-detail.component.mjs +3 -3
  101. package/esm2020/catalog/components/facet-list/facet-list-bulk-actions.mjs +202 -0
  102. package/esm2020/catalog/components/facet-list/facet-list.component.mjs +14 -5
  103. package/esm2020/catalog/components/generate-product-variants/generate-product-variants.component.mjs +12 -4
  104. package/esm2020/catalog/components/option-value-input/option-value-input.component.mjs +70 -11
  105. package/esm2020/catalog/components/product-detail/product-detail.component.mjs +36 -24
  106. package/esm2020/catalog/components/product-list/product-list-bulk-actions.mjs +168 -0
  107. package/esm2020/catalog/components/product-list/product-list.component.mjs +13 -9
  108. package/esm2020/catalog/components/product-variants-editor/product-variants-editor.component.mjs +130 -19
  109. package/esm2020/catalog/components/product-variants-list/product-variants-list.component.mjs +9 -3
  110. package/esm2020/catalog/providers/routing/collection-resolver.mjs +2 -1
  111. package/esm2020/catalog/public_api.mjs +7 -2
  112. package/esm2020/core/app.component.module.mjs +1 -1
  113. package/esm2020/core/common/base-detail.component.mjs +1 -1
  114. package/esm2020/core/common/component-registry-types.mjs +1 -1
  115. package/esm2020/core/common/deactivate-aware.mjs +1 -1
  116. package/esm2020/core/common/generated-types.mjs +31 -1
  117. package/esm2020/core/common/introspection-result.mjs +296 -189
  118. package/esm2020/core/common/utilities/bulk-action-utils.mjs +35 -0
  119. package/esm2020/core/common/utilities/configurable-operation-utils.mjs +37 -10
  120. package/esm2020/core/common/utilities/selection-manager.mjs +96 -0
  121. package/esm2020/core/common/version.mjs +2 -2
  122. package/esm2020/core/components/app-shell/app-shell.component.mjs +6 -5
  123. package/esm2020/core/components/breadcrumb/breadcrumb.component.mjs +2 -2
  124. package/esm2020/core/components/channel-switcher/channel-switcher.component.mjs +1 -1
  125. package/esm2020/core/components/main-nav/main-nav.component.mjs +3 -3
  126. package/esm2020/core/components/user-menu/user-menu.component.mjs +1 -1
  127. package/esm2020/core/core.module.mjs +1 -1
  128. package/esm2020/core/data/definitions/collection-definitions.mjs +47 -1
  129. package/esm2020/core/data/definitions/facet-definitions.mjs +31 -1
  130. package/esm2020/core/data/definitions/order-definitions.mjs +583 -455
  131. package/esm2020/core/data/definitions/product-definitions.mjs +23 -1
  132. package/esm2020/core/data/definitions/shared-definitions.mjs +29 -28
  133. package/esm2020/core/data/providers/collection-data.service.mjs +20 -2
  134. package/esm2020/core/data/providers/customer-data.service.mjs +6 -1
  135. package/esm2020/core/data/providers/facet-data.service.mjs +18 -2
  136. package/esm2020/core/data/providers/order-data.service.mjs +43 -2
  137. package/esm2020/core/data/providers/product-data.service.mjs +10 -2
  138. package/esm2020/core/data/providers/promotion-data.service.mjs +1 -1
  139. package/esm2020/core/data/utils/remove-readonly-custom-fields.mjs +8 -1
  140. package/esm2020/core/providers/bulk-action-registry/bulk-action-registry.service.mjs +28 -0
  141. package/esm2020/core/providers/bulk-action-registry/bulk-action-types.mjs +2 -0
  142. package/esm2020/core/providers/bulk-action-registry/register-bulk-action.mjs +63 -0
  143. package/esm2020/core/providers/dashboard-widget/dashboard-widget.service.mjs +1 -4
  144. package/esm2020/core/providers/local-storage/local-storage.service.mjs +1 -1
  145. package/esm2020/core/providers/modal/modal.service.mjs +2 -1
  146. package/esm2020/core/providers/modal/modal.types.mjs +1 -1
  147. package/esm2020/core/providers/nav-builder/nav-builder-types.mjs +1 -1
  148. package/esm2020/core/public_api.mjs +25 -2
  149. package/esm2020/core/shared/components/action-bar/action-bar.component.mjs +7 -15
  150. package/esm2020/core/shared/components/address-form/address-form.component.mjs +3 -3
  151. package/esm2020/core/shared/components/asset-gallery/asset-gallery.component.mjs +34 -51
  152. package/esm2020/core/shared/components/asset-preview/asset-preview.component.mjs +4 -4
  153. package/esm2020/core/shared/components/asset-preview-links/asset-preview-links.component.mjs +1 -1
  154. package/esm2020/core/shared/components/bulk-action-menu/bulk-action-menu.component.mjs +97 -0
  155. package/esm2020/core/shared/components/configurable-input/configurable-input.component.mjs +22 -10
  156. package/esm2020/core/shared/components/custom-field-control/custom-field-control.component.mjs +18 -10
  157. package/esm2020/core/shared/components/data-table/data-table.component.mjs +64 -14
  158. package/esm2020/core/shared/components/datetime-picker/datetime-picker.component.mjs +1 -1
  159. package/esm2020/core/shared/components/dropdown/dropdown-menu.component.mjs +26 -23
  160. package/esm2020/core/shared/components/dropdown/dropdown-trigger.directive.mjs +1 -1
  161. package/esm2020/core/shared/components/entity-info/entity-info.component.mjs +1 -1
  162. package/esm2020/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +13 -6
  163. package/esm2020/core/shared/components/formatted-address/formatted-address.component.mjs +3 -3
  164. package/esm2020/core/shared/components/help-tooltip/help-tooltip.component.mjs +2 -2
  165. package/esm2020/core/shared/components/history-entry-detail/history-entry-detail.component.mjs +1 -1
  166. package/esm2020/core/shared/components/language-selector/language-selector.component.mjs +3 -3
  167. package/esm2020/core/shared/components/object-tree/object-tree.component.mjs +1 -1
  168. package/esm2020/core/shared/components/order-state-label/order-state-label.component.mjs +2 -1
  169. package/esm2020/core/shared/components/product-multi-selector-dialog/product-multi-selector-dialog.component.mjs +135 -0
  170. package/esm2020/core/shared/components/product-search-input/product-search-input.component.mjs +108 -0
  171. package/esm2020/core/shared/components/product-variant-selector/product-variant-selector.component.mjs +2 -2
  172. package/esm2020/core/shared/components/radio-card/radio-card-fieldset.component.mjs +54 -0
  173. package/esm2020/core/shared/components/radio-card/radio-card.component.mjs +53 -0
  174. package/esm2020/core/shared/components/rich-text-editor/external-image-dialog/external-image-dialog.component.mjs +3 -3
  175. package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.component.mjs +136 -0
  176. package/esm2020/core/shared/components/rich-text-editor/prosemirror/context-menu/context-menu.service.mjs +46 -0
  177. package/esm2020/core/shared/components/rich-text-editor/prosemirror/custom-nodes.mjs +57 -0
  178. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/links.mjs +4 -4
  179. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-common.mjs +22 -1
  180. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu-plugin.mjs +12 -0
  181. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/menu.mjs +73 -18
  182. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/sub-menu-with-icon.mjs +16 -0
  183. package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/image-plugin.mjs +100 -0
  184. package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/raw-editor-plugin.mjs +96 -0
  185. package/esm2020/core/shared/components/rich-text-editor/prosemirror/plugins/tables-plugin.mjs +166 -0
  186. package/esm2020/core/shared/components/rich-text-editor/prosemirror/prosemirror.service.mjs +47 -18
  187. package/esm2020/core/shared/components/rich-text-editor/prosemirror/types.mjs +1 -1
  188. package/esm2020/core/shared/components/rich-text-editor/raw-html-dialog/raw-html-dialog.component.mjs +59 -0
  189. package/esm2020/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +22 -10
  190. package/esm2020/core/shared/components/select-toggle/select-toggle.component.mjs +6 -3
  191. package/esm2020/core/shared/components/simple-dialog/simple-dialog.component.mjs +3 -3
  192. package/esm2020/core/shared/components/ui-extension-point/ui-extension-point.component.mjs +1 -1
  193. package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/base-code-editor-form-input.component.mjs +57 -0
  194. package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/html-editor-form-input.component.mjs +63 -0
  195. package/esm2020/core/shared/dynamic-form-inputs/code-editor-form-input/json-editor-form-input.component.mjs +48 -83
  196. package/esm2020/core/shared/dynamic-form-inputs/combination-mode-form-input/combination-mode-form-input.component.mjs +45 -0
  197. package/esm2020/core/shared/dynamic-form-inputs/dynamic-form-input/dynamic-form-input.component.mjs +3 -3
  198. package/esm2020/core/shared/dynamic-form-inputs/facet-value-form-input/facet-value-form-input.component.mjs +12 -3
  199. package/esm2020/core/shared/dynamic-form-inputs/product-multi-selector-form-input/product-multi-selector-form-input.component.mjs +48 -0
  200. package/esm2020/core/shared/dynamic-form-inputs/register-dynamic-input-components.mjs +7 -1
  201. package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/asset/relation-asset-input.component.mjs +11 -9
  202. package/esm2020/core/shared/dynamic-form-inputs/relation-form-input/generic/relation-generic-input.component.mjs +1 -1
  203. package/esm2020/core/shared/dynamic-form-inputs/select-form-input/select-form-input.component.mjs +21 -11
  204. package/esm2020/core/shared/pipes/custom-field-description.pipe.mjs +30 -0
  205. package/esm2020/core/shared/pipes/custom-field-label.pipe.mjs +7 -19
  206. package/esm2020/core/shared/pipes/locale-currency.pipe.mjs +10 -2
  207. package/esm2020/core/shared/pipes/state-i18n-token.pipe.mjs +2 -1
  208. package/esm2020/core/shared/shared.module.mjs +49 -5
  209. package/esm2020/customer/components/address-card/address-card.component.mjs +1 -1
  210. package/esm2020/customer/components/customer-detail/customer-detail.component.mjs +1 -1
  211. package/esm2020/customer/components/customer-group-list/customer-group-list.component.mjs +33 -18
  212. package/esm2020/customer/components/customer-group-member-list/customer-group-member-list.component.mjs +3 -3
  213. package/esm2020/customer/components/customer-history/customer-history.component.mjs +1 -1
  214. package/esm2020/customer/components/customer-list/customer-list.component.mjs +3 -3
  215. package/esm2020/dashboard/components/dashboard/dashboard.component.mjs +2 -2
  216. package/esm2020/dashboard/components/dashboard-widget/dashboard-widget.component.mjs +2 -2
  217. package/esm2020/dashboard/dashboard.module.mjs +6 -2
  218. package/esm2020/dashboard/widgets/latest-orders-widget/latest-orders-widget.component.mjs +1 -1
  219. package/esm2020/dashboard/widgets/order-summary-widget/order-summary-widget.component.mjs +2 -2
  220. package/esm2020/login/components/login/login.component.mjs +3 -3
  221. package/esm2020/marketing/components/promotion-detail/promotion-detail.component.mjs +3 -3
  222. package/esm2020/marketing/components/promotion-list/promotion-list.component.mjs +1 -1
  223. package/esm2020/order/components/cancel-order-dialog/cancel-order-dialog.component.mjs +1 -1
  224. package/esm2020/order/components/coupon-code-selector/coupon-code-selector.component.mjs +42 -0
  225. package/esm2020/order/components/draft-order-detail/draft-order-detail.component.mjs +187 -0
  226. package/esm2020/order/components/draft-order-variant-selector/draft-order-variant-selector.component.mjs +59 -0
  227. package/esm2020/order/components/fulfill-order-dialog/fulfill-order-dialog.component.mjs +7 -3
  228. package/esm2020/order/components/fulfillment-card/fulfillment-card.component.mjs +1 -1
  229. package/esm2020/order/components/fulfillment-detail/fulfillment-detail.component.mjs +8 -17
  230. package/esm2020/order/components/line-fulfillment/line-fulfillment.component.mjs +8 -22
  231. package/esm2020/order/components/order-custom-fields-card/order-custom-fields-card.component.mjs +30 -6
  232. package/esm2020/order/components/order-detail/order-detail.component.mjs +80 -40
  233. package/esm2020/order/components/order-editor/order-editor.component.mjs +15 -14
  234. package/esm2020/order/components/order-edits-preview-dialog/order-edits-preview-dialog.component.mjs +1 -1
  235. package/esm2020/order/components/order-history/order-history.component.mjs +1 -1
  236. package/esm2020/order/components/order-list/order-list.component.mjs +40 -17
  237. package/esm2020/order/components/order-payment-card/order-payment-card.component.mjs +3 -3
  238. package/esm2020/order/components/order-table/order-table.component.mjs +29 -6
  239. package/esm2020/order/components/refund-order-dialog/refund-order-dialog.component.mjs +2 -2
  240. package/esm2020/order/components/select-address-dialog/select-address-dialog.component.mjs +89 -0
  241. package/esm2020/order/components/select-address-dialog/select-address-dialog.graphql.mjs +14 -0
  242. package/esm2020/order/components/select-customer-dialog/select-customer-dialog.component.mjs +59 -0
  243. package/esm2020/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.mjs +31 -0
  244. package/esm2020/order/order.module.mjs +20 -2
  245. package/esm2020/order/order.routes.mjs +23 -4
  246. package/esm2020/order/providers/routing/order-resolver.mjs +29 -11
  247. package/esm2020/order/providers/routing/order.guard.mjs +37 -0
  248. package/esm2020/order/public_api.mjs +9 -1
  249. package/esm2020/settings/components/administrator-list/administrator-list.component.mjs +1 -1
  250. package/esm2020/settings/components/channel-list/channel-list.component.mjs +1 -1
  251. package/esm2020/settings/components/country-list/country-list.component.mjs +3 -3
  252. package/esm2020/settings/components/payment-method-detail/payment-method-detail.component.mjs +1 -1
  253. package/esm2020/settings/components/payment-method-list/payment-method-list.component.mjs +1 -1
  254. package/esm2020/settings/components/permission-grid/permission-grid.component.mjs +1 -1
  255. package/esm2020/settings/components/profile/profile.component.mjs +3 -3
  256. package/esm2020/settings/components/role-list/role-list.component.mjs +1 -1
  257. package/esm2020/settings/components/shipping-method-detail/shipping-method-detail.component.mjs +4 -2
  258. package/esm2020/settings/components/shipping-method-list/shipping-method-list.component.mjs +1 -1
  259. package/esm2020/settings/components/tax-category-list/tax-category-list.component.mjs +1 -1
  260. package/esm2020/settings/components/tax-rate-list/tax-rate-list.component.mjs +1 -1
  261. package/esm2020/settings/components/zone-detail-dialog/zone-detail-dialog.component.mjs +2 -2
  262. package/esm2020/settings/components/zone-list/zone-list.component.mjs +3 -3
  263. package/esm2020/settings/components/zone-member-list/zone-member-list.component.mjs +3 -3
  264. package/esm2020/system/components/health-check/health-check.component.mjs +2 -2
  265. package/esm2020/system/components/job-list/job-list.component.mjs +1 -1
  266. package/fesm2015/vendure-admin-ui-catalog.mjs +1206 -228
  267. package/fesm2015/vendure-admin-ui-catalog.mjs.map +1 -1
  268. package/fesm2015/vendure-admin-ui-core.mjs +9451 -7332
  269. package/fesm2015/vendure-admin-ui-core.mjs.map +1 -1
  270. package/fesm2015/vendure-admin-ui-customer.mjs +36 -23
  271. package/fesm2015/vendure-admin-ui-customer.mjs.map +1 -1
  272. package/fesm2015/vendure-admin-ui-dashboard.mjs +11 -7
  273. package/fesm2015/vendure-admin-ui-dashboard.mjs.map +1 -1
  274. package/fesm2015/vendure-admin-ui-login.mjs +2 -2
  275. package/fesm2015/vendure-admin-ui-login.mjs.map +1 -1
  276. package/fesm2015/vendure-admin-ui-marketing.mjs +3 -3
  277. package/fesm2015/vendure-admin-ui-marketing.mjs.map +1 -1
  278. package/fesm2015/vendure-admin-ui-order.mjs +1184 -599
  279. package/fesm2015/vendure-admin-ui-order.mjs.map +1 -1
  280. package/fesm2015/vendure-admin-ui-settings.mjs +21 -19
  281. package/fesm2015/vendure-admin-ui-settings.mjs.map +1 -1
  282. package/fesm2015/vendure-admin-ui-system.mjs +3 -3
  283. package/fesm2020/vendure-admin-ui-catalog.mjs +1190 -230
  284. package/fesm2020/vendure-admin-ui-catalog.mjs.map +1 -1
  285. package/fesm2020/vendure-admin-ui-core.mjs +9539 -7437
  286. package/fesm2020/vendure-admin-ui-core.mjs.map +1 -1
  287. package/fesm2020/vendure-admin-ui-customer.mjs +36 -23
  288. package/fesm2020/vendure-admin-ui-customer.mjs.map +1 -1
  289. package/fesm2020/vendure-admin-ui-dashboard.mjs +11 -7
  290. package/fesm2020/vendure-admin-ui-dashboard.mjs.map +1 -1
  291. package/fesm2020/vendure-admin-ui-login.mjs +2 -2
  292. package/fesm2020/vendure-admin-ui-login.mjs.map +1 -1
  293. package/fesm2020/vendure-admin-ui-marketing.mjs +3 -3
  294. package/fesm2020/vendure-admin-ui-marketing.mjs.map +1 -1
  295. package/fesm2020/vendure-admin-ui-order.mjs +1194 -614
  296. package/fesm2020/vendure-admin-ui-order.mjs.map +1 -1
  297. package/fesm2020/vendure-admin-ui-settings.mjs +21 -19
  298. package/fesm2020/vendure-admin-ui-settings.mjs.map +1 -1
  299. package/fesm2020/vendure-admin-ui-system.mjs +3 -3
  300. package/order/components/coupon-code-selector/coupon-code-selector.component.d.ts +21 -0
  301. package/order/components/draft-order-detail/draft-order-detail.component.d.ts +52 -0
  302. package/order/components/draft-order-variant-selector/draft-order-variant-selector.component.d.ts +24 -0
  303. package/order/components/order-custom-fields-card/order-custom-fields-card.component.d.ts +4 -2
  304. package/order/components/order-editor/order-editor.component.d.ts +1 -6
  305. package/order/components/order-list/order-list.component.d.ts +2 -0
  306. package/order/components/order-table/order-table.component.d.ts +12 -2
  307. package/order/components/select-address-dialog/select-address-dialog.component.d.ts +27 -0
  308. package/order/components/select-address-dialog/select-address-dialog.graphql.d.ts +1 -0
  309. package/order/components/select-customer-dialog/select-customer-dialog.component.d.ts +25 -0
  310. package/order/components/select-shipping-method-dialog/select-shipping-method-dialog.component.d.ts +19 -0
  311. package/order/order.module.d.ts +9 -3
  312. package/order/providers/routing/order-resolver.d.ts +8 -3
  313. package/order/providers/routing/order.guard.d.ts +12 -0
  314. package/order/public_api.d.ts +8 -0
  315. package/package.json +13 -12
  316. package/settings/components/zone-member-list/zone-member-list.component.d.ts +3 -1
  317. package/static/i18n-messages/cs.json +50 -3
  318. package/static/i18n-messages/de.json +53 -3
  319. package/static/i18n-messages/en.json +55 -8
  320. package/static/i18n-messages/es.json +50 -3
  321. package/static/i18n-messages/fr.json +50 -3
  322. package/static/i18n-messages/it.json +50 -3
  323. package/static/i18n-messages/pl.json +50 -3
  324. package/static/i18n-messages/pt_BR.json +50 -3
  325. package/static/i18n-messages/pt_PT.json +50 -3
  326. package/static/i18n-messages/ru.json +50 -3
  327. package/static/i18n-messages/uk.json +50 -3
  328. package/static/i18n-messages/zh_Hans.json +50 -3
  329. package/static/i18n-messages/zh_Hant.json +50 -3
  330. package/static/styles/_variables.scss +4 -0
  331. package/static/styles/global/_forms.scss +8 -7
  332. package/static/styles/global/_overrides.scss +11 -1
  333. package/static/styles/global/_sass-overrides.scss +3 -0
  334. package/static/styles/global/_utilities.scss +14 -0
  335. package/static/styles/styles.scss +1 -0
  336. package/static/styles/theme/default.scss +13 -1
  337. package/static/styles/ui-extension-theme.scss +1 -0
  338. package/static/theme.min.css +1 -1
  339. package/core/shared/components/rich-text-editor/prosemirror/menu/images.d.ts +0 -4
  340. package/esm2020/catalog/components/product-search-input/product-search-input.component.mjs +0 -107
  341. package/esm2020/core/shared/components/rich-text-editor/prosemirror/menu/images.mjs +0 -36
@@ -7,27 +7,32 @@ import { AssetDetailComponent } from './components/asset-detail/asset-detail.com
7
7
  import { AssetListComponent } from './components/asset-list/asset-list.component';
8
8
  import { AssetsComponent } from './components/assets/assets.component';
9
9
  import { AssignProductsToChannelDialogComponent } from './components/assign-products-to-channel-dialog/assign-products-to-channel-dialog.component';
10
+ import { AssignToChannelDialogComponent } from './components/assign-to-channel-dialog/assign-to-channel-dialog.component';
11
+ import { BulkAddFacetValuesDialogComponent } from './components/bulk-add-facet-values-dialog/bulk-add-facet-values-dialog.component';
10
12
  import { CollectionContentsComponent } from './components/collection-contents/collection-contents.component';
11
13
  import { CollectionDetailComponent } from './components/collection-detail/collection-detail.component';
14
+ import { assignCollectionsToChannelBulkAction, deleteCollectionsBulkAction, removeCollectionsFromChannelBulkAction, } from './components/collection-list/collection-list-bulk-actions';
12
15
  import { CollectionListComponent } from './components/collection-list/collection-list.component';
13
16
  import { CollectionTreeNodeComponent } from './components/collection-tree/collection-tree-node.component';
14
17
  import { CollectionTreeComponent } from './components/collection-tree/collection-tree.component';
15
18
  import { ConfirmVariantDeletionDialogComponent } from './components/confirm-variant-deletion-dialog/confirm-variant-deletion-dialog.component';
16
19
  import { FacetDetailComponent } from './components/facet-detail/facet-detail.component';
20
+ import { assignFacetsToChannelBulkAction, deleteFacetsBulkAction, removeFacetsFromChannelBulkAction, } from './components/facet-list/facet-list-bulk-actions';
17
21
  import { FacetListComponent } from './components/facet-list/facet-list.component';
18
22
  import { GenerateProductVariantsComponent } from './components/generate-product-variants/generate-product-variants.component';
19
23
  import { OptionValueInputComponent } from './components/option-value-input/option-value-input.component';
20
24
  import { ProductDetailComponent } from './components/product-detail/product-detail.component';
25
+ import { assignFacetValuesToProductsBulkAction, assignProductsToChannelBulkAction, deleteProductsBulkAction, removeProductsFromChannelBulkAction, } from './components/product-list/product-list-bulk-actions';
21
26
  import { ProductListComponent } from './components/product-list/product-list.component';
22
27
  import { ProductOptionsEditorComponent } from './components/product-options-editor/product-options-editor.component';
23
- import { ProductSearchInputComponent } from './components/product-search-input/product-search-input.component';
24
28
  import { ProductVariantsEditorComponent } from './components/product-variants-editor/product-variants-editor.component';
25
29
  import { ProductVariantsListComponent } from './components/product-variants-list/product-variants-list.component';
26
30
  import { ProductVariantsTableComponent } from './components/product-variants-table/product-variants-table.component';
27
31
  import { UpdateProductOptionDialogComponent } from './components/update-product-option-dialog/update-product-option-dialog.component';
28
32
  import { VariantPriceDetailComponent } from './components/variant-price-detail/variant-price-detail.component';
29
33
  import * as i0 from "@angular/core";
30
- import * as i1 from "@angular/router";
34
+ import * as i1 from "@vendure/admin-ui/core";
35
+ import * as i2 from "@angular/router";
31
36
  const CATALOG_COMPONENTS = [
32
37
  ProductListComponent,
33
38
  ProductDetailComponent,
@@ -45,7 +50,6 @@ const CATALOG_COMPONENTS = [
45
50
  CollectionTreeNodeComponent,
46
51
  CollectionContentsComponent,
47
52
  ProductVariantsTableComponent,
48
- ProductSearchInputComponent,
49
53
  OptionValueInputComponent,
50
54
  UpdateProductOptionDialogComponent,
51
55
  ProductVariantsEditorComponent,
@@ -53,10 +57,25 @@ const CATALOG_COMPONENTS = [
53
57
  AssetDetailComponent,
54
58
  ConfirmVariantDeletionDialogComponent,
55
59
  ProductOptionsEditorComponent,
60
+ BulkAddFacetValuesDialogComponent,
61
+ AssignToChannelDialogComponent,
56
62
  ];
57
63
  export class CatalogModule {
64
+ constructor(bulkActionRegistryService) {
65
+ this.bulkActionRegistryService = bulkActionRegistryService;
66
+ bulkActionRegistryService.registerBulkAction(assignFacetValuesToProductsBulkAction);
67
+ bulkActionRegistryService.registerBulkAction(assignProductsToChannelBulkAction);
68
+ bulkActionRegistryService.registerBulkAction(removeProductsFromChannelBulkAction);
69
+ bulkActionRegistryService.registerBulkAction(deleteProductsBulkAction);
70
+ bulkActionRegistryService.registerBulkAction(assignFacetsToChannelBulkAction);
71
+ bulkActionRegistryService.registerBulkAction(removeFacetsFromChannelBulkAction);
72
+ bulkActionRegistryService.registerBulkAction(deleteFacetsBulkAction);
73
+ bulkActionRegistryService.registerBulkAction(assignCollectionsToChannelBulkAction);
74
+ bulkActionRegistryService.registerBulkAction(removeCollectionsFromChannelBulkAction);
75
+ bulkActionRegistryService.registerBulkAction(deleteCollectionsBulkAction);
76
+ }
58
77
  }
59
- CatalogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CatalogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
78
+ CatalogModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CatalogModule, deps: [{ token: i1.BulkActionRegistryService }], target: i0.ɵɵFactoryTarget.NgModule });
60
79
  CatalogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CatalogModule, declarations: [ProductListComponent,
61
80
  ProductDetailComponent,
62
81
  FacetListComponent,
@@ -73,14 +92,15 @@ CatalogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
73
92
  CollectionTreeNodeComponent,
74
93
  CollectionContentsComponent,
75
94
  ProductVariantsTableComponent,
76
- ProductSearchInputComponent,
77
95
  OptionValueInputComponent,
78
96
  UpdateProductOptionDialogComponent,
79
97
  ProductVariantsEditorComponent,
80
98
  AssignProductsToChannelDialogComponent,
81
99
  AssetDetailComponent,
82
100
  ConfirmVariantDeletionDialogComponent,
83
- ProductOptionsEditorComponent], imports: [SharedModule, i1.RouterModule], exports: [ProductListComponent,
101
+ ProductOptionsEditorComponent,
102
+ BulkAddFacetValuesDialogComponent,
103
+ AssignToChannelDialogComponent], imports: [SharedModule, i2.RouterModule], exports: [ProductListComponent,
84
104
  ProductDetailComponent,
85
105
  FacetListComponent,
86
106
  FacetDetailComponent,
@@ -96,14 +116,15 @@ CatalogModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version:
96
116
  CollectionTreeNodeComponent,
97
117
  CollectionContentsComponent,
98
118
  ProductVariantsTableComponent,
99
- ProductSearchInputComponent,
100
119
  OptionValueInputComponent,
101
120
  UpdateProductOptionDialogComponent,
102
121
  ProductVariantsEditorComponent,
103
122
  AssignProductsToChannelDialogComponent,
104
123
  AssetDetailComponent,
105
124
  ConfirmVariantDeletionDialogComponent,
106
- ProductOptionsEditorComponent] });
125
+ ProductOptionsEditorComponent,
126
+ BulkAddFacetValuesDialogComponent,
127
+ AssignToChannelDialogComponent] });
107
128
  CatalogModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CatalogModule, imports: [[SharedModule, RouterModule.forChild(catalogRoutes)]] });
108
129
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: CatalogModule, decorators: [{
109
130
  type: NgModule,
@@ -112,5 +133,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
112
133
  exports: [...CATALOG_COMPONENTS],
113
134
  declarations: [...CATALOG_COMPONENTS],
114
135
  }]
115
- }] });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDekcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLDRGQUE0RixDQUFDO0FBQ3BKLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzdHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzFHLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLHdGQUF3RixDQUFDO0FBQy9JLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9B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ICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBjYXRhbG9nUm91dGVzIH0gZnJvbSAnLi9jYXRhbG9nLnJvdXRlcyc7XHJcbmltcG9ydCB7IEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwbHktZmFjZXQtZGlhbG9nL2FwcGx5LWZhY2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1kZXRhaWwvYXNzZXQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1saXN0L2Fzc2V0LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2V0cy9hc3NldHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uQ29udGVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1jb250ZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kZXRhaWwvY29sbGVjdGlvbi1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS1ub2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRmFjZXREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtZGV0YWlsL2ZhY2V0LWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWNldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29wdGlvbi12YWx1ZS1pbnB1dC9vcHRpb24tdmFsdWUtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWRldGFpbC9wcm9kdWN0LWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0U2VhcmNoSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1zZWFyY2gtaW5wdXQvcHJvZHVjdC1zZWFyY2gtaW5wdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudHMtZWRpdG9yL3Byb2R1Y3QtdmFyaWFudHMtZWRpdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50c0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy1saXN0L3Byb2R1Y3QtdmFyaWFudHMtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudHNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlL3Byb2R1Y3QtdmFyaWFudHMtdGFibGUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVmFyaWFudFByaWNlRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhcmlhbnQtcHJpY2UtZGV0YWlsL3ZhcmlhbnQtcHJpY2UtZGV0YWlsLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBDQVRBTE9HX0NPTVBPTkVOVFMgPSBbXHJcbiAgICBQcm9kdWN0TGlzdENvbXBvbmVudCxcclxuICAgIFByb2R1Y3REZXRhaWxDb21wb25lbnQsXHJcbiAgICBGYWNldExpc3RDb21wb25lbnQsXHJcbiAgICBGYWNldERldGFpbENvbXBvbmVudCxcclxuICAgIEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRzTGlzdENvbXBvbmVudCxcclxuICAgIEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQsXHJcbiAgICBBc3NldExpc3RDb21wb25lbnQsXHJcbiAgICBBc3NldHNDb21wb25lbnQsXHJcbiAgICBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uTGlzdENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uVHJlZUNvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25UcmVlTm9kZUNvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25Db250ZW50c0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50c1RhYmxlQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFNlYXJjaElucHV0Q29tcG9uZW50LFxyXG4gICAgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCxcclxuICAgIFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudHNFZGl0b3JDb21wb25lbnQsXHJcbiAgICBBc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbERpYWxvZ0NvbXBvbmVudCxcclxuICAgIEFzc2V0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50LFxyXG5dO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtTaGFyZWRNb2R1bGUsIFJvdXRlck1vZHVsZS5mb3JDaGlsZChjYXRhbG9nUm91dGVzKV0sXHJcbiAgICBleHBvcnRzOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNBVEFMT0dfQ09NUE9ORU5UU10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTW9kdWxlIHt9XHJcbiJdfQ==
136
+ }], ctorParameters: function () { return [{ type: i1.BulkActionRegistryService }]; } });
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBNkIsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUNwSixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUNySSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQ0gsb0NBQW9DLEVBQ3BDLDJCQUEyQixFQUMzQixzQ0FBc0MsR0FDekMsTUFBTSwyREFBMkQsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsdUJBQXVCLEVB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QjtRQUNsQixlQUFlO1FBQ2YsMkJBQTJCO1FBQzNCLHVCQUF1QjtRQUN2Qix5QkFBeUI7UUFDekIsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQiwyQkFBMkI7UUFDM0IsNkJBQTZCO1FBQzdCLHlCQUF5QjtRQUN6QixrQ0FBa0M7UUFDbEMsOEJBQThCO1FBQzlCLHNDQUFzQztRQUN0QyxvQkFBb0I7UUFDcEIscUNBQXFDO1FBQ3JDLDZCQUE2QjtRQUM3QixpQ0FBaUM7UUFDakMsOEJBQThCLGFBSXBCLFlBQVksOEJBNUJ0QixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBQ3RCLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsZ0NBQWdDO1FBQ2hDLDRCQUE0QjtRQUM1Qix5QkFBeUI7UUFDekIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZiwyQkFBMkI7UUFDM0IsdUJBQXVCO1FBQ3ZCLHlCQUF5QjtRQUN6Qix1QkFBdUI7UUFDdkIsMkJBQTJCO1FBQzNCLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFDN0IseUJBQXlCO1FBQ3pCLGtDQUFrQztRQUNsQyw4QkFBOEI7UUFDOUIsc0NBQXNDO1FBQ3RDLG9CQUFvQjtRQUNwQixxQ0FBcUM7UUFDckMsNkJBQTZCO1FBQzdCLGlDQUFpQztRQUNqQyw4QkFBOEI7MkdBUXJCLGFBQWEsWUFKYixDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDOzJGQUlwRCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO29CQUM3RCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNoQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsIFNoYXJlZE1vZHVsZSB9IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgY2F0YWxvZ1JvdXRlcyB9IGZyb20gJy4vY2F0YWxvZy5yb3V0ZXMnO1xyXG5pbXBvcnQgeyBBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcGx5LWZhY2V0LWRpYWxvZy9hcHBseS1mYWNldC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzZXREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtZGV0YWlsL2Fzc2V0LWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldHMvYXNzZXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzaWduVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Fzc2lnbi10by1jaGFubmVsLWRpYWxvZy9hc3NpZ24tdG8tY2hhbm5lbC1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnVsa0FkZEZhY2V0VmFsdWVzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uQ29udGVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1jb250ZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kZXRhaWwvY29sbGVjdGlvbi1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkNvbGxlY3Rpb25zVG9DaGFubmVsQnVsa0FjdGlvbixcclxuICAgIGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbixcclxuICAgIHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWxpc3QvY29sbGVjdGlvbi1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUtbm9kZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVHJlZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXRyZWUvY29sbGVjdGlvbi10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmZpcm1WYXJpYW50RGVsZXRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29uZmlybS12YXJpYW50LWRlbGV0aW9uLWRpYWxvZy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhY2V0RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWRldGFpbC9mYWNldC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVGYWNldHNCdWxrQWN0aW9uLFxyXG4gICAgcmVtb3ZlRmFjZXRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxyXG59IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgRmFjZXRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9nZW5lcmF0ZS1wcm9kdWN0LXZhcmlhbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vcHRpb24tdmFsdWUtaW5wdXQvb3B0aW9uLXZhbHVlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudHNFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzTGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLWxpc3QvcHJvZHVjdC12YXJpYW50cy1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50c1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudHMtdGFibGUvcHJvZHVjdC12YXJpYW50cy10YWJsZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBVcGRhdGVQcm9kdWN0T3B0aW9uRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VwZGF0ZS1wcm9kdWN0LW9wdGlvbi1kaWFsb2cvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmFyaWFudC1wcmljZS1kZXRhaWwvdmFyaWFudC1wcmljZS1kZXRhaWwuY29tcG9uZW50JztcclxuXHJcbmNvbnN0IENBVEFMT0dfQ09NUE9ORU5UUyA9IFtcclxuICAgIFByb2R1Y3RMaXN0Q29tcG9uZW50LFxyXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgIEZhY2V0TGlzdENvbXBvbmVudCxcclxuICAgIEZhY2V0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgR2VuZXJhdGVQcm9kdWN0VmFyaWFudHNDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudHNMaXN0Q29tcG9uZW50LFxyXG4gICAgQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCxcclxuICAgIEFzc2V0TGlzdENvbXBvbmVudCxcclxuICAgIEFzc2V0c0NvbXBvbmVudCxcclxuICAgIFZhcmlhbnRQcmljZURldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25UcmVlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQsXHJcbiAgICBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCxcclxuICAgIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb25maXJtVmFyaWFudERlbGV0aW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQsXHJcbiAgICBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQsXHJcbiAgICBBc3NpZ25Ub0NoYW5uZWxEaWFsb2dDb21wb25lbnQsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKGNhdGFsb2dSb3V0ZXMpXSxcclxuICAgIGV4cG9ydHM6IFsuLi5DQVRBTE9HX0NPTVBPTkVOVFNdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhdGFsb2dNb2R1bGUge1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlOiBCdWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlKSB7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduUHJvZHVjdHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlUHJvZHVjdHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRzVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlRmFjZXRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVGYWNldHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduQ29sbGVjdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVDb2xsZWN0aW9uc0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlQ29sbGVjdGlvbnNCdWxrQWN0aW9uKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -19,7 +19,7 @@ export class ApplyFacetDialogComponent {
19
19
  }
20
20
  }
21
21
  ApplyFacetDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ApplyFacetDialogComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
22
- ApplyFacetDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ApplyFacetDialogComponent, selector: "vdr-apply-facet-dialog", viewQueries: [{ propertyName: "selector", first: true, predicate: FacetValueSelectorComponent, descendants: true }], ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'catalog.add-facets' | translate }}</ng-template>\r\n\r\n<vdr-facet-value-selector\r\n [facets]=\"facets\"\r\n (selectedValuesChange)=\"selectedValues = $event\"\r\n></vdr-facet-value-selector>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"selectValues()\"\r\n [disabled]=\"selectedValues.length === 0\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'catalog.add-facets' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i1.FacetValueSelectorComponent, selector: "vdr-facet-value-selector", inputs: ["facets", "readonly"], outputs: ["selectedValuesChange"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i2.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
+ ApplyFacetDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: ApplyFacetDialogComponent, selector: "vdr-apply-facet-dialog", viewQueries: [{ propertyName: "selector", first: true, predicate: FacetValueSelectorComponent, descendants: true }], ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'catalog.add-facets' | translate }}</ng-template>\r\n\r\n<vdr-facet-value-selector\r\n [facets]=\"facets\"\r\n (selectedValuesChange)=\"selectedValues = $event\"\r\n></vdr-facet-value-selector>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"selectValues()\"\r\n [disabled]=\"selectedValues.length === 0\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'catalog.add-facets' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""], components: [{ type: i1.FacetValueSelectorComponent, selector: "vdr-facet-value-selector", inputs: ["facets", "readonly", "transformControlValueAccessorValue"], outputs: ["selectedValuesChange"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i2.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
23
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: ApplyFacetDialogComponent, decorators: [{
24
24
  type: Component,
25
25
  args: [{ selector: 'vdr-apply-facet-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'catalog.add-facets' | translate }}</ng-template>\r\n\r\n<vdr-facet-value-selector\r\n [facets]=\"facets\"\r\n (selectedValuesChange)=\"selectedValues = $event\"\r\n></vdr-facet-value-selector>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"selectValues()\"\r\n [disabled]=\"selectedValues.length === 0\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'catalog.add-facets' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [""] }]
@@ -78,10 +78,10 @@ export class AssetsComponent {
78
78
  }
79
79
  }
80
80
  AssetsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AssetsComponent, deps: [{ token: i1.ModalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
81
- AssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AssetsComponent, selector: "vdr-assets", inputs: { assetsSetter: ["assets", "assetsSetter"], featuredAsset: "featuredAsset", compact: "compact", updatePermissions: "updatePermissions" }, outputs: { change: "change" }, host: { properties: { "class.compact": "this.compact" } }, ngImport: i0, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);cursor:pointer}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"], components: [{ type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i4.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "assetPreview": i1.AssetPreviewPipe, "translate": i5.TranslatePipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
81
+ AssetsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AssetsComponent, selector: "vdr-assets", inputs: { assetsSetter: ["assets", "assetsSetter"], featuredAsset: "featuredAsset", compact: "compact", updatePermissions: "updatePermissions" }, outputs: { change: "change" }, host: { properties: { "class.compact": "this.compact" } }, ngImport: i0, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer;border-radius:var(--border-radius-img)}.featured-asset img{border-radius:var(--border-radius-img)}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);border-radius:var(--border-radius-img);cursor:pointer}.all-assets .asset-thumb img{width:50px;height:50px;border-radius:var(--border-radius-img)}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500);border-radius:calc(var(--border-radius-img) + 2px)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"], components: [{ type: i1.DropdownComponent, selector: "vdr-dropdown", inputs: ["manualToggle"] }, { type: i1.DropdownMenuComponent, selector: "vdr-dropdown-menu", inputs: ["vdrPosition", "customClasses"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.ClrIconCustomTag, selector: "clr-icon" }, { type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.IfPermissionsDirective, selector: "[vdrIfPermissions]", inputs: ["vdrIfPermissions", "vdrIfPermissionsElse"] }, { type: i4.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i4.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i1.DropdownTriggerDirective, selector: "[vdrDropdownTrigger]" }, { type: i1.DropdownItemDirective, selector: "[vdrDropdownItem]" }], pipes: { "assetPreview": i1.AssetPreviewPipe, "translate": i5.TranslatePipe, "hasPermission": i1.HasPermissionPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
82
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AssetsComponent, decorators: [{
83
83
  type: Component,
84
- args: [{ selector: 'vdr-assets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);cursor:pointer}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"] }]
84
+ args: [{ selector: 'vdr-assets', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"card\" *ngIf=\"!compact; else compactView\">\r\n <div class=\"card-img\">\r\n <div class=\"featured-asset\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'small'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"image\" size=\"128\"></clr-icon>\r\n <div>{{ 'catalog.no-featured-asset' | translate }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-block\"><ng-container *ngTemplateOutlet=\"assetList\"></ng-container></div>\r\n <div class=\"card-footer\" *vdrIfPermissions=\"updatePermissions\">\r\n <button class=\"btn\" (click)=\"selectAssets()\">\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n\r\n<ng-template #compactView>\r\n <div class=\"featured-asset compact\">\r\n <img\r\n *ngIf=\"featuredAsset\"\r\n [src]=\"featuredAsset | assetPreview:'thumb'\"\r\n (click)=\"previewAsset(featuredAsset)\"\r\n />\r\n\r\n <div class=\"placeholder\" *ngIf=\"!featuredAsset\" (click)=\"selectAssets()\"><clr-icon shape=\"image\" size=\"150\"></clr-icon></div>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"assetList\"></ng-container>\r\n <button\r\n *vdrIfPermissions=\"updatePermissions\"\r\n class=\"compact-select btn btn-icon btn-sm btn-block\"\r\n [title]=\"'asset.add-asset' | translate\"\r\n (click)=\"selectAssets()\"\r\n >\r\n <clr-icon shape=\"attachment\"></clr-icon>\r\n {{ 'asset.add-asset' | translate }}\r\n </button>\r\n</ng-template>\r\n\r\n<ng-template #assetList>\r\n <div class=\"all-assets\" [class.compact]=\"compact\" cdkDropListGroup>\r\n <div\r\n *ngFor=\"let asset of assets; let index = index\"\r\n class=\"drop-list\"\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n [cdkDropListData]=\"index\"\r\n [cdkDropListDisabled]=\"!(updatePermissions | hasPermission)\"\r\n (cdkDropListDropped)=\"dropListDropped($event)\"\r\n >\r\n <vdr-dropdown cdkDrag>\r\n <div\r\n class=\"asset-thumb\"\r\n vdrDropdownTrigger\r\n [class.featured]=\"isFeatured(asset)\"\r\n [title]=\"\"\r\n tabindex=\"0\"\r\n >\r\n <img [src]=\"asset | assetPreview:'tiny'\" />\r\n </div>\r\n <vdr-dropdown-menu vdrPosition=\"bottom-right\">\r\n <button type=\"button\" vdrDropdownItem (click)=\"previewAsset(asset)\">\r\n {{ 'asset.preview' | translate }}\r\n </button>\r\n <button\r\n type=\"button\"\r\n [disabled]=\"isFeatured(asset) || !(updatePermissions | hasPermission)\"\r\n vdrDropdownItem\r\n (click)=\"setAsFeatured(asset)\"\r\n >\r\n {{ 'asset.set-as-featured-asset' | translate }}\r\n </button>\r\n <div class=\"dropdown-divider\"></div>\r\n <button\r\n type=\"button\"\r\n class=\"remove-asset\"\r\n vdrDropdownItem\r\n [disabled]=\"!(updatePermissions | hasPermission)\"\r\n (click)=\"removeAsset(asset)\"\r\n >\r\n {{ 'asset.remove-asset' | translate }}\r\n </button>\r\n </vdr-dropdown-menu>\r\n </vdr-dropdown>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{width:340px;display:block}:host.compact{width:162px}.placeholder{text-align:center;color:var(--color-grey-300)}.featured-asset{text-align:center;background:var(--color-component-bg-200);padding:6px;cursor:pointer;border-radius:var(--border-radius-img)}.featured-asset img{border-radius:var(--border-radius-img)}.featured-asset.compact{width:100%;min-height:40px;position:relative;padding:6px}.featured-asset .compact-select{position:absolute;bottom:6px;right:6px;margin:0}.all-assets{display:flex;flex-wrap:wrap}.all-assets .drop-list{min-width:60px}.all-assets .asset-thumb{margin:3px;padding:0;border:2px solid var(--color-component-border-100);border-radius:var(--border-radius-img);cursor:pointer}.all-assets .asset-thumb img{width:50px;height:50px;border-radius:var(--border-radius-img)}.all-assets .asset-thumb.featured{border-color:var(--color-primary-500);border-radius:calc(var(--border-radius-img) + 2px)}.all-assets .remove-asset{color:var(--color-warning-500)}.all-assets.compact .drop-list{min-width:54px}.all-assets.compact .asset-thumb{margin:1px;border-width:1px}.all-assets.compact .cdk-drag-placeholder,.all-assets.compact .cdk-drag-placeholder .asset-thumb{width:50px}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.all-assets.cdk-drop-list-dragging vdr-dropdown:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drop-list-dragging>*:not(.cdk-drag-placeholder){display:none}\n"] }]
85
85
  }], ctorParameters: function () { return [{ type: i1.ModalService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { assetsSetter: [{
86
86
  type: Input,
87
87
  args: ['assets']
@@ -57,6 +57,7 @@ export class AssignProductsToChannelDialogComponent {
57
57
  .subscribe(() => {
58
58
  this.notificationService.success(_('catalog.assign-product-to-channel-success'), {
59
59
  channel: selectedChannel.code,
60
+ count: this.productIds.length,
60
61
  });
61
62
  this.resolveWith(true);
62
63
  });
@@ -71,6 +72,8 @@ export class AssignProductsToChannelDialogComponent {
71
72
  .subscribe(() => {
72
73
  this.notificationService.success(_('catalog.assign-variant-to-channel-success'), {
73
74
  channel: selectedChannel.code,
75
+ // tslint:disable-next-line:no-non-null-assertion
76
+ count: this.productVariantIds.length,
74
77
  });
75
78
  this.resolveWith(true);
76
79
  });
@@ -101,4 +104,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImpor
101
104
  type: Component,
102
105
  args: [{ selector: 'vdr-assign-products-to-channel-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n <ng-container *ngIf=\"isProductVariantMode; else productModeTitle\">{{\r\n 'catalog.assign-variants-to-channel' | translate\r\n }}</ng-container>\r\n <ng-template #productModeTitle>{{ 'catalog.assign-products-to-channel' | translate }}</ng-template>\r\n</ng-template>\r\n\r\n<div class=\"flex\">\r\n <clr-input-container>\r\n <label>{{ 'common.channel' | translate }}</label>\r\n <vdr-channel-assignment-control\r\n clrInput\r\n [multiple]=\"false\"\r\n [includeDefaultChannel]=\"false\"\r\n [disableChannelIds]=\"currentChannelIds\"\r\n [formControl]=\"selectedChannelIdControl\"\r\n ></vdr-channel-assignment-control>\r\n </clr-input-container>\r\n <div class=\"flex-spacer\"></div>\r\n <clr-input-container>\r\n <label>{{ 'catalog.price-conversion-factor' | translate }}</label>\r\n <input clrInput type=\"number\" min=\"0\" max=\"99999\" [formControl]=\"priceFactorControl\" />\r\n </clr-input-container>\r\n</div>\r\n\r\n<div class=\"channel-price-preview\">\r\n <label class=\"clr-control-label\">{{ 'catalog.channel-price-preview' | translate }}</label>\r\n <table class=\"table\">\r\n <thead>\r\n <tr>\r\n <th>{{ 'common.name' | translate }}</th>\r\n <th>\r\n {{\r\n 'catalog.price-in-channel'\r\n | translate: { channel: currentChannel?.code | channelCodeToLabel | translate }\r\n }}\r\n </th>\r\n <th>\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.price-in-channel' | translate: { channel: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of variantsPreview$ | async\">\r\n <td>{{ row.name }}</td>\r\n <td>{{ row.price | localeCurrency: currentChannel?.currencyCode }}</td>\r\n <td>\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noChannelSelected\">\r\n {{ row.pricePreview | localeCurrency: selectedChannel?.currencyCode }}\r\n </ng-template>\r\n <ng-template #noChannelSelected> - </ng-template>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n</div>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"assign()\" [disabled]=\"!selectedChannel\" class=\"btn btn-primary\">\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.assign-to-named-channel' | translate: { channelCode: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: ["vdr-channel-assignment-control{min-width:200px}.channel-price-preview{margin-top:24px}.channel-price-preview table.table{margin-top:6px}\n"] }]
103
106
  }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i1.NotificationService }]; } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFRdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVVoRCxNQUFNLE9BQU8sc0NBQXNDO0lBa0IvQyxZQUFvQixXQUF3QixFQUFVLG1CQUF3QztRQUExRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFaOUYsdUJBQWtCLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQVdvRCxDQUFDO0lBSmxHLElBQUksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixJQUFJLElB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RSxFQUFFLEVBQUU7Z0JBQ3ZCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDM0QsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FDNUUsQ0FBQztZQUNOLENBQUMsQ0FBQztpQkFDRCxTQUFTLEVBQUUsQ0FBQztZQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztTQUM3QztRQUNELE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7bUlBNUdRLHNDQUFzQzt1SEFBdEMsc0NBQXNDLDZFQ3JCbkQsdXpHQXlFQTsyRkRwRGEsc0NBQXNDO2tCQU5sRCxTQUFTOytCQUNJLHVDQUF1QyxtQkFHaEMsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgRGF0YVNlcnZpY2UsXHJcbiAgICBEaWFsb2csXHJcbiAgICBHZXRDaGFubmVsc1F1ZXJ5LFxyXG4gICAgTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgIFByb2R1Y3RWYXJpYW50RnJhZ21lbnQsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGZyb20sIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzdGFydFdpdGggfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG50eXBlIENoYW5uZWwgPSBHZXRDaGFubmVsc1F1ZXJ5WydjaGFubmVscyddW251bWJlcl07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWFzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgRGlhbG9nPGFueT4ge1xyXG4gICAgc2VsZWN0ZWRDaGFubmVsOiBDaGFubmVsIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgIGN1cnJlbnRDaGFubmVsOiBDaGFubmVsO1xyXG4gICAgYXZhaWxhYmxlQ2hhbm5lbHM6IENoYW5uZWxbXTtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogYW55KSA9PiB2b2lkO1xyXG4gICAgdmFyaWFudHNQcmV2aWV3JDogT2JzZXJ2YWJsZTxBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgcHJpY2U6IG51bWJlcjsgcHJpY2VQcmV2aWV3OiBudW1iZXIgfT4+O1xyXG4gICAgcHJpY2VGYWN0b3JDb250cm9sID0gbmV3IEZvcm1Db250cm9sKDEpO1xyXG4gICAgc2VsZWN0ZWRDaGFubmVsSWRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XHJcblxyXG4gICAgLy8gYXNzaWduZWQgYnkgTW9kYWxTZXJ2aWNlLmZyb21Db21wb25lbnQoKSBjYWxsXHJcbiAgICBwcm9kdWN0SWRzOiBzdHJpbmdbXTtcclxuICAgIHByb2R1Y3RWYXJpYW50SWRzOiBzdHJpbmdbXSB8IHVuZGVmaW5lZDtcclxuICAgIGN1cnJlbnRDaGFubmVsSWRzOiBzdHJpbmdbXTtcclxuXHJcbiAgICBnZXQgaXNQcm9kdWN0VmFyaWFudE1vZGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJvZHVjdFZhcmlhbnRJZHMgIT0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSwgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZUNoYW5uZWxJZCQgPSB0aGlzLmRhdGFTZXJ2aWNlLmNsaWVudFxyXG4gICAgICAgICAgICAudXNlclN0YXR1cygpXHJcbiAgICAgICAgICAgIC5tYXBTaW5nbGUoKHsgdXNlclN0YXR1cyB9KSA9PiB1c2VyU3RhdHVzLmFjdGl2ZUNoYW5uZWxJZCk7XHJcbiAgICAgICAgY29uc3QgYWxsQ2hhbm5lbHMkID0gdGhpcy5kYXRhU2VydmljZS5zZXR0aW5ncy5nZXRDaGFubmVscygpLm1hcFNpbmdsZShkYXRhID0+IGRhdGEuY2hhbm5lbHMpO1xyXG5cclxuICAgICAgICBjb21iaW5lTGF0ZXN0KGFjdGl2ZUNoYW5uZWxJZCQsIGFsbENoYW5uZWxzJCkuc3Vic2NyaWJlKChbYWN0aXZlQ2hhbm5lbElkLCBjaGFubmVsc10pID0+IHtcclxuICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICB0aGlzLmN1cnJlbnRDaGFubmVsID0gY2hhbm5lbHMuZmluZChjID0+IGMuaWQgPT09IGFjdGl2ZUNoYW5uZWxJZCkhO1xyXG4gICAgICAgICAgICB0aGlzLmF2YWlsYWJsZUNoYW5uZWxzID0gY2hhbm5lbHM7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDaGFubmVsSWRDb250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoaWRzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RDaGFubmVsKGlkcyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMudmFyaWFudHNQcmV2aWV3JCA9IGNvbWJpbmVMYXRlc3QoXHJcbiAgICAgICAgICAgIGZyb20odGhpcy5nZXRUb3BWYXJpYW50cygxMCkpLFxyXG4gICAgICAgICAgICB0aGlzLnByaWNlRmFjdG9yQ29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgoMSkpLFxyXG4gICAgICAgICkucGlwZShcclxuICAgICAgICAgICAgbWFwKChbdmFyaWFudHMsIGZhY3Rvcl0pID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YXJpYW50cy5tYXAodiA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgIGlkOiB2LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHYubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBwcmljZTogdi5wcmljZSxcclxuICAgICAgICAgICAgICAgICAgICBwcmljZVByZXZpZXc6IHYucHJpY2UgKiArZmFjdG9yLFxyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHNlbGVjdENoYW5uZWwoY2hhbm5lbElkczogc3RyaW5nW10pIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbm5lbCA9IHRoaXMuYXZhaWxhYmxlQ2hhbm5lbHMuZmluZChjID0+IGMuaWQgPT09IGNoYW5uZWxJZHNbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzc2lnbigpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RlZENoYW5uZWwgPSB0aGlzLnNlbGVjdGVkQ2hhbm5lbDtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRDaGFubmVsKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc1Byb2R1Y3RWYXJpYW50TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgLmFzc2lnblByb2R1Y3RzVG9DaGFubmVsKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbElkOiBzZWxlY3RlZENoYW5uZWwuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RJZHM6IHRoaXMucHJvZHVjdElkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJpY2VGYWN0b3I6ICt0aGlzLnByaWNlRmFjdG9yQ29udHJvbC52YWx1ZSxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcyhfKCdjYXRhbG9nLmFzc2lnbi1wcm9kdWN0LXRvLWNoYW5uZWwtc3VjY2VzcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsOiBzZWxlY3RlZENoYW5uZWwuY29kZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9kdWN0VmFyaWFudElkcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgLmFzc2lnblZhcmlhbnRzVG9DaGFubmVsKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbElkOiBzZWxlY3RlZENoYW5uZWwuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50SWRzOiB0aGlzLnByb2R1Y3RWYXJpYW50SWRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmljZUZhY3RvcjogK3RoaXMucHJpY2VGYWN0b3JDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NhdGFsb2cuYXNzaWduLXZhcmlhbnQtdG8tY2hhbm5lbC1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IHNlbGVjdGVkQ2hhbm5lbC5jb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh0cnVlKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYXN5bmMgZ2V0VG9wVmFyaWFudHModGFrZTogbnVtYmVyKTogUHJvbWlzZTxQcm9kdWN0VmFyaWFudEZyYWdtZW50W10+IHtcclxuICAgICAgICBjb25zdCB2YXJpYW50czogUHJvZHVjdFZhcmlhbnRGcmFnbWVudFtdID0gW107XHJcblxyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5wcm9kdWN0SWRzLmxlbmd0aCAmJiB2YXJpYW50cy5sZW5ndGggPCB0YWtlOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgcHJvZHVjdFZhcmlhbnRzID0gYXdhaXQgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAuZ2V0UHJvZHVjdCh0aGlzLnByb2R1Y3RJZHNbaV0sIHsgdGFrZTogdGhpcy5pc1Byb2R1Y3RWYXJpYW50TW9kZSA/IHVuZGVmaW5lZCA6IHRha2UgfSlcclxuICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUoKHsgcHJvZHVjdCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgX3ZhcmlhbnRzID0gcHJvZHVjdCA/IHByb2R1Y3QudmFyaWFudExpc3QuaXRlbXMgOiBbXTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3ZhcmlhbnRzLmZpbHRlcih2ID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9kdWN0VmFyaWFudE1vZGUgPyB0aGlzLnByb2R1Y3RWYXJpYW50SWRzPy5pbmNsdWRlcyh2LmlkKSA6IHRydWUsXHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHZhcmlhbnRzLnB1c2goLi4uKHByb2R1Y3RWYXJpYW50cyB8fCBbXSkpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdmFyaWFudHMuc2xpY2UoMCwgdGFrZSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzUHJvZHVjdFZhcmlhbnRNb2RlOyBlbHNlIHByb2R1Y3RNb2RlVGl0bGVcIj57e1xyXG4gICAgICAgICdjYXRhbG9nLmFzc2lnbi12YXJpYW50cy10by1jaGFubmVsJyB8IHRyYW5zbGF0ZVxyXG4gICAgfX08L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy10ZW1wbGF0ZSAjcHJvZHVjdE1vZGVUaXRsZT57eyAnY2F0YWxvZy5hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbCcgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXhcIj5cclxuICAgIDxjbHItaW5wdXQtY29udGFpbmVyPlxyXG4gICAgICAgIDxsYWJlbD57eyAnY29tbW9uLmNoYW5uZWwnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICA8dmRyLWNoYW5uZWwtYXNzaWdubWVudC1jb250cm9sXHJcbiAgICAgICAgICAgIGNscklucHV0XHJcbiAgICAgICAgICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtpbmNsdWRlRGVmYXVsdENoYW5uZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZUNoYW5uZWxJZHNdPVwiY3VycmVudENoYW5uZWxJZHNcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VsZWN0ZWRDaGFubmVsSWRDb250cm9sXCJcclxuICAgICAgICA+PC92ZHItY2hhbm5lbC1hc3NpZ25tZW50LWNvbnRyb2w+XHJcbiAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1zcGFjZXJcIj48L2Rpdj5cclxuICAgIDxjbHItaW5wdXQtY29udGFpbmVyPlxyXG4gICAgICAgIDxsYWJlbD57eyAnY2F0YWxvZy5wcmljZS1jb252ZXJzaW9uLWZhY3RvcicgfCB0cmFuc2xhdGUgfX08L2xhYmVsPlxyXG4gICAgICAgIDxpbnB1dCBjbHJJbnB1dCB0eXBlPVwibnVtYmVyXCIgbWluPVwiMFwiIG1heD1cIjk5OTk5XCIgW2Zvcm1Db250cm9sXT1cInByaWNlRmFjdG9yQ29udHJvbFwiIC8+XHJcbiAgICA8L2Nsci1pbnB1dC1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBjbGFzcz1cImNoYW5uZWwtcHJpY2UtcHJldmlld1wiPlxyXG4gICAgPGxhYmVsIGNsYXNzPVwiY2xyLWNvbnRyb2wtbGFiZWxcIj57eyAnY2F0YWxvZy5jaGFubmVsLXByaWNlLXByZXZpZXcnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlXCI+XHJcbiAgICAgICAgPHRoZWFkPlxyXG4gICAgICAgICAgICA8dHI+XHJcbiAgICAgICAgICAgICAgICA8dGg+e3sgJ2NvbW1vbi5uYW1lJyB8IHRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgJ2NhdGFsb2cucHJpY2UtaW4tY2hhbm5lbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlOiB7IGNoYW5uZWw6IGN1cnJlbnRDaGFubmVsPy5jb2RlIHwgY2hhbm5lbENvZGVUb0xhYmVsIHwgdHJhbnNsYXRlIH1cclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgIDx0aD5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0ZWRDaGFubmVsXCIgW25nSWZFbHNlXT1cIm5vU2VsZWN0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLnByaWNlLWluLWNoYW5uZWwnIHwgdHJhbnNsYXRlOiB7IGNoYW5uZWw6IHNlbGVjdGVkQ2hhbm5lbD8uY29kZSB9IH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vU2VsZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5uby1jaGFubmVsLXNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcbiAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHJvdyBvZiB2YXJpYW50c1ByZXZpZXckIHwgYXN5bmNcIj5cclxuICAgICAgICAgICAgICAgIDx0ZD57eyByb3cubmFtZSB9fTwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgcm93LnByaWNlIHwgbG9jYWxlQ3VycmVuY3k6IGN1cnJlbnRDaGFubmVsPy5jdXJyZW5jeUNvZGUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3RlZENoYW5uZWxcIiBbbmdJZkVsc2VdPVwibm9DaGFubmVsU2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgcm93LnByaWNlUHJldmlldyB8IGxvY2FsZUN1cnJlbmN5OiBzZWxlY3RlZENoYW5uZWw/LmN1cnJlbmN5Q29kZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0NoYW5uZWxTZWxlY3RlZD4gLSA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3Rib2R5PlxyXG4gICAgPC90YWJsZT5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiYXNzaWduKClcIiBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkQ2hhbm5lbFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGVkQ2hhbm5lbFwiIFtuZ0lmRWxzZV09XCJub1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICB7eyAnY2F0YWxvZy5hc3NpZ24tdG8tbmFtZWQtY2hhbm5lbCcgfCB0cmFuc2xhdGU6IHsgY2hhbm5lbENvZGU6IHNlbGVjdGVkQ2hhbm5lbD8uY29kZSB9IH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vU2VsZWN0aW9uPlxyXG4gICAgICAgICAgICB7eyAnY2F0YWxvZy5uby1jaGFubmVsLXNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFRdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7OztBQVVoRCxNQUFNLE9BQU8sc0NBQXNDO0lBa0IvQyxZQUFvQixXQUF3QixFQUFVLG1CQUF3QztRQUExRSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFaOUYsdUJBQWtCLEdBQUcsSUFBSSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsNkJBQXdCLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQztJQVdvRCxDQUFDO0lBSmxHLElBQUksb0JBQW9CO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixJQUFJLElB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QUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztpQkFDdEYsU0FBUyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFO2dCQUN2QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzNELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUN4QixJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzVFLENBQUM7WUFDTixDQUFDLENBQUM7aUJBQ0QsU0FBUyxFQUFFLENBQUM7WUFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7O21JQS9HUSxzQ0FBc0M7dUhBQXRDLHNDQUFzQyw2RUNyQm5ELHV6R0F5RUE7MkZEcERhLHNDQUFzQztrQkFObEQsU0FBUzsrQkFDSSx1Q0FBdUMsbUJBR2hDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHtcclxuICAgIERhdGFTZXJ2aWNlLFxyXG4gICAgRGlhbG9nLFxyXG4gICAgR2V0Q2hhbm5lbHNRdWVyeSxcclxuICAgIE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBQcm9kdWN0VmFyaWFudEZyYWdtZW50LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxudHlwZSBDaGFubmVsID0gR2V0Q2hhbm5lbHNRdWVyeVsnY2hhbm5lbHMnXVtudW1iZXJdO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZzxhbnk+IHtcclxuICAgIHNlbGVjdGVkQ2hhbm5lbDogQ2hhbm5lbCB8IG51bGwgfCB1bmRlZmluZWQ7XHJcbiAgICBjdXJyZW50Q2hhbm5lbDogQ2hhbm5lbDtcclxuICAgIGF2YWlsYWJsZUNoYW5uZWxzOiBDaGFubmVsW107XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IGFueSkgPT4gdm9pZDtcclxuICAgIHZhcmlhbnRzUHJldmlldyQ6IE9ic2VydmFibGU8QXJyYXk8eyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IHByaWNlOiBudW1iZXI7IHByaWNlUHJldmlldzogbnVtYmVyIH0+PjtcclxuICAgIHByaWNlRmFjdG9yQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgxKTtcclxuICAgIHNlbGVjdGVkQ2hhbm5lbElkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICAgIC8vIGFzc2lnbmVkIGJ5IE1vZGFsU2VydmljZS5mcm9tQ29tcG9uZW50KCkgY2FsbFxyXG4gICAgcHJvZHVjdElkczogc3RyaW5nW107XHJcbiAgICBwcm9kdWN0VmFyaWFudElkczogc3RyaW5nW10gfCB1bmRlZmluZWQ7XHJcbiAgICBjdXJyZW50Q2hhbm5lbElkczogc3RyaW5nW107XHJcblxyXG4gICAgZ2V0IGlzUHJvZHVjdFZhcmlhbnRNb2RlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3RWYXJpYW50SWRzICE9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICBjb25zdCBhY3RpdmVDaGFubmVsSWQkID0gdGhpcy5kYXRhU2VydmljZS5jbGllbnRcclxuICAgICAgICAgICAgLnVzZXJTdGF0dXMoKVxyXG4gICAgICAgICAgICAubWFwU2luZ2xlKCh7IHVzZXJTdGF0dXMgfSkgPT4gdXNlclN0YXR1cy5hY3RpdmVDaGFubmVsSWQpO1xyXG4gICAgICAgIGNvbnN0IGFsbENoYW5uZWxzJCA9IHRoaXMuZGF0YVNlcnZpY2Uuc2V0dGluZ3MuZ2V0Q2hhbm5lbHMoKS5tYXBTaW5nbGUoZGF0YSA9PiBkYXRhLmNoYW5uZWxzKTtcclxuXHJcbiAgICAgICAgY29tYmluZUxhdGVzdChhY3RpdmVDaGFubmVsSWQkLCBhbGxDaGFubmVscyQpLnN1YnNjcmliZSgoW2FjdGl2ZUNoYW5uZWxJZCwgY2hhbm5lbHNdKSA9PiB7XHJcbiAgICAgICAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1ub24tbnVsbC1hc3NlcnRpb25cclxuICAgICAgICAgICAgdGhpcy5jdXJyZW50Q2hhbm5lbCA9IGNoYW5uZWxzLmZpbmQoYyA9PiBjLmlkID09PSBhY3RpdmVDaGFubmVsSWQpITtcclxuICAgICAgICAgICAgdGhpcy5hdmFpbGFibGVDaGFubmVscyA9IGNoYW5uZWxzO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2hhbm5lbElkQ29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGlkcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0Q2hhbm5lbChpZHMpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLnZhcmlhbnRzUHJldmlldyQgPSBjb21iaW5lTGF0ZXN0KFxyXG4gICAgICAgICAgICBmcm9tKHRoaXMuZ2V0VG9wVmFyaWFudHMoMTApKSxcclxuICAgICAgICAgICAgdGhpcy5wcmljZUZhY3RvckNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKDEpKSxcclxuICAgICAgICApLnBpcGUoXHJcbiAgICAgICAgICAgIG1hcCgoW3ZhcmlhbnRzLCBmYWN0b3JdKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFyaWFudHMubWFwKHYgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICBpZDogdi5pZCxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiB2Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2U6IHYucHJpY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgcHJpY2VQcmV2aWV3OiB2LnByaWNlICogK2ZhY3RvcixcclxuICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RDaGFubmVsKGNoYW5uZWxJZHM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5uZWwgPSB0aGlzLmF2YWlsYWJsZUNoYW5uZWxzLmZpbmQoYyA9PiBjLmlkID09PSBjaGFubmVsSWRzWzBdKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3NpZ24oKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDaGFubmVsID0gdGhpcy5zZWxlY3RlZENoYW5uZWw7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhbm5lbCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNQcm9kdWN0VmFyaWFudE1vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgICAgIC5hc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxJZDogc2VsZWN0ZWRDaGFubmVsLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9kdWN0SWRzOiB0aGlzLnByb2R1Y3RJZHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaWNlRmFjdG9yOiArdGhpcy5wcmljZUZhY3RvckNvbnRyb2wudmFsdWUsXHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoXygnY2F0YWxvZy5hc3NpZ24tcHJvZHVjdC10by1jaGFubmVsLXN1Y2Nlc3MnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbDogc2VsZWN0ZWRDaGFubmVsLmNvZGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudDogdGhpcy5wcm9kdWN0SWRzLmxlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5wcm9kdWN0VmFyaWFudElkcykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgLmFzc2lnblZhcmlhbnRzVG9DaGFubmVsKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbElkOiBzZWxlY3RlZENoYW5uZWwuaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3RWYXJpYW50SWRzOiB0aGlzLnByb2R1Y3RWYXJpYW50SWRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmljZUZhY3RvcjogK3RoaXMucHJpY2VGYWN0b3JDb250cm9sLnZhbHVlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zdWNjZXNzKF8oJ2NhdGFsb2cuYXNzaWduLXZhcmlhbnQtdG8tY2hhbm5lbC1zdWNjZXNzJyksIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw6IHNlbGVjdGVkQ2hhbm5lbC5jb2RlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW5vbi1udWxsLWFzc2VydGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQ6IHRoaXMucHJvZHVjdFZhcmlhbnRJZHMhLmxlbmd0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzb2x2ZVdpdGgodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2FuY2VsKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGFzeW5jIGdldFRvcFZhcmlhbnRzKHRha2U6IG51bWJlcik6IFByb21pc2U8UHJvZHVjdFZhcmlhbnRGcmFnbWVudFtdPiB7XHJcbiAgICAgICAgY29uc3QgdmFyaWFudHM6IFByb2R1Y3RWYXJpYW50RnJhZ21lbnRbXSA9IFtdO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMucHJvZHVjdElkcy5sZW5ndGggJiYgdmFyaWFudHMubGVuZ3RoIDwgdGFrZTsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByb2R1Y3RWYXJpYW50cyA9IGF3YWl0IHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdFxyXG4gICAgICAgICAgICAgICAgLmdldFByb2R1Y3QodGhpcy5wcm9kdWN0SWRzW2ldLCB7IHRha2U6IHRoaXMuaXNQcm9kdWN0VmFyaWFudE1vZGUgPyB1bmRlZmluZWQgOiB0YWtlIH0pXHJcbiAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IHByb2R1Y3QgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IF92YXJpYW50cyA9IHByb2R1Y3QgPyBwcm9kdWN0LnZhcmlhbnRMaXN0Lml0ZW1zIDogW107XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF92YXJpYW50cy5maWx0ZXIodiA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzUHJvZHVjdFZhcmlhbnRNb2RlID8gdGhpcy5wcm9kdWN0VmFyaWFudElkcz8uaW5jbHVkZXModi5pZCkgOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgICAgICAgICB2YXJpYW50cy5wdXNoKC4uLihwcm9kdWN0VmFyaWFudHMgfHwgW10pKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhcmlhbnRzLnNsaWNlKDAsIHRha2UpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1Byb2R1Y3RWYXJpYW50TW9kZTsgZWxzZSBwcm9kdWN0TW9kZVRpdGxlXCI+e3tcclxuICAgICAgICAnY2F0YWxvZy5hc3NpZ24tdmFyaWFudHMtdG8tY2hhbm5lbCcgfCB0cmFuc2xhdGVcclxuICAgIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI3Byb2R1Y3RNb2RlVGl0bGU+e3sgJ2NhdGFsb2cuYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwnIHwgdHJhbnNsYXRlIH19PC9uZy10ZW1wbGF0ZT5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICA8Y2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICA8bGFiZWw+e3sgJ2NvbW1vbi5jaGFubmVsJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICAgICAgPHZkci1jaGFubmVsLWFzc2lnbm1lbnQtY29udHJvbFxyXG4gICAgICAgICAgICBjbHJJbnB1dFxyXG4gICAgICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbaW5jbHVkZURlZmF1bHRDaGFubmVsXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVDaGFubmVsSWRzXT1cImN1cnJlbnRDaGFubmVsSWRzXCJcclxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInNlbGVjdGVkQ2hhbm5lbElkQ29udHJvbFwiXHJcbiAgICAgICAgPjwvdmRyLWNoYW5uZWwtYXNzaWdubWVudC1jb250cm9sPlxyXG4gICAgPC9jbHItaW5wdXQtY29udGFpbmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtc3BhY2VyXCI+PC9kaXY+XHJcbiAgICA8Y2xyLWlucHV0LWNvbnRhaW5lcj5cclxuICAgICAgICA8bGFiZWw+e3sgJ2NhdGFsb2cucHJpY2UtY29udmVyc2lvbi1mYWN0b3InIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cclxuICAgICAgICA8aW5wdXQgY2xySW5wdXQgdHlwZT1cIm51bWJlclwiIG1pbj1cIjBcIiBtYXg9XCI5OTk5OVwiIFtmb3JtQ29udHJvbF09XCJwcmljZUZhY3RvckNvbnRyb2xcIiAvPlxyXG4gICAgPC9jbHItaW5wdXQtY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgY2xhc3M9XCJjaGFubmVsLXByaWNlLXByZXZpZXdcIj5cclxuICAgIDxsYWJlbCBjbGFzcz1cImNsci1jb250cm9sLWxhYmVsXCI+e3sgJ2NhdGFsb2cuY2hhbm5lbC1wcmljZS1wcmV2aWV3JyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPlxyXG4gICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgPHRoPnt7ICdjb21tb24ubmFtZScgfCB0cmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICAgICAgPHRoPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdjYXRhbG9nLnByaWNlLWluLWNoYW5uZWwnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZTogeyBjaGFubmVsOiBjdXJyZW50Q2hhbm5lbD8uY29kZSB8IGNoYW5uZWxDb2RlVG9MYWJlbCB8IHRyYW5zbGF0ZSB9XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgICA8dGg+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGVkQ2hhbm5lbFwiIFtuZ0lmRWxzZV09XCJub1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAnY2F0YWxvZy5wcmljZS1pbi1jaGFubmVsJyB8IHRyYW5zbGF0ZTogeyBjaGFubmVsOiBzZWxlY3RlZENoYW5uZWw/LmNvZGUgfSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1NlbGVjdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cubm8tY2hhbm5lbC1zZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgdmFyaWFudHNQcmV2aWV3JCB8IGFzeW5jXCI+XHJcbiAgICAgICAgICAgICAgICA8dGQ+e3sgcm93Lm5hbWUgfX08L3RkPlxyXG4gICAgICAgICAgICAgICAgPHRkPnt7IHJvdy5wcmljZSB8IGxvY2FsZUN1cnJlbmN5OiBjdXJyZW50Q2hhbm5lbD8uY3VycmVuY3lDb2RlIH19PC90ZD5cclxuICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwic2VsZWN0ZWRDaGFubmVsXCIgW25nSWZFbHNlXT1cIm5vQ2hhbm5lbFNlbGVjdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJvdy5wcmljZVByZXZpZXcgfCBsb2NhbGVDdXJyZW5jeTogc2VsZWN0ZWRDaGFubmVsPy5jdXJyZW5jeUNvZGUgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9DaGFubmVsU2VsZWN0ZWQ+IC0gPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgPC90Ym9keT5cclxuICAgIDwvdGFibGU+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImFzc2lnbigpXCIgW2Rpc2FibGVkXT1cIiFzZWxlY3RlZENoYW5uZWxcIiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiPlxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzZWxlY3RlZENoYW5uZWxcIiBbbmdJZkVsc2VdPVwibm9TZWxlY3Rpb25cIj5cclxuICAgICAgICAgICAge3sgJ2NhdGFsb2cuYXNzaWduLXRvLW5hbWVkLWNoYW5uZWwnIHwgdHJhbnNsYXRlOiB7IGNoYW5uZWxDb2RlOiBzZWxlY3RlZENoYW5uZWw/LmNvZGUgfSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub1NlbGVjdGlvbj5cclxuICAgICAgICAgICAge3sgJ2NhdGFsb2cubm8tY2hhbm5lbC1zZWxlY3RlZCcgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9idXR0b24+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -0,0 +1,50 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FormControl } from '@angular/forms';
3
+ import { combineLatest } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@vendure/admin-ui/core";
6
+ import * as i2 from "@clr/angular";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@ngx-translate/core";
10
+ export class AssignToChannelDialogComponent {
11
+ // assigned by ModalService.fromComponent() call
12
+ constructor(dataService, notificationService) {
13
+ this.dataService = dataService;
14
+ this.notificationService = notificationService;
15
+ this.selectedChannelIdControl = new FormControl();
16
+ }
17
+ ngOnInit() {
18
+ const activeChannelId$ = this.dataService.client
19
+ .userStatus()
20
+ .mapSingle(({ userStatus }) => userStatus.activeChannelId);
21
+ const allChannels$ = this.dataService.settings.getChannels().mapSingle(data => data.channels);
22
+ combineLatest(activeChannelId$, allChannels$).subscribe(([activeChannelId, channels]) => {
23
+ // tslint:disable-next-line:no-non-null-assertion
24
+ this.currentChannel = channels.find(c => c.id === activeChannelId);
25
+ this.availableChannels = channels;
26
+ });
27
+ this.selectedChannelIdControl.valueChanges.subscribe(ids => {
28
+ this.selectChannel(ids);
29
+ });
30
+ }
31
+ selectChannel(channelIds) {
32
+ this.selectedChannel = this.availableChannels.find(c => c.id === channelIds[0]);
33
+ }
34
+ assign() {
35
+ const selectedChannel = this.selectedChannel;
36
+ if (selectedChannel) {
37
+ this.resolveWith(selectedChannel);
38
+ }
39
+ }
40
+ cancel() {
41
+ this.resolveWith();
42
+ }
43
+ }
44
+ AssignToChannelDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AssignToChannelDialogComponent, deps: [{ token: i1.DataService }, { token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
45
+ AssignToChannelDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: AssignToChannelDialogComponent, selector: "vdr-assign-to-channel-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.assign-to-channel' | translate }}\r\n</ng-template>\r\n<clr-input-container class=\"mb4\">\r\n <label>{{ 'common.channel' | translate }}</label>\r\n <vdr-channel-assignment-control\r\n clrInput\r\n [multiple]=\"false\"\r\n [includeDefaultChannel]=\"false\"\r\n [formControl]=\"selectedChannelIdControl\"\r\n ></vdr-channel-assignment-control>\r\n</clr-input-container>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"assign()\" [disabled]=\"!selectedChannel\" class=\"btn btn-primary\">\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.assign-to-named-channel' | translate: { channelCode: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: ["vdr-channel-assignment-control{min-width:200px}\n"], components: [{ type: i2.ClrInputContainer, selector: "clr-input-container" }, { type: i1.ChannelAssignmentControlComponent, selector: "vdr-channel-assignment-control", inputs: ["multiple", "includeDefaultChannel", "disableChannelIds"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i2.ClrLabel, selector: "label", inputs: ["for"] }, { type: i2.ClrInput, selector: "[clrInput]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: AssignToChannelDialogComponent, decorators: [{
47
+ type: Component,
48
+ args: [{ selector: 'vdr-assign-to-channel-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.assign-to-channel' | translate }}\r\n</ng-template>\r\n<clr-input-container class=\"mb4\">\r\n <label>{{ 'common.channel' | translate }}</label>\r\n <vdr-channel-assignment-control\r\n clrInput\r\n [multiple]=\"false\"\r\n [includeDefaultChannel]=\"false\"\r\n [formControl]=\"selectedChannelIdControl\"\r\n ></vdr-channel-assignment-control>\r\n</clr-input-container>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"assign()\" [disabled]=\"!selectedChannel\" class=\"btn btn-primary\">\r\n <ng-template [ngIf]=\"selectedChannel\" [ngIfElse]=\"noSelection\">\r\n {{ 'catalog.assign-to-named-channel' | translate: { channelCode: selectedChannel?.code } }}\r\n </ng-template>\r\n <ng-template #noSelection>\r\n {{ 'catalog.no-channel-selected' | translate }}\r\n </ng-template>\r\n </button>\r\n</ng-template>\r\n", styles: ["vdr-channel-assignment-control{min-width:200px}\n"] }]
49
+ }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i1.NotificationService }]; } });
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzaWduLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NpZ24tdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9hc3NpZ24tdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFVckMsTUFBTSxPQUFPLDhCQUE4QjtJQU92QyxnREFBZ0Q7SUFFaEQsWUFBb0IsV0FBd0IsRUFBVSxtQkFBd0M7UUFBMUUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBSjlGLDZCQUF3QixHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7SUFJb0QsQ0FBQztJQUVsRyxRQUFRO1FBQ0osTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU07YUFDM0MsVUFBVSxFQUFFO2FBQ1osU0FBUyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5RixhQUFhLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNwRixpREFBaUQ7WUFDakQsSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxlQUFlLENBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsUUFBUSxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhLENBQUMsVUFBb0I7UUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsTUFBTTtRQUNGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDN0MsSUFBSSxlQUFlLEVBQUU7WUFDakIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNyQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7OzJIQXpDUSw4QkFBOEI7K0dBQTlCLDhCQUE4QixvRUNiM0MsbWtDQXdCQTsyRkRYYSw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBQ0ksOEJBQThCLG1CQUd2Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZSwgRGlhbG9nLCBHZXRDaGFubmVsc1F1ZXJ5LCBJdGVtT2YsIE5vdGlmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xyXG5cclxudHlwZSBDaGFubmVsID0gR2V0Q2hhbm5lbHNRdWVyeVsnY2hhbm5lbHMnXVtudW1iZXJdO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3Zkci1hc3NpZ24tdG8tY2hhbm5lbC1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Fzc2lnbi10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9hc3NpZ24tdG8tY2hhbm5lbC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXNzaWduVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBEaWFsb2c8Q2hhbm5lbD4ge1xyXG4gICAgc2VsZWN0ZWRDaGFubmVsOiBDaGFubmVsIHwgbnVsbCB8IHVuZGVmaW5lZDtcclxuICAgIGN1cnJlbnRDaGFubmVsOiBDaGFubmVsO1xyXG4gICAgYXZhaWxhYmxlQ2hhbm5lbHM6IENoYW5uZWxbXTtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogQ2hhbm5lbCkgPT4gdm9pZDtcclxuICAgIHNlbGVjdGVkQ2hhbm5lbElkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG5cclxuICAgIC8vIGFzc2lnbmVkIGJ5IE1vZGFsU2VydmljZS5mcm9tQ29tcG9uZW50KCkgY2FsbFxyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgY29uc3QgYWN0aXZlQ2hhbm5lbElkJCA9IHRoaXMuZGF0YVNlcnZpY2UuY2xpZW50XHJcbiAgICAgICAgICAgIC51c2VyU3RhdHVzKClcclxuICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyB1c2VyU3RhdHVzIH0pID0+IHVzZXJTdGF0dXMuYWN0aXZlQ2hhbm5lbElkKTtcclxuICAgICAgICBjb25zdCBhbGxDaGFubmVscyQgPSB0aGlzLmRhdGFTZXJ2aWNlLnNldHRpbmdzLmdldENoYW5uZWxzKCkubWFwU2luZ2xlKGRhdGEgPT4gZGF0YS5jaGFubmVscyk7XHJcblxyXG4gICAgICAgIGNvbWJpbmVMYXRlc3QoYWN0aXZlQ2hhbm5lbElkJCwgYWxsQ2hhbm5lbHMkKS5zdWJzY3JpYmUoKFthY3RpdmVDaGFubmVsSWQsIGNoYW5uZWxzXSkgPT4ge1xyXG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tbm9uLW51bGwtYXNzZXJ0aW9uXHJcbiAgICAgICAgICAgIHRoaXMuY3VycmVudENoYW5uZWwgPSBjaGFubmVscy5maW5kKGMgPT4gYy5pZCA9PT0gYWN0aXZlQ2hhbm5lbElkKSE7XHJcbiAgICAgICAgICAgIHRoaXMuYXZhaWxhYmxlQ2hhbm5lbHMgPSBjaGFubmVscztcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5uZWxJZENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShpZHMgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNlbGVjdENoYW5uZWwoaWRzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RDaGFubmVsKGNoYW5uZWxJZHM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5uZWwgPSB0aGlzLmF2YWlsYWJsZUNoYW5uZWxzLmZpbmQoYyA9PiBjLmlkID09PSBjaGFubmVsSWRzWzBdKTtcclxuICAgIH1cclxuXHJcbiAgICBhc3NpZ24oKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDaGFubmVsID0gdGhpcy5zZWxlY3RlZENoYW5uZWw7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhbm5lbCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlc29sdmVXaXRoKHNlbGVjdGVkQ2hhbm5lbCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLXRlbXBsYXRlIHZkckRpYWxvZ1RpdGxlPlxyXG4gICAge3sgJ2NhdGFsb2cuYXNzaWduLXRvLWNoYW5uZWwnIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxjbHItaW5wdXQtY29udGFpbmVyIGNsYXNzPVwibWI0XCI+XHJcbiAgICA8bGFiZWw+e3sgJ2NvbW1vbi5jaGFubmVsJyB8IHRyYW5zbGF0ZSB9fTwvbGFiZWw+XHJcbiAgICA8dmRyLWNoYW5uZWwtYXNzaWdubWVudC1jb250cm9sXHJcbiAgICAgICAgY2xySW5wdXRcclxuICAgICAgICBbbXVsdGlwbGVdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtpbmNsdWRlRGVmYXVsdENoYW5uZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWxlY3RlZENoYW5uZWxJZENvbnRyb2xcIlxyXG4gICAgPjwvdmRyLWNoYW5uZWwtYXNzaWdubWVudC1jb250cm9sPlxyXG48L2Nsci1pbnB1dC1jb250YWluZXI+XHJcblxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwiYXNzaWduKClcIiBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkQ2hhbm5lbFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cInNlbGVjdGVkQ2hhbm5lbFwiIFtuZ0lmRWxzZV09XCJub1NlbGVjdGlvblwiPlxyXG4gICAgICAgICAgICB7eyAnY2F0YWxvZy5hc3NpZ24tdG8tbmFtZWQtY2hhbm5lbCcgfCB0cmFuc2xhdGU6IHsgY2hhbm5lbENvZGU6IHNlbGVjdGVkQ2hhbm5lbD8uY29kZSB9IH19XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vU2VsZWN0aW9uPlxyXG4gICAgICAgICAgICB7eyAnY2F0YWxvZy5uby1jaGFubmVsLXNlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
@@ -0,0 +1,84 @@
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { unique } from '@vendure/common/lib/unique';
3
+ import { GET_PRODUCTS_WITH_FACET_VALUES_BY_IDS, GET_VARIANTS_WITH_FACET_VALUES_BY_IDS, UPDATE_PRODUCTS_BULK, UPDATE_VARIANTS_BULK, } from './bulk-add-facet-values-dialog.graphql';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@vendure/admin-ui/core";
6
+ import * as i2 from "@clr/angular";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "@ngx-translate/core";
9
+ export class BulkAddFacetValuesDialogComponent {
10
+ constructor(dataService, changeDetectorRef) {
11
+ this.dataService = dataService;
12
+ this.changeDetectorRef = changeDetectorRef;
13
+ /* provided by call to ModalService */
14
+ this.mode = 'product';
15
+ this.facets = [];
16
+ this.state = 'loading';
17
+ this.selectedValues = [];
18
+ this.items = [];
19
+ this.facetValuesRemoved = false;
20
+ }
21
+ ngOnInit() {
22
+ const fetchData$ = this.mode === 'product'
23
+ ? this.dataService
24
+ .query(GET_PRODUCTS_WITH_FACET_VALUES_BY_IDS, {
25
+ ids: this.ids ?? [],
26
+ })
27
+ .mapSingle(({ products }) => products.items.map(p => ({ ...p, facetValues: [...p.facetValues] })))
28
+ : this.dataService
29
+ .query(GET_VARIANTS_WITH_FACET_VALUES_BY_IDS, {
30
+ ids: this.ids ?? [],
31
+ })
32
+ .mapSingle(({ productVariants }) => productVariants.items.map(p => ({ ...p, facetValues: [...p.facetValues] })));
33
+ this.subscription = fetchData$.subscribe({
34
+ next: items => {
35
+ this.items = items;
36
+ this.state = 'ready';
37
+ this.changeDetectorRef.markForCheck();
38
+ },
39
+ });
40
+ }
41
+ ngOnDestroy() {
42
+ this.subscription?.unsubscribe();
43
+ }
44
+ cancel() {
45
+ this.resolveWith();
46
+ }
47
+ removeFacetValue(item, facetValueId) {
48
+ item.facetValues = item.facetValues.filter(fv => fv.id !== facetValueId);
49
+ this.facetValuesRemoved = true;
50
+ }
51
+ addFacetValues() {
52
+ const selectedFacetValueIds = this.selectedValues.map(sv => sv.id);
53
+ this.state = 'saving';
54
+ const save$ = this.mode === 'product'
55
+ ? this.dataService.mutate(UPDATE_PRODUCTS_BULK, {
56
+ input: this.items?.map(product => ({
57
+ id: product.id,
58
+ facetValueIds: unique([
59
+ ...product.facetValues.map(fv => fv.id),
60
+ ...selectedFacetValueIds,
61
+ ]),
62
+ })),
63
+ })
64
+ : this.dataService.mutate(UPDATE_VARIANTS_BULK, {
65
+ input: this.items?.map(product => ({
66
+ id: product.id,
67
+ facetValueIds: unique([
68
+ ...product.facetValues.map(fv => fv.id),
69
+ ...selectedFacetValueIds,
70
+ ]),
71
+ })),
72
+ });
73
+ return save$.subscribe(result => {
74
+ this.resolveWith(this.selectedValues);
75
+ });
76
+ }
77
+ }
78
+ BulkAddFacetValuesDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BulkAddFacetValuesDialogComponent, deps: [{ token: i1.DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
79
+ BulkAddFacetValuesDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.3", type: BulkAddFacetValuesDialogComponent, selector: "vdr-bulk-add-facet-values-dialog", ngImport: i0, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.edit-facet-values' | translate }}\r\n</ng-template>\r\n\r\n<div class=\"flex\">\r\n <div class=\"flex center\">\r\n <div class=\"mr2\">\r\n {{ 'catalog.add-facet-value' | translate }}\r\n </div>\r\n <vdr-facet-value-selector\r\n [facets]=\"facets\"\r\n (selectedValuesChange)=\"selectedValues = $event\"\r\n ></vdr-facet-value-selector>\r\n </div>\r\n</div>\r\n\r\n<table class=\"table\" *ngIf=\"state !== 'loading'; else placeholder\">\r\n <tbody>\r\n <tr *ngFor=\"let item of items\">\r\n <td class=\"left align-middle\">\r\n <div>{{ item.name }}</div>\r\n <div *ngIf=\"item.sku\" class=\"sku\">{{ item.sku }}</div>\r\n </td>\r\n <td class=\"left\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of item.facetValues\"\r\n [facetValue]=\"facetValue\"\r\n (remove)=\"removeFacetValue(item, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-template #placeholder>\r\n <div class=\"loading\">\r\n <clr-spinner></clr-spinner>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"addFacetValues()\"\r\n [disabled]=\"selectedValues.length === 0 && facetValuesRemoved === false\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [".loading{min-height:25vh;display:flex;justify-content:center;align-items:center}.sku{color:var(--color-text-300)}\n"], components: [{ type: i1.FacetValueSelectorComponent, selector: "vdr-facet-value-selector", inputs: ["facets", "readonly", "transformControlValueAccessorValue"], outputs: ["selectedValuesChange"] }, { type: i1.FacetValueChipComponent, selector: "vdr-facet-value-chip", inputs: ["facetValue", "removable", "displayFacetName"], outputs: ["remove"] }, { type: i2.ClrSpinner, selector: "clr-spinner", inputs: ["clrInline", "clrInverse", "clrSmall", "clrMedium"] }], directives: [{ type: i1.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.DialogButtonsDirective, selector: "[vdrDialogButtons]" }], pipes: { "translate": i4.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.3", ngImport: i0, type: BulkAddFacetValuesDialogComponent, decorators: [{
81
+ type: Component,
82
+ args: [{ selector: 'vdr-bulk-add-facet-values-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.edit-facet-values' | translate }}\r\n</ng-template>\r\n\r\n<div class=\"flex\">\r\n <div class=\"flex center\">\r\n <div class=\"mr2\">\r\n {{ 'catalog.add-facet-value' | translate }}\r\n </div>\r\n <vdr-facet-value-selector\r\n [facets]=\"facets\"\r\n (selectedValuesChange)=\"selectedValues = $event\"\r\n ></vdr-facet-value-selector>\r\n </div>\r\n</div>\r\n\r\n<table class=\"table\" *ngIf=\"state !== 'loading'; else placeholder\">\r\n <tbody>\r\n <tr *ngFor=\"let item of items\">\r\n <td class=\"left align-middle\">\r\n <div>{{ item.name }}</div>\r\n <div *ngIf=\"item.sku\" class=\"sku\">{{ item.sku }}</div>\r\n </td>\r\n <td class=\"left\">\r\n <vdr-facet-value-chip\r\n *ngFor=\"let facetValue of item.facetValues\"\r\n [facetValue]=\"facetValue\"\r\n (remove)=\"removeFacetValue(item, facetValue.id)\"\r\n ></vdr-facet-value-chip>\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n<ng-template #placeholder>\r\n <div class=\"loading\">\r\n <clr-spinner></clr-spinner>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button\r\n type=\"submit\"\r\n (click)=\"addFacetValues()\"\r\n [disabled]=\"selectedValues.length === 0 && facetValuesRemoved === false\"\r\n class=\"btn btn-primary\"\r\n >\r\n {{ 'common.update' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: [".loading{min-height:25vh;display:flex;justify-content:center;align-items:center}.sku{color:var(--color-text-300)}\n"] }]
83
+ }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i0.ChangeDetectorRef }]; } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NvbXBvbmVudHMvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBYXpHLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUlwRCxPQUFPLEVBQ0gscUNBQXFDLEVBQ3JDLHFDQUFxQyxFQUNyQyxvQkFBb0IsRUFDcEIsb0JBQW9CLEdBQ3ZCLE1BQU0sd0NBQXdDLENBQUM7Ozs7OztBQXdCaEQsTUFBTSxPQUFPLGlDQUFpQztJQWMxQyxZQUFvQixXQUF3QixFQUFVLGlCQUFvQztRQUF0RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFWMUYsc0NBQXNDO1FBQ3RDLFNBQUksR0FBMEIsU0FBUyxDQUFDO1FBRXhDLFdBQU0sR0FBOEIsRUFBRSxDQUFDO1FBQ3ZDLFVBQUssR0FBbUMsU0FBUyxDQUFDO1FBRWxELG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUMvQyxVQUFLLEdBQXVCLEVBQUUsQ0FBQztRQUMvQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7SUFFa0UsQ0FBQztJQUU5RixRQUFRO1FBQ0osTUFBTSxVQUFVLEdBQ1osSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTO1lB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RSxPQUFPLENBQUMsRUFBRTtvQkFDZCxhQUFhLEVBQUUsTUFBTSxDQUFDO3dCQUNsQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQzt3QkFDdkMsR0FBRyxxQkFBcUI7cUJBQzNCLENBQUM7aUJBQ0wsQ0FBQyxDQUFDO2FBQ04sQ0FDSixDQUFDO1FBQ1osT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzVCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7OEhBN0ZRLGlDQUFpQztrSEFBakMsaUNBQWlDLHdFQzlDOUMsbXVEQW1EQTsyRkRMYSxpQ0FBaUM7a0JBTjdDLFNBQVM7K0JBQ0ksa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBEYXRhU2VydmljZSxcclxuICAgIERpYWxvZyxcclxuICAgIEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50LFxyXG4gICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5VmFyaWFibGVzLFxyXG4gICAgR2V0VmFyaWFudHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgVXBkYXRlUHJvZHVjdHNCdWxrTXV0YXRpb24sXHJcbiAgICBVcGRhdGVQcm9kdWN0c0J1bGtNdXRhdGlvblZhcmlhYmxlcyxcclxuICAgIFVwZGF0ZVZhcmlhbnRzQnVsa011dGF0aW9uLFxyXG4gICAgVXBkYXRlVmFyaWFudHNCdWxrTXV0YXRpb25WYXJpYWJsZXMsXHJcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XHJcbmltcG9ydCB7IHVuaXF1ZSB9IGZyb20gJ0B2ZW5kdXJlL2NvbW1vbi9saWIvdW5pcXVlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgR0VUX1BST0RVQ1RTX1dJVEhfRkFDRVRfVkFMVUVTX0JZX0lEUyxcclxuICAgIEdFVF9WQVJJQU5UU19XSVRIX0ZBQ0VUX1ZBTFVFU19CWV9JRFMsXHJcbiAgICBVUERBVEVfUFJPRFVDVFNfQlVMSyxcclxuICAgIFVQREFURV9WQVJJQU5UU19CVUxLLFxyXG59IGZyb20gJy4vYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5ncmFwaHFsJztcclxuXHJcbmludGVyZmFjZSBQcm9kdWN0T3JWYXJpYW50IHtcclxuICAgIGlkOiBzdHJpbmc7XHJcbiAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICBza3U/OiBzdHJpbmc7XHJcbiAgICBmYWNldFZhbHVlczogQXJyYXk8e1xyXG4gICAgICAgIGlkOiBzdHJpbmc7XHJcbiAgICAgICAgbmFtZTogc3RyaW5nO1xyXG4gICAgICAgIGNvZGU6IHN0cmluZztcclxuICAgICAgICBmYWNldDogQXJyYXk8e1xyXG4gICAgICAgICAgICBpZDogc3RyaW5nO1xyXG4gICAgICAgICAgICBuYW1lOiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGNvZGU6IHN0cmluZztcclxuICAgICAgICB9PjtcclxuICAgIH0+O1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWJ1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2J1bGstYWRkLWZhY2V0LXZhbHVlcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnRcclxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIERpYWxvZzxGYWNldFdpdGhWYWx1ZXNGcmFnbWVudFtdPlxyXG57XHJcbiAgICByZXNvbHZlV2l0aDogKHJlc3VsdD86IEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50W10pID0+IHZvaWQ7XHJcbiAgICAvKiBwcm92aWRlZCBieSBjYWxsIHRvIE1vZGFsU2VydmljZSAqL1xyXG4gICAgbW9kZTogJ3Byb2R1Y3QnIHwgJ3ZhcmlhbnQnID0gJ3Byb2R1Y3QnO1xyXG4gICAgaWRzPzogc3RyaW5nW107XHJcbiAgICBmYWNldHM6IEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50W10gPSBbXTtcclxuICAgIHN0YXRlOiAnbG9hZGluZycgfCAncmVhZHknIHwgJ3NhdmluZycgPSAnbG9hZGluZyc7XHJcblxyXG4gICAgc2VsZWN0ZWRWYWx1ZXM6IEZhY2V0V2l0aFZhbHVlc0ZyYWdtZW50W10gPSBbXTtcclxuICAgIGl0ZW1zOiBQcm9kdWN0T3JWYXJpYW50W10gPSBbXTtcclxuICAgIGZhY2V0VmFsdWVzUmVtb3ZlZCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmZXRjaERhdGEkOiBPYnNlcnZhYmxlPGFueT4gPVxyXG4gICAgICAgICAgICB0aGlzLm1vZGUgPT09ICdwcm9kdWN0J1xyXG4gICAgICAgICAgICAgICAgPyB0aGlzLmRhdGFTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAgICAgICAucXVlcnk8XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIEdldFByb2R1Y3RzV2l0aEZhY2V0VmFsdWVzQnlJZHNRdWVyeVZhcmlhYmxlc1xyXG4gICAgICAgICAgICAgICAgICAgICAgPihHRVRfUFJPRFVDVFNfV0lUSF9GQUNFVF9WQUxVRVNfQllfSURTLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzOiB0aGlzLmlkcyA/PyBbXSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAubWFwU2luZ2xlKCh7IHByb2R1Y3RzIH0pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdHMuaXRlbXMubWFwKHAgPT4gKHsgLi4ucCwgZmFjZXRWYWx1ZXM6IFsuLi5wLmZhY2V0VmFsdWVzXSB9KSksXHJcbiAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICA6IHRoaXMuZGF0YVNlcnZpY2VcclxuICAgICAgICAgICAgICAgICAgICAgIC5xdWVyeTxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRWYXJpYW50c1dpdGhGYWNldFZhbHVlc0J5SWRzUXVlcnksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgR2V0UHJvZHVjdHNXaXRoRmFjZXRWYWx1ZXNCeUlkc1F1ZXJ5VmFyaWFibGVzXHJcbiAgICAgICAgICAgICAgICAgICAgICA+KEdFVF9WQVJJQU5UU19XSVRIX0ZBQ0VUX1ZBTFVFU19CWV9JRFMsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBpZHM6IHRoaXMuaWRzID8/IFtdLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUoKHsgcHJvZHVjdFZhcmlhbnRzIH0pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdFZhcmlhbnRzLml0ZW1zLm1hcChwID0+ICh7IC4uLnAsIGZhY2V0VmFsdWVzOiBbLi4ucC5mYWNldFZhbHVlc10gfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IGZldGNoRGF0YSQuc3Vic2NyaWJlKHtcclxuICAgICAgICAgICAgbmV4dDogaXRlbXMgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcyA9IGl0ZW1zO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZSA9ICdyZWFkeSc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGNhbmNlbCgpIHtcclxuICAgICAgICB0aGlzLnJlc29sdmVXaXRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVtb3ZlRmFjZXRWYWx1ZShpdGVtOiBQcm9kdWN0T3JWYXJpYW50LCBmYWNldFZhbHVlSWQ6IHN0cmluZykge1xyXG4gICAgICAgIGl0ZW0uZmFjZXRWYWx1ZXMgPSBpdGVtLmZhY2V0VmFsdWVzLmZpbHRlcihmdiA9PiBmdi5pZCAhPT0gZmFjZXRWYWx1ZUlkKTtcclxuICAgICAgICB0aGlzLmZhY2V0VmFsdWVzUmVtb3ZlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkRmFjZXRWYWx1ZXMoKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGYWNldFZhbHVlSWRzID0gdGhpcy5zZWxlY3RlZFZhbHVlcy5tYXAoc3YgPT4gc3YuaWQpO1xyXG4gICAgICAgIHRoaXMuc3RhdGUgPSAnc2F2aW5nJztcclxuICAgICAgICBjb25zdCBzYXZlJDogT2JzZXJ2YWJsZTxhbnk+ID1cclxuICAgICAgICAgICAgdGhpcy5tb2RlID09PSAncHJvZHVjdCdcclxuICAgICAgICAgICAgICAgID8gdGhpcy5kYXRhU2VydmljZS5tdXRhdGU8VXBkYXRlUHJvZHVjdHNCdWxrTXV0YXRpb24sIFVwZGF0ZVByb2R1Y3RzQnVsa011dGF0aW9uVmFyaWFibGVzPihcclxuICAgICAgICAgICAgICAgICAgICAgIFVQREFURV9QUk9EVUNUU19CVUxLLFxyXG4gICAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0OiB0aGlzLml0ZW1zPy5tYXAocHJvZHVjdCA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogcHJvZHVjdC5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUlkczogdW5pcXVlKFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb2R1Y3QuZmFjZXRWYWx1ZXMubWFwKGZ2ID0+IGZ2LmlkKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnNlbGVjdGVkRmFjZXRWYWx1ZUlkcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgOiB0aGlzLmRhdGFTZXJ2aWNlLm11dGF0ZTxVcGRhdGVWYXJpYW50c0J1bGtNdXRhdGlvbiwgVXBkYXRlVmFyaWFudHNCdWxrTXV0YXRpb25WYXJpYWJsZXM+KFxyXG4gICAgICAgICAgICAgICAgICAgICAgVVBEQVRFX1ZBUklBTlRTX0JVTEssXHJcbiAgICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQ6IHRoaXMuaXRlbXM/Lm1hcChwcm9kdWN0ID0+ICh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBwcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWNldFZhbHVlSWRzOiB1bmlxdWUoW1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4ucHJvZHVjdC5mYWNldFZhbHVlcy5tYXAoZnYgPT4gZnYuaWQpLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uc2VsZWN0ZWRGYWNldFZhbHVlSWRzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSksXHJcbiAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBzYXZlJC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh0aGlzLnNlbGVjdGVkVmFsdWVzKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+XHJcbiAgICB7eyAnY2F0YWxvZy5lZGl0LWZhY2V0LXZhbHVlcycgfCB0cmFuc2xhdGUgfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxkaXYgY2xhc3M9XCJmbGV4XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBjZW50ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXIyXCI+XHJcbiAgICAgICAgICAgIHt7ICdjYXRhbG9nLmFkZC1mYWNldC12YWx1ZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8dmRyLWZhY2V0LXZhbHVlLXNlbGVjdG9yXHJcbiAgICAgICAgICAgIFtmYWNldHNdPVwiZmFjZXRzXCJcclxuICAgICAgICAgICAgKHNlbGVjdGVkVmFsdWVzQ2hhbmdlKT1cInNlbGVjdGVkVmFsdWVzID0gJGV2ZW50XCJcclxuICAgICAgICA+PC92ZHItZmFjZXQtdmFsdWUtc2VsZWN0b3I+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48dGFibGUgY2xhc3M9XCJ0YWJsZVwiICpuZ0lmPVwic3RhdGUgIT09ICdsb2FkaW5nJzsgZWxzZSBwbGFjZWhvbGRlclwiPlxyXG4gICAgPHRib2R5PlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJsZWZ0IGFsaWduLW1pZGRsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdj57eyBpdGVtLm5hbWUgfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnNrdVwiIGNsYXNzPVwic2t1XCI+e3sgaXRlbS5za3UgfX08L2Rpdj5cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHZkci1mYWNldC12YWx1ZS1jaGlwXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZhY2V0VmFsdWUgb2YgaXRlbS5mYWNldFZhbHVlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZhY2V0VmFsdWVdPVwiZmFjZXRWYWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVGYWNldFZhbHVlKGl0ZW0sIGZhY2V0VmFsdWUuaWQpXCJcclxuICAgICAgICAgICAgICAgID48L3Zkci1mYWNldC12YWx1ZS1jaGlwPlxyXG4gICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L3Rib2R5PlxyXG48L3RhYmxlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlcj5cclxuICAgIDxkaXYgY2xhc3M9XCJsb2FkaW5nXCI+XHJcbiAgICA8Y2xyLXNwaW5uZXI+PC9jbHItc3Bpbm5lcj5cclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgIChjbGljayk9XCJhZGRGYWNldFZhbHVlcygpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0ZWRWYWx1ZXMubGVuZ3RoID09PSAwICYmIGZhY2V0VmFsdWVzUmVtb3ZlZCA9PT0gZmFsc2VcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgID5cclxuICAgICAgICB7eyAnY29tbW9uLnVwZGF0ZScgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=