@provoly/dashboard 0.20.3 → 0.20.5

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 (251) hide show
  1. package/components/metadata-editor/style/_o-metadata-editor.scss +0 -5
  2. package/dataset/components/dataset-detail/dataset-detail.component.d.ts +2 -1
  3. package/dataset/i18n/en.translations.d.ts +2 -1
  4. package/dataset/i18n/fr.translations.d.ts +2 -1
  5. package/dataset/style/_o-pry-dataset-card.scss +4 -37
  6. package/dataset/style/_o-pry-dataset-detail.scss +2 -53
  7. package/esm2022/admin/components/admin-abac-rules/admin-abac-rules-form/admin-abac-rules-form.component.mjs +3 -3
  8. package/esm2022/admin/components/admin-abac-rules/components/attribute-condition/attribute-condition.component.mjs +3 -3
  9. package/esm2022/admin/components/admin-abac-rules/components/metadata-condition/metadata-condition.component.mjs +3 -3
  10. package/esm2022/admin/components/admin-classes/admin-classes-customize/symbol/admin-classes-customize-symbol.component.mjs +3 -3
  11. package/esm2022/admin/components/admin-classes/admin-classes-customize/tooltip/admin-classes-customize-tooltip.component.mjs +3 -3
  12. package/esm2022/admin/components/admin-classes/admin-classes-form/admin-classes-form.component.mjs +3 -3
  13. package/esm2022/admin/components/admin-classes/admin-classes-view/admin-attributes-form/admin-attributes-form.component.mjs +15 -10
  14. package/esm2022/admin/components/admin-dataset/shared/admin-form-dataset/admin-form-dataset.component.mjs +3 -3
  15. package/esm2022/admin/components/admin-environment/admin-environment-form/admin-environment-form.component.mjs +3 -3
  16. package/esm2022/admin/components/admin-fields/admin-fields-form/admin-fields-form.component.mjs +3 -3
  17. package/esm2022/admin/components/admin-links/admin-links-new/admin-links-new.component.mjs +3 -3
  18. package/esm2022/admin/components/admin-menu/admin-menu.component.mjs +3 -3
  19. package/esm2022/admin/components/admin-metadata/shared/form-metadata/form-metadata.component.mjs +3 -3
  20. package/esm2022/admin/components/admin-metadata-rules/shared/admin-form-metadata-rules/admin-form-metadata-rules.component.mjs +3 -3
  21. package/esm2022/components/metadata-editor/metadata-editor.component.mjs +3 -3
  22. package/esm2022/components/metadata-editor/style/css.component.mjs +2 -2
  23. package/esm2022/components/scheme-picker/scheme-picker.component.mjs +3 -3
  24. package/esm2022/dataset/components/dataset-card/dataset-card.component.mjs +5 -5
  25. package/esm2022/dataset/components/dataset-detail/dataset-detail.component.mjs +20 -5
  26. package/esm2022/dataset/i18n/en.translations.mjs +3 -2
  27. package/esm2022/dataset/i18n/fr.translations.mjs +4 -3
  28. package/esm2022/dataset/style/css.component.mjs +2 -2
  29. package/esm2022/filters/autocomplete/autocomplete.component.mjs +19 -6
  30. package/esm2022/filters/autocomplete/autocomplete.module.mjs +5 -5
  31. package/esm2022/filters/autocomplete/style/css.component.mjs +2 -2
  32. package/esm2022/filters/list/list-filter.component.mjs +1 -1
  33. package/esm2022/import/components/import.component.mjs +3 -3
  34. package/esm2022/lib/core/components/about/about.component.mjs +3 -3
  35. package/esm2022/lib/core/components/base-menu/base-menu.component.mjs +3 -3
  36. package/esm2022/lib/core/components/ellipsis.directive.mjs +31 -0
  37. package/esm2022/lib/core/components/select/select.component.mjs +193 -39
  38. package/esm2022/lib/core/components/select/select.module.mjs +4 -5
  39. package/esm2022/lib/core/components/share/share.component.mjs +3 -3
  40. package/esm2022/lib/core/components/translate-id/translate-id.pipe.mjs +7 -8
  41. package/esm2022/lib/core/core.module.mjs +8 -4
  42. package/esm2022/lib/core/i18n/en.translations.mjs +7 -6
  43. package/esm2022/lib/core/i18n/fr.translations.mjs +8 -6
  44. package/esm2022/lib/core/model/display-options.interface.mjs +18 -4
  45. package/esm2022/lib/core/model/manifest.interface.mjs +1 -1
  46. package/esm2022/lib/core/public-api.mjs +2 -1
  47. package/esm2022/lib/core/store/class/class.actions.mjs +1 -4
  48. package/esm2022/lib/core/store/class/class.effects.mjs +1 -4
  49. package/esm2022/lib/core/store/class/class.interface.mjs +1 -1
  50. package/esm2022/lib/core/store/class/class.reducer.mjs +3 -13
  51. package/esm2022/lib/core/store/class/class.selectors.mjs +1 -3
  52. package/esm2022/lib/core/store/class/class.service.mjs +1 -9
  53. package/esm2022/lib/core/store/config/config.selectors.mjs +1 -3
  54. package/esm2022/lib/core/store/config/config.service.mjs +4 -7
  55. package/esm2022/lib/core/toolbox/toolbox-manifest.service.mjs +1 -4
  56. package/esm2022/lib/dashboard/components/context-menu/object-edition/object-edition.component.mjs +3 -3
  57. package/esm2022/lib/dashboard/components/widgets/header/widget-header.component.mjs +6 -15
  58. package/esm2022/lib/dashboard/components/widgets/settings/settings.component.mjs +3 -3
  59. package/esm2022/lib/dashboard/filter/components/filter-group/filter-group.component.mjs +3 -3
  60. package/esm2022/lib/dashboard/filter/style/css.component.mjs +2 -2
  61. package/esm2022/lib/dashboard/store/dashboard.effects.mjs +1 -4
  62. package/esm2022/pipeline-components/filter/component/filter.component.mjs +3 -3
  63. package/esm2022/pipeline-components/input-datasource/component/input-datasource.component.mjs +3 -3
  64. package/esm2022/pipeline-components/output-dataset/component/output-dataset.component.mjs +3 -3
  65. package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +5 -5
  66. package/esm2022/presentation/components/presentation.component.mjs +3 -3
  67. package/esm2022/presentation/components/title-presentation/title-presentation.component.mjs +11 -21
  68. package/esm2022/presentation/i18n/fr.translations.mjs +9 -9
  69. package/esm2022/presentation/style/css.component.mjs +2 -2
  70. package/esm2022/restitution/components/restitution/restitution.component.mjs +23 -22
  71. package/esm2022/restitution/components/restitution-catalog/restitution-catalog.component.mjs +13 -6
  72. package/esm2022/restitution/i18n/en.translations.mjs +3 -3
  73. package/esm2022/restitution/i18n/fr.translations.mjs +4 -4
  74. package/esm2022/restitution/style/css.component.mjs +2 -2
  75. package/esm2022/search/i18n/en.translations.mjs +2 -1
  76. package/esm2022/search/i18n/fr.translations.mjs +2 -1
  77. package/esm2022/search/search-mono-class/components/search-condition/search-condition.component.mjs +3 -3
  78. package/esm2022/search/search-mono-class/components/search-mono-class/search-mono-class.component.mjs +3 -3
  79. package/esm2022/search/search-mono-class/components/search-order/search-order.component.mjs +3 -3
  80. package/esm2022/search/search-multi-class/components/multi-class-condition/multi-class-condition.component.mjs +3 -3
  81. package/esm2022/toolbox/components/automate-refresh/automate-refresh.component.mjs +3 -3
  82. package/esm2022/toolbox/components/clear-view/clear-view.component.mjs +3 -3
  83. package/esm2022/toolbox/components/drag-widgets/drag-widgets.component.mjs +3 -3
  84. package/esm2022/toolbox/components/filter-settings/filter-settings.component.mjs +4 -8
  85. package/esm2022/toolbox/components/launch-tab/launch-tab.component.mjs +3 -3
  86. package/esm2022/toolbox/components/named-query/named-query.component.mjs +3 -3
  87. package/esm2022/toolbox/components/refresh-datasets/refresh-datasets.component.mjs +3 -3
  88. package/esm2022/toolbox/components/save-view/save-view.component.mjs +3 -3
  89. package/esm2022/toolbox/components/select-grid-layout/select-grid-layout.component.mjs +3 -3
  90. package/esm2022/toolbox/components/toolbox.component.mjs +4 -3
  91. package/esm2022/tooltips/attribute/attribute-tooltip.component.mjs +8 -2
  92. package/esm2022/widgets/widget-aggregated-chart/component/widget-aggregated-chart.component.mjs +8 -7
  93. package/esm2022/widgets/widget-chart/component/widget-chart.component.mjs +3 -4
  94. package/esm2022/widgets/widget-graph/component/widget-graph.component.mjs +3 -3
  95. package/esm2022/widgets/widget-map/component/widget-map.component.mjs +10 -4
  96. package/esm2022/widgets/widget-map/i18n/en.translations.mjs +3 -2
  97. package/esm2022/widgets/widget-map/i18n/fr.translations.mjs +3 -2
  98. package/esm2022/widgets/widget-map/style/css.component.mjs +2 -2
  99. package/esm2022/widgets/widget-table/component/widget-table.component.mjs +7 -7
  100. package/esm2022/widgets/widget-tile/component/widget-tile.component.mjs +3 -3
  101. package/fesm2022/provoly-dashboard-admin.mjs +40 -35
  102. package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
  103. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +4 -4
  104. package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
  105. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs +2 -2
  106. package/fesm2022/provoly-dashboard-components-scheme-picker.mjs.map +1 -1
  107. package/fesm2022/provoly-dashboard-dataset.mjs +28 -11
  108. package/fesm2022/provoly-dashboard-dataset.mjs.map +1 -1
  109. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs +24 -11
  110. package/fesm2022/provoly-dashboard-filters-autocomplete.mjs.map +1 -1
  111. package/fesm2022/provoly-dashboard-filters-list.mjs +1 -1
  112. package/fesm2022/provoly-dashboard-filters-list.mjs.map +1 -1
  113. package/fesm2022/provoly-dashboard-import.mjs +2 -2
  114. package/fesm2022/provoly-dashboard-import.mjs.map +1 -1
  115. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs +2 -2
  116. package/fesm2022/provoly-dashboard-pipeline-components-filter.mjs.map +1 -1
  117. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs +2 -2
  118. package/fesm2022/provoly-dashboard-pipeline-components-input-datasource.mjs.map +1 -1
  119. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs +2 -2
  120. package/fesm2022/provoly-dashboard-pipeline-components-output-dataset.mjs.map +1 -1
  121. package/fesm2022/provoly-dashboard-presentation.mjs +24 -34
  122. package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
  123. package/fesm2022/provoly-dashboard-restitution.mjs +40 -32
  124. package/fesm2022/provoly-dashboard-restitution.mjs.map +1 -1
  125. package/fesm2022/provoly-dashboard-search.mjs +10 -8
  126. package/fesm2022/provoly-dashboard-search.mjs.map +1 -1
  127. package/fesm2022/provoly-dashboard-toolbox.mjs +22 -25
  128. package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
  129. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs +7 -1
  130. package/fesm2022/provoly-dashboard-tooltips-attribute.mjs.map +1 -1
  131. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs +7 -6
  132. package/fesm2022/provoly-dashboard-widgets-widget-aggregated-chart.mjs.map +1 -1
  133. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs +2 -3
  134. package/fesm2022/provoly-dashboard-widgets-widget-chart.mjs.map +1 -1
  135. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs +2 -2
  136. package/fesm2022/provoly-dashboard-widgets-widget-graph.mjs.map +1 -1
  137. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs +15 -7
  138. package/fesm2022/provoly-dashboard-widgets-widget-map.mjs.map +1 -1
  139. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs +6 -6
  140. package/fesm2022/provoly-dashboard-widgets-widget-table.mjs.map +1 -1
  141. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs +2 -2
  142. package/fesm2022/provoly-dashboard-widgets-widget-tile.mjs.map +1 -1
  143. package/fesm2022/provoly-dashboard.mjs +286 -135
  144. package/fesm2022/provoly-dashboard.mjs.map +1 -1
  145. package/filters/autocomplete/autocomplete.component.d.ts +2 -0
  146. package/filters/autocomplete/autocomplete.module.d.ts +1 -1
  147. package/filters/autocomplete/style/_m-autocomplete.scss +16 -3
  148. package/lib/core/components/ellipsis.directive.d.ts +11 -0
  149. package/lib/core/components/select/select.component.d.ts +41 -20
  150. package/lib/core/components/select/select.module.d.ts +4 -5
  151. package/lib/core/components/translate-id/translate-id.pipe.d.ts +1 -3
  152. package/lib/core/core.module.d.ts +15 -14
  153. package/lib/core/i18n/en.translations.d.ts +4 -3
  154. package/lib/core/i18n/fr.translations.d.ts +5 -3
  155. package/lib/core/model/display-options.interface.d.ts +11 -0
  156. package/lib/core/model/manifest.interface.d.ts +1 -5
  157. package/lib/core/public-api.d.ts +1 -0
  158. package/lib/core/store/class/class.actions.d.ts +1 -12
  159. package/lib/core/store/class/class.effects.d.ts +0 -5
  160. package/lib/core/store/class/class.interface.d.ts +0 -6
  161. package/lib/core/store/class/class.reducer.d.ts +2 -3
  162. package/lib/core/store/class/class.selectors.d.ts +0 -1
  163. package/lib/core/store/class/class.service.d.ts +1 -5
  164. package/lib/core/store/config/config.selectors.d.ts +0 -1
  165. package/lib/dashboard/components/widgets/header/widget-header.component.d.ts +2 -5
  166. package/lib/dashboard/filter/style/_o-pry-filter-group.scss +0 -11
  167. package/lib/dashboard/store/dashboard.effects.d.ts +0 -1
  168. package/lib/dashboard/store/dashboard.selectors.d.ts +0 -9
  169. package/package.json +1 -8
  170. package/presentation/components/title-presentation/title-presentation.component.d.ts +3 -5
  171. package/presentation/style/_o-pry-new-presentation.scss +0 -7
  172. package/presentation/style/_o-pry-presentation.scss +19 -101
  173. package/restitution/components/restitution-catalog/restitution-catalog.component.d.ts +1 -1
  174. package/restitution/i18n/en.translations.d.ts +2 -2
  175. package/restitution/i18n/fr.translations.d.ts +3 -3
  176. package/restitution/style/_o-restitution.scss +11 -14
  177. package/schematics/migration.json +6 -1
  178. package/schematics/ng-update/version-0-20/index.d.ts +2 -0
  179. package/schematics/ng-update/version-0-20/index.js +19 -0
  180. package/schematics/ng-update/version-0-20/index.js.map +1 -0
  181. package/search/i18n/en.translations.d.ts +1 -0
  182. package/search/i18n/fr.translations.d.ts +1 -0
  183. package/styles/base/_utils.scss +4 -0
  184. package/styles/components/_a-pry-select.scss +34 -10
  185. package/styles/components/_a-tooltip.scss +26 -19
  186. package/styles/components/_m-filter.scss +11 -20
  187. package/styles/components/_m-info-icon.scss +16 -0
  188. package/styles/components/_m-presentation-title.scss +14 -0
  189. package/styles/components/_o-about.scss +2 -24
  190. package/styles/components/_o-dashboard.scss +4 -0
  191. package/styles/components/_o-draggable-menu.scss +1 -1
  192. package/styles/components/_o-widget.scss +2 -2
  193. package/styles/main.scss +2 -1
  194. package/styles-theme/abstracts-theme/variables/_variables-typo.scss +9 -0
  195. package/styles-theme/components-theme/_a-pry-select.theme.scss +23 -96
  196. package/styles-theme/components-theme/_a-tooltip.theme.scss +2 -2
  197. package/styles-theme/components-theme/_o-pry-composed-condition.theme.scss +0 -12
  198. package/styles-theme/components-theme/_o-pry-dataset.theme.scss +0 -8
  199. package/styles-theme/components-theme/_o-pry-presentation.theme.scss +1 -1
  200. package/styles-theme/components-theme/_o-restitution.theme.scss +10 -0
  201. package/toolbox/components/toolbox.component.d.ts +1 -0
  202. package/tooltips/attribute/attribute-tooltip.component.d.ts +1 -0
  203. package/widgets/widget-chart/component/widget-chart.component.d.ts +0 -1
  204. package/widgets/widget-map/component/widget-map.component.d.ts +2 -0
  205. package/widgets/widget-map/i18n/en.translations.d.ts +1 -0
  206. package/widgets/widget-map/i18n/fr.translations.d.ts +1 -0
  207. package/widgets/widget-map/style/_o-layer-legend.scss +21 -0
  208. package/esm2022/supervision/components/supervision-business-data/supervision-business-data.component.mjs +0 -34
  209. package/esm2022/supervision/components/supervision-flow/supervision-flow.component.mjs +0 -33
  210. package/esm2022/supervision/components/supervision-infrastructures/supervision-infrastructures.component.mjs +0 -51
  211. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.mjs +0 -27
  212. package/esm2022/supervision/components/supervision-integration-errors/supervision-integration-errors.component.mjs +0 -100
  213. package/esm2022/supervision/components/supervision-layout/supervision-layout.component.mjs +0 -47
  214. package/esm2022/supervision/components/supervision-menu/supervision-menu.component.mjs +0 -32
  215. package/esm2022/supervision/components/supervision-title/supervision-title.component.mjs +0 -24
  216. package/esm2022/supervision/components/supervision.component.mjs +0 -19
  217. package/esm2022/supervision/i18n/en.translations.mjs +0 -58
  218. package/esm2022/supervision/i18n/fr.translations.mjs +0 -58
  219. package/esm2022/supervision/provoly-dashboard-supervision.mjs +0 -5
  220. package/esm2022/supervision/public-api.mjs +0 -2
  221. package/esm2022/supervision/store/supervision-api.model.mjs +0 -2
  222. package/esm2022/supervision/store/supervision.actions.mjs +0 -33
  223. package/esm2022/supervision/store/supervision.effects.mjs +0 -60
  224. package/esm2022/supervision/store/supervision.reducer.mjs +0 -111
  225. package/esm2022/supervision/store/supervision.selectors.mjs +0 -35
  226. package/esm2022/supervision/store/supervision.service.mjs +0 -54
  227. package/esm2022/supervision/supervision-routing.module.mjs +0 -96
  228. package/esm2022/supervision/supervision.module.mjs +0 -96
  229. package/fesm2022/provoly-dashboard-supervision.mjs +0 -861
  230. package/fesm2022/provoly-dashboard-supervision.mjs.map +0 -1
  231. package/supervision/components/supervision-business-data/supervision-business-data.component.d.ts +0 -14
  232. package/supervision/components/supervision-flow/supervision-flow.component.d.ts +0 -14
  233. package/supervision/components/supervision-infrastructures/supervision-infrastructures.component.d.ts +0 -18
  234. package/supervision/components/supervision-integration-errors/supervision-integration-errors-select/supervision-integration-errors-select.component.d.ts +0 -12
  235. package/supervision/components/supervision-integration-errors/supervision-integration-errors.component.d.ts +0 -29
  236. package/supervision/components/supervision-layout/supervision-layout.component.d.ts +0 -21
  237. package/supervision/components/supervision-menu/supervision-menu.component.d.ts +0 -13
  238. package/supervision/components/supervision-title/supervision-title.component.d.ts +0 -11
  239. package/supervision/components/supervision.component.d.ts +0 -9
  240. package/supervision/i18n/en.translations.d.ts +0 -57
  241. package/supervision/i18n/fr.translations.d.ts +0 -57
  242. package/supervision/index.d.ts +0 -5
  243. package/supervision/public-api.d.ts +0 -1
  244. package/supervision/store/supervision-api.model.d.ts +0 -36
  245. package/supervision/store/supervision.actions.d.ts +0 -121
  246. package/supervision/store/supervision.effects.d.ts +0 -51
  247. package/supervision/store/supervision.reducer.d.ts +0 -22
  248. package/supervision/store/supervision.selectors.d.ts +0 -18
  249. package/supervision/store/supervision.service.d.ts +0 -19
  250. package/supervision/supervision-routing.module.d.ts +0 -7
  251. package/supervision/supervision.module.d.ts +0 -25
@@ -29,10 +29,10 @@ export class AdminMenuComponent extends BaseMenuComponent {
29
29
  this.store.dispatch(AdminActions.highlightMenu({ menu }));
30
30
  }
31
31
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMenuComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
32
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminMenuComponent, selector: "pry-admin-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"menus$ | async as menus\">\n <ng-container *ngIf=\"menus.length > 0\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of menus\">\n <ng-container *ngIf=\"menu.module === 'supervision'\">\n <li *pryAccess=\"{ module: menu.module, page: menu.page }\" class=\"m-nav-links__list__item\">\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
32
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminMenuComponent, selector: "pry-admin-menu", usesInheritance: true, ngImport: i0, template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i2.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
33
33
  }
34
34
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminMenuComponent, decorators: [{
35
35
  type: Component,
36
- args: [{ selector: 'pry-admin-menu', template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n <ng-container *ngIf=\"menus$ | async as menus\">\n <ng-container *ngIf=\"menus.length > 0\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of menus\">\n <ng-container *ngIf=\"menu.module === 'supervision'\">\n <li *pryAccess=\"{ module: menu.module, page: menu.page }\" class=\"m-nav-links__list__item\">\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n </ng-container>\n</nav>\n" }]
36
+ args: [{ selector: 'pry-admin-menu', template: "<nav class=\"m-nav-links\">\n <ng-container *ngFor=\"let sub of subMenu$ | async\">\n <ul class=\"m-nav-links__list\">\n <ng-container *ngFor=\"let menu of sub.subMenus\">\n <li\n *pryAccess=\"{ module: menu.module, page: menu.page, subMenu: menu.subMenu }\"\n class=\"m-nav-links__list__item\"\n >\n <a [routerLink]=\"menu.menu\" class=\"a-btn a-btn--secondary -width-full\" [routerLinkActive]=\"'is-active'\">\n {{ baseMenuTranslation + menu.menu | i18n }}\n </a>\n </li>\n </ng-container>\n </ul>\n </ng-container>\n</nav>\n" }]
37
37
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }]; } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLW1lbnUvYWRtaW4tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL2Jhc2UtbWVudS9iYXNlLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBTTdELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFHdkQsWUFDRSxLQUFpQixFQUNULE1BQWMsRUFDZCxLQUFxQjtRQUU3QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFHN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFUSxJQUFJO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdkYsQ0FBQztJQUNKLENBQUM7SUFFUSxNQUFNLENBQUMsSUFBWTtRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDOytHQTFCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2RUNiL0IsaXlDQStCQTs7NEZEbEJhLGtCQUFrQjtrQkFKOUIsU0FBUzsrQkFDRSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBCYXNlTWVudUNvbXBvbmVudCB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5TZWxlY3RvcnMgfSBmcm9tICcuLi8uLi9zdG9yZS9hZG1pbi5zZWxlY3RvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktYWRtaW4tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi4vLi4vLi4vbGliL2NvcmUvY29tcG9uZW50cy9iYXNlLW1lbnUvYmFzZS1tZW51LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pbk1lbnVDb21wb25lbnQgZXh0ZW5kcyBCYXNlTWVudUNvbXBvbmVudCB7XG4gIHByaXZhdGUgbGltaXQkPzogQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc3RvcmU6IFN0b3JlPGFueT4sXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuICApIHtcbiAgICBzdXBlcihzdG9yZSk7XG4gICAgdGhpcy5iYXNlTWVudVRyYW5zbGF0aW9uID0gJ0BwcnkuYWRtaW4ubWVudXMuJztcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMucm91dGUuZGF0YS5zdWJzY3JpYmUoKGRhdGEpID0+IHRoaXMubGltaXQkPy5uZXh0KGRhdGFbJ2xpbWl0TWVudSddKSkpO1xuICB9XG5cbiAgb3ZlcnJpZGUgaW5pdCgpIHtcbiAgICB0aGlzLm1lbnVzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluU2VsZWN0b3JzLm1lbnVzKTtcbiAgICB0aGlzLmhpZ2hsaWdodGVkTWVudSQgPSB0aGlzLnN0b3JlLnNlbGVjdChBZG1pblNlbGVjdG9ycy5oaWdobGlnaHRlZE1lbnUpO1xuICAgIHRoaXMubGltaXQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gICAgdGhpcy5zdWJNZW51JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc3RvcmUuc2VsZWN0KEFkbWluU2VsZWN0b3JzLnN1Yk1lbnVzKSwgdGhpcy5saW1pdCRdKS5waXBlKFxuICAgICAgbWFwKChbbWVudXMsIGxpbWl0XSkgPT4gKGxpbWl0ID8gbWVudXMuZmlsdGVyKChtZW51KSA9PiBtZW51Lm5hbWUgPT09IGxpbWl0KSA6IG1lbnVzKSlcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2VsZWN0KG1lbnU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFttZW51XSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiBwYXRoLnRvU3RyaW5nKCksIHBhcmFtczogdW5kZWZpbmVkIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluQWN0aW9ucy5oaWdobGlnaHRNZW51KHsgbWVudSB9KSk7XG4gIH1cbn1cbiIsIjxuYXYgY2xhc3M9XCJtLW5hdi1saW5rc1wiPlxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzdWIgb2Ygc3ViTWVudSQgfCBhc3luY1wiPlxuICAgIDx1bCBjbGFzcz1cIm0tbmF2LWxpbmtzX19saXN0XCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBtZW51IG9mIHN1Yi5zdWJNZW51c1wiPlxuICAgICAgICA8bGlcbiAgICAgICAgICAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6IG1lbnUubW9kdWxlLCBwYWdlOiBtZW51LnBhZ2UsIHN1Yk1lbnU6IG1lbnUuc3ViTWVudSB9XCJcbiAgICAgICAgICBjbGFzcz1cIm0tbmF2LWxpbmtzX19saXN0X19pdGVtXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhIFtyb3V0ZXJMaW5rXT1cIm1lbnUubWVudVwiIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeSAtd2lkdGgtZnVsbFwiIFtyb3V0ZXJMaW5rQWN0aXZlXT1cIidpcy1hY3RpdmUnXCI+XG4gICAgICAgICAgICB7eyBiYXNlTWVudVRyYW5zbGF0aW9uICsgbWVudS5tZW51IHwgaTE4biB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudXMkIHwgYXN5bmMgYXMgbWVudXNcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWVudXMubGVuZ3RoID4gMFwiPlxuICAgICAgPHVsIGNsYXNzPVwibS1uYXYtbGlua3NfX2xpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVudSBvZiBtZW51c1wiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtZW51Lm1vZHVsZSA9PT0gJ3N1cGVydmlzaW9uJ1wiPlxuICAgICAgICAgICAgPGxpICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogbWVudS5tb2R1bGUsIHBhZ2U6IG1lbnUucGFnZSB9XCIgY2xhc3M9XCJtLW5hdi1saW5rc19fbGlzdF9faXRlbVwiPlxuICAgICAgICAgICAgICA8YSBbcm91dGVyTGlua109XCJtZW51Lm1lbnVcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnkgLXdpZHRoLWZ1bGxcIiBbcm91dGVyTGlua0FjdGl2ZV09XCInaXMtYWN0aXZlJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGJhc2VNZW51VHJhbnNsYXRpb24gKyBtZW51Lm1lbnUgfCBpMThuIH19XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC91bD5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25hdj5cbiJdfQ==
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLW1lbnUvYWRtaW4tbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9saWIvY29yZS9jb21wb25lbnRzL2Jhc2UtbWVudS9iYXNlLW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcxQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7O0FBTTdELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxpQkFBaUI7SUFHdkQsWUFDRSxLQUFpQixFQUNULE1BQWMsRUFDZCxLQUFxQjtRQUU3QixLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFITCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFHN0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFUSxJQUFJO1FBQ1gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMxRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFxQixTQUFTLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzNGLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDdkYsQ0FBQztJQUNKLENBQUM7SUFFUSxNQUFNLENBQUMsSUFBWTtRQUMxQixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDOytHQTFCVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2RUNiL0IsdW1CQWdCQTs7NEZESGEsa0JBQWtCO2tCQUo5QixTQUFTOytCQUNFLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEJhc2VNZW51Q29tcG9uZW50IH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pblNlbGVjdG9ycyB9IGZyb20gJy4uLy4uL3N0b3JlL2FkbWluLnNlbGVjdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuLi8uLi8uLi9saWIvY29yZS9jb21wb25lbnRzL2Jhc2UtbWVudS9iYXNlLW1lbnUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFkbWluTWVudUNvbXBvbmVudCBleHRlbmRzIEJhc2VNZW51Q29tcG9uZW50IHtcbiAgcHJpdmF0ZSBsaW1pdCQ/OiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHN1cGVyKHN0b3JlKTtcbiAgICB0aGlzLmJhc2VNZW51VHJhbnNsYXRpb24gPSAnQHByeS5hZG1pbi5tZW51cy4nO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQodGhpcy5yb3V0ZS5kYXRhLnN1YnNjcmliZSgoZGF0YSkgPT4gdGhpcy5saW1pdCQ/Lm5leHQoZGF0YVsnbGltaXRNZW51J10pKSk7XG4gIH1cblxuICBvdmVycmlkZSBpbml0KCkge1xuICAgIHRoaXMubWVudXMkID0gdGhpcy5zdG9yZS5zZWxlY3QoQWRtaW5TZWxlY3RvcnMubWVudXMpO1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWRNZW51JCA9IHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluU2VsZWN0b3JzLmhpZ2hsaWdodGVkTWVudSk7XG4gICAgdGhpcy5saW1pdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICB0aGlzLnN1Yk1lbnUkID0gY29tYmluZUxhdGVzdChbdGhpcy5zdG9yZS5zZWxlY3QoQWRtaW5TZWxlY3RvcnMuc3ViTWVudXMpLCB0aGlzLmxpbWl0JF0pLnBpcGUoXG4gICAgICBtYXAoKFttZW51cywgbGltaXRdKSA9PiAobGltaXQgPyBtZW51cy5maWx0ZXIoKG1lbnUpID0+IG1lbnUubmFtZSA9PT0gbGltaXQpIDogbWVudXMpKVxuICAgICk7XG4gIH1cblxuICBvdmVycmlkZSBzZWxlY3QobWVudTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoW21lbnVdLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHBhdGgudG9TdHJpbmcoKSwgcGFyYW1zOiB1bmRlZmluZWQgfSkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLmhpZ2hsaWdodE1lbnUoeyBtZW51IH0pKTtcbiAgfVxufVxuIiwiPG5hdiBjbGFzcz1cIm0tbmF2LWxpbmtzXCI+XG4gIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN1YiBvZiBzdWJNZW51JCB8IGFzeW5jXCI+XG4gICAgPHVsIGNsYXNzPVwibS1uYXYtbGlua3NfX2xpc3RcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbnUgb2Ygc3ViLnN1Yk1lbnVzXCI+XG4gICAgICAgIDxsaVxuICAgICAgICAgICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogbWVudS5tb2R1bGUsIHBhZ2U6IG1lbnUucGFnZSwgc3ViTWVudTogbWVudS5zdWJNZW51IH1cIlxuICAgICAgICAgIGNsYXNzPVwibS1uYXYtbGlua3NfX2xpc3RfX2l0ZW1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGEgW3JvdXRlckxpbmtdPVwibWVudS5tZW51XCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5IC13aWR0aC1mdWxsXCIgW3JvdXRlckxpbmtBY3RpdmVdPVwiJ2lzLWFjdGl2ZSdcIj5cbiAgICAgICAgICAgIHt7IGJhc2VNZW51VHJhbnNsYXRpb24gKyBtZW51Lm1lbnUgfCBpMThuIH19XG4gICAgICAgICAgPC9hPlxuICAgICAgICA8L2xpPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC91bD5cbiAgPC9uZy1jb250YWluZXI+XG48L25hdj5cbiJdfQ==
@@ -110,11 +110,11 @@ export class FormMetadataComponent {
110
110
  return path.toString();
111
111
  }
112
112
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormMetadataComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: { titleForm: "titleForm", isMetaSimpleEdit: "isMetaSimpleEdit", isMetaUser: "isMetaUser", metadata: "metadata" }, outputs: { submitMetadata$: "submitMetadata$" }, ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n class=\"a-pry-select\"\n id=\"metadata-type\"\n formControlName=\"type\"\n [labelTranslate]=\"true\"\n [items]=\"metaOptions\"\n [itemsAsOption]=\"true\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FormMetadataComponent, selector: "pry-form-metadata", inputs: { titleForm: "titleForm", isMetaSimpleEdit: "isMetaSimpleEdit", isMetaUser: "isMetaUser", metadata: "metadata" }, outputs: { submitMetadata$: "submitMetadata$" }, ngImport: i0, template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"metadata-type\"\n formControlName=\"type\"\n [items]=\"metaOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n", dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
114
114
  }
115
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FormMetadataComponent, decorators: [{
116
116
  type: Component,
117
- args: [{ selector: 'pry-form-metadata', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n class=\"a-pry-select\"\n id=\"metadata-type\"\n formControlName=\"type\"\n [labelTranslate]=\"true\"\n [items]=\"metaOptions\"\n [itemsAsOption]=\"true\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n" }]
117
+ args: [{ selector: 'pry-form-metadata', template: "<div class=\"o-base-container\">\n <h1 class=\"a-h1\">{{ titleForm }}</h1>\n\n <form class=\"o-form\" [formGroup]=\"metaForm\" (ngSubmit)=\"addMetadata()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"metadata-name\">\n {{ '@pry.admin.metadata.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-name\"\n type=\"text\"\n formControlName=\"name\"\n [required]=\"!metadata\"\n [attr.aria-labelledby]=\"isSubmitted && metaForm.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && metaForm.get('name')?.invalid\"\n />\n <label\n *ngIf=\"isSubmitted && metaForm.get('name')?.invalid\"\n id=\"name-error\"\n for=\"metadata-name\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"metaForm.get('name')?.hasError('same-name')\">{{ '@pry.admin.exists' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <span *ngIf=\"metaForm.get('name')?.hasError('pattern')\">{{ '@pry.admin.classes.formatName' | i18n }}</span>\n </label>\n </div>\n\n <div class=\"m-form-label-field -width-md\">\n <label class=\"a-label\" for=\"metadata_description\">{{ '@pry.admin.metadata.description' | i18n }}</label>\n <textarea\n rows=\"5\"\n type=\"text\"\n id=\"metadata_description\"\n class=\"a-form-field\"\n formControlName=\"description\"\n ></textarea>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label for=\"metadata-type\" id=\"metadata-type-label\" class=\"a-label\">\n {{ '@pry.admin.metadata.type' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <pry-select\n id=\"metadata-type\"\n formControlName=\"type\"\n [items]=\"metaOptions\"\n bindValue=\"varType\"\n bindLabel=\"translation\"\n [readonly]=\"!!metadata\"\n [isForm]=\"true\"\n (ngModelChange)=\"addItemList($event)\"\n aria-labelledby=\"metadata-type-label\"\n ></pry-select>\n </div>\n\n <ng-container *ngIf=\"metaForm.value.type === 'LIST'\">\n <div class=\"o-datas-list-wrapper\" formArrayName=\"allowedValues\" *ngIf=\"metadataList.controls.length > 0\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.admin.varType.list' | i18n }}</legend>\n\n <div class=\"o-datas-list metadata-list\" *ngFor=\"let control of metadataList.controls; let i = index\">\n <div class=\"o-datas-list__fields metadata-input\">\n <div class=\"m-form-label-field -width-sm\">\n <label id=\"metadata-list-label\" for=\"metadata-list\" class=\"a-label\">\n {{ '@pry.admin.metadata.listLabel' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n class=\"a-form-field\"\n id=\"metadata-list\"\n formControlName=\"{{ i }}\"\n [required]=\"!control.value\"\n [attr.aria-invalid]=\"isSubmitted && control?.invalid\"\n [attr.aria-labelledby]=\"\n isSubmitted && control?.invalid ? 'metadata-list-label metadata-list-error' : 'metadata-list-label'\n \"\n />\n <label\n *ngIf=\"isSubmitted && control.invalid\"\n id=\"metadata-list-error\"\n for=\"metadata-list\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <div class=\"m-btn-group m-btn-group--input-actions\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i === metadataList.controls.length - 1\"\n (click)=\"control.value.trim() !== '' ? addItemList() : undefined\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.addValue' | i18n }}</span>\n <pry-icon iconSvg=\"add\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n <button\n type=\"button\"\n class=\"a-btn a-btn--input-action\"\n *ngIf=\"i !== 0 && !metadataList.controls[i].disabled\"\n (click)=\"removeItemList(i)\"\n >\n <span class=\"u-visually-hidden\">{{ '@pry.admin.metadata.removeValue' | i18n }}</span>\n <pry-icon iconSvg=\"delete\" [width]=\"20\" [height]=\"20\"></pry-icon>\n </button>\n </div>\n </div>\n </div>\n </fieldset>\n </div>\n </ng-container>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadata ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n </form>\n</div>\n" }]
118
118
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }]; }, propDecorators: { titleForm: [{
119
119
  type: Input
120
120
  }], isMetaSimpleEdit: [{
@@ -126,4 +126,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
126
126
  }], submitMetadata$: [{
127
127
  type: Output
128
128
  }] } });
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXRhZGF0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL3NoYXJlZC9mb3JtLW1ldGFkYXRhL2Zvcm0tbWV0YWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvZm9ybS1tZXRhZGF0YS9mb3JtLW1ldGFkYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBd0Msa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hILE9BQU8sRUFBYSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBTS9ELE1BQU0sT0FBTyxxQkFBcUI7SUFtQmhDLFlBQ1UsS0FBaUIsRUFDakIsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQStCO1FBSC9CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENB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QUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0F4SFUscUJBQXFCO21HQUFyQixxQkFBcUIsb09DZGxDLDRwTEF1SUE7OzRGRHpIYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1COytLQWVwQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgSU1ldGFkYXRhLCBNRVRBX09QVElPTlMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgTWV0YWRhdGFTZWxlY3RvcnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9tZXRhZGF0YS1lZGl0b3InO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZm9ybS1tZXRhZGF0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLW1ldGFkYXRhLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtTWV0YWRhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG1ldGFGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBtZXRhT3B0aW9ucyA9IE1FVEFfT1BUSU9OUztcbiAgY3VycmVudFR5cGVUcmFuc2xhdGlvbiA9ICcnO1xuXG4gIG1ldGFkYXRhTmFtZXMkPzogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIG5hbWVBbHJlYWR5RXhpc3RzJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdGl0bGVGb3JtOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaXNNZXRhU2ltcGxlRWRpdCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc01ldGFVc2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1ldGFkYXRhPzogSU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBzdWJtaXRNZXRhZGF0YSQ6IEV2ZW50RW1pdHRlcjxJTWV0YWRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcjxJTWV0YWRhdGE+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLm1ldGFGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3sgdmFsdWU6IHV1aWQoKSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB0eXBlOiBbdGhpcy5tZXRhT3B0aW9uc1swXS52YXJUeXBlXSxcbiAgICAgIGRlc2NyaXB0aW9uOiBbXSxcbiAgICAgIGFsbG93ZWRWYWx1ZXM6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc01ldGFVc2VyKSB7XG4gICAgICB0aGlzLm1ldGFkYXRhTmFtZXMkID0gdGhpcy5zdG9yZVxuICAgICAgICAuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLnVzZXJQcm9maWxlKVxuICAgICAgICAucGlwZShtYXAoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5tYXAoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCkpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YWRhdGFOYW1lcyQgPSB0aGlzLnN0b3JlXG4gICAgICAgIC5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpXG4gICAgICAgIC5waXBlKG1hcCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLm1hcCgobWV0YWRhdGE6IElNZXRhZGF0YSkgPT4gbWV0YWRhdGEubmFtZS50b0xvd2VyQ2FzZSgpKSkpO1xuICAgIH1cblxuICAgIHRoaXMubmFtZUFscmVhZHlFeGlzdHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1ldGFGb3JtLmdldCgnbmFtZScpPy52YWx1ZUNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgdGhpcy5tZXRhZGF0YU5hbWVzJFxuICAgIF0pLnBpcGUobWFwKChbdmFsdWUsIG1ldGFOYW1lc10pID0+IG1ldGFOYW1lcy5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKSAmJiB2YWx1ZSAhPSB0aGlzLm1ldGFkYXRhPy5uYW1lKSk7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5uYW1lQWxyZWFkeUV4aXN0cyQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFGb3JtLmNvbnRyb2xzWyduYW1lJ10uc2V0RXJyb3JzKHsgJ3NhbWUtbmFtZSc6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMubWV0YWRhdGEpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBNRVRBX09QVElPTlMuZmluZCgoZWwpID0+IGVsLnZhclR5cGUgPT09IHRoaXMubWV0YWRhdGE/LnR5cGUpO1xuICAgICAgdGhpcy5jdXJyZW50VHlwZVRyYW5zbGF0aW9uID0gdHlwZSA/IHR5cGUudHJhbnNsYXRpb24gOiBNRVRBX09QVElPTlNbMF0udHJhbnNsYXRpb247XG4gICAgICB0aGlzLm1ldGFGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBpZDogdGhpcy5tZXRhZGF0YS5pZCxcbiAgICAgICAgbmFtZTogdGhpcy5tZXRhZGF0YS5uYW1lLFxuICAgICAgICB0eXBlOiB0aGlzLm1ldGFkYXRhLnR5cGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLm1ldGFkYXRhLmRlc2NyaXB0aW9uXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmlzTWV0YVNpbXBsZUVkaXQpIHtcbiAgICAgICAgdGhpcy5tZXRhRm9ybS5jb250cm9sc1snbmFtZSddLmRpc2FibGUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubWV0YWRhdGEuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubWV0YWRhdGEuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICAgIHRoaXMubWV0YWRhdGFMaXN0LnB1c2gobmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiBpdGVtLCBkaXNhYmxlZDogdHJ1ZSB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IG1ldGFkYXRhTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhRm9ybS5jb250cm9sc1snYWxsb3dlZFZhbHVlcyddIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gIH1cblxuICBhZGRNZXRhZGF0YSgpIHtcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5tZXRhRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgbGV0IHBheWxvYWQgPSB7XG4gICAgICAgIC4uLnRoaXMubWV0YUZvcm0uZ2V0UmF3VmFsdWUoKSxcbiAgICAgICAgYWxsb3dlZFZhbHVlczogdGhpcy5tZXRhRm9ybS5nZXRSYXdWYWx1ZSgpLmFsbG93ZWRWYWx1ZXMuZmlsdGVyKCh4OiBzdHJpbmcpID0+IHggIT09IG51bGwpXG4gICAgICB9O1xuICAgICAgdGhpcy5zdWJtaXRNZXRhZGF0YSQuZW1pdChwYXlsb2FkKTtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkSXRlbUxpc3QodHlwZT86IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnTElTVCcgfHwgdHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1ldGFkYXRhTGlzdC5wdXNoKG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVJdGVtTGlzdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5tZXRhZGF0YUxpc3QucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiB0aGlzLmdldFBhdGgoKSB9KSk7XG4gIH1cblxuICBnZXRQYXRoKCkge1xuICAgIGxldCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICBpZiAodGhpcy5tZXRhZGF0YSkge1xuICAgICAgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuLi8uLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoLnRvU3RyaW5nKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWJhc2UtY29udGFpbmVyXCI+XG4gIDxoMSBjbGFzcz1cImEtaDFcIj57eyB0aXRsZUZvcm0gfX08L2gxPlxuXG4gIDxmb3JtIGNsYXNzPVwiby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJtZXRhRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRNZXRhZGF0YSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBpZD1cIm5hbWUtbGFiZWxcIiBmb3I9XCJtZXRhZGF0YS1uYW1lXCI+XG4gICAgICAgIHt7ICdAcHJ5LmFkbWluLm1ldGFkYXRhLmxhYmVsJyB8IGkxOG4gfX0gKlxuICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgIGlkPVwibWV0YWRhdGEtbmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCIhbWV0YWRhdGFcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXNTdWJtaXR0ZWQgJiYgbWV0YUZvcm0uZ2V0KCduYW1lJyk/LmludmFsaWQgPyAnbmFtZS1sYWJlbCBuYW1lLWVycm9yJyA6ICduYW1lLWxhYmVsJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBtZXRhRm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZFwiXG4gICAgICAvPlxuICAgICAgPGxhYmVsXG4gICAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgbWV0YUZvcm0uZ2V0KCduYW1lJyk/LmludmFsaWRcIlxuICAgICAgICBpZD1cIm5hbWUtZXJyb3JcIlxuICAgICAgICBmb3I9XCJtZXRhZGF0YS1uYW1lXCJcbiAgICAgICAgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJtZXRhRm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ3NhbWUtbmFtZScpXCI+e3sgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwibWV0YUZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJtZXRhRm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuZm9ybWF0TmFtZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLW1kXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwibWV0YWRhdGFfZGVzY3JpcHRpb25cIj57eyAnQHByeS5hZG1pbi5tZXRhZGF0YS5kZXNjcmlwdGlvbicgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgaWQ9XCJtZXRhZGF0YV9kZXNjcmlwdGlvblwiXG4gICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgPjwvdGV4dGFyZWE+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgICAgPGxhYmVsIGZvcj1cIm1ldGFkYXRhLXR5cGVcIiBpZD1cIm1ldGFkYXRhLXR5cGUtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEudHlwZScgfCBpMThuIH19ICpcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICAgIGlkPVwibWV0YWRhdGEtdHlwZVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInR5cGVcIlxuICAgICAgICBbbGFiZWxUcmFuc2xhdGVdPVwidHJ1ZVwiXG4gICAgICAgIFtpdGVtc109XCJtZXRhT3B0aW9uc1wiXG4gICAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgICBiaW5kVmFsdWU9XCJ2YXJUeXBlXCJcbiAgICAgICAgYmluZExhYmVsPVwidHJhbnNsYXRpb25cIlxuICAgICAgICBbcmVhZG9ubHldPVwiISFtZXRhZGF0YVwiXG4gICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImFkZEl0ZW1MaXN0KCRldmVudClcIlxuICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJtZXRhZGF0YS10eXBlLWxhYmVsXCJcbiAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibWV0YUZvcm0udmFsdWUudHlwZSA9PT0gJ0xJU1QnXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiby1kYXRhcy1saXN0LXdyYXBwZXJcIiBmb3JtQXJyYXlOYW1lPVwiYWxsb3dlZFZhbHVlc1wiICpuZ0lmPVwibWV0YWRhdGFMaXN0LmNvbnRyb2xzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPGZpZWxkc2V0PlxuICAgICAgICAgIDxsZWdlbmQgY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFkbWluLnZhclR5cGUubGlzdCcgfCBpMThuIH19PC9sZWdlbmQ+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1kYXRhcy1saXN0IG1ldGFkYXRhLWxpc3RcIiAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBtZXRhZGF0YUxpc3QuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWRhdGFzLWxpc3RfX2ZpZWxkcyBtZXRhZGF0YS1pbnB1dFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cIm1ldGFkYXRhLWxpc3QtbGFiZWxcIiBmb3I9XCJtZXRhZGF0YS1saXN0XCIgY2xhc3M9XCJhLWxhYmVsXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5tZXRhZGF0YS5saXN0TGFiZWwnIHwgaTE4biB9fSAqXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm1ldGFkYXRhLWxpc3RcIlxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwie3sgaSB9fVwiXG4gICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiIWNvbnRyb2wudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGNvbnRyb2w/LmludmFsaWRcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgICAgICAgICBpc1N1Ym1pdHRlZCAmJiBjb250cm9sPy5pbnZhbGlkID8gJ21ldGFkYXRhLWxpc3QtbGFiZWwgbWV0YWRhdGEtbGlzdC1lcnJvcicgOiAnbWV0YWRhdGEtbGlzdC1sYWJlbCdcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgY29udHJvbC5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgIGlkPVwibWV0YWRhdGEtbGlzdC1lcnJvclwiXG4gICAgICAgICAgICAgICAgICBmb3I9XCJtZXRhZGF0YS1saXN0XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCBtLWJ0bi1ncm91cC0taW5wdXQtYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taW5wdXQtYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaSA9PT0gbWV0YWRhdGFMaXN0LmNvbnRyb2xzLmxlbmd0aCAtIDFcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNvbnRyb2wudmFsdWUudHJpbSgpICE9PSAnJyA/IGFkZEl0ZW1MaXN0KCkgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hZG1pbi5tZXRhZGF0YS5hZGRWYWx1ZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRcIiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWlucHV0LWFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImkgIT09IDAgJiYgIW1ldGFkYXRhTGlzdC5jb250cm9sc1tpXS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbUxpc3QoaSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hZG1pbi5tZXRhZGF0YS5yZW1vdmVWYWx1ZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJkZWxldGVcIiBbd2lkdGhdPVwiMjBcIiBbaGVpZ2h0XT1cIjIwXCI+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPGRpdiBjbGFzcz1cIm0tYnRuLWdyb3VwIC13aWR0aC1zbVwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCJcbiAgICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jYW5jZWwnIHwgaTE4blwiXG4gICAgICA+PC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgW2lubmVySFRNTF09XCIobWV0YWRhdGEgPyAnQHByeS5hZG1pbi5lZGl0JyA6ICdAcHJ5LmFkbWluLmNyZWF0ZScpIHwgaTE4blwiXG4gICAgICA+PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvZGl2PlxuIl19
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1tZXRhZGF0YS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhL3NoYXJlZC9mb3JtLW1ldGFkYXRhL2Zvcm0tbWV0YWRhdGEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS9zaGFyZWQvZm9ybS1tZXRhZGF0YS9mb3JtLW1ldGFkYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBd0Msa0JBQWtCLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR3hILE9BQU8sRUFBYSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOzs7Ozs7O0FBTS9ELE1BQU0sT0FBTyxxQkFBcUI7SUFtQmhDLFlBQ1UsS0FBaUIsRUFDakIsTUFBYyxFQUNkLEtBQXFCLEVBQ3JCLFdBQStCO1FBSC9CLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENB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QUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1NBQ3pFO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQzsrR0F4SFUscUJBQXFCO21HQUFyQixxQkFBcUIsb09DZGxDLHVqTEFvSUE7OzRGRHRIYSxxQkFBcUI7a0JBSmpDLFNBQVM7K0JBQ0UsbUJBQW1COytLQWVwQixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksZUFBZTtzQkFBeEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1CdWlsZGVyLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgSU1ldGFkYXRhLCBNRVRBX09QVElPTlMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgTWV0YWRhdGFTZWxlY3RvcnMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9tZXRhZGF0YS1lZGl0b3InO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwcnktZm9ybS1tZXRhZGF0YScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLW1ldGFkYXRhLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JtTWV0YWRhdGFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIG1ldGFGb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuICBtZXRhT3B0aW9ucyA9IE1FVEFfT1BUSU9OUztcbiAgY3VycmVudFR5cGVUcmFuc2xhdGlvbiA9ICcnO1xuXG4gIG1ldGFkYXRhTmFtZXMkPzogT2JzZXJ2YWJsZTxzdHJpbmdbXT47XG4gIG5hbWVBbHJlYWR5RXhpc3RzJD86IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgdGl0bGVGb3JtOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgaXNNZXRhU2ltcGxlRWRpdCA9IGZhbHNlO1xuICBASW5wdXQoKSBpc01ldGFVc2VyID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1ldGFkYXRhPzogSU1ldGFkYXRhO1xuXG4gIEBPdXRwdXQoKSBzdWJtaXRNZXRhZGF0YSQ6IEV2ZW50RW1pdHRlcjxJTWV0YWRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcjxJTWV0YWRhdGE+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLm1ldGFGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBpZDogW3sgdmFsdWU6IHV1aWQoKSwgZGlzYWJsZWQ6IHRydWUgfV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICB0eXBlOiBbdGhpcy5tZXRhT3B0aW9uc1swXS52YXJUeXBlXSxcbiAgICAgIGRlc2NyaXB0aW9uOiBbXSxcbiAgICAgIGFsbG93ZWRWYWx1ZXM6IHRoaXMuZm9ybUJ1aWxkZXIuYXJyYXkoW10pXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc01ldGFVc2VyKSB7XG4gICAgICB0aGlzLm1ldGFkYXRhTmFtZXMkID0gdGhpcy5zdG9yZVxuICAgICAgICAuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLnVzZXJQcm9maWxlKVxuICAgICAgICAucGlwZShtYXAoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5tYXAoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCkpKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWV0YWRhdGFOYW1lcyQgPSB0aGlzLnN0b3JlXG4gICAgICAgIC5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpXG4gICAgICAgIC5waXBlKG1hcCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLm1hcCgobWV0YWRhdGE6IElNZXRhZGF0YSkgPT4gbWV0YWRhdGEubmFtZS50b0xvd2VyQ2FzZSgpKSkpO1xuICAgIH1cblxuICAgIHRoaXMubmFtZUFscmVhZHlFeGlzdHMkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLm1ldGFGb3JtLmdldCgnbmFtZScpPy52YWx1ZUNoYW5nZXMgYXMgT2JzZXJ2YWJsZTxzdHJpbmc+LFxuICAgICAgdGhpcy5tZXRhZGF0YU5hbWVzJFxuICAgIF0pLnBpcGUobWFwKChbdmFsdWUsIG1ldGFOYW1lc10pID0+IG1ldGFOYW1lcy5pbmNsdWRlcyh2YWx1ZS50b0xvd2VyQ2FzZSgpKSAmJiB2YWx1ZSAhPSB0aGlzLm1ldGFkYXRhPy5uYW1lKSk7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5uYW1lQWxyZWFkeUV4aXN0cyQuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFGb3JtLmNvbnRyb2xzWyduYW1lJ10uc2V0RXJyb3JzKHsgJ3NhbWUtbmFtZSc6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfSlcbiAgICApO1xuXG4gICAgaWYgKHRoaXMubWV0YWRhdGEpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSBNRVRBX09QVElPTlMuZmluZCgoZWwpID0+IGVsLnZhclR5cGUgPT09IHRoaXMubWV0YWRhdGE/LnR5cGUpO1xuICAgICAgdGhpcy5jdXJyZW50VHlwZVRyYW5zbGF0aW9uID0gdHlwZSA/IHR5cGUudHJhbnNsYXRpb24gOiBNRVRBX09QVElPTlNbMF0udHJhbnNsYXRpb247XG4gICAgICB0aGlzLm1ldGFGb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICBpZDogdGhpcy5tZXRhZGF0YS5pZCxcbiAgICAgICAgbmFtZTogdGhpcy5tZXRhZGF0YS5uYW1lLFxuICAgICAgICB0eXBlOiB0aGlzLm1ldGFkYXRhLnR5cGUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLm1ldGFkYXRhLmRlc2NyaXB0aW9uXG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmlzTWV0YVNpbXBsZUVkaXQpIHtcbiAgICAgICAgdGhpcy5tZXRhRm9ybS5jb250cm9sc1snbmFtZSddLmRpc2FibGUoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMubWV0YWRhdGEuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMubWV0YWRhdGEuYWxsb3dlZFZhbHVlcykge1xuICAgICAgICAgIHRoaXMubWV0YWRhdGFMaXN0LnB1c2gobmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiBpdGVtLCBkaXNhYmxlZDogdHJ1ZSB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1Yi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0IG1ldGFkYXRhTGlzdCgpIHtcbiAgICByZXR1cm4gdGhpcy5tZXRhRm9ybS5jb250cm9sc1snYWxsb3dlZFZhbHVlcyddIGFzIFVudHlwZWRGb3JtQXJyYXk7XG4gIH1cblxuICBhZGRNZXRhZGF0YSgpIHtcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5tZXRhRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgbGV0IHBheWxvYWQgPSB7XG4gICAgICAgIC4uLnRoaXMubWV0YUZvcm0uZ2V0UmF3VmFsdWUoKSxcbiAgICAgICAgYWxsb3dlZFZhbHVlczogdGhpcy5tZXRhRm9ybS5nZXRSYXdWYWx1ZSgpLmFsbG93ZWRWYWx1ZXMuZmlsdGVyKCh4OiBzdHJpbmcpID0+IHggIT09IG51bGwpXG4gICAgICB9O1xuICAgICAgdGhpcy5zdWJtaXRNZXRhZGF0YSQuZW1pdChwYXlsb2FkKTtcbiAgICAgIHRoaXMuZ29CYWNrKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkSXRlbUxpc3QodHlwZT86IHN0cmluZykge1xuICAgIGlmICh0eXBlID09PSAnTElTVCcgfHwgdHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm1ldGFkYXRhTGlzdC5wdXNoKG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpKTtcbiAgICB9XG4gIH1cblxuICByZW1vdmVJdGVtTGlzdChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5tZXRhZGF0YUxpc3QucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgZ29CYWNrKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnJvdXRlVG8oeyBwYXRoOiB0aGlzLmdldFBhdGgoKSB9KSk7XG4gIH1cblxuICBnZXRQYXRoKCkge1xuICAgIGxldCBwYXRoID0gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZShbJy4uJ10sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgICBpZiAodGhpcy5tZXRhZGF0YSkge1xuICAgICAgcGF0aCA9IHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUoWycuLi8uLiddLCB7IHJlbGF0aXZlVG86IHRoaXMucm91dGUgfSk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoLnRvU3RyaW5nKCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLWJhc2UtY29udGFpbmVyXCI+XG4gIDxoMSBjbGFzcz1cImEtaDFcIj57eyB0aXRsZUZvcm0gfX08L2gxPlxuXG4gIDxmb3JtIGNsYXNzPVwiby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJtZXRhRm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGRNZXRhZGF0YSgpXCI+XG4gICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBpZD1cIm5hbWUtbGFiZWxcIiBmb3I9XCJtZXRhZGF0YS1uYW1lXCI+XG4gICAgICAgIHt7ICdAcHJ5LmFkbWluLm1ldGFkYXRhLmxhYmVsJyB8IGkxOG4gfX0gKlxuICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgIGlkPVwibWV0YWRhdGEtbmFtZVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgIFtyZXF1aXJlZF09XCIhbWV0YWRhdGFcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXNTdWJtaXR0ZWQgJiYgbWV0YUZvcm0uZ2V0KCduYW1lJyk/LmludmFsaWQgPyAnbmFtZS1sYWJlbCBuYW1lLWVycm9yJyA6ICduYW1lLWxhYmVsJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBtZXRhRm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZFwiXG4gICAgICAvPlxuICAgICAgPGxhYmVsXG4gICAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgbWV0YUZvcm0uZ2V0KCduYW1lJyk/LmludmFsaWRcIlxuICAgICAgICBpZD1cIm5hbWUtZXJyb3JcIlxuICAgICAgICBmb3I9XCJtZXRhZGF0YS1uYW1lXCJcbiAgICAgICAgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJtZXRhRm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ3NhbWUtbmFtZScpXCI+e3sgJ0BwcnkuYWRtaW4uZXhpc3RzJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwibWV0YUZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJtZXRhRm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPnt7ICdAcHJ5LmFkbWluLmNsYXNzZXMuZm9ybWF0TmFtZScgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLW1kXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwibWV0YWRhdGFfZGVzY3JpcHRpb25cIj57eyAnQHByeS5hZG1pbi5tZXRhZGF0YS5kZXNjcmlwdGlvbicgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICByb3dzPVwiNVwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgaWQ9XCJtZXRhZGF0YV9kZXNjcmlwdGlvblwiXG4gICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgPjwvdGV4dGFyZWE+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgICAgPGxhYmVsIGZvcj1cIm1ldGFkYXRhLXR5cGVcIiBpZD1cIm1ldGFkYXRhLXR5cGUtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIj5cbiAgICAgICAge3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEudHlwZScgfCBpMThuIH19ICpcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgIDwvbGFiZWw+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBpZD1cIm1ldGFkYXRhLXR5cGVcIlxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0eXBlXCJcbiAgICAgICAgW2l0ZW1zXT1cIm1ldGFPcHRpb25zXCJcbiAgICAgICAgYmluZFZhbHVlPVwidmFyVHlwZVwiXG4gICAgICAgIGJpbmRMYWJlbD1cInRyYW5zbGF0aW9uXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cIiEhbWV0YWRhdGFcIlxuICAgICAgICBbaXNGb3JtXT1cInRydWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJhZGRJdGVtTGlzdCgkZXZlbnQpXCJcbiAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibWV0YWRhdGEtdHlwZS1sYWJlbFwiXG4gICAgICA+PC9wcnktc2VsZWN0PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1ldGFGb3JtLnZhbHVlLnR5cGUgPT09ICdMSVNUJ1wiPlxuICAgICAgPGRpdiBjbGFzcz1cIm8tZGF0YXMtbGlzdC13cmFwcGVyXCIgZm9ybUFycmF5TmFtZT1cImFsbG93ZWRWYWx1ZXNcIiAqbmdJZj1cIm1ldGFkYXRhTGlzdC5jb250cm9scy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxmaWVsZHNldD5cbiAgICAgICAgICA8bGVnZW5kIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hZG1pbi52YXJUeXBlLmxpc3QnIHwgaTE4biB9fTwvbGVnZW5kPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tZGF0YXMtbGlzdCBtZXRhZGF0YS1saXN0XCIgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2YgbWV0YWRhdGFMaXN0LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1kYXRhcy1saXN0X19maWVsZHMgbWV0YWRhdGEtaW5wdXRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJtZXRhZGF0YS1saXN0LWxhYmVsXCIgZm9yPVwibWV0YWRhdGEtbGlzdFwiIGNsYXNzPVwiYS1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEubGlzdExhYmVsJyB8IGkxOG4gfX0gKlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJtZXRhZGF0YS1saXN0XCJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInt7IGkgfX1cIlxuICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIiFjb250cm9sLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBjb250cm9sPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICAgICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgY29udHJvbD8uaW52YWxpZCA/ICdtZXRhZGF0YS1saXN0LWxhYmVsIG1ldGFkYXRhLWxpc3QtZXJyb3InIDogJ21ldGFkYXRhLWxpc3QtbGFiZWwnXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGNvbnRyb2wuaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICBpZD1cIm1ldGFkYXRhLWxpc3QtZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgZm9yPVwibWV0YWRhdGEtbGlzdFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgbS1idG4tZ3JvdXAtLWlucHV0LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLWlucHV0LWFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImkgPT09IG1ldGFkYXRhTGlzdC5jb250cm9scy5sZW5ndGggLSAxXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJjb250cm9sLnZhbHVlLnRyaW0oKSAhPT0gJycgPyBhZGRJdGVtTGlzdCgpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEuYWRkVmFsdWUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkXCIgW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1pbnB1dC1hY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpICE9PSAwICYmICFtZXRhZGF0YUxpc3QuY29udHJvbHNbaV0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZUl0ZW1MaXN0KGkpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+e3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEucmVtb3ZlVmFsdWUnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiZGVsZXRlXCIgW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZmllbGRzZXQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtd2lkdGgtc21cIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgICAgPjwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiKG1ldGFkYXRhID8gJ0BwcnkuYWRtaW4uZWRpdCcgOiAnQHByeS5hZG1pbi5jcmVhdGUnKSB8IGkxOG5cIlxuICAgICAgPjwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2Rpdj5cbiJdfQ==
@@ -119,12 +119,12 @@ export class AdminFormMetadataRulesComponent {
119
119
  }
120
120
  }
121
121
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFormMetadataRulesComponent, deps: [{ token: i1.Store }, { token: i2.Router }, { token: i2.ActivatedRoute }, { token: i3.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
122
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: { metadataRules: "metadataRules" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"item\"\n formControlName=\"metadataItem\"\n [labelTranslate]=\"true\"\n [items]=\"metadataList\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"user\"\n formControlName=\"metadataUser\"\n [labelTranslate]=\"true\"\n [items]=\"metadataUserListFilter\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["labelTranslate", "baseTranslate", "translationFn", "translationFnArgs", "clearable", "multiple", "multipleClearRight", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "items", "itemsAsOption", "bindData", "bindValue", "bindLabel", "bindIcon", "iconSize", "templateLabel", "templateOption", "autocomplete"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AdminFormMetadataRulesComponent, selector: "pry-admin-form-metadata-rules", inputs: { metadataRules: "metadataRules" }, ngImport: i0, template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n id=\"item\"\n formControlName=\"metadataItem\"\n [items]=\"metadataList\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n id=\"user\"\n formControlName=\"metadataUser\"\n [items]=\"metadataUserListFilter\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "readonly", "autocomplete", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "elementRef"], outputs: ["searched", "cleared"] }, { kind: "pipe", type: i5.I18nPipe, name: "i18n" }] }); }
123
123
  }
124
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AdminFormMetadataRulesComponent, decorators: [{
125
125
  type: Component,
126
- args: [{ selector: 'pry-admin-form-metadata-rules', template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"item\"\n formControlName=\"metadataItem\"\n [labelTranslate]=\"true\"\n [items]=\"metadataList\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n class=\"a-pry-select\"\n id=\"user\"\n formControlName=\"metadataUser\"\n [labelTranslate]=\"true\"\n [items]=\"metadataUserListFilter\"\n [itemsAsOption]=\"true\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n" }]
126
+ args: [{ selector: 'pry-admin-form-metadata-rules', template: "<form class=\"o-form\" [formGroup]=\"form\" (ngSubmit)=\"submit()\">\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"name-label\" for=\"name\">\n {{ '@pry.admin.metadata-rules.label' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"name\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"name\"\n (ngModelChange)=\"changeValueName($event)\"\n [attr.aria-labelledby]=\"isSubmitted && form.get('name')?.invalid ? 'name-label name-error' : 'name-label'\"\n [attr.aria-invalid]=\"isSubmitted && form.get('name')?.invalid\"\n required\n />\n <label\n class=\"a-label a-label--help -error\"\n id=\"name-error\"\n for=\"name\"\n *ngIf=\"isSubmitted && form.get('name')?.invalid\"\n >{{ '@pry.admin.required' | i18n }}</label\n >\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"item-label\" for=\"item\">{{\n '@pry.admin.metadata-rules.metadata-item.name' | i18n\n }}</label>\n <pry-select\n id=\"item\"\n formControlName=\"metadataItem\"\n [items]=\"metadataList\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataItem($event)\"\n aria-labelledby=\"item-label\"\n ></pry-select>\n </div>\n\n <div class=\"m-form-label-field -width-sm\">\n <label class=\"a-label\" id=\"user-label\" for=\"user\">{{\n '@pry.admin.metadata-rules.metadata-user.name' | i18n\n }}</label>\n <pry-select\n id=\"user\"\n formControlName=\"metadataUser\"\n [items]=\"metadataUserListFilter\"\n bindValue=\"id\"\n bindLabel=\"name\"\n [isForm]=\"true\"\n (ngModelChange)=\"selectMetadataUser($event)\"\n aria-labelledby=\"user-label\"\n ></pry-select>\n </div>\n\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameName\">{{\n '@pry.admin.metadata-rules.is-same-name' | i18n\n }}</label>\n <label class=\"a-label a-label--help -error\" *ngIf=\"isSameRules\">{{\n '@pry.admin.metadata-rules.is-same-rules' | i18n\n }}</label>\n\n <div class=\"m-btn-group -width-sm\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n (click)=\"goBack()\"\n [innerHTML]=\"'@pry.admin.cancel' | i18n\"\n ></button>\n <button\n class=\"a-btn a-btn--primary\"\n type=\"submit\"\n [innerHTML]=\"(metadataRules ? '@pry.admin.edit' : '@pry.admin.create') | i18n\"\n ></button>\n </div>\n</form>\n" }]
127
127
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.Router }, { type: i2.ActivatedRoute }, { type: i3.UntypedFormBuilder }]; }, propDecorators: { metadataRules: [{
128
128
  type: Input
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL3NoYXJlZC9hZG1pbi1mb3JtLW1ldGFkYXRhLXJ1bGVzL2FkbWluLWZvcm0tbWV0YWRhdGEtcnVsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9zaGFyZWQvYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy9hZG1pbi1mb3JtLW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0sK0NBQStDLENBQUM7QUFDbEgsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFNOUUsTUFBTSxPQUFPLCtCQUErQjtJQXFCMUMsWUFDVSxLQUF5RSxFQUN6RSxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsV0FB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SSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3BGO1NBQ0Y7SUFDSCxDQUFDOytHQXhJVSwrQkFBK0I7bUdBQS9CLCtCQUErQixpSENsQjVDLDR3RkFvRkE7OzRGRGxFYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsK0JBQStCOytLQUloQyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBJTWV0YWRhdGEsIE1ldGFkYXRhUnVsZXMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zLCBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YWRhdGFTdGF0ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhVXNlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vYWRtaW4tbWV0YWRhdGEtdXNlci9zdG9yZS9hZG1pbi1tZXRhZGF0YS11c2VyLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVJ1bGVzQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL21ldGFkYXRhLXJ1bGVzLmFjdGlvbnMnO1xuaW1wb3J0IHsgTWV0YWRhdGFSdWxlc1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RvcmUvbWV0YWRhdGEtcnVsZXMucmVkdWNlcic7XG5pbXBvcnQgeyBNZXRhZGF0YVJ1bGVzU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvbWV0YWRhdGEtcnVsZXMuc2VsZWN0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLWZvcm0tbWV0YWRhdGEtcnVsZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5Gb3JtTWV0YWRhdGFSdWxlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbWV0YWRhdGFSdWxlcz86IE1ldGFkYXRhUnVsZXMgfCBudWxsO1xuXG4gIG1ldGFkYXRhTGlzdCQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBtZXRhZGF0YVVzZXJMaXN0JDogT2JzZXJ2YWJsZTxJTWV0YWRhdGFbXT47XG4gIG1ldGFkYXRhUnVsZXNMaXN0JDogT2JzZXJ2YWJsZTxNZXRhZGF0YVJ1bGVzW10+O1xuXG4gIG1ldGFkYXRhTGlzdDogSU1ldGFkYXRhW10gPSBbXTtcbiAgbWV0YWRhdGFVc2VyTGlzdDogSU1ldGFkYXRhW10gPSBbXTtcbiAgbWV0YWRhdGFVc2VyTGlzdEZpbHRlcjogSU1ldGFkYXRhW10gPSBbXTtcbiAgbWV0YWRhdGFSdWxlc0xpc3Q6IE1ldGFkYXRhUnVsZXNbXSA9IFtdO1xuXG4gIHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGlzU2FtZU5hbWUgPSBmYWxzZTtcbiAgaXNTYW1lUnVsZXMgPSBmYWxzZTtcblxuICBpc1N1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPE1ldGFkYXRhUnVsZXNTdGF0ZSB8IE1ldGFkYXRhU3RhdGUgfCBBZG1pbk1ldGFkYXRhVXNlclN0YXRlPixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLm1ldGFkYXRhTGlzdCQgPSB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5tZXRhZGF0YSk7XG4gICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLnVzZXJQcm9maWxlKTtcbiAgICB0aGlzLm1ldGFkYXRhUnVsZXNMaXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhUnVsZXNTZWxlY3RvcnMubWV0YWRhdGFSdWxlc0xpc3QpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFt1dWlkdjQoKV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBtZXRhZGF0YVVzZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIG1ldGFkYXRhSXRlbTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzU2FtZVJ1bGVzID0gZmFsc2U7XG4gICAgdGhpcy5pc1NhbWVOYW1lID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbk1ldGFkYXRhUnVsZXNBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZXRhZGF0YUFjdGlvbnMubG9hZE1ldGFkYXRhKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmxvYWRVc2VyUHJvZmlsZSgpKTtcbiAgICB0aGlzLnN1YiA9IHRoaXMubWV0YWRhdGFMaXN0JC5zdWJzY3JpYmUoKG1ldGFkYXRhTGlzdCkgPT4ge1xuICAgICAgdGhpcy5tZXRhZGF0YUxpc3QgPSBtZXRhZGF0YUxpc3Q7XG4gICAgfSk7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5tZXRhZGF0YVJ1bGVzTGlzdCQuc3Vic2NyaWJlKChtZXRhZGF0YVJ1bGVzTGlzdCkgPT4ge1xuICAgICAgICB0aGlzLm1ldGFkYXRhUnVsZXNMaXN0ID0gbWV0YWRhdGFSdWxlc0xpc3Q7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0JC5zdWJzY3JpYmUoKG1ldGFkYXRhVXNlckxpc3QpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0ID0gbWV0YWRhdGFVc2VyTGlzdDtcbiAgICAgICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0RmlsdGVyID0gbWV0YWRhdGFVc2VyTGlzdDtcbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGFMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IG1ldGFkYXRhSXRlbTogdGhpcy5tZXRhZGF0YUxpc3RbMF0uaWQgfSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RNZXRhZGF0YUl0ZW0odGhpcy5tZXRhZGF0YUxpc3RbMF0uaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1ldGFkYXRhUnVsZXMpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhUnVsZXNMaXN0ID0gdGhpcy5tZXRhZGF0YVJ1bGVzTGlzdC5maWx0ZXIoKG1ldGEpID0+IG1ldGEuaWQgIT09IHRoaXMubWV0YWRhdGFSdWxlcz8uaWQpO1xuICAgICAgICAgIGNvbnN0IHsgaWQsIG5hbWUsIHVzZXJQcm9maWxlLCBtZXRhZGF0YSB9ID0gdGhpcy5tZXRhZGF0YVJ1bGVzO1xuICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIG1ldGFkYXRhVXNlcjogdXNlclByb2ZpbGUuaWQsXG4gICAgICAgICAgICBtZXRhZGF0YUl0ZW06IG1ldGFkYXRhLmlkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHRoaXMuZ2V0UGF0aCgpIH0pKTtcbiAgfVxuXG4gIGdldFBhdGgoKSB7XG4gICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIGlmICh0aGlzLm1ldGFkYXRhUnVsZXMpIHtcbiAgICAgIHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4vLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aC50b1N0cmluZygpO1xuICB9XG5cbiAgc2VsZWN0TWV0YWRhdGFJdGVtKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlzU2FtZVJ1bGVzID0gZmFsc2U7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhTGlzdC5maW5kKChtKSA9PiBpZCA9PT0gbS5pZCk7XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICB0aGlzLm1ldGFkYXRhVXNlckxpc3RGaWx0ZXIgPSB0aGlzLm1ldGFkYXRhVXNlckxpc3QuZmlsdGVyKChtVSkgPT4gbVUudHlwZSA9PT0gbWV0YWRhdGEudHlwZSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0QXV0b01ldGFkYXRhVXNlcigpO1xuICB9XG5cbiAgc2VsZWN0QXV0b01ldGFkYXRhVXNlcigpIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICB1c2VyUHJvZmlsOlxuICAgICAgICB0aGlzLm1ldGFkYXRhVXNlckxpc3RGaWx0ZXIubGVuZ3RoID4gMFxuICAgICAgICAgID8gdGhpcy5tZXRhZGF0YVJ1bGVzPy51c2VyUHJvZmlsZT8uaWQgJiZcbiAgICAgICAgICAgICEhdGhpcy5tZXRhZGF0YVVzZXJMaXN0RmlsdGVyLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5pZCA9PT0gdGhpcy5tZXRhZGF0YVJ1bGVzPy51c2VyUHJvZmlsZT8uaWQpXG4gICAgICAgICAgICA/IHRoaXMubWV0YWRhdGFSdWxlcy51c2VyUHJvZmlsZS5pZFxuICAgICAgICAgICAgOiB0aGlzLm1ldGFkYXRhVXNlckxpc3RGaWx0ZXJbMF0uaWRcbiAgICAgICAgICA6ICcnXG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RNZXRhZGF0YVVzZXIoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuaXNTYW1lUnVsZXMgPSBmYWxzZTtcbiAgfVxuXG4gIGNoYW5nZVZhbHVlTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pc1NhbWVOYW1lID0gZmFsc2U7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1NhbWVOYW1lID0gISF0aGlzLm1ldGFkYXRhUnVsZXNMaXN0LmZpbmQoXG4gICAgICAgIChtZXRhZGF0YSkgPT4gdGhpcy5mb3JtLmdldCgnbmFtZScpPy52YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBtZXRhZGF0YS5uYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICk7XG4gICAgICB0aGlzLmlzU2FtZVJ1bGVzID0gISF0aGlzLm1ldGFkYXRhUnVsZXNMaXN0LmZpbmQoKG1ldGFkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgnbWV0YWRhdGFVc2VyJyk/LnZhbHVlID09PSBtZXRhZGF0YT8udXNlclByb2ZpbGU/LmlkICYmXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgnbWV0YWRhdGFJdGVtJyk/LnZhbHVlID09PSBtZXRhZGF0YT8ubWV0YWRhdGE/LmlkXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQgJiYgIXRoaXMuaXNTYW1lTmFtZSAmJiAhdGhpcy5pc1NhbWVSdWxlcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluTWV0YWRhdGFSdWxlc0FjdGlvbnMucG9zdCh7IG1ldGFkYXRhOiB0aGlzLmZvcm0udmFsdWUgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgaWQ9XCJuYW1lLWxhYmVsXCIgZm9yPVwibmFtZVwiPlxuICAgICAge3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEtcnVsZXMubGFiZWwnIHwgaTE4biB9fSAqXG4gICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBpZD1cIm5hbWVcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VWYWx1ZU5hbWUoJGV2ZW50KVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZCA/ICduYW1lLWxhYmVsIG5hbWUtZXJyb3InIDogJ25hbWUtbGFiZWwnXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCJcbiAgICAgIHJlcXVpcmVkXG4gICAgLz5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICBpZD1cIm5hbWUtZXJyb3JcIlxuICAgICAgZm9yPVwibmFtZVwiXG4gICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCduYW1lJyk/LmludmFsaWRcIlxuICAgICAgPnt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX08L2xhYmVsXG4gICAgPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBpZD1cIml0ZW0tbGFiZWxcIiBmb3I9XCJpdGVtXCI+e3tcbiAgICAgICdAcHJ5LmFkbWluLm1ldGFkYXRhLXJ1bGVzLm1ldGFkYXRhLWl0ZW0ubmFtZScgfCBpMThuXG4gICAgfX08L2xhYmVsPlxuICAgIDxwcnktc2VsZWN0XG4gICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICBpZD1cIml0ZW1cIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0YWRhdGFJdGVtXCJcbiAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgIFtpdGVtc109XCJtZXRhZGF0YUxpc3RcIlxuICAgICAgW2l0ZW1zQXNPcHRpb25dPVwidHJ1ZVwiXG4gICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RNZXRhZGF0YUl0ZW0oJGV2ZW50KVwiXG4gICAgICBhcmlhLWxhYmVsbGVkYnk9XCJpdGVtLWxhYmVsXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBpZD1cInVzZXItbGFiZWxcIiBmb3I9XCJ1c2VyXCI+e3tcbiAgICAgICdAcHJ5LmFkbWluLm1ldGFkYXRhLXJ1bGVzLm1ldGFkYXRhLXVzZXIubmFtZScgfCBpMThuXG4gICAgfX08L2xhYmVsPlxuICAgIDxwcnktc2VsZWN0XG4gICAgICBjbGFzcz1cImEtcHJ5LXNlbGVjdFwiXG4gICAgICBpZD1cInVzZXJcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0YWRhdGFVc2VyXCJcbiAgICAgIFtsYWJlbFRyYW5zbGF0ZV09XCJ0cnVlXCJcbiAgICAgIFtpdGVtc109XCJtZXRhZGF0YVVzZXJMaXN0RmlsdGVyXCJcbiAgICAgIFtpdGVtc0FzT3B0aW9uXT1cInRydWVcIlxuICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICBbaXNGb3JtXT1cInRydWVcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TWV0YWRhdGFVc2VyKCRldmVudClcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwidXNlci1sYWJlbFwiXG4gICAgPjwvcHJ5LXNlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiICpuZ0lmPVwiaXNTYW1lTmFtZVwiPnt7XG4gICAgJ0BwcnkuYWRtaW4ubWV0YWRhdGEtcnVsZXMuaXMtc2FtZS1uYW1lJyB8IGkxOG5cbiAgfX08L2xhYmVsPlxuICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgKm5nSWY9XCJpc1NhbWVSdWxlc1wiPnt7XG4gICAgJ0BwcnkuYWRtaW4ubWV0YWRhdGEtcnVsZXMuaXMtc2FtZS1ydWxlcycgfCBpMThuXG4gIH19PC9sYWJlbD5cblxuICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLXdpZHRoLXNtXCI+XG4gICAgPGJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrKT1cImdvQmFjaygpXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiJ0BwcnkuYWRtaW4uY2FuY2VsJyB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCJcbiAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2lubmVySFRNTF09XCIobWV0YWRhdGFSdWxlcyA/ICdAcHJ5LmFkbWluLmVkaXQnIDogJ0BwcnkuYWRtaW4uY3JlYXRlJykgfCBpMThuXCJcbiAgICA+PC9idXR0b24+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9hZG1pbi9jb21wb25lbnRzL2FkbWluLW1ldGFkYXRhLXJ1bGVzL3NoYXJlZC9hZG1pbi1mb3JtLW1ldGFkYXRhLXJ1bGVzL2FkbWluLWZvcm0tbWV0YWRhdGEtcnVsZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi1tZXRhZGF0YS1ydWxlcy9zaGFyZWQvYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy9hZG1pbi1mb3JtLW1ldGFkYXRhLXJ1bGVzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSWxGLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQWlCLE1BQU0sK0NBQStDLENBQUM7QUFDbEgsT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFL0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7QUFNOUUsTUFBTSxPQUFPLCtCQUErQjtJQXFCMUMsWUFDVSxLQUF5RSxFQUN6RSxNQUFjLEVBQ2QsS0FBcUIsRUFDckIsV0FB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SSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQ3BGO1NBQ0Y7SUFDSCxDQUFDOytHQXhJVSwrQkFBK0I7bUdBQS9CLCtCQUErQixpSENsQjVDLDhrRkE4RUE7OzRGRDVEYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsK0JBQStCOytLQUloQyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBJTWV0YWRhdGEsIE1ldGFkYXRhUnVsZXMgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zLCBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YWRhdGFTdGF0ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pbk1ldGFkYXRhVXNlclN0YXRlIH0gZnJvbSAnLi4vLi4vLi4vYWRtaW4tbWV0YWRhdGEtdXNlci9zdG9yZS9hZG1pbi1tZXRhZGF0YS11c2VyLnJlZHVjZXInO1xuaW1wb3J0IHsgQWRtaW5NZXRhZGF0YVJ1bGVzQWN0aW9ucyB9IGZyb20gJy4uLy4uL3N0b3JlL21ldGFkYXRhLXJ1bGVzLmFjdGlvbnMnO1xuaW1wb3J0IHsgTWV0YWRhdGFSdWxlc1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RvcmUvbWV0YWRhdGEtcnVsZXMucmVkdWNlcic7XG5pbXBvcnQgeyBNZXRhZGF0YVJ1bGVzU2VsZWN0b3JzIH0gZnJvbSAnLi4vLi4vc3RvcmUvbWV0YWRhdGEtcnVsZXMuc2VsZWN0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLWZvcm0tbWV0YWRhdGEtcnVsZXMnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRtaW4tZm9ybS1tZXRhZGF0YS1ydWxlcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5Gb3JtTWV0YWRhdGFSdWxlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgbWV0YWRhdGFSdWxlcz86IE1ldGFkYXRhUnVsZXMgfCBudWxsO1xuXG4gIG1ldGFkYXRhTGlzdCQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBtZXRhZGF0YVVzZXJMaXN0JDogT2JzZXJ2YWJsZTxJTWV0YWRhdGFbXT47XG4gIG1ldGFkYXRhUnVsZXNMaXN0JDogT2JzZXJ2YWJsZTxNZXRhZGF0YVJ1bGVzW10+O1xuXG4gIG1ldGFkYXRhTGlzdDogSU1ldGFkYXRhW10gPSBbXTtcbiAgbWV0YWRhdGFVc2VyTGlzdDogSU1ldGFkYXRhW10gPSBbXTtcbiAgbWV0YWRhdGFVc2VyTGlzdEZpbHRlcjogSU1ldGFkYXRhW10gPSBbXTtcbiAgbWV0YWRhdGFSdWxlc0xpc3Q6IE1ldGFkYXRhUnVsZXNbXSA9IFtdO1xuXG4gIHN1YiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIGlzU2FtZU5hbWUgPSBmYWxzZTtcbiAgaXNTYW1lUnVsZXMgPSBmYWxzZTtcblxuICBpc1N1Ym1pdHRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPE1ldGFkYXRhUnVsZXNTdGF0ZSB8IE1ldGFkYXRhU3RhdGUgfCBBZG1pbk1ldGFkYXRhVXNlclN0YXRlPixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlclxuICApIHtcbiAgICB0aGlzLm1ldGFkYXRhTGlzdCQgPSB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5tZXRhZGF0YSk7XG4gICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLnVzZXJQcm9maWxlKTtcbiAgICB0aGlzLm1ldGFkYXRhUnVsZXNMaXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhUnVsZXNTZWxlY3RvcnMubWV0YWRhdGFSdWxlc0xpc3QpO1xuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgaWQ6IFt1dWlkdjQoKV0sXG4gICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBtZXRhZGF0YVVzZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIG1ldGFkYXRhSXRlbTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmlzU2FtZVJ1bGVzID0gZmFsc2U7XG4gICAgdGhpcy5pc1NhbWVOYW1lID0gZmFsc2U7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbk1ldGFkYXRhUnVsZXNBY3Rpb25zLmxvYWQoKSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZXRhZGF0YUFjdGlvbnMubG9hZE1ldGFkYXRhKCkpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmxvYWRVc2VyUHJvZmlsZSgpKTtcbiAgICB0aGlzLnN1YiA9IHRoaXMubWV0YWRhdGFMaXN0JC5zdWJzY3JpYmUoKG1ldGFkYXRhTGlzdCkgPT4ge1xuICAgICAgdGhpcy5tZXRhZGF0YUxpc3QgPSBtZXRhZGF0YUxpc3Q7XG4gICAgfSk7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5tZXRhZGF0YVJ1bGVzTGlzdCQuc3Vic2NyaWJlKChtZXRhZGF0YVJ1bGVzTGlzdCkgPT4ge1xuICAgICAgICB0aGlzLm1ldGFkYXRhUnVsZXNMaXN0ID0gbWV0YWRhdGFSdWxlc0xpc3Q7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0JC5zdWJzY3JpYmUoKG1ldGFkYXRhVXNlckxpc3QpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0ID0gbWV0YWRhdGFVc2VyTGlzdDtcbiAgICAgICAgdGhpcy5tZXRhZGF0YVVzZXJMaXN0RmlsdGVyID0gbWV0YWRhdGFVc2VyTGlzdDtcbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGFMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IG1ldGFkYXRhSXRlbTogdGhpcy5tZXRhZGF0YUxpc3RbMF0uaWQgfSk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RNZXRhZGF0YUl0ZW0odGhpcy5tZXRhZGF0YUxpc3RbMF0uaWQpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1ldGFkYXRhUnVsZXMpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhUnVsZXNMaXN0ID0gdGhpcy5tZXRhZGF0YVJ1bGVzTGlzdC5maWx0ZXIoKG1ldGEpID0+IG1ldGEuaWQgIT09IHRoaXMubWV0YWRhdGFSdWxlcz8uaWQpO1xuICAgICAgICAgIGNvbnN0IHsgaWQsIG5hbWUsIHVzZXJQcm9maWxlLCBtZXRhZGF0YSB9ID0gdGhpcy5tZXRhZGF0YVJ1bGVzO1xuICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIG1ldGFkYXRhVXNlcjogdXNlclByb2ZpbGUuaWQsXG4gICAgICAgICAgICBtZXRhZGF0YUl0ZW06IG1ldGFkYXRhLmlkXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnb0JhY2soKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMucm91dGVUbyh7IHBhdGg6IHRoaXMuZ2V0UGF0aCgpIH0pKTtcbiAgfVxuXG4gIGdldFBhdGgoKSB7XG4gICAgbGV0IHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIGlmICh0aGlzLm1ldGFkYXRhUnVsZXMpIHtcbiAgICAgIHBhdGggPSB0aGlzLnJvdXRlci5jcmVhdGVVcmxUcmVlKFsnLi4vLi4nXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aC50b1N0cmluZygpO1xuICB9XG5cbiAgc2VsZWN0TWV0YWRhdGFJdGVtKGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlzU2FtZVJ1bGVzID0gZmFsc2U7XG4gICAgY29uc3QgbWV0YWRhdGEgPSB0aGlzLm1ldGFkYXRhTGlzdC5maW5kKChtKSA9PiBpZCA9PT0gbS5pZCk7XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICB0aGlzLm1ldGFkYXRhVXNlckxpc3RGaWx0ZXIgPSB0aGlzLm1ldGFkYXRhVXNlckxpc3QuZmlsdGVyKChtVSkgPT4gbVUudHlwZSA9PT0gbWV0YWRhdGEudHlwZSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0QXV0b01ldGFkYXRhVXNlcigpO1xuICB9XG5cbiAgc2VsZWN0QXV0b01ldGFkYXRhVXNlcigpIHtcbiAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICB1c2VyUHJvZmlsOlxuICAgICAgICB0aGlzLm1ldGFkYXRhVXNlckxpc3RGaWx0ZXIubGVuZ3RoID4gMFxuICAgICAgICAgID8gdGhpcy5tZXRhZGF0YVJ1bGVzPy51c2VyUHJvZmlsZT8uaWQgJiZcbiAgICAgICAgICAgICEhdGhpcy5tZXRhZGF0YVVzZXJMaXN0RmlsdGVyLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5pZCA9PT0gdGhpcy5tZXRhZGF0YVJ1bGVzPy51c2VyUHJvZmlsZT8uaWQpXG4gICAgICAgICAgICA/IHRoaXMubWV0YWRhdGFSdWxlcy51c2VyUHJvZmlsZS5pZFxuICAgICAgICAgICAgOiB0aGlzLm1ldGFkYXRhVXNlckxpc3RGaWx0ZXJbMF0uaWRcbiAgICAgICAgICA6ICcnXG4gICAgfSk7XG4gIH1cblxuICBzZWxlY3RNZXRhZGF0YVVzZXIoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuaXNTYW1lUnVsZXMgPSBmYWxzZTtcbiAgfVxuXG4gIGNoYW5nZVZhbHVlTmFtZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pc1NhbWVOYW1lID0gZmFsc2U7XG4gIH1cblxuICBzdWJtaXQoKSB7XG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5pc1NhbWVOYW1lID0gISF0aGlzLm1ldGFkYXRhUnVsZXNMaXN0LmZpbmQoXG4gICAgICAgIChtZXRhZGF0YSkgPT4gdGhpcy5mb3JtLmdldCgnbmFtZScpPy52YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBtZXRhZGF0YS5uYW1lLnRvTG93ZXJDYXNlKClcbiAgICAgICk7XG4gICAgICB0aGlzLmlzU2FtZVJ1bGVzID0gISF0aGlzLm1ldGFkYXRhUnVsZXNMaXN0LmZpbmQoKG1ldGFkYXRhKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgnbWV0YWRhdGFVc2VyJyk/LnZhbHVlID09PSBtZXRhZGF0YT8udXNlclByb2ZpbGU/LmlkICYmXG4gICAgICAgICAgdGhpcy5mb3JtLmdldCgnbWV0YWRhdGFJdGVtJyk/LnZhbHVlID09PSBtZXRhZGF0YT8ubWV0YWRhdGE/LmlkXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQgJiYgIXRoaXMuaXNTYW1lTmFtZSAmJiAhdGhpcy5pc1NhbWVSdWxlcykge1xuICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluTWV0YWRhdGFSdWxlc0FjdGlvbnMucG9zdCh7IG1ldGFkYXRhOiB0aGlzLmZvcm0udmFsdWUgfSkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGZvcm0gY2xhc3M9XCJvLWZvcm1cIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0KClcIj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgaWQ9XCJuYW1lLWxhYmVsXCIgZm9yPVwibmFtZVwiPlxuICAgICAge3sgJ0BwcnkuYWRtaW4ubWV0YWRhdGEtcnVsZXMubGFiZWwnIHwgaTE4biB9fSAqXG4gICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgIDwvbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBpZD1cIm5hbWVcIlxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJjaGFuZ2VWYWx1ZU5hbWUoJGV2ZW50KVwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZCA/ICduYW1lLWxhYmVsIG5hbWUtZXJyb3InIDogJ25hbWUtbGFiZWwnXCJcbiAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkXCJcbiAgICAgIHJlcXVpcmVkXG4gICAgLz5cbiAgICA8bGFiZWxcbiAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICBpZD1cIm5hbWUtZXJyb3JcIlxuICAgICAgZm9yPVwibmFtZVwiXG4gICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCduYW1lJyk/LmludmFsaWRcIlxuICAgICAgPnt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX08L2xhYmVsXG4gICAgPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1zbVwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBpZD1cIml0ZW0tbGFiZWxcIiBmb3I9XCJpdGVtXCI+e3tcbiAgICAgICdAcHJ5LmFkbWluLm1ldGFkYXRhLXJ1bGVzLm1ldGFkYXRhLWl0ZW0ubmFtZScgfCBpMThuXG4gICAgfX08L2xhYmVsPlxuICAgIDxwcnktc2VsZWN0XG4gICAgICBpZD1cIml0ZW1cIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0YWRhdGFJdGVtXCJcbiAgICAgIFtpdGVtc109XCJtZXRhZGF0YUxpc3RcIlxuICAgICAgYmluZFZhbHVlPVwiaWRcIlxuICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICBbaXNGb3JtXT1cInRydWVcIlxuICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TWV0YWRhdGFJdGVtKCRldmVudClcIlxuICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiaXRlbS1sYWJlbFwiXG4gICAgPjwvcHJ5LXNlbGVjdD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtc21cIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgaWQ9XCJ1c2VyLWxhYmVsXCIgZm9yPVwidXNlclwiPnt7XG4gICAgICAnQHByeS5hZG1pbi5tZXRhZGF0YS1ydWxlcy5tZXRhZGF0YS11c2VyLm5hbWUnIHwgaTE4blxuICAgIH19PC9sYWJlbD5cbiAgICA8cHJ5LXNlbGVjdFxuICAgICAgaWQ9XCJ1c2VyXCJcbiAgICAgIGZvcm1Db250cm9sTmFtZT1cIm1ldGFkYXRhVXNlclwiXG4gICAgICBbaXRlbXNdPVwibWV0YWRhdGFVc2VyTGlzdEZpbHRlclwiXG4gICAgICBiaW5kVmFsdWU9XCJpZFwiXG4gICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RNZXRhZGF0YVVzZXIoJGV2ZW50KVwiXG4gICAgICBhcmlhLWxhYmVsbGVkYnk9XCJ1c2VyLWxhYmVsXCJcbiAgICA+PC9wcnktc2VsZWN0PlxuICA8L2Rpdj5cblxuICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsIGEtbGFiZWwtLWhlbHAgLWVycm9yXCIgKm5nSWY9XCJpc1NhbWVOYW1lXCI+e3tcbiAgICAnQHByeS5hZG1pbi5tZXRhZGF0YS1ydWxlcy5pcy1zYW1lLW5hbWUnIHwgaTE4blxuICB9fTwvbGFiZWw+XG4gIDxsYWJlbCBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIiAqbmdJZj1cImlzU2FtZVJ1bGVzXCI+e3tcbiAgICAnQHByeS5hZG1pbi5tZXRhZGF0YS1ydWxlcy5pcy1zYW1lLXJ1bGVzJyB8IGkxOG5cbiAgfX08L2xhYmVsPlxuXG4gIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtd2lkdGgtc21cIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXNlY29uZGFyeVwiXG4gICAgICAoY2xpY2spPVwiZ29CYWNrKClcIlxuICAgICAgW2lubmVySFRNTF09XCInQHByeS5hZG1pbi5jYW5jZWwnIHwgaTE4blwiXG4gICAgPjwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICBbaW5uZXJIVE1MXT1cIihtZXRhZGF0YVJ1bGVzID8gJ0BwcnkuYWRtaW4uZWRpdCcgOiAnQHByeS5hZG1pbi5jcmVhdGUnKSB8IGkxOG5cIlxuICAgID48L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=