@pepperi-addons/ngx-lib 0.4.2-beta.98 → 0.4.2-scroll.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/chips/chips.component.d.ts +1 -3
  2. package/core/common/pipes/common-pipes.d.ts +3 -0
  3. package/core/customization/customization.model.d.ts +1 -1
  4. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  5. package/esm2020/chips/chips.component.mjs +8 -11
  6. package/esm2020/color/color.component.mjs +3 -3
  7. package/esm2020/core/common/pipes/common-pipes.mjs +14 -4
  8. package/esm2020/core/customization/customization.model.mjs +7 -1
  9. package/esm2020/core/customization/customization.service.mjs +2 -1
  10. package/esm2020/core/http/services/loader.service.mjs +3 -3
  11. package/esm2020/draggable-items/draggable-items.component.mjs +3 -3
  12. package/esm2020/form/field-generator.component.mjs +3 -3
  13. package/esm2020/form/form.component.mjs +3 -3
  14. package/esm2020/form/internal-carusel.component.mjs +10 -6
  15. package/esm2020/form/internal-field-generator.component.mjs +3 -3
  16. package/esm2020/form/internal-form.component.mjs +3 -3
  17. package/esm2020/form/internal-menu.component.mjs +4 -6
  18. package/esm2020/form/internal-page.component.mjs +3 -4
  19. package/esm2020/image/image.component.mjs +3 -3
  20. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -3
  21. package/esm2020/link/link.component.mjs +9 -3
  22. package/esm2020/list/list-actions.component.mjs +1 -1
  23. package/esm2020/list/list-chooser.component.mjs +1 -1
  24. package/esm2020/list/list-sorting.component.mjs +1 -1
  25. package/esm2020/list/list-views.component.mjs +1 -1
  26. package/esm2020/list/list.component.mjs +22 -10
  27. package/esm2020/list/list.model.mjs +1 -1
  28. package/esm2020/menu/menu-item.component.mjs +3 -3
  29. package/esm2020/menu/menu.component.mjs +6 -3
  30. package/esm2020/menu/menu.model.mjs +2 -1
  31. package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +1 -1
  32. package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +25 -9
  33. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +58 -26
  34. package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
  35. package/esm2020/quantity-selector/quantity-selector.component.mjs +7 -3
  36. package/esm2020/query-builder/common/model/legacy.mjs +1 -1
  37. package/esm2020/query-builder/common/model/operator.mjs +72 -62
  38. package/esm2020/query-builder/common/services/output-query.service.mjs +5 -3
  39. package/esm2020/query-builder/common/services/query-structure.service.mjs +24 -1
  40. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +3 -3
  41. package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
  42. package/esm2020/query-builder/query-builder.module.mjs +14 -3
  43. package/esm2020/query-builder/query-builder.service.mjs +2 -2
  44. package/esm2020/remote-loader/remote-loader.service.mjs +16 -16
  45. package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +10 -3
  46. package/esm2020/select/select.component.mjs +3 -3
  47. package/esm2020/select-panel/select-panel.component.mjs +3 -5
  48. package/esm2020/signature/signature-dialog.component.mjs +2 -1
  49. package/esm2020/signature/signature.component.mjs +4 -4
  50. package/esm2020/skeleton-loader/public-api.mjs +2 -2
  51. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +3 -3
  52. package/esm2020/smart-filters/common/model/operator.mjs +11 -4
  53. package/esm2020/smart-filters/common/model/type.mjs +1 -1
  54. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
  55. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +3 -3
  56. package/esm2020/textbox/textbox.component.mjs +26 -6
  57. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +2 -2
  58. package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  59. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +7 -10
  60. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  61. package/fesm2015/pepperi-addons-ngx-lib-color.mjs +2 -2
  62. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  63. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +2 -2
  64. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  65. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +22 -21
  66. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  67. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +2 -2
  68. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  69. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -2
  70. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  71. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +8 -2
  72. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  73. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +25 -13
  74. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  75. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +8 -4
  76. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  77. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  78. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  79. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +7 -2
  80. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  81. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +119 -70
  82. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  83. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +16 -16
  84. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  85. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +9 -2
  86. package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  87. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +2 -4
  88. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  89. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +2 -2
  90. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  91. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +5 -3
  92. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  93. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +3 -3
  94. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  95. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +14 -7
  96. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  97. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +26 -5
  98. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  99. package/fesm2015/pepperi-addons-ngx-lib.mjs +547 -532
  100. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  101. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +2 -2
  102. package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
  103. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +7 -10
  104. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  105. package/fesm2020/pepperi-addons-ngx-lib-color.mjs +2 -2
  106. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  107. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +2 -2
  108. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  109. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +22 -21
  110. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  111. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +2 -2
  112. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  113. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -2
  114. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  115. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +8 -2
  116. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  117. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +25 -13
  118. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  119. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +8 -4
  120. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  121. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
  122. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  123. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +6 -2
  124. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  125. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +115 -69
  126. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  127. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +15 -15
  128. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  129. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +9 -2
  130. package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
  131. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +2 -4
  132. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  133. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +2 -2
  134. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  135. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +4 -3
  136. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  137. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +3 -3
  138. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
  139. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +14 -7
  140. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  141. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +25 -5
  142. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  143. package/fesm2020/pepperi-addons-ngx-lib.mjs +544 -529
  144. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  145. package/form/internal-carusel.component.d.ts +1 -0
  146. package/form/internal-menu.component.d.ts +1 -2
  147. package/link/link.component.d.ts +3 -1
  148. package/list/list.component.d.ts +1 -1
  149. package/list/list.model.d.ts +1 -2
  150. package/menu/menu.component.d.ts +2 -1
  151. package/menu/menu.model.d.ts +1 -0
  152. package/package.json +1 -1
  153. package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +3 -3
  154. package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +5 -4
  155. package/profile-data-views-list/profile-data-views-list.component.d.ts +13 -10
  156. package/profile-data-views-list/profile-data-views-list.model.d.ts +8 -0
  157. package/query-builder/common/model/legacy.d.ts +2 -0
  158. package/query-builder/common/model/operator.d.ts +11 -1
  159. package/query-builder/common/services/query-structure.service.d.ts +1 -0
  160. package/query-builder/query-builder.module.d.ts +7 -3
  161. package/remote-loader/remote-loader.service.d.ts +1 -1
  162. package/rich-html-textarea/rich-html-textarea.component.d.ts +3 -1
  163. package/rich-html-textarea/rich-html-textarea.component.theme.scss +4 -2
  164. package/select-panel/select-panel.component.d.ts +1 -2
  165. package/signature/signature-dialog.component.d.ts +1 -1
  166. package/skeleton-loader/skeleton-loader.component.d.ts +3 -3
  167. package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -0
  168. package/smart-filters/common/model/operator.d.ts +1 -0
  169. package/smart-filters/common/model/type.d.ts +1 -1
  170. package/smart-filters/date-filter/date-filter.component.d.ts +1 -0
  171. package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +1 -0
  172. package/smart-filters/number-filter/number-filter.component.d.ts +1 -0
  173. package/smart-filters/text-filter/text-filter.component.d.ts +1 -0
  174. package/src/assets/i18n/de.ngx-lib.json +4 -1
  175. package/src/assets/i18n/en.ngx-lib.json +7 -1
  176. package/src/core/style/abstracts/mixins.scss +73 -11
  177. package/src/core/style/abstracts/variables.scss +1 -1
  178. package/src/core/style/base/base.scss +5 -3
  179. package/src/core/style/base/typography.scss +2 -1
  180. package/src/core/style/components/button.scss +11 -0
  181. package/src/core/style/components/general.scss +2 -4
  182. package/textbox/textbox.component.d.ts +2 -0
  183. package/theming.scss +5 -1
  184. package/src/assets/images/sail-away.jpg +0 -0
  185. package/src/core/style/abstracts/AbstractsIntro.stories.mdx +0 -7
@@ -1,41 +1,50 @@
1
1
  import { PepSmartFilterOperators, PepSmartFilterAdditionalOperators, PepSmartFilterVariableOperators } from '@pepperi-addons/ngx-lib/smart-filters';
2
2
  const Equals = {
3
3
  legacy: 'IsEqual',
4
+ valueType: 'Static',
4
5
  smartFilter: PepSmartFilterOperators.Equals,
5
6
  type: ['boolean', 'int', 'text', 'real']
6
7
  };
7
8
  const EqualsVariable = {
8
- legacy: 'IsEqualVariable',
9
+ legacy: 'IsEqual',
10
+ valueType: 'Dynamic',
9
11
  smartFilter: PepSmartFilterVariableOperators.EqualsToVariable,
10
- type: ['boolean', 'int', 'text', 'multi-select']
12
+ type: ['boolean', 'int', 'text'],
13
+ fieldType: ['String', 'Bool', 'Integer']
11
14
  };
12
15
  const NotEqual = {
13
16
  legacy: 'IsNotEqual',
17
+ valueType: 'Static',
14
18
  smartFilter: PepSmartFilterOperators.NotEqual,
15
19
  type: null
16
20
  };
17
21
  const NotEqualsVariable = {
18
- legacy: 'IsNotEqualVariable',
22
+ legacy: 'IsNotEqual',
23
+ valueType: 'Dynamic',
19
24
  smartFilter: PepSmartFilterVariableOperators.NotEqualsToVariable,
20
- type: ['boolean', 'multi-select']
25
+ type: ['boolean']
21
26
  };
22
27
  const LessThan = {
23
28
  legacy: '<',
29
+ valueType: 'Static',
24
30
  smartFilter: PepSmartFilterOperators.LessThan,
25
31
  type: null
26
32
  };
27
- const LessThanVarible = {
28
- legacy: 'LessThanVarible',
33
+ const LessThanVariable = {
34
+ legacy: '<',
35
+ valueType: 'Dynamic',
29
36
  smartFilter: PepSmartFilterVariableOperators.LessThanVariable,
30
37
  type: null
31
38
  };
32
39
  const GreaterThan = {
33
40
  legacy: '>',
41
+ valueType: 'Static',
34
42
  smartFilter: PepSmartFilterOperators.GreaterThan,
35
43
  type: null
36
44
  };
37
- const GreaterThanVarible = {
38
- legacy: 'GreaterThanVarible',
45
+ const GreaterThanVariable = {
46
+ legacy: '>',
47
+ valueType: 'Dynamic',
39
48
  smartFilter: PepSmartFilterVariableOperators.GreaterThanVariable,
40
49
  type: null
41
50
  };
@@ -64,159 +73,142 @@ const LessThanOrEquals: IPepQueryBuilderOperator = {
64
73
  }; */
65
74
  const NumberRange = {
66
75
  legacy: 'Between',
76
+ valueType: 'Static',
67
77
  smartFilter: PepSmartFilterOperators.NumberRange,
68
78
  type: ['int']
69
79
  };
70
80
  const Contains = {
71
81
  legacy: 'Contains',
82
+ valueType: 'Static',
72
83
  smartFilter: PepSmartFilterOperators.Contains,
73
84
  type: null
74
85
  };
75
86
  const BeginsWith = {
76
- legacy: 'BeginsWith',
87
+ legacy: 'StartWith',
88
+ valueType: 'Static',
77
89
  smartFilter: PepSmartFilterOperators.BeginsWith,
78
90
  type: null
79
91
  };
80
92
  const EndsWith = {
81
- legacy: 'EndsWith',
93
+ legacy: 'EndWith',
94
+ valueType: 'Static',
82
95
  smartFilter: PepSmartFilterOperators.EndsWith,
83
96
  type: null
84
97
  };
85
- /*
86
- const BeginsWith: IPepQueryBuilderOperator = {
87
- legacy: {
88
- operator: 'BeginsWith',
89
- type: 'String'
90
- },
91
- smartFilter: {
92
- item: PepSmartFilterOperators.BeginsWith,
93
- type: 'text'
94
- }
95
- };
96
-
97
- const EndsWith: IPepQueryBuilderOperator = {
98
- legacy: {
99
- operator: 'EndsWith',
100
- type: 'String'
101
- },
102
- smartFilter: {
103
- item: PepSmartFilterOperators.EndsWith,
104
- type: 'text'
105
- }
106
- };
107
-
108
- const Before: IPepQueryBuilderOperator = {
109
- legacy: {
110
- operator: 'Before',
111
- type: 'Date'
112
- },
113
- smartFilter: {
114
- item: PepSmartFilterOperators.Before,
115
- type: 'date'
116
- }
117
- };
118
-
119
- const After: IPepQueryBuilderOperator = {
120
- legacy: {
121
- operator: 'After',
122
- type: 'Date'
123
- },
124
- smartFilter: {
125
- item: PepSmartFilterOperators.After,
126
- type: 'date'
127
- }
128
- }; */
129
98
  const InTheLast = {
130
99
  legacy: 'InTheLast',
100
+ valueType: 'Static',
131
101
  smartFilter: PepSmartFilterOperators.InTheLast,
132
102
  type: null
133
103
  };
134
104
  const InTheLastCalendar = {
135
105
  legacy: 'InTheLastCalendar',
106
+ valueType: 'Static',
136
107
  smartFilter: PepSmartFilterAdditionalOperators.InTheLastCalendar,
137
108
  type: null
138
109
  };
139
110
  /*
140
111
  const InTheLastVariable: IPepQueryBuilderOperator = {
141
- legacy: 'InTheLastVariable',
112
+ legacy: 'InTheLast',
113
+ valueType: 'Dynamic',
142
114
  smartFilter: PepSmartFilterVariableOperators.InTheLastVariable,
143
115
  type: null
144
116
  } */
145
117
  const NotInTheLast = {
146
118
  legacy: 'NotInTheLast',
119
+ valueType: 'Static',
147
120
  smartFilter: PepSmartFilterOperators.NotInTheLast,
148
121
  type: null
149
122
  };
150
123
  const NotInTheLastCalendar = {
151
124
  legacy: 'NotInTheLastCalendar',
125
+ valueType: 'Static',
152
126
  smartFilter: PepSmartFilterAdditionalOperators.NotInTheLastCalendar,
153
127
  type: null
154
128
  };
155
129
  const Today = {
156
130
  legacy: 'Today',
131
+ valueType: 'Static',
157
132
  smartFilter: PepSmartFilterOperators.Today,
158
133
  type: null
159
134
  };
160
135
  const ThisWeek = {
161
136
  legacy: 'ThisWeek',
137
+ valueType: 'Static',
162
138
  smartFilter: PepSmartFilterOperators.ThisWeek,
163
139
  type: null
164
140
  };
165
141
  const ThisMonth = {
166
142
  legacy: 'ThisMonth',
143
+ valueType: 'Static',
167
144
  smartFilter: PepSmartFilterOperators.ThisMonth,
168
145
  type: null
169
146
  };
170
147
  const DateRange = {
171
148
  legacy: 'Between',
149
+ valueType: 'Static',
172
150
  smartFilter: PepSmartFilterOperators.DateRange,
173
151
  type: ['date-time']
174
152
  };
175
153
  const dateRangeVariable = {
176
- legacy: 'BetweenVariable',
154
+ legacy: 'Between',
155
+ valueType: 'Dynamic',
177
156
  smartFilter: PepSmartFilterVariableOperators.DateRangeVariable,
178
157
  type: ['date-time']
179
158
  };
180
159
  const DueIn = {
181
160
  legacy: 'DueIn',
161
+ valueType: 'Static',
182
162
  smartFilter: PepSmartFilterOperators.DueIn,
183
163
  type: null
184
164
  };
185
165
  const NotDueIn = {
186
166
  legacy: 'NotDueIn',
167
+ valueType: 'Static',
187
168
  smartFilter: PepSmartFilterOperators.NotDueIn,
188
169
  type: null
189
170
  };
190
171
  const On = {
191
172
  legacy: 'On',
173
+ valueType: 'Static',
192
174
  smartFilter: PepSmartFilterOperators.On,
193
175
  type: null
194
176
  };
195
177
  const IsEmpty = {
196
178
  legacy: 'IsEmpty',
179
+ valueType: 'Static',
197
180
  smartFilter: PepSmartFilterOperators.IsEmpty,
198
181
  type: null
199
182
  };
200
183
  const IsNotEmpty = {
201
184
  legacy: 'IsNotEmpty',
185
+ valueType: 'Static',
202
186
  smartFilter: PepSmartFilterOperators.IsNotEmpty,
203
187
  type: null
204
188
  };
205
189
  const In = {
206
190
  legacy: 'IsEqual',
191
+ valueType: 'Static',
207
192
  smartFilter: PepSmartFilterOperators.In,
208
193
  type: ['multi-select']
209
194
  };
195
+ const InVariable = {
196
+ legacy: 'IsEqual',
197
+ valueType: 'Dynamic',
198
+ smartFilter: PepSmartFilterVariableOperators.InVariable,
199
+ type: ['multi-select', 'text'],
200
+ fieldType: ['MultipleStringValues']
201
+ };
210
202
  const PepQueryBuilderOperators = [
211
203
  Equals,
212
204
  EqualsVariable,
213
205
  NotEqual,
214
206
  NotEqualsVariable,
215
207
  LessThan,
216
- LessThanVarible,
208
+ LessThanVariable,
217
209
  // LessThanOrEquals,
218
210
  GreaterThan,
219
- GreaterThanVarible,
211
+ GreaterThanVariable,
220
212
  // GreaterThanOrEquals,
221
213
  NumberRange,
222
214
  Contains,
@@ -239,7 +231,8 @@ const PepQueryBuilderOperators = [
239
231
  On,
240
232
  IsEmpty,
241
233
  IsNotEmpty,
242
- In
234
+ In,
235
+ InVariable
243
236
  ];
244
237
  /**
245
238
  * gets a smart filter operator item
@@ -247,9 +240,15 @@ const PepQueryBuilderOperators = [
247
240
  * @param type smart filter's type
248
241
  * @returns smart filter operator item
249
242
  */
250
- export function getSmartFilterOperator(operator, type) {
243
+ export function getSmartFilterOperator(operator, type, valueType, fieldType = null) {
251
244
  const smartFilterOperator = PepQueryBuilderOperators.find(item => item.legacy === operator &&
252
- (item.type === null || item.type.includes(type)));
245
+ item.valueType === valueType &&
246
+ (item.type === null || item.type.includes(type)) &&
247
+ (fieldType == null || item.fieldType === undefined || item.fieldType?.includes(fieldType)));
248
+ /*
249
+ FieldType: (current[key].smart.operator.id === 'inv' &&
250
+ current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,
251
+ */
253
252
  return smartFilterOperator ? smartFilterOperator.smartFilter : null;
254
253
  }
255
254
  /**
@@ -263,4 +262,15 @@ export function getLegacyOperator(operator, type) {
263
262
  (item.type === null || item.type.includes(type)));
264
263
  return legacyOperator ? legacyOperator.legacy : null;
265
264
  }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL21vZGVsL29wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUVsQyxNQUFNLHVDQUF1QyxDQUFDO0FBUy9DLE1BQU0sTUFBTSxHQUE2QjtJQUNyQyxNQUFNLEVBQUUsU0FBUztJQUNqQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtJQUMzQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUE2QjtJQUM3QyxNQUFNLEVBQUUsaUJBQWlCO0lBQ3pCLFdBQVcsRUFBRSwrQkFBK0IsQ0FBQyxnQkFBZ0I7SUFDN0QsSUFBSSxFQUFFLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDO0NBQ25ELENBQUM7QUFFRixNQUFNLFFBQVEsR0FBNkI7SUFDdkMsTUFBTSxFQUFFLFlBQVk7SUFDcEIsV0FBVyxFQUFFLHVCQUF1QixDQUFDLFFBQVE7SUFDN0MsSUFBSSxFQUFFLElBQUk7Q0FDYixDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBNkI7SUFDaEQsTUFBTSxFQUFFLG9CQUFvQjtJQUM1QixXQUFXLEVBQUUsK0JBQStCLENBQUMsbUJBQW1CO0lBQ2hFLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUM7Q0FDcEMsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE2QjtJQUN2QyxNQUFNLEVBQUUsR0FBRztJQUNYLFdBQVcsRUFBRSx1QkFBdUIsQ0FBQyxRQUFRO0lBQzdDLElBQUksRUFBRSxJQUFJO0NBQ2IsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUE2QjtJQUM5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QWlCO0lBQ2pCLFlBQVk7SUFDWixvQkFBb0I7SUFDcEIsS0FBSztJQUNMLFFBQVE7SUFDUixTQUFTO0lBQ1QsU0FBUztJQUNULGlCQUFpQjtJQUNqQixLQUFLO0lBQ0wsUUFBUTtJQUNSLEVBQUU7SUFDRixPQUFPO0lBQ1AsVUFBVTtJQUNWLEVBQUU7Q0FDTCxDQUFBO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsUUFBZ0IsRUFBRSxJQUF3QjtJQUM3RSxNQUFNLG1CQUFtQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUM3RCxJQUFJLENBQUMsTUFBTSxLQUFLLFFBQVE7UUFDeEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUNuRCxDQUFDO0lBQ0YsT0FBTyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDeEUsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLFFBQWlDLEVBQUUsSUFBd0I7SUFDekYsTUFBTSxjQUFjLEdBQUcsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ3hELElBQUksQ0FBQyxXQUFXLEtBQUssUUFBUTtRQUM3QixDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ25ELENBQUM7SUFDRixPQUFPLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJUeXBlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yIHtcbiAgICBsZWdhY3k6IHN0cmluZywgLy9sZWdhY3kgT3BlcmF0b3IgICAgXG4gICAgc21hcnRGaWx0ZXI6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yLCAvL3NtYXJ0IGZpbHRlciBvcGVyYXRvciAgICBcbiAgICB0eXBlOiBQZXBTbWFydEZpbHRlclR5cGVbXSB8IG51bGwgLy9zbWFydCBmaWx0ZXIgdHlwZVxufVxuXG5jb25zdCBFcXVhbHM6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRXF1YWxzLFxuICAgIHR5cGU6IFsnYm9vbGVhbicsICdpbnQnLCAndGV4dCcsICdyZWFsJ11cbn07XG5cbmNvbnN0IEVxdWFsc1ZhcmlhYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNFcXVhbFZhcmlhYmxlJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5FcXVhbHNUb1ZhcmlhYmxlLFxuICAgIHR5cGU6IFsnYm9vbGVhbicsICdpbnQnLCAndGV4dCcsICdtdWx0aS1zZWxlY3QnXVxufTtcblxuY29uc3QgTm90RXF1YWw6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RXF1YWwsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgTm90RXF1YWxzVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVxdWFsVmFyaWFibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLk5vdEVxdWFsc1RvVmFyaWFibGUsXG4gICAgdHlwZTogWydib29sZWFuJywgJ211bHRpLXNlbGVjdCddXG59O1xuXG5jb25zdCBMZXNzVGhhbjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJzwnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBMZXNzVGhhblZhcmlibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdMZXNzVGhhblZhcmlibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkxlc3NUaGFuVmFyaWFibGUsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgR3JlYXRlclRoYW46IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICc+JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuR3JlYXRlclRoYW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgR3JlYXRlclRoYW5WYXJpYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnR3JlYXRlclRoYW5WYXJpYmxlJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5HcmVhdGVyVGhhblZhcmlhYmxlLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbi8qXG5jb25zdCBHcmVhdGVyVGhhbk9yRXF1YWxzOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnPj0nLFxuICAgICAgICB0eXBlOiAnSW50ZWdlcidcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkdyZWF0ZXJUaGFuT3JFcXVhbHMsXG4gICAgICAgIHR5cGU6ICdpbnQnXG4gICAgfVxufTtcblxuY29uc3QgTGVzc1RoYW5PckVxdWFsczogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJzw9JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbk9yRXF1YWxzLFxuICAgICAgICB0eXBlOiAnaW50JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfVxufTsgKi9cblxuY29uc3QgTnVtYmVyUmFuZ2U6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTnVtYmVyUmFuZ2UsXG4gICAgdHlwZTogWydpbnQnXVxufTtcblxuY29uc3QgQ29udGFpbnM6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdDb250YWlucycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkNvbnRhaW5zLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEJlZ2luc1dpdGg6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZWdpbnNXaXRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuQmVnaW5zV2l0aCxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBFbmRzV2l0aDogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0VuZHNXaXRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRW5kc1dpdGgsXG4gICAgdHlwZTogbnVsbFxufTtcblxuLypcbmNvbnN0IEJlZ2luc1dpdGg6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6IHtcbiAgICAgICAgb3BlcmF0b3I6ICdCZWdpbnNXaXRoJyxcbiAgICAgICAgdHlwZTogJ1N0cmluZydcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkJlZ2luc1dpdGgsXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgIH1cbn07XG5cbmNvbnN0IEVuZHNXaXRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnRW5kc1dpdGgnLFxuICAgICAgICB0eXBlOiAnU3RyaW5nJ1xuICAgIH0sXG4gICAgc21hcnRGaWx0ZXI6IHtcbiAgICAgICAgaXRlbTogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRW5kc1dpdGgsXG4gICAgICAgIHR5cGU6ICd0ZXh0J1xuICAgIH1cbn07XG5cbmNvbnN0IEJlZm9yZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0JlZm9yZScsXG4gICAgICAgIHR5cGU6ICdEYXRlJ1xuICAgIH0sXG4gICAgc21hcnRGaWx0ZXI6IHtcbiAgICAgICAgaXRlbTogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuQmVmb3JlLFxuICAgICAgICB0eXBlOiAnZGF0ZSdcbiAgICB9XG59O1xuXG5jb25zdCBBZnRlcjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJ0FmdGVyJyxcbiAgICAgICAgdHlwZTogJ0RhdGUnXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5BZnRlcixcbiAgICAgICAgdHlwZTogJ2RhdGUnXG4gICAgfVxufTsgKi9cblxuY29uc3QgSW5UaGVMYXN0OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW5UaGVMYXN0LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEluVGhlTGFzdENhbGVuZGFyOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0Q2FsZW5kYXInLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMuSW5UaGVMYXN0Q2FsZW5kYXIsXG4gICAgdHlwZTogbnVsbFxufVxuXG4vKlxuY29uc3QgSW5UaGVMYXN0VmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJblRoZUxhc3RWYXJpYWJsZScsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMuSW5UaGVMYXN0VmFyaWFibGUsXG4gICAgdHlwZTogbnVsbFxufSAqL1xuXG5jb25zdCBOb3RJblRoZUxhc3Q6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdOb3RJblRoZUxhc3QnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3RJblRoZUxhc3QsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgTm90SW5UaGVMYXN0Q2FsZW5kYXI6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdOb3RJblRoZUxhc3RDYWxlbmRhcicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5Ob3RJblRoZUxhc3RDYWxlbmRhcixcbiAgICB0eXBlOiBudWxsXG59XG5cbmNvbnN0IFRvZGF5OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVG9kYXknLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ub2RheSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBUaGlzV2VlazogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ1RoaXNXZWVrJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc1dlZWssXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgVGhpc01vbnRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVGhpc01vbnRoJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc01vbnRoLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IERhdGVSYW5nZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0JldHdlZW4nLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EYXRlUmFuZ2UsXG4gICAgdHlwZTogWydkYXRlLXRpbWUnXVxufTtcblxuY29uc3QgZGF0ZVJhbmdlVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuVmFyaWFibGUnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkRhdGVSYW5nZVZhcmlhYmxlLFxuICAgIHR5cGU6IFsnZGF0ZS10aW1lJ11cbn07XG5cbmNvbnN0IER1ZUluOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnRHVlSW4nLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5EdWVJbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBOb3REdWVJbjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ05vdER1ZUluJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RHVlSW4sXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgT246IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdPbicsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk9uLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IElzRW1wdHk6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VtcHR5JyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSXNFbXB0eSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBJc05vdEVtcHR5OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNOb3RFbXB0eScsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLklzTm90RW1wdHksXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgSW46IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4sXG4gICAgdHlwZTogWydtdWx0aS1zZWxlY3QnXVxufTtcblxuXG5jb25zdCBQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvcnMgPSBbXG4gICAgRXF1YWxzLFxuICAgIEVxdWFsc1ZhcmlhYmxlLFxuICAgIE5vdEVxdWFsLFxuICAgIE5vdEVxdWFsc1ZhcmlhYmxlLFxuICAgIExlc3NUaGFuLFxuICAgIExlc3NUaGFuVmFyaWJsZSxcbiAgICAvLyAgIExlc3NUaGFuT3JFcXVhbHMsXG4gICAgR3JlYXRlclRoYW4sXG4gICAgR3JlYXRlclRoYW5WYXJpYmxlLFxuICAgIC8vICAgR3JlYXRlclRoYW5PckVxdWFscyxcbiAgICBOdW1iZXJSYW5nZSxcbiAgICBDb250YWlucyxcbiAgICBCZWdpbnNXaXRoLFxuICAgIEVuZHNXaXRoLFxuICAgIC8vICAgQWZ0ZXIsXG4gICAgLy8gICBCZWZvcmUsXG4gICAgSW5UaGVMYXN0LFxuICAgIC8vIEluVGhlTGFzdFZhcmlhYmxlLFxuICAgIEluVGhlTGFzdENhbGVuZGFyLFxuICAgIE5vdEluVGhlTGFzdCxcbiAgICBOb3RJblRoZUxhc3RDYWxlbmRhcixcbiAgICBUb2RheSxcbiAgICBUaGlzV2VlayxcbiAgICBUaGlzTW9udGgsXG4gICAgRGF0ZVJhbmdlLFxuICAgIGRhdGVSYW5nZVZhcmlhYmxlLFxuICAgIER1ZUluLFxuICAgIE5vdER1ZUluLFxuICAgIE9uLFxuICAgIElzRW1wdHksXG4gICAgSXNOb3RFbXB0eSxcbiAgICBJblxuXVxuXG4vKipcbiAqIGdldHMgYSBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIG9wZXJhdG9yIGxlZ2FjeSBvcGVyYXRvclxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgc21hcnQgZmlsdGVyIG9wZXJhdG9yIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNtYXJ0RmlsdGVyT3BlcmF0b3Iob3BlcmF0b3I6IHN0cmluZywgdHlwZTogUGVwU21hcnRGaWx0ZXJUeXBlKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IgfCBudWxsIHtcbiAgICBjb25zdCBzbWFydEZpbHRlck9wZXJhdG9yID0gUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLmxlZ2FjeSA9PT0gb3BlcmF0b3IgJiZcbiAgICAgICAgKGl0ZW0udHlwZSA9PT0gbnVsbCB8fCBpdGVtLnR5cGUuaW5jbHVkZXModHlwZSkpXG4gICAgKTtcbiAgICByZXR1cm4gc21hcnRGaWx0ZXJPcGVyYXRvciA/IHNtYXJ0RmlsdGVyT3BlcmF0b3Iuc21hcnRGaWx0ZXIgOiBudWxsO1xufVxuXG4vKipcbiAqIGdldHMgYSBsZWdhY3kgb3BlcmF0b3IgdmFsdWVcbiAqIEBwYXJhbSBvcGVyYXRvciBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgbGVnYWN5IG9wZXJhdG9yIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZWdhY3lPcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsIHR5cGU6IFBlcFNtYXJ0RmlsdGVyVHlwZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGxlZ2FjeU9wZXJhdG9yID0gUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLnNtYXJ0RmlsdGVyID09PSBvcGVyYXRvciAmJlxuICAgICAgICAoaXRlbS50eXBlID09PSBudWxsIHx8IGl0ZW0udHlwZS5pbmNsdWRlcyh0eXBlKSlcbiAgICApO1xuICAgIHJldHVybiBsZWdhY3lPcGVyYXRvciA/IGxlZ2FjeU9wZXJhdG9yLmxlZ2FjeSA6IG51bGw7XG59XG4iXX0=
265
+ /**
266
+ * gets a value type of the operator value
267
+ * @param operator smart filter operator item
268
+ * @param type smart filter's type
269
+ * @returns value type operator value
270
+ */
271
+ export function getValueTypeOperator(operator, type) {
272
+ const valueType = PepQueryBuilderOperators.find(item => item.smartFilter === operator &&
273
+ (item.type === null || item.type.includes(type)));
274
+ return valueType ? valueType.valueType : 'Static';
275
+ }
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL21vZGVsL29wZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUNBQWlDLEVBQ2pDLCtCQUErQixFQUVsQyxNQUFNLHVDQUF1QyxDQUFDO0FBWS9DLE1BQU0sTUFBTSxHQUE2QjtJQUNyQyxNQUFNLEVBQUUsU0FBUztJQUNqQixTQUFTLEVBQUUsUUFBUTtJQUNuQixXQUFXLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtJQUMzQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sY0FBYyxHQUE2QjtJQUM3QyxNQUFNLEVBQUUsU0FBUztJQUNqQixTQUFTLEVBQUUsU0FBUztJQUNwQixXQUFXLEVBQUUsK0JBQStCLENBQUMsZ0JBQWdCO0lBQzdELElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDO0lBQ2hDLFNBQVMsRUFBRSxDQUFDLFFBQVEsRUFBQyxNQUFNLEVBQUMsU0FBUyxDQUFDO0NBQ3pDLENBQUM7QUFFRixNQUFNLFFBQVEsR0FBNkI7SUFDdkMsTUFBTSxFQUFFLFlBQVk7SUFDcEIsU0FBUyxFQUFFLFFBQVE7SUFDbkIsV0FBVyxFQUFFLHVCQUF1QixDQUFDLFFBQVE7SUFDN0MsSUFBSSxFQUFFLElBQUk7Q0FDYixDQUFDO0FBRUYsTUFBTSxpQkFBaUIsR0FBNkI7SUFDaEQsTUFBTSxFQUFFLFlBQVk7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDcEIsV0FBVyxFQUFFLCtCQUErQixDQUFDLG1CQUFtQjtJQUNoRSxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUM7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sUUFBUSxHQUE2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d0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FDbkQsSUFBSSxDQUFDLFdBQVcsS0FBSyxRQUFRO1FBQzdCLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDbkQsQ0FBQztJQUNGLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMsXG4gICAgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3Jcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlclR5cGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcblxuZXhwb3J0IHR5cGUgSXBlcFF1ZXJ5QnVpbGRlclZhbHVlVHlwZSA9ICdTdGF0aWMnIHwgJ0R5bmFtaWMnO1xuZXhwb3J0IGludGVyZmFjZSBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3Ige1xuICAgIGxlZ2FjeTogc3RyaW5nLCAvL2xlZ2FjeSBPcGVyYXRvciAgICBcbiAgICB2YWx1ZVR5cGU6IElwZXBRdWVyeUJ1aWxkZXJWYWx1ZVR5cGUsXG4gICAgc21hcnRGaWx0ZXI6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yLCAvL3NtYXJ0IGZpbHRlciBvcGVyYXRvciAgICBcbiAgICB0eXBlOiBQZXBTbWFydEZpbHRlclR5cGVbXSB8IG51bGwsIC8vc21hcnQgZmlsdGVyIHR5cGVcbiAgICBmaWVsZFR5cGU/OiBBcnJheTxzdHJpbmc+IHwgbnVsbFxufVxuXG5jb25zdCBFcXVhbHM6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5FcXVhbHMsXG4gICAgdHlwZTogWydib29sZWFuJywgJ2ludCcsICd0ZXh0JywgJ3JlYWwnXVxufTtcblxuY29uc3QgRXF1YWxzVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VxdWFsJyxcbiAgICB2YWx1ZVR5cGU6ICdEeW5hbWljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5FcXVhbHNUb1ZhcmlhYmxlLFxuICAgIHR5cGU6IFsnYm9vbGVhbicsICdpbnQnLCAndGV4dCddLFxuICAgIGZpZWxkVHlwZTogWydTdHJpbmcnLCdCb29sJywnSW50ZWdlciddXG59O1xuXG5jb25zdCBOb3RFcXVhbDogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0lzTm90RXF1YWwnLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk5vdEVxdWFsLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IE5vdEVxdWFsc1ZhcmlhYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNOb3RFcXVhbCcsXG4gICAgdmFsdWVUeXBlOiAnRHluYW1pYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMuTm90RXF1YWxzVG9WYXJpYWJsZSxcbiAgICB0eXBlOiBbJ2Jvb2xlYW4nXVxufTtcblxuY29uc3QgTGVzc1RoYW46IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICc8JyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbixcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBMZXNzVGhhblZhcmlhYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnPCcsXG4gICAgdmFsdWVUeXBlOiAnRHluYW1pYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnMuTGVzc1RoYW5WYXJpYWJsZSxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBHcmVhdGVyVGhhbjogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJz4nLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkdyZWF0ZXJUaGFuLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEdyZWF0ZXJUaGFuVmFyaWFibGU6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICc+JyxcbiAgICB2YWx1ZVR5cGU6ICdEeW5hbWljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5HcmVhdGVyVGhhblZhcmlhYmxlLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbi8qXG5jb25zdCBHcmVhdGVyVGhhbk9yRXF1YWxzOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiB7XG4gICAgICAgIG9wZXJhdG9yOiAnPj0nLFxuICAgICAgICB0eXBlOiAnSW50ZWdlcidcbiAgICB9LFxuICAgIHNtYXJ0RmlsdGVyOiB7XG4gICAgICAgIGl0ZW06IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkdyZWF0ZXJUaGFuT3JFcXVhbHMsXG4gICAgICAgIHR5cGU6ICdpbnQnXG4gICAgfVxufTtcblxuY29uc3QgTGVzc1RoYW5PckVxdWFsczogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeToge1xuICAgICAgICBvcGVyYXRvcjogJzw9JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfSxcbiAgICBzbWFydEZpbHRlcjoge1xuICAgICAgICBpdGVtOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5MZXNzVGhhbk9yRXF1YWxzLFxuICAgICAgICB0eXBlOiAnaW50JyxcbiAgICAgICAgdHlwZTogJ0ludGVnZXInXG4gICAgfVxufTsgKi9cblxuY29uc3QgTnVtYmVyUmFuZ2U6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdCZXR3ZWVuJyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5OdW1iZXJSYW5nZSxcbiAgICB0eXBlOiBbJ2ludCddXG59O1xuXG5jb25zdCBDb250YWluczogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0NvbnRhaW5zJyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Db250YWlucyxcbiAgICB0eXBlOiBudWxsXG59O1xuXG5jb25zdCBCZWdpbnNXaXRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnU3RhcnRXaXRoJyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5CZWdpbnNXaXRoLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEVuZHNXaXRoOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnRW5kV2l0aCcsXG4gICAgdmFsdWVUeXBlOiAnU3RhdGljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRW5kc1dpdGgsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgSW5UaGVMYXN0OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0JyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5JblRoZUxhc3QsXG4gICAgdHlwZTogbnVsbFxufTtcblxuY29uc3QgSW5UaGVMYXN0Q2FsZW5kYXI6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJblRoZUxhc3RDYWxlbmRhcicsXG4gICAgdmFsdWVUeXBlOiAnU3RhdGljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzLkluVGhlTGFzdENhbGVuZGFyLFxuICAgIHR5cGU6IG51bGxcbn1cblxuLypcbmNvbnN0IEluVGhlTGFzdFZhcmlhYmxlOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSW5UaGVMYXN0JyxcbiAgICB2YWx1ZVR5cGU6ICdEeW5hbWljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycy5JblRoZUxhc3RWYXJpYWJsZSxcbiAgICB0eXBlOiBudWxsXG59ICovXG5cbmNvbnN0IE5vdEluVGhlTGFzdDogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ05vdEluVGhlTGFzdCcsXG4gICAgdmFsdWVUeXBlOiAnU3RhdGljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90SW5UaGVMYXN0LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IE5vdEluVGhlTGFzdENhbGVuZGFyOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnTm90SW5UaGVMYXN0Q2FsZW5kYXInLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5Ob3RJblRoZUxhc3RDYWxlbmRhcixcbiAgICB0eXBlOiBudWxsXG59XG5cbmNvbnN0IFRvZGF5OiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVG9kYXknLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLlRvZGF5LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IFRoaXNXZWVrOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnVGhpc1dlZWsnLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLlRoaXNXZWVrLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IFRoaXNNb250aDogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ1RoaXNNb250aCcsXG4gICAgdmFsdWVUeXBlOiAnU3RhdGljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuVGhpc01vbnRoLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IERhdGVSYW5nZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0JldHdlZW4nLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkRhdGVSYW5nZSxcbiAgICB0eXBlOiBbJ2RhdGUtdGltZSddXG59O1xuXG5jb25zdCBkYXRlUmFuZ2VWYXJpYWJsZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0JldHdlZW4nLFxuICAgIHZhbHVlVHlwZTogJ0R5bmFtaWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkRhdGVSYW5nZVZhcmlhYmxlLFxuICAgIHR5cGU6IFsnZGF0ZS10aW1lJ11cbn07XG5cbmNvbnN0IER1ZUluOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnRHVlSW4nLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkR1ZUluLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IE5vdER1ZUluOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnTm90RHVlSW4nLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk5vdER1ZUluLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IE9uOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnT24nLFxuICAgIHZhbHVlVHlwZTogJ1N0YXRpYycsXG4gICAgc21hcnRGaWx0ZXI6IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk9uLFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IElzRW1wdHk6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc0VtcHR5JyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Jc0VtcHR5LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IElzTm90RW1wdHk6IElQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvciA9IHtcbiAgICBsZWdhY3k6ICdJc05vdEVtcHR5JyxcbiAgICB2YWx1ZVR5cGU6ICdTdGF0aWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Jc05vdEVtcHR5LFxuICAgIHR5cGU6IG51bGxcbn07XG5cbmNvbnN0IEluOiBJUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3IgPSB7XG4gICAgbGVnYWN5OiAnSXNFcXVhbCcsXG4gICAgdmFsdWVUeXBlOiAnU3RhdGljJyxcbiAgICBzbWFydEZpbHRlcjogUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4sXG4gICAgdHlwZTogWydtdWx0aS1zZWxlY3QnXVxufTtcblxuY29uc3QgSW5WYXJpYWJsZTogSVBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9yID0ge1xuICAgIGxlZ2FjeTogJ0lzRXF1YWwnLFxuICAgIHZhbHVlVHlwZTogJ0R5bmFtaWMnLFxuICAgIHNtYXJ0RmlsdGVyOiBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLkluVmFyaWFibGUsXG4gICAgdHlwZTogWydtdWx0aS1zZWxlY3QnLCAndGV4dCddLFxuICAgIGZpZWxkVHlwZTogWydNdWx0aXBsZVN0cmluZ1ZhbHVlcyddXG59O1xuXG5cbmNvbnN0IFBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9ycyA9IFtcbiAgICBFcXVhbHMsXG4gICAgRXF1YWxzVmFyaWFibGUsXG4gICAgTm90RXF1YWwsXG4gICAgTm90RXF1YWxzVmFyaWFibGUsXG4gICAgTGVzc1RoYW4sXG4gICAgTGVzc1RoYW5WYXJpYWJsZSxcbiAgICAvLyAgIExlc3NUaGFuT3JFcXVhbHMsXG4gICAgR3JlYXRlclRoYW4sXG4gICAgR3JlYXRlclRoYW5WYXJpYWJsZSxcbiAgICAvLyAgIEdyZWF0ZXJUaGFuT3JFcXVhbHMsXG4gICAgTnVtYmVyUmFuZ2UsXG4gICAgQ29udGFpbnMsXG4gICAgQmVnaW5zV2l0aCxcbiAgICBFbmRzV2l0aCxcbiAgICAvLyAgIEFmdGVyLFxuICAgIC8vICAgQmVmb3JlLFxuICAgIEluVGhlTGFzdCxcbiAgICAvLyBJblRoZUxhc3RWYXJpYWJsZSxcbiAgICBJblRoZUxhc3RDYWxlbmRhcixcbiAgICBOb3RJblRoZUxhc3QsXG4gICAgTm90SW5UaGVMYXN0Q2FsZW5kYXIsXG4gICAgVG9kYXksXG4gICAgVGhpc1dlZWssXG4gICAgVGhpc01vbnRoLFxuICAgIERhdGVSYW5nZSxcbiAgICBkYXRlUmFuZ2VWYXJpYWJsZSxcbiAgICBEdWVJbixcbiAgICBOb3REdWVJbixcbiAgICBPbixcbiAgICBJc0VtcHR5LFxuICAgIElzTm90RW1wdHksXG4gICAgSW4sXG4gICAgSW5WYXJpYWJsZVxuXVxuXG4vKipcbiAqIGdldHMgYSBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIG9wZXJhdG9yIGxlZ2FjeSBvcGVyYXRvclxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgc21hcnQgZmlsdGVyIG9wZXJhdG9yIGl0ZW1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNtYXJ0RmlsdGVyT3BlcmF0b3Iob3BlcmF0b3I6IHN0cmluZywgdHlwZTogUGVwU21hcnRGaWx0ZXJUeXBlLCB2YWx1ZVR5cGU6IElwZXBRdWVyeUJ1aWxkZXJWYWx1ZVR5cGUsIGZpZWxkVHlwZSA9IG51bGwpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvciB8IG51bGwge1xuICAgIGNvbnN0IHNtYXJ0RmlsdGVyT3BlcmF0b3IgPSBQZXBRdWVyeUJ1aWxkZXJPcGVyYXRvcnMuZmluZChpdGVtID0+XG4gICAgICAgIGl0ZW0ubGVnYWN5ID09PSBvcGVyYXRvciAmJlxuICAgICAgICBpdGVtLnZhbHVlVHlwZSA9PT0gdmFsdWVUeXBlICYmXG4gICAgICAgIChpdGVtLnR5cGUgPT09IG51bGwgfHwgaXRlbS50eXBlLmluY2x1ZGVzKHR5cGUpKSAmJlxuICAgICAgICAoZmllbGRUeXBlID09IG51bGwgfHwgaXRlbS5maWVsZFR5cGUgPT09IHVuZGVmaW5lZCB8fCBpdGVtLmZpZWxkVHlwZT8uaW5jbHVkZXMoZmllbGRUeXBlKSlcbiAgICApO1xuICAgIC8qXG4gICAgIEZpZWxkVHlwZTogKGN1cnJlbnRba2V5XS5zbWFydC5vcGVyYXRvci5pZCA9PT0gJ2ludicgJiYgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRba2V5XS5zbWFydC5maWVsZFR5cGUgPT09ICd0ZXh0JykgPyAnTXVsdGlwbGVTdHJpbmdWYWx1ZXMnIDogY3VycmVudFtrZXldLnF1ZXJ5LmZpZWxkVHlwZSxcbiAgICAgKi9cbiAgICByZXR1cm4gc21hcnRGaWx0ZXJPcGVyYXRvciA/IHNtYXJ0RmlsdGVyT3BlcmF0b3Iuc21hcnRGaWx0ZXIgOiBudWxsO1xufVxuXG4vKipcbiAqIGdldHMgYSBsZWdhY3kgb3BlcmF0b3IgdmFsdWVcbiAqIEBwYXJhbSBvcGVyYXRvciBzbWFydCBmaWx0ZXIgb3BlcmF0b3IgaXRlbVxuICogQHBhcmFtIHR5cGUgc21hcnQgZmlsdGVyJ3MgdHlwZVxuICogQHJldHVybnMgbGVnYWN5IG9wZXJhdG9yIHZhbHVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMZWdhY3lPcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsIHR5cGU6IFBlcFNtYXJ0RmlsdGVyVHlwZSk6IHN0cmluZyB8IG51bGwge1xuICAgIGNvbnN0IGxlZ2FjeU9wZXJhdG9yID0gUGVwUXVlcnlCdWlsZGVyT3BlcmF0b3JzLmZpbmQoaXRlbSA9PlxuICAgICAgICBpdGVtLnNtYXJ0RmlsdGVyID09PSBvcGVyYXRvciAmJlxuICAgICAgICAoaXRlbS50eXBlID09PSBudWxsIHx8IGl0ZW0udHlwZS5pbmNsdWRlcyh0eXBlKSlcbiAgICApO1xuICAgIHJldHVybiBsZWdhY3lPcGVyYXRvciA/IGxlZ2FjeU9wZXJhdG9yLmxlZ2FjeSA6IG51bGw7XG59XG5cbi8qKlxuICogZ2V0cyBhIHZhbHVlIHR5cGUgb2YgdGhlIG9wZXJhdG9yIHZhbHVlXG4gKiBAcGFyYW0gb3BlcmF0b3Igc21hcnQgZmlsdGVyIG9wZXJhdG9yIGl0ZW1cbiAqIEBwYXJhbSB0eXBlIHNtYXJ0IGZpbHRlcidzIHR5cGVcbiAqIEByZXR1cm5zIHZhbHVlIHR5cGUgb3BlcmF0b3IgdmFsdWVcbiAqL1xuIGV4cG9ydCBmdW5jdGlvbiBnZXRWYWx1ZVR5cGVPcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsIHR5cGU6IFBlcFNtYXJ0RmlsdGVyVHlwZSk6IElwZXBRdWVyeUJ1aWxkZXJWYWx1ZVR5cGUge1xuICAgIGNvbnN0IHZhbHVlVHlwZSA9IFBlcFF1ZXJ5QnVpbGRlck9wZXJhdG9ycy5maW5kKGl0ZW0gPT5cbiAgICAgICAgaXRlbS5zbWFydEZpbHRlciA9PT0gb3BlcmF0b3IgJiZcbiAgICAgICAgKGl0ZW0udHlwZSA9PT0gbnVsbCB8fCBpdGVtLnR5cGUuaW5jbHVkZXModHlwZSkpXG4gICAgKTtcbiAgICByZXR1cm4gdmFsdWVUeXBlID8gdmFsdWVUeXBlLnZhbHVlVHlwZSA6ICdTdGF0aWMnO1xufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { getLegacyOperator } from '../model/operator';
2
+ import { getLegacyOperator, getValueTypeOperator } from '../model/operator';
3
3
  import { getLegacyOperationUnit } from '../model/operator-unit';
4
4
  import { PepSmartFilterOperators, PepSmartFilterAdditionalOperators } from '@pepperi-addons/ngx-lib/smart-filters';
5
5
  import * as i0 from "@angular/core";
@@ -35,8 +35,10 @@ export class PepOutputQueryService {
35
35
  section = this.addToSection(section, {
36
36
  ExpressionId: (this._expressionIdCounter++).toString(),
37
37
  ApiName: current[key].smart.fieldId,
38
- FieldType: current[key].query.fieldType,
38
+ FieldType: (current[key].smart.operator.id === 'inv' &&
39
+ current[key].smart.fieldType === 'text') ? 'MultipleStringValues' : current[key].query.fieldType,
39
40
  Operation: getLegacyOperator(current[key].smart.operator, current[key].smart.fieldType),
41
+ ValueType: getValueTypeOperator(current[key].smart.operator, current[key].smart.fieldType),
40
42
  Values: this.getItemValues(current[key].smart)
41
43
  }, current.operator);
42
44
  }
@@ -111,4 +113,4 @@ PepOutputQueryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0"
111
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepOutputQueryService, decorators: [{
112
114
  type: Injectable
113
115
  }], ctorParameters: function () { return []; } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQ0FBaUMsRUFDcEMsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFJL0MsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QjtRQUNJLEVBQUU7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUFZO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFdBQVcsQ0FBQyxPQUFZO1FBQzVCLElBQUksT0FBTyxHQUFxQyxJQUFJLENBQUM7UUFFckQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7b0JBQ2pDLFlBQVksRUFBRSxDQUFD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QUFLLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUN0QzthQUNKO1NBQ0o7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDOztrSEFsSFEscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElQZXBRdWVyeVNlY3Rpb24sIElQZXBRdWVyeUl0ZW0gfSBmcm9tICcuLi9tb2RlbC9sZWdhY3knO1xuaW1wb3J0IHsgZ2V0TGVnYWN5T3BlcmF0b3IgfSBmcm9tICcuLi9tb2RlbC9vcGVyYXRvcic7XG5pbXBvcnQgeyBQZXBPcGVyYXRvclR5cGVzIH0gZnJvbSAnLi4vbW9kZWwvdHlwZSc7XG5pbXBvcnQgeyBnZXRMZWdhY3lPcGVyYXRpb25Vbml0IH0gZnJvbSAnLi4vbW9kZWwvb3BlcmF0b3ItdW5pdCc7XG5pbXBvcnQgeyBcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnNcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc21hcnQtZmlsdGVycyc7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBlcE91dHB1dFF1ZXJ5U2VydmljZSB7XG4gICAgcHJpdmF0ZSBfY29tcGxleElkQ291bnRlcjogbnVtYmVyO1xuICAgIHByaXZhdGUgX2V4cHJlc3Npb25JZENvdW50ZXI6IG51bWJlcjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdlbmVyYXRlcyBhIGxlZ2FjeSBxdWVyeSBzdHJ1Y3R1cmUgXG4gICAgICogQHBhcmFtIGZpbHRlcnMgVUkgc21hcnQgZmlsdGVycyBzdHJ1Y3R1cmUgICAgIFxuICAgICAqIEByZXR1cm5zIGxlZ2FjeSBxdWVyeVxuICAgICAqL1xuICAgIGdlbmVyYXRlUXVlcnkoZmlsdGVyczogYW55KSB7XG4gICAgICAgIHRoaXMuaW5pdFBhcmFtcygpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnNlY3Rpb25XYWxrKGZpbHRlcnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGluaXQgcGFyYW1zXG4gICAgICovXG4gICAgcHJpdmF0ZSBpbml0UGFyYW1zKCkge1xuICAgICAgICB0aGlzLl9jb21wbGV4SWRDb3VudGVyID0gMTtcbiAgICAgICAgdGhpcy5fZXhwcmVzc2lvbklkQ291bnRlciA9IDE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIGxlZ2FjeSBxdWVyeSBzdHJ1Y3R1cmVcbiAgICAgKiBAcGFyYW0gY3VycmVudCBVSSBvYmplY3QgcmVwcmVzZW50cyBlaXRoZXIgYSBzZWN0aW9uIG9yIGZpbHRlciBjb21wb25lbnRcbiAgICAgKiBAcmV0dXJucyBzZWN0aW9uIHF1ZXJ5IGRhdGFcbiAgICAgKi9cbiAgICBwcml2YXRlIHNlY3Rpb25XYWxrKGN1cnJlbnQ6IGFueSkge1xuICAgICAgICBsZXQgc2VjdGlvbjogSVBlcFF1ZXJ5U2VjdGlvbiB8IElQZXBRdWVyeUl0ZW0gPSBudWxsO1xuXG4gICAgICAgIE9iamVjdC5rZXlzKGN1cnJlbnQpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ2l0ZW0nKSkge1xuICAgICAgICAgICAgICAgIHNlY3Rpb24gPSB0aGlzLmFkZFRvU2VjdGlvbihzZWN0aW9uLCB7XG4gICAgICAgICAgICAgICAgICAgIEV4cHJlc3Npb25JZDogKHRoaXMuX2V4cHJlc3Npb25JZENvdW50ZXIrKykudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgQXBpTmFtZTogY3VycmVudFtrZXldLnNtYXJ0LmZpZWxkSWQsXG4gICAgICAgICAgICAgICAgICAgIEZpZWxkVHlwZTogY3VycmVudFtrZXldLnF1ZXJ5LmZpZWxkVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgT3BlcmF0aW9uOiBnZXRMZWdhY3lPcGVyYXRvcihjdXJyZW50W2tleV0uc21hcnQub3BlcmF0b3IsIGN1cnJlbnRba2V5XS5zbWFydC5maWVsZFR5cGUpLFxuICAgICAgICAgICAgICAgICAgICBWYWx1ZXM6IHRoaXMuZ2V0SXRlbVZhbHVlcyhjdXJyZW50W2tleV0uc21hcnQpXG4gICAgICAgICAgICAgICAgfSBhcyBJUGVwUXVlcnlJdGVtLCBjdXJyZW50Lm9wZXJhdG9yKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoa2V5LmluY2x1ZGVzKCdzZWN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFNlY3Rpb24gPSB0aGlzLnNlY3Rpb25XYWxrKGN1cnJlbnRba2V5XSk7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkU2VjdGlvbikge1xuICAgICAgICAgICAgICAgICAgICBzZWN0aW9uID0gdGhpcy5hZGRUb1NlY3Rpb24oc2VjdGlvbiwgY2hpbGRTZWN0aW9uLCBjdXJyZW50Lm9wZXJhdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzZWN0aW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFkZHMgYSBsZWdhY3kgZmlsdGVyIG9iamVjdCB0byB0aGUgY3VycmVudCBxdWVyeSBzdHJ1Y3R1cmVcbiAgICAgKiBAcGFyYW0gc2VjdGlvbiBzZWN0aW9uIHF1ZXJ5IGRhdGFcbiAgICAgKiBAcGFyYW0gaXRlbSBmaWx0ZXIgaXRlbVxuICAgICAqIEBwYXJhbSBvcGVyYXRvciBxdWVyeSBvcGVyYXRvclxuICAgICAqIEByZXR1cm5zIFxuICAgICAqL1xuICAgIHByaXZhdGUgYWRkVG9TZWN0aW9uKHNlY3Rpb246IGFueSwgaXRlbTogYW55LCBvcGVyYXRvcjogc3RyaW5nKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHNlY3Rpb24gPyB0aGlzLmNyZWF0ZVNlY3Rpb24oc2VjdGlvbiwgaXRlbSwgb3BlcmF0b3IpIDogaXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgbGVnYWN5IGNvbXBsZXggb2JqZWN0XG4gICAgICogQHBhcmFtIGxlZnQgTGVmdE5vZGUgb2JqZWN0XG4gICAgICogQHBhcmFtIHJpZ2h0IFJpZ2h0Tm9kZSBvYmplY3RcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgcXVlcnkgb3BlcmF0b3JcbiAgICAgKiBAcmV0dXJucyBsZWdhY3kgY29tcGxleCBvYmplY3RcbiAgICAgKi9cbiAgICBwcml2YXRlIGNyZWF0ZVNlY3Rpb24obGVmdDogYW55LCByaWdodDogYW55LCBvcGVyYXRvcjogc3RyaW5nKTogSVBlcFF1ZXJ5U2VjdGlvbiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBDb21wbGV4SWQ6ICh0aGlzLl9jb21wbGV4SWRDb3VudGVyKyspLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBMZWZ0Tm9kZTogbGVmdCxcbiAgICAgICAgICAgIFJpZ2h0Tm9kZTogcmlnaHQsXG4gICAgICAgICAgICBPcGVyYXRpb246IDxQZXBPcGVyYXRvclR5cGVzPm9wZXJhdG9yXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXRzIGxlZ2FjeSBmaWx0ZXIgdmFsdWVzIG9iamVjdFxuICAgICAqIEBwYXJhbSBjdXJyZW50IFVJIGZpbHRlciBvYmplY3QncyB2YWx1ZXNcbiAgICAgKiBAcmV0dXJucyBhbiBhcnJheSByZXByZXNlbnRzIGxlZ2FjeSB2YWx1ZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEl0ZW1WYWx1ZXMoY3VycmVudDogYW55KSB7XG4gICAgICAgIGxldCB2YWx1ZXM6IGFueVtdID0gW107XG5cbiAgICAgICAgaWYgKGN1cnJlbnQ/LnZhbHVlcz8uZmlyc3QpIHtcbiAgICAgICAgICAgIGlmIChjdXJyZW50Lm9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5JbikgeyAvL211bHRpIHNlbGVjdCBcbiAgICAgICAgICAgICAgICB2YWx1ZXMgPSBjdXJyZW50LnZhbHVlcy5maXJzdDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW5UaGVMYXN0IHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzLkluVGhlTGFzdENhbGVuZGFyIHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90SW5UaGVMYXN0IHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzLk5vdEluVGhlTGFzdENhbGVuZGFyIHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuRHVlSW4gfHxcbiAgICAgICAgICAgICAgICBjdXJyZW50Lm9wZXJhdG9yID09PSBQZXBTbWFydEZpbHRlck9wZXJhdG9ycy5Ob3REdWVJblxuICAgICAgICAgICAgKSB7IC8vb3BlcmF0aW9uIHVuaXQgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5maXJzdCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQub3BlcmF0b3JVbml0KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGdldExlZ2FjeU9wZXJhdGlvblVuaXQoY3VycmVudC5vcGVyYXRvclVuaXQpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGN1cnJlbnQudmFsdWVzLmZpcnN0KTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudC52YWx1ZXMuc2Vjb25kKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlcy5wdXNoKGN1cnJlbnQudmFsdWVzLnNlY29uZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICB9XG5cbn0iXX0=
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LXF1ZXJ5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQ0FBaUMsRUFDcEMsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFJL0MsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QjtRQUNJLEVBQUU7SUFDTixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGFBQWEsQ0FBQyxPQUFZO1FBQ3RCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssVUFBVTtRQUNkLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFdBQVcsQ0FBQyxPQUFZO1FBQzVCLElBQUksT0FBTyxHQUFxQyxJQUFJLENBQUM7UUFFckQsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN0QixPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUU7b0JBQ2pDLFlB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S0FBSztnQkFDbEQsT0FBTyxDQUFDLFFBQVEsS0FBSyx1QkFBdUIsQ0FBQyxRQUFRLEVBQ3ZELEVBQUUsNEJBQTRCO2dCQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRTtvQkFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztpQkFDN0Q7YUFDSjtpQkFBTTtnQkFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2xDLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7b0JBQ3ZCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDdEM7YUFDSjtTQUNKO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7a0hBcEhRLHFCQUFxQjtzSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGVwUXVlcnlTZWN0aW9uLCBJUGVwUXVlcnlJdGVtIH0gZnJvbSAnLi4vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7IGdldExlZ2FjeU9wZXJhdG9yLCBnZXRWYWx1ZVR5cGVPcGVyYXRvciB9IGZyb20gJy4uL21vZGVsL29wZXJhdG9yJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi9tb2RlbC90eXBlJztcbmltcG9ydCB7IGdldExlZ2FjeU9wZXJhdGlvblVuaXQgfSBmcm9tICcuLi9tb2RlbC9vcGVyYXRvci11bml0JztcbmltcG9ydCB7IFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9yc1xufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9jb21wbGV4SWRDb3VudGVyOiBudW1iZXI7XG4gICAgcHJpdmF0ZSBfZXhwcmVzc2lvbklkQ291bnRlcjogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2VuZXJhdGVzIGEgbGVnYWN5IHF1ZXJ5IHN0cnVjdHVyZSBcbiAgICAgKiBAcGFyYW0gZmlsdGVycyBVSSBzbWFydCBmaWx0ZXJzIHN0cnVjdHVyZSAgICAgXG4gICAgICogQHJldHVybnMgbGVnYWN5IHF1ZXJ5XG4gICAgICovXG4gICAgZ2VuZXJhdGVRdWVyeShmaWx0ZXJzOiBhbnkpIHtcbiAgICAgICAgdGhpcy5pbml0UGFyYW1zKCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc2VjdGlvbldhbGsoZmlsdGVycyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW5pdCBwYXJhbXNcbiAgICAgKi9cbiAgICBwcml2YXRlIGluaXRQYXJhbXMoKSB7XG4gICAgICAgIHRoaXMuX2NvbXBsZXhJZENvdW50ZXIgPSAxO1xuICAgICAgICB0aGlzLl9leHByZXNzaW9uSWRDb3VudGVyID0gMTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbiBkeW5hbWljYWxseSBidWlsZHMgbGVnYWN5IHF1ZXJ5IHN0cnVjdHVyZVxuICAgICAqIEBwYXJhbSBjdXJyZW50IFVJIG9iamVjdCByZXByZXNlbnRzIGVpdGhlciBhIHNlY3Rpb24gb3IgZmlsdGVyIGNvbXBvbmVudFxuICAgICAqIEByZXR1cm5zIHNlY3Rpb24gcXVlcnkgZGF0YVxuICAgICAqL1xuICAgIHByaXZhdGUgc2VjdGlvbldhbGsoY3VycmVudDogYW55KSB7XG4gICAgICAgIGxldCBzZWN0aW9uOiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSA9IG51bGw7XG5cbiAgICAgICAgT2JqZWN0LmtleXMoY3VycmVudCkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnaXRlbScpKSB7XG4gICAgICAgICAgICAgICAgc2VjdGlvbiA9IHRoaXMuYWRkVG9TZWN0aW9uKHNlY3Rpb24sIHtcbiAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2lvbklkOiAodGhpcy5fZXhwcmVzc2lvbklkQ291bnRlcisrKS50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICBBcGlOYW1lOiBjdXJyZW50W2tleV0uc21hcnQuZmllbGRJZCxcbiAgICAgICAgICAgICAgICAgICAgRmllbGRUeXBlOiAoY3VycmVudFtrZXldLnNtYXJ0Lm9wZXJhdG9yLmlkID09PSAnaW52JyAmJiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFtrZXldLnNtYXJ0LmZpZWxkVHlwZSA9PT0gJ3RleHQnKSA/ICdNdWx0aXBsZVN0cmluZ1ZhbHVlcycgOiBjdXJyZW50W2tleV0ucXVlcnkuZmllbGRUeXBlLFxuICAgICAgICAgICAgICAgICAgICBPcGVyYXRpb246IGdldExlZ2FjeU9wZXJhdG9yKGN1cnJlbnRba2V5XS5zbWFydC5vcGVyYXRvciwgY3VycmVudFtrZXldLnNtYXJ0LmZpZWxkVHlwZSksXG4gICAgICAgICAgICAgICAgICAgIFZhbHVlVHlwZTogZ2V0VmFsdWVUeXBlT3BlcmF0b3IoY3VycmVudFtrZXldLnNtYXJ0Lm9wZXJhdG9yLCBjdXJyZW50W2tleV0uc21hcnQuZmllbGRUeXBlKSxcbiAgICAgICAgICAgICAgICAgICAgVmFsdWVzOiB0aGlzLmdldEl0ZW1WYWx1ZXMoY3VycmVudFtrZXldLnNtYXJ0KVxuICAgICAgICAgICAgICAgIH0gYXMgSVBlcFF1ZXJ5SXRlbSwgY3VycmVudC5vcGVyYXRvcik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcygnc2VjdGlvbicpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRTZWN0aW9uID0gdGhpcy5zZWN0aW9uV2FsayhjdXJyZW50W2tleV0pO1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZFNlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgc2VjdGlvbiA9IHRoaXMuYWRkVG9TZWN0aW9uKHNlY3Rpb24sIGNoaWxkU2VjdGlvbiwgY3VycmVudC5vcGVyYXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gc2VjdGlvbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBhZGRzIGEgbGVnYWN5IGZpbHRlciBvYmplY3QgdG8gdGhlIGN1cnJlbnQgcXVlcnkgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHNlY3Rpb24gc2VjdGlvbiBxdWVyeSBkYXRhXG4gICAgICogQHBhcmFtIGl0ZW0gZmlsdGVyIGl0ZW1cbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgcXVlcnkgb3BlcmF0b3JcbiAgICAgKiBAcmV0dXJucyBcbiAgICAgKi9cbiAgICBwcml2YXRlIGFkZFRvU2VjdGlvbihzZWN0aW9uOiBhbnksIGl0ZW06IGFueSwgb3BlcmF0b3I6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiBzZWN0aW9uID8gdGhpcy5jcmVhdGVTZWN0aW9uKHNlY3Rpb24sIGl0ZW0sIG9wZXJhdG9yKSA6IGl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGxlZ2FjeSBjb21wbGV4IG9iamVjdFxuICAgICAqIEBwYXJhbSBsZWZ0IExlZnROb2RlIG9iamVjdFxuICAgICAqIEBwYXJhbSByaWdodCBSaWdodE5vZGUgb2JqZWN0XG4gICAgICogQHBhcmFtIG9wZXJhdG9yIHF1ZXJ5IG9wZXJhdG9yXG4gICAgICogQHJldHVybnMgbGVnYWN5IGNvbXBsZXggb2JqZWN0XG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVTZWN0aW9uKGxlZnQ6IGFueSwgcmlnaHQ6IGFueSwgb3BlcmF0b3I6IHN0cmluZyk6IElQZXBRdWVyeVNlY3Rpb24ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgQ29tcGxleElkOiAodGhpcy5fY29tcGxleElkQ291bnRlcisrKS50b1N0cmluZygpLFxuICAgICAgICAgICAgTGVmdE5vZGU6IGxlZnQsXG4gICAgICAgICAgICBSaWdodE5vZGU6IHJpZ2h0LFxuICAgICAgICAgICAgT3BlcmF0aW9uOiA8UGVwT3BlcmF0b3JUeXBlcz5vcGVyYXRvclxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogZ2V0cyBsZWdhY3kgZmlsdGVyIHZhbHVlcyBvYmplY3RcbiAgICAgKiBAcGFyYW0gY3VycmVudCBVSSBmaWx0ZXIgb2JqZWN0J3MgdmFsdWVzXG4gICAgICogQHJldHVybnMgYW4gYXJyYXkgcmVwcmVzZW50cyBsZWdhY3kgdmFsdWVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRJdGVtVmFsdWVzKGN1cnJlbnQ6IGFueSkge1xuICAgICAgICBsZXQgdmFsdWVzOiBhbnlbXSA9IFtdO1xuXG4gICAgICAgIGlmIChjdXJyZW50Py52YWx1ZXM/LmZpcnN0KSB7XG4gICAgICAgICAgICBpZiAoY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuSW4pIHsgLy9tdWx0aSBzZWxlY3QgXG4gICAgICAgICAgICAgICAgdmFsdWVzID0gY3VycmVudC52YWx1ZXMuZmlyc3Q7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkluVGhlTGFzdCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5JblRoZUxhc3RDYWxlbmRhciB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLk5vdEluVGhlTGFzdCB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycy5Ob3RJblRoZUxhc3RDYWxlbmRhciB8fFxuICAgICAgICAgICAgICAgIGN1cnJlbnQub3BlcmF0b3IgPT09IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLkR1ZUluIHx8XG4gICAgICAgICAgICAgICAgY3VycmVudC5vcGVyYXRvciA9PT0gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMuTm90RHVlSW5cbiAgICAgICAgICAgICkgeyAvL29wZXJhdGlvbiB1bml0ICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdmFsdWVzLnB1c2goY3VycmVudC52YWx1ZXMuZmlyc3QpO1xuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50Lm9wZXJhdG9yVW5pdCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChnZXRMZWdhY3lPcGVyYXRpb25Vbml0KGN1cnJlbnQub3BlcmF0b3JVbml0KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5maXJzdCk7XG4gICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQudmFsdWVzLnNlY29uZCkge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaChjdXJyZW50LnZhbHVlcy5zZWNvbmQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZXM7XG4gICAgfVxuXG59Il19
@@ -17,6 +17,7 @@ export class PepQueryStructureService {
17
17
  this._outputQuery$ = new BehaviorSubject(null);
18
18
  this._variableFields = {};
19
19
  this._maxStructureDepth = MAX_STRUCTURE_DEPTH;
20
+ this._cmpRefMap = new Map();
20
21
  this.outputQuery$ = this._outputQuery$.asObservable();
21
22
  }
22
23
  set maxDepth(value) {
@@ -58,6 +59,18 @@ export class PepQueryStructureService {
58
59
  * @param containerRef reference to root element
59
60
  */
60
61
  buildQueryStructure(query, containerRef) {
62
+ // Remove all the components from the query builder.
63
+ this._cmpRefMap.forEach((value, key) => {
64
+ // console.log(key, value);
65
+ // value.instance.remove();
66
+ if (value.instance.parentForm) {
67
+ value.instance.parentForm.removeControl(key);
68
+ }
69
+ value.destroy();
70
+ this._cmpRefMap.delete(key);
71
+ });
72
+ // Clear containerRef
73
+ containerRef.clear();
61
74
  //update root operator
62
75
  if (this.hasProperty(query, 'ComplexId') &&
63
76
  query?.Operation &&
@@ -138,10 +151,15 @@ export class PepQueryStructureService {
138
151
  parentForm.removeControl(formKey);
139
152
  componentRef.destroy();
140
153
  this.createOutputQuery();
154
+ if (this._cmpRefMap.has(formKey)) {
155
+ this._cmpRefMap.delete(formKey);
156
+ }
141
157
  });
142
158
  componentRef.instance.operatorChange.subscribe(() => {
143
159
  this.createOutputQuery();
144
160
  });
161
+ // Add this to remove all the components when fields changes.
162
+ this._cmpRefMap.set(formKey, componentRef);
145
163
  return {
146
164
  containerRef: componentRef.instance.sectionContainer,
147
165
  parentForm: sectionGroup
@@ -179,7 +197,12 @@ export class PepQueryStructureService {
179
197
  parentForm.removeControl(formKey);
180
198
  componentRef.destroy();
181
199
  this.createOutputQuery();
200
+ if (this._cmpRefMap.has(formKey)) {
201
+ this._cmpRefMap.delete(formKey);
202
+ }
182
203
  });
204
+ // Add this to remove all the components when fields changes.
205
+ this._cmpRefMap.set(formKey, componentRef);
183
206
  }
184
207
  /**
185
208
  * get smart filter field
@@ -223,4 +246,4 @@ PepQueryStructureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0
223
246
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryStructureService, decorators: [{
224
247
  type: Injectable
225
248
  }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.PepOutputQueryService }, { type: i2.PepQueryBuilderService }]; } });
226
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWV2QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUc5QixNQUFNLE9BQU8sd0JBQXdCO0lBVWpDLFlBQ1ksU0FBbUMsRUFDbkMsbUJBQTBDLEVBQzFDLG9CQUE0QztRQUY1QyxjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBQzFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFaaEQsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsSUFBSSxDQUFDLENBQUM7UUFHNUUsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFFMUIsdUJBQWtCLEdBQUcsbUJBQW1CLENBQUM7UUFFMUMsaUJBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBT3hELENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFLO1FBQ2Qs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QUMsQ0FBQztZQUN2RixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDaEc7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xGO0lBQ0wsQ0FBQztJQUVPLCtCQUErQixDQUFDLElBQVk7UUFDaEQsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxZQUFZO2dCQUNiLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssV0FBVztnQkFDWixPQUFPLE1BQU0sQ0FBQztZQUNsQjtnQkFDSSxPQUFPLElBQUksQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7cUhBcE9RLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZCwgSVBlcFF1ZXJ5U2VjdGlvbiwgSVBlcFF1ZXJ5SXRlbSB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9sZWdhY3knO1xuaW1wb3J0IHtcbiAgICBJUGVwU21hcnRGaWx0ZXJEYXRhLFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxuICAgIFBlcFNtYXJ0RmlsdGVyVHlwZSxcbiAgICBjcmVhdGVTbWFydEZpbHRlcixcbiAgICBjcmVhdGVTbWFydEZpbHRlckZpZWxkLFxuICAgIFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBPdXRwdXRRdWVyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvb3V0cHV0LXF1ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0U21hcnRGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvcic7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci1zZWN0aW9uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXItaXRlbS9xdWVyeS1idWlsZGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9maWVsZCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3R5cGUtbWFwJztcbmltcG9ydCB7IGdldFNtYXJ0RmlsdGVyT3BlcmF0aW9uVW5pdCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvci11bml0JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvZmlsdGVyJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbmNvbnN0IE1BWF9TVFJVQ1RVUkVfREVQVEggPSAzO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlTdHJ1Y3R1cmVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9vdXRwdXRRdWVyeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtPihudWxsKTtcblxuICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyRmllbGRzOiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXI+O1xuICAgIHByaXZhdGUgX3ZhcmlhYmxlRmllbGRzOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIF9mb3JtOiBGb3JtR3JvdXA7XG4gICAgcHJpdmF0ZSBfbWF4U3RydWN0dXJlRGVwdGggPSBNQVhfU1RSVUNUVVJFX0RFUFRIO1xuXG4gICAgcHVibGljIG91dHB1dFF1ZXJ5JCA9IHRoaXMuX291dHB1dFF1ZXJ5JC5hc09ic2VydmFibGUoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9yZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIF9vdXRwdXRRdWVyeVNlcnZpY2U6IFBlcE91dHB1dFF1ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcXVlcnlCdWlsZGVyU2VydmljZTogUGVwUXVlcnlCdWlsZGVyU2VydmljZSkge1xuXG4gICAgfVxuXG4gICAgc2V0IG1heERlcHRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX21heFN0cnVjdHVyZURlcHRoID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IG1heERlcHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4U3RydWN0dXJlRGVwdGg7XG4gICAgfVxuXG4gICAgc2V0IGZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGQ+KSB7XG4gICAgICAgIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5jb252ZXJ0VG9TbWFydEZpbHRlckZpZWxkcyhsaXN0KTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgc2V0IHZhcmlhYmxlRmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdHlwZU1hcHBlciA9IG5ldyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwKCk7XG4gICAgICAgICAgICBsaXN0LmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkVHlwZSA9IHRoaXMuY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlTWFwcGVyLmdldFNtYXJ0RmlsdGVyVHlwZShmaWVsZC5GaWVsZFR5cGUpKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0eSh0aGlzLl92YXJpYWJsZUZpZWxkcywgZmllbGRUeXBlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZUZpZWxkc1tmaWVsZFR5cGVdLnB1c2goZmllbGQuRmllbGRJRCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXSA9IFtmaWVsZC5GaWVsZElEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldCBmb3JtKHZhbHVlOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fZm9ybSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBmb3JtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBidWlsZHMgYSBkeW5hbWljIFVJIHF1ZXJ5IHN0cnVjdHVyZVxuICAgICAqIG1pZ2h0IGhhcyBhIGRpZmZlcmVudCBzdHJ1Y3R1cmUgdGhhbiB0aGUgcXVlcnkncyBkdWUgdG8gcGFyZW50LWNoaWxkIGVsZW1lbnRzIG1lcmdlXG4gICAgICogQHBhcmFtIHF1ZXJ5IGxlZ2FjeSBxdWVyeSAgICAgXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiByZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgYnVpbGRRdWVyeVN0cnVjdHVyZShcbiAgICAgICAgcXVlcnk6IElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtLFxuICAgICAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgLy91cGRhdGUgcm9vdCBvcGVyYXRvciAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHF1ZXJ5LCAnQ29tcGxleElkJykgJiZcbiAgICAgICAgICAgIHF1ZXJ5Py5PcGVyYXRpb24gJiZcbiAgICAgICAgICAgIHF1ZXJ5Lk9wZXJhdGlvbiAhPT0gdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnNldFZhbHVlKHF1ZXJ5Lk9wZXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGF0dGVuKHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnZhbHVlLCBxdWVyeSwgY29udGFpbmVyUmVmLCB0aGlzLl9mb3JtLCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XG4gICAgKiBAcGFyYW0gb2JqIG9iamVjdFxuICAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgKi9cbiAgICBwcml2YXRlIGhhc1Byb3BlcnR5KG9iaiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIFVJIGZpbHRlcnMgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHBhcmVudE9wZXJhdG9yIHBhcmVudCBsZWdhY3kgY29tcGxleCBvcGVyYXRvclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGNoaWxkIGxlZ2FjeSBvYmplY3QgKGVpdGhlciBhbm90aGVyIGNvbXBsZXggb3IgZXhwcmVzc2lvbiB0eXBlKVxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIHByaXZhdGUgZmxhdHRlbihwYXJlbnRPcGVyYXRvcjogc3RyaW5nLCBjdXJyZW50OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkoY3VycmVudCwgJ0NvbXBsZXhJZCcpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwUXVlcnlTZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHBhcmVudE9wZXJhdG9yID09PSBjdXJyZW50Lk9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihjdXJyZW50Lk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihzZWN0aW9uLk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnRXhwcmVzc2lvbklkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShjdXJyZW50IGFzIElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZiwgcGFyZW50Rm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBvZiB0d28gb3IgbW9yZSBjaGlsZCBmaWx0ZXIgaXRlbXNcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgQU5EL09SIG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICogQHBhcmFtIGRlcHRoXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgY3VycmVudCBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlU2VjdGlvbihvcGVyYXRvcjogUGVwT3BlcmF0b3JUeXBlcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuXG4gICAgICAgIC8vIGNvbnN0IHNlY3Rpb25Hcm91cCA9IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgLy8gICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKG9wZXJhdG9yKVxuICAgICAgICAvLyB9KTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBvcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKG9wZXJhdG9yKVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnc2VjdGlvbicpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBzZWN0aW9uJHtjb3VudGVyfWA7XG4gICAgICAgIHBhcmVudEZvcm0uYWRkQ29udHJvbChmb3JtS2V5LCBzZWN0aW9uR3JvdXApO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtID0gc2VjdGlvbkdyb3VwO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVwdGggPSB7XG4gICAgICAgICAgICBjdXJyZW50OiBkZXB0aCxcbiAgICAgICAgICAgIG1heDogdGhpcy5fbWF4U3RydWN0dXJlRGVwdGhcbiAgICAgICAgfTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNyZWF0ZVNlY3Rpb24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmNyZWF0ZVNlY3Rpb24oUGVwT3BlcmF0b3JUeXBlcy5BbmQsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXAsIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlSXRlbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKG51bGwsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVyYXRvckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgIHBhcmVudEZvcm06IHNlY3Rpb25Hcm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVJdGVtKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcGFyZW50Rm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdpdGVtJykpIHsgY291bnRlcisrOyB9IH0pO1xuICAgICAgICBjb25zdCBmb3JtS2V5ID0gYGl0ZW0ke2NvdW50ZXJ9YDtcblxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZm9ybUtleSA9IGZvcm1LZXk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZHMgPSB0aGlzLl9zbWFydEZpbHRlckZpZWxkcztcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnZhcmlhYmxlRmllbGRzID0gdGhpcy5fdmFyaWFibGVGaWVsZHM7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSB0aGlzLmdldFNlbGVjdGVkRmllbGQoY3VycmVudCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSBzZWxlY3RlZEZpZWxkO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5nZXRGaWx0ZXIoY3VycmVudCwgc2VsZWN0ZWRGaWVsZC5zbWFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEZvcm0gPSBwYXJlbnRGb3JtO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woZm9ybUtleSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgc21hcnQgZmlsdGVyIGZpZWxkXG4gICAgICogQHBhcmFtIGN1cnJlbnQgZmlsdGVyIGxlZ2FjeSBlbGVtZW50XG4gICAgICogQHJldHVybnMgc21hcnQgZmlsdGVyIGZpZWxkLCBpZiBub3QgZm91bmQgcmV0dXJucyB0aGUgZmlyc3QgZmllbGRcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRmllbGQoY3VycmVudDogSVBlcFF1ZXJ5SXRlbSk6IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB8IG51bGwge1xuICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuc21hcnQuaWQgPT09IGN1cnJlbnQuQXBpTmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbSA/IGl0ZW0gOiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdpbnQnOlxuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgY2FzZSAncmVhbCc6XG4gICAgICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGxlZ2FjeSBvdXRwdXQgcXVlcnkgXG4gICAgICovXG4gICAgY3JlYXRlT3V0cHV0UXVlcnkoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuX291dHB1dFF1ZXJ5U2VydmljZS5nZW5lcmF0ZVF1ZXJ5KHRoaXMuX2Zvcm0udmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3V0cHV0UXVlcnkkLm5leHQocXVlcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG59Il19
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQTRELE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUt2QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUc5QixNQUFNLE9BQU8sd0JBQXdCO0lBWWpDLFlBQ1ksU0FBbUMsRUFDbkMsbUJBQTBDLEVBQzFDLG9CQUE0QztRQUY1QyxjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBQzFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFkaEQsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsSUFBSSxDQUFDLENBQUM7UUFHNUUsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFFMUIsdUJBQWtCLEdBQUcsbUJBQW1CLENBQUM7UUFFekMsZUFBVSxHQUFtQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRXhELGlCQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQU94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QUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDaEc7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xGO0lBQ0wsQ0FBQztJQUVPLCtCQUErQixDQUFDLElBQVk7UUFDaEQsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxZQUFZO2dCQUNiLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssV0FBVztnQkFDWixPQUFPLE1BQU0sQ0FBQztZQUNsQjtnQkFDSSxPQUFPLElBQUksQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7cUhBaFFRLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgSVBlcFF1ZXJ5QnVpbGRlckZpZWxkLCBJUGVwUXVlcnlTZWN0aW9uLCBJUGVwUXVlcnlJdGVtIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL2xlZ2FjeSc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcE91dHB1dFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbW1vbi9zZXJ2aWNlcy9vdXRwdXQtcXVlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci1zZWN0aW9uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXItaXRlbS9xdWVyeS1idWlsZGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9maWVsZCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3R5cGUtbWFwJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbmNvbnN0IE1BWF9TVFJVQ1RVUkVfREVQVEggPSAzO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlTdHJ1Y3R1cmVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9vdXRwdXRRdWVyeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtPihudWxsKTtcblxuICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyRmllbGRzOiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXI+O1xuICAgIHByaXZhdGUgX3ZhcmlhYmxlRmllbGRzOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIF9mb3JtOiBGb3JtR3JvdXA7XG4gICAgcHJpdmF0ZSBfbWF4U3RydWN0dXJlRGVwdGggPSBNQVhfU1RSVUNUVVJFX0RFUFRIO1xuXG4gICAgcHJpdmF0ZSBfY21wUmVmTWFwOiBNYXA8c3RyaW5nLCBDb21wb25lbnRSZWY8YW55Pj4gPSBuZXcgTWFwKCk7XG5cbiAgICBwdWJsaWMgb3V0cHV0UXVlcnkkID0gdGhpcy5fb3V0cHV0UXVlcnkkLmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3Jlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgX291dHB1dFF1ZXJ5U2VydmljZTogUGVwT3V0cHV0UXVlcnlTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9xdWVyeUJ1aWxkZXJTZXJ2aWNlOiBQZXBRdWVyeUJ1aWxkZXJTZXJ2aWNlKSB7XG5cbiAgICB9XG5cbiAgICBzZXQgbWF4RGVwdGgodmFsdWUpIHtcbiAgICAgICAgdGhpcy5fbWF4U3RydWN0dXJlRGVwdGggPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgbWF4RGVwdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhTdHJ1Y3R1cmVEZXB0aDtcbiAgICB9XG5cbiAgICBzZXQgZmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcbiAgICAgICAgdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHMgPSB0aGlzLl9xdWVyeUJ1aWxkZXJTZXJ2aWNlLmNvbnZlcnRUb1NtYXJ0RmlsdGVyRmllbGRzKGxpc3QpO1xuICAgIH1cblxuICAgIGdldCBoYXNGaWVsZHMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBzZXQgdmFyaWFibGVGaWVsZHMobGlzdDogQXJyYXk8SVBlcFF1ZXJ5QnVpbGRlckZpZWxkPikge1xuICAgICAgICBpZiAobGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB0eXBlTWFwcGVyID0gbmV3IFBlcFF1ZXJ5QnVpbGRlclR5cGVNYXAoKTtcbiAgICAgICAgICAgIGxpc3QuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRUeXBlID0gdGhpcy5jb252ZXJ0U21hcnRGaWx0ZXJDb21wb25lbnRUeXBlKHR5cGVNYXBwZXIuZ2V0U21hcnRGaWx0ZXJUeXBlKGZpZWxkLkZpZWxkVHlwZSkpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHRoaXMuX3ZhcmlhYmxlRmllbGRzLCBmaWVsZFR5cGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3ZhcmlhYmxlRmllbGRzW2ZpZWxkVHlwZV0ucHVzaChmaWVsZC5GaWVsZElEKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZUZpZWxkc1tmaWVsZFR5cGVdID0gW2ZpZWxkLkZpZWxkSURdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0IGZvcm0odmFsdWU6IEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLl9mb3JtID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGZvcm0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGJ1aWxkcyBhIGR5bmFtaWMgVUkgcXVlcnkgc3RydWN0dXJlXG4gICAgICogbWlnaHQgaGFzIGEgZGlmZmVyZW50IHN0cnVjdHVyZSB0aGFuIHRoZSBxdWVyeSdzIGR1ZSB0byBwYXJlbnQtY2hpbGQgZWxlbWVudHMgbWVyZ2VcbiAgICAgKiBAcGFyYW0gcXVlcnkgbGVnYWN5IHF1ZXJ5ICAgICBcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHJlZmVyZW5jZSB0byByb290IGVsZW1lbnRcbiAgICAgKi9cbiAgICBidWlsZFF1ZXJ5U3RydWN0dXJlKFxuICAgICAgICBxdWVyeTogSVBlcFF1ZXJ5U2VjdGlvbiB8IElQZXBRdWVyeUl0ZW0sXG4gICAgICAgIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge1xuICAgICAgICAvLyBSZW1vdmUgYWxsIHRoZSBjb21wb25lbnRzIGZyb20gdGhlIHF1ZXJ5IGJ1aWxkZXIuXG4gICAgICAgIHRoaXMuX2NtcFJlZk1hcC5mb3JFYWNoKCh2YWx1ZTogQ29tcG9uZW50UmVmPGFueT4sIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhrZXksIHZhbHVlKTtcbiAgICAgICAgICAgIC8vIHZhbHVlLmluc3RhbmNlLnJlbW92ZSgpO1xuICAgICAgICAgICAgaWYgKHZhbHVlLmluc3RhbmNlLnBhcmVudEZvcm0pIHtcbiAgICAgICAgICAgICAgICB2YWx1ZS5pbnN0YW5jZS5wYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woa2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHZhbHVlLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuX2NtcFJlZk1hcC5kZWxldGUoa2V5KTtcbiAgICAgICAgfSk7XG4gICAgICAgIFxuICAgICAgICAvLyBDbGVhciBjb250YWluZXJSZWZcbiAgICAgICAgY29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgLy91cGRhdGUgcm9vdCBvcGVyYXRvciAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHF1ZXJ5LCAnQ29tcGxleElkJykgJiZcbiAgICAgICAgICAgIHF1ZXJ5Py5PcGVyYXRpb24gJiZcbiAgICAgICAgICAgIHF1ZXJ5Lk9wZXJhdGlvbiAhPT0gdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnNldFZhbHVlKHF1ZXJ5Lk9wZXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGF0dGVuKHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnZhbHVlLCBxdWVyeSwgY29udGFpbmVyUmVmLCB0aGlzLl9mb3JtLCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XG4gICAgKiBAcGFyYW0gb2JqIG9iamVjdFxuICAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgKi9cbiAgICBwcml2YXRlIGhhc1Byb3BlcnR5KG9iaiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIFVJIGZpbHRlcnMgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHBhcmVudE9wZXJhdG9yIHBhcmVudCBsZWdhY3kgY29tcGxleCBvcGVyYXRvclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGNoaWxkIGxlZ2FjeSBvYmplY3QgKGVpdGhlciBhbm90aGVyIGNvbXBsZXggb3IgZXhwcmVzc2lvbiB0eXBlKVxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIHByaXZhdGUgZmxhdHRlbihwYXJlbnRPcGVyYXRvcjogc3RyaW5nLCBjdXJyZW50OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkoY3VycmVudCwgJ0NvbXBsZXhJZCcpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwUXVlcnlTZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHBhcmVudE9wZXJhdG9yID09PSBjdXJyZW50Lk9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihjdXJyZW50Lk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihzZWN0aW9uLk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnRXhwcmVzc2lvbklkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShjdXJyZW50IGFzIElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZiwgcGFyZW50Rm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBvZiB0d28gb3IgbW9yZSBjaGlsZCBmaWx0ZXIgaXRlbXNcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgQU5EL09SIG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICogQHBhcmFtIGRlcHRoXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgY3VycmVudCBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlU2VjdGlvbihvcGVyYXRvcjogUGVwT3BlcmF0b3JUeXBlcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuXG4gICAgICAgIC8vIGNvbnN0IHNlY3Rpb25Hcm91cCA9IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgLy8gICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKG9wZXJhdG9yKVxuICAgICAgICAvLyB9KTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBvcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKG9wZXJhdG9yKVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnc2VjdGlvbicpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBzZWN0aW9uJHtjb3VudGVyfWA7XG4gICAgICAgIHBhcmVudEZvcm0uYWRkQ29udHJvbChmb3JtS2V5LCBzZWN0aW9uR3JvdXApO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtID0gc2VjdGlvbkdyb3VwO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVwdGggPSB7XG4gICAgICAgICAgICBjdXJyZW50OiBkZXB0aCxcbiAgICAgICAgICAgIG1heDogdGhpcy5fbWF4U3RydWN0dXJlRGVwdGhcbiAgICAgICAgfTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNyZWF0ZVNlY3Rpb24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmNyZWF0ZVNlY3Rpb24oUGVwT3BlcmF0b3JUeXBlcy5BbmQsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXAsIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlSXRlbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKG51bGwsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLl9jbXBSZWZNYXAuaGFzKGZvcm1LZXkpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY21wUmVmTWFwLmRlbGV0ZShmb3JtS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVyYXRvckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBBZGQgdGhpcyB0byByZW1vdmUgYWxsIHRoZSBjb21wb25lbnRzIHdoZW4gZmllbGRzIGNoYW5nZXMuXG4gICAgICAgIHRoaXMuX2NtcFJlZk1hcC5zZXQoZm9ybUtleSwgY29tcG9uZW50UmVmKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgIHBhcmVudEZvcm06IHNlY3Rpb25Hcm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVJdGVtKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcGFyZW50Rm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgICAgXG4gICAgICAgIGxldCBjb3VudGVyID0gMTtcbiAgICAgICAgT2JqZWN0LmtleXMocGFyZW50Rm9ybS5jb250cm9scykuZm9yRWFjaChpdGVtID0+IHsgaWYgKGl0ZW0uaW5jbHVkZXMoJ2l0ZW0nKSkgeyBjb3VudGVyKys7IH0gfSk7XG4gICAgICAgIGNvbnN0IGZvcm1LZXkgPSBgaXRlbSR7Y291bnRlcn1gO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtS2V5ID0gZm9ybUtleTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmZpZWxkcyA9IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UudmFyaWFibGVGaWVsZHMgPSB0aGlzLl92YXJpYWJsZUZpZWxkcztcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRGaWVsZCA9IHRoaXMuZ2V0U2VsZWN0ZWRGaWVsZChjdXJyZW50KTtcbiAgICAgICAgaWYgKHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWxlY3RlZCA9IHNlbGVjdGVkRmllbGQ7XG4gICAgICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWx0ZXIgPSB0aGlzLl9xdWVyeUJ1aWxkZXJTZXJ2aWNlLmdldEZpbHRlcihjdXJyZW50LCBzZWxlY3RlZEZpZWxkLnNtYXJ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucGFyZW50Rm9ybSA9IHBhcmVudEZvcm07XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWx0ZXJDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yZW1vdmUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHBhcmVudEZvcm0ucmVtb3ZlQ29udHJvbChmb3JtS2V5KTtcbiAgICAgICAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgICAgICBpZiAodGhpcy5fY21wUmVmTWFwLmhhcyhmb3JtS2V5KSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NtcFJlZk1hcC5kZWxldGUoZm9ybUtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFkZCB0aGlzIHRvIHJlbW92ZSBhbGwgdGhlIGNvbXBvbmVudHMgd2hlbiBmaWVsZHMgY2hhbmdlcy5cbiAgICAgICAgdGhpcy5fY21wUmVmTWFwLnNldChmb3JtS2V5LCBjb21wb25lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGdldCBzbWFydCBmaWx0ZXIgZmllbGRcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcmV0dXJucyBzbWFydCBmaWx0ZXIgZmllbGQsIGlmIG5vdCBmb3VuZCByZXR1cm5zIHRoZSBmaXJzdCBmaWVsZFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0U2VsZWN0ZWRGaWVsZChjdXJyZW50OiBJUGVwUXVlcnlJdGVtKTogSVBlcFF1ZXJ5QnVpbGRlckZpZWxkQ29udGFpbmVyIHwgbnVsbCB7XG4gICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHMuZmluZChmaWVsZCA9PiBmaWVsZC5zbWFydC5pZCA9PT0gY3VycmVudC5BcGlOYW1lKTtcbiAgICAgICAgICAgIHJldHVybiBpdGVtID8gaXRlbSA6IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHNbMF0gOiBudWxsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzPy5sZW5ndGggPiAwID8gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHNbMF0gOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0U21hcnRGaWx0ZXJDb21wb25lbnRUeXBlKHR5cGU6IHN0cmluZykge1xuICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2ludCc6XG4gICAgICAgICAgICBjYXNlICdjdXJyZW5jeSc6XG4gICAgICAgICAgICBjYXNlICdyZWFsJzpcbiAgICAgICAgICAgIGNhc2UgJ3BlcmNlbnRhZ2UnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUtdGltZSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICdkYXRlJztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgbGVnYWN5IG91dHB1dCBxdWVyeSBcbiAgICAgKi9cbiAgICBjcmVhdGVPdXRwdXRRdWVyeSgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5fb3V0cHV0UXVlcnlTZXJ2aWNlLmdlbmVyYXRlUXVlcnkodGhpcy5fZm9ybS52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9vdXRwdXRRdWVyeSQubmV4dChxdWVyeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbn0iXX0=