@fundamental-ngx/platform 0.46.0-rc.2 → 0.46.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/esm2022/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +1 -1
  2. package/esm2022/approval-flow/approval-flow.component.mjs +3 -3
  3. package/esm2022/form/auto-complete/auto-complete.directive.mjs +4 -3
  4. package/esm2022/form/auto-complete/auto-complete.module.mjs +4 -6
  5. package/esm2022/form/checkbox/checkbox.module.mjs +5 -8
  6. package/esm2022/form/checkbox-group/checkbox-group.module.mjs +5 -7
  7. package/esm2022/form/combobox/combobox/combobox.component.mjs +36 -14
  8. package/esm2022/form/combobox/combobox-mobile/combobox/combobox-mobile.component.mjs +19 -4
  9. package/esm2022/form/combobox/combobox-mobile/combobox-mobile.module.mjs +4 -9
  10. package/esm2022/form/combobox/combobox.module.mjs +5 -51
  11. package/esm2022/form/combobox/commons/base-combobox.mjs +9 -1
  12. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +3 -3
  13. package/esm2022/form/form-group/fdp-form.module.mjs +10 -42
  14. package/esm2022/form/form-group/form-field/form-field.component.mjs +47 -12
  15. package/esm2022/form/form-group/form-field-error/form-field-error-description.directive.mjs +4 -3
  16. package/esm2022/form/form-group/form-field-error/form-field-error-heading.directive.mjs +4 -3
  17. package/esm2022/form/form-group/form-field-error/form-field-error.directive.mjs +4 -3
  18. package/esm2022/form/form-group/form-field-extras/form-field-extras.component.mjs +3 -3
  19. package/esm2022/form/form-group/form-field-group/form-field-group.component.mjs +3 -3
  20. package/esm2022/form/form-group/form-group-header/form-group-header.component.mjs +8 -6
  21. package/esm2022/form/form-group/form-group.component.mjs +25 -10
  22. package/esm2022/form/form-group/pipes/field-group-row-value.pipe.mjs +6 -3
  23. package/esm2022/form/input/fdp-input.module.mjs +5 -11
  24. package/esm2022/form/input/input.component.mjs +5 -4
  25. package/esm2022/form/input-group/addon-body.component.mjs +6 -4
  26. package/esm2022/form/input-group/addon.component.mjs +4 -4
  27. package/esm2022/form/input-group/input-group.component.mjs +9 -10
  28. package/esm2022/form/input-group/input-group.module.mjs +5 -29
  29. package/esm2022/form/input-group/input.component.mjs +4 -3
  30. package/esm2022/form/input-message-group-with-template/input-message-group-with-template.component.mjs +5 -5
  31. package/esm2022/form/multi-combobox/commons/base-multi-combobox.mjs +9 -1
  32. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +44 -19
  33. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.mjs +24 -5
  34. package/esm2022/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.mjs +4 -10
  35. package/esm2022/form/multi-combobox/multi-combobox.module.mjs +5 -65
  36. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.component.mjs +11 -7
  37. package/esm2022/form/multi-input/multi-input-mobile/multi-input-mobile.module.mjs +4 -9
  38. package/esm2022/form/multi-input/multi-input.component.mjs +39 -20
  39. package/esm2022/form/multi-input/multi-input.module.mjs +5 -51
  40. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +6 -5
  41. package/esm2022/form/platform-file-uploader/platform-file-uploader.module.mjs +5 -11
  42. package/esm2022/form/radio-group/radio/radio.component.mjs +10 -9
  43. package/esm2022/form/radio-group/radio-group.component.mjs +6 -6
  44. package/esm2022/form/radio-group/radio-group.module.mjs +5 -32
  45. package/esm2022/form/select/option/option.component.mjs +6 -3
  46. package/esm2022/form/select/select/select.component.mjs +20 -11
  47. package/esm2022/form/select/select.module.mjs +5 -54
  48. package/esm2022/form/step-input/number/number-step-input.component.mjs +25 -14
  49. package/esm2022/form/step-input/step-input-control.directive.mjs +4 -3
  50. package/esm2022/form/step-input/step-input-decrement.directive.mjs +4 -3
  51. package/esm2022/form/step-input/step-input-increment.directive.mjs +4 -3
  52. package/esm2022/form/step-input/step-input.module.mjs +13 -35
  53. package/esm2022/form/switch/switch/switch.component.mjs +4 -3
  54. package/esm2022/form/switch/switch.module.mjs +5 -11
  55. package/esm2022/form/text-area/text-area.component.mjs +12 -11
  56. package/esm2022/form/text-area/text-area.module.mjs +5 -32
  57. package/esm2022/form/time-picker/time-picker.component.mjs +5 -5
  58. package/esm2022/form/time-picker/time-picker.module.mjs +5 -11
  59. package/esm2022/list/list.component.mjs +3 -3
  60. package/esm2022/search-field/search-field.component.mjs +3 -3
  61. package/esm2022/settings-generator/controls/theme-selector-list/theme-selector-list.component.mjs +18 -9
  62. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.mjs +8 -5
  63. package/esm2022/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.mjs +18 -10
  64. package/esm2022/settings-generator/settings-generator-content/settings-generator-content.component.mjs +22 -10
  65. package/esm2022/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.mjs +5 -6
  66. package/esm2022/settings-generator/settings-generator.component.mjs +3 -3
  67. package/esm2022/settings-generator/settings-generator.module.mjs +12 -54
  68. package/esm2022/shared/form/base.input.mjs +43 -13
  69. package/esm2022/shared/form/form-field.mjs +1 -1
  70. package/esm2022/slider/slider.component.mjs +4 -4
  71. package/esm2022/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.mjs +3 -3
  72. package/esm2022/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.mjs +3 -3
  73. package/esm2022/split-menu-button/split-menu-button.component.mjs +3 -3
  74. package/esm2022/table/components/table-cell-header-popover/table-cell-header-popover.component.mjs +3 -3
  75. package/esm2022/table/components/table-p13-dialog/filtering/filter-rule.component.mjs +1 -1
  76. package/esm2022/table/components/table-p13-dialog/grouping/grouping.component.mjs +1 -1
  77. package/esm2022/table/components/table-p13-dialog/sorting/sorting.component.mjs +2 -2
  78. package/esm2022/table/components/table-p13-dialog/table-p13-dialog.component.mjs +11 -11
  79. package/esm2022/table/components/table-row/table-row.component.mjs +3 -3
  80. package/esm2022/table/components/table-toolbar/table-toolbar.component.mjs +5 -5
  81. package/esm2022/table/components/table-toolbar/table-toolbar.mjs +1 -1
  82. package/esm2022/table/table.component.mjs +14 -5
  83. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +3 -3
  84. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +1 -1
  85. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -3
  86. package/esm2022/variant-management/components/manage-variants-dialog/manage-variants-dialog.component.mjs +1 -1
  87. package/esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.mjs +41 -18
  88. package/esm2022/wizard-generator/components/wizard-body/wizard-body.component.mjs +20 -8
  89. package/esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.mjs +10 -8
  90. package/esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.mjs +5 -5
  91. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.mjs +12 -9
  92. package/esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.mjs +5 -5
  93. package/esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.mjs +4 -3
  94. package/esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.mjs +4 -3
  95. package/esm2022/wizard-generator/directives/wizard-generator-review-button.directive.mjs +4 -3
  96. package/esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.mjs +4 -3
  97. package/esm2022/wizard-generator/wizard-generator.module.mjs +13 -56
  98. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +3 -3
  99. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  100. package/fesm2022/fundamental-ngx-platform-form.mjs +541 -635
  101. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  102. package/fesm2022/fundamental-ngx-platform-list.mjs +2 -2
  103. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  104. package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
  105. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  106. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +69 -80
  107. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  108. package/fesm2022/fundamental-ngx-platform-shared.mjs +42 -12
  109. package/fesm2022/fundamental-ngx-platform-shared.mjs.map +1 -1
  110. package/fesm2022/fundamental-ngx-platform-slider.mjs.map +1 -1
  111. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +4 -4
  112. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  113. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
  114. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  115. package/fesm2022/fundamental-ngx-platform-table.mjs +423 -414
  116. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  117. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +2 -2
  118. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  119. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +3 -3
  120. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  121. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +1 -1
  122. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  123. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +226 -228
  124. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  125. package/form/auto-complete/auto-complete.directive.d.ts +1 -1
  126. package/form/auto-complete/auto-complete.module.d.ts +1 -2
  127. package/form/checkbox/checkbox.module.d.ts +2 -5
  128. package/form/checkbox-group/checkbox-group.module.d.ts +2 -4
  129. package/form/combobox/combobox/combobox.component.d.ts +1 -1
  130. package/form/combobox/combobox-mobile/combobox/combobox-mobile.component.d.ts +1 -1
  131. package/form/combobox/combobox-mobile/combobox-mobile.module.d.ts +1 -5
  132. package/form/combobox/combobox.module.d.ts +1 -12
  133. package/form/combobox/commons/base-combobox.d.ts +2 -0
  134. package/form/form-group/fdp-form.module.d.ts +1 -9
  135. package/form/form-group/form-field/form-field.component.d.ts +12 -3
  136. package/form/form-group/form-field-error/form-field-error-description.directive.d.ts +1 -1
  137. package/form/form-group/form-field-error/form-field-error-heading.directive.d.ts +1 -1
  138. package/form/form-group/form-field-error/form-field-error.directive.d.ts +1 -1
  139. package/form/form-group/form-field-extras/form-field-extras.component.d.ts +1 -1
  140. package/form/form-group/form-field-group/form-field-group.component.d.ts +1 -1
  141. package/form/form-group/form-group-header/form-group-header.component.d.ts +1 -1
  142. package/form/form-group/form-group.component.d.ts +1 -1
  143. package/form/form-group/pipes/field-group-row-value.pipe.d.ts +1 -1
  144. package/form/input/fdp-input.module.d.ts +1 -6
  145. package/form/input/input.component.d.ts +1 -1
  146. package/form/input-group/addon-body.component.d.ts +1 -1
  147. package/form/input-group/addon.component.d.ts +1 -1
  148. package/form/input-group/input-group.component.d.ts +1 -1
  149. package/form/input-group/input-group.module.d.ts +1 -5
  150. package/form/input-group/input.component.d.ts +1 -1
  151. package/form/input-message-group-with-template/input-message-group-with-template.component.d.ts +1 -1
  152. package/form/multi-combobox/commons/base-multi-combobox.d.ts +2 -0
  153. package/form/multi-combobox/multi-combobox/multi-combobox.component.d.ts +1 -1
  154. package/form/multi-combobox/multi-combobox-mobile/multi-combobox/multi-combobox-mobile.component.d.ts +1 -1
  155. package/form/multi-combobox/multi-combobox-mobile/multi-combobox-mobile.module.d.ts +1 -6
  156. package/form/multi-combobox/multi-combobox.module.d.ts +1 -15
  157. package/form/multi-input/multi-input-mobile/multi-input-mobile.component.d.ts +1 -1
  158. package/form/multi-input/multi-input-mobile/multi-input-mobile.module.d.ts +1 -5
  159. package/form/multi-input/multi-input.component.d.ts +1 -1
  160. package/form/multi-input/multi-input.module.d.ts +1 -11
  161. package/form/platform-file-uploader/platform-file-uploader.component.d.ts +1 -1
  162. package/form/platform-file-uploader/platform-file-uploader.module.d.ts +1 -6
  163. package/form/radio-group/radio/radio.component.d.ts +1 -1
  164. package/form/radio-group/radio-group.component.d.ts +1 -1
  165. package/form/radio-group/radio-group.module.d.ts +1 -7
  166. package/form/select/option/option.component.d.ts +1 -1
  167. package/form/select/select/select.component.d.ts +3 -1
  168. package/form/select/select.module.d.ts +1 -12
  169. package/form/step-input/number/number-step-input.component.d.ts +1 -1
  170. package/form/step-input/step-input-control.directive.d.ts +1 -1
  171. package/form/step-input/step-input-decrement.directive.d.ts +1 -1
  172. package/form/step-input/step-input-increment.directive.d.ts +1 -1
  173. package/form/step-input/step-input.module.d.ts +1 -7
  174. package/form/switch/switch/switch.component.d.ts +1 -1
  175. package/form/switch/switch.module.d.ts +1 -6
  176. package/form/text-area/text-area.component.d.ts +1 -1
  177. package/form/text-area/text-area.module.d.ts +1 -7
  178. package/form/time-picker/time-picker.component.d.ts +1 -1
  179. package/form/time-picker/time-picker.module.d.ts +1 -6
  180. package/fundamental-ngx-platform-v0.46.0-rc.21.tgz +0 -0
  181. package/package.json +4 -4
  182. package/schematics/ng-add/index.js +1 -1
  183. package/settings-generator/controls/theme-selector-list/theme-selector-list.component.d.ts +2 -2
  184. package/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.d.ts +1 -1
  185. package/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.d.ts +1 -1
  186. package/settings-generator/settings-generator-content/settings-generator-content.component.d.ts +1 -1
  187. package/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.d.ts +1 -1
  188. package/settings-generator/settings-generator.component.d.ts +1 -1
  189. package/settings-generator/settings-generator.module.d.ts +9 -20
  190. package/shared/form/base.input.d.ts +42 -27
  191. package/shared/form/form-field.d.ts +22 -7
  192. package/table/components/table-p13-dialog/table-p13-dialog.component.d.ts +7 -7
  193. package/table/components/table-toolbar/table-toolbar.component.d.ts +3 -3
  194. package/table/components/table-toolbar/table-toolbar.d.ts +4 -1
  195. package/table/table.component.d.ts +9 -3
  196. package/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.d.ts +5 -4
  197. package/wizard-generator/components/wizard-body/wizard-body.component.d.ts +1 -1
  198. package/wizard-generator/components/wizard-generator/wizard-generator.component.d.ts +1 -1
  199. package/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.d.ts +1 -1
  200. package/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.d.ts +1 -1
  201. package/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.d.ts +1 -1
  202. package/wizard-generator/directives/wizard-generator-finish-button.directive.d.ts +1 -1
  203. package/wizard-generator/directives/wizard-generator-go-next-button.directive.d.ts +1 -1
  204. package/wizard-generator/directives/wizard-generator-review-button.directive.d.ts +1 -1
  205. package/wizard-generator/directives/wizard-generator-summary-step.directive.d.ts +1 -1
  206. package/wizard-generator/wizard-generator.module.d.ts +12 -24
  207. package/fundamental-ngx-platform-v0.46.0-rc.2.tgz +0 -0
@@ -128,7 +128,7 @@ export class DefineTabComponent extends VhdBaseTab {
128
128
  }
129
129
  }
130
130
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DefineTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
131
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: DefineTabComponent, selector: "fdp-define-tab", inputs: { titleId: "titleId", selectedId: "selectedId", conditions: "conditions", strategyLabels: "strategyLabels" }, outputs: { includeChange: "includeChange", excludeChange: "excludeChange", conditionChange: "conditionChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<h5 [id]=\"titleId\" role=\"heading\" aria-level=\"5\" fd-title class=\"define-condition-title\">\n {{ 'platformVHD.defineConditionTitle' | fdTranslate }}\n</h5>\n<ng-container *ngFor=\"let item of _conditions; trackBy: _trackByKeyAndType; index as i\">\n <fd-layout-grid class=\"condition-row\" [noGap]=\"true\">\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"5\">\n <label id=\"CONDITIONPANEL_OPERATOR_LABEL\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n CONDITIONPANEL_OPERATOR_LABEL\n </label>\n <label [id]=\"selectedId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n 'platformVHD.defineConditionSelectedValueHiddenA11yLabel'\n | fdTranslate : { value: item.strategy }\n }}</label\n >\n <fd-select\n class=\"vhd-condition-filters\"\n fdLayoutGridCol\n colGrow\n [class.fd-select-custom-class]=\"false\"\n #sttr\n [controlTemplate]=\"customSelectTemplate\"\n [name]=\"uid + '-' + type + '-strategy-' + item.id\"\n [(ngModel)]=\"item.strategy\"\n (valueChange)=\"_filterChanged()\"\n role=\"combobox\"\n aria-roledescription=\"select\"\n aria-haspopup=\"listbox\"\n [ariaLabelledBy]=\"titleId + ' ' + 'CONDITIONPANEL_OPERATOR_LABEL' + ' ' + selectedId\"\n >\n <ng-container *ngIf=\"_includeStrategy.length\">\n <li fd-list-group-header>\n {{ 'platformVHD.defineConditionConditionsGroupHeaderInclude' | fdTranslate }}\n </li>\n <li fd-option *ngFor=\"let strategy of _includeStrategy\" [value]=\"strategy.key\">\n <ng-container\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.include, strategy: strategy }\"\n ></ng-container>\n </li>\n </ng-container>\n <ng-container *ngIf=\"_excludeStrategy.length\">\n <li fd-list-group-header>\n {{ 'platformVHD.defineConditionConditionsGroupHeaderExclude' | fdTranslate }}\n </li>\n <li fd-option *ngFor=\"let strategy of _excludeStrategy\" [value]=\"strategy.key\">\n <ng-container\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.exclude, strategy: strategy }\"\n ></ng-container>\n </li>\n </ng-container>\n </fd-select>\n </div>\n <div\n fdLayoutGridCol\n colGrow\n *ngIf=\"\n item.strategy !== _strategyIncludeValues.empty && item.strategy !== _strategyExcludeValues.not_empty\n \"\n >\n <div fdLayoutGridRow>\n <ng-container *ngIf=\"item.strategy === _strategyIncludeValues.between; else valueIncludeTemplate\">\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"'platformVHD.defineConditionFromPlaceholder' | fdTranslate\"\n placeholder=\"from\"\n required\n [state]=\"fromModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-from-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #fromModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n <ng-container\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-container>\n </fd-form-input-message-group>\n </div>\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"'platformVHD.defineConditionToPlaceholder' | fdTranslate\"\n required\n [state]=\"toModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-to-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #toModel=\"ngModel\"\n [(ngModel)]=\"item.valueTo\"\n />\n <ng-container\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-container>\n </fd-form-input-message-group>\n </div>\n </ng-container>\n <ng-template #valueIncludeTemplate>\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group>\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"'platformVHD.defineConditionValuePlaceholder' | fdTranslate\"\n [state]=\"valueModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-value-' + item.id\"\n (blur)=\"_validateConditionValue(item, !!valueModel.valid)\"\n #valueModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n <ng-container *ngIf=\"valueModel.invalid\">\n <ng-container\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-container>\n </ng-container>\n </fd-form-input-message-group>\n </div>\n </ng-template>\n </div>\n </div>\n <div class=\"action-col\" fdLayoutGridCol colGrow>\n <button\n fd-button\n [ariaLabel]=\"'platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate\"\n (click)=\"removeCondition(i)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n</ng-container>\n\n<fd-layout-grid class=\"condition-row new-condition-row\" [noGap]=\"true\">\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>&nbsp;</div>\n <div fdLayoutGridCol class=\"action-col\">\n <button\n fd-button\n [attr.aria-label]=\"'platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate\"\n [label]=\"'platformVHD.defineConditionAddConditionButtonLabel' | fdTranslate\"\n [title]=\"'platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate\"\n (click)=\"addEmptyCondition()\"\n ></button>\n </div>\n </div>\n</fd-layout-grid>\n\n<ng-template #conditionStrategyOption let-type=\"type\" let-strategy=\"strategy\">\n <ng-container [ngSwitch]=\"strategy.key\">\n <ng-container *ngSwitchCase=\"'contains'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelContains' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'equalTo'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelEqualTo' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'between'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelBetween' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'startsWith'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelStartsWith' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'endsWith'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelEndsWith' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'lessThan'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelLessThan' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'lessThanEqual'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelLessThanEqual' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'greaterThan'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelGreaterThan' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'greaterThanEqual'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelGreaterThanEqual' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelEmpty' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'not_equalTo'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelNotEqualTo' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'not_empty'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelNotEmpty' | fdTranslate }}\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #countError let-count>\n <fd-form-message type=\"error\" *ngIf=\"count && count > 7\">\n {{ 'platformVHD.defineConditionMaxCountError' | fdTranslate : { count: 7 } }}\n </fd-form-message>\n</ng-template>\n\n<ng-template #customSelectTemplate let-textValue>\n {{ textValue }}\n</ng-template>\n", styles: [".fdp-value-help-dialog .fd-row{min-width:100%!important;margin:0!important}.fdp-value-help-dialog .condition-row>.fd-col{padding:0 .5rem .5rem 0}.fdp-value-help-dialog .condition-row>.fd-col:last-child{padding-right:0}.fdp-value-help-dialog .condition-row .fd-input{margin:0}.fdp-value-help-dialog fdp-define-tab{height:100%;overflow:auto}.fdp-value-help-dialog fdp-define-tab .define-condition-title{padding:.625rem 0 0}.fdp-value-help-dialog fdp-define-tab .fd-container--no-gap{margin:0!important}.fdp-value-help-dialog .vhd-condition-filters fd-popover{width:100%}.fdp-value-help-dialog .condition-row{align-items:center}.fdp-value-help-dialog .condition-row .main-col{min-width:auto;flex:1 1 auto}.fdp-value-help-dialog .condition-row .action-col{min-width:auto;flex:0 0 auto}.fdp-value-help-dialog .condition-row .fd-input{margin-top:0}.fdp-value-help-dialog .condition-row.new-condition-row{padding-top:.5rem}.fdp-value-help-dialog .condition-row.new-condition-row .fd-button{margin-right:2.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i5.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "component", type: i5.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i5.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i5.FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: i6.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i6.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i6.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: i7.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i8.SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i8.OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: i9.ConditionCountMessageDirective, selector: "[fdp-condition-count-message]", inputs: ["maxCharacters"] }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: DefineTabComponent, selector: "fdp-define-tab", inputs: { titleId: "titleId", selectedId: "selectedId", conditions: "conditions", strategyLabels: "strategyLabels" }, outputs: { includeChange: "includeChange", excludeChange: "excludeChange", conditionChange: "conditionChange" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<h5 [id]=\"titleId\" role=\"heading\" aria-level=\"5\" fd-title class=\"define-condition-title\">\n {{ 'platformVHD.defineConditionTitle' | fdTranslate }}\n</h5>\n<ng-container *ngFor=\"let item of _conditions; trackBy: _trackByKeyAndType; index as i\">\n <fd-layout-grid class=\"condition-row\" [noGap]=\"true\">\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"5\">\n <label id=\"CONDITIONPANEL_OPERATOR_LABEL\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n CONDITIONPANEL_OPERATOR_LABEL\n </label>\n <label [id]=\"selectedId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n 'platformVHD.defineConditionSelectedValueHiddenA11yLabel'\n | fdTranslate : { value: item.strategy }\n }}</label\n >\n <fd-select\n class=\"vhd-condition-filters\"\n fdLayoutGridCol\n colGrow\n [class.fd-select-custom-class]=\"false\"\n #sttr\n [controlTemplate]=\"customSelectTemplate\"\n [name]=\"uid + '-' + type + '-strategy-' + item.id\"\n [(ngModel)]=\"item.strategy\"\n (valueChange)=\"_filterChanged()\"\n role=\"combobox\"\n aria-roledescription=\"select\"\n aria-haspopup=\"listbox\"\n [ariaLabelledBy]=\"titleId + ' ' + 'CONDITIONPANEL_OPERATOR_LABEL' + ' ' + selectedId\"\n >\n <ng-container *ngIf=\"_includeStrategy.length\">\n <li fd-list-group-header>\n {{ 'platformVHD.defineConditionConditionsGroupHeaderInclude' | fdTranslate }}\n </li>\n <li fd-option *ngFor=\"let strategy of _includeStrategy\" [value]=\"strategy.key\">\n <ng-container\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.include, strategy: strategy }\"\n ></ng-container>\n </li>\n </ng-container>\n <ng-container *ngIf=\"_excludeStrategy.length\">\n <li fd-list-group-header>\n {{ 'platformVHD.defineConditionConditionsGroupHeaderExclude' | fdTranslate }}\n </li>\n <li fd-option *ngFor=\"let strategy of _excludeStrategy\" [value]=\"strategy.key\">\n <ng-container\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.exclude, strategy: strategy }\"\n ></ng-container>\n </li>\n </ng-container>\n </fd-select>\n </div>\n <div\n fdLayoutGridCol\n colGrow\n *ngIf=\"\n item.strategy !== _strategyIncludeValues.empty && item.strategy !== _strategyExcludeValues.not_empty\n \"\n >\n <div fdLayoutGridRow>\n <ng-container *ngIf=\"item.strategy === _strategyIncludeValues.between; else valueIncludeTemplate\">\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"'platformVHD.defineConditionFromPlaceholder' | fdTranslate\"\n placeholder=\"from\"\n required\n [state]=\"fromModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-from-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #fromModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n <ng-container\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-container>\n </fd-form-input-message-group>\n </div>\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"'platformVHD.defineConditionToPlaceholder' | fdTranslate\"\n required\n [state]=\"toModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-to-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #toModel=\"ngModel\"\n [(ngModel)]=\"item.valueTo\"\n />\n <ng-container\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-container>\n </fd-form-input-message-group>\n </div>\n </ng-container>\n <ng-template #valueIncludeTemplate>\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group>\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"'platformVHD.defineConditionValuePlaceholder' | fdTranslate\"\n [state]=\"valueModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-value-' + item.id\"\n (blur)=\"_validateConditionValue(item, !!valueModel.valid)\"\n #valueModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n <ng-container *ngIf=\"valueModel.invalid\">\n <ng-container\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-container>\n </ng-container>\n </fd-form-input-message-group>\n </div>\n </ng-template>\n </div>\n </div>\n <div class=\"action-col\" fdLayoutGridCol colGrow>\n <button\n fd-button\n [ariaLabel]=\"'platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate\"\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate\"\n (click)=\"removeCondition(i)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n</ng-container>\n\n<fd-layout-grid class=\"condition-row new-condition-row\" [noGap]=\"true\">\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow>&nbsp;</div>\n <div fdLayoutGridCol class=\"action-col\">\n <button\n fd-button\n [attr.aria-label]=\"'platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate\"\n [label]=\"'platformVHD.defineConditionAddConditionButtonLabel' | fdTranslate\"\n [title]=\"'platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate\"\n (click)=\"addEmptyCondition()\"\n ></button>\n </div>\n </div>\n</fd-layout-grid>\n\n<ng-template #conditionStrategyOption let-type=\"type\" let-strategy=\"strategy\">\n <ng-container [ngSwitch]=\"strategy.key\">\n <ng-container *ngSwitchCase=\"'contains'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelContains' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'equalTo'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelEqualTo' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'between'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelBetween' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'startsWith'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelStartsWith' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'endsWith'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelEndsWith' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'lessThan'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelLessThan' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'lessThanEqual'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelLessThanEqual' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'greaterThan'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelGreaterThan' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'greaterThanEqual'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelGreaterThanEqual' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'empty'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelEmpty' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'not_equalTo'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelNotEqualTo' | fdTranslate }}\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'not_empty'\">\n {{ 'platformVHD.defineConditionConditionStrategyLabelNotEmpty' | fdTranslate }}\n </ng-container>\n </ng-container>\n</ng-template>\n\n<ng-template #countError let-count>\n <fd-form-message type=\"error\" *ngIf=\"count && count > 7\">\n {{ 'platformVHD.defineConditionMaxCountError' | fdTranslate : { count: 7 } }}\n </fd-form-message>\n</ng-template>\n\n<ng-template #customSelectTemplate let-textValue>\n {{ textValue }}\n</ng-template>\n", styles: [".fdp-value-help-dialog .fd-row{min-width:100%!important;margin:0!important}.fdp-value-help-dialog .condition-row>.fd-col{padding:0 .5rem .5rem 0}.fdp-value-help-dialog .condition-row>.fd-col:last-child{padding-right:0}.fdp-value-help-dialog .condition-row .fd-input{margin:0}.fdp-value-help-dialog fdp-define-tab{height:100%;overflow:auto}.fdp-value-help-dialog fdp-define-tab .define-condition-title{padding:.625rem 0 0}.fdp-value-help-dialog fdp-define-tab .fd-container--no-gap{margin:0!important}.fdp-value-help-dialog .vhd-condition-filters fd-popover{width:100%}.fdp-value-help-dialog .condition-row{align-items:center}.fdp-value-help-dialog .condition-row .main-col{min-width:auto;flex:1 1 auto}.fdp-value-help-dialog .condition-row .action-col{min-width:auto;flex:0 0 auto}.fdp-value-help-dialog .condition-row .fd-input{margin-top:0}.fdp-value-help-dialog .condition-row.new-condition-row{padding-top:.5rem}.fdp-value-help-dialog .condition-row.new-condition-row .fd-button{margin-right:2.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.FormControlComponent, selector: "[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i5.InputFormControlDirective, selector: "input[fd-form-control]" }, { kind: "component", type: i5.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i5.FormMessageComponent, selector: "fd-form-message", inputs: ["type", "static", "embedded", "class"] }, { kind: "component", type: i5.FormInputMessageGroupComponent, selector: "fd-form-input-message-group", inputs: ["triggers", "closeOnOutsideClick", "fillControlMode", "noArrow", "closeOnEscapeKey", "placement", "placementContainer", "isOpen"], outputs: ["isOpenChange"] }, { kind: "component", type: i6.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i6.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i6.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "directive", type: i7.ListGroupHeaderDirective, selector: "[fdListGroupHeader], [fd-list-group-header]", inputs: ["nativeElementId"], outputs: ["keyDown"] }, { kind: "component", type: i8.SelectComponent, selector: "fd-select", inputs: ["extendedBodyTemplate", "controlId", "state", "mobile", "stateMessage", "disabled", "required", "readonly", "placeholder", "value", "maxHeight", "glyph", "closeOnOutsideClick", "fillControlMode", "controlTemplate", "appendTo", "unselectMissingOption", "typeaheadDebounceInterval", "ariaLabelledBy", "ariaLabel", "mobileConfig", "inline", "selectControlClass", "selectDropdownButtonClass", "advancedStateMessage", "compareWith"], outputs: ["isOpenChange", "valueChange"] }, { kind: "component", type: i8.OptionComponent, selector: "[fd-option], fd-option", inputs: ["id", "value", "disabled"], outputs: ["selectionChange"] }, { kind: "directive", type: i9.ConditionCountMessageDirective, selector: "[fdp-condition-count-message]", inputs: ["maxCharacters"] }, { kind: "pipe", type: i10.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
132
132
  }
133
133
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: DefineTabComponent, decorators: [{
134
134
  type: Component,
@@ -232,11 +232,11 @@ export class SelectTabComponent extends VhdBaseTab {
232
232
  }
233
233
  }
234
234
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SelectTabComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
235
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SelectTabComponent, selector: "fdp-select-tab", inputs: { selectTabTitleId: "selectTabTitleId", selectTabCountId: "selectTabCountId", selected: "selected", loading: "loading", filters: "filters", selection: "selection", uniqueKey: "uniqueKey", pageSize: "pageSize", defaultMobileHeaders: "defaultMobileHeaders", displayedData: "displayedData" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "infiniteScrollTable", first: true, predicate: InfiniteScrollDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"table-header\">\n <h5 fd-title role=\"heading\" aria-level=\"5\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </h5>\n</div>\n<div\n class=\"fdp-value-help-dialog__table-holder table-content\"\n fd-scrollbar\n fdInfiniteScroll\n (onScrollAction)=\"_showMoreElements()\"\n [scrollPercent]=\"80\"\n role=\"table\"\n>\n <table\n fd-table\n [popIn]=\"mobile\"\n [noBorderX]=\"mobile\"\n [noBorderY]=\"false\"\n [attr.aria-colcount]=\"_tableFilters.main.length\"\n [attr.aria-rowcount]=\"displayedData.length\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n [attr.aria-labelledby]=\"selectTabTitleId + ' ' + selectTabCountId\"\n >\n <label [id]=\"selectTabCountId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n 'platformVHD.selectTabCountHiddenA11yLabel'\n | fdTranslate : { rowCount: displayedData.length, colCount: _tableFilters.main.length }\n }}\n </label>\n <label [id]=\"selectTabTitleId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </label>\n <thead fd-table-header>\n <tr fd-table-row *ngIf=\"displayedData.length && _tableFilters\">\n <th fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-all'\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"_selectedAll\"\n (ngModelChange)=\"_toggleAllRows()\"\n ></fd-checkbox>\n </th>\n <th\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; trackBy: _trackByFilterFn; let colindex = index\"\n [attr.aria-colindex]=\"colindex\"\n >\n {{ filter.label }}\n </th>\n </tr>\n </thead>\n <tbody fd-table-body>\n <ng-container\n *ngFor=\"\n let row of displayedData | slice : _shownFrom : _shownCount;\n trackBy: _trackByTableRowFn;\n index as i\n \"\n >\n <tr\n fd-table-row\n [hoverable]=\"!mobile\"\n [main]=\"mobile\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n [activable]=\"!isMultiSelection\"\n (click)=\"!isMultiSelection && _toggleSelectRow(row)\"\n >\n <td fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-' + i\"\n [ngModel]=\"_selectedMap[row[uniqueKey]]\"\n (change)=\"_toggleSelectRow(row)\"\n ></fd-checkbox>\n </td>\n <td\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; let rowIndex = index\"\n [attr.aria-rowindex]=\"rowIndex\"\n >\n {{ row[filter.key] || '' }}\n </td>\n </tr>\n\n <tr\n fd-table-row\n *ngIf=\"mobile && _tableFilters.secondary.length\"\n [secondary]=\"true\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n >\n <td fd-table-cell></td>\n <td colspan=\"100%\" fd-table-cell [fitContent]=\"true\">\n <p fd-table-text *ngFor=\"let filter of _tableFilters.secondary\">\n <label>{{ filter.label }}:</label>\n {{ row[filter.key] || '' }}\n </p>\n </td>\n </tr>\n </ng-container>\n <tr\n fd-table-row\n *ngIf=\"displayedData.length && mobile && _shownCount && _shownCount !== displayedData.length\"\n >\n <td colspan=\"100%\">\n <div fd-bar barDesign=\"header-with-subheader\">\n <div fd-bar-middle>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"'platformVHD.selectTabMoreBtnLabel' | fdTranslate\"\n (click)=\"_showMoreElements()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </td>\n </tr>\n <ng-container *ngIf=\"loading && !displayedData.length\">\n <tr fd-table-row *fdkRepeat=\"3\">\n <td fd-table-cell *fdkRepeat=\"3\">\n <fd-skeleton style=\"margin: auto 0\" type=\"text\" textLines=\"1\" width=\"60%\"></fd-skeleton>\n </td>\n </tr>\n </ng-container>\n <tr fd-table-row *ngIf=\"!loading && !displayedData.length\">\n <td fd-table-cell colspan=\"100%\">\n <div class=\"fdp-value-help-dialog__empty-message\">\n {{ 'platformVHD.searchTableEmptyMessage' | fdTranslate }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [".fdp-value-help-dialog__advanced-filters .fd-col{padding-top:0}.fdp-value-help-dialog__content-holder fdp-select-tab{display:flex;flex-direction:column;overflow:hidden;height:100%}.fdp-value-help-dialog__content-holder .table-header{flex:0 0 auto}.fdp-value-help-dialog__content-holder .table-content{flex:1 1 auto;overflow:auto;min-height:5rem}.fdp-value-help-dialog__table-holder{padding-top:0;padding-bottom:0}.fdp-value-help-dialog__empty-message{padding:1rem 2rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i7.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i7.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i7.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i7.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i7.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i7.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i8.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i9.InfiniteScrollDirective, selector: "[fdInfiniteScroll]", inputs: ["scrollPercent", "scrollOffset"], outputs: ["onScrollAction"] }, { kind: "directive", type: i10.ScrollbarDirective, selector: "[fdScrollbar], [fd-scrollbar]", inputs: ["noHorizontalScroll", "noVerticalScroll", "alwaysVisible", "overrideTabindex"] }, { kind: "component", type: i11.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "directive", type: i12.RepeatDirective, selector: "[fdkRepeat]", inputs: ["fdkRepeat"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i13.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
235
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: SelectTabComponent, selector: "fdp-select-tab", inputs: { selectTabTitleId: "selectTabTitleId", selectTabCountId: "selectTabCountId", selected: "selected", loading: "loading", filters: "filters", selection: "selection", uniqueKey: "uniqueKey", pageSize: "pageSize", defaultMobileHeaders: "defaultMobileHeaders", displayedData: "displayedData" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "infiniteScrollTable", first: true, predicate: InfiniteScrollDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"table-header\">\n <h5 fd-title role=\"heading\" aria-level=\"5\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </h5>\n</div>\n<div\n class=\"fdp-value-help-dialog__table-holder table-content\"\n fd-scrollbar\n fdInfiniteScroll\n (onScrollAction)=\"_showMoreElements()\"\n [scrollPercent]=\"80\"\n role=\"table\"\n>\n <table\n fd-table\n [popIn]=\"mobile\"\n [noBorderX]=\"mobile\"\n [noBorderY]=\"false\"\n [attr.aria-colcount]=\"_tableFilters.main.length\"\n [attr.aria-rowcount]=\"displayedData.length\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n [attr.aria-labelledby]=\"selectTabTitleId + ' ' + selectTabCountId\"\n >\n <label [id]=\"selectTabCountId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n 'platformVHD.selectTabCountHiddenA11yLabel'\n | fdTranslate : { rowCount: displayedData.length, colCount: _tableFilters.main.length }\n }}\n </label>\n <label [id]=\"selectTabTitleId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </label>\n <thead fd-table-header>\n <tr fd-table-row *ngIf=\"displayedData.length && _tableFilters\">\n <th fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-all'\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"_selectedAll\"\n (ngModelChange)=\"_toggleAllRows()\"\n ></fd-checkbox>\n </th>\n <th\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; trackBy: _trackByFilterFn; let colindex = index\"\n [attr.aria-colindex]=\"colindex\"\n >\n {{ filter.label }}\n </th>\n </tr>\n </thead>\n <tbody fd-table-body>\n <ng-container\n *ngFor=\"\n let row of displayedData | slice : _shownFrom : _shownCount;\n trackBy: _trackByTableRowFn;\n index as i\n \"\n >\n <tr\n fd-table-row\n [hoverable]=\"!mobile\"\n [main]=\"mobile\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n [activable]=\"!isMultiSelection\"\n (click)=\"!isMultiSelection && _toggleSelectRow(row)\"\n >\n <td fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-' + i\"\n [ngModel]=\"_selectedMap[row[uniqueKey]]\"\n (change)=\"_toggleSelectRow(row)\"\n ></fd-checkbox>\n </td>\n <td\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; let rowIndex = index\"\n [attr.aria-rowindex]=\"rowIndex\"\n >\n {{ row[filter.key] || '' }}\n </td>\n </tr>\n\n <tr\n fd-table-row\n *ngIf=\"mobile && _tableFilters.secondary.length\"\n [secondary]=\"true\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n >\n <td fd-table-cell></td>\n <td colspan=\"100%\" fd-table-cell [fitContent]=\"true\">\n <p fd-table-text *ngFor=\"let filter of _tableFilters.secondary\">\n <label>{{ filter.label }}:</label>\n {{ row[filter.key] || '' }}\n </p>\n </td>\n </tr>\n </ng-container>\n <tr\n fd-table-row\n *ngIf=\"displayedData.length && mobile && _shownCount && _shownCount !== displayedData.length\"\n >\n <td colspan=\"100%\">\n <div fd-bar barDesign=\"header-with-subheader\">\n <div fd-bar-middle>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"'platformVHD.selectTabMoreBtnLabel' | fdTranslate\"\n (click)=\"_showMoreElements()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </td>\n </tr>\n <ng-container *ngIf=\"loading && !displayedData.length\">\n <tr fd-table-row *fdkRepeat=\"3\">\n <td fd-table-cell *fdkRepeat=\"3\">\n <fd-skeleton [style.margin]=\"'auto 0'\" type=\"text\" textLines=\"1\" width=\"60%\"></fd-skeleton>\n </td>\n </tr>\n </ng-container>\n <tr fd-table-row *ngIf=\"!loading && !displayedData.length\">\n <td fd-table-cell colspan=\"100%\">\n <div class=\"fdp-value-help-dialog__empty-message\">\n {{ 'platformVHD.searchTableEmptyMessage' | fdTranslate }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [".fdp-value-help-dialog__advanced-filters .fd-col{padding-top:0}.fdp-value-help-dialog__content-holder fdp-select-tab{display:flex;flex-direction:column;overflow:hidden;height:100%}.fdp-value-help-dialog__content-holder .table-header{flex:0 0 auto}.fdp-value-help-dialog__content-holder .table-content{flex:1 1 auto;overflow:auto;min-height:5rem}.fdp-value-help-dialog__table-holder{padding-top:0;padding-bottom:0}.fdp-value-help-dialog__empty-message{padding:1rem 2rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i3.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i5.ButtonComponent, selector: "button[fd-button], a[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i6.FormLabelComponent, selector: "[fd-form-label]", inputs: ["required", "colon", "alignLabelEnd", "inlineHelpContent", "inlineHelpGlyph", "inlineHelpTriggers", "inlineHelpBodyPlacement", "inlineHelpPlacement", "inlineHelpLabel", "id"] }, { kind: "component", type: i7.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i7.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i7.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i7.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i7.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i7.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "component", type: i8.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i9.InfiniteScrollDirective, selector: "[fdInfiniteScroll]", inputs: ["scrollPercent", "scrollOffset"], outputs: ["onScrollAction"] }, { kind: "directive", type: i10.ScrollbarDirective, selector: "[fdScrollbar], [fd-scrollbar]", inputs: ["noHorizontalScroll", "noVerticalScroll", "alwaysVisible", "overrideTabindex"] }, { kind: "component", type: i11.SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "directive", type: i12.RepeatDirective, selector: "[fdkRepeat]", inputs: ["fdkRepeat"] }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }, { kind: "pipe", type: i13.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
236
236
  }
237
237
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: SelectTabComponent, decorators: [{
238
238
  type: Component,
239
- args: [{ selector: 'fdp-select-tab', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-header\">\n <h5 fd-title role=\"heading\" aria-level=\"5\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </h5>\n</div>\n<div\n class=\"fdp-value-help-dialog__table-holder table-content\"\n fd-scrollbar\n fdInfiniteScroll\n (onScrollAction)=\"_showMoreElements()\"\n [scrollPercent]=\"80\"\n role=\"table\"\n>\n <table\n fd-table\n [popIn]=\"mobile\"\n [noBorderX]=\"mobile\"\n [noBorderY]=\"false\"\n [attr.aria-colcount]=\"_tableFilters.main.length\"\n [attr.aria-rowcount]=\"displayedData.length\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n [attr.aria-labelledby]=\"selectTabTitleId + ' ' + selectTabCountId\"\n >\n <label [id]=\"selectTabCountId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n 'platformVHD.selectTabCountHiddenA11yLabel'\n | fdTranslate : { rowCount: displayedData.length, colCount: _tableFilters.main.length }\n }}\n </label>\n <label [id]=\"selectTabTitleId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </label>\n <thead fd-table-header>\n <tr fd-table-row *ngIf=\"displayedData.length && _tableFilters\">\n <th fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-all'\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"_selectedAll\"\n (ngModelChange)=\"_toggleAllRows()\"\n ></fd-checkbox>\n </th>\n <th\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; trackBy: _trackByFilterFn; let colindex = index\"\n [attr.aria-colindex]=\"colindex\"\n >\n {{ filter.label }}\n </th>\n </tr>\n </thead>\n <tbody fd-table-body>\n <ng-container\n *ngFor=\"\n let row of displayedData | slice : _shownFrom : _shownCount;\n trackBy: _trackByTableRowFn;\n index as i\n \"\n >\n <tr\n fd-table-row\n [hoverable]=\"!mobile\"\n [main]=\"mobile\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n [activable]=\"!isMultiSelection\"\n (click)=\"!isMultiSelection && _toggleSelectRow(row)\"\n >\n <td fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-' + i\"\n [ngModel]=\"_selectedMap[row[uniqueKey]]\"\n (change)=\"_toggleSelectRow(row)\"\n ></fd-checkbox>\n </td>\n <td\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; let rowIndex = index\"\n [attr.aria-rowindex]=\"rowIndex\"\n >\n {{ row[filter.key] || '' }}\n </td>\n </tr>\n\n <tr\n fd-table-row\n *ngIf=\"mobile && _tableFilters.secondary.length\"\n [secondary]=\"true\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n >\n <td fd-table-cell></td>\n <td colspan=\"100%\" fd-table-cell [fitContent]=\"true\">\n <p fd-table-text *ngFor=\"let filter of _tableFilters.secondary\">\n <label>{{ filter.label }}:</label>\n {{ row[filter.key] || '' }}\n </p>\n </td>\n </tr>\n </ng-container>\n <tr\n fd-table-row\n *ngIf=\"displayedData.length && mobile && _shownCount && _shownCount !== displayedData.length\"\n >\n <td colspan=\"100%\">\n <div fd-bar barDesign=\"header-with-subheader\">\n <div fd-bar-middle>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"'platformVHD.selectTabMoreBtnLabel' | fdTranslate\"\n (click)=\"_showMoreElements()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </td>\n </tr>\n <ng-container *ngIf=\"loading && !displayedData.length\">\n <tr fd-table-row *fdkRepeat=\"3\">\n <td fd-table-cell *fdkRepeat=\"3\">\n <fd-skeleton style=\"margin: auto 0\" type=\"text\" textLines=\"1\" width=\"60%\"></fd-skeleton>\n </td>\n </tr>\n </ng-container>\n <tr fd-table-row *ngIf=\"!loading && !displayedData.length\">\n <td fd-table-cell colspan=\"100%\">\n <div class=\"fdp-value-help-dialog__empty-message\">\n {{ 'platformVHD.searchTableEmptyMessage' | fdTranslate }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [".fdp-value-help-dialog__advanced-filters .fd-col{padding-top:0}.fdp-value-help-dialog__content-holder fdp-select-tab{display:flex;flex-direction:column;overflow:hidden;height:100%}.fdp-value-help-dialog__content-holder .table-header{flex:0 0 auto}.fdp-value-help-dialog__content-holder .table-content{flex:1 1 auto;overflow:auto;min-height:5rem}.fdp-value-help-dialog__table-holder{padding-top:0;padding-bottom:0}.fdp-value-help-dialog__empty-message{padding:1rem 2rem}\n"] }]
239
+ args: [{ selector: 'fdp-select-tab', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"table-header\">\n <h5 fd-title role=\"heading\" aria-level=\"5\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </h5>\n</div>\n<div\n class=\"fdp-value-help-dialog__table-holder table-content\"\n fd-scrollbar\n fdInfiniteScroll\n (onScrollAction)=\"_showMoreElements()\"\n [scrollPercent]=\"80\"\n role=\"table\"\n>\n <table\n fd-table\n [popIn]=\"mobile\"\n [noBorderX]=\"mobile\"\n [noBorderY]=\"false\"\n [attr.aria-colcount]=\"_tableFilters.main.length\"\n [attr.aria-rowcount]=\"displayedData.length\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n [attr.aria-labelledby]=\"selectTabTitleId + ' ' + selectTabCountId\"\n >\n <label [id]=\"selectTabCountId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n 'platformVHD.selectTabCountHiddenA11yLabel'\n | fdTranslate : { rowCount: displayedData.length, colCount: _tableFilters.main.length }\n }}\n </label>\n <label [id]=\"selectTabTitleId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{ 'platformVHD.selectTabDisplayCountLabel' | fdTranslate : { count: displayedData.length } }}\n </label>\n <thead fd-table-header>\n <tr fd-table-row *ngIf=\"displayedData.length && _tableFilters\">\n <th fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-all'\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"_selectedAll\"\n (ngModelChange)=\"_toggleAllRows()\"\n ></fd-checkbox>\n </th>\n <th\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; trackBy: _trackByFilterFn; let colindex = index\"\n [attr.aria-colindex]=\"colindex\"\n >\n {{ filter.label }}\n </th>\n </tr>\n </thead>\n <tbody fd-table-body>\n <ng-container\n *ngFor=\"\n let row of displayedData | slice : _shownFrom : _shownCount;\n trackBy: _trackByTableRowFn;\n index as i\n \"\n >\n <tr\n fd-table-row\n [hoverable]=\"!mobile\"\n [main]=\"mobile\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n [activable]=\"!isMultiSelection\"\n (click)=\"!isMultiSelection && _toggleSelectRow(row)\"\n >\n <td fd-table-cell [fitContent]=\"mobile\">\n <fd-checkbox\n *ngIf=\"isMultiSelection\"\n [name]=\"uid + '-row-' + i\"\n [ngModel]=\"_selectedMap[row[uniqueKey]]\"\n (change)=\"_toggleSelectRow(row)\"\n ></fd-checkbox>\n </td>\n <td\n fd-table-cell\n *ngFor=\"let filter of _tableFilters.main; let rowIndex = index\"\n [attr.aria-rowindex]=\"rowIndex\"\n >\n {{ row[filter.key] || '' }}\n </td>\n </tr>\n\n <tr\n fd-table-row\n *ngIf=\"mobile && _tableFilters.secondary.length\"\n [secondary]=\"true\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n >\n <td fd-table-cell></td>\n <td colspan=\"100%\" fd-table-cell [fitContent]=\"true\">\n <p fd-table-text *ngFor=\"let filter of _tableFilters.secondary\">\n <label>{{ filter.label }}:</label>\n {{ row[filter.key] || '' }}\n </p>\n </td>\n </tr>\n </ng-container>\n <tr\n fd-table-row\n *ngIf=\"displayedData.length && mobile && _shownCount && _shownCount !== displayedData.length\"\n >\n <td colspan=\"100%\">\n <div fd-bar barDesign=\"header-with-subheader\">\n <div fd-bar-middle>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"'platformVHD.selectTabMoreBtnLabel' | fdTranslate\"\n (click)=\"_showMoreElements()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </td>\n </tr>\n <ng-container *ngIf=\"loading && !displayedData.length\">\n <tr fd-table-row *fdkRepeat=\"3\">\n <td fd-table-cell *fdkRepeat=\"3\">\n <fd-skeleton [style.margin]=\"'auto 0'\" type=\"text\" textLines=\"1\" width=\"60%\"></fd-skeleton>\n </td>\n </tr>\n </ng-container>\n <tr fd-table-row *ngIf=\"!loading && !displayedData.length\">\n <td fd-table-cell colspan=\"100%\">\n <div class=\"fdp-value-help-dialog__empty-message\">\n {{ 'platformVHD.searchTableEmptyMessage' | fdTranslate }}\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</div>\n", styles: [".fdp-value-help-dialog__advanced-filters .fd-col{padding-top:0}.fdp-value-help-dialog__content-holder fdp-select-tab{display:flex;flex-direction:column;overflow:hidden;height:100%}.fdp-value-help-dialog__content-holder .table-header{flex:0 0 auto}.fdp-value-help-dialog__content-holder .table-content{flex:1 1 auto;overflow:auto;min-height:5rem}.fdp-value-help-dialog__table-holder{padding-top:0;padding-bottom:0}.fdp-value-help-dialog__empty-message{padding:1rem 2rem}\n"] }]
240
240
  }], propDecorators: { selectTabTitleId: [{
241
241
  type: Input
242
242
  }], selectTabCountId: [{
@@ -265,4 +265,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
265
265
  type: ViewChild,
266
266
  args: [InfiniteScrollDirective]
267
267
  }] } });
268
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdmFsdWUtaGVscC1kaWFsb2cvY29tcG9uZW50cy9zZWxlY3QtdGFiL3NlbGVjdC10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3ZhbHVlLWhlbHAtZGlhbG9nL2NvbXBvbmVudHMvc2VsZWN0LXRhYi9zZWxlY3QtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUV2QixpQkFBaUIsRUFHakIsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRWhFLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztBQVN0QixNQUFNLE9BQU8sa0JBQXNCLFNBQVEsVUFBVTtJQVByRDs7UUFRSSxjQUFjO1FBQ0osbUJBQWMsR0FBRywwQkFBMEIsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUN2RSxjQUFjO1FBQ0osbUJBQWMsR0FBRyxnQ0FBZ0MsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUU3RSxrQ0FBa0M7UUFFbEMscUJBQWdCLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUvQyxrQ0FBa0M7UUFFbEMscUJBQWdCLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUvQyxxQkFBcUI7UUFFckIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUVuQixvQkFBb0I7UUFFcEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVo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LENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDbkQ7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQy9DO0lBQ0wsQ0FBQzs4R0FyUVEsa0JBQWtCO2tHQUFsQixrQkFBa0Isb2JBb0RoQix1QkFBdUIsNEZDL0V0Qyw0NkxBMElBOzsyRkQvR2Esa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzhCQVUvQyxnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLOztRQUtOLDREQUE0RDtRQUM1RCxNQUFNO3NCQUZMLE1BQU07Z0JBSzZCLG1CQUFtQjtzQkFBdEQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgVmhkRmlsdGVyLCBWZGhUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBWaGRCYXNlVGFiIH0gZnJvbSAnLi4vYmFzZS10YWIvdmhkLWJhc2UtdGFiLmNvbXBvbmVudCc7XG5cbmxldCB0aXRsZVVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc2VsZWN0LXRhYicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC10YWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC10YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdFRhYkNvbXBvbmVudDxUPiBleHRlbmRzIFZoZEJhc2VUYWIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRUaXRsZUlkID0gYGZkLXNlbGVjdC10YWItdGl0bGUtaWQtJHt0aXRsZVVuaXF1ZUlkKyt9YDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBkZWZhdWx0Q291bnRJZCA9IGBmZC1zZWxlY3QtdGFiLXRpdGxlLWNvdW50LWlkLSR7dGl0bGVVbmlxdWVJZCsrfWA7XG5cbiAgICAvKiogU2VsZWN0IHRhYiB0aXRsZSBlbGVtZW50IElEICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RUYWJUaXRsZUlkOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRUaXRsZUlkO1xuXG4gICAgLyoqIFNlbGVjdCB0YWIgY291bnQgZWxlbWVudCBJRCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0VGFiQ291bnRJZDogc3RyaW5nID0gdGhpcy5kZWZhdWx0Q291bnRJZDtcblxuICAgIC8qKiBTZWxlY3RlZCBpdGVtcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWQ6IFRbXSA9IFtdO1xuXG4gICAgLyoqIExvYWRpbmcgc3RhdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBBY3R1YWwgZmlsdGVycyAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyczogVmhkRmlsdGVyW10gPSBbXTtcblxuICAgIC8qKiBDbG9zZSBkaWFsb2cgaW1tZWRpYXRlbHkgYWZ0ZXIgc2VsZWN0IGFueSByb3cgZnJvbSBzZWFyY2ggdGFibGUuIEl0J2xsIGJlIHNraXBwZWQgaWYgbXVsdGkgb3B0aW9uIGlzIHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbjogVmRoVGFibGVTZWxlY3Rpb24gPSAnc2luZ2xlJztcblxuICAgIC8qKiBVbmlxIGZpZWxkIGZyb20gZGF0YSBzb3VyY2UgKi9cbiAgICBASW5wdXQoKVxuICAgIHVuaXF1ZUtleSA9ICdpZCc7XG5cbiAgICAvKiogSXRlbXMgcGVyIHBhZ2UgZm9yIHBhZ2luYXRpb24gYmVsb3cgc2VhcmNoIHRhYmxlICovXG4gICAgQElucHV0KClcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgLyoqIENvdW50IG9mIGRlZmF1bHQgbW9iaWxlIGhlYWRlciBmcm9tIHNlYXJjaCB0YWJsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGVmYXVsdE1vYmlsZUhlYWRlcnMgPSAyO1xuXG4gICAgLyoqIERpc3BsYXllZCBkYXRhIGZvciBzZWFyY2ggdGFibGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXllZERhdGE6IFRbXSA9IFtdO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiByb3cgd2FzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlKSBpbmZpbml0ZVNjcm9sbFRhYmxlOiBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuIGluZGV0ZXJtaW5hdGUgZmxhZyBmb3IgYHNlbGVjdCBhbGxgIGNoZWNrYm94ICovXG4gICAgX3NlbGVjdGVkQWxsOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gU2hvd24gaXRlbXMgY291bnQgaW4gbW9iaWxlIHZpZXcgKi9cbiAgICBfc2hvd25Gcm9tID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIFNob3duIGl0ZW1zIGNvdW50IGluIG1vYmlsZSB2aWV3ICovXG4gICAgX3Nob3duQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gQ3VycmVudCBwYWdlIGluIGRlc2t0b3AgdmlldyAqL1xuICAgIF9jdXJyZW50UGFnZSA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiBIZWFkZXJzIGFuZCBib2R5IGZvciBzZWFyY2ggdGFibGUgKi9cbiAgICBfdGFibGVGaWx0ZXJzOiB7XG4gICAgICAgIG1haW46IFZoZEZpbHRlcltdO1xuICAgICAgICBzZWNvbmRhcnk6IFZoZEZpbHRlcltdO1xuICAgIH0gPSB7XG4gICAgICAgIG1haW46IFtdLFxuICAgICAgICBzZWNvbmRhcnk6IFtdXG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGVkTWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgLyoqIFNlbGVjdGlvbiB0eXBlIGdldHRlcnMgKi9cbiAgICBnZXQgaXNTaW5nbGVTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiA9PT0gJ3NpbmdsZSc7XG4gICAgfVxuICAgIC8qKiBTZWxlY3Rpb24gdHlwZSBnZXR0ZXJzICovXG4gICAgZ2V0IGlzT25jZVNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uID09PSAnb25jZSc7XG4gICAgfVxuICAgIC8qKiBTZWxlY3Rpb24gdHlwZSBnZXR0ZXJzICovXG4gICAgZ2V0IGlzTXVsdGlTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiA9PT0gJ211bHRpJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgc2VsZWN0ZWRJdGVtczogVFtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VtcHR5VGFibGVNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHRydWUpLnRoZW4oKCkgPT4gdGhpcy5fY2hlY2tTY3JvbGxBbmRTaG93TW9yZSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAgKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgnZmlsdGVycycgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUZpbHRlcnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2Rpc3BsYXllZERhdGEnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hEaXNwbGF5ZWREYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdzZWxlY3RlZCcgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZCB8fCBbXTtcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hTZWxlY3RlZE1hcCgpO1xuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRyaXN0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBUcmFjayBmdW5jdGlvbiBmb3IgbWFpbiBkYXRhICovXG4gICAgX3RyYWNrQnlUYWJsZVJvd0ZuKF9pbmRleDogbnVtYmVyLCBpdGVtOiBUKTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMudW5pcXVlS2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVHJhY2sgZnVuY3Rpb24gZm9yIGZpbHRlcnMgKi9cbiAgICBfdHJhY2tCeUZpbHRlckZuKF9pbmRleDogbnVtYmVyLCBpdGVtOiBWaGRGaWx0ZXIpOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gaXRlbSAmJiBpdGVtLmtleSA/IGl0ZW0ua2V5IDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNob3cgbW9yZSBlbGVtZW50cyAqL1xuICAgIF9zaG93TW9yZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYWdlU2l6ZSAmJiB0aGlzLl9zaG93bkNvdW50ICE9PSB0aGlzLmRpc3BsYXllZERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93bkNvdW50ICs9IHRoaXMucGFnZVNpemU7XG4gICAgICAgICAgICB0aGlzLl9zaG93bkNvdW50ID0gTWF0aC5taW4odGhpcy5fc2hvd25Db3VudCwgdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93bkNvdW50ID0gdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZWZyZXNoIHBhZ2UgaW4gZGVza3RvcCB2aWV3ICovXG4gICAgX3VwZGF0ZVBhZ2UocGFnZU51bWJlciA9IDEpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnZVNpemUpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gcGFnZU51bWJlcjtcbiAgICAgICAgICAgIHRoaXMuX3Nob3duRnJvbSA9IChwYWdlTnVtYmVyIC0gMSkgKiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICAgICAgdGhpcy5fc2hvd25Db3VudCA9IE1hdGgubWluKHRoaXMuX3Nob3duRnJvbSArIHRoaXMucGFnZVNpemUsIHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2hvd25Db3VudCA9IHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBNZXRob2QgdG9nZ2xlIHNlbGVjdGVkIHN0YXRlIGZvciBhbGwgaXRlbXMgICovXG4gICAgX3RvZ2dsZUFsbFJvd3MoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZEFsbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmRpc3BsYXllZERhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB0aGlzLl9yZWZyZXNoU2VsZWN0ZWRNYXAoKTtcbiAgICAgICAgdGhpcy5fcmVmcmVzaFRyaXN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTWV0aG9kIHRvZ2dsZSBzZWxlY3RlZCBzdGF0ZSBmb3Igb25lIGl0ZW1zICAqL1xuICAgIF90b2dnbGVTZWxlY3RSb3coaXRlbTogVCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc011bHRpU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5fc2VsZWN0ZWRNYXBbaXRlbVt0aGlzLnVuaXF1ZUtleV1dO1xuICAgICAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChzOiBUKSA9PiBzW3RoaXMudW5pcXVlS2V5XSAhPT0gaXRlbVt0aGlzLnVuaXF1ZUtleV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwW2l0ZW1bdGhpcy51bmlxdWVLZXldXSA9ICF0aGlzLl9zZWxlY3RlZE1hcFtpdGVtW3RoaXMudW5pcXVlS2V5XV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jbGVhclNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtpdGVtXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUcmlzdGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tTY3JvbGxBbmRTaG93TW9yZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5fc2hvd25Db3VudCAhPT0gdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5pbmZpbml0ZVNjcm9sbFRhYmxlPy5zaG91bGRUcmlnZ2VyQWN0aW9uKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93TW9yZUVsZW1lbnRzKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1Njcm9sbEFuZFNob3dNb3JlKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNldFNob3duKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dNb3JlRWxlbWVudHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrU2Nyb2xsQW5kU2hvd01vcmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE1hbnVhbGx5IGNsZWFyIHNlbGVjdGVkIGl0ZW1zICovXG4gICAgcHJpdmF0ZSBfY2xlYXJTZWxlY3RlZEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE1hcCA9IHt9O1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZWZyZXNoIGluZGV0ZXJtaW5hdGUgYXR0cmlidXRlIG9uIGBzZWxlY3QgYWxsYCBjaGVja2JveCAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2hUcmlzdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBPYmplY3QudmFsdWVzKHRoaXMuX3NlbGVjdGVkTWFwKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xuICAgICAgICBpZiAoc2VsZWN0ZWQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWQgPT09IHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNldCB1cCBmaWx0ZXJzICovXG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZUZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgbGV0IF9tb2JpbGVUYWJsZUhlYWRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiBmLm1haW4pLm1hcCgoZikgPT4gZi5rZXkpO1xuICAgICAgICAgICAgaWYgKCFfbW9iaWxlVGFibGVIZWFkZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIF9tb2JpbGVUYWJsZUhlYWRlcnMgPSB0aGlzLmZpbHRlcnMuc2xpY2UoMCwgdGhpcy5kZWZhdWx0TW9iaWxlSGVhZGVycykubWFwKChmKSA9PiBmLmtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl90YWJsZUZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgbWFpbjogdGhpcy5maWx0ZXJzLmZpbHRlcigoZmlsdGVyKSA9PiBfbW9iaWxlVGFibGVIZWFkZXJzLnNvbWUoKGtleSkgPT4ga2V5ID09PSBmaWx0ZXIua2V5KSksXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiB0aGlzLmZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+ICFfbW9iaWxlVGFibGVIZWFkZXJzLnNvbWUoKGtleSkgPT4ga2V5ID09PSBmaWx0ZXIua2V5KSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZUZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgbWFpbjogdGhpcy5maWx0ZXJzLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeTogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZWZyZXNoIGRpc3BsYXkgZGF0YSAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2hEaXNwbGF5ZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNldFNob3duKCk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUcmlzdGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFJlZnJlc2ggc2VsZWN0ZWQgbWFwIGZvciBkaXNwbGF5IGRhdGEgKi9cbiAgICBwcml2YXRlIF9yZWZyZXNoU2VsZWN0ZWRNYXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwID0ge307XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmRpc3BsYXllZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwW2l0ZW1bdGhpcy51bmlxdWVLZXldXSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwW3NbdGhpcy51bmlxdWVLZXldXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgPGg1IGZkLXRpdGxlIHJvbGU9XCJoZWFkaW5nXCIgYXJpYS1sZXZlbD1cIjVcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtVkhELnNlbGVjdFRhYkRpc3BsYXlDb3VudExhYmVsJyB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogZGlzcGxheWVkRGF0YS5sZW5ndGggfSB9fVxuICAgIDwvaDU+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19fdGFibGUtaG9sZGVyIHRhYmxlLWNvbnRlbnRcIlxuICAgIGZkLXNjcm9sbGJhclxuICAgIGZkSW5maW5pdGVTY3JvbGxcbiAgICAob25TY3JvbGxBY3Rpb24pPVwiX3Nob3dNb3JlRWxlbWVudHMoKVwiXG4gICAgW3Njcm9sbFBlcmNlbnRdPVwiODBcIlxuICAgIHJvbGU9XCJ0YWJsZVwiXG4+XG4gICAgPHRhYmxlXG4gICAgICAgIGZkLXRhYmxlXG4gICAgICAgIFtwb3BJbl09XCJtb2JpbGVcIlxuICAgICAgICBbbm9Cb3JkZXJYXT1cIm1vYmlsZVwiXG4gICAgICAgIFtub0JvcmRlclldPVwiZmFsc2VcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbGNvdW50XT1cIl90YWJsZUZpbHRlcnMubWFpbi5sZW5ndGhcIlxuICAgICAgICBbYXR0ci5hcmlhLXJvd2NvdW50XT1cImRpc3BsYXllZERhdGEubGVuZ3RoXCJcbiAgICAgICAgcm9sZT1cImdyaWRcIlxuICAgICAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT1cInRydWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwic2VsZWN0VGFiVGl0bGVJZCArICcgJyArIHNlbGVjdFRhYkNvdW50SWRcIlxuICAgID5cbiAgICAgICAgPGxhYmVsIFtpZF09XCJzZWxlY3RUYWJDb3VudElkXCIgZmQtZm9ybS1sYWJlbCBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19faGlkZGVuX2xhYmVsXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdwbGF0Zm9ybVZIRC5zZWxlY3RUYWJDb3VudEhpZGRlbkExMXlMYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBmZFRyYW5zbGF0ZSA6IHsgcm93Q291bnQ6IGRpc3BsYXllZERhdGEubGVuZ3RoLCBjb2xDb3VudDogX3RhYmxlRmlsdGVycy5tYWluLmxlbmd0aCB9XG4gICAgICAgICAgICB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgW2lkXT1cInNlbGVjdFRhYlRpdGxlSWRcIiBmZC1mb3JtLWxhYmVsIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19oaWRkZW5fbGFiZWxcIj5cbiAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVZIRC5zZWxlY3RUYWJEaXNwbGF5Q291bnRMYWJlbCcgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IGRpc3BsYXllZERhdGEubGVuZ3RoIH0gfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHRoZWFkIGZkLXRhYmxlLWhlYWRlcj5cbiAgICAgICAgICAgIDx0ciBmZC10YWJsZS1yb3cgKm5nSWY9XCJkaXNwbGF5ZWREYXRhLmxlbmd0aCAmJiBfdGFibGVGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgW2ZpdENvbnRlbnRdPVwibW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc011bHRpU2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInVpZCArICctcm93LWFsbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyaXN0YXRlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyaXN0YXRlU2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJfc2VsZWN0ZWRBbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX3RvZ2dsZUFsbFJvd3MoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBfdGFibGVGaWx0ZXJzLm1haW47IHRyYWNrQnk6IF90cmFja0J5RmlsdGVyRm47IGxldCBjb2xpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb2xpbmRleF09XCJjb2xpbmRleFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWx0ZXIubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5IGZkLXRhYmxlLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgIGxldCByb3cgb2YgZGlzcGxheWVkRGF0YSB8IHNsaWNlIDogX3Nob3duRnJvbSA6IF9zaG93bkNvdW50O1xuICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiBfdHJhY2tCeVRhYmxlUm93Rm47XG4gICAgICAgICAgICAgICAgICAgIGluZGV4IGFzIGlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICAgICBmZC10YWJsZS1yb3dcbiAgICAgICAgICAgICAgICAgICAgW2hvdmVyYWJsZV09XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW21haW5dPVwibW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJfc2VsZWN0ZWRNYXBbcm93W3VuaXF1ZUtleV1dXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjdGl2YWJsZV09XCIhaXNNdWx0aVNlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIhaXNNdWx0aVNlbGVjdGlvbiAmJiBfdG9nZ2xlU2VsZWN0Um93KHJvdylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgW2ZpdENvbnRlbnRdPVwibW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzTXVsdGlTZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInVpZCArICctcm93LScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJfc2VsZWN0ZWRNYXBbcm93W3VuaXF1ZUtleV1dXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIl90b2dnbGVTZWxlY3RSb3cocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIF90YWJsZUZpbHRlcnMubWFpbjsgbGV0IHJvd0luZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1yb3dpbmRleF09XCJyb3dJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJvd1tmaWx0ZXIua2V5XSB8fCAnJyB9fVxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgICAgZmQtdGFibGUtcm93XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibW9iaWxlICYmIF90YWJsZUZpbHRlcnMuc2Vjb25kYXJ5Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkTWFwW3Jvd1t1bmlxdWVLZXldXVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbD48L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEwMCVcIiBmZC10YWJsZS1jZWxsIFtmaXRDb250ZW50XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGZkLXRhYmxlLXRleHQgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBfdGFibGVGaWx0ZXJzLnNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyBmaWx0ZXIubGFiZWwgfX06PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByb3dbZmlsdGVyLmtleV0gfHwgJycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICBmZC10YWJsZS1yb3dcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BsYXllZERhdGEubGVuZ3RoICYmIG1vYmlsZSAmJiBfc2hvd25Db3VudCAmJiBfc2hvd25Db3VudCAhPT0gZGlzcGxheWVkRGF0YS5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXItd2l0aC1zdWJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZIRC5zZWxlY3RUYWJNb3JlQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zaG93TW9yZUVsZW1lbnRzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nICYmICFkaXNwbGF5ZWREYXRhLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDx0ciBmZC10YWJsZS1yb3cgKmZka1JlcGVhdD1cIjNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgKmZka1JlcGVhdD1cIjNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1za2VsZXRvbiBzdHlsZT1cIm1hcmdpbjogYXV0byAwXCIgdHlwZT1cInRleHRcIiB0ZXh0TGluZXM9XCIxXCIgd2lkdGg9XCI2MCVcIj48L2ZkLXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0ciBmZC10YWJsZS1yb3cgKm5nSWY9XCIhbG9hZGluZyAmJiAhZGlzcGxheWVkRGF0YS5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19lbXB0eS1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1WSEQuc2VhcmNoVGFibGVFbXB0eU1lc3NhZ2UnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbjwvZGl2PlxuIl19
268
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LXRhYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdmFsdWUtaGVscC1kaWFsb2cvY29tcG9uZW50cy9zZWxlY3QtdGFiL3NlbGVjdC10YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3ZhbHVlLWhlbHAtZGlhbG9nL2NvbXBvbmVudHMvc2VsZWN0LXRhYi9zZWxlY3QtdGFiLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixFQUV2QixpQkFBaUIsRUFHakIsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRWhGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBRWhFLElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztBQVN0QixNQUFNLE9BQU8sa0JBQXNCLFNBQVEsVUFBVTtJQVByRDs7UUFRSSxjQUFjO1FBQ0osbUJBQWMsR0FBRywwQkFBMEIsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUN2RSxjQUFjO1FBQ0osbUJBQWMsR0FBRyxnQ0FBZ0MsYUFBYSxFQUFFLEVBQUUsQ0FBQztRQUU3RSxrQ0FBa0M7UUFFbEMscUJBQWdCLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUvQyxrQ0FBa0M7UUFFbEMscUJBQWdCLEdBQVcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUUvQyxxQkFBcUI7UUFFckIsYUFBUSxHQUFRLEVBQUUsQ0FBQztRQUVuQixvQkFBb0I7UUFFcEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVo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LENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUM7U0FDbkQ7UUFDRCxLQUFLLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQy9DO0lBQ0wsQ0FBQzs4R0FyUVEsa0JBQWtCO2tHQUFsQixrQkFBa0Isb2JBb0RoQix1QkFBdUIsNEZDL0V0QywrNkxBMElBOzsyRkQvR2Esa0JBQWtCO2tCQVA5QixTQUFTOytCQUNJLGdCQUFnQixpQkFHWCxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNOzhCQVUvQyxnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sT0FBTztzQkFETixLQUFLO2dCQUtOLE9BQU87c0JBRE4sS0FBSztnQkFLTixTQUFTO3NCQURSLEtBQUs7Z0JBS04sU0FBUztzQkFEUixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLOztRQUtOLDREQUE0RDtRQUM1RCxNQUFNO3NCQUZMLE1BQU07Z0JBSzZCLG1CQUFtQjtzQkFBdEQsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbWVtYmVyLW9yZGVyaW5nICovXG5pbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT25DaGFuZ2VzLFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9pbmZpbml0ZS1zY3JvbGwnO1xuaW1wb3J0IHsgVmhkRmlsdGVyLCBWZGhUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBWaGRCYXNlVGFiIH0gZnJvbSAnLi4vYmFzZS10YWIvdmhkLWJhc2UtdGFiLmNvbXBvbmVudCc7XG5cbmxldCB0aXRsZVVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc2VsZWN0LXRhYicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC10YWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlbGVjdC10YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdFRhYkNvbXBvbmVudDxUPiBleHRlbmRzIFZoZEJhc2VUYWIgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRUaXRsZUlkID0gYGZkLXNlbGVjdC10YWItdGl0bGUtaWQtJHt0aXRsZVVuaXF1ZUlkKyt9YDtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByb3RlY3RlZCBkZWZhdWx0Q291bnRJZCA9IGBmZC1zZWxlY3QtdGFiLXRpdGxlLWNvdW50LWlkLSR7dGl0bGVVbmlxdWVJZCsrfWA7XG5cbiAgICAvKiogU2VsZWN0IHRhYiB0aXRsZSBlbGVtZW50IElEICovXG4gICAgQElucHV0KClcbiAgICBzZWxlY3RUYWJUaXRsZUlkOiBzdHJpbmcgPSB0aGlzLmRlZmF1bHRUaXRsZUlkO1xuXG4gICAgLyoqIFNlbGVjdCB0YWIgY291bnQgZWxlbWVudCBJRCAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0VGFiQ291bnRJZDogc3RyaW5nID0gdGhpcy5kZWZhdWx0Q291bnRJZDtcblxuICAgIC8qKiBTZWxlY3RlZCBpdGVtcyAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2VsZWN0ZWQ6IFRbXSA9IFtdO1xuXG4gICAgLyoqIExvYWRpbmcgc3RhdGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGxvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKiBBY3R1YWwgZmlsdGVycyAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyczogVmhkRmlsdGVyW10gPSBbXTtcblxuICAgIC8qKiBDbG9zZSBkaWFsb2cgaW1tZWRpYXRlbHkgYWZ0ZXIgc2VsZWN0IGFueSByb3cgZnJvbSBzZWFyY2ggdGFibGUuIEl0J2xsIGJlIHNraXBwZWQgaWYgbXVsdGkgb3B0aW9uIGlzIHRydWUgKi9cbiAgICBASW5wdXQoKVxuICAgIHNlbGVjdGlvbjogVmRoVGFibGVTZWxlY3Rpb24gPSAnc2luZ2xlJztcblxuICAgIC8qKiBVbmlxIGZpZWxkIGZyb20gZGF0YSBzb3VyY2UgKi9cbiAgICBASW5wdXQoKVxuICAgIHVuaXF1ZUtleSA9ICdpZCc7XG5cbiAgICAvKiogSXRlbXMgcGVyIHBhZ2UgZm9yIHBhZ2luYXRpb24gYmVsb3cgc2VhcmNoIHRhYmxlICovXG4gICAgQElucHV0KClcbiAgICBwYWdlU2l6ZTogbnVtYmVyO1xuXG4gICAgLyoqIENvdW50IG9mIGRlZmF1bHQgbW9iaWxlIGhlYWRlciBmcm9tIHNlYXJjaCB0YWJsZSAqL1xuICAgIEBJbnB1dCgpXG4gICAgZGVmYXVsdE1vYmlsZUhlYWRlcnMgPSAyO1xuXG4gICAgLyoqIERpc3BsYXllZCBkYXRhIGZvciBzZWFyY2ggdGFibGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGRpc3BsYXllZERhdGE6IFRbXSA9IFtdO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiByb3cgd2FzIHNlbGVjdGVkLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW5hdGl2ZVxuICAgIHNlbGVjdCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKEluZmluaXRlU2Nyb2xsRGlyZWN0aXZlKSBpbmZpbml0ZVNjcm9sbFRhYmxlOiBJbmZpbml0ZVNjcm9sbERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuIGluZGV0ZXJtaW5hdGUgZmxhZyBmb3IgYHNlbGVjdCBhbGxgIGNoZWNrYm94ICovXG4gICAgX3NlbGVjdGVkQWxsOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gU2hvd24gaXRlbXMgY291bnQgaW4gbW9iaWxlIHZpZXcgKi9cbiAgICBfc2hvd25Gcm9tID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIFNob3duIGl0ZW1zIGNvdW50IGluIG1vYmlsZSB2aWV3ICovXG4gICAgX3Nob3duQ291bnQgPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gQ3VycmVudCBwYWdlIGluIGRlc2t0b3AgdmlldyAqL1xuICAgIF9jdXJyZW50UGFnZSA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiBIZWFkZXJzIGFuZCBib2R5IGZvciBzZWFyY2ggdGFibGUgKi9cbiAgICBfdGFibGVGaWx0ZXJzOiB7XG4gICAgICAgIG1haW46IFZoZEZpbHRlcltdO1xuICAgICAgICBzZWNvbmRhcnk6IFZoZEZpbHRlcltdO1xuICAgIH0gPSB7XG4gICAgICAgIG1haW46IFtdLFxuICAgICAgICBzZWNvbmRhcnk6IFtdXG4gICAgfTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGVkTWFwOiB7IFtrZXk6IHN0cmluZ106IGJvb2xlYW4gfSA9IHt9O1xuXG4gICAgLyoqIFNlbGVjdGlvbiB0eXBlIGdldHRlcnMgKi9cbiAgICBnZXQgaXNTaW5nbGVTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiA9PT0gJ3NpbmdsZSc7XG4gICAgfVxuICAgIC8qKiBTZWxlY3Rpb24gdHlwZSBnZXR0ZXJzICovXG4gICAgZ2V0IGlzT25jZVNlbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0aW9uID09PSAnb25jZSc7XG4gICAgfVxuICAgIC8qKiBTZWxlY3Rpb24gdHlwZSBnZXR0ZXJzICovXG4gICAgZ2V0IGlzTXVsdGlTZWxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlbGVjdGlvbiA9PT0gJ211bHRpJztcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgc2VsZWN0ZWRJdGVtczogVFtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2VtcHR5VGFibGVNZXNzYWdlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKHRydWUpLnRoZW4oKCkgPT4gdGhpcy5fY2hlY2tTY3JvbGxBbmRTaG93TW9yZSgpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAgKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICgnZmlsdGVycycgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5faW5pdGlhbGl6ZUZpbHRlcnMoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoJ2Rpc3BsYXllZERhdGEnIGluIGNoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hEaXNwbGF5ZWREYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCdzZWxlY3RlZCcgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZCB8fCBbXTtcbiAgICAgICAgICAgIHRoaXMuX3JlZnJlc2hTZWxlY3RlZE1hcCgpO1xuICAgICAgICAgICAgdGhpcy5fcmVmcmVzaFRyaXN0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBUcmFjayBmdW5jdGlvbiBmb3IgbWFpbiBkYXRhICovXG4gICAgX3RyYWNrQnlUYWJsZVJvd0ZuKF9pbmRleDogbnVtYmVyLCBpdGVtOiBUKTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtW3RoaXMudW5pcXVlS2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVHJhY2sgZnVuY3Rpb24gZm9yIGZpbHRlcnMgKi9cbiAgICBfdHJhY2tCeUZpbHRlckZuKF9pbmRleDogbnVtYmVyLCBpdGVtOiBWaGRGaWx0ZXIpOiBudW1iZXIgfCBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gaXRlbSAmJiBpdGVtLmtleSA/IGl0ZW0ua2V5IDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNob3cgbW9yZSBlbGVtZW50cyAqL1xuICAgIF9zaG93TW9yZUVsZW1lbnRzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5wYWdlU2l6ZSAmJiB0aGlzLl9zaG93bkNvdW50ICE9PSB0aGlzLmRpc3BsYXllZERhdGEubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93bkNvdW50ICs9IHRoaXMucGFnZVNpemU7XG4gICAgICAgICAgICB0aGlzLl9zaG93bkNvdW50ID0gTWF0aC5taW4odGhpcy5fc2hvd25Db3VudCwgdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93bkNvdW50ID0gdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZWZyZXNoIHBhZ2UgaW4gZGVza3RvcCB2aWV3ICovXG4gICAgX3VwZGF0ZVBhZ2UocGFnZU51bWJlciA9IDEpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGFnZVNpemUpIHtcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRQYWdlID0gcGFnZU51bWJlcjtcbiAgICAgICAgICAgIHRoaXMuX3Nob3duRnJvbSA9IChwYWdlTnVtYmVyIC0gMSkgKiB0aGlzLnBhZ2VTaXplO1xuICAgICAgICAgICAgdGhpcy5fc2hvd25Db3VudCA9IE1hdGgubWluKHRoaXMuX3Nob3duRnJvbSArIHRoaXMucGFnZVNpemUsIHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2hvd25Db3VudCA9IHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBNZXRob2QgdG9nZ2xlIHNlbGVjdGVkIHN0YXRlIGZvciBhbGwgaXRlbXMgICovXG4gICAgX3RvZ2dsZUFsbFJvd3MoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZEFsbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gW107XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLmRpc3BsYXllZERhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZWxlY3QuZW1pdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgICB0aGlzLl9yZWZyZXNoU2VsZWN0ZWRNYXAoKTtcbiAgICAgICAgdGhpcy5fcmVmcmVzaFRyaXN0YXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gTWV0aG9kIHRvZ2dsZSBzZWxlY3RlZCBzdGF0ZSBmb3Igb25lIGl0ZW1zICAqL1xuICAgIF90b2dnbGVTZWxlY3RSb3coaXRlbTogVCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc011bHRpU2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBpc1NlbGVjdGVkID0gdGhpcy5fc2VsZWN0ZWRNYXBbaXRlbVt0aGlzLnVuaXF1ZUtleV1dO1xuICAgICAgICAgICAgaWYgKGlzU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmlsdGVyKChzOiBUKSA9PiBzW3RoaXMudW5pcXVlS2V5XSAhPT0gaXRlbVt0aGlzLnVuaXF1ZUtleV0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwW2l0ZW1bdGhpcy51bmlxdWVLZXldXSA9ICF0aGlzLl9zZWxlY3RlZE1hcFtpdGVtW3RoaXMudW5pcXVlS2V5XV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jbGVhclNlbGVjdGVkSXRlbXMoKTtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFtpdGVtXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUcmlzdGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tTY3JvbGxBbmRTaG93TW9yZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubW9iaWxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5fc2hvd25Db3VudCAhPT0gdGhpcy5kaXNwbGF5ZWREYXRhLmxlbmd0aCAmJlxuICAgICAgICAgICAgdGhpcy5pbmZpbml0ZVNjcm9sbFRhYmxlPy5zaG91bGRUcmlnZ2VyQWN0aW9uKClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9zaG93TW9yZUVsZW1lbnRzKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGVja1Njcm9sbEFuZFNob3dNb3JlKCk7XG4gICAgICAgICAgICB9LCAxMDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9yZXNldFNob3duKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3Nob3dNb3JlRWxlbWVudHMoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NoZWNrU2Nyb2xsQW5kU2hvd01vcmUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIE1hbnVhbGx5IGNsZWFyIHNlbGVjdGVkIGl0ZW1zICovXG4gICAgcHJpdmF0ZSBfY2xlYXJTZWxlY3RlZEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZE1hcCA9IHt9O1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZWZyZXNoIGluZGV0ZXJtaW5hdGUgYXR0cmlidXRlIG9uIGBzZWxlY3QgYWxsYCBjaGVja2JveCAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2hUcmlzdGF0ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBPYmplY3QudmFsdWVzKHRoaXMuX3NlbGVjdGVkTWFwKS5maWx0ZXIoQm9vbGVhbikubGVuZ3RoO1xuICAgICAgICBpZiAoc2VsZWN0ZWQgPT09IDApIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gZmFsc2U7XG4gICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWQgPT09IHRoaXMuZGlzcGxheWVkRGF0YS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQWxsID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFNldCB1cCBmaWx0ZXJzICovXG4gICAgcHJpdmF0ZSBfaW5pdGlhbGl6ZUZpbHRlcnMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1vYmlsZSkge1xuICAgICAgICAgICAgbGV0IF9tb2JpbGVUYWJsZUhlYWRlcnMgPSB0aGlzLmZpbHRlcnMuZmlsdGVyKChmKSA9PiBmLm1haW4pLm1hcCgoZikgPT4gZi5rZXkpO1xuICAgICAgICAgICAgaWYgKCFfbW9iaWxlVGFibGVIZWFkZXJzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIF9tb2JpbGVUYWJsZUhlYWRlcnMgPSB0aGlzLmZpbHRlcnMuc2xpY2UoMCwgdGhpcy5kZWZhdWx0TW9iaWxlSGVhZGVycykubWFwKChmKSA9PiBmLmtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl90YWJsZUZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgbWFpbjogdGhpcy5maWx0ZXJzLmZpbHRlcigoZmlsdGVyKSA9PiBfbW9iaWxlVGFibGVIZWFkZXJzLnNvbWUoKGtleSkgPT4ga2V5ID09PSBmaWx0ZXIua2V5KSksXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiB0aGlzLmZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+ICFfbW9iaWxlVGFibGVIZWFkZXJzLnNvbWUoKGtleSkgPT4ga2V5ID09PSBmaWx0ZXIua2V5KSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl90YWJsZUZpbHRlcnMgPSB7XG4gICAgICAgICAgICAgICAgbWFpbjogdGhpcy5maWx0ZXJzLFxuICAgICAgICAgICAgICAgIHNlY29uZGFyeTogW11cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZWZyZXNoIGRpc3BsYXkgZGF0YSAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2hEaXNwbGF5ZWREYXRhKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZXNldFNob3duKCk7XG4gICAgICAgIHRoaXMuX3JlZnJlc2hUcmlzdGF0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFJlZnJlc2ggc2VsZWN0ZWQgbWFwIGZvciBkaXNwbGF5IGRhdGEgKi9cbiAgICBwcml2YXRlIF9yZWZyZXNoU2VsZWN0ZWRNYXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwID0ge307XG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLmRpc3BsYXllZERhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwW2l0ZW1bdGhpcy51bmlxdWVLZXldXSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgcyBvZiB0aGlzLnNlbGVjdGVkSXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkTWFwW3NbdGhpcy51bmlxdWVLZXldXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgPGg1IGZkLXRpdGxlIHJvbGU9XCJoZWFkaW5nXCIgYXJpYS1sZXZlbD1cIjVcIj5cbiAgICAgICAge3sgJ3BsYXRmb3JtVkhELnNlbGVjdFRhYkRpc3BsYXlDb3VudExhYmVsJyB8IGZkVHJhbnNsYXRlIDogeyBjb3VudDogZGlzcGxheWVkRGF0YS5sZW5ndGggfSB9fVxuICAgIDwvaDU+XG48L2Rpdj5cbjxkaXZcbiAgICBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19fdGFibGUtaG9sZGVyIHRhYmxlLWNvbnRlbnRcIlxuICAgIGZkLXNjcm9sbGJhclxuICAgIGZkSW5maW5pdGVTY3JvbGxcbiAgICAob25TY3JvbGxBY3Rpb24pPVwiX3Nob3dNb3JlRWxlbWVudHMoKVwiXG4gICAgW3Njcm9sbFBlcmNlbnRdPVwiODBcIlxuICAgIHJvbGU9XCJ0YWJsZVwiXG4+XG4gICAgPHRhYmxlXG4gICAgICAgIGZkLXRhYmxlXG4gICAgICAgIFtwb3BJbl09XCJtb2JpbGVcIlxuICAgICAgICBbbm9Cb3JkZXJYXT1cIm1vYmlsZVwiXG4gICAgICAgIFtub0JvcmRlclldPVwiZmFsc2VcIlxuICAgICAgICBbYXR0ci5hcmlhLWNvbGNvdW50XT1cIl90YWJsZUZpbHRlcnMubWFpbi5sZW5ndGhcIlxuICAgICAgICBbYXR0ci5hcmlhLXJvd2NvdW50XT1cImRpc3BsYXllZERhdGEubGVuZ3RoXCJcbiAgICAgICAgcm9sZT1cImdyaWRcIlxuICAgICAgICBhcmlhLW11bHRpc2VsZWN0YWJsZT1cInRydWVcIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwic2VsZWN0VGFiVGl0bGVJZCArICcgJyArIHNlbGVjdFRhYkNvdW50SWRcIlxuICAgID5cbiAgICAgICAgPGxhYmVsIFtpZF09XCJzZWxlY3RUYWJDb3VudElkXCIgZmQtZm9ybS1sYWJlbCBjbGFzcz1cImZkcC12YWx1ZS1oZWxwLWRpYWxvZ19faGlkZGVuX2xhYmVsXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICdwbGF0Zm9ybVZIRC5zZWxlY3RUYWJDb3VudEhpZGRlbkExMXlMYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgfCBmZFRyYW5zbGF0ZSA6IHsgcm93Q291bnQ6IGRpc3BsYXllZERhdGEubGVuZ3RoLCBjb2xDb3VudDogX3RhYmxlRmlsdGVycy5tYWluLmxlbmd0aCB9XG4gICAgICAgICAgICB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bGFiZWwgW2lkXT1cInNlbGVjdFRhYlRpdGxlSWRcIiBmZC1mb3JtLWxhYmVsIGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19oaWRkZW5fbGFiZWxcIj5cbiAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVZIRC5zZWxlY3RUYWJEaXNwbGF5Q291bnRMYWJlbCcgfCBmZFRyYW5zbGF0ZSA6IHsgY291bnQ6IGRpc3BsYXllZERhdGEubGVuZ3RoIH0gfX1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPHRoZWFkIGZkLXRhYmxlLWhlYWRlcj5cbiAgICAgICAgICAgIDx0ciBmZC10YWJsZS1yb3cgKm5nSWY9XCJkaXNwbGF5ZWREYXRhLmxlbmd0aCAmJiBfdGFibGVGaWx0ZXJzXCI+XG4gICAgICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGwgW2ZpdENvbnRlbnRdPVwibW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpc011bHRpU2VsZWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInVpZCArICctcm93LWFsbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyaXN0YXRlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyaXN0YXRlU2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJfc2VsZWN0ZWRBbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiX3RvZ2dsZUFsbFJvd3MoKVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZkLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgICAgICAgIGZkLXRhYmxlLWNlbGxcbiAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBfdGFibGVGaWx0ZXJzLm1haW47IHRyYWNrQnk6IF90cmFja0J5RmlsdGVyRm47IGxldCBjb2xpbmRleCA9IGluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jb2xpbmRleF09XCJjb2xpbmRleFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBmaWx0ZXIubGFiZWwgfX1cbiAgICAgICAgICAgICAgICA8L3RoPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90aGVhZD5cbiAgICAgICAgPHRib2R5IGZkLXRhYmxlLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwiXG4gICAgICAgICAgICAgICAgICAgIGxldCByb3cgb2YgZGlzcGxheWVkRGF0YSB8IHNsaWNlIDogX3Nob3duRnJvbSA6IF9zaG93bkNvdW50O1xuICAgICAgICAgICAgICAgICAgICB0cmFja0J5OiBfdHJhY2tCeVRhYmxlUm93Rm47XG4gICAgICAgICAgICAgICAgICAgIGluZGV4IGFzIGlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0clxuICAgICAgICAgICAgICAgICAgICBmZC10YWJsZS1yb3dcbiAgICAgICAgICAgICAgICAgICAgW2hvdmVyYWJsZV09XCIhbW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW21haW5dPVwibW9iaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJfc2VsZWN0ZWRNYXBbcm93W3VuaXF1ZUtleV1dXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjdGl2YWJsZV09XCIhaXNNdWx0aVNlbGVjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCIhaXNNdWx0aVNlbGVjdGlvbiAmJiBfdG9nZ2xlU2VsZWN0Um93KHJvdylcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgW2ZpdENvbnRlbnRdPVwibW9iaWxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImlzTXVsdGlTZWxlY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cInVpZCArICctcm93LScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJfc2VsZWN0ZWRNYXBbcm93W3VuaXF1ZUtleV1dXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIl90b2dnbGVTZWxlY3RSb3cocm93KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9mZC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgICAgPHRkXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC10YWJsZS1jZWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsdGVyIG9mIF90YWJsZUZpbHRlcnMubWFpbjsgbGV0IHJvd0luZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1yb3dpbmRleF09XCJyb3dJbmRleFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IHJvd1tmaWx0ZXIua2V5XSB8fCAnJyB9fVxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG5cbiAgICAgICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICAgICAgZmQtdGFibGUtcm93XG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwibW9iaWxlICYmIF90YWJsZUZpbHRlcnMuc2Vjb25kYXJ5Lmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgICAgIFtzZWNvbmRhcnldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiX3NlbGVjdGVkTWFwW3Jvd1t1bmlxdWVLZXldXVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbD48L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjEwMCVcIiBmZC10YWJsZS1jZWxsIFtmaXRDb250ZW50XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIGZkLXRhYmxlLXRleHQgKm5nRm9yPVwibGV0IGZpbHRlciBvZiBfdGFibGVGaWx0ZXJzLnNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbD57eyBmaWx0ZXIubGFiZWwgfX06PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyByb3dbZmlsdGVyLmtleV0gfHwgJycgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8dHJcbiAgICAgICAgICAgICAgICBmZC10YWJsZS1yb3dcbiAgICAgICAgICAgICAgICAqbmdJZj1cImRpc3BsYXllZERhdGEubGVuZ3RoICYmIG1vYmlsZSAmJiBfc2hvd25Db3VudCAmJiBfc2hvd25Db3VudCAhPT0gZGlzcGxheWVkRGF0YS5sZW5ndGhcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDx0ZCBjb2xzcGFuPVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJoZWFkZXItd2l0aC1zdWJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLW1pZGRsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIidwbGF0Zm9ybVZIRC5zZWxlY3RUYWJNb3JlQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9zaG93TW9yZUVsZW1lbnRzKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nICYmICFkaXNwbGF5ZWREYXRhLmxlbmd0aFwiPlxuICAgICAgICAgICAgICAgIDx0ciBmZC10YWJsZS1yb3cgKmZka1JlcGVhdD1cIjNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGZkLXRhYmxlLWNlbGwgKmZka1JlcGVhdD1cIjNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1za2VsZXRvbiBbc3R5bGUubWFyZ2luXT1cIidhdXRvIDAnXCIgdHlwZT1cInRleHRcIiB0ZXh0TGluZXM9XCIxXCIgd2lkdGg9XCI2MCVcIj48L2ZkLXNrZWxldG9uPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDx0ciBmZC10YWJsZS1yb3cgKm5nSWY9XCIhbG9hZGluZyAmJiAhZGlzcGxheWVkRGF0YS5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICA8dGQgZmQtdGFibGUtY2VsbCBjb2xzcGFuPVwiMTAwJVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXZhbHVlLWhlbHAtZGlhbG9nX19lbXB0eS1tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAncGxhdGZvcm1WSEQuc2VhcmNoVGFibGVFbXB0eU1lc3NhZ2UnIHwgZmRUcmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbjwvZGl2PlxuIl19
@@ -45,7 +45,7 @@ export class ManageVariantsDialogComponent {
45
45
  this.dialog.close(this._variants);
46
46
  }
47
47
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ManageVariantsDialogComponent, deps: [{ token: i1.DialogRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
48
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ManageVariantsDialogComponent, selector: "fdp-manage-variants-dialog", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-1\" fd-title>\n {{ 'platformVariantManagement.manageViews' | fdTranslate }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table [dataSource]=\"_source\" [noVerticalBorders]=\"true\" class=\"fd-variant-management__table\">\n <fdp-column name=\"favourite\" key=\"favourite\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-icon\n class=\"fd-variant-management__favourite-state\"\n [class.fd-variant-management__favourite-state--active]=\"item.favourite\"\n [ariaLabel]=\"'platformVariantManagement.markAsFavourite' | fdTranslate\"\n tabindex=\"0\"\n (click)=\"_markAsFavourite(item)\"\n glyph=\"favorite\"\n ></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.view' | fdTranslate\" name=\"name\" key=\"name\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-input *ngIf=\"!item.readonly\" [(ngModel)]=\"item.name\"></fdp-input>\n <ng-container *ngIf=\"item.readonly\">{{ item.name }}</ng-container>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.sharing' | fdTranslate\" name=\"access\" key=\"access\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n {{\n (item.access === 'public'\n ? 'platformVariantManagement.access.public'\n : 'platformVariantManagement.access.private'\n ) | fdTranslate\n }}\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.default' | fdTranslate\"\n name=\"isDefault\"\n key=\"isDefault\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-radio-button\n [value]=\"true\"\n [id]=\"'radio-' + item.id\"\n name=\"is-variant-default\"\n [(ngModel)]=\"item.isDefault\"\n ></fd-radio-button>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.applyAutomatically' | fdTranslate\"\n name=\"applyAutomatically\"\n key=\"applyAutomatically\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-checkbox\n class=\"fd-variant-management__centered-checkbox\"\n [standalone]=\"true\"\n name=\"applyAutomatically\"\n [(ngModel)]=\"item.applyAutomatically\"\n ></fdp-checkbox>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.createdBy' | fdTranslate\"\n name=\"createdBy\"\n key=\"createdBy\"\n ></fdp-column>\n <fdp-column name=\"actions\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-button\n *ngIf=\"!item.readonly\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVariantManagement.removeVariant' | fdTranslate\"\n (click)=\"_removeVariant(item)\"\n ></fdp-button>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"_saveVariants()\"\n ariaLabel=\"Interested Emphasized\"\n ></fd-button-bar>\n\n <fd-button-bar\n [label]=\"'platformVariantManagement.cancel' | fdTranslate\"\n (click)=\"dialog.dismiss('Cancel')\"\n [ariaLabel]=\"'platformVariantManagement.cancel' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i5.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.InputComponent, selector: "fdp-input", inputs: ["type", "required", "value"], outputs: ["focusChange"] }, { kind: "component", type: i7.CheckboxComponent, selector: "fdp-checkbox", inputs: ["title", "label", "tristate", "checked", "tristateSelectable", "values", "standalone", "displayOnly"], outputs: ["checkedChange"] }, { kind: "component", type: i8.TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed"] }, { kind: "component", type: i8.TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: i9.TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "directive", type: i9.FdpTableCell, selector: "fdp-table-cell" }, { kind: "directive", type: i9.FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "component", type: i10.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i11.RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "pipe", type: i12.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.0", type: ManageVariantsDialogComponent, selector: "fdp-manage-variants-dialog", ngImport: i0, template: "<fd-dialog>\n <fd-dialog-header>\n <h1 id=\"fd-dialog-header-1\" fd-title>\n {{ 'platformVariantManagement.manageViews' | fdTranslate }}\n </h1>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table [dataSource]=\"_source\" [noVerticalBorders]=\"true\" class=\"fd-variant-management__table\">\n <fdp-column name=\"favourite\" key=\"favourite\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-icon\n class=\"fd-variant-management__favourite-state\"\n [class.fd-variant-management__favourite-state--active]=\"item.favourite\"\n [ariaLabel]=\"'platformVariantManagement.markAsFavourite' | fdTranslate\"\n tabindex=\"0\"\n (click)=\"_markAsFavourite(item)\"\n glyph=\"favorite\"\n ></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.view' | fdTranslate\" name=\"name\" key=\"name\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-input *ngIf=\"!item.readonly\" [(ngModel)]=\"item.name\"></fdp-input>\n <ng-container *ngIf=\"item.readonly\">{{ item.name }}</ng-container>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column [label]=\"'platformVariantManagement.sharing' | fdTranslate\" name=\"access\" key=\"access\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n {{\n (item.access === 'public'\n ? 'platformVariantManagement.access.public'\n : 'platformVariantManagement.access.private'\n ) | fdTranslate\n }}\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.default' | fdTranslate\"\n name=\"isDefault\"\n key=\"isDefault\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fd-radio-button\n [value]=\"true\"\n [id]=\"'radio-' + item.id\"\n name=\"is-variant-default\"\n [(ngModel)]=\"item.isDefault\"\n ></fd-radio-button>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.applyAutomatically' | fdTranslate\"\n name=\"applyAutomatically\"\n key=\"applyAutomatically\"\n align=\"center\"\n >\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-checkbox\n class=\"fd-variant-management__centered-checkbox\"\n [standalone]=\"true\"\n name=\"applyAutomatically\"\n [(ngModel)]=\"item.applyAutomatically\"\n ></fdp-checkbox>\n </fdp-table-cell>\n </fdp-column>\n <fdp-column\n [label]=\"'platformVariantManagement.createdBy' | fdTranslate\"\n name=\"createdBy\"\n key=\"createdBy\"\n ></fdp-column>\n <fdp-column name=\"actions\">\n <fdp-table-cell *fdpCellDef=\"let item; as: _variantModel\">\n <fdp-button\n *ngIf=\"!item.readonly\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformVariantManagement.removeVariant' | fdTranslate\"\n (click)=\"_removeVariant(item)\"\n ></fdp-button>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n fdType=\"emphasized\"\n [label]=\"'platformVariantManagement.save' | fdTranslate\"\n (click)=\"_saveVariants()\"\n ariaLabel=\"Interested Emphasized\"\n ></fd-button-bar>\n\n <fd-button-bar\n [label]=\"'platformVariantManagement.cancel' | fdTranslate\"\n (click)=\"dialog.dismiss('Cancel')\"\n [ariaLabel]=\"'platformVariantManagement.cancel' | fdTranslate\"\n ></fd-button-bar>\n </fd-dialog-footer>\n</fd-dialog>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body" }, { kind: "component", type: i1.DialogFooterComponent, selector: "fd-dialog-footer" }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabel", "ariaLabelledby", "id"] }, { kind: "component", type: i4.TitleComponent, selector: "h1[fd-title], h2[fd-title], h3[fd-title], h4[fd-title], h5[fd-title], h6[fd-title]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i5.ButtonComponent, selector: "fdp-button", inputs: ["glyphPosition", "label", "glyph", "buttonType", "toggled", "title", "ariaSelected", "ariaDisabled", "ariaExpanded", "ariaControlsId", "ariaPressed", "name", "type", "value"], outputs: ["buttonClicked"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.InputComponent, selector: "fdp-input", inputs: ["type", "required", "value"], outputs: ["focusChange"] }, { kind: "component", type: i7.CheckboxComponent, selector: "fdp-checkbox", inputs: ["title", "label", "tristate", "checked", "tristateSelectable", "values", "standalone", "displayOnly"], outputs: ["checkedChange"] }, { kind: "component", type: i8.TableComponent, selector: "fdp-table", inputs: ["name", "id", "enableDragResize", "fixed", "freezeColumnsTo", "freezeEndColumnsTo", "pageScrolling", "pageSize", "pageScrollingThreshold", "bodyHeight", "emptyTableMessage", "noVisibleColumnsMessage", "noHorizontalBorders", "noVerticalBorders", "noBorders", "noBodyBorders", "noOuterBorders", "noBorderX", "noBorderY", "relationKey", "expandedStateKey", "hasChildrenKey", "rowNavigatable", "highlightNavigatedRow", "rowsActivable", "selectedKey", "selectableKey", "trackBy", "rowComparator", "rowsClass", "editableRowSkeleton", "expandOnInit", "rowHeight", "loadPagesBefore", "selectionMode", "enableTristateMode", "semanticHighlighting", "forceCheckedAllState", "ariaLabelledBy", "loading"], outputs: ["presetChanged", "rowSelectionChange", "sortChange", "filterChange", "groupChange", "columnsChange", "pageChange", "columnFreeze", "rowToggleOpenState", "rowActivate", "rowNavigate", "emptyRowAdded", "save", "cancel", "tableScrolled", "tableRowsSet", "allRowsExpanded", "allRowsCollapsed"] }, { kind: "component", type: i8.TableColumnComponent, selector: "fdp-column", inputs: ["name", "key", "label", "align", "sortable", "filterable", "visible", "dataType", "groupable", "freezable", "endFreezable", "width", "noWrap", "applyText", "role"] }, { kind: "directive", type: i9.TableInitialStateDirective, selector: "[fdpTableInitialState], fdp-table", inputs: ["initialVisibleColumns", "initialSortBy", "initialFilterBy", "initialGroupBy", "initialPage", "state"] }, { kind: "directive", type: i9.FdpTableCell, selector: "fdp-table-cell" }, { kind: "directive", type: i9.FdpCellDef, selector: "[fdpCellDef]", inputs: ["fdpCellDefAs"] }, { kind: "component", type: i10.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "class", "ariaLabel"] }, { kind: "component", type: i11.RadioButtonComponent, selector: "fd-radio-button", inputs: ["ariaLabel", "ariaLabelledBy", "ariaDescribedBy", "title", "tabIndex", "state", "disabled", "selectedValue", "name", "id", "value", "required", "standalone"] }, { kind: "pipe", type: i12.FdTranslatePipe, name: "fdTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
49
49
  }
50
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImport: i0, type: ManageVariantsDialogComponent, decorators: [{
51
51
  type: Component,