@pepperi-addons/ngx-lib 0.4.0-angular14.5 → 0.4.0-angular14.50

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 (223) hide show
  1. package/chips/chips.component.d.ts +88 -0
  2. package/chips/chips.component.theme.scss +58 -0
  3. package/chips/chips.model.d.ts +9 -0
  4. package/chips/chips.module.d.ts +20 -0
  5. package/chips/chips.service.d.ts +14 -0
  6. package/chips/index.d.ts +5 -0
  7. package/chips/public-api.d.ts +3 -0
  8. package/color/color-picker.component.d.ts +1 -1
  9. package/core/common/model/wapi.model.d.ts +1 -0
  10. package/core/common/services/addon.service.d.ts +6 -9
  11. package/core/common/services/utilities.service.d.ts +5 -4
  12. package/core/customization/customization.model.d.ts +5 -0
  13. package/esm2020/address/address.component.mjs +1 -1
  14. package/esm2020/attachment/attachment.component.mjs +1 -1
  15. package/esm2020/checkbox/checkbox.component.mjs +1 -1
  16. package/esm2020/chips/chips.component.mjs +139 -0
  17. package/esm2020/chips/chips.model.mjs +2 -0
  18. package/esm2020/chips/chips.module.mjs +81 -0
  19. package/esm2020/chips/chips.service.mjs +40 -0
  20. package/esm2020/chips/pepperi-addons-ngx-lib-chips.mjs +5 -0
  21. package/esm2020/chips/public-api.mjs +7 -0
  22. package/esm2020/color/color-picker.component.mjs +4 -4
  23. package/esm2020/color/color.component.mjs +1 -1
  24. package/esm2020/core/common/model/wapi.model.mjs +1 -1
  25. package/esm2020/core/common/services/addon.service.mjs +44 -39
  26. package/esm2020/core/common/services/utilities.service.mjs +63 -12
  27. package/esm2020/core/customization/customization.model.mjs +6 -1
  28. package/esm2020/core/http/interceptors/loader.interceptor.mjs +4 -5
  29. package/esm2020/core/http/services/loader.service.mjs +4 -4
  30. package/esm2020/date/date.component.mjs +3 -3
  31. package/esm2020/field-title/field-title.component.mjs +6 -3
  32. package/esm2020/form/field-generator.component.mjs +7 -7
  33. package/esm2020/form/form.component.mjs +12 -3
  34. package/esm2020/form/form.module.mjs +8 -3
  35. package/esm2020/form/internal-button.component.mjs +1 -1
  36. package/esm2020/form/internal-carusel.component.mjs +11 -13
  37. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  38. package/esm2020/form/internal-form.component.mjs +4 -2
  39. package/esm2020/form/internal-page.component.mjs +15 -18
  40. package/esm2020/group-buttons/group-buttons.component.mjs +8 -4
  41. package/esm2020/icon/icon-generated-all.model.mjs +7 -1
  42. package/esm2020/icon/icon-generated.model.mjs +25 -1
  43. package/esm2020/image/image.component.mjs +1 -1
  44. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -91
  45. package/esm2020/images-filmstrip/images-filmstrip.module.mjs +1 -56
  46. package/esm2020/link/link.component.mjs +10 -11
  47. package/esm2020/list/list-pager.component.mjs +1 -1
  48. package/esm2020/menu/menu.component.mjs +11 -3
  49. package/esm2020/ngx-lib.module.mjs +4 -2
  50. package/esm2020/page-layout/page-layout.component.mjs +3 -3
  51. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
  52. package/esm2020/quantity-selector/quantity-selector.component.mjs +24 -4
  53. package/esm2020/query-builder/common/services/query-structure.service.mjs +12 -10
  54. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
  55. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +1 -1
  56. package/esm2020/query-builder/query-builder.module.mjs +8 -3
  57. package/esm2020/remote-loader/addon-block-loader.component.mjs +18 -8
  58. package/esm2020/remote-loader/addon-block-loader.service.mjs +6 -7
  59. package/esm2020/remote-loader/remote-loader.component.mjs +18 -30
  60. package/esm2020/remote-loader/remote-loader.model.mjs +1 -1
  61. package/esm2020/remote-loader/remote-loader.module.mjs +5 -1
  62. package/esm2020/remote-loader/remote-loader.service.mjs +34 -28
  63. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +1 -1
  64. package/esm2020/select/select.component.mjs +33 -7
  65. package/esm2020/side-bar/side-bar.component.mjs +11 -27
  66. package/esm2020/side-bar/side-bar.module.mjs +7 -3
  67. package/esm2020/signature/signature.component.mjs +1 -1
  68. package/esm2020/slider/slider.component.mjs +1 -1
  69. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +1 -1
  70. package/esm2020/smart-filters/common/model/base-filter-component.mjs +1 -1
  71. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  72. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
  73. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  74. package/esm2020/smart-filters/smart-filters.module.mjs +8 -3
  75. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
  76. package/esm2020/textarea/textarea.component.mjs +1 -1
  77. package/esm2020/textbox/textbox.component.mjs +33 -14
  78. package/esm2020/textbox-icon/textbox-icon.component.mjs +2 -2
  79. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
  80. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  81. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  82. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  83. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  84. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  85. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +264 -0
  86. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  87. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +4 -4
  88. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  89. package/fesm2015/pepperi-addons-ngx-lib-date.mjs +2 -2
  90. package/fesm2015/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  91. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  92. package/fesm2015/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  93. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +49 -39
  94. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  95. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  96. package/fesm2015/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  97. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs +31 -1
  98. package/fesm2015/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  99. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +1 -1
  100. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  101. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  102. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  103. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +8 -9
  104. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  105. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +1 -1
  106. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  107. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +10 -2
  108. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  109. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  110. package/fesm2015/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  111. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  112. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  113. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  114. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  115. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +17 -10
  116. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  117. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +79 -70
  118. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  119. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  120. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  121. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +32 -6
  122. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  123. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  124. package/fesm2015/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  125. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +1 -1
  126. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  127. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs +1 -1
  128. package/fesm2015/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  129. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +13 -8
  130. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  131. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  132. package/fesm2015/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  133. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  134. package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  135. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +34 -15
  136. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  137. package/fesm2015/pepperi-addons-ngx-lib.mjs +125 -58
  138. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  139. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
  140. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  141. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +1 -1
  142. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  143. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +1 -1
  144. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  145. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +264 -0
  146. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -0
  147. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +4 -4
  148. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  149. package/fesm2020/pepperi-addons-ngx-lib-date.mjs +2 -2
  150. package/fesm2020/pepperi-addons-ngx-lib-date.mjs.map +1 -1
  151. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs +5 -2
  152. package/fesm2020/pepperi-addons-ngx-lib-field-title.mjs.map +1 -1
  153. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +52 -39
  154. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  155. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs +7 -3
  156. package/fesm2020/pepperi-addons-ngx-lib-group-buttons.mjs.map +1 -1
  157. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs +31 -1
  158. package/fesm2020/pepperi-addons-ngx-lib-icon.mjs.map +1 -1
  159. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +1 -1
  160. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  161. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -129
  162. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  163. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +8 -9
  164. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  165. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +1 -1
  166. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  167. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +10 -2
  168. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  169. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs +2 -2
  170. package/fesm2020/pepperi-addons-ngx-lib-page-layout.mjs.map +1 -1
  171. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  172. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  173. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +23 -3
  174. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  175. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +17 -10
  176. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  177. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +75 -68
  178. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  179. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +1 -1
  180. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  181. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +32 -6
  182. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  183. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs +15 -27
  184. package/fesm2020/pepperi-addons-ngx-lib-side-bar.mjs.map +1 -1
  185. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +1 -1
  186. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  187. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs +1 -1
  188. package/fesm2020/pepperi-addons-ngx-lib-slider.mjs.map +1 -1
  189. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +13 -8
  190. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  191. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs +1 -1
  192. package/fesm2020/pepperi-addons-ngx-lib-textarea.mjs.map +1 -1
  193. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs +1 -1
  194. package/fesm2020/pepperi-addons-ngx-lib-textbox-icon.mjs.map +1 -1
  195. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +34 -15
  196. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  197. package/fesm2020/pepperi-addons-ngx-lib.mjs +122 -59
  198. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  199. package/field-title/field-title.component.d.ts +2 -1
  200. package/form/field-generator.component.d.ts +1 -1
  201. package/form/internal-carusel.component.d.ts +1 -3
  202. package/form/internal-page.component.d.ts +2 -4
  203. package/group-buttons/group-buttons.component.d.ts +2 -1
  204. package/icon/icon-generated-all.model.d.ts +6 -0
  205. package/icon/icon-generated.model.d.ts +25 -1
  206. package/link/link.component.d.ts +2 -3
  207. package/menu/menu.component.d.ts +2 -0
  208. package/package.json +9 -1
  209. package/page-layout/page-layout.component.d.ts +1 -1
  210. package/quantity-selector/quantity-selector.component.d.ts +7 -1
  211. package/query-builder/common/services/query-structure.service.d.ts +3 -4
  212. package/remote-loader/addon-block-loader.component.d.ts +5 -2
  213. package/remote-loader/addon-block-loader.service.d.ts +2 -3
  214. package/remote-loader/remote-loader.component.d.ts +2 -4
  215. package/remote-loader/remote-loader.model.d.ts +6 -4
  216. package/remote-loader/remote-loader.module.d.ts +5 -4
  217. package/remote-loader/remote-loader.service.d.ts +4 -6
  218. package/select/select.component.d.ts +10 -4
  219. package/side-bar/side-bar.component.d.ts +3 -3
  220. package/src/assets/i18n/en.ngx-lib.json +3 -0
  221. package/src/core/style/components/checkbox.scss +20 -1
  222. package/src/core/style/components/general.scss +5 -4
  223. package/textbox/textbox.component.d.ts +9 -4
@@ -56,7 +56,7 @@ export class PepColorComponent {
56
56
  }
57
57
  }
58
58
  PepColorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorComponent, deps: [{ token: i1.PepDialogService }, { token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
59
- PepColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepColorComponent, selector: "pep-color", inputs: { key: "key", value: "value", label: "label", disabled: "disabled", xAlignment: "xAlignment", rowSpan: "rowSpan", type: "type", showTitle: "showTitle", renderTitle: "renderTitle", showAAComplient: "showAAComplient", checkAAComplient: "checkAAComplient", layoutType: "layoutType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>", styles: [":host{display:grid}.pepperi-color-container .pepperi-color,.pepperi-color-container .pep-color,.pep-color-container .pepperi-color,.pep-color-container .pep-color{padding:0;display:grid}.pepperi-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pep-color-container .pep-color .btn-edit{width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 var(--pep-spacing-md, .75rem);justify-self:end;align-self:center}.pepperi-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pep-color-container.right-alignment .pep-color .btn-edit{justify-self:start}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.PepButtonBlurDirective, selector: "[pepButtonBlur]" }, { kind: "directive", type: i5.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i6.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength"] }] });
59
+ PepColorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepColorComponent, selector: "pep-color", inputs: { key: "key", value: "value", label: "label", disabled: "disabled", xAlignment: "xAlignment", rowSpan: "rowSpan", type: "type", showTitle: "showTitle", renderTitle: "renderTitle", showAAComplient: "showAAComplient", checkAAComplient: "checkAAComplient", layoutType: "layoutType" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>", styles: [":host{display:grid}.pepperi-color-container .pepperi-color,.pepperi-color-container .pep-color,.pep-color-container .pepperi-color,.pep-color-container .pep-color{padding:0;display:grid}.pepperi-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pep-color-container .pep-color .btn-edit{width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 var(--pep-spacing-md, .75rem);justify-self:end;align-self:center}.pepperi-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pep-color-container.right-alignment .pep-color .btn-edit{justify-self:start}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.PepButtonBlurDirective, selector: "[pepButtonBlur]" }, { kind: "directive", type: i5.PepRtlDirectionDirective, selector: "[pepRtlDirection]" }, { kind: "component", type: i6.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFieldTitleComponent, selector: "pep-field-title", inputs: ["label", "mandatory", "disabled", "maxFieldCharacters", "hint", "xAlignment", "showTitle", "inputLength", "fontBodyType"] }] });
60
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepColorComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'pep-color', template: "<pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n</pep-field-title>\n<div [id]=\"key\" class=\"pep-color-container\" [ngClass]=\"{ 'right-alignment': xAlignment == 'right' }\">\n <div pepRtlDirection (click)=\"!disabled ? chooseColor() : ''\" class=\"pep-color pep-input\"\n [ngClass]=\"{disable: disabled, 'one-row': rowSpan === 1}\"\n style=\"background: {{ value ? value + '!important' : 'transparent' }}; opacity: {{ disabled && value ? 0.12 : 1}};\">\n <button *ngIf=\"!disabled\" class=\"pep-button icon-button xs weak invert mat-button btn-edit\" tabindex=\"-1\"\n pepButtonBlur mat-button>\n <mat-icon>\n <pep-icon name=\"system_edit\"></pep-icon>\n </mat-icon>\n </button>\n </div>\n</div>", styles: [":host{display:grid}.pepperi-color-container .pepperi-color,.pepperi-color-container .pep-color,.pep-color-container .pepperi-color,.pep-color-container .pep-color{padding:0;display:grid}.pepperi-color-container .pepperi-color .btn-edit,.pepperi-color-container .pep-color .btn-edit,.pep-color-container .pepperi-color .btn-edit,.pep-color-container .pep-color .btn-edit{width:calc(var(--pep-form-field-height, 2.5rem) - var(--pep-spacing-lg, 1rem));min-width:unset;padding:0;margin:0 var(--pep-spacing-md, .75rem);justify-self:end;align-self:center}.pepperi-color-container.right-alignment .pepperi-color .btn-edit,.pepperi-color-container.right-alignment .pep-color .btn-edit,.pep-color-container.right-alignment .pepperi-color .btn-edit,.pep-color-container.right-alignment .pep-color .btn-edit{justify-self:start}\n"] }]
@@ -153,4 +153,4 @@ export class SmartSearchResponse {
153
153
  }
154
154
  export class KeyValuePair {
155
155
  }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwaS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL21vZGVsL3dhcGkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksVUE0RVg7QUE1RUQsV0FBWSxVQUFVO0lBQ2xCLHFCQUFxQjtJQUNyQixpREFBYSxDQUFBO0lBQ2IsaURBQWEsQ0FBQTtJQUNiLDJFQUEwQixDQUFBO0lBQzFCLDBCQUEwQjtJQUMxQixtREFBYyxDQUFBO0lBQ2QsdURBQWdCLENBQUE7SUFDaEIscUJBQXFCO0lBQ3JCLDJDQUFVLENBQUE7SUFDViw0QkFBNEI7SUFDNUIseURBQWlCLENBQUE7SUFDakIsd0JBQXdCO0lBQ3hCLDZEQUFtQixDQUFBO0lBQ25CLHdCQUF3QjtJQUN4Qix1REFBZ0IsQ0FBQTtJQUNoQix5QkFBeUI7SUFDekIsbURBQWMsQ0FBQTtJQUNkLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsaUNBQWlDO0lBQ2pDLG9EQUFlLENBQUE7SUFDZixpQ0FBaUM7SUFDakMsNERBQW1CLENBQUE7SUFDbkIsc0NBQXNDO0lBQ3RDLHNEQUFnQixDQUFBO0lBQ2hCLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLDhEQUFvQixDQUFBO0lBQ3BCLDREQUFtQixDQUFBO0lBQ25CLHNCQUFzQjtJQUN0Qiw4Q0FBWSxDQUFBO0lBQ1osMERBQWtCLENBQUE7SUFDbEIsc0JBQXNCO0lBQ3RCLDhDQUFZLENBQUE7SUFDWixnRkFBNkIsQ0FBQTtJQUM3QixzRUFBd0IsQ0FBQTtJQUN4QixnREFBYSxDQUFBO0lBQ2IsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLHNEQUFnQixDQUFBO0lBQ2hCLHFCQUFxQjtJQUNyQiw0Q0FBVyxDQUFBO0lBQ1gsMEJBQTBCO0lB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QyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLDBCQUEwQjtRQUMxQiw2QkFBNkI7SUFDakMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQU03QjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7Q0FNL0I7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZJRUxEX1RZUEUge1xuICAgIC8vIHNwZWNpZnkgdGV4dCBmaWVsZFxuICAgICdEZWZhdWx0JyA9IDAsXG4gICAgJ1RleHRCb3gnID0gMSxcbiAgICAnTGltaXRlZExlbmd0aFRleHRCb3gnID0gMixcbiAgICAvLyBzcGVjaWZ5IHRleHQgYXJlYSBmaWVsZFxuICAgICdUZXh0QXJlYScgPSAzLFxuICAgICdUZXh0SGVhZGVyJyA9IDQsXG4gICAgLy8gc3BlY2lmeSBkYXRlIGZpZWxkXG4gICAgJ0RhdGUnID0gNSxcbiAgICAvLyBzcGVjaWZ5IGRhdGUgJiB0aW1lIGZpZWxkXG4gICAgJ0RhdGVBbmRUaW1lJyA9IDYsXG4gICAgLy8gc3BlY2lmeSBpbnRlZ2VyIGZpZWxkXG4gICAgJ051bWJlckludGVnZXInID0gNyxcbiAgICAvLyBzcGVjaWZ5IGRlY2ltYWwgZmllbGRcbiAgICAnTnVtYmVyUmVhbCcgPSA4LFxuICAgIC8vIHNwZWNpZnkgY3VycmVuY3kgZmllbGRcbiAgICAnQ3VycmVuY3knID0gOSxcbiAgICAvLyBzcGVjaWZ5IGJvb2xlYW4gZmllbGRcbiAgICAnQm9vbGVhbicgPSAxMCxcbiAgICAvLyBzcGVjaWZ5IG11bHRpcGxlIG9wdGlvbnMgZmllbGRcbiAgICAnQ29tYm9Cb3gnID0gMTEsXG4gICAgLy8gc3BlY2lmeSBtdWx0aXBsZSBvcHRpb25zIGZpZWxkXG4gICAgJ011bHRpVGlja0JveCcgPSAxMixcbiAgICAvLyBzcGVjaWZ5IHNlcGFyYXRvciAodmlldyBvbmx5KSBmaWVsZFxuICAgICdTZXBhcmF0b3InID0gMTMsXG4gICAgLy8gc3BlY2lmeSBhZGRyZXNzIGZpZWxkXG4gICAgJ0FkZHJlc3MnID0gMTQsXG4gICAgLy8gc3BlY2lmeSBwZXJjZW50YWdlIGZpZWxkXG4gICAgJ1BlcmNlbnRhZ2UnID0gMTUsXG4gICAgJ0VtcHR5Q29tYm9Cb3gnID0gMTYsIC8vIEZvciBDYXRlZ29yeSwgQ1BJUHJpY2VMaXN0LCBTcGVjaWFsIFByaWNlIExpc3QgKENvbWJvQm94IFdpdGhvdXQgVmFsdWVzKVxuICAgICdJbnRlcm5hbExpbmsnID0gMTcsIC8vIGZvciByZXBzLCBDb250YWN0cywgTG9jYXRpb25zICYgQ2F0YWxvZ3NcbiAgICAvLyBzcGVjaWZ5IGVtYWlsIGZpZWxkXG4gICAgJ0VtYWlsJyA9IDE4LFxuICAgICdMaW1pdGVkRGF0ZScgPSAxOSxcbiAgICAvLyBzcGVjaWZ5IGltYWdlIGZpZWxkXG4gICAgJ0ltYWdlJyA9IDIwLFxuICAgICdNdWx0aVRpY2tCb3hUb0NvbWJvQm94JyA9IDIxLFxuICAgICdFbXB0eU11bHRpVGlja0JveCcgPSAyMixcbiAgICAnVG90YWxzJyA9IDIzLFxuICAgIC8vIHNwZWNpZnkgYXR0YWNobWVudCBmaWVsZFxuICAgICdBdHRhY2htZW50JyA9IDI0LFxuICAgICdTaWduYXR1cmUnID0gMjUsXG4gICAgLy8gc3BlY2lmeSBsaW5rIGZpZWxkXG4gICAgJ0xpbmsnID0gMjYsXG4gICAgLy8gc3BlY2lmeSBpbWFnZSB1cmwgZmllbGRcbiAgICAnSW1hZ2VVUkwnID0gMjcsXG4gICAgJ051bWJlckludGVnZXJRdWFudGl0eVNlbGVjdG9yJyA9IDI4LCAvLyBoYWNrIGZvciBxdWFudGl0eSBzZWxlY3RvciBpbiBjYXNlIG9mIGludGVnZXJcbiAgICAnTnVtYmVyUmVhbFF1YW50aXR5U2VsZWN0b3InID0gMjksIC8vIGhhY2sgZm9yIHF1YW50aXR5IHNlbGVjdG9yIGluIGNhc2Ugb2YgZG91YmxlXG4gICAgJ051bWJlckludGVnZXJGb3JNYXRyaXgnID0gMzAsIC8vIGhhY2sgZm9yIGludGVnZXIgaW4gbWF0cml4XG4gICAgJ051bWJlclJlYWxGb3JNYXRyaXgnID0gMzEsIC8vIGhhY2sgZm9yIGRvdWJsZSBpbiBtYXRyaXhcbiAgICAnSW1hZ2VzJyA9IDMyLCAvLyBoYWNrIGZvciBJbWFnZXMgKGZvciBmaWxtc3RyaXAgYW5kIHZhcmlhbnRzKVxuICAgICdJbmRpY2F0b3JzJyA9IDMzLCAvLyBJbmRpY2F0b3JzIGlzIGxpa2UgYWRkcmVzcyAoZ3JvdXAgZmllbGQgdGhhdCBjb25haW5zIGJvb2xlYW4gZmllbGRzKS5cbiAgICAnQ2FsY3VsYXRlZFJlYWwnID0gMzQsXG4gICAgJ0NhbGN1bGF0ZWRJbnQnID0gMzUsXG4gICAgJ0NhbGN1bGF0ZWRTdHJpbmcnID0gMzYsXG4gICAgJ0NhbGN1bGF0ZWREYXRlJyA9IDM3LFxuICAgICdDYWxjdWxhdGVkQm9vbCcgPSAzOCxcbiAgICAnTWFwRGF0YURyb3BEb3duJyA9IDM5LFxuICAgICdNYXBEYXRhUmVhbCcgPSA0MCxcbiAgICAnTWFwRGF0YVN0cmluZycgPSA0MSxcbiAgICAnTWFwRGF0YUludCcgPSA0MixcbiAgICAnU3VtJyA9IDQzLFxuICAgICdQaG9uZScgPSA0NCxcbiAgICAnVXJsRm9yQXBpJyA9IDQ1LFxuICAgICdNYW55VG9NYW55VXJsRm9yQXBpJyA9IDQ2LFxuICAgICdSZWZlcmVuY2VUeXBlJyA9IDQ3LFxuICAgICdHdWlkUmVmZXJlbmNlVHlwZScgPSA0OCxcbiAgICAnQnV0dG9uJyA9IDQ5LFxuICAgICdJbnRlcm5hbFBhZ2UnID0gNTAsIC8vIFRoZSBvbGQgdmFsdWUgd2FzIDQ1IC0gaW4gdGhlIGNwaSBwcm9qZWN0IHRoZSBcIkludGVybmFsUGFnZVwiIHZhbHVlIGlzIDUwIHNvIGkgZml4ZWQgaXQhISFcbiAgICAnRHVyYXRpb24nID0gNTEsXG4gICAgJ0xpc3RPZk9iamVjdHMnID0gNTIsXG4gICAgJ1BhY2thZ2UnID0gNTMsIC8vIFBhY2thZ2UgUXVhbnRpdHkgU2VsZWN0b3JcbiAgICAnUmVsYXRlZE9iamVjdHNDYXJkcycgPSA1NCxcbiAgICAnQm9vbGVhblRleHQnID0gNTUsIC8vIEJvb2xlYW4gdGhhdCByZXR1cm4gYSBzdHJpbmcgZGVmaW5lZCBieSB0aGUgdXNlciBpbiBjYXNlIG9mIHRydWUvZmFsc2VcbiAgICAnUmljaFRleHRIVE1MJyA9IDU2LCAvLyBIdG1sIFRleHRcbn1cblxuZXhwb3J0IGVudW0gWF9BTElHTk1FTlRfVFlQRSB7XG4gICAgTm9uZSA9IDAsXG4gICAgTGVmdCA9IDEsXG4gICAgUmlnaHQgPSAyLFxuICAgIENlbnRlciA9IDMsXG59XG5cbmV4cG9ydCBlbnVtIFlfQUxJR05NRU5UX1RZUEUge1xuICAgIE5vbmUgPSAwLFxuICAgIFRvcCA9IDEsXG4gICAgQm90dG9tID0gMixcbiAgICBDZW50ZXIgPSAzLFxufVxuXG5leHBvcnQgY2xhc3MgRmllbGRMYXlvdXQge1xuICAgIFg6IG51bWJlcjtcbiAgICBXaWR0aDogbnVtYmVyO1xuICAgIFhBbGlnbm1lbnQ6IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgWTogWV9BTElHTk1FTlRfVFlQRTtcbiAgICBIZWlnaHQ6IG51bWJlcjtcbiAgICBZQWxpZ25tZW50OiBZX0FMSUdOTUVOVF9UWVBFO1xuICAgIExpbmVOdW1iZXI6IG51bWJlcjtcblxuICAgIC8vIGNvbnN0cnVjdG9yKFxuICAgIC8vICAgICB4ID0gMCxcbiAgICAvLyAgICAgd2lkdGggPSAxLFxuICAgIC8vICAgICB4QWxpZ25tZW50OiBYX0FMSUdOTUVOVF9UWVBFID0gMSwgeTogWV9BTElHTk1FTlRfVFlQRSA9IDAsIGhlaWdodCA9IDEsIHlBbGlnbm1lbnQgPSAxLCBsaW5lTnVtYmVyID0gMSkge1xuICAgIC8vICAgICB0aGlzLlggPSB4O1xuICAgIC8vICAgICB0aGlzLldpZHRoID0gd2lkdGg7XG4gICAgLy8gICAgIHRoaXMuWEFsaWdubWVudCA9IHhBbGlnbm1lbnQ7XG4gICAgLy8gICAgIHRoaXMuWSA9IHk7XG4gICAgLy8gICAgIHRoaXMuSGVpZ2h0ID0gaGVpZ2h0O1xuICAgIC8vICAgICB0aGlzLllBbGlnbm1lbnQgPSB5QWxpZ25tZW50O1xuICAgIC8vICAgICB0aGlzLkxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgIC8vIH1cblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8RmllbGRMYXlvdXQ+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVUlDb250cm9sRmllbGQge1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgTWFuZGF0b3J5RmllbGQgPSBmYWxzZTtcbiAgICBNYW5kYXRvcnkgPSBmYWxzZTtcbiAgICBSZWFkT25seUZpZWxkOiBib29sZWFuO1xuICAgIFJlYWRPbmx5OiBib29sZWFuO1xuICAgIEZpZWxkQ29uZGl0aW9uczogYW55O1xuICAgIEN1c3RvbUZpZWxkOiBhbnk7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBPcHRpb25hbFZhbHVlczogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIE1pblZhbHVlOiBudW1iZXI7XG4gICAgTWF4VmFsdWU6IG51bWJlcjtcbiAgICBNYXhDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4RmllbGRDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4TGluZXM6IG51bWJlcjtcbiAgICBMYXlvdXQ6IEZpZWxkTGF5b3V0OyAvLyB7IFg6IG51bWJlcjsgSGVpZ2h0OiBudW1iZXI7IFk6IG51bWJlcjsgV2lkdGg6IG51bWJlcjsgWEFsaWdubWVudDogbnVtYmVyOyBZQWxpZ25tZW50OiBudW1iZXIgfTtcbiAgICBDb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIENvbHVtbldpZHRoVHlwZTogbnVtYmVyO1xuICAgIEZpZWxkTmFtZTogc3RyaW5nO1xuICAgIERlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICAgIEhpZGRlbjogYm9vbGVhbjtcbiAgICBPYmplY3RUeXBlUmVmZXJlbmNlOiBhbnk7XG4gICAgUGFyZW50RmllbGQ6IHN0cmluZztcbiAgICBXcm50eUZpZWxkTmFtZTogc3RyaW5nO1xuICAgIEVkaXRvcjogYW55O1xuICAgIG1pbkZpZWxkV2lkdGggPSA0NTtcbiAgICBjYWxjQ29sdW1uV2lkdGggPSAxMDtcbiAgICBjYWxjVGl0bGVDb2x1bW5XaWR0aFN0cmluZyA9ICcxMDAlJztcbiAgICBjYWxjQ29sdW1uV2lkdGhTdHJpbmcgPSAnMTAwJSc7XG59XG5cbmV4cG9ydCBjbGFzcyBVSUNvbnRyb2wge1xuICAgIE9iamVjdElEOiBhbnk7XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgQ29udHJvbEZpZWxkczogQXJyYXk8VUlDb250cm9sRmllbGQ+O1xuICAgIENvbHVtbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgQWNjZXNzb3J5Pzogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIEZpZWxkVHlwZTogbnVtYmVyO1xuICAgIEZvcm1hdHRlZFZhbHVlOiBhbnk7XG4gICAgR3JvdXBGaWVsZHM/OiBBcnJheTxPYmplY3RzRGF0YVJvd0NlbGw+O1xuICAgIEhpZ2hsaWdodGVkPzogYm9vbGVhbjtcbiAgICBOb3RpZmljYXRpb25JbmZvPzogc3RyaW5nO1xuICAgIE9wdGlvbmFsVmFsdWVzPzogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIFJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZT86IHN0cmluZztcbiAgICBSZWZlcmVuY2VPYmplY3RTdWJUeXBlPzogc3RyaW5nO1xuICAgIFJlZmVyZW5jZU9iamVjdFR5cGU/OiBzdHJpbmc7XG4gICAgVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIFVpUGFnZUtleT86IHN0cmluZztcbiAgICBVSVBhZ2VJbmZvPzogYW55O1xuICAgIC8vIFR5cGU/OiBzdHJpbmc7IC8vIFRoaXMgaXMgaW4gdGhlIG9iamVjdD8/XG4gICAgVmFsdWU6IGFueTtcbiAgICBWaXNpYmxlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdHNEYXRhUm93IHtcbiAgICBBZGRpdGlvbmFsRGF0YT86IGFueTtcbiAgICBCYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gICAgRXh0cmFJbmZvPzogQXJyYXk8eyBLZXk6IHN0cmluZzsgVmFsdWU6IHN0cmluZyB9PjtcbiAgICBGaWVsZHM6IEFycmF5PE9iamVjdHNEYXRhUm93Q2VsbD47XG4gICAgSXNFZGl0YWJsZSA9IHRydWU7XG4gICAgSXNTZWxlY3RhYmxlRm9yQWN0aW9ucyA9IHRydWU7XG4gICAgTWFpbkFjdGlvbj86IHN0cmluZztcbiAgICBQcm9maWxlPzogYW55O1xuICAgIFR5cGU6IG51bWJlcjtcbiAgICBVSUQ6IGFueTtcbiAgICBLZXk6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdFNpbmdsZURhdGEge1xuICAgIERhdGE6IE9iamVjdHNEYXRhUm93O1xuICAgIEVycm9yQ29kZTogc3RyaW5nO1xuICAgIEVycm9yTWVzc2FnZTogc3RyaW5nO1xuICAgIElzRWRpdGFibGU6IGJvb2xlYW47XG4gICAgU3VjY2VzczogYm9vbGVhbjtcbiAgICBUeXBlOiBzdHJpbmc7XG4gICAgVUlDb250cm9sOiBVSUNvbnRyb2w7XG5cbiAgICBjb25zdHJ1Y3Rvcih1aUNvbnRyb2w6IFVJQ29udHJvbCA9IG51bGwsIGRhdGE6IE9iamVjdHNEYXRhUm93ID0gbnVsbCkge1xuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICB0aGlzLkVycm9yTWVzc2FnZSA9ICcnO1xuICAgICAgICB0aGlzLlR5cGUgPSAnJztcblxuICAgICAgICB0aGlzLlVJQ29udHJvbCA9IHVpQ29udHJvbDtcbiAgICAgICAgdGhpcy5EYXRhID0gZGF0YTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RzRGF0YSB7XG4gICAgRGF0ZUZpbHRlcj86IHN0cmluZztcbiAgICBFcnJvckNvZGU6IHN0cmluZztcbiAgICBFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBSb3dzOiBBcnJheTxPYmplY3RzRGF0YVJvdz47XG4gICAgU2VhcmNoQ29kZT86IHN0cmluZztcbiAgICBTZWNTbWFydFNlYXJjaExpc3Q/OiBbXTtcbiAgICBTbWFydFNlYXJjaExpc3Q6IEFycmF5PFNtYXJ0U2VhcmNoUmVzcG9uc2U+O1xuICAgIFN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgVG90YWxSb3dzOiBudW1iZXI7XG4gICAgVUlDb250cm9sOiBVSUNvbnRyb2w7XG4gICAgLy8gQWxsUm93czogQXJyYXk8T2JqZWN0c0RhdGFSb3c+O1xuICAgIC8vIFRvdGFsQW1vdW50OiBhbnk7XG4gICAgLy8gQ3VycmVuY3lTeW1ib2w6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLkVycm9yTWVzc2FnZSA9ICcnO1xuICAgICAgICB0aGlzLlN1Y2Nlc3MgPSB0cnVlO1xuICAgICAgICAvLyB0aGlzLlRvdGFsQW1vdW50ID0gJzAnO1xuICAgICAgICAvLyB0aGlzLkN1cnJlbmN5U3ltYm9sID0gJyQnO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNtYXJ0U2VhcmNoVmFsdWVzIHtcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgQ29tcGFyaXNvblR5cGU6IHN0cmluZztcbiAgICBWYWx1ZTogc3RyaW5nO1xuICAgIFZhbHVlUmFuZ2U6IHsgU3RhcnQ6IHN0cmluZzsgRW5kOiBzdHJpbmcgfTtcbiAgICBWYWx1ZXM6IEFycmF5PHN0cmluZz47XG59XG5cbmV4cG9ydCBjbGFzcyBTbWFydFNlYXJjaFJlc3BvbnNlIHtcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgRmllbGRUeXBlOiBhbnk7XG4gICAgVGl0bGU6IHN0cmluZztcbiAgICBWYWx1ZXM6IEFycmF5PEtleVZhbHVlUGFpcjxzdHJpbmc+PjtcbiAgICBTbWFydFNlYXJjaERhdGE6IFNtYXJ0U2VhcmNoVmFsdWVzO1xufVxuXG5leHBvcnQgY2xhc3MgS2V5VmFsdWVQYWlyPFQ+IHtcbiAgICBLZXk6IHN0cmluZztcbiAgICBWYWx1ZTogVDtcbn1cbiJdfQ==
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2FwaS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL21vZGVsL3dhcGkubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksVUE0RVg7QUE1RUQsV0FBWSxVQUFVO0lBQ2xCLHFCQUFxQjtJQUNyQixpREFBYSxDQUFBO0lBQ2IsaURBQWEsQ0FBQTtJQUNiLDJFQUEwQixDQUFBO0lBQzFCLDBCQUEwQjtJQUMxQixtREFBYyxDQUFBO0lBQ2QsdURBQWdCLENBQUE7SUFDaEIscUJBQXFCO0lBQ3JCLDJDQUFVLENBQUE7SUFDViw0QkFBNEI7SUFDNUIseURBQWlCLENBQUE7SUFDakIsd0JBQXdCO0lBQ3hCLDZEQUFtQixDQUFBO0lBQ25CLHdCQUF3QjtJQUN4Qix1REFBZ0IsQ0FBQTtJQUNoQix5QkFBeUI7SUFDekIsbURBQWMsQ0FBQTtJQUNkLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsaUNBQWlDO0lBQ2pDLG9EQUFlLENBQUE7SUFDZixpQ0FBaUM7SUFDakMsNERBQW1CLENBQUE7SUFDbkIsc0NBQXNDO0lBQ3RDLHNEQUFnQixDQUFBO0lBQ2hCLHdCQUF3QjtJQUN4QixrREFBYyxDQUFBO0lBQ2QsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLDhEQUFvQixDQUFBO0lBQ3BCLDREQUFtQixDQUFBO0lBQ25CLHNCQUFzQjtJQUN0Qiw4Q0FBWSxDQUFBO0lBQ1osMERBQWtCLENBQUE7SUFDbEIsc0JBQXNCO0lBQ3RCLDhDQUFZLENBQUE7SUFDWixnRkFBNkIsQ0FBQTtJQUM3QixzRUFBd0IsQ0FBQTtJQUN4QixnREFBYSxDQUFBO0lBQ2IsMkJBQTJCO0lBQzNCLHdEQUFpQixDQUFBO0lBQ2pCLHNEQUFnQixDQUFBO0lBQ2hCLHFCQUFxQjtJQUNyQiw0Q0FBVyxDQUFBO0lBQ1gsMEJBQTBCO0lB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QyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLDBCQUEwQjtRQUMxQiw2QkFBNkI7SUFDakMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGlCQUFpQjtDQU03QjtBQUVELE1BQU0sT0FBTyxtQkFBbUI7Q0FNL0I7QUFFRCxNQUFNLE9BQU8sWUFBWTtDQUd4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEZJRUxEX1RZUEUge1xuICAgIC8vIHNwZWNpZnkgdGV4dCBmaWVsZFxuICAgICdEZWZhdWx0JyA9IDAsXG4gICAgJ1RleHRCb3gnID0gMSxcbiAgICAnTGltaXRlZExlbmd0aFRleHRCb3gnID0gMixcbiAgICAvLyBzcGVjaWZ5IHRleHQgYXJlYSBmaWVsZFxuICAgICdUZXh0QXJlYScgPSAzLFxuICAgICdUZXh0SGVhZGVyJyA9IDQsXG4gICAgLy8gc3BlY2lmeSBkYXRlIGZpZWxkXG4gICAgJ0RhdGUnID0gNSxcbiAgICAvLyBzcGVjaWZ5IGRhdGUgJiB0aW1lIGZpZWxkXG4gICAgJ0RhdGVBbmRUaW1lJyA9IDYsXG4gICAgLy8gc3BlY2lmeSBpbnRlZ2VyIGZpZWxkXG4gICAgJ051bWJlckludGVnZXInID0gNyxcbiAgICAvLyBzcGVjaWZ5IGRlY2ltYWwgZmllbGRcbiAgICAnTnVtYmVyUmVhbCcgPSA4LFxuICAgIC8vIHNwZWNpZnkgY3VycmVuY3kgZmllbGRcbiAgICAnQ3VycmVuY3knID0gOSxcbiAgICAvLyBzcGVjaWZ5IGJvb2xlYW4gZmllbGRcbiAgICAnQm9vbGVhbicgPSAxMCxcbiAgICAvLyBzcGVjaWZ5IG11bHRpcGxlIG9wdGlvbnMgZmllbGRcbiAgICAnQ29tYm9Cb3gnID0gMTEsXG4gICAgLy8gc3BlY2lmeSBtdWx0aXBsZSBvcHRpb25zIGZpZWxkXG4gICAgJ011bHRpVGlja0JveCcgPSAxMixcbiAgICAvLyBzcGVjaWZ5IHNlcGFyYXRvciAodmlldyBvbmx5KSBmaWVsZFxuICAgICdTZXBhcmF0b3InID0gMTMsXG4gICAgLy8gc3BlY2lmeSBhZGRyZXNzIGZpZWxkXG4gICAgJ0FkZHJlc3MnID0gMTQsXG4gICAgLy8gc3BlY2lmeSBwZXJjZW50YWdlIGZpZWxkXG4gICAgJ1BlcmNlbnRhZ2UnID0gMTUsXG4gICAgJ0VtcHR5Q29tYm9Cb3gnID0gMTYsIC8vIEZvciBDYXRlZ29yeSwgQ1BJUHJpY2VMaXN0LCBTcGVjaWFsIFByaWNlIExpc3QgKENvbWJvQm94IFdpdGhvdXQgVmFsdWVzKVxuICAgICdJbnRlcm5hbExpbmsnID0gMTcsIC8vIGZvciByZXBzLCBDb250YWN0cywgTG9jYXRpb25zICYgQ2F0YWxvZ3NcbiAgICAvLyBzcGVjaWZ5IGVtYWlsIGZpZWxkXG4gICAgJ0VtYWlsJyA9IDE4LFxuICAgICdMaW1pdGVkRGF0ZScgPSAxOSxcbiAgICAvLyBzcGVjaWZ5IGltYWdlIGZpZWxkXG4gICAgJ0ltYWdlJyA9IDIwLFxuICAgICdNdWx0aVRpY2tCb3hUb0NvbWJvQm94JyA9IDIxLFxuICAgICdFbXB0eU11bHRpVGlja0JveCcgPSAyMixcbiAgICAnVG90YWxzJyA9IDIzLFxuICAgIC8vIHNwZWNpZnkgYXR0YWNobWVudCBmaWVsZFxuICAgICdBdHRhY2htZW50JyA9IDI0LFxuICAgICdTaWduYXR1cmUnID0gMjUsXG4gICAgLy8gc3BlY2lmeSBsaW5rIGZpZWxkXG4gICAgJ0xpbmsnID0gMjYsXG4gICAgLy8gc3BlY2lmeSBpbWFnZSB1cmwgZmllbGRcbiAgICAnSW1hZ2VVUkwnID0gMjcsXG4gICAgJ051bWJlckludGVnZXJRdWFudGl0eVNlbGVjdG9yJyA9IDI4LCAvLyBoYWNrIGZvciBxdWFudGl0eSBzZWxlY3RvciBpbiBjYXNlIG9mIGludGVnZXJcbiAgICAnTnVtYmVyUmVhbFF1YW50aXR5U2VsZWN0b3InID0gMjksIC8vIGhhY2sgZm9yIHF1YW50aXR5IHNlbGVjdG9yIGluIGNhc2Ugb2YgZG91YmxlXG4gICAgJ051bWJlckludGVnZXJGb3JNYXRyaXgnID0gMzAsIC8vIGhhY2sgZm9yIGludGVnZXIgaW4gbWF0cml4XG4gICAgJ051bWJlclJlYWxGb3JNYXRyaXgnID0gMzEsIC8vIGhhY2sgZm9yIGRvdWJsZSBpbiBtYXRyaXhcbiAgICAnSW1hZ2VzJyA9IDMyLCAvLyBoYWNrIGZvciBJbWFnZXMgKGZvciBmaWxtc3RyaXAgYW5kIHZhcmlhbnRzKVxuICAgICdJbmRpY2F0b3JzJyA9IDMzLCAvLyBJbmRpY2F0b3JzIGlzIGxpa2UgYWRkcmVzcyAoZ3JvdXAgZmllbGQgdGhhdCBjb25haW5zIGJvb2xlYW4gZmllbGRzKS5cbiAgICAnQ2FsY3VsYXRlZFJlYWwnID0gMzQsXG4gICAgJ0NhbGN1bGF0ZWRJbnQnID0gMzUsXG4gICAgJ0NhbGN1bGF0ZWRTdHJpbmcnID0gMzYsXG4gICAgJ0NhbGN1bGF0ZWREYXRlJyA9IDM3LFxuICAgICdDYWxjdWxhdGVkQm9vbCcgPSAzOCxcbiAgICAnTWFwRGF0YURyb3BEb3duJyA9IDM5LFxuICAgICdNYXBEYXRhUmVhbCcgPSA0MCxcbiAgICAnTWFwRGF0YVN0cmluZycgPSA0MSxcbiAgICAnTWFwRGF0YUludCcgPSA0MixcbiAgICAnU3VtJyA9IDQzLFxuICAgICdQaG9uZScgPSA0NCxcbiAgICAnVXJsRm9yQXBpJyA9IDQ1LFxuICAgICdNYW55VG9NYW55VXJsRm9yQXBpJyA9IDQ2LFxuICAgICdSZWZlcmVuY2VUeXBlJyA9IDQ3LFxuICAgICdHdWlkUmVmZXJlbmNlVHlwZScgPSA0OCxcbiAgICAnQnV0dG9uJyA9IDQ5LFxuICAgICdJbnRlcm5hbFBhZ2UnID0gNTAsIC8vIFRoZSBvbGQgdmFsdWUgd2FzIDQ1IC0gaW4gdGhlIGNwaSBwcm9qZWN0IHRoZSBcIkludGVybmFsUGFnZVwiIHZhbHVlIGlzIDUwIHNvIGkgZml4ZWQgaXQhISFcbiAgICAnRHVyYXRpb24nID0gNTEsXG4gICAgJ0xpc3RPZk9iamVjdHMnID0gNTIsXG4gICAgJ1BhY2thZ2UnID0gNTMsIC8vIFBhY2thZ2UgUXVhbnRpdHkgU2VsZWN0b3JcbiAgICAnUmVsYXRlZE9iamVjdHNDYXJkcycgPSA1NCxcbiAgICAnQm9vbGVhblRleHQnID0gNTUsIC8vIEJvb2xlYW4gdGhhdCByZXR1cm4gYSBzdHJpbmcgZGVmaW5lZCBieSB0aGUgdXNlciBpbiBjYXNlIG9mIHRydWUvZmFsc2VcbiAgICAnUmljaFRleHRIVE1MJyA9IDU2LCAvLyBIdG1sIFRleHRcbn1cblxuZXhwb3J0IGVudW0gWF9BTElHTk1FTlRfVFlQRSB7XG4gICAgTm9uZSA9IDAsXG4gICAgTGVmdCA9IDEsXG4gICAgUmlnaHQgPSAyLFxuICAgIENlbnRlciA9IDMsXG59XG5cbmV4cG9ydCBlbnVtIFlfQUxJR05NRU5UX1RZUEUge1xuICAgIE5vbmUgPSAwLFxuICAgIFRvcCA9IDEsXG4gICAgQm90dG9tID0gMixcbiAgICBDZW50ZXIgPSAzLFxufVxuXG5leHBvcnQgY2xhc3MgRmllbGRMYXlvdXQge1xuICAgIFg6IG51bWJlcjtcbiAgICBXaWR0aDogbnVtYmVyO1xuICAgIFhBbGlnbm1lbnQ6IFhfQUxJR05NRU5UX1RZUEU7XG4gICAgWTogWV9BTElHTk1FTlRfVFlQRTtcbiAgICBIZWlnaHQ6IG51bWJlcjtcbiAgICBZQWxpZ25tZW50OiBZX0FMSUdOTUVOVF9UWVBFO1xuICAgIExpbmVOdW1iZXI6IG51bWJlcjtcblxuICAgIC8vIGNvbnN0cnVjdG9yKFxuICAgIC8vICAgICB4ID0gMCxcbiAgICAvLyAgICAgd2lkdGggPSAxLFxuICAgIC8vICAgICB4QWxpZ25tZW50OiBYX0FMSUdOTUVOVF9UWVBFID0gMSwgeTogWV9BTElHTk1FTlRfVFlQRSA9IDAsIGhlaWdodCA9IDEsIHlBbGlnbm1lbnQgPSAxLCBsaW5lTnVtYmVyID0gMSkge1xuICAgIC8vICAgICB0aGlzLlggPSB4O1xuICAgIC8vICAgICB0aGlzLldpZHRoID0gd2lkdGg7XG4gICAgLy8gICAgIHRoaXMuWEFsaWdubWVudCA9IHhBbGlnbm1lbnQ7XG4gICAgLy8gICAgIHRoaXMuWSA9IHk7XG4gICAgLy8gICAgIHRoaXMuSGVpZ2h0ID0gaGVpZ2h0O1xuICAgIC8vICAgICB0aGlzLllBbGlnbm1lbnQgPSB5QWxpZ25tZW50O1xuICAgIC8vICAgICB0aGlzLkxpbmVOdW1iZXIgPSBsaW5lTnVtYmVyO1xuICAgIC8vIH1cblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFBhcnRpYWw8RmllbGRMYXlvdXQ+KSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgZGF0YSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgVUlDb250cm9sRmllbGQge1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgTWFuZGF0b3J5RmllbGQgPSBmYWxzZTtcbiAgICBNYW5kYXRvcnkgPSBmYWxzZTtcbiAgICBSZWFkT25seUZpZWxkOiBib29sZWFuO1xuICAgIFJlYWRPbmx5OiBib29sZWFuO1xuICAgIEZpZWxkQ29uZGl0aW9uczogYW55O1xuICAgIEN1c3RvbUZpZWxkOiBhbnk7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogRklFTERfVFlQRTtcbiAgICBPcHRpb25hbFZhbHVlczogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIE1pblZhbHVlOiBudW1iZXI7XG4gICAgTWF4VmFsdWU6IG51bWJlcjtcbiAgICBNYXhDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4RmllbGRDaGFyYWN0ZXJzOiBudW1iZXI7XG4gICAgTWF4TGluZXM6IG51bWJlcjtcbiAgICBMYXlvdXQ6IEZpZWxkTGF5b3V0OyAvLyB7IFg6IG51bWJlcjsgSGVpZ2h0OiBudW1iZXI7IFk6IG51bWJlcjsgV2lkdGg6IG51bWJlcjsgWEFsaWdubWVudDogbnVtYmVyOyBZQWxpZ25tZW50OiBudW1iZXIgfTtcbiAgICBDb2x1bW5XaWR0aDogbnVtYmVyO1xuICAgIENvbHVtbldpZHRoVHlwZTogbnVtYmVyO1xuICAgIEZpZWxkTmFtZTogc3RyaW5nO1xuICAgIERlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICAgIEhpZGRlbjogYm9vbGVhbjtcbiAgICBPYmplY3RUeXBlUmVmZXJlbmNlOiBhbnk7XG4gICAgUGFyZW50RmllbGQ6IHN0cmluZztcbiAgICBXcm50eUZpZWxkTmFtZTogc3RyaW5nO1xuICAgIEVkaXRvcjogYW55O1xuICAgIG1pbkZpZWxkV2lkdGggPSA0NTtcbiAgICBjYWxjQ29sdW1uV2lkdGggPSAxMDtcbiAgICBjYWxjVGl0bGVDb2x1bW5XaWR0aFN0cmluZyA9ICcxMDAlJztcbiAgICBjYWxjQ29sdW1uV2lkdGhTdHJpbmcgPSAnMTAwJSc7XG59XG5cbmV4cG9ydCBjbGFzcyBVSUNvbnRyb2wge1xuICAgIE9iamVjdElEOiBhbnk7XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIERpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgQ29udHJvbEZpZWxkczogQXJyYXk8VUlDb250cm9sRmllbGQ+O1xuICAgIENvbHVtbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIE9iamVjdHNEYXRhUm93Q2VsbCB7XG4gICAgQWNjZXNzb3J5Pzogc3RyaW5nO1xuICAgIEFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcbiAgICBBcGlOYW1lOiBzdHJpbmc7XG4gICAgQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIEZpZWxkVHlwZTogbnVtYmVyO1xuICAgIEZvcm1hdHRlZFZhbHVlOiBhbnk7XG4gICAgR3JvdXBGaWVsZHM/OiBBcnJheTxPYmplY3RzRGF0YVJvd0NlbGw+O1xuICAgIEhpZ2hsaWdodGVkPzogYm9vbGVhbjtcbiAgICBOb3RpZmljYXRpb25JbmZvPzogc3RyaW5nO1xuICAgIE9wdGlvbmFsVmFsdWVzPzogQXJyYXk8S2V5VmFsdWVQYWlyPHN0cmluZz4+O1xuICAgIFJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZT86IHN0cmluZztcbiAgICBSZWZlcmVuY2VPYmplY3RTdWJUeXBlPzogc3RyaW5nO1xuICAgIFJlZmVyZW5jZU9iamVjdFR5cGU/OiBzdHJpbmc7XG4gICAgVGV4dENvbG9yPzogc3RyaW5nO1xuICAgIFVpUGFnZUtleT86IHN0cmluZztcbiAgICBVSVBhZ2VJbmZvPzogYW55O1xuICAgIC8vIFR5cGU/OiBzdHJpbmc7IC8vIFRoaXMgaXMgaW4gdGhlIG9iamVjdD8/XG4gICAgVmFsdWU6IGFueTtcbiAgICBWaXNpYmxlPzogYm9vbGVhbjsgXG4gICAgRGlnaXRzTnVtYmVyQWZ0ZXJEZWNpbWFsUG9pbnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RzRGF0YVJvdyB7XG4gICAgQWRkaXRpb25hbERhdGE/OiBhbnk7XG4gICAgQmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xuICAgIEV4dHJhSW5mbz86IEFycmF5PHsgS2V5OiBzdHJpbmc7IFZhbHVlOiBzdHJpbmcgfT47XG4gICAgRmllbGRzOiBBcnJheTxPYmplY3RzRGF0YVJvd0NlbGw+O1xuICAgIElzRWRpdGFibGUgPSB0cnVlO1xuICAgIElzU2VsZWN0YWJsZUZvckFjdGlvbnMgPSB0cnVlO1xuICAgIE1haW5BY3Rpb24/OiBzdHJpbmc7XG4gICAgUHJvZmlsZT86IGFueTtcbiAgICBUeXBlOiBudW1iZXI7XG4gICAgVUlEOiBhbnk7XG4gICAgS2V5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBPYmplY3RTaW5nbGVEYXRhIHtcbiAgICBEYXRhOiBPYmplY3RzRGF0YVJvdztcbiAgICBFcnJvckNvZGU6IHN0cmluZztcbiAgICBFcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgICBJc0VkaXRhYmxlOiBib29sZWFuO1xuICAgIFN1Y2Nlc3M6IGJvb2xlYW47XG4gICAgVHlwZTogc3RyaW5nO1xuICAgIFVJQ29udHJvbDogVUlDb250cm9sO1xuXG4gICAgY29uc3RydWN0b3IodWlDb250cm9sOiBVSUNvbnRyb2wgPSBudWxsLCBkYXRhOiBPYmplY3RzRGF0YVJvdyA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5FcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgICAgdGhpcy5UeXBlID0gJyc7XG5cbiAgICAgICAgdGhpcy5VSUNvbnRyb2wgPSB1aUNvbnRyb2w7XG4gICAgICAgIHRoaXMuRGF0YSA9IGRhdGE7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgT2JqZWN0c0RhdGEge1xuICAgIERhdGVGaWx0ZXI/OiBzdHJpbmc7XG4gICAgRXJyb3JDb2RlOiBzdHJpbmc7XG4gICAgRXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gICAgUm93czogQXJyYXk8T2JqZWN0c0RhdGFSb3c+O1xuICAgIFNlYXJjaENvZGU/OiBzdHJpbmc7XG4gICAgU2VjU21hcnRTZWFyY2hMaXN0PzogW107XG4gICAgU21hcnRTZWFyY2hMaXN0OiBBcnJheTxTbWFydFNlYXJjaFJlc3BvbnNlPjtcbiAgICBTdWNjZXNzOiBib29sZWFuO1xuICAgIFRvdGFsUm93czogbnVtYmVyO1xuICAgIFVJQ29udHJvbDogVUlDb250cm9sO1xuICAgIC8vIEFsbFJvd3M6IEFycmF5PE9iamVjdHNEYXRhUm93PjtcbiAgICAvLyBUb3RhbEFtb3VudDogYW55O1xuICAgIC8vIEN1cnJlbmN5U3ltYm9sOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5FcnJvck1lc3NhZ2UgPSAnJztcbiAgICAgICAgdGhpcy5TdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgLy8gdGhpcy5Ub3RhbEFtb3VudCA9ICcwJztcbiAgICAgICAgLy8gdGhpcy5DdXJyZW5jeVN5bWJvbCA9ICckJztcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTbWFydFNlYXJjaFZhbHVlcyB7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIENvbXBhcmlzb25UeXBlOiBzdHJpbmc7XG4gICAgVmFsdWU6IHN0cmluZztcbiAgICBWYWx1ZVJhbmdlOiB7IFN0YXJ0OiBzdHJpbmc7IEVuZDogc3RyaW5nIH07XG4gICAgVmFsdWVzOiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgU21hcnRTZWFyY2hSZXNwb25zZSB7XG4gICAgQXBpTmFtZTogc3RyaW5nO1xuICAgIEZpZWxkVHlwZTogYW55O1xuICAgIFRpdGxlOiBzdHJpbmc7XG4gICAgVmFsdWVzOiBBcnJheTxLZXlWYWx1ZVBhaXI8c3RyaW5nPj47XG4gICAgU21hcnRTZWFyY2hEYXRhOiBTbWFydFNlYXJjaFZhbHVlcztcbn1cblxuZXhwb3J0IGNsYXNzIEtleVZhbHVlUGFpcjxUPiB7XG4gICAgS2V5OiBzdHJpbmc7XG4gICAgVmFsdWU6IFQ7XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Injectable, Optional } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "./session.service";
4
4
  import * as i2 from "../../http/services/http.service";
@@ -18,38 +18,36 @@ export class PepAddonService {
18
18
  this.fileService = fileService;
19
19
  this.route = route;
20
20
  this.PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';
21
- this.ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
21
+ // private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';
22
22
  this.ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';
23
23
  this.ADDON_API_RELATIVE_PATH = '/addons/api';
24
24
  this.ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;
25
25
  //
26
26
  }
27
27
  get devServer() {
28
- return this.route.snapshot.queryParamMap.get('devServer') === 'true';
28
+ return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;
29
29
  }
30
30
  getAddonBaseRelativePath(isAsync = false) {
31
31
  return isAsync
32
32
  ? this.ADDON_API_ASYNC_RELATIVE_PATH
33
33
  : this.ADDON_API_RELATIVE_PATH;
34
34
  }
35
- getAddonStaticFolder(subAddonUUID = '') {
36
- if (subAddonUUID.length > 0) {
37
- const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
38
- return addonsDictionary && addonsDictionary[subAddonUUID] ? addonsDictionary[subAddonUUID] : '';
39
- }
40
- else {
41
- return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
42
- }
35
+ getAddonStaticFolder(addonUUID) {
36
+ // if (addonUUID.length > 0) {
37
+ const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);
38
+ return addonsDictionary && addonsDictionary[addonUUID] ? addonsDictionary[addonUUID] : '';
39
+ // } else {
40
+ // return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';
41
+ // }
43
42
  }
44
- setAddonStaticFolder(path, subAddonUUID = '') {
45
- if (subAddonUUID.length > 0) {
46
- const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};
47
- addonsDictionary[subAddonUUID] = path;
48
- this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
49
- }
50
- else {
51
- return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
52
- }
43
+ setAddonStaticFolder(path, addonUUID) {
44
+ // if (addonUUID.length > 0) {
45
+ const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};
46
+ addonsDictionary[addonUUID] = path;
47
+ this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);
48
+ // } else {
49
+ // return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);
50
+ // }
53
51
  }
54
52
  getServerBaseUrl(addonUUID, fileName = '', isAsync = false, localhostPort = 4500) {
55
53
  const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';
@@ -90,8 +88,8 @@ export class PepAddonService {
90
88
  this.loaderService.hide();
91
89
  });
92
90
  }
93
- getNgxLibTranslationResource(subAddonUUID = '', libName = 'ngx-lib') {
94
- const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
91
+ getNgxLibTranslationResource(addonUUID, libName = 'ngx-lib') {
92
+ const addonStaticFolder = this.getAddonStaticFolder(addonUUID);
95
93
  const translationsPath = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);
96
94
  const translationsSuffix = this.fileService.getAssetsTranslationsSuffix(libName);
97
95
  return {
@@ -99,8 +97,8 @@ export class PepAddonService {
99
97
  suffix: translationsSuffix,
100
98
  };
101
99
  }
102
- getAddonTranslationResource(subAddonUUID = '') {
103
- const addonStaticFolder = this.getAddonStaticFolder(subAddonUUID);
100
+ getAddonTranslationResource(addonUUID) {
101
+ const addonStaticFolder = this.getAddonStaticFolder(addonUUID);
104
102
  const defaultSubFolder = 'assets/i18n/';
105
103
  return {
106
104
  prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,
@@ -113,36 +111,43 @@ export class PepAddonService {
113
111
  getPagesAddonUUID() {
114
112
  return this.PAGES_ADDON_UUID;
115
113
  }
116
- // Deprecated need to delete in next major.
117
- static createDefaultMultiTranslateLoader(http, fileService, addonService, subAddonUUID = '') {
118
- const ngxLibTranslationResource = addonService.getNgxLibTranslationResource(subAddonUUID);
119
- const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
120
- return addonService.translateService.createMultiTranslateLoader([
121
- ngxLibTranslationResource,
122
- addonTranslationResource
123
- ]);
124
- }
125
- static createMultiTranslateLoader(addonService, libsName = ['ngx-lib'], subAddonUUID = '') {
114
+ // // Deprecated need to delete in next major.
115
+ // public static createDefaultMultiTranslateLoader(
116
+ // http: HttpClient,
117
+ // fileService: PepFileService,
118
+ // addonService: PepAddonService,
119
+ // addonUUID = ''
120
+ // ) {
121
+ // const ngxLibTranslationResource = addonService.getNgxLibTranslationResource(addonUUID);
122
+ // const addonTranslationResource = addonService.getAddonTranslationResource(addonUUID);
123
+ // return addonService.translateService.createMultiTranslateLoader([
124
+ // ngxLibTranslationResource,
125
+ // addonTranslationResource
126
+ // ]);
127
+ // }
128
+ static createMultiTranslateLoader(addonUUID, addonService, libsName = ['ngx-lib']) {
126
129
  const ngxLibTranslationResources = [];
127
130
  if (libsName?.length > 0) {
128
131
  for (let index = 0; index < libsName.length; index++) {
129
132
  const libName = libsName[index];
130
- ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(subAddonUUID, libName));
133
+ ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(addonUUID, libName));
131
134
  }
132
135
  }
133
- const addonTranslationResource = addonService.getAddonTranslationResource(subAddonUUID);
136
+ const addonTranslationResource = addonService.getAddonTranslationResource(addonUUID);
134
137
  return addonService.translateService.createMultiTranslateLoader([
135
138
  ...ngxLibTranslationResources,
136
139
  addonTranslationResource
137
140
  ]);
138
141
  }
139
142
  }
140
- PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Injectable });
143
+ PepAddonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, deps: [{ token: i1.PepSessionService }, { token: i2.PepHttpService }, { token: i3.PepLoaderService }, { token: i4.PepTranslateService }, { token: i5.PepFileService }, { token: i6.ActivatedRoute, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
141
144
  PepAddonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, providedIn: 'root' });
142
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepAddonService, decorators: [{
143
146
  type: Injectable,
144
147
  args: [{
145
148
  providedIn: 'root',
146
149
  }]
147
- }], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.ActivatedRoute }]; } });
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFZM0M7O0VBRUU7QUFJRixNQUFNLE9BQU8sZUFBZTtJQVd4QixZQUNZLGNBQWlDLEVBQ2pDLFdBQTJCLEVBQzNCLGFBQStCLEVBQ2hDLGdCQUFxQyxFQUNyQyxXQUEyQixFQUMxQixLQUFxQjtRQUxyQixtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUMxQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQWhCaEIscUJBQWdCLEdBQUcsc0NBQXNDLENBQUM7UUFDMUQsMEJBQXFCLEdBQUcsaUJBQWlCLENBQUM7UUFDMUMsc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFjckYsRUFBRTtJQUNOLENBQUM7SUFiRCxJQUFZLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQztJQUN6RSxDQUFDO0lBYU8sd0JBQXdCLENBQUMsT0FBTyxHQUFHLEtBQUs7UUFDNUMsT0FBTyxPQUFPO1lBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQyw2QkFBNkI7WUFDcEMsQ0FBQyxDQUFDLElBQUks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QyxJQUFJLENBQUMsWUFBWSxDQUFDLDRCQUE0QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2FBQ3JHO1NBQ0o7UUFFRCxNQUFNLHdCQUF3QixHQUFHLFlBQVksQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUV4RixPQUFPLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FBQztZQUM1RCxHQUFHLDBCQUEwQjtZQUM3Qix3QkFBd0I7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7NEdBM0tRLGVBQWU7Z0hBQWYsZUFBZSxjQUZaLE1BQU07MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQZXBTZXNzaW9uU2VydmljZSB9IGZyb20gJy4vc2Vzc2lvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcEZpbGVTZXJ2aWNlIH0gZnJvbSAnLi9maWxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwSHR0cFNlcnZpY2UgfSBmcm9tICcuLi8uLi9odHRwL3NlcnZpY2VzL2h0dHAuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9zZXJ2aWNlcy9sb2FkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgSVRyYW5zbGF0aW9uUmVzb3VyY2UgfSBmcm9tICduZ3gtdHJhbnNsYXRlLW11bHRpLWh0dHAtbG9hZGVyJztcbmltcG9ydCB7IFBlcFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcblxuLypcbiAgICBUaGlzIHNlcnZpY2UgaXMgdGhlIHdlYmFwcCBhcGkgZm9yIGFkZG9uIHVzZWdlLlxuKi9cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEFkZG9uU2VydmljZSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBQQUdFU19BRERPTl9VVUlEID0gJzUwMDYyZTBjLTk5NjctNGVkNC05MTAyLWYyYmM1MDYwMmQ0MSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTl9BU1NFVFNfUEFUSF9LRVkgPSAnQWRkb25Bc3NldHNQYXRoJztcbiAgICBwcml2YXRlIHJlYWRvbmx5IEFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSA9ICdBZGRvbnNEaWN0aW9uYXJ5QXNzZXRzUGF0aCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTl9BUElfUkVMQVRJVkVfUEFUSCA9ICcvYWRkb25zL2FwaSc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTl9BUElfQVNZTkNfUkVMQVRJVkVfUEFUSCA9IGAke3RoaXMuQURET05fQVBJX1JFTEFUSVZFX1BBVEh9L2FzeW5jYDtcblxuICAgIHByaXZhdGUgZ2V0IGRldlNlcnZlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbU1hcC5nZXQoJ2RldlNlcnZlcicpID09PSAndHJ1ZSc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvblNlcnZpY2U6IFBlcFNlc3Npb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBQZXBIdHRwU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBQZXBMb2FkZXJTZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgdHJhbnNsYXRlU2VydmljZTogUGVwVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHVibGljIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoaXNBc3luYyA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGlzQXN5bmNcbiAgICAgICAgICAgID8gdGhpcy5BRERPTl9BUElfQVNZTkNfUkVMQVRJVkVfUEFUSFxuICAgICAgICAgICAgOiB0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIO1xuICAgIH1cblxuICAgIGdldEFkZG9uU3RhdGljRm9sZGVyKHN1YkFkZG9uVVVJRCA9ICcnKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHN1YkFkZG9uVVVJRC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRvbnNEaWN0aW9uYXJ5ID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkpO1xuICAgICAgICAgICAgcmV0dXJuIGFkZG9uc0RpY3Rpb25hcnkgJiYgYWRkb25zRGljdGlvbmFyeVtzdWJBZGRvblVVSURdID8gYWRkb25zRGljdGlvbmFyeVtzdWJBZGRvblVVSURdIDogJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTl9BU1NFVFNfUEFUSF9LRVkpIHx8ICcnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0QWRkb25TdGF0aWNGb2xkZXIocGF0aDogc3RyaW5nLCBzdWJBZGRvblVVSUQgPSAnJyk6IHZvaWQge1xuICAgICAgICBpZiAoc3ViQWRkb25VVUlELmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNvbnN0IGFkZG9uc0RpY3Rpb25hcnkgPSB0aGlzLnNlc3Npb25TZXJ2aWNlLmdldE9iamVjdCh0aGlzLkFERE9OU19ESUNUSU9OQVJZX0FTU0VUU19QQVRIX0tFWSkgPz8ge307XG4gICAgICAgICAgICBhZGRvbnNEaWN0aW9uYXJ5W3N1YkFkZG9uVVVJRF0gPSBwYXRoO1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uU2VydmljZS5zZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVksIGFkZG9uc0RpY3Rpb25hcnkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQURET05fQVNTRVRTX1BBVEhfS0VZLCBwYXRoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldFNlcnZlckJhc2VVcmwoYWRkb25VVUlEOiBzdHJpbmcsIGZpbGVOYW1lID0gJycsIGlzQXN5bmMgPSBmYWxzZSwgbG9jYWxob3N0UG9ydCA9IDQ1MDApOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBmaWxlVG9BZGQgPSBmaWxlTmFtZS5sZW5ndGggPiAwID8gYC8ke2ZpbGVOYW1lfWAgOiAnJztcbiAgICAgICAgXG4gICAgICAgIC8vIEZvciBkZXZTZXJ2ZXIgcnVuIHNlcnZlciBvbiBsb2NhbGhvc3QuXG4gICAgICAgIGlmKHRoaXMuZGV2U2VydmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtsb2NhbGhvc3RQb3J0fSR7ZmlsZVRvQWRkfWA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBiYXNlVXJsID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRQYXBpQmFzZVVybCgpO1xuICAgICAgICAgICAgcmV0dXJuIGAke2Jhc2VVcmx9JHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChpc0FzeW5jKX0vJHthZGRvblVVSUR9JHtmaWxlVG9BZGR9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFkZG9uQXBpQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBodHRwT3B0aW9ucyA9IHt9LFxuICAgICAgICBpc0FzeW5jID0gZmFsc2VcbiAgICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICAvLyByZXR1cm4gdGhpcy5odHRwU2VydmljZS5nZXRQYXBpQXBpQ2FsbChcbiAgICAgICAgLy8gICAgIGAke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKFxuICAgICAgICAvLyAgICAgICAgIGlzQXN5bmNcbiAgICAgICAgLy8gICAgICl9LyR7YWRkb25VVUlEfS8ke2ZpbGVOYW1lfS8ke2Z1bmN0aW9uTmFtZX1gLFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0SHR0cENhbGwoYCR7cGFwaUJhc2VVcmx9LyR7ZnVuY3Rpb25OYW1lfWAsIGh0dHBPcHRpb25zKTtcbiAgICB9XG5cbiAgICBwb3N0QWRkb25BcGlDYWxsKFxuICAgICAgICBhZGRvblVVSUQ6IHN0cmluZyxcbiAgICAgICAgZmlsZU5hbWU6IHN0cmluZyxcbiAgICAgICAgZnVuY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGJvZHkgPSB7fSxcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB7fSxcbiAgICAgICAgaXNBc3luYyA9IGZhbHNlXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdFBhcGlBcGlDYWxsKFxuICAgICAgICAvLyAgICAgYCR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoXG4gICAgICAgIC8vICAgICAgICAgaXNBc3luY1xuICAgICAgICAvLyAgICAgKX0vJHthZGRvblVVSUR9LyR7ZmlsZU5hbWV9LyR7ZnVuY3Rpb25OYW1lfWAsXG4gICAgICAgIC8vICAgICBib2R5LFxuICAgICAgICAvLyAgICAgaHR0cE9wdGlvbnNcbiAgICAgICAgLy8gKTtcblxuICAgICAgICBjb25zdCBwYXBpQmFzZVVybCA9IHRoaXMuZ2V0U2VydmVyQmFzZVVybChhZGRvblVVSUQsIGZpbGVOYW1lLCBpc0FzeW5jKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UucG9zdEh0dHBDYWxsKGAke3BhcGlCYXNlVXJsfS8ke2Z1bmN0aW9uTmFtZX1gLCBib2R5LCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogbmVlZCB0byBjaGVrIHRoaXMgaWYgdGhlIGxvYWRlciBpcyB3b3JraW5nLlxuICAgIGZldGNoKGlucHV0OiBSZXF1ZXN0SW5mbywgaW5pdD86IFJlcXVlc3RJbml0KTogUHJvbWlzZTxSZXNwb25zZT4ge1xuICAgICAgICB0aGlzLmxvYWRlclNlcnZpY2Uuc2hvdygpO1xuXG4gICAgICAgIHJldHVybiB3aW5kb3cuZmV0Y2goaW5wdXQsIGluaXQpLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmhpZGUoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQgPSAnJywgbGliTmFtZSA9ICduZ3gtbGliJyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKHN1YkFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1BhdGg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zUGF0aChhZGRvblN0YXRpY0ZvbGRlciwgbGliTmFtZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uc1N1ZmZpeDogc3RyaW5nID0gdGhpcy5maWxlU2VydmljZS5nZXRBc3NldHNUcmFuc2xhdGlvbnNTdWZmaXgobGliTmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogdHJhbnNsYXRpb25zUGF0aCxcbiAgICAgICAgICAgIHN1ZmZpeDogdHJhbnNsYXRpb25zU3VmZml4LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZShzdWJBZGRvblVVSUQgPSAnJyk6IElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgICAgICAgY29uc3QgYWRkb25TdGF0aWNGb2xkZXIgPSB0aGlzLmdldEFkZG9uU3RhdGljRm9sZGVyKHN1YkFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRTdWJGb2xkZXIgPSAnYXNzZXRzL2kxOG4vJztcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcHJlZml4OiBhZGRvblN0YXRpY0ZvbGRlci5sZW5ndGggPiAwID8gYCR7YWRkb25TdGF0aWNGb2xkZXJ9JHtkZWZhdWx0U3ViRm9sZGVyfWAgOiBgLyR7ZGVmYXVsdFN1YkZvbGRlcn1gLFxuICAgICAgICAgICAgc3VmZml4OiAnLmpzb24nLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgdXJsTGFuZ1BhcmFtID0gJ3VzZXJMYW5nJykge1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc2V0RGVmYXVsdFRyYW5zbGF0ZUxhbmcodHJhbnNsYXRlLCB1cmxMYW5nUGFyYW0pO1xuICAgIH1cblxuICAgIGdldFBhZ2VzQWRkb25VVUlEKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5QQUdFU19BRERPTl9VVUlEO1xuICAgIH1cblxuICAgIC8vIERlcHJlY2F0ZWQgbmVlZCB0byBkZWxldGUgaW4gbmV4dCBtYWpvci5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZURlZmF1bHRNdWx0aVRyYW5zbGF0ZUxvYWRlcihcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgc3ViQWRkb25VVUlEID0gJydcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXROZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCk7XG4gICAgICAgIGNvbnN0IGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlEKTtcblxuICAgICAgICByZXR1cm4gYWRkb25TZXJ2aWNlLnRyYW5zbGF0ZVNlcnZpY2UuY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoW1xuICAgICAgICAgICAgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZSxcbiAgICAgICAgICAgIGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZVxuICAgICAgICBdKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFxuICAgICAgICBhZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgbGlic05hbWUgPSBbJ25neC1saWInXSxcbiAgICAgICAgc3ViQWRkb25VVUlEID0gJydcbiAgICApIHtcbiAgICAgICAgY29uc3Qgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMgPSBbXTtcblxuICAgICAgICBpZiAobGlic05hbWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBsaWJzTmFtZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaWJOYW1lID0gbGlic05hbWVbaW5kZXhdO1xuICAgICAgICAgICAgICAgIG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLnB1c2goYWRkb25TZXJ2aWNlLmdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2Uoc3ViQWRkb25VVUlELCBsaWJOYW1lKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKHN1YkFkZG9uVVVJRCk7XG5cbiAgICAgICAgcmV0dXJuIGFkZG9uU2VydmljZS50cmFuc2xhdGVTZXJ2aWNlLmNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFtcbiAgICAgICAgICAgIC4uLm5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2VzLFxuICAgICAgICAgICAgYWRkb25UcmFuc2xhdGlvblJlc291cmNlXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==
150
+ }], ctorParameters: function () { return [{ type: i1.PepSessionService }, { type: i2.PepHttpService }, { type: i3.PepLoaderService }, { type: i4.PepTranslateService }, { type: i5.PepFileService }, { type: i6.ActivatedRoute, decorators: [{
151
+ type: Optional
152
+ }] }]; } });
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY29tbW9uL3NlcnZpY2VzL2FkZG9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7O0FBWXJEOztFQUVFO0FBSUYsTUFBTSxPQUFPLGVBQWU7SUFXeEIsWUFDWSxjQUFpQyxFQUNqQyxXQUEyQixFQUMzQixhQUErQixFQUNoQyxnQkFBcUMsRUFDckMsV0FBMkIsRUFDZCxLQUFxQjtRQUxqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBaEI1QixxQkFBZ0IsR0FBRyxzQ0FBc0MsQ0FBQztRQUMzRSw4REFBOEQ7UUFDN0Msc0NBQWlDLEdBQUcsNEJBQTRCLENBQUM7UUFDakUsNEJBQXVCLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLGtDQUE2QixHQUFHLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixRQUFRLENBQUM7UUFjckYsRUFBRTtJQUNOLENBQUM7SUFiRCxJQUFZLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQzlGLENBQUM7SUFhTyx3QkFBd0IsQ0FBQyxPQUFPLEdBQUcsS0FBSztRQUM1QyxPQUFPLE9BQU87WUFDVixDQUFDLENB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QUFNO2lCQUNyQjs7MEJBa0JRLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgUGVwU2Vzc2lvblNlcnZpY2UgfSBmcm9tICcuL3Nlc3Npb24uc2VydmljZSc7XG5pbXBvcnQgeyBQZXBGaWxlU2VydmljZSB9IGZyb20gJy4vZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcEh0dHBTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaHR0cC9zZXJ2aWNlcy9odHRwLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2h0dHAvc2VydmljZXMvbG9hZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IElUcmFuc2xhdGlvblJlc291cmNlIH0gZnJvbSAnbmd4LXRyYW5zbGF0ZS1tdWx0aS1odHRwLWxvYWRlcic7XG5pbXBvcnQgeyBQZXBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XG5cbi8qXG4gICAgVGhpcyBzZXJ2aWNlIGlzIHRoZSB3ZWJhcHAgYXBpIGZvciBhZGRvbiB1c2VnZS5cbiovXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBBZGRvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgUEFHRVNfQURET05fVVVJRCA9ICc1MDA2MmUwYy05OTY3LTRlZDQtOTEwMi1mMmJjNTA2MDJkNDEnO1xuICAgIC8vIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVNTRVRTX1BBVEhfS0VZID0gJ0FkZG9uQXNzZXRzUGF0aCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBBRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkgPSAnQWRkb25zRGljdGlvbmFyeUFzc2V0c1BhdGgnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX1JFTEFUSVZFX1BBVEggPSAnL2FkZG9ucy9hcGknO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgQURET05fQVBJX0FTWU5DX1JFTEFUSVZFX1BBVEggPSBgJHt0aGlzLkFERE9OX0FQSV9SRUxBVElWRV9QQVRIfS9hc3luY2A7XG5cbiAgICBwcml2YXRlIGdldCBkZXZTZXJ2ZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJvdXRlID8gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZGV2U2VydmVyJykgPT09ICd0cnVlJyA6IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHNlc3Npb25TZXJ2aWNlOiBQZXBTZXNzaW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBodHRwU2VydmljZTogUGVwSHR0cFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbG9hZGVyU2VydmljZTogUGVwTG9hZGVyU2VydmljZSxcbiAgICAgICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFBlcFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBmaWxlU2VydmljZTogUGVwRmlsZVNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICkge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKGlzQXN5bmMgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpc0FzeW5jXG4gICAgICAgICAgICA/IHRoaXMuQURET05fQVBJX0FTWU5DX1JFTEFUSVZFX1BBVEhcbiAgICAgICAgICAgIDogdGhpcy5BRERPTl9BUElfUkVMQVRJVkVfUEFUSDtcbiAgICB9XG5cbiAgICBnZXRBZGRvblN0YXRpY0ZvbGRlcihhZGRvblVVSUQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIC8vIGlmIChhZGRvblVVSUQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY29uc3QgYWRkb25zRGljdGlvbmFyeSA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZKTtcbiAgICAgICAgICAgIHJldHVybiBhZGRvbnNEaWN0aW9uYXJ5ICYmIGFkZG9uc0RpY3Rpb25hcnlbYWRkb25VVUlEXSA/IGFkZG9uc0RpY3Rpb25hcnlbYWRkb25VVUlEXSA6ICcnO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gcmV0dXJuIHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0T2JqZWN0KHRoaXMuQURET05fQVNTRVRTX1BBVEhfS0VZKSB8fCAnJztcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHNldEFkZG9uU3RhdGljRm9sZGVyKHBhdGg6IHN0cmluZywgYWRkb25VVUlEOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgLy8gaWYgKGFkZG9uVVVJRC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRvbnNEaWN0aW9uYXJ5ID0gdGhpcy5zZXNzaW9uU2VydmljZS5nZXRPYmplY3QodGhpcy5BRERPTlNfRElDVElPTkFSWV9BU1NFVFNfUEFUSF9LRVkpID8/IHt9O1xuICAgICAgICAgICAgYWRkb25zRGljdGlvbmFyeVthZGRvblVVSURdID0gcGF0aDtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvblNlcnZpY2Uuc2V0T2JqZWN0KHRoaXMuQURET05TX0RJQ1RJT05BUllfQVNTRVRTX1BBVEhfS0VZLCBhZGRvbnNEaWN0aW9uYXJ5KTtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHJldHVybiB0aGlzLnNlc3Npb25TZXJ2aWNlLnNldE9iamVjdCh0aGlzLkFERE9OX0FTU0VUU19QQVRIX0tFWSwgcGF0aCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBnZXRTZXJ2ZXJCYXNlVXJsKGFkZG9uVVVJRDogc3RyaW5nLCBmaWxlTmFtZSA9ICcnLCBpc0FzeW5jID0gZmFsc2UsIGxvY2FsaG9zdFBvcnQgPSA0NTAwKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZmlsZVRvQWRkID0gZmlsZU5hbWUubGVuZ3RoID4gMCA/IGAvJHtmaWxlTmFtZX1gIDogJyc7XG4gICAgICAgIFxuICAgICAgICAvLyBGb3IgZGV2U2VydmVyIHJ1biBzZXJ2ZXIgb24gbG9jYWxob3N0LlxuICAgICAgICBpZih0aGlzLmRldlNlcnZlcikge1xuICAgICAgICAgICAgcmV0dXJuIGBodHRwOi8vbG9jYWxob3N0OiR7bG9jYWxob3N0UG9ydH0ke2ZpbGVUb0FkZH1gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMuc2Vzc2lvblNlcnZpY2UuZ2V0UGFwaUJhc2VVcmwoKTtcbiAgICAgICAgICAgIHJldHVybiBgJHtiYXNlVXJsfSR7dGhpcy5nZXRBZGRvbkJhc2VSZWxhdGl2ZVBhdGgoaXNBc3luYyl9LyR7YWRkb25VVUlEfSR7ZmlsZVRvQWRkfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRBZGRvbkFwaUNhbGwoXG4gICAgICAgIGFkZG9uVVVJRDogc3RyaW5nLFxuICAgICAgICBmaWxlTmFtZTogc3RyaW5nLFxuICAgICAgICBmdW5jdGlvbk5hbWU6IHN0cmluZyxcbiAgICAgICAgaHR0cE9wdGlvbnMgPSB7fSxcbiAgICAgICAgaXNBc3luYyA9IGZhbHNlXG4gICAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuZ2V0UGFwaUFwaUNhbGwoXG4gICAgICAgIC8vICAgICBgJHt0aGlzLmdldEFkZG9uQmFzZVJlbGF0aXZlUGF0aChcbiAgICAgICAgLy8gICAgICAgICBpc0FzeW5jXG4gICAgICAgIC8vICAgICApfS8ke2FkZG9uVVVJRH0vJHtmaWxlTmFtZX0vJHtmdW5jdGlvbk5hbWV9YCxcbiAgICAgICAgLy8gICAgIGh0dHBPcHRpb25zXG4gICAgICAgIC8vICk7XG5cbiAgICAgICAgY29uc3QgcGFwaUJhc2VVcmwgPSB0aGlzLmdldFNlcnZlckJhc2VVcmwoYWRkb25VVUlELCBmaWxlTmFtZSwgaXNBc3luYyk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmdldEh0dHBDYWxsKGAke3BhcGlCYXNlVXJsfS8ke2Z1bmN0aW9uTmFtZX1gLCBodHRwT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgcG9zdEFkZG9uQXBpQ2FsbChcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIGZpbGVOYW1lOiBzdHJpbmcsXG4gICAgICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBib2R5ID0ge30sXG4gICAgICAgIGh0dHBPcHRpb25zID0ge30sXG4gICAgICAgIGlzQXN5bmMgPSBmYWxzZVxuICAgICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIC8vIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3RQYXBpQXBpQ2FsbChcbiAgICAgICAgLy8gICAgIGAke3RoaXMuZ2V0QWRkb25CYXNlUmVsYXRpdmVQYXRoKFxuICAgICAgICAvLyAgICAgICAgIGlzQXN5bmNcbiAgICAgICAgLy8gICAgICl9LyR7YWRkb25VVUlEfS8ke2ZpbGVOYW1lfS8ke2Z1bmN0aW9uTmFtZX1gLFxuICAgICAgICAvLyAgICAgYm9keSxcbiAgICAgICAgLy8gICAgIGh0dHBPcHRpb25zXG4gICAgICAgIC8vICk7XG5cbiAgICAgICAgY29uc3QgcGFwaUJhc2VVcmwgPSB0aGlzLmdldFNlcnZlckJhc2VVcmwoYWRkb25VVUlELCBmaWxlTmFtZSwgaXNBc3luYyk7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnBvc3RIdHRwQ2FsbChgJHtwYXBpQmFzZVVybH0vJHtmdW5jdGlvbk5hbWV9YCwgYm9keSwgaHR0cE9wdGlvbnMpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IG5lZWQgdG8gY2hlayB0aGlzIGlmIHRoZSBsb2FkZXIgaXMgd29ya2luZy5cbiAgICBmZXRjaChpbnB1dDogUmVxdWVzdEluZm8sIGluaXQ/OiBSZXF1ZXN0SW5pdCk6IFByb21pc2U8UmVzcG9uc2U+IHtcbiAgICAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLnNob3coKTtcblxuICAgICAgICByZXR1cm4gd2luZG93LmZldGNoKGlucHV0LCBpbml0KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubG9hZGVyU2VydmljZS5oaWRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldE5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlEOiBzdHJpbmcsIGxpYk5hbWUgPSAnbmd4LWxpYicpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihhZGRvblVVSUQpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNQYXRoOiBzdHJpbmcgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldEFzc2V0c1RyYW5zbGF0aW9uc1BhdGgoYWRkb25TdGF0aWNGb2xkZXIsIGxpYk5hbWUpO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGlvbnNTdWZmaXg6IHN0cmluZyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0QXNzZXRzVHJhbnNsYXRpb25zU3VmZml4KGxpYk5hbWUpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwcmVmaXg6IHRyYW5zbGF0aW9uc1BhdGgsXG4gICAgICAgICAgICBzdWZmaXg6IHRyYW5zbGF0aW9uc1N1ZmZpeCxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBnZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlEOiBzdHJpbmcpOiBJVHJhbnNsYXRpb25SZXNvdXJjZSB7XG4gICAgICAgIGNvbnN0IGFkZG9uU3RhdGljRm9sZGVyID0gdGhpcy5nZXRBZGRvblN0YXRpY0ZvbGRlcihhZGRvblVVSUQpO1xuICAgICAgICBjb25zdCBkZWZhdWx0U3ViRm9sZGVyID0gJ2Fzc2V0cy9pMThuLyc7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHByZWZpeDogYWRkb25TdGF0aWNGb2xkZXIubGVuZ3RoID4gMCA/IGAke2FkZG9uU3RhdGljRm9sZGVyfSR7ZGVmYXVsdFN1YkZvbGRlcn1gIDogYC8ke2RlZmF1bHRTdWJGb2xkZXJ9YCxcbiAgICAgICAgICAgIHN1ZmZpeDogJy5qc29uJyxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBzZXREZWZhdWx0VHJhbnNsYXRlTGFuZyh0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsIHVybExhbmdQYXJhbSA9ICd1c2VyTGFuZycpIHtcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRUcmFuc2xhdGVMYW5nKHRyYW5zbGF0ZSwgdXJsTGFuZ1BhcmFtKTtcbiAgICB9XG5cbiAgICBnZXRQYWdlc0FkZG9uVVVJRCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuUEFHRVNfQURET05fVVVJRDtcbiAgICB9XG5cbiAgICAvLyAvLyBEZXByZWNhdGVkIG5lZWQgdG8gZGVsZXRlIGluIG5leHQgbWFqb3IuXG4gICAgLy8gcHVibGljIHN0YXRpYyBjcmVhdGVEZWZhdWx0TXVsdGlUcmFuc2xhdGVMb2FkZXIoXG4gICAgLy8gICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgLy8gICAgIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAvLyAgICAgYWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgLy8gICAgIGFkZG9uVVVJRCA9ICcnXG4gICAgLy8gKSB7XG4gICAgLy8gICAgIGNvbnN0IG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQpO1xuICAgIC8vICAgICBjb25zdCBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UgPSBhZGRvblNlcnZpY2UuZ2V0QWRkb25UcmFuc2xhdGlvblJlc291cmNlKGFkZG9uVVVJRCk7XG5cbiAgICAvLyAgICAgcmV0dXJuIGFkZG9uU2VydmljZS50cmFuc2xhdGVTZXJ2aWNlLmNyZWF0ZU11bHRpVHJhbnNsYXRlTG9hZGVyKFtcbiAgICAvLyAgICAgICAgIG5neExpYlRyYW5zbGF0aW9uUmVzb3VyY2UsXG4gICAgLy8gICAgICAgICBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2VcbiAgICAvLyAgICAgXSk7XG4gICAgLy8gfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVNdWx0aVRyYW5zbGF0ZUxvYWRlcihcbiAgICAgICAgYWRkb25VVUlEOiBzdHJpbmcsXG4gICAgICAgIGFkZG9uU2VydmljZTogUGVwQWRkb25TZXJ2aWNlLFxuICAgICAgICBsaWJzTmFtZSA9IFsnbmd4LWxpYiddLFxuICAgICkge1xuICAgICAgICBjb25zdCBuZ3hMaWJUcmFuc2xhdGlvblJlc291cmNlcyA9IFtdO1xuXG4gICAgICAgIGlmIChsaWJzTmFtZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGxpYnNOYW1lLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGxpYk5hbWUgPSBsaWJzTmFtZVtpbmRleF07XG4gICAgICAgICAgICAgICAgbmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMucHVzaChhZGRvblNlcnZpY2UuZ2V0Tmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZShhZGRvblVVSUQsIGxpYk5hbWUpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFkZG9uVHJhbnNsYXRpb25SZXNvdXJjZSA9IGFkZG9uU2VydmljZS5nZXRBZGRvblRyYW5zbGF0aW9uUmVzb3VyY2UoYWRkb25VVUlEKTtcblxuICAgICAgICByZXR1cm4gYWRkb25TZXJ2aWNlLnRyYW5zbGF0ZVNlcnZpY2UuY3JlYXRlTXVsdGlUcmFuc2xhdGVMb2FkZXIoW1xuICAgICAgICAgICAgLi4ubmd4TGliVHJhbnNsYXRpb25SZXNvdXJjZXMsXG4gICAgICAgICAgICBhZGRvblRyYW5zbGF0aW9uUmVzb3VyY2VcbiAgICAgICAgXSk7XG4gICAgfVxufVxuIl19
@@ -1,5 +1,4 @@
1
1
  import { coerceNumberProperty, _isNumberValue } from '@angular/cdk/coercion';
2
- import { formatCurrency, formatNumber, formatPercent } from '@angular/common';
3
2
  import { Injectable, Optional } from '@angular/core';
4
3
  import * as i0 from "@angular/core";
5
4
  import * as i1 from "@ngx-translate/core";
@@ -8,6 +7,9 @@ export class PepUtilitiesService {
8
7
  this.translate = translate;
9
8
  this.culture = 'en-US';
10
9
  this.culture = this.translate?.getBrowserCultureLang() || 'en-US';
10
+ // try {
11
+ // import(`@angular/common/locales/global/${this.culture}`);
12
+ // } catch {}
11
13
  }
12
14
  changeDecimalSeperator(value, reverse = false) {
13
15
  // If the decimal separator is ','
@@ -48,6 +50,19 @@ export class PepUtilitiesService {
48
50
  str = new Array(size).join('0').concat(str);
49
51
  return str;
50
52
  }
53
+ isCurrencyShouldBeOnRight(currencySymbol) {
54
+ let res = false;
55
+ if (currencySymbol == "€" ||
56
+ currencySymbol == "₪" ||
57
+ currencySymbol == "Ft" ||
58
+ currencySymbol == "Kč" ||
59
+ currencySymbol == "руб" ||
60
+ currencySymbol == "zł" ||
61
+ currencySymbol == "kr.") {
62
+ res = true;
63
+ }
64
+ return res;
65
+ }
51
66
  parseDate(dateStr, showTime = false) {
52
67
  let retVal = null;
53
68
  if (dateStr !== '') {
@@ -113,40 +128,74 @@ export class PepUtilitiesService {
113
128
  return (div.querySelector('svg') ||
114
129
  document.createElementNS('http://www.w3.org/2000/svg', 'path'));
115
130
  }
116
- formatPercent(value, digitsInfo = '1.0-2') {
131
+ // formatPercent(value: any, digitsInfo = '1.0-2') {
132
+ formatPercent(value, minFractionDigits = 0, maxFractionDigits = 2) {
133
+ minFractionDigits = this.coerceNumberProperty(minFractionDigits, null);
134
+ maxFractionDigits = this.coerceNumberProperty(maxFractionDigits, null);
117
135
  const number = this.coerceNumberProperty(value);
118
136
  if (number === 0) {
119
137
  return '0%';
120
138
  }
121
139
  else {
122
- return formatPercent(number / 100, this.culture, digitsInfo);
140
+ // return formatPercent(number / 100, this.culture, digitsInfo);
141
+ return new Intl.NumberFormat(this.culture, {
142
+ style: 'percent',
143
+ minimumFractionDigits: minFractionDigits || 0,
144
+ maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),
145
+ }).format(number / 100);
123
146
  }
124
147
  }
125
- formatCurrency(value, currencySign = '', digitsInfo = '1.2-2') {
148
+ // formatCurrency(value: any, currencySign = '', digitsInfo = '1.2-2') {
149
+ formatCurrency(value, currencySign = '', minFractionDigits = 0, maxFractionDigits = 2) {
150
+ minFractionDigits = this.coerceNumberProperty(minFractionDigits, null);
151
+ maxFractionDigits = this.coerceNumberProperty(maxFractionDigits, null);
152
+ let res = '';
126
153
  const number = this.coerceNumberProperty(value);
154
+ const styleOptions = {
155
+ // style: 'currency',
156
+ // currencySign: currencySign,
157
+ minimumFractionDigits: minFractionDigits || 0,
158
+ maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),
159
+ };
127
160
  if (number === 0) {
128
- return formatCurrency(0, this.culture, currencySign, undefined, digitsInfo);
161
+ // return formatCurrency(0, this.culture, currencySign, undefined, digitsInfo);
162
+ res = new Intl.NumberFormat(this.culture, styleOptions).format(0);
129
163
  }
130
164
  else {
131
- return formatCurrency(value, this.culture, currencySign, undefined, digitsInfo);
165
+ // return formatCurrency(value, this.culture, currencySign, undefined, digitsInfo);
166
+ res = new Intl.NumberFormat(this.culture, styleOptions).format(number);
132
167
  }
168
+ res = this.isCurrencyShouldBeOnRight(currencySign) ? `${res} ${currencySign}` : `${currencySign} ${res}`;
169
+ return res;
133
170
  }
134
- formatDecimal(value, digitsInfo = '1.2-2') {
171
+ // formatDecimal(value: any, digitsInfo = '1.2-2') {
172
+ formatDecimal(value, minFractionDigits = 2, maxFractionDigits = 2) {
173
+ minFractionDigits = this.coerceNumberProperty(minFractionDigits, null);
174
+ maxFractionDigits = this.coerceNumberProperty(maxFractionDigits, null);
135
175
  const number = this.coerceNumberProperty(value);
136
176
  if (number === 0) {
137
177
  return '0';
138
178
  }
139
179
  else {
140
- return formatNumber(value, this.culture, digitsInfo);
180
+ // return formatNumber(value, this.culture, digitsInfo);
181
+ return new Intl.NumberFormat(this.culture, {
182
+ minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits),
183
+ maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),
184
+ }).format(number);
141
185
  }
142
186
  }
143
- formatNumber(value, digitsInfo = '1.0-0') {
187
+ // formatNumber(value: any, digitsInfo = '1.0-0'): string {
188
+ formatNumber(value) {
144
189
  const number = this.coerceNumberProperty(value);
145
190
  if (number === 0) {
146
191
  return '0';
147
192
  }
148
193
  else {
149
- return formatNumber(value, this.culture, digitsInfo);
194
+ // return formatNumber(value, this.culture, digitsInfo);
195
+ return new Intl.NumberFormat(this.culture, {
196
+ minimumFractionDigits: 0,
197
+ maximumFractionDigits: 0,
198
+ }).format(number);
150
199
  }
151
200
  }
152
201
  /**
@@ -193,7 +242,9 @@ export class PepUtilitiesService {
193
242
  }
194
243
  coerceNumberProperty(value, fallbackValue = 0) {
195
244
  // If the decimal separator is ',' change it to '.'
196
- value = this.changeDecimalSeperator(value);
245
+ if (value?.length > 0) {
246
+ value = this.changeDecimalSeperator(value);
247
+ }
197
248
  return coerceNumberProperty(value, fallbackValue);
198
249
  }
199
250
  }
@@ -207,4 +258,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
207
258
  }], ctorParameters: function () { return [{ type: i1.TranslateService, decorators: [{
208
259
  type: Optional
209
260
  }] }]; } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU1yRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLFlBQWdDLFlBQThCLElBQUk7UUFBbEMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFGMUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUd0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxPQUFPLENBQUM7SUFDdEUsQ0FBQztJQUVPLHNCQUFzQixDQUFDLEtBQWEsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUN6RCxrQ0FBa0M7UUFDbEMsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxHQUFHLEVBQUU7WUFDcEMscUVBQXFFO1lBQ3JFLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxtQkFBbUI7UUFDdkIsTUFBTSwwQkFBMEIsR0FBRyxHQUFHLENBQUM7UUFFdkMsT0FBTywwQkFBMEI7YUFDNUIsY0FBYyxDQUFDLElB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LENBQUMsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFBO1NBQ2hGO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3RCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQ3pDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDMUIsSUFBSSxDQUNQLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQVU7UUFDdEIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ25ELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDekMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUMxQixJQUFJLENBQ1AsQ0FBQztRQUVGLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUFVLEVBQUUsYUFBYSxHQUFHLENBQUM7UUFDOUMsbURBQW1EO1FBQ25ELEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFM0MsT0FBTyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7Z0hBL09RLG1CQUFtQjtvSEFBbkIsbUJBQW1CLGNBRmhCLE1BQU07MkZBRVQsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBSWdCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSwgX2lzTnVtYmVyVmFsdWUgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgZm9ybWF0Q3VycmVuY3ksIGZvcm1hdE51bWJlciwgZm9ybWF0UGVyY2VudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBVdGlsaXRpZXNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGN1bHR1cmUgPSAnZW4tVVMnO1xuXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuY3VsdHVyZSA9IHRoaXMudHJhbnNsYXRlPy5nZXRCcm93c2VyQ3VsdHVyZUxhbmcoKSB8fCAnZW4tVVMnO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlRGVjaW1hbFNlcGVyYXRvcih2YWx1ZTogc3RyaW5nLCByZXZlcnNlID0gZmFsc2UpOiBzdHJpbmcge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnXG4gICAgICAgIGlmICh0aGlzLmdldERlY2ltYWxTZXBhcmF0b3IoKSA9PT0gJywnKSB7XG4gICAgICAgICAgICAvLyBJZiByZXZlcnNlIGNoYW5nZSB0aGUgbnVtYmVyIGZyb20gJy4nIHRvICcsJyBlbHNlIGRvIHRoZSBvcHBvc2l0ZS5cbiAgICAgICAgICAgIHZhbHVlID0gcmV2ZXJzZSA/IHZhbHVlLnJlcGxhY2UoJy4nLCAnLCcpIDogdmFsdWUucmVwbGFjZSgnLCcsICcuJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREZWNpbWFsU2VwYXJhdG9yKCkge1xuICAgICAgICBjb25zdCBudW1iZXJXaXRoRGVjaW1hbFNlcGFyYXRvciA9IDEuMTtcblxuICAgICAgICByZXR1cm4gbnVtYmVyV2l0aERlY2ltYWxTZXBhcmF0b3JcbiAgICAgICAgICAgIC50b0xvY2FsZVN0cmluZyh0aGlzLmN1bHR1cmUpXG4gICAgICAgICAgICAuc3Vic3RyaW5nKDEsIDIpO1xuICAgIH1cblxuICAgIC8vIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL3BhcnNlLW1zLlxuICAgIC8vIG1vdmVkIHRvIGludGVybmFsIGZ1bmN0aW9uIGJlY2F1c2UgcGFyc2UtbXMgaXMgbm93IHB1cmUgRVNNLlxuICAgIHByaXZhdGUgcGFyc2VNcyhtaWxsaXNlY29uZHM6IG51bWJlcikge1xuICAgICAgICBpZiAodHlwZW9mIG1pbGxpc2Vjb25kcyAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0V4cGVjdGVkIGEgbnVtYmVyJylcbiAgICAgICAgfVxuICAgIFxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZGF5czogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyA4NjQwMDAwMCksXG4gICAgICAgICAgICBob3VyczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyAzNjAwMDAwKSAlIDI0LFxuICAgICAgICAgICAgbWludXRlczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyA2MDAwMCkgJSA2MCxcbiAgICAgICAgICAgIHNlY29uZHM6IE1hdGgudHJ1bmMobWlsbGlzZWNvbmRzIC8gMTAwMCkgJSA2MCxcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMpICUgMTAwMFxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIGFkYXB0ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vcmFmYWVscmluYWxkaS9hZGQtemVyby5cbiAgICAvLyBtb3ZlZCB0byBpbnRlcm5hbCBmdW5jdGlvbiBiL2MgYWRkWmVybyBpcyB1bm1haW50YWluZWQgKDcrIHllYXJzKS5cbiAgICAvLyBzdHJpcHBlZCBvdXQgbmVnYXRpdmUgc2lnbiBsb2dpYyBzaW5jZSB3ZSdyZSBhbHJlYWR5IGRvaW5nIGl0IGVsc2V3aGVyZS5cbiAgICBwcml2YXRlIGFkZFplcm8odmFsdWU6IG51bWJlciwgZGlnaXRzID0gMikge1xuICAgICAgICBkaWdpdHMgPSBkaWdpdHMgfHwgMlxuICAgIFxuICAgICAgICBsZXQgc3RyID0gdmFsdWUudG9TdHJpbmcoKVxuICAgICAgICBsZXQgc2l6ZSA9IDBcbiAgICBcbiAgICAgICAgc2l6ZSA9IGRpZ2l0cyAtIHN0ci5sZW5ndGggKyAxXG4gICAgICAgIHN0ciA9IG5ldyBBcnJheShzaXplKS5qb2luKCcwJykuY29uY2F0KHN0cilcbiAgICBcbiAgICAgICAgcmV0dXJuIHN0clxuICAgIH1cbiAgICBcbiAgICBwYXJzZURhdGUoZGF0ZVN0cjogc3RyaW5nLCBzaG93VGltZSA9IGZhbHNlKTogRGF0ZSB7XG4gICAgICAgIGxldCByZXRWYWw6IERhdGUgPSBudWxsO1xuICAgICAgICBpZiAoZGF0ZVN0ciAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKGRhdGVTdHIpO1xuXG4gICAgICAgICAgICAvLyBDb252ZXJ0IHRvIGRhdGUgd2l0aCBubyBvZmZzZXQuXG4gICAgICAgICAgICBpZiAoIXNob3dUaW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRlU3RyLmluZGV4T2YoJ1QnKTtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVN0ciA9IGRhdGVTdHIuc3Vic3RyaW5nKDAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlVGV4dCA9IGRhdGVTdHIuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZVRleHQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBOdW1iZXIoZGF0ZVRleHRbMF0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb250aCA9IE51bWJlcihkYXRlVGV4dFsxXSkgLSAxO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXkgPSBOdW1iZXIoZGF0ZVRleHRbMl0pO1xuICAgICAgICAgICAgICAgICAgICByZXRWYWwgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCAwLCByZXRWYWwuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIC0xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKFxuICAgICAgICAgICAgICAgICAgICByZXRWYWwuZ2V0RnVsbFllYXIoKSwgcmV0VmFsLmdldE1vbnRoKCksIHJldFZhbC5nZXREYXRlKCksIHJldFZhbC5nZXRIb3VycygpLFxuICAgICAgICAgICAgICAgICAgICByZXRWYWwuZ2V0TWludXRlcygpICsgcmV0VmFsLmdldFRpbWV6b25lT2Zmc2V0KCkgKiAtMSwgcmV0VmFsLmdldFNlY29uZHMoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJldFZhbCAmJiBpc05hTihyZXRWYWwuZ2V0VGltZSgpKSkge1xuICAgICAgICAgICAgcmV0VmFsID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0VmFsO1xuICAgIH1cblxuICAgIHN0cmluZ2lmeURhdGUoZGF0ZTogRGF0ZSwgc2hvd1RpbWUgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICBpZiAoc2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpOyAvLyBpbmNsdWRlIC0gb2Zmc2V0XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVUZXh0ID0gW107XG4gICAgICAgICAgICAgICAgZGF0ZVRleHQucHVzaChcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgICAgICAgICAgICAnLScsXG4gICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICAgICAgICAgICAgICAgICctJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVGV4dC5qb2luKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzVmFsdWVIdG1sKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IHJlcyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBSRUdFWFAgPSAvPFxcLz9bYS16XVtcXHNcXFNdKj4vaTtcbiAgICAgICAgcmVzID0gUkVHRVhQLnRlc3QodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgaXNKc29uU3RyaW5nKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXRTdmdFbGVtZW50RnJvbVN0cmluZyhkb2N1bWVudCwgc3ZnQ29udGVudDogc3RyaW5nKTogU1ZHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xuICAgICAgICAvLyBkaXYuY2xhc3NOYW1lID0gJ3N2Zy1pY29uJztcbiAgICAgICAgLy8gQWRkIGNsYXNzIHN2Zy1pY29uXG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSBzdmdDb250ZW50LnJlcGxhY2UoJzxzdmcgJywgJzxzdmcgY2xhc3M9XCJzdmctaWNvblwiICcpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZGl2LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3BhdGgnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvcm1hdFBlcmNlbnQodmFsdWU6IGFueSwgZGlnaXRzSW5mbyA9ICcxLjAtMicpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuICcwJSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0UGVyY2VudChudW1iZXIgLyAxMDAsIHRoaXMuY3VsdHVyZSwgZGlnaXRzSW5mbyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JtYXRDdXJyZW5jeSh2YWx1ZTogYW55LCBjdXJyZW5jeVNpZ24gPSAnJywgZGlnaXRzSW5mbyA9ICcxLjItMicpIHtcbiAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdEN1cnJlbmN5KDAsIHRoaXMuY3VsdHVyZSwgY3VycmVuY3lTaWduLCB1bmRlZmluZWQsIGRpZ2l0c0luZm8pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdEN1cnJlbmN5KHZhbHVlLCB0aGlzLmN1bHR1cmUsIGN1cnJlbmN5U2lnbiwgdW5kZWZpbmVkLCBkaWdpdHNJbmZvKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBcbiAgICBmb3JtYXREZWNpbWFsKHZhbHVlOiBhbnksIGRpZ2l0c0luZm8gPSAnMS4yLTInKSB7XG4gICAgICAgIGNvbnN0IG51bWJlciA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnMCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKHZhbHVlLCB0aGlzLmN1bHR1cmUsIGRpZ2l0c0luZm8pO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIGZvcm1hdE51bWJlcih2YWx1ZTogYW55LCBkaWdpdHNJbmZvID0gJzEuMC0wJyk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IG51bWJlciA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnMCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZm9ybWF0TnVtYmVyKHZhbHVlLCB0aGlzLmN1bHR1cmUsIGRpZ2l0c0luZm8pO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBudW1iZXIgaW4gbWlsbGlzZWNvbmRzIHRvIGEgc3RhbmRhcmQgZHVyYXRpb24gc3RyaW5nLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIGR1cmF0aW9uIGluIG1pbGxpc2Vjb25kc1xuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gZm9ybWF0RHVyYXRpb24gb3B0aW9ucyBvYmplY3RcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9ZmFsc2VdIC0gYWRkIGxlYWRpbmcgemVyb1xuICAgICAqIEByZXR1cm5zIHN0cmluZyAtIGZvcm1hdHRlZCBkdXJhdGlvbiBzdHJpbmdcbiAgICAqL1xuICAgIGZvcm1hdER1cmF0aW9uKHZhbHVlLCBvcHRpb25zOiB7IGxlYWRpbmc/OiBib29sZWFuLCBkdXJhdGlvbj86ICdtaWxsaXNlY29uZHMnIHwgJ3NlY29uZHMnIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlzTnVtYmVyID0gX2lzTnVtYmVyVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmICghaXNOdW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBudW1iZXIgPSB0aGlzLmNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICBcbiAgICAgICAgICAgIGNvbnN0IGxlYWRpbmcgPSBvcHRpb25zPy5sZWFkaW5nIHx8IHRydWU7XG4gICAgICAgICAgICBjb25zdCBkdXJhdGlvbiA9IG9wdGlvbnM/LmR1cmF0aW9uIHx8ICdtaWxsaXNlY29uZHMnO1xuICAgICAgICAgICAgaWYgKGR1cmF0aW9uID09PSAnc2Vjb25kcycpIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIgKiAxMDAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1bnNpZ25lZE1zID0gbnVtYmVyIDwgMCA/IC1udW1iZXIgOiBudW1iZXI7XG4gICAgICAgICAgICBjb25zdCBzaWduID0gbnVtYmVyIDw9IC0xMDAwID8gJy0nIDogJyc7XG4gICAgICAgICAgICBjb25zdCB0ID0gdGhpcy5wYXJzZU1zKHVuc2lnbmVkTXMpO1xuICAgICAgICAgICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuYWRkWmVybyh0LnNlY29uZHMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodC5kYXlzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNpZ24gKyB0LmRheXMgKyAnOicgKyB0aGlzLmFkZFplcm8odC5ob3VycykgKyAnOicgKyB0aGlzLmFkZFplcm8odC5taW51dGVzKSArICc6JyArIHNlY29uZHNcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHQuaG91cnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2lnbiArIChsZWFkaW5nID8gdGhpcy5hZGRaZXJvKHQuaG91cnMpIDogdC5ob3VycykgKyAnOicgKyB0aGlzLmFkZFplcm8odC5taW51dGVzKSArICc6JyArIHNlY29uZHNcbiAgICAgICAgICAgIH0gXG5cbiAgICAgICAgICAgIHJldHVybiBzaWduICsgKGxlYWRpbmcgPyB0aGlzLmFkZFplcm8odC5taW51dGVzKSA6IHQubWludXRlcykgKyAnOicgKyBzZWNvbmRzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbmNyZW1lbnROdW1iZXIodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBudW1iZXJWYWx1ZSA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdOdW1iZXIgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IoXG4gICAgICAgICAgICAoKytudW1iZXJWYWx1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gbmV3TnVtYmVyO1xuICAgIH1cblxuICAgIGRlY3JlbWVudE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG51bWJlclZhbHVlID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld051bWJlciA9IHRoaXMuY2hhbmdlRGVjaW1hbFNlcGVyYXRvcihcbiAgICAgICAgICAgICgtLW51bWJlclZhbHVlKS50b1N0cmluZygpLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXdOdW1iZXI7XG4gICAgfVxuXG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWU6IGFueSwgZmFsbGJhY2tWYWx1ZSA9IDApOiBudW1iZXIge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnIGNoYW5nZSBpdCB0byAnLidcbiAgICAgICAgdmFsdWUgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSwgZmFsbGJhY2tWYWx1ZSk7XG4gICAgfVxufVxuIl19
261
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NyYy9jb3JlL2NvbW1vbi9zZXJ2aWNlcy91dGlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFN0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU1yRCxNQUFNLE9BQU8sbUJBQW1CO0lBRzVCLFlBQWdDLFlBQThCLElBQUk7UUFBbEMsY0FBUyxHQUFULFNBQVMsQ0FBeUI7UUFGMUQsWUFBTyxHQUFHLE9BQU8sQ0FBQztRQUd0QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxPQUFPLENBQUM7UUFFbEUsUUFBUTtRQUNSLGdFQUFnRTtRQUNoRSxhQUFhO0lBQ2pCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxLQUFhLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDekQsa0NBQWtDO1FBQ2xDLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssR0FBRyxFQUFFO1lBQ3BDLHFFQUFxRTtZQUNyRSxLQUFLLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDdkU7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRU8sbUJBQW1CO1FBQ3ZCLE1BQU0sMEJBQTBCLEdBQUcsR0FBRyxDQUFDO1FBRXZDLE9BQU8sMEJBQTBCO2FBQzVCLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO2FBQzVCLFNBQVMs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QUMsUUFBUSxFQUFFLEVBQzFCLElBQUksQ0FDUCxDQUFDO1FBRUYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFVO1FBQ3RCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQ3pDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFDMUIsSUFBSSxDQUNQLENBQUM7UUFFRixPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVSxFQUFFLGFBQWEsR0FBRyxDQUFDO1FBQzlDLG1EQUFtRDtRQUNuRCxJQUFJLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ25CLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUM7UUFFRCxPQUFPLG9CQUFvQixDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDOztnSEE1U1EsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGaEIsTUFBTTsyRkFFVCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFJZ0IsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5LCBfaXNOdW1iZXJWYWx1ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBmb3JtYXRDdXJyZW5jeSwgZm9ybWF0TnVtYmVyLCBmb3JtYXRQZXJjZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFBlcFV0aWxpdGllc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgY3VsdHVyZSA9ICdlbi1VUyc7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSA9IG51bGwpIHtcbiAgICAgICAgdGhpcy5jdWx0dXJlID0gdGhpcy50cmFuc2xhdGU/LmdldEJyb3dzZXJDdWx0dXJlTGFuZygpIHx8ICdlbi1VUyc7XG5cbiAgICAgICAgLy8gdHJ5IHtcbiAgICAgICAgLy8gICAgIGltcG9ydChgQGFuZ3VsYXIvY29tbW9uL2xvY2FsZXMvZ2xvYmFsLyR7dGhpcy5jdWx0dXJlfWApO1xuICAgICAgICAvLyB9IGNhdGNoIHt9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZWNpbWFsU2VwZXJhdG9yKHZhbHVlOiBzdHJpbmcsIHJldmVyc2UgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgICAgIC8vIElmIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBpcyAnLCdcbiAgICAgICAgaWYgKHRoaXMuZ2V0RGVjaW1hbFNlcGFyYXRvcigpID09PSAnLCcpIHtcbiAgICAgICAgICAgIC8vIElmIHJldmVyc2UgY2hhbmdlIHRoZSBudW1iZXIgZnJvbSAnLicgdG8gJywnIGVsc2UgZG8gdGhlIG9wcG9zaXRlLlxuICAgICAgICAgICAgdmFsdWUgPSByZXZlcnNlID8gdmFsdWUucmVwbGFjZSgnLicsICcsJykgOiB2YWx1ZS5yZXBsYWNlKCcsJywgJy4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlY2ltYWxTZXBhcmF0b3IoKSB7XG4gICAgICAgIGNvbnN0IG51bWJlcldpdGhEZWNpbWFsU2VwYXJhdG9yID0gMS4xO1xuXG4gICAgICAgIHJldHVybiBudW1iZXJXaXRoRGVjaW1hbFNlcGFyYXRvclxuICAgICAgICAgICAgLnRvTG9jYWxlU3RyaW5nKHRoaXMuY3VsdHVyZSlcbiAgICAgICAgICAgIC5zdWJzdHJpbmcoMSwgMik7XG4gICAgfVxuXG4gICAgLy8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zaW5kcmVzb3JodXMvcGFyc2UtbXMuXG4gICAgLy8gbW92ZWQgdG8gaW50ZXJuYWwgZnVuY3Rpb24gYmVjYXVzZSBwYXJzZS1tcyBpcyBub3cgcHVyZSBFU00uXG4gICAgcHJpdmF0ZSBwYXJzZU1zKG1pbGxpc2Vjb25kczogbnVtYmVyKSB7XG4gICAgICAgIGlmICh0eXBlb2YgbWlsbGlzZWNvbmRzICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcignRXhwZWN0ZWQgYSBudW1iZXInKVxuICAgICAgICB9XG4gICAgXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBkYXlzOiBNYXRoLnRydW5jKG1pbGxpc2Vjb25kcyAvIDg2NDAwMDAwKSxcbiAgICAgICAgICAgIGhvdXJzOiBNYXRoLnRydW5jKG1pbGxpc2Vjb25kcyAvIDM2MDAwMDApICUgMjQsXG4gICAgICAgICAgICBtaW51dGVzOiBNYXRoLnRydW5jKG1pbGxpc2Vjb25kcyAvIDYwMDAwKSAlIDYwLFxuICAgICAgICAgICAgc2Vjb25kczogTWF0aC50cnVuYyhtaWxsaXNlY29uZHMgLyAxMDAwKSAlIDYwLFxuICAgICAgICAgICAgbWlsbGlzZWNvbmRzOiBNYXRoLnRydW5jKG1pbGxpc2Vjb25kcykgJSAxMDAwXG4gICAgICAgIH1cbiAgICB9XG4gICAgXG4gICAgLy8gYWRhcHRlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9yYWZhZWxyaW5hbGRpL2FkZC16ZXJvLlxuICAgIC8vIG1vdmVkIHRvIGludGVybmFsIGZ1bmN0aW9uIGIvYyBhZGRaZXJvIGlzIHVubWFpbnRhaW5lZCAoNysgeWVhcnMpLlxuICAgIC8vIHN0cmlwcGVkIG91dCBuZWdhdGl2ZSBzaWduIGxvZ2ljIHNpbmNlIHdlJ3JlIGFscmVhZHkgZG9pbmcgaXQgZWxzZXdoZXJlLlxuICAgIHByaXZhdGUgYWRkWmVybyh2YWx1ZTogbnVtYmVyLCBkaWdpdHMgPSAyKSB7XG4gICAgICAgIGRpZ2l0cyA9IGRpZ2l0cyB8fCAyXG4gICAgXG4gICAgICAgIGxldCBzdHIgPSB2YWx1ZS50b1N0cmluZygpXG4gICAgICAgIGxldCBzaXplID0gMFxuICAgIFxuICAgICAgICBzaXplID0gZGlnaXRzIC0gc3RyLmxlbmd0aCArIDFcbiAgICAgICAgc3RyID0gbmV3IEFycmF5KHNpemUpLmpvaW4oJzAnKS5jb25jYXQoc3RyKVxuICAgIFxuICAgICAgICByZXR1cm4gc3RyXG4gICAgfVxuICAgIFxuICAgIHByaXZhdGUgaXNDdXJyZW5jeVNob3VsZEJlT25SaWdodChjdXJyZW5jeVN5bWJvbDogc3RyaW5nKSB7XG4gICAgICAgIGxldCByZXMgPSBmYWxzZTtcblxuICAgICAgICBpZiAoY3VycmVuY3lTeW1ib2wgPT0gXCLigqxcIiB8fFxuICAgICAgICAgICAgY3VycmVuY3lTeW1ib2wgPT0gXCLigqpcIiB8fFxuICAgICAgICAgICAgY3VycmVuY3lTeW1ib2wgPT0gXCJGdFwiIHx8XG4gICAgICAgICAgICBjdXJyZW5jeVN5bWJvbCA9PSBcIkvEjVwiIHx8XG4gICAgICAgICAgICBjdXJyZW5jeVN5bWJvbCA9PSBcItGA0YPQsVwiIHx8XG4gICAgICAgICAgICBjdXJyZW5jeVN5bWJvbCA9PSBcInrFglwiIHx8XG4gICAgICAgICAgICBjdXJyZW5jeVN5bWJvbCA9PSBcImtyLlwiKVxuICAgICAgICB7XG4gICAgICAgICAgICByZXMgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwYXJzZURhdGUoZGF0ZVN0cjogc3RyaW5nLCBzaG93VGltZSA9IGZhbHNlKTogRGF0ZSB7XG4gICAgICAgIGxldCByZXRWYWw6IERhdGUgPSBudWxsO1xuICAgICAgICBpZiAoZGF0ZVN0ciAhPT0gJycpIHtcbiAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKGRhdGVTdHIpO1xuXG4gICAgICAgICAgICAvLyBDb252ZXJ0IHRvIGRhdGUgd2l0aCBubyBvZmZzZXQuXG4gICAgICAgICAgICBpZiAoIXNob3dUaW1lKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRlU3RyLmluZGV4T2YoJ1QnKTtcblxuICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZVN0ciA9IGRhdGVTdHIuc3Vic3RyaW5nKDAsIGluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlVGV4dCA9IGRhdGVTdHIuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZVRleHQubGVuZ3RoID09PSAzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHllYXIgPSBOdW1iZXIoZGF0ZVRleHRbMF0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb250aCA9IE51bWJlcihkYXRlVGV4dFsxXSkgLSAxO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXkgPSBOdW1iZXIoZGF0ZVRleHRbMl0pO1xuICAgICAgICAgICAgICAgICAgICByZXRWYWwgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgZGF5LCAwLCByZXRWYWwuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIC0xKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldFZhbCA9IG5ldyBEYXRlKFxuICAgICAgICAgICAgICAgICAgICByZXRWYWwuZ2V0RnVsbFllYXIoKSwgcmV0VmFsLmdldE1vbnRoKCksIHJldFZhbC5nZXREYXRlKCksIHJldFZhbC5nZXRIb3VycygpLFxuICAgICAgICAgICAgICAgICAgICByZXRWYWwuZ2V0TWludXRlcygpICsgcmV0VmFsLmdldFRpbWV6b25lT2Zmc2V0KCkgKiAtMSwgcmV0VmFsLmdldFNlY29uZHMoKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHJldFZhbCAmJiBpc05hTihyZXRWYWwuZ2V0VGltZSgpKSkge1xuICAgICAgICAgICAgcmV0VmFsID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmV0VmFsO1xuICAgIH1cblxuICAgIHN0cmluZ2lmeURhdGUoZGF0ZTogRGF0ZSwgc2hvd1RpbWUgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICBpZiAoc2hvd1RpbWUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0ZS50b0lTT1N0cmluZygpOyAvLyBpbmNsdWRlIC0gb2Zmc2V0XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVUZXh0ID0gW107XG4gICAgICAgICAgICAgICAgZGF0ZVRleHQucHVzaChcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgICAgICAgICAgICAnLScsXG4gICAgICAgICAgICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSArIDEsXG4gICAgICAgICAgICAgICAgICAgICctJyxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVGV4dC5qb2luKCcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlzVmFsdWVIdG1sKHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICAgICAgbGV0IHJlcyA9IGZhbHNlO1xuICAgICAgICBjb25zdCBSRUdFWFAgPSAvPFxcLz9bYS16XVtcXHNcXFNdKj4vaTtcbiAgICAgICAgcmVzID0gUkVHRVhQLnRlc3QodmFsdWUpO1xuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgaXNKc29uU3RyaW5nKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBKU09OLnBhcnNlKHN0cik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBnZXRTdmdFbGVtZW50RnJvbVN0cmluZyhkb2N1bWVudCwgc3ZnQ29udGVudDogc3RyaW5nKTogU1ZHRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ0RJVicpO1xuICAgICAgICAvLyBkaXYuY2xhc3NOYW1lID0gJ3N2Zy1pY29uJztcbiAgICAgICAgLy8gQWRkIGNsYXNzIHN2Zy1pY29uXG4gICAgICAgIGRpdi5pbm5lckhUTUwgPSBzdmdDb250ZW50LnJlcGxhY2UoJzxzdmcgJywgJzxzdmcgY2xhc3M9XCJzdmctaWNvblwiICcpO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgZGl2LnF1ZXJ5U2VsZWN0b3IoJ3N2ZycpIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoJ2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJywgJ3BhdGgnKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIGZvcm1hdFBlcmNlbnQodmFsdWU6IGFueSwgZGlnaXRzSW5mbyA9ICcxLjAtMicpIHtcbiAgICBmb3JtYXRQZXJjZW50KHZhbHVlOiBhbnksIG1pbkZyYWN0aW9uRGlnaXRzID0gMCwgbWF4RnJhY3Rpb25EaWdpdHMgPSAyKSB7XG4gICAgICAgIG1pbkZyYWN0aW9uRGlnaXRzID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eShtaW5GcmFjdGlvbkRpZ2l0cywgbnVsbCk7XG4gICAgICAgIG1heEZyYWN0aW9uRGlnaXRzID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eShtYXhGcmFjdGlvbkRpZ2l0cywgbnVsbCk7XG5cbiAgICAgICAgY29uc3QgbnVtYmVyID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKG51bWJlciA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuICcwJSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gZm9ybWF0UGVyY2VudChudW1iZXIgLyAxMDAsIHRoaXMuY3VsdHVyZSwgZGlnaXRzSW5mbyk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IEludGwuTnVtYmVyRm9ybWF0KHRoaXMuY3VsdHVyZSwgeyBcbiAgICAgICAgICAgICAgICBzdHlsZTogJ3BlcmNlbnQnLFxuICAgICAgICAgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogbWluRnJhY3Rpb25EaWdpdHMgfHwgMCxcbiAgICAgICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IG1heEZyYWN0aW9uRGlnaXRzIHx8IE1hdGgubWF4KDIsIG1pbkZyYWN0aW9uRGlnaXRzKSxcbiAgICAgICAgICAgIH0pLmZvcm1hdChudW1iZXIgLyAxMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZm9ybWF0Q3VycmVuY3kodmFsdWU6IGFueSwgY3VycmVuY3lTaWduID0gJycsIGRpZ2l0c0luZm8gPSAnMS4yLTInKSB7XG4gICAgZm9ybWF0Q3VycmVuY3kodmFsdWU6IGFueSwgY3VycmVuY3lTaWduID0gJycsIG1pbkZyYWN0aW9uRGlnaXRzID0gMCwgbWF4RnJhY3Rpb25EaWdpdHMgPSAyKSB7XG4gICAgICAgIG1pbkZyYWN0aW9uRGlnaXRzID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eShtaW5GcmFjdGlvbkRpZ2l0cywgbnVsbCk7XG4gICAgICAgIG1heEZyYWN0aW9uRGlnaXRzID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eShtYXhGcmFjdGlvbkRpZ2l0cywgbnVsbCk7XG5cbiAgICAgICAgbGV0IHJlcyA9ICcnO1xuICAgICAgICBjb25zdCBudW1iZXIgPSB0aGlzLmNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICAgICAgY29uc3Qgc3R5bGVPcHRpb25zID0geyBcbiAgICAgICAgICAgIC8vIHN0eWxlOiAnY3VycmVuY3knLFxuICAgICAgICAgICAgLy8gY3VycmVuY3lTaWduOiBjdXJyZW5jeVNpZ24sXG4gICAgICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IG1pbkZyYWN0aW9uRGlnaXRzIHx8IDAsXG4gICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IG1heEZyYWN0aW9uRGlnaXRzIHx8IE1hdGgubWF4KDIsIG1pbkZyYWN0aW9uRGlnaXRzKSxcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gZm9ybWF0Q3VycmVuY3koMCwgdGhpcy5jdWx0dXJlLCBjdXJyZW5jeVNpZ24sIHVuZGVmaW5lZCwgZGlnaXRzSW5mbyk7XG4gICAgICAgICAgICByZXMgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5jdWx0dXJlLCBzdHlsZU9wdGlvbnMpLmZvcm1hdCgwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJldHVybiBmb3JtYXRDdXJyZW5jeSh2YWx1ZSwgdGhpcy5jdWx0dXJlLCBjdXJyZW5jeVNpZ24sIHVuZGVmaW5lZCwgZGlnaXRzSW5mbyk7XG4gICAgICAgICAgICByZXMgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5jdWx0dXJlLCBzdHlsZU9wdGlvbnMpLmZvcm1hdChudW1iZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVzID0gdGhpcy5pc0N1cnJlbmN5U2hvdWxkQmVPblJpZ2h0KGN1cnJlbmN5U2lnbikgPyBgJHtyZXN9ICR7Y3VycmVuY3lTaWdufWAgOiBgJHtjdXJyZW5jeVNpZ259ICR7cmVzfWBcbiAgICAgICAgXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuICAgIFxuICAgIC8vIGZvcm1hdERlY2ltYWwodmFsdWU6IGFueSwgZGlnaXRzSW5mbyA9ICcxLjItMicpIHtcbiAgICBmb3JtYXREZWNpbWFsKHZhbHVlOiBhbnksIG1pbkZyYWN0aW9uRGlnaXRzID0gMiwgbWF4RnJhY3Rpb25EaWdpdHMgPSAyKSB7XG4gICAgICAgIG1pbkZyYWN0aW9uRGlnaXRzID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eShtaW5GcmFjdGlvbkRpZ2l0cywgbnVsbCk7XG4gICAgICAgIG1heEZyYWN0aW9uRGlnaXRzID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eShtYXhGcmFjdGlvbkRpZ2l0cywgbnVsbCk7XG4gICAgICAgIGNvbnN0IG51bWJlciA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuXG4gICAgICAgIGlmIChudW1iZXIgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiAnMCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyByZXR1cm4gZm9ybWF0TnVtYmVyKHZhbHVlLCB0aGlzLmN1bHR1cmUsIGRpZ2l0c0luZm8pO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLk51bWJlckZvcm1hdCh0aGlzLmN1bHR1cmUsIHsgXG4gICAgICAgICAgICAgICAgbWluaW11bUZyYWN0aW9uRGlnaXRzOiBtaW5GcmFjdGlvbkRpZ2l0cyB8fCBNYXRoLm1pbigyLCBtYXhGcmFjdGlvbkRpZ2l0cyksXG4gICAgICAgICAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiBtYXhGcmFjdGlvbkRpZ2l0cyB8fCBNYXRoLm1heCgyLCBtaW5GcmFjdGlvbkRpZ2l0cyksXG4gICAgICAgICAgICB9KS5mb3JtYXQobnVtYmVyKVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8vIGZvcm1hdE51bWJlcih2YWx1ZTogYW55LCBkaWdpdHNJbmZvID0gJzEuMC0wJyk6IHN0cmluZyB7XG4gICAgZm9ybWF0TnVtYmVyKHZhbHVlOiBhbnkpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBudW1iZXIgPSB0aGlzLmNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcblxuICAgICAgICBpZiAobnVtYmVyID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gJzAnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gcmV0dXJuIGZvcm1hdE51bWJlcih2YWx1ZSwgdGhpcy5jdWx0dXJlLCBkaWdpdHNJbmZvKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5jdWx0dXJlLCB7IFxuICAgICAgICAgICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMCxcbiAgICAgICAgICAgICAgICBtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDAsXG4gICAgICAgICAgICB9KS5mb3JtYXQobnVtYmVyKVxuICAgICAgICB9XG4gICAgfVxuICAgIFxuICAgIC8qKlxuICAgICAqIENvbnZlcnQgYSBudW1iZXIgaW4gbWlsbGlzZWNvbmRzIHRvIGEgc3RhbmRhcmQgZHVyYXRpb24gc3RyaW5nLlxuICAgICAqIEBwYXJhbSB7bnVtYmVyfSB2YWx1ZSAtIGR1cmF0aW9uIGluIG1pbGxpc2Vjb25kc1xuICAgICAqIEBwYXJhbSB7b2JqZWN0fSBvcHRpb25zIC0gZm9ybWF0RHVyYXRpb24gb3B0aW9ucyBvYmplY3RcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLmxlYWRpbmc9ZmFsc2VdIC0gYWRkIGxlYWRpbmcgemVyb1xuICAgICAqIEByZXR1cm5zIHN0cmluZyAtIGZvcm1hdHRlZCBkdXJhdGlvbiBzdHJpbmdcbiAgICAqL1xuICAgIGZvcm1hdER1cmF0aW9uKHZhbHVlLCBvcHRpb25zOiB7IGxlYWRpbmc/OiBib29sZWFuLCBkdXJhdGlvbj86ICdtaWxsaXNlY29uZHMnIHwgJ3NlY29uZHMnIH0gPSB7fSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGlzTnVtYmVyID0gX2lzTnVtYmVyVmFsdWUodmFsdWUpO1xuXG4gICAgICAgIGlmICghaXNOdW1iZXIpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBudW1iZXIgPSB0aGlzLmNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICBcbiAgICAgICAgICAgIGNvbnN0IGxlYWRpbmcgPSBvcHRpb25zPy5sZWFkaW5nIHx8IHRydWU7XG4gICAgICAgICAgICBjb25zdCBkdXJhdGlvbiA9IG9wdGlvbnM/LmR1cmF0aW9uIHx8ICdtaWxsaXNlY29uZHMnO1xuICAgICAgICAgICAgaWYgKGR1cmF0aW9uID09PSAnc2Vjb25kcycpIHtcbiAgICAgICAgICAgICAgICBudW1iZXIgPSBudW1iZXIgKiAxMDAwO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB1bnNpZ25lZE1zID0gbnVtYmVyIDwgMCA/IC1udW1iZXIgOiBudW1iZXI7XG4gICAgICAgICAgICBjb25zdCBzaWduID0gbnVtYmVyIDw9IC0xMDAwID8gJy0nIDogJyc7XG4gICAgICAgICAgICBjb25zdCB0ID0gdGhpcy5wYXJzZU1zKHVuc2lnbmVkTXMpO1xuICAgICAgICAgICAgY29uc3Qgc2Vjb25kcyA9IHRoaXMuYWRkWmVybyh0LnNlY29uZHMpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAodC5kYXlzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNpZ24gKyB0LmRheXMgKyAnOicgKyB0aGlzLmFkZFplcm8odC5ob3VycykgKyAnOicgKyB0aGlzLmFkZFplcm8odC5taW51dGVzKSArICc6JyArIHNlY29uZHNcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHQuaG91cnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2lnbiArIChsZWFkaW5nID8gdGhpcy5hZGRaZXJvKHQuaG91cnMpIDogdC5ob3VycykgKyAnOicgKyB0aGlzLmFkZFplcm8odC5taW51dGVzKSArICc6JyArIHNlY29uZHNcbiAgICAgICAgICAgIH0gXG5cbiAgICAgICAgICAgIHJldHVybiBzaWduICsgKGxlYWRpbmcgPyB0aGlzLmFkZFplcm8odC5taW51dGVzKSA6IHQubWludXRlcykgKyAnOicgKyBzZWNvbmRzXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbmNyZW1lbnROdW1iZXIodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGxldCBudW1iZXJWYWx1ZSA9IHRoaXMuY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBjb25zdCBuZXdOdW1iZXIgPSB0aGlzLmNoYW5nZURlY2ltYWxTZXBlcmF0b3IoXG4gICAgICAgICAgICAoKytudW1iZXJWYWx1ZSkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gbmV3TnVtYmVyO1xuICAgIH1cblxuICAgIGRlY3JlbWVudE51bWJlcih2YWx1ZTogYW55KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IG51bWJlclZhbHVlID0gdGhpcy5jb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IG5ld051bWJlciA9IHRoaXMuY2hhbmdlRGVjaW1hbFNlcGVyYXRvcihcbiAgICAgICAgICAgICgtLW51bWJlclZhbHVlKS50b1N0cmluZygpLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBuZXdOdW1iZXI7XG4gICAgfVxuXG4gICAgY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWU6IGFueSwgZmFsbGJhY2tWYWx1ZSA9IDApOiBudW1iZXIge1xuICAgICAgICAvLyBJZiB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgJywnIGNoYW5nZSBpdCB0byAnLidcbiAgICAgICAgaWYgKHZhbHVlPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMuY2hhbmdlRGVjaW1hbFNlcGVyYXRvcih2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUsIGZhbGxiYWNrVmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==