nuxeo-development-framework 5.2.3 → 5.2.4

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 (372) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +7109 -711
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/dynamic-search/dynamic-search/dynamic-search.component.js +48 -34
  4. package/esm2015/lib/components/dynamic-search/dynamic-search.module.js +5 -5
  5. package/esm2015/lib/components/ndf-datepicker/adapters/hijri-adapter.js +203 -0
  6. package/esm2015/lib/components/ndf-datepicker/adapters/index.js +3 -0
  7. package/esm2015/lib/components/ndf-datepicker/adapters/moment-adapter.js +186 -0
  8. package/esm2015/lib/components/ndf-datepicker/base/base-value-accessor.js +92 -0
  9. package/esm2015/lib/components/ndf-datepicker/base/index.js +2 -0
  10. package/esm2015/lib/components/ndf-datepicker/components/base-datepicker.js +37 -0
  11. package/esm2015/lib/components/ndf-datepicker/components/index.js +4 -0
  12. package/esm2015/lib/components/ndf-datepicker/components/input-date.component.js +110 -0
  13. package/esm2015/lib/components/ndf-datepicker/components/input-range-date.component.js +124 -0
  14. package/esm2015/lib/components/ndf-datepicker/constants/date-locale-keys.js +7 -0
  15. package/esm2015/lib/components/ndf-datepicker/constants/date-picker.js +2 -0
  16. package/esm2015/lib/components/ndf-datepicker/constants/date-type.js +5 -0
  17. package/esm2015/lib/components/ndf-datepicker/constants/formats.js +24 -0
  18. package/esm2015/lib/components/ndf-datepicker/constants/hijri-dates-names.js +117 -0
  19. package/esm2015/lib/components/ndf-datepicker/constants/index.js +6 -0
  20. package/esm2015/lib/components/ndf-datepicker/containers/datepicker-container.js +37 -0
  21. package/esm2015/lib/components/ndf-datepicker/containers/index.js +3 -0
  22. package/esm2015/lib/components/ndf-datepicker/containers/ndf-gregorian-datepicker.component.js +105 -0
  23. package/esm2015/lib/components/ndf-datepicker/containers/ndf-hijri-datepicker.component.js +112 -0
  24. package/esm2015/lib/components/ndf-datepicker/index.js +10 -0
  25. package/esm2015/lib/components/ndf-datepicker/models/data-types.js +2 -0
  26. package/esm2015/lib/components/ndf-datepicker/models/index.js +3 -0
  27. package/esm2015/lib/components/ndf-datepicker/models/value-object.js +2 -0
  28. package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.component.js +198 -0
  29. package/esm2015/lib/components/ndf-datepicker/ndf-datepicker.module.js +66 -0
  30. package/esm2015/lib/components/ndf-datepicker/services/calendar.service.js +130 -0
  31. package/esm2015/lib/components/ndf-datepicker/services/index.js +3 -0
  32. package/esm2015/lib/components/ndf-datepicker/services/localize-state.service.js +41 -0
  33. package/esm2015/lib/components/no-data-found/index.js +3 -0
  34. package/esm2015/lib/components/no-data-found/no-data-found.component.js +33 -0
  35. package/esm2015/lib/components/no-data-found/no-data.module.js +19 -0
  36. package/esm2015/lib/components/notifications/models/common.js +1 -1
  37. package/esm2015/lib/components/{dynamic-table → tables/dynamic-table}/directives/empty-state.directive.js +1 -1
  38. package/esm2015/lib/components/tables/dynamic-table/dynamic-table/dynamic-table.component.js +353 -0
  39. package/esm2015/lib/components/tables/dynamic-table/dynamic-table.module.js +51 -0
  40. package/esm2015/lib/components/tables/dynamic-table/index.js +2 -0
  41. package/esm2015/lib/components/tables/dynamic-table/public-api.js +5 -0
  42. package/esm2015/lib/components/tables/dynamic-table/services/dynamic-table.service.js +16 -0
  43. package/esm2015/lib/components/{dynamic-table → tables}/index.js +1 -1
  44. package/esm2015/lib/components/tables/ndf-table/components/index.js +6 -0
  45. package/esm2015/lib/components/tables/ndf-table/components/mode-toggler/mode-toggler.component.js +45 -0
  46. package/esm2015/lib/components/tables/ndf-table/components/sorting-list/sorting-list.component.js +42 -0
  47. package/esm2015/lib/components/tables/ndf-table/components/table-columns-toggler/table-columns-toggler.component.js +123 -0
  48. package/esm2015/lib/components/tables/ndf-table/components/table-export/table-export.component.js +41 -0
  49. package/esm2015/lib/components/tables/ndf-table/components/text-search/text-search.component.js +74 -0
  50. package/esm2015/lib/components/tables/ndf-table/constants/index.js +2 -0
  51. package/esm2015/lib/components/tables/ndf-table/constants/sizes.js +19 -0
  52. package/esm2015/lib/components/tables/ndf-table/containers/index.js +2 -0
  53. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +404 -0
  54. package/esm2015/lib/components/tables/ndf-table/directives/actions.directive.js +28 -0
  55. package/esm2015/lib/components/tables/ndf-table/directives/filter-custom.directive.js +28 -0
  56. package/esm2015/lib/components/tables/ndf-table/directives/fluid-height.directive.js +112 -0
  57. package/esm2015/lib/components/tables/ndf-table/directives/index.js +5 -0
  58. package/esm2015/lib/components/tables/ndf-table/directives/search.directive.js +28 -0
  59. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-aggregation-field.component.js +91 -0
  60. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-checkbox-radio.component.js +66 -0
  61. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-custom-field.component.js +46 -0
  62. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-predicate-field.component.js +43 -0
  63. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-value-accessor.component.js +34 -0
  64. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/index.js +6 -0
  65. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/field-header.component.js +36 -0
  66. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.js +97 -0
  67. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +43 -0
  68. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-collapse-control/filter-collapse-control.component.js +44 -0
  69. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-date-range/filter-date-range.component.js +89 -0
  70. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-empty-message.component.js +30 -0
  71. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-option-text/filter-option-text.component.js +33 -0
  72. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-options-sort/filter-options-sort.component.js +34 -0
  73. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-search-input/filter-search-input.component.js +36 -0
  74. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/html-dialog/html-dialog.component.js +34 -0
  75. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/index.js +10 -0
  76. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-autocomplete/aggregation-autocomplete.component.js +109 -0
  77. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-checkbox/aggregation-checkbox.component.js +65 -0
  78. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-custom/aggregation-custom.component.js +66 -0
  79. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-date-list/aggregation-date-list.component.js +219 -0
  80. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-radio/aggregation-radio.component.js +68 -0
  81. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-select/aggregation-select.component.js +83 -0
  82. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-switch/aggregation-switch.component.js +71 -0
  83. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/index.js +11 -0
  84. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/predicate-date-input/predicate-date-input.component.js +146 -0
  85. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/predicate-text-input/predicate-text-input.component.js +144 -0
  86. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/common.js +4 -0
  87. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/field.js +6 -0
  88. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/index.js +5 -0
  89. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/operators.js +18 -0
  90. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/sort.js +23 -0
  91. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/type.js +26 -0
  92. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/aggregation-field/aggregation-field.component.js +78 -0
  93. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/base-field.js +62 -0
  94. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/custom-field/custom-field.component.js +73 -0
  95. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/filters-panel/base-filters-panel.js +55 -0
  96. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/filters-panel/filters-panel.component.js +122 -0
  97. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/index.js +5 -0
  98. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/predicate-field/predicate-field.component.js +71 -0
  99. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/active-user-switch.component.js +55 -0
  100. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/active-user.service.js +17 -0
  101. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/user-types.js +2 -0
  102. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/index.js +2 -0
  103. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/autocomplete-template.directive.js +28 -0
  104. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/checkbox-template.directive.js +28 -0
  105. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/custom-template.directive.js +28 -0
  106. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/date-template.directive.js +28 -0
  107. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/dropdown-label-template.directive.js +53 -0
  108. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/dropdown-template.directive.js +28 -0
  109. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/index.js +9 -0
  110. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/radio-template.directive.js +28 -0
  111. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/switch-template.directive.js +28 -0
  112. package/esm2015/lib/components/tables/ndf-table/filters-panel/filters-panel.module.js +205 -0
  113. package/esm2015/lib/components/tables/ndf-table/filters-panel/index.js +12 -0
  114. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/aggregation-field-config.js +2 -0
  115. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/aggregation-response.model.js +2 -0
  116. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/base-field-config.js +2 -0
  117. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/common.js +2 -0
  118. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/custom-field-config.js +2 -0
  119. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-config.model.js +2 -0
  120. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/autocomplete-options.js +2 -0
  121. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/checkbox-options.js +2 -0
  122. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/common-utils.js +2 -0
  123. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/custom-fields-options.js +2 -0
  124. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/custom-options.js +2 -0
  125. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/date-list-options.js +2 -0
  126. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/date-options.js +2 -0
  127. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/dropdown-options.js +2 -0
  128. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/index.js +12 -0
  129. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/input-options.js +2 -0
  130. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/radio-options.js +2 -0
  131. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/switch-options.js +2 -0
  132. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/filter-option.model.js +2 -0
  133. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/form-query-request.js +2 -0
  134. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/index.js +13 -0
  135. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/predicate-field-config.js +2 -0
  136. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/types-helper.js +2 -0
  137. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/value-object.model.js +12 -0
  138. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/autocomplete-filter.pipe.js +27 -0
  139. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/filter.pipe.js +27 -0
  140. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/hash-translate.pipe.js +52 -0
  141. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/index.js +9 -0
  142. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/localized-label.pipe.js +28 -0
  143. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/roles-filters.pipe.js +31 -0
  144. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/sanitizer.pipe.js +34 -0
  145. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/sort.pipe.js +40 -0
  146. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/tooltip.pipe.js +69 -0
  147. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.js +105 -0
  148. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/dynamic-component-loader.service.js +59 -0
  149. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/filters-query.service.js +117 -0
  150. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/index.js +5 -0
  151. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/ndf-transform.service.js +80 -0
  152. package/esm2015/lib/components/tables/ndf-table/filters-panel/utility/index.js +3 -0
  153. package/esm2015/lib/components/tables/ndf-table/filters-panel/utility/nxql.js +47 -0
  154. package/esm2015/lib/components/tables/ndf-table/filters-panel/utility/object.js +42 -0
  155. package/esm2015/lib/components/tables/ndf-table/index.js +2 -0
  156. package/esm2015/lib/components/tables/ndf-table/models/index.js +8 -0
  157. package/esm2015/lib/components/tables/ndf-table/models/payload-types.js +2 -0
  158. package/esm2015/lib/components/tables/ndf-table/models/search.config.js +2 -0
  159. package/esm2015/lib/components/tables/ndf-table/models/table-column.js +2 -0
  160. package/esm2015/lib/components/tables/ndf-table/models/table-config.js +2 -0
  161. package/esm2015/lib/components/tables/ndf-table/models/table-mode.js +2 -0
  162. package/esm2015/lib/components/tables/ndf-table/models/table-options.js +2 -0
  163. package/esm2015/lib/components/tables/ndf-table/models/types.js +2 -0
  164. package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +104 -0
  165. package/esm2015/lib/components/tables/ndf-table/public-api.js +8 -0
  166. package/esm2015/lib/components/tables/ndf-table/services/filters-mapper.service.js +60 -0
  167. package/esm2015/lib/components/tables/ndf-table/services/index.js +3 -0
  168. package/esm2015/lib/components/tables/ndf-table/services/ndf-table.service.js +27 -0
  169. package/esm2015/lib/components/tables/ndf-table/utils/index.js +2 -0
  170. package/esm2015/lib/components/tables/ndf-table/utils/nxql-query.js +52 -0
  171. package/esm2015/lib/components/tables/public-api.js +4 -0
  172. package/esm2015/lib/components/tables/table/dynamic-column/dynamic-column.component.js +68 -0
  173. package/esm2015/lib/components/tables/table/dynamic-component.js +59 -0
  174. package/esm2015/lib/components/tables/table/index.js +2 -0
  175. package/esm2015/lib/components/{table → tables/table}/page-sizes-list/page-sizes-list.component.js +1 -1
  176. package/esm2015/lib/components/tables/table/public-api.js +6 -0
  177. package/esm2015/lib/components/{table → tables/table}/table/table.component.js +10 -10
  178. package/esm2015/lib/components/tables/table/table.module.js +69 -0
  179. package/esm2015/lib/core/services/index.js +3 -0
  180. package/esm2015/lib/shared/models/index.js +2 -1
  181. package/esm2015/lib/shared/models/types-helper.js +2 -0
  182. package/esm2015/public-api.js +4 -7
  183. package/fesm2015/nuxeo-development-framework.js +6330 -551
  184. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  185. package/lib/components/dynamic-search/dynamic-search/dynamic-search.component.d.ts +1 -1
  186. package/lib/components/dynamic-search/dynamic-search.module.d.ts +1 -1
  187. package/lib/components/ndf-datepicker/adapters/hijri-adapter.d.ts +35 -0
  188. package/lib/components/ndf-datepicker/adapters/index.d.ts +2 -0
  189. package/lib/components/ndf-datepicker/adapters/moment-adapter.d.ts +50 -0
  190. package/lib/components/ndf-datepicker/base/base-value-accessor.d.ts +38 -0
  191. package/lib/components/ndf-datepicker/base/index.d.ts +1 -0
  192. package/lib/components/ndf-datepicker/components/base-datepicker.d.ts +13 -0
  193. package/lib/components/ndf-datepicker/components/index.d.ts +3 -0
  194. package/lib/components/ndf-datepicker/components/input-date.component.d.ts +19 -0
  195. package/lib/components/ndf-datepicker/components/input-range-date.component.d.ts +19 -0
  196. package/lib/components/ndf-datepicker/constants/date-locale-keys.d.ts +6 -0
  197. package/lib/components/ndf-datepicker/constants/date-picker.d.ts +1 -0
  198. package/lib/components/ndf-datepicker/constants/date-type.d.ts +4 -0
  199. package/lib/components/ndf-datepicker/constants/formats.d.ts +5 -0
  200. package/lib/components/ndf-datepicker/constants/hijri-dates-names.d.ts +12 -0
  201. package/lib/components/ndf-datepicker/constants/index.d.ts +5 -0
  202. package/lib/components/ndf-datepicker/containers/datepicker-container.d.ts +15 -0
  203. package/lib/components/ndf-datepicker/containers/index.d.ts +2 -0
  204. package/lib/components/ndf-datepicker/containers/ndf-gregorian-datepicker.component.d.ts +10 -0
  205. package/lib/components/ndf-datepicker/containers/ndf-hijri-datepicker.component.d.ts +10 -0
  206. package/lib/components/ndf-datepicker/index.d.ts +9 -0
  207. package/lib/components/ndf-datepicker/models/data-types.d.ts +11 -0
  208. package/lib/components/ndf-datepicker/models/index.d.ts +2 -0
  209. package/lib/components/ndf-datepicker/models/value-object.d.ts +8 -0
  210. package/lib/components/ndf-datepicker/ndf-datepicker.component.d.ts +42 -0
  211. package/lib/components/ndf-datepicker/ndf-datepicker.module.d.ts +20 -0
  212. package/lib/components/ndf-datepicker/services/calendar.service.d.ts +33 -0
  213. package/lib/components/ndf-datepicker/services/index.d.ts +2 -0
  214. package/lib/components/ndf-datepicker/services/localize-state.service.d.ts +34 -0
  215. package/lib/components/no-data-found/index.d.ts +2 -0
  216. package/lib/components/no-data-found/no-data-found.component.d.ts +8 -0
  217. package/lib/components/no-data-found/no-data.module.d.ts +9 -0
  218. package/lib/components/notifications/models/common.d.ts +0 -1
  219. package/lib/components/{dynamic-table → tables/dynamic-table}/dynamic-table/dynamic-table.component.d.ts +7 -3
  220. package/lib/components/{dynamic-table → tables/dynamic-table}/dynamic-table.module.d.ts +3 -3
  221. package/lib/components/tables/index.d.ts +1 -0
  222. package/lib/components/tables/ndf-table/components/index.d.ts +5 -0
  223. package/lib/components/tables/ndf-table/components/mode-toggler/mode-toggler.component.d.ts +13 -0
  224. package/lib/components/tables/ndf-table/components/sorting-list/sorting-list.component.d.ts +12 -0
  225. package/lib/components/tables/ndf-table/components/table-columns-toggler/table-columns-toggler.component.d.ts +35 -0
  226. package/lib/components/tables/ndf-table/components/table-export/table-export.component.d.ts +13 -0
  227. package/lib/components/tables/ndf-table/components/text-search/text-search.component.d.ts +21 -0
  228. package/lib/components/tables/ndf-table/constants/index.d.ts +1 -0
  229. package/lib/components/tables/ndf-table/constants/sizes.d.ts +4 -0
  230. package/lib/components/tables/ndf-table/containers/index.d.ts +1 -0
  231. package/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.d.ts +119 -0
  232. package/lib/components/tables/ndf-table/directives/actions.directive.d.ts +9 -0
  233. package/lib/components/tables/ndf-table/directives/filter-custom.directive.d.ts +9 -0
  234. package/lib/components/tables/ndf-table/directives/fluid-height.directive.d.ts +36 -0
  235. package/lib/components/tables/ndf-table/directives/index.d.ts +4 -0
  236. package/lib/components/tables/ndf-table/directives/search.directive.d.ts +9 -0
  237. package/lib/components/tables/ndf-table/filters-panel/base/base-aggregation-field.component.d.ts +35 -0
  238. package/lib/components/tables/ndf-table/filters-panel/base/base-checkbox-radio.component.d.ts +22 -0
  239. package/lib/components/tables/ndf-table/filters-panel/base/base-custom-field.component.d.ts +19 -0
  240. package/lib/components/tables/ndf-table/filters-panel/base/base-predicate-field.component.d.ts +15 -0
  241. package/lib/components/tables/ndf-table/filters-panel/base/base-value-accessor.component.d.ts +20 -0
  242. package/lib/components/tables/ndf-table/filters-panel/base/index.d.ts +5 -0
  243. package/lib/components/tables/ndf-table/filters-panel/components/__parts/field-header.component.d.ts +5 -0
  244. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.d.ts +35 -0
  245. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-autocomplete-input/filter-autocomplete.service.d.ts +13 -0
  246. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-collapse-control/filter-collapse-control.component.d.ts +12 -0
  247. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-date-range/filter-date-range.component.d.ts +16 -0
  248. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-empty-message.component.d.ts +6 -0
  249. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-option-text/filter-option-text.component.d.ts +9 -0
  250. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-options-sort/filter-options-sort.component.d.ts +11 -0
  251. package/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-search-input/filter-search-input.component.d.ts +10 -0
  252. package/lib/components/tables/ndf-table/filters-panel/components/__parts/html-dialog/html-dialog.component.d.ts +10 -0
  253. package/lib/components/tables/ndf-table/filters-panel/components/__parts/index.d.ts +9 -0
  254. package/lib/components/tables/ndf-table/filters-panel/components/aggregation-autocomplete/aggregation-autocomplete.component.d.ts +20 -0
  255. package/lib/components/tables/ndf-table/filters-panel/components/aggregation-checkbox/aggregation-checkbox.component.d.ts +10 -0
  256. package/lib/components/tables/ndf-table/filters-panel/components/aggregation-custom/aggregation-custom.component.d.ts +9 -0
  257. package/lib/components/tables/ndf-table/filters-panel/components/aggregation-date-list/aggregation-date-list.component.d.ts +41 -0
  258. package/lib/components/tables/ndf-table/filters-panel/components/aggregation-radio/aggregation-radio.component.d.ts +11 -0
  259. package/lib/components/tables/ndf-table/filters-panel/components/aggregation-select/aggregation-select.component.d.ts +14 -0
  260. package/lib/components/tables/ndf-table/filters-panel/components/aggregation-switch/aggregation-switch.component.d.ts +11 -0
  261. package/lib/components/tables/ndf-table/filters-panel/components/index.d.ts +10 -0
  262. package/lib/components/tables/ndf-table/filters-panel/components/predicate-date-input/predicate-date-input.component.d.ts +25 -0
  263. package/lib/components/tables/ndf-table/filters-panel/components/predicate-text-input/predicate-text-input.component.d.ts +40 -0
  264. package/lib/components/tables/ndf-table/filters-panel/constants/common.d.ts +3 -0
  265. package/lib/components/tables/ndf-table/filters-panel/constants/field.d.ts +5 -0
  266. package/lib/components/tables/ndf-table/filters-panel/constants/index.d.ts +4 -0
  267. package/lib/components/tables/ndf-table/filters-panel/constants/operators.d.ts +17 -0
  268. package/lib/components/tables/ndf-table/filters-panel/constants/sort.d.ts +2 -0
  269. package/lib/components/tables/ndf-table/filters-panel/constants/type.d.ts +25 -0
  270. package/lib/components/tables/ndf-table/filters-panel/containers/aggregation-field/aggregation-field.component.d.ts +13 -0
  271. package/lib/components/tables/ndf-table/filters-panel/containers/base-field.d.ts +21 -0
  272. package/lib/components/tables/ndf-table/filters-panel/containers/custom-field/custom-field.component.d.ts +13 -0
  273. package/lib/components/tables/ndf-table/filters-panel/containers/filters-panel/base-filters-panel.d.ts +19 -0
  274. package/lib/components/tables/ndf-table/filters-panel/containers/filters-panel/filters-panel.component.d.ts +48 -0
  275. package/lib/components/tables/ndf-table/filters-panel/containers/index.d.ts +4 -0
  276. package/lib/components/tables/ndf-table/filters-panel/containers/predicate-field/predicate-field.component.d.ts +12 -0
  277. package/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/active-user-switch.component.d.ts +14 -0
  278. package/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/active-user.service.d.ts +8 -0
  279. package/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/user-types.d.ts +29 -0
  280. package/lib/components/tables/ndf-table/filters-panel/custom-components/index.d.ts +1 -0
  281. package/lib/components/tables/ndf-table/filters-panel/directives/autocomplete-template.directive.d.ts +9 -0
  282. package/lib/components/tables/ndf-table/filters-panel/directives/checkbox-template.directive.d.ts +9 -0
  283. package/lib/components/tables/ndf-table/filters-panel/directives/custom-template.directive.d.ts +9 -0
  284. package/lib/components/tables/ndf-table/filters-panel/directives/date-template.directive.d.ts +9 -0
  285. package/lib/components/tables/ndf-table/filters-panel/directives/dropdown-label-template.directive.d.ts +16 -0
  286. package/lib/components/tables/ndf-table/filters-panel/directives/dropdown-template.directive.d.ts +9 -0
  287. package/lib/components/tables/ndf-table/filters-panel/directives/index.d.ts +8 -0
  288. package/lib/components/tables/ndf-table/filters-panel/directives/radio-template.directive.d.ts +9 -0
  289. package/lib/components/tables/ndf-table/filters-panel/directives/switch-template.directive.d.ts +9 -0
  290. package/lib/components/tables/ndf-table/filters-panel/filters-panel.module.d.ts +65 -0
  291. package/lib/components/tables/ndf-table/filters-panel/index.d.ts +11 -0
  292. package/lib/components/tables/ndf-table/filters-panel/models/aggregation-field-config.d.ts +42 -0
  293. package/lib/components/tables/ndf-table/filters-panel/models/aggregation-response.model.d.ts +20 -0
  294. package/lib/components/tables/ndf-table/filters-panel/models/base-field-config.d.ts +13 -0
  295. package/lib/components/tables/ndf-table/filters-panel/models/common.d.ts +5 -0
  296. package/lib/components/tables/ndf-table/filters-panel/models/custom-field-config.d.ts +7 -0
  297. package/lib/components/tables/ndf-table/filters-panel/models/field-config.model.d.ts +14 -0
  298. package/lib/components/tables/ndf-table/filters-panel/models/field-options/autocomplete-options.d.ts +6 -0
  299. package/lib/components/tables/ndf-table/filters-panel/models/field-options/checkbox-options.d.ts +6 -0
  300. package/lib/components/tables/ndf-table/filters-panel/models/field-options/common-utils.d.ts +35 -0
  301. package/lib/components/tables/ndf-table/filters-panel/models/field-options/custom-fields-options.d.ts +9 -0
  302. package/lib/components/tables/ndf-table/filters-panel/models/field-options/custom-options.d.ts +5 -0
  303. package/lib/components/tables/ndf-table/filters-panel/models/field-options/date-list-options.d.ts +10 -0
  304. package/lib/components/tables/ndf-table/filters-panel/models/field-options/date-options.d.ts +22 -0
  305. package/lib/components/tables/ndf-table/filters-panel/models/field-options/dropdown-options.d.ts +6 -0
  306. package/lib/components/tables/ndf-table/filters-panel/models/field-options/index.d.ts +11 -0
  307. package/lib/components/tables/ndf-table/filters-panel/models/field-options/input-options.d.ts +40 -0
  308. package/lib/components/tables/ndf-table/filters-panel/models/field-options/radio-options.d.ts +6 -0
  309. package/lib/components/tables/ndf-table/filters-panel/models/field-options/switch-options.d.ts +6 -0
  310. package/lib/components/tables/ndf-table/filters-panel/models/filter-option.model.d.ts +13 -0
  311. package/lib/components/tables/ndf-table/filters-panel/models/form-query-request.d.ts +5 -0
  312. package/lib/components/tables/ndf-table/filters-panel/models/index.d.ts +12 -0
  313. package/lib/components/tables/ndf-table/filters-panel/models/predicate-field-config.d.ts +7 -0
  314. package/lib/components/tables/ndf-table/filters-panel/models/types-helper.d.ts +47 -0
  315. package/lib/components/tables/ndf-table/filters-panel/models/value-object.model.d.ts +18 -0
  316. package/lib/components/tables/ndf-table/filters-panel/pipes/autocomplete-filter.pipe.d.ts +11 -0
  317. package/lib/components/tables/ndf-table/filters-panel/pipes/filter.pipe.d.ts +11 -0
  318. package/lib/components/tables/ndf-table/filters-panel/pipes/hash-translate.pipe.d.ts +18 -0
  319. package/lib/components/tables/ndf-table/filters-panel/pipes/index.d.ts +8 -0
  320. package/lib/components/tables/ndf-table/filters-panel/pipes/localized-label.pipe.d.ts +14 -0
  321. package/lib/components/tables/ndf-table/filters-panel/pipes/roles-filters.pipe.d.ts +12 -0
  322. package/lib/components/tables/ndf-table/filters-panel/pipes/sanitizer.pipe.d.ts +10 -0
  323. package/lib/components/tables/ndf-table/filters-panel/pipes/sort.pipe.d.ts +11 -0
  324. package/lib/components/tables/ndf-table/filters-panel/pipes/tooltip.pipe.d.ts +21 -0
  325. package/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.d.ts +16 -0
  326. package/lib/components/tables/ndf-table/filters-panel/services/dynamic-component-loader.service.d.ts +18 -0
  327. package/lib/components/tables/ndf-table/filters-panel/services/filters-query.service.d.ts +58 -0
  328. package/lib/components/tables/ndf-table/filters-panel/services/index.d.ts +4 -0
  329. package/lib/components/tables/ndf-table/filters-panel/services/ndf-transform.service.d.ts +55 -0
  330. package/lib/components/tables/ndf-table/filters-panel/utility/index.d.ts +2 -0
  331. package/lib/components/tables/ndf-table/filters-panel/utility/nxql.d.ts +19 -0
  332. package/lib/components/tables/ndf-table/filters-panel/utility/object.d.ts +7 -0
  333. package/lib/components/tables/ndf-table/index.d.ts +1 -0
  334. package/lib/components/tables/ndf-table/models/index.d.ts +7 -0
  335. package/lib/components/tables/ndf-table/models/payload-types.d.ts +28 -0
  336. package/lib/components/tables/ndf-table/models/search.config.d.ts +13 -0
  337. package/lib/components/tables/ndf-table/models/table-column.d.ts +34 -0
  338. package/lib/components/tables/ndf-table/models/table-config.d.ts +45 -0
  339. package/lib/components/tables/ndf-table/models/table-mode.d.ts +25 -0
  340. package/lib/components/tables/ndf-table/models/table-options.d.ts +54 -0
  341. package/lib/components/tables/ndf-table/models/types.d.ts +38 -0
  342. package/lib/components/tables/ndf-table/ndf-table.module.d.ts +32 -0
  343. package/lib/components/tables/ndf-table/public-api.d.ts +7 -0
  344. package/lib/components/tables/ndf-table/services/filters-mapper.service.d.ts +17 -0
  345. package/lib/components/tables/ndf-table/services/index.d.ts +2 -0
  346. package/lib/components/tables/ndf-table/services/ndf-table.service.d.ts +10 -0
  347. package/lib/components/tables/ndf-table/utils/index.d.ts +1 -0
  348. package/lib/components/tables/ndf-table/utils/nxql-query.d.ts +10 -0
  349. package/lib/components/tables/public-api.d.ts +3 -0
  350. package/lib/components/{table → tables/table}/dynamic-column/dynamic-column.component.d.ts +1 -1
  351. package/lib/components/{table → tables/table}/dynamic-component.d.ts +1 -1
  352. package/lib/components/tables/table/index.d.ts +1 -0
  353. package/lib/components/tables/table/public-api.d.ts +5 -0
  354. package/lib/components/{table → tables/table}/table/table.component.d.ts +3 -3
  355. package/lib/components/{table → tables/table}/table.module.d.ts +3 -3
  356. package/lib/core/services/index.d.ts +2 -0
  357. package/lib/shared/models/index.d.ts +1 -0
  358. package/lib/shared/models/types-helper.d.ts +1 -0
  359. package/package.json +3 -2
  360. package/public-api.d.ts +3 -6
  361. package/esm2015/lib/components/dynamic-table/dynamic-table/dynamic-table.component.js +0 -349
  362. package/esm2015/lib/components/dynamic-table/dynamic-table.module.js +0 -51
  363. package/esm2015/lib/components/dynamic-table/public-api.js +0 -5
  364. package/esm2015/lib/components/dynamic-table/services/dynamic-table.service.js +0 -16
  365. package/esm2015/lib/components/table/dynamic-column/dynamic-column.component.js +0 -68
  366. package/esm2015/lib/components/table/dynamic-component.js +0 -59
  367. package/esm2015/lib/components/table/table.module.js +0 -69
  368. /package/lib/components/{dynamic-table → tables/dynamic-table}/directives/empty-state.directive.d.ts +0 -0
  369. /package/lib/components/{dynamic-table → tables/dynamic-table}/index.d.ts +0 -0
  370. /package/lib/components/{dynamic-table → tables/dynamic-table}/public-api.d.ts +0 -0
  371. /package/lib/components/{dynamic-table → tables/dynamic-table}/services/dynamic-table.service.d.ts +0 -0
  372. /package/lib/components/{table → tables/table}/page-sizes-list/page-sizes-list.component.d.ts +0 -0
@@ -0,0 +1,68 @@
1
+ import { SelectionModel } from '@angular/cdk/collections';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, forwardRef, TemplateRef, ViewEncapsulation } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { AggregationBaseSelectionComponent } from '../../base';
5
+ import { RADIO_TEMPLATE } from '../../directives';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../__parts/field-header.component";
8
+ import * as i2 from "../__parts/filter-options-sort/filter-options-sort.component";
9
+ import * as i3 from "../__parts/filter-search-input/filter-search-input.component";
10
+ import * as i4 from "../__parts/filter-autocomplete-input/filter-autocomplete-input.component";
11
+ import * as i5 from "@angular/material/radio";
12
+ import * as i6 from "../__parts/filter-option-text/filter-option-text.component";
13
+ import * as i7 from "../__parts/filter-empty-message.component";
14
+ import * as i8 from "../__parts/filter-collapse-control/filter-collapse-control.component";
15
+ import * as i9 from "@angular/common";
16
+ import * as i10 from "@ngx-translate/core";
17
+ import * as i11 from "../../pipes/filter.pipe";
18
+ export class AggregationRadioComponent extends AggregationBaseSelectionComponent {
19
+ constructor() {
20
+ super(...arguments);
21
+ this.selectionModel = new SelectionModel(false, []);
22
+ }
23
+ ngOnInit() {
24
+ this.updateValue();
25
+ }
26
+ }
27
+ AggregationRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
+ AggregationRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AggregationRadioComponent, selector: "app-aggregation-radio", host: { classAttribute: "filter-radio" }, providers: [
29
+ {
30
+ provide: NG_VALUE_ACCESSOR,
31
+ useExisting: forwardRef(() => AggregationRadioComponent),
32
+ multi: true
33
+ },
34
+ {
35
+ provide: NG_VALIDATORS,
36
+ useExisting: forwardRef(() => AggregationRadioComponent),
37
+ multi: true
38
+ }
39
+ ], queries: [{ propertyName: "radioTemplate", first: true, predicate: RADIO_TEMPLATE, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"options$ | async as options\">\r\n\t<field-header *ngIf=\"fieldConfig.label && !renderOptions?.hideLabel\" class=\"filter-radio__label\">\r\n\t\t<span>\r\n\t\t\t{{ fieldConfig.label | translate }}\r\n\t\t</span>\r\n\t\t<filter-options-sort *ngIf=\"renderOptions?.sort\" (sortChange)=\"sortChange($event)\"></filter-options-sort>\r\n\t</field-header>\r\n\r\n\t<filter-search-input\r\n\t\tclass=\"filter-radio__filter\"\r\n\t\t*ngIf=\"renderOptions?.filter\"\r\n\t\t[(searchText)]=\"searchText\"\r\n\t></filter-search-input>\r\n\r\n\t<filter-autocomplete-input\r\n\t\t*ngIf=\"renderOptions?.search\"\r\n\t\t[fieldConfig]=\"fieldConfig\"\r\n\t\t[direction]=\"direction\"\r\n\t\t[language]=\"language\"\r\n\t\t(searchChange)=\"emitValue($event)\"\r\n\t></filter-autocomplete-input>\r\n\r\n\t<ng-container *ngIf=\"options | filter: searchText as filteredOptions\">\r\n\t\t<div class=\"filter-radio__wrapper\">\r\n\t\t\t<mat-radio-button\r\n\t\t\t\tclass=\"filter-radio__item\"\r\n\t\t\t\t*ngFor=\"let option of filteredOptions; index as index\"\r\n\t\t\t\t[checked]=\"selectionModel.isSelected(option.value)\"\r\n\t\t\t\t(change)=\"selectionModel.toggle(option.value)\"\r\n\t\t\t\t[class.checkedBox]=\"selectionModel.isSelected(option.value)\"\r\n\t\t\t\t[class.unCheckedBox]=\"!selectionModel.isSelected(option.value)\"\r\n\t\t\t\t[class.hidden]=\"renderOptions?.collapse && index + 1 > visibleItemsCount\"\r\n\t\t\t>\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || defaultTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: option, fieldConfig, aggregation }\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultTemplate>\r\n\t\t\t\t\t<filter-option-text\r\n\t\t\t\t\t\t[option]=\"option\"\r\n\t\t\t\t\t\t[language]=\"language\"\r\n\t\t\t\t\t\t[showCount]=\"renderOptions?.showTotal\"\r\n\t\t\t\t\t></filter-option-text>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</mat-radio-button>\r\n\t\t</div>\r\n\r\n\t\t<filter-empty-message *ngIf=\"!filteredOptions.length\" class=\"filter-radio__empty\"></filter-empty-message>\r\n\r\n\t\t<filter-collapse-control\r\n\t\t\tclass=\"filter-radio__collapse\"\r\n\t\t\t*ngIf=\"renderOptions?.collapse\"\r\n\t\t\t[minCount]=\"expandedCount\"\r\n\t\t\t[(visibleCount)]=\"visibleItemsCount\"\r\n\t\t\t[totalItems]=\"filteredOptions.length\"\r\n\t\t></filter-collapse-control>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [".filter-radio{display:var(--fr-display, block)}.filter-radio__label{display:var(--fr-label-display, block);margin-block:var(--fr-label-margin-block, 0 .5rem);margin-inline:var(--fr-label-margin-inline, 0 .2rem);padding:var(--fr-padding, .2rem);font-weight:var(--fr-weight, 600)}.filter-radio__wrapper{display:var(--fr-wrapper-display, flex);flex-direction:var(--fr-wrapper-direction, column)}.filter-radio__item{padding-inline-start:.5rem;margin-bottom:var(--filter-row-margin-bottom, .3rem)}.filter-radio__item.hidden{display:none}.filter-radio__item .mat-radio-label{display:flex}.filter-radio__item .mat-radio-label .mat-radio-label-content{flex-grow:1}\n"], components: [{ type: i1.FieldHeaderComponent, selector: "field-header" }, { type: i2.FilterOptionsSortComponent, selector: "filter-options-sort", inputs: ["options", "sort"], outputs: ["sortChange"] }, { type: i3.FilterSearchInputComponent, selector: "filter-search-input", inputs: ["searchText"], outputs: ["searchTextChange"] }, { type: i4.FilterAutocompleteInputComponent, selector: "filter-autocomplete-input", inputs: ["direction", "language", "fieldConfig"], outputs: ["searchChange"] }, { type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { type: i6.FilterOptionTextComponent, selector: "filter-option-text", inputs: ["option", "showCount", "language"] }, { type: i7.FilterEmptyMessageComponent, selector: "filter-empty-message", inputs: ["message"] }, { type: i8.FilterCollapseControlComponent, selector: "filter-collapse-control", inputs: ["minCount", "totalItems", "visibleCount"], outputs: ["visibleCountChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i9.AsyncPipe, "translate": i10.TranslatePipe, "filter": i11.FilterPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationRadioComponent, decorators: [{
41
+ type: Component,
42
+ args: [{
43
+ selector: 'app-aggregation-radio',
44
+ templateUrl: './aggregation-radio.component.html',
45
+ styleUrls: ['./aggregation-radio.component.scss'],
46
+ encapsulation: ViewEncapsulation.None,
47
+ changeDetection: ChangeDetectionStrategy.OnPush,
48
+ providers: [
49
+ {
50
+ provide: NG_VALUE_ACCESSOR,
51
+ useExisting: forwardRef(() => AggregationRadioComponent),
52
+ multi: true
53
+ },
54
+ {
55
+ provide: NG_VALIDATORS,
56
+ useExisting: forwardRef(() => AggregationRadioComponent),
57
+ multi: true
58
+ }
59
+ ],
60
+ host: {
61
+ class: 'filter-radio'
62
+ }
63
+ }]
64
+ }], propDecorators: { radioTemplate: [{
65
+ type: ContentChild,
66
+ args: [RADIO_TEMPLATE, { read: TemplateRef, static: true }]
67
+ }] } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tcmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2ZpbHRlcnMtcGFuZWwvY29tcG9uZW50cy9hZ2dyZWdhdGlvbi1yYWRpby9hZ2dyZWdhdGlvbi1yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZmlsdGVycy1wYW5lbC9jb21wb25lbnRzL2FnZ3JlZ2F0aW9uLXJhZGlvL2FnZ3JlZ2F0aW9uLXJhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQ04sdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUVWLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUF3QmxELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxpQ0FBMEM7SUF0QnpGOztRQXlCQyxtQkFBYyxHQUFHLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUkvQztJQUhBLFFBQVE7UUFDUCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7dUhBTlcseUJBQXlCOzJHQUF6Qix5QkFBeUIsMEZBaEIxQjtRQUNWO1lBQ0MsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO1lBQ3hELEtBQUssRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNDLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7WUFDeEQsS0FBSyxFQUFFLElBQUk7U0FDWDtLQUNELHFFQU1hLGNBQWMsMkJBQVUsV0FBVyxrRUN0Q2xELHMzRUEyREE7NEZEdEJhLHlCQUF5QjtrQkF0QnJDLFNBQVM7bUJBQUM7b0JBQ1YsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsV0FBVyxFQUFFLG9DQUFvQztvQkFDakQsU0FBUyxFQUFFLENBQUMsb0NBQW9DLENBQUM7b0JBQ2pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsU0FBUyxFQUFFO3dCQUNWOzRCQUNDLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWDt3QkFDRDs0QkFDQyxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMEJBQTBCLENBQUM7NEJBQ3hELEtBQUssRUFBRSxJQUFJO3lCQUNYO3FCQUNEO29CQUNELElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUsY0FBYztxQkFDckI7aUJBQ0Q7OEJBR0EsYUFBYTtzQkFEWixZQUFZO3VCQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHtcclxuXHRDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuXHRDb21wb25lbnQsXHJcblx0Q29udGVudENoaWxkLFxyXG5cdGZvcndhcmRSZWYsXHJcblx0T25Jbml0LFxyXG5cdFRlbXBsYXRlUmVmLFxyXG5cdFZpZXdFbmNhcHN1bGF0aW9uXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQWdncmVnYXRpb25CYXNlU2VsZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcbmltcG9ydCB7IFJBRElPX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1hZ2dyZWdhdGlvbi1yYWRpbycsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2FnZ3JlZ2F0aW9uLXJhZGlvLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9hZ2dyZWdhdGlvbi1yYWRpby5jb21wb25lbnQuc2NzcyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBZ2dyZWdhdGlvblJhZGlvQ29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFnZ3JlZ2F0aW9uUmFkaW9Db21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fVxyXG5cdF0sXHJcblx0aG9zdDoge1xyXG5cdFx0Y2xhc3M6ICdmaWx0ZXItcmFkaW8nXHJcblx0fVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25SYWRpb0NvbXBvbmVudCBleHRlbmRzIEFnZ3JlZ2F0aW9uQmFzZVNlbGVjdGlvbkNvbXBvbmVudDwncmFkaW8nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblx0QENvbnRlbnRDaGlsZChSQURJT19URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXHJcblx0cmFkaW9UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcclxuXHRzZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbChmYWxzZSwgW10pO1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy51cGRhdGVWYWx1ZSgpO1xyXG5cdH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zXCI+XHJcblx0PGZpZWxkLWhlYWRlciAqbmdJZj1cImZpZWxkQ29uZmlnLmxhYmVsICYmICFyZW5kZXJPcHRpb25zPy5oaWRlTGFiZWxcIiBjbGFzcz1cImZpbHRlci1yYWRpb19fbGFiZWxcIj5cclxuXHRcdDxzcGFuPlxyXG5cdFx0XHR7eyBmaWVsZENvbmZpZy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0PC9zcGFuPlxyXG5cdFx0PGZpbHRlci1vcHRpb25zLXNvcnQgKm5nSWY9XCJyZW5kZXJPcHRpb25zPy5zb3J0XCIgKHNvcnRDaGFuZ2UpPVwic29ydENoYW5nZSgkZXZlbnQpXCI+PC9maWx0ZXItb3B0aW9ucy1zb3J0PlxyXG5cdDwvZmllbGQtaGVhZGVyPlxyXG5cclxuXHQ8ZmlsdGVyLXNlYXJjaC1pbnB1dFxyXG5cdFx0Y2xhc3M9XCJmaWx0ZXItcmFkaW9fX2ZpbHRlclwiXHJcblx0XHQqbmdJZj1cInJlbmRlck9wdGlvbnM/LmZpbHRlclwiXHJcblx0XHRbKHNlYXJjaFRleHQpXT1cInNlYXJjaFRleHRcIlxyXG5cdD48L2ZpbHRlci1zZWFyY2gtaW5wdXQ+XHJcblxyXG5cdDxmaWx0ZXItYXV0b2NvbXBsZXRlLWlucHV0XHJcblx0XHQqbmdJZj1cInJlbmRlck9wdGlvbnM/LnNlYXJjaFwiXHJcblx0XHRbZmllbGRDb25maWddPVwiZmllbGRDb25maWdcIlxyXG5cdFx0W2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG5cdFx0W2xhbmd1YWdlXT1cImxhbmd1YWdlXCJcclxuXHRcdChzZWFyY2hDaGFuZ2UpPVwiZW1pdFZhbHVlKCRldmVudClcIlxyXG5cdD48L2ZpbHRlci1hdXRvY29tcGxldGUtaW5wdXQ+XHJcblxyXG5cdDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zIHwgZmlsdGVyOiBzZWFyY2hUZXh0IGFzIGZpbHRlcmVkT3B0aW9uc1wiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImZpbHRlci1yYWRpb19fd3JhcHBlclwiPlxyXG5cdFx0XHQ8bWF0LXJhZGlvLWJ1dHRvblxyXG5cdFx0XHRcdGNsYXNzPVwiZmlsdGVyLXJhZGlvX19pdGVtXCJcclxuXHRcdFx0XHQqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGZpbHRlcmVkT3B0aW9uczsgaW5kZXggYXMgaW5kZXhcIlxyXG5cdFx0XHRcdFtjaGVja2VkXT1cInNlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQob3B0aW9uLnZhbHVlKVwiXHJcblx0XHRcdFx0KGNoYW5nZSk9XCJzZWxlY3Rpb25Nb2RlbC50b2dnbGUob3B0aW9uLnZhbHVlKVwiXHJcblx0XHRcdFx0W2NsYXNzLmNoZWNrZWRCb3hdPVwic2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24udmFsdWUpXCJcclxuXHRcdFx0XHRbY2xhc3MudW5DaGVja2VkQm94XT1cIiFzZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbi52YWx1ZSlcIlxyXG5cdFx0XHRcdFtjbGFzcy5oaWRkZW5dPVwicmVuZGVyT3B0aW9ucz8uY29sbGFwc2UgJiYgaW5kZXggKyAxID4gdmlzaWJsZUl0ZW1zQ291bnRcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRlbXBsYXRlIHx8IGRlZmF1bHRUZW1wbGF0ZVwiXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG9wdGlvbiwgZmllbGRDb25maWcsIGFnZ3JlZ2F0aW9uIH1cIlxyXG5cdFx0XHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8ZmlsdGVyLW9wdGlvbi10ZXh0XHJcblx0XHRcdFx0XHRcdFtvcHRpb25dPVwib3B0aW9uXCJcclxuXHRcdFx0XHRcdFx0W2xhbmd1YWdlXT1cImxhbmd1YWdlXCJcclxuXHRcdFx0XHRcdFx0W3Nob3dDb3VudF09XCJyZW5kZXJPcHRpb25zPy5zaG93VG90YWxcIlxyXG5cdFx0XHRcdFx0PjwvZmlsdGVyLW9wdGlvbi10ZXh0PlxyXG5cdFx0XHRcdDwvbmctdGVtcGxhdGU+XHJcblx0XHRcdDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuXHRcdDwvZGl2PlxyXG5cclxuXHRcdDxmaWx0ZXItZW1wdHktbWVzc2FnZSAqbmdJZj1cIiFmaWx0ZXJlZE9wdGlvbnMubGVuZ3RoXCIgY2xhc3M9XCJmaWx0ZXItcmFkaW9fX2VtcHR5XCI+PC9maWx0ZXItZW1wdHktbWVzc2FnZT5cclxuXHJcblx0XHQ8ZmlsdGVyLWNvbGxhcHNlLWNvbnRyb2xcclxuXHRcdFx0Y2xhc3M9XCJmaWx0ZXItcmFkaW9fX2NvbGxhcHNlXCJcclxuXHRcdFx0Km5nSWY9XCJyZW5kZXJPcHRpb25zPy5jb2xsYXBzZVwiXHJcblx0XHRcdFttaW5Db3VudF09XCJleHBhbmRlZENvdW50XCJcclxuXHRcdFx0Wyh2aXNpYmxlQ291bnQpXT1cInZpc2libGVJdGVtc0NvdW50XCJcclxuXHRcdFx0W3RvdGFsSXRlbXNdPVwiZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiXHJcblx0XHQ+PC9maWx0ZXItY29sbGFwc2UtY29udHJvbD5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -0,0 +1,83 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, Input, ViewEncapsulation } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { BaseAggregationField } from '../../base';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../__parts/field-header.component";
6
+ import * as i2 from "@ng-select/ng-select";
7
+ import * as i3 from "../__parts/filter-option-text/filter-option-text.component";
8
+ import * as i4 from "@angular/common";
9
+ import * as i5 from "@angular/forms";
10
+ import * as i6 from "@ngx-translate/core";
11
+ import * as i7 from "../../pipes/localized-label.pipe";
12
+ export class AggregationSelectComponent extends BaseAggregationField {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.searchFn = (term, item) => {
16
+ term = term.toLowerCase();
17
+ let searchString = item.localizedLabel
18
+ ? `${item.localizedLabel[this.language]}`
19
+ : `${this.translateService.instant(item.label)}`;
20
+ return searchString.toLowerCase().includes(term);
21
+ };
22
+ }
23
+ writeValue(obj) {
24
+ var _a;
25
+ if (obj) {
26
+ const isMulti = (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.multiple;
27
+ this.internalValue = Array.isArray(obj) && !isMulti ? obj[0] : obj;
28
+ this.cdr.detectChanges();
29
+ }
30
+ else if (this._isFieldDirty) {
31
+ this.internalValue = null;
32
+ this._isFieldDirty = false;
33
+ }
34
+ }
35
+ updateValue(value) {
36
+ this.internalValue = value;
37
+ this.onChange(this._isValueObject() ? this._prepareValueObject(value) : value);
38
+ this._isFieldDirty = Array.isArray(value) ? !!(value === null || value === void 0 ? void 0 : value.length) : !!value;
39
+ }
40
+ }
41
+ AggregationSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
42
+ AggregationSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AggregationSelectComponent, selector: "app-aggregation-select", inputs: { labelTemplate: "labelTemplate", multiLabelTemplate: "multiLabelTemplate" }, host: { classAttribute: "filter-dropdown" }, providers: [
43
+ {
44
+ provide: NG_VALUE_ACCESSOR,
45
+ useExisting: forwardRef(() => AggregationSelectComponent),
46
+ multi: true
47
+ },
48
+ {
49
+ provide: NG_VALIDATORS,
50
+ useExisting: forwardRef(() => AggregationSelectComponent),
51
+ multi: true
52
+ }
53
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"options$ | async as options\">\r\n\t<field-header *ngIf=\"fieldConfig.label && !renderOptions?.hideLabel\" class=\"filter-dropdown__label\">{{\r\n\t\tfieldConfig.label | translate\r\n\t}}</field-header>\r\n\r\n\t<div class=\"filter-dropdown__wrapper\">\r\n\t\t<ng-select\r\n\t\t\tclass=\"filter-dropdown__wrapper__select\"\r\n\t\t\t[items]=\"options\"\r\n\t\t\tbindValue=\"value\"\r\n\t\t\t[multiple]=\"renderOptions?.multiple\"\r\n\t\t\t[closeOnSelect]=\"!renderOptions?.multiple\"\r\n\t\t\t[ngModel]=\"internalValue\"\r\n\t\t\t(ngModelChange)=\"updateValue($event)\"\r\n\t\t\t[notFoundText]=\"emptyPlaceholder || 'SELECT.notFoundText' | translate\"\r\n\t\t\t[placeholder]=\"placeholder || 'SELECT.placeholder' | translate\"\r\n\t\t\t[clearAllText]=\"clearAllText || 'SELECT.clearAllText' | translate\"\r\n\t\t\t[typeToSearchText]=\"\r\n\t\t\t\ttypeToSearchText || 'SELECT.typeToSearchText' | translate\r\n\t\t\t\"\r\n\t\t\t[searchFn]=\"searchFn\"\r\n\t\t>\r\n\t\t\t<ng-template ng-option-tmp let-item=\"item\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || defaultTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: item, fieldConfig, aggregation }\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultTemplate>\r\n\t\t\t\t\t<filter-option-text\r\n\t\t\t\t\t\t[option]=\"item\"\r\n\t\t\t\t\t\t[language]=\"language\"\r\n\t\t\t\t\t\t[showCount]=\"renderOptions?.showTotal\"\r\n\t\t\t\t\t></filter-option-text>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-template>\r\n\r\n\t\t\t<ng-template ng-multi-label-tmp let-items=\"items\" let-clear=\"clear\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"multiLabelTemplate || defaultMultiLabelTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: items,\r\n\t\t\t\t\t\tfieldConfig,\r\n\t\t\t\t\t\taggregation,\r\n\t\t\t\t\t\tclear\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t\t<ng-template #defaultMultiLabelTemplate>\r\n\t\t\t\t\t<div *ngFor=\"let item of items\" class=\"ng-value\">\r\n\t\t\t\t\t\t<span class=\"ng-value-label\">{{\r\n\t\t\t\t\t\t\titem | localizedLabel : language\r\n\t\t\t\t\t\t}}</span>\r\n\t\t\t\t\t\t<button\r\n\t\t\t\t\t\t\tclass=\"ng-value-icon left\"\r\n\t\t\t\t\t\t\t(click)=\"clear(item)\"\r\n\t\t\t\t\t\t\taria-hidden=\"true\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\u00D7\r\n\t\t\t\t\t\t</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-template>\r\n\r\n\t\t\t<ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate || defaultLabelTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{\r\n\t\t\t\t\t\t$implicit: item,\r\n\t\t\t\t\t\tfieldConfig,\r\n\t\t\t\t\t\taggregation,\r\n\t\t\t\t\t\tclear\r\n\t\t\t\t\t}\"\r\n\t\t\t\t></ng-container>\r\n\t\t\t\t<ng-template #defaultLabelTemplate>\r\n\t\t\t\t\t<filter-option-text\r\n\t\t\t\t\t\t[option]=\"item\"\r\n\t\t\t\t\t\t[language]=\"language\"\r\n\t\t\t\t\t\t[showCount]=\"renderOptions?.showTotal\"\r\n\t\t\t\t\t></filter-option-text>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</ng-template>\r\n\t\t</ng-select>\r\n\t</div>\r\n</ng-container>\r\n", styles: [".filter-dropdown{--ng-input-position: absolute;display:var(--fa-dropdown-display, block)}.filter-dropdown__wrapper{margin-inline:var(--fa-dropdown-margin-inline, .5rem);margin-block:var(--fa-dropdown-margin-block, 0);max-width:var(--fa-dropdown-max-width, 300px)}.filter-dropdown .ng-value-container .ng-value{white-space:normal}\n"], components: [{ type: i1.FieldHeaderComponent, selector: "field-header" }, { type: i2.NgSelectComponent, selector: "ng-select", inputs: ["markFirst", "dropdownPosition", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "bufferAmount", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "bindLabel", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "virtualScroll", "openOnEnter", "appendTo", "bindValue", "appearance", "maxSelectedItems", "groupBy", "groupValue", "tabIndex", "typeahead"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { type: i3.FilterOptionTextComponent, selector: "filter-option-text", inputs: ["option", "showCount", "language"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i2.ɵf, selector: "[ng-option-tmp]" }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i2.ɵi, selector: "[ng-multi-label-tmp]" }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.ɵh, selector: "[ng-label-tmp]" }], pipes: { "async": i4.AsyncPipe, "translate": i6.TranslatePipe, "localizedLabel": i7.LocalizedLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationSelectComponent, decorators: [{
55
+ type: Component,
56
+ args: [{
57
+ selector: 'app-aggregation-select',
58
+ templateUrl: './aggregation-select.component.html',
59
+ styleUrls: ['./aggregation-select.component.scss'],
60
+ encapsulation: ViewEncapsulation.None,
61
+ changeDetection: ChangeDetectionStrategy.OnPush,
62
+ providers: [
63
+ {
64
+ provide: NG_VALUE_ACCESSOR,
65
+ useExisting: forwardRef(() => AggregationSelectComponent),
66
+ multi: true
67
+ },
68
+ {
69
+ provide: NG_VALIDATORS,
70
+ useExisting: forwardRef(() => AggregationSelectComponent),
71
+ multi: true
72
+ }
73
+ ],
74
+ host: {
75
+ class: 'filter-dropdown'
76
+ }
77
+ }]
78
+ }], propDecorators: { labelTemplate: [{
79
+ type: Input
80
+ }], multiLabelTemplate: [{
81
+ type: Input
82
+ }] } });
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9maWx0ZXJzLXBhbmVsL2NvbXBvbmVudHMvYWdncmVnYXRpb24tc2VsZWN0L2FnZ3JlZ2F0aW9uLXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZmlsdGVycy1wYW5lbC9jb21wb25lbnRzL2FnZ3JlZ2F0aW9uLXNlbGVjdC9hZ2dyZWdhdGlvbi1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFlLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7OztBQXlCbEQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLG9CQUFnQztJQXRCaEY7O1FBMkJDLGFBQVEsR0FBRyxDQUFDLElBQVksRUFBRSxJQUFrQixFQUFFLEVBQUU7WUFDL0MsSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUUxQixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUMsY0FBYztnQkFDckMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ3pDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFFbEQsT0FBTyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQztLQWtCRjtJQWhCQSxVQUFVLENBQUMsR0FBc0I7O1FBQ2hDLElBQUksR0FBRyxFQUFFO1lBQ1IsTUFBTSxPQUFPLEdBQUcsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxRQUFRLENBQUM7WUFDN0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNuRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQ3pCO2FBQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzNCO0lBQ0YsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUF3QjtRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvRSxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxNQUFNLENBQUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RSxDQUFDOzt3SEE5QlcsMEJBQTBCOzRHQUExQiwwQkFBMEIsb0xBaEIzQjtRQUNWO1lBQ0MsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1lBQ3pELEtBQUssRUFBRSxJQUFJO1NBQ1g7UUFDRDtZQUNDLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDekQsS0FBSyxFQUFFLElBQUk7U0FDWDtLQUNELGlEQ3RCRixpbkdBb0ZBOzRGRHpEYSwwQkFBMEI7a0JBdEJ0QyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFdBQVcsRUFBRSxxQ0FBcUM7b0JBQ2xELFNBQVMsRUFBRSxDQUFDLHFDQUFxQyxDQUFDO29CQUNsRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7d0JBQ0Q7NEJBQ0MsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDOzRCQUN6RCxLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFDRDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0wsS0FBSyxFQUFFLGlCQUFpQjtxQkFDeEI7aUJBQ0Q7OEJBRVMsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYXNlQWdncmVnYXRpb25GaWVsZCB9IGZyb20gJy4uLy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBGaWx0ZXJPcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtYWdncmVnYXRpb24tc2VsZWN0JyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vYWdncmVnYXRpb24tc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9hZ2dyZWdhdGlvbi1zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWdncmVnYXRpb25TZWxlY3RDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQWdncmVnYXRpb25TZWxlY3RDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fVxyXG5cdF0sXHJcblx0aG9zdDoge1xyXG5cdFx0Y2xhc3M6ICdmaWx0ZXItZHJvcGRvd24nXHJcblx0fVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25TZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlQWdncmVnYXRpb25GaWVsZDwnZHJvcGRvd24nPiB7XHJcblx0QElucHV0KCkgbGFiZWxUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiB8IHVuZGVmaW5lZDtcclxuXHRASW5wdXQoKSBtdWx0aUxhYmVsVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcblx0aW50ZXJuYWxWYWx1ZTogc3RyaW5nIHwgc3RyaW5nW107XHJcblxyXG5cdHNlYXJjaEZuID0gKHRlcm06IHN0cmluZywgaXRlbTogRmlsdGVyT3B0aW9uKSA9PiB7XHJcblx0XHR0ZXJtID0gdGVybS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuXHRcdGxldCBzZWFyY2hTdHJpbmcgPSBpdGVtLmxvY2FsaXplZExhYmVsXHJcblx0XHRcdD8gYCR7aXRlbS5sb2NhbGl6ZWRMYWJlbFt0aGlzLmxhbmd1YWdlXX1gXHJcblx0XHRcdDogYCR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoaXRlbS5sYWJlbCl9YDtcclxuXHJcblx0XHRyZXR1cm4gc2VhcmNoU3RyaW5nLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModGVybSk7XHJcblx0fTtcclxuXHJcblx0d3JpdGVWYWx1ZShvYmo6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdGNvbnN0IGlzTXVsdGkgPSB0aGlzLnJlbmRlck9wdGlvbnM/Lm11bHRpcGxlO1xyXG5cdFx0XHR0aGlzLmludGVybmFsVmFsdWUgPSBBcnJheS5pc0FycmF5KG9iaikgJiYgIWlzTXVsdGkgPyBvYmpbMF0gOiBvYmo7XHJcblx0XHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdH0gZWxzZSBpZiAodGhpcy5faXNGaWVsZERpcnR5KSB7XHJcblx0XHRcdHRoaXMuaW50ZXJuYWxWYWx1ZSA9IG51bGw7XHJcblx0XHRcdHRoaXMuX2lzRmllbGREaXJ0eSA9IGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dXBkYXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XHJcblx0XHR0aGlzLmludGVybmFsVmFsdWUgPSB2YWx1ZTtcclxuXHRcdHRoaXMub25DaGFuZ2UodGhpcy5faXNWYWx1ZU9iamVjdCgpID8gdGhpcy5fcHJlcGFyZVZhbHVlT2JqZWN0KHZhbHVlKSA6IHZhbHVlKTtcclxuXHRcdHRoaXMuX2lzRmllbGREaXJ0eSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gISF2YWx1ZT8ubGVuZ3RoIDogISF2YWx1ZTtcclxuXHR9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnMkIHwgYXN5bmMgYXMgb3B0aW9uc1wiPlxyXG5cdDxmaWVsZC1oZWFkZXIgKm5nSWY9XCJmaWVsZENvbmZpZy5sYWJlbCAmJiAhcmVuZGVyT3B0aW9ucz8uaGlkZUxhYmVsXCIgY2xhc3M9XCJmaWx0ZXItZHJvcGRvd25fX2xhYmVsXCI+e3tcclxuXHRcdGZpZWxkQ29uZmlnLmxhYmVsIHwgdHJhbnNsYXRlXHJcblx0fX08L2ZpZWxkLWhlYWRlcj5cclxuXHJcblx0PGRpdiBjbGFzcz1cImZpbHRlci1kcm9wZG93bl9fd3JhcHBlclwiPlxyXG5cdFx0PG5nLXNlbGVjdFxyXG5cdFx0XHRjbGFzcz1cImZpbHRlci1kcm9wZG93bl9fd3JhcHBlcl9fc2VsZWN0XCJcclxuXHRcdFx0W2l0ZW1zXT1cIm9wdGlvbnNcIlxyXG5cdFx0XHRiaW5kVmFsdWU9XCJ2YWx1ZVwiXHJcblx0XHRcdFttdWx0aXBsZV09XCJyZW5kZXJPcHRpb25zPy5tdWx0aXBsZVwiXHJcblx0XHRcdFtjbG9zZU9uU2VsZWN0XT1cIiFyZW5kZXJPcHRpb25zPy5tdWx0aXBsZVwiXHJcblx0XHRcdFtuZ01vZGVsXT1cImludGVybmFsVmFsdWVcIlxyXG5cdFx0XHQobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCJcclxuXHRcdFx0W25vdEZvdW5kVGV4dF09XCJlbXB0eVBsYWNlaG9sZGVyIHx8ICdTRUxFQ1Qubm90Rm91bmRUZXh0JyB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCAnU0VMRUNULnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFtjbGVhckFsbFRleHRdPVwiY2xlYXJBbGxUZXh0IHx8ICdTRUxFQ1QuY2xlYXJBbGxUZXh0JyB8IHRyYW5zbGF0ZVwiXHJcblx0XHRcdFt0eXBlVG9TZWFyY2hUZXh0XT1cIlxyXG5cdFx0XHRcdHR5cGVUb1NlYXJjaFRleHQgfHwgJ1NFTEVDVC50eXBlVG9TZWFyY2hUZXh0JyB8IHRyYW5zbGF0ZVxyXG5cdFx0XHRcIlxyXG5cdFx0XHRbc2VhcmNoRm5dPVwic2VhcmNoRm5cIlxyXG5cdFx0PlxyXG5cdFx0XHQ8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50VGVtcGxhdGUgfHwgZGVmYXVsdFRlbXBsYXRlXCJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSwgZmllbGRDb25maWcsIGFnZ3JlZ2F0aW9uIH1cIlxyXG5cdFx0XHRcdD48L25nLWNvbnRhaW5lcj5cclxuXHJcblx0XHRcdFx0PG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8ZmlsdGVyLW9wdGlvbi10ZXh0XHJcblx0XHRcdFx0XHRcdFtvcHRpb25dPVwiaXRlbVwiXHJcblx0XHRcdFx0XHRcdFtsYW5ndWFnZV09XCJsYW5ndWFnZVwiXHJcblx0XHRcdFx0XHRcdFtzaG93Q291bnRdPVwicmVuZGVyT3B0aW9ucz8uc2hvd1RvdGFsXCJcclxuXHRcdFx0XHRcdD48L2ZpbHRlci1vcHRpb24tdGV4dD5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cclxuXHRcdFx0PG5nLXRlbXBsYXRlIG5nLW11bHRpLWxhYmVsLXRtcCBsZXQtaXRlbXM9XCJpdGVtc1wiIGxldC1jbGVhcj1cImNsZWFyXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwibXVsdGlMYWJlbFRlbXBsYXRlIHx8IGRlZmF1bHRNdWx0aUxhYmVsVGVtcGxhdGVcIlxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuXHRcdFx0XHRcdFx0JGltcGxpY2l0OiBpdGVtcyxcclxuXHRcdFx0XHRcdFx0ZmllbGRDb25maWcsXHJcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uLFxyXG5cdFx0XHRcdFx0XHRjbGVhclxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE11bHRpTGFiZWxUZW1wbGF0ZT5cclxuXHRcdFx0XHRcdDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXNcIiBjbGFzcz1cIm5nLXZhbHVlXCI+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGNsYXNzPVwibmctdmFsdWUtbGFiZWxcIj57e1xyXG5cdFx0XHRcdFx0XHRcdGl0ZW0gfCBsb2NhbGl6ZWRMYWJlbCA6IGxhbmd1YWdlXHJcblx0XHRcdFx0XHRcdH19PC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uXHJcblx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJuZy12YWx1ZS1pY29uIGxlZnRcIlxyXG5cdFx0XHRcdFx0XHRcdChjbGljayk9XCJjbGVhcihpdGVtKVwiXHJcblx0XHRcdFx0XHRcdFx0YXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuXHRcdFx0XHRcdFx0PlxyXG5cdFx0XHRcdFx0XHRcdMOXXHJcblx0XHRcdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHRcdFx0PC9uZy10ZW1wbGF0ZT5cclxuXHJcblx0XHRcdDxuZy10ZW1wbGF0ZSBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cclxuXHRcdFx0XHQ8bmctY29udGFpbmVyXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRlbXBsYXRlIHx8IGRlZmF1bHRMYWJlbFRlbXBsYXRlXCJcclxuXHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcblx0XHRcdFx0XHRcdCRpbXBsaWNpdDogaXRlbSxcclxuXHRcdFx0XHRcdFx0ZmllbGRDb25maWcsXHJcblx0XHRcdFx0XHRcdGFnZ3JlZ2F0aW9uLFxyXG5cdFx0XHRcdFx0XHRjbGVhclxyXG5cdFx0XHRcdFx0fVwiXHJcblx0XHRcdFx0PjwvbmctY29udGFpbmVyPlxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdExhYmVsVGVtcGxhdGU+XHJcblx0XHRcdFx0XHQ8ZmlsdGVyLW9wdGlvbi10ZXh0XHJcblx0XHRcdFx0XHRcdFtvcHRpb25dPVwiaXRlbVwiXHJcblx0XHRcdFx0XHRcdFtsYW5ndWFnZV09XCJsYW5ndWFnZVwiXHJcblx0XHRcdFx0XHRcdFtzaG93Q291bnRdPVwicmVuZGVyT3B0aW9ucz8uc2hvd1RvdGFsXCJcclxuXHRcdFx0XHRcdD48L2ZpbHRlci1vcHRpb24tdGV4dD5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0PC9uZy1zZWxlY3Q+XHJcblx0PC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -0,0 +1,71 @@
1
+ import { SelectionModel } from '@angular/cdk/collections';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, forwardRef, TemplateRef, ViewEncapsulation } from '@angular/core';
3
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { AggregationBaseSelectionComponent } from '../../base';
5
+ import { SWITCH_TEMPLATE } from '../../directives';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../__parts/field-header.component";
8
+ import * as i2 from "../__parts/filter-options-sort/filter-options-sort.component";
9
+ import * as i3 from "../__parts/filter-search-input/filter-search-input.component";
10
+ import * as i4 from "../__parts/filter-autocomplete-input/filter-autocomplete-input.component";
11
+ import * as i5 from "@angular/material/slide-toggle";
12
+ import * as i6 from "../__parts/filter-option-text/filter-option-text.component";
13
+ import * as i7 from "../__parts/filter-empty-message.component";
14
+ import * as i8 from "../__parts/filter-collapse-control/filter-collapse-control.component";
15
+ import * as i9 from "@angular/common";
16
+ import * as i10 from "@ngx-translate/core";
17
+ import * as i11 from "../../pipes/filter.pipe";
18
+ export class AggregationSwitchComponent extends AggregationBaseSelectionComponent {
19
+ constructor() {
20
+ var _a;
21
+ super(...arguments);
22
+ this.selectionModel = new SelectionModel((_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.multiple, []);
23
+ }
24
+ ngOnInit() {
25
+ var _a, _b, _c;
26
+ this.selectionModel = new SelectionModel((_b = (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.multiple) !== null && _b !== void 0 ? _b : true, (_c = this.internalValue) !== null && _c !== void 0 ? _c : []);
27
+ this.updateValue();
28
+ }
29
+ }
30
+ AggregationSwitchComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationSwitchComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
31
+ AggregationSwitchComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AggregationSwitchComponent, selector: "app-aggregation-switch", host: { classAttribute: "filter-switch" }, providers: [
32
+ {
33
+ provide: NG_VALUE_ACCESSOR,
34
+ useExisting: forwardRef(() => AggregationSwitchComponent),
35
+ multi: true
36
+ },
37
+ {
38
+ provide: NG_VALIDATORS,
39
+ useExisting: forwardRef(() => AggregationSwitchComponent),
40
+ multi: true
41
+ }
42
+ ], queries: [{ propertyName: "switchTemplate", first: true, predicate: SWITCH_TEMPLATE, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"options$ | async as options\">\r\n\t<field-header *ngIf=\"fieldConfig.label && !renderOptions?.hideLabel\" class=\"filter-switch__label\">\r\n\t\t<span>\r\n\t\t\t{{ fieldConfig.label | translate }}\r\n\t\t</span>\r\n\t\t<filter-options-sort *ngIf=\"renderOptions?.sort\" (sortChange)=\"sortChange($event)\"></filter-options-sort>\r\n\t</field-header>\r\n\r\n\t<filter-search-input\r\n\t\tclass=\"filter-switch__filter\"\r\n\t\t*ngIf=\"renderOptions?.filter\"\r\n\t\t[(searchText)]=\"searchText\"\r\n\t></filter-search-input>\r\n\r\n\t<filter-autocomplete-input\r\n\t\t*ngIf=\"renderOptions?.search\"\r\n\t\t[fieldConfig]=\"fieldConfig\"\r\n\t\t[language]=\"language\"\r\n\t\t[direction]=\"direction\"\r\n\t\t(searchChange)=\"emitValue($event)\"\r\n\t></filter-autocomplete-input>\r\n\r\n\t<ng-container *ngIf=\"options | filter: searchText as filteredOptions\">\r\n\t\t<div class=\"filter-switch__wrapper\">\r\n\t\t\t<mat-slide-toggle\r\n\t\t\t\t*ngFor=\"let option of filteredOptions; index as index\"\r\n\t\t\t\tclass=\"filter-switch__item\"\r\n\t\t\t\t[checked]=\"selectionModel.isSelected(option.value)\"\r\n\t\t\t\t(change)=\"selectionModel.toggle(option.value)\"\r\n\t\t\t\t[class.checkedBox]=\"selectionModel.isSelected(option.value)\"\r\n\t\t\t\t[class.unCheckedBox]=\"!selectionModel.isSelected(option.value)\"\r\n\t\t\t\t[class.hidden]=\"renderOptions?.collapse && index + 1 > visibleItemsCount\"\r\n\t\t\t>\r\n\t\t\t\t<ng-container\r\n\t\t\t\t\t[ngTemplateOutlet]=\"contentTemplate || defaultTemplate\"\r\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: option, config, aggregation }\"\r\n\t\t\t\t></ng-container>\r\n\r\n\t\t\t\t<ng-template #defaultTemplate>\r\n\t\t\t\t\t<filter-option-text\r\n\t\t\t\t\t\t[option]=\"option\"\r\n\t\t\t\t\t\t[language]=\"language\"\r\n\t\t\t\t\t\t[showCount]=\"renderOptions?.showTotal\"\r\n\t\t\t\t\t></filter-option-text>\r\n\t\t\t\t</ng-template>\r\n\t\t\t</mat-slide-toggle>\r\n\t\t</div>\r\n\r\n\t\t<filter-empty-message *ngIf=\"!filteredOptions.length\" class=\"filter-switch__empty\"></filter-empty-message>\r\n\r\n\t\t<filter-collapse-control\r\n\t\t\tclass=\"filter-switch__collapse\"\r\n\t\t\t*ngIf=\"renderOptions?.collapse\"\r\n\t\t\t[minCount]=\"expandedCount\"\r\n\t\t\t[(visibleCount)]=\"visibleItemsCount\"\r\n\t\t\t[totalItems]=\"filteredOptions.length\"\r\n\t\t></filter-collapse-control>\r\n\t</ng-container>\r\n</ng-container>\r\n", styles: [".filter-switch{display:var(--fSwitch-display, block)}.filter-switch__wrapper{display:var(--fSwitch-wrapper-display, flex);flex-direction:var(--fSwitch-wrapper-direction, column)}.filter-switch__item{padding-inline-start:.5rem;margin-bottom:var(--filter-row-margin-bottom, .5rem)}.filter-switch__item.hidden{display:none}.filter-switch__item .mat-slide-toggle-content{flex-grow:1}\n"], components: [{ type: i1.FieldHeaderComponent, selector: "field-header" }, { type: i2.FilterOptionsSortComponent, selector: "filter-options-sort", inputs: ["options", "sort"], outputs: ["sortChange"] }, { type: i3.FilterSearchInputComponent, selector: "filter-search-input", inputs: ["searchText"], outputs: ["searchTextChange"] }, { type: i4.FilterAutocompleteInputComponent, selector: "filter-autocomplete-input", inputs: ["direction", "language", "fieldConfig"], outputs: ["searchChange"] }, { type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i6.FilterOptionTextComponent, selector: "filter-option-text", inputs: ["option", "showCount", "language"] }, { type: i7.FilterEmptyMessageComponent, selector: "filter-empty-message", inputs: ["message"] }, { type: i8.FilterCollapseControlComponent, selector: "filter-collapse-control", inputs: ["minCount", "totalItems", "visibleCount"], outputs: ["visibleCountChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }], pipes: { "async": i9.AsyncPipe, "translate": i10.TranslatePipe, "filter": i11.FilterPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationSwitchComponent, decorators: [{
44
+ type: Component,
45
+ args: [{
46
+ selector: 'app-aggregation-switch',
47
+ templateUrl: './aggregation-switch.component.html',
48
+ styleUrls: ['./aggregation-switch.component.scss'],
49
+ encapsulation: ViewEncapsulation.None,
50
+ changeDetection: ChangeDetectionStrategy.OnPush,
51
+ providers: [
52
+ {
53
+ provide: NG_VALUE_ACCESSOR,
54
+ useExisting: forwardRef(() => AggregationSwitchComponent),
55
+ multi: true
56
+ },
57
+ {
58
+ provide: NG_VALIDATORS,
59
+ useExisting: forwardRef(() => AggregationSwitchComponent),
60
+ multi: true
61
+ }
62
+ ],
63
+ host: {
64
+ class: 'filter-switch'
65
+ }
66
+ }]
67
+ }], propDecorators: { switchTemplate: [{
68
+ type: ContentChild,
69
+ args: [SWITCH_TEMPLATE, { read: TemplateRef, static: true }]
70
+ }] } });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tc3dpdGNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvdGFibGVzL25kZi10YWJsZS9maWx0ZXJzLXBhbmVsL2NvbXBvbmVudHMvYWdncmVnYXRpb24tc3dpdGNoL2FnZ3JlZ2F0aW9uLXN3aXRjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZmlsdGVycy1wYW5lbC9jb21wb25lbnRzL2FnZ3JlZ2F0aW9uLXN3aXRjaC9hZ2dyZWdhdGlvbi1zd2l0Y2guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDTix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBRVYsV0FBVyxFQUNYLGlCQUFpQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQXdCbkQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlDQUEyQztJQXRCM0Y7OztRQXlCQyxtQkFBYyxHQUFHLElBQUksY0FBYyxDQUFDLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0tBS3RFO0lBSkEsUUFBUTs7UUFDUCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLE1BQUEsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxRQUFRLG1DQUFJLElBQUksRUFBRSxNQUFBLElBQUksQ0FBQyxhQUFhLG1DQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3pHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQixDQUFDOzt3SEFQVywwQkFBMEI7NEdBQTFCLDBCQUEwQiw0RkFoQjNCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMEJBQTBCLENBQUM7WUFDekQsS0FBSyxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0MsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztZQUN6RCxLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQ0Qsc0VBTWEsZUFBZSwyQkFBVSxXQUFXLGtFQ3RDbkQsdTNFQTJEQTs0RkR0QmEsMEJBQTBCO2tCQXRCdEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxXQUFXLEVBQUUscUNBQXFDO29CQUNsRCxTQUFTLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQztvQkFDbEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7NEJBQ3pELEtBQUssRUFBRSxJQUFJO3lCQUNYO3dCQUNEOzRCQUNDLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzs0QkFDekQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNMLEtBQUssRUFBRSxlQUFlO3FCQUN0QjtpQkFDRDs4QkFHQSxjQUFjO3NCQURiLFlBQVk7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xyXG5pbXBvcnQge1xyXG5cdENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG5cdENvbXBvbmVudCxcclxuXHRDb250ZW50Q2hpbGQsXHJcblx0Zm9yd2FyZFJlZixcclxuXHRPbkluaXQsXHJcblx0VGVtcGxhdGVSZWYsXHJcblx0Vmlld0VuY2Fwc3VsYXRpb25cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkJhc2VTZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgU1dJVENIX1RFTVBMQVRFIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1hZ2dyZWdhdGlvbi1zd2l0Y2gnLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9hZ2dyZWdhdGlvbi1zd2l0Y2guY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2FnZ3JlZ2F0aW9uLXN3aXRjaC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBZ2dyZWdhdGlvblN3aXRjaENvbXBvbmVudCksXHJcblx0XHRcdG11bHRpOiB0cnVlXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBZ2dyZWdhdGlvblN3aXRjaENvbXBvbmVudCksXHJcblx0XHRcdG11bHRpOiB0cnVlXHJcblx0XHR9XHJcblx0XSxcclxuXHRob3N0OiB7XHJcblx0XHRjbGFzczogJ2ZpbHRlci1zd2l0Y2gnXHJcblx0fVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWdncmVnYXRpb25Td2l0Y2hDb21wb25lbnQgZXh0ZW5kcyBBZ2dyZWdhdGlvbkJhc2VTZWxlY3Rpb25Db21wb25lbnQ8J3N3aXRjaCc+IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHRAQ29udGVudENoaWxkKFNXSVRDSF9URU1QTEFURSwgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXHJcblx0c3dpdGNoVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcblx0c2VsZWN0aW9uTW9kZWwgPSBuZXcgU2VsZWN0aW9uTW9kZWwodGhpcy5yZW5kZXJPcHRpb25zPy5tdWx0aXBsZSwgW10pO1xyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zZWxlY3Rpb25Nb2RlbCA9IG5ldyBTZWxlY3Rpb25Nb2RlbCh0aGlzLnJlbmRlck9wdGlvbnM/Lm11bHRpcGxlID8/IHRydWUsIHRoaXMuaW50ZXJuYWxWYWx1ZSA/PyBbXSk7XHJcblx0XHR0aGlzLnVwZGF0ZVZhbHVlKCk7XHJcblx0fVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25zJCB8IGFzeW5jIGFzIG9wdGlvbnNcIj5cclxuXHQ8ZmllbGQtaGVhZGVyICpuZ0lmPVwiZmllbGRDb25maWcubGFiZWwgJiYgIXJlbmRlck9wdGlvbnM/LmhpZGVMYWJlbFwiIGNsYXNzPVwiZmlsdGVyLXN3aXRjaF9fbGFiZWxcIj5cclxuXHRcdDxzcGFuPlxyXG5cdFx0XHR7eyBmaWVsZENvbmZpZy5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxyXG5cdFx0PC9zcGFuPlxyXG5cdFx0PGZpbHRlci1vcHRpb25zLXNvcnQgKm5nSWY9XCJyZW5kZXJPcHRpb25zPy5zb3J0XCIgKHNvcnRDaGFuZ2UpPVwic29ydENoYW5nZSgkZXZlbnQpXCI+PC9maWx0ZXItb3B0aW9ucy1zb3J0PlxyXG5cdDwvZmllbGQtaGVhZGVyPlxyXG5cclxuXHQ8ZmlsdGVyLXNlYXJjaC1pbnB1dFxyXG5cdFx0Y2xhc3M9XCJmaWx0ZXItc3dpdGNoX19maWx0ZXJcIlxyXG5cdFx0Km5nSWY9XCJyZW5kZXJPcHRpb25zPy5maWx0ZXJcIlxyXG5cdFx0WyhzZWFyY2hUZXh0KV09XCJzZWFyY2hUZXh0XCJcclxuXHQ+PC9maWx0ZXItc2VhcmNoLWlucHV0PlxyXG5cclxuXHQ8ZmlsdGVyLWF1dG9jb21wbGV0ZS1pbnB1dFxyXG5cdFx0Km5nSWY9XCJyZW5kZXJPcHRpb25zPy5zZWFyY2hcIlxyXG5cdFx0W2ZpZWxkQ29uZmlnXT1cImZpZWxkQ29uZmlnXCJcclxuXHRcdFtsYW5ndWFnZV09XCJsYW5ndWFnZVwiXHJcblx0XHRbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXHJcblx0XHQoc2VhcmNoQ2hhbmdlKT1cImVtaXRWYWx1ZSgkZXZlbnQpXCJcclxuXHQ+PC9maWx0ZXItYXV0b2NvbXBsZXRlLWlucHV0PlxyXG5cclxuXHQ8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucyB8IGZpbHRlcjogc2VhcmNoVGV4dCBhcyBmaWx0ZXJlZE9wdGlvbnNcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJmaWx0ZXItc3dpdGNoX193cmFwcGVyXCI+XHJcblx0XHRcdDxtYXQtc2xpZGUtdG9nZ2xlXHJcblx0XHRcdFx0Km5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnM7IGluZGV4IGFzIGluZGV4XCJcclxuXHRcdFx0XHRjbGFzcz1cImZpbHRlci1zd2l0Y2hfX2l0ZW1cIlxyXG5cdFx0XHRcdFtjaGVja2VkXT1cInNlbGVjdGlvbk1vZGVsLmlzU2VsZWN0ZWQob3B0aW9uLnZhbHVlKVwiXHJcblx0XHRcdFx0KGNoYW5nZSk9XCJzZWxlY3Rpb25Nb2RlbC50b2dnbGUob3B0aW9uLnZhbHVlKVwiXHJcblx0XHRcdFx0W2NsYXNzLmNoZWNrZWRCb3hdPVwic2VsZWN0aW9uTW9kZWwuaXNTZWxlY3RlZChvcHRpb24udmFsdWUpXCJcclxuXHRcdFx0XHRbY2xhc3MudW5DaGVja2VkQm94XT1cIiFzZWxlY3Rpb25Nb2RlbC5pc1NlbGVjdGVkKG9wdGlvbi52YWx1ZSlcIlxyXG5cdFx0XHRcdFtjbGFzcy5oaWRkZW5dPVwicmVuZGVyT3B0aW9ucz8uY29sbGFwc2UgJiYgaW5kZXggKyAxID4gdmlzaWJsZUl0ZW1zQ291bnRcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lclxyXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRlbXBsYXRlIHx8IGRlZmF1bHRUZW1wbGF0ZVwiXHJcblx0XHRcdFx0XHRbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IG9wdGlvbiwgY29uZmlnLCBhZ2dyZWdhdGlvbiB9XCJcclxuXHRcdFx0XHQ+PC9uZy1jb250YWluZXI+XHJcblxyXG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxyXG5cdFx0XHRcdFx0PGZpbHRlci1vcHRpb24tdGV4dFxyXG5cdFx0XHRcdFx0XHRbb3B0aW9uXT1cIm9wdGlvblwiXHJcblx0XHRcdFx0XHRcdFtsYW5ndWFnZV09XCJsYW5ndWFnZVwiXHJcblx0XHRcdFx0XHRcdFtzaG93Q291bnRdPVwicmVuZGVyT3B0aW9ucz8uc2hvd1RvdGFsXCJcclxuXHRcdFx0XHRcdD48L2ZpbHRlci1vcHRpb24tdGV4dD5cclxuXHRcdFx0XHQ8L25nLXRlbXBsYXRlPlxyXG5cdFx0XHQ8L21hdC1zbGlkZS10b2dnbGU+XHJcblx0XHQ8L2Rpdj5cclxuXHJcblx0XHQ8ZmlsdGVyLWVtcHR5LW1lc3NhZ2UgKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiIGNsYXNzPVwiZmlsdGVyLXN3aXRjaF9fZW1wdHlcIj48L2ZpbHRlci1lbXB0eS1tZXNzYWdlPlxyXG5cclxuXHRcdDxmaWx0ZXItY29sbGFwc2UtY29udHJvbFxyXG5cdFx0XHRjbGFzcz1cImZpbHRlci1zd2l0Y2hfX2NvbGxhcHNlXCJcclxuXHRcdFx0Km5nSWY9XCJyZW5kZXJPcHRpb25zPy5jb2xsYXBzZVwiXHJcblx0XHRcdFttaW5Db3VudF09XCJleHBhbmRlZENvdW50XCJcclxuXHRcdFx0Wyh2aXNpYmxlQ291bnQpXT1cInZpc2libGVJdGVtc0NvdW50XCJcclxuXHRcdFx0W3RvdGFsSXRlbXNdPVwiZmlsdGVyZWRPcHRpb25zLmxlbmd0aFwiXHJcblx0XHQ+PC9maWx0ZXItY29sbGFwc2UtY29udHJvbD5cclxuXHQ8L25nLWNvbnRhaW5lcj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
@@ -0,0 +1,11 @@
1
+ export * from './__parts';
2
+ export * from './aggregation-autocomplete/aggregation-autocomplete.component';
3
+ export * from './aggregation-checkbox/aggregation-checkbox.component';
4
+ export * from './aggregation-custom/aggregation-custom.component';
5
+ export * from './aggregation-date-list/aggregation-date-list.component';
6
+ export * from './aggregation-radio/aggregation-radio.component';
7
+ export * from './aggregation-select/aggregation-select.component';
8
+ export * from './aggregation-switch/aggregation-switch.component';
9
+ export * from './predicate-text-input/predicate-text-input.component';
10
+ export * from './predicate-date-input/predicate-date-input.component';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZmlsdGVycy1wYW5lbC9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsK0RBQStELENBQUM7QUFDOUUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9fX3BhcnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9hZ2dyZWdhdGlvbi1hdXRvY29tcGxldGUvYWdncmVnYXRpb24tYXV0b2NvbXBsZXRlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWdncmVnYXRpb24tY2hlY2tib3gvYWdncmVnYXRpb24tY2hlY2tib3guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9hZ2dyZWdhdGlvbi1jdXN0b20vYWdncmVnYXRpb24tY3VzdG9tLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWdncmVnYXRpb24tZGF0ZS1saXN0L2FnZ3JlZ2F0aW9uLWRhdGUtbGlzdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FnZ3JlZ2F0aW9uLXJhZGlvL2FnZ3JlZ2F0aW9uLXJhZGlvLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYWdncmVnYXRpb24tc2VsZWN0L2FnZ3JlZ2F0aW9uLXNlbGVjdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FnZ3JlZ2F0aW9uLXN3aXRjaC9hZ2dyZWdhdGlvbi1zd2l0Y2guY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9wcmVkaWNhdGUtdGV4dC1pbnB1dC9wcmVkaWNhdGUtdGV4dC1pbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ByZWRpY2F0ZS1kYXRlLWlucHV0L3ByZWRpY2F0ZS1kYXRlLWlucHV0LmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -0,0 +1,146 @@
1
+ import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';
2
+ import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
3
+ import { BasePredicateField } from '../../base';
4
+ import { debounceTime, distinctUntilChanged, map, takeUntil } from 'rxjs/operators';
5
+ import * as moment from 'moment/moment';
6
+ import { isDateObject, isFieldValueObject, NxQL } from '../../utility';
7
+ import _ from 'lodash';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../../../ndf-datepicker/ndf-datepicker.component";
10
+ import * as i2 from "@angular/forms";
11
+ import * as i3 from "@ngx-translate/core";
12
+ export class PredicateDateInputComponent extends BasePredicateField {
13
+ constructor() {
14
+ super(...arguments);
15
+ this.formDate = new FormControl(null);
16
+ }
17
+ get isDateRange() {
18
+ var _a;
19
+ return (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.isDateRange;
20
+ }
21
+ get validators() {
22
+ return this.isDateRange ? [Validators.required] : [];
23
+ }
24
+ get debounceTime() {
25
+ var _a, _b;
26
+ return (_b = (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.debounceTime) !== null && _b !== void 0 ? _b : 300;
27
+ }
28
+ writeValue(obj) {
29
+ if (obj) {
30
+ if (isFieldValueObject(obj)) {
31
+ return this._handelFieldValueData(obj);
32
+ }
33
+ if (isDateObject(obj)) {
34
+ this._handelDateObj(obj);
35
+ }
36
+ if (typeof obj === 'string' && !this.isDateRange) {
37
+ this.formDate.setValue(obj, { emitEvent: false });
38
+ }
39
+ return;
40
+ }
41
+ this.formDate.reset(null, {
42
+ emitEvent: false
43
+ });
44
+ }
45
+ validate(control) {
46
+ return control.valid ? null : control.errors;
47
+ }
48
+ ngOnInit() {
49
+ this.formDate.valueChanges
50
+ .pipe(map((date) => this._prepareDateToEmit(date)), distinctUntilChanged((a, b) => _.isEqual(a, b)), debounceTime(this.debounceTime), takeUntil(this.destroy$))
51
+ .subscribe((res) => {
52
+ this._isFieldDirty = !!res;
53
+ this.onChange(res);
54
+ });
55
+ }
56
+ _handelDateObj(date) {
57
+ const { min, max } = date;
58
+ this.formDate.setValue({
59
+ from: min,
60
+ to: max
61
+ }, { emitEvent: false });
62
+ }
63
+ _handelFieldValueData(date) {
64
+ const { min, max, value } = date;
65
+ this.formDate.patchValue({
66
+ from: min || value,
67
+ to: max
68
+ }, { emitEvent: false });
69
+ }
70
+ _prepareDateToEmit(date) {
71
+ if (!date || !(date === null || date === void 0 ? void 0 : date.value)) {
72
+ return null;
73
+ }
74
+ const { value } = date;
75
+ if (typeof value === 'string' && !this.isDateRange) {
76
+ return value;
77
+ }
78
+ const { from: min, to: max } = value;
79
+ const _hasData = min || max;
80
+ if (!_hasData) {
81
+ return;
82
+ }
83
+ if (this.field.valueType == 'property') {
84
+ if (min && max && this.isDateRange) {
85
+ return this._normalizeDateRange({ min, max });
86
+ }
87
+ return min;
88
+ }
89
+ if (this._isValueObject()) {
90
+ const _date = this._normalizeDateRange({ min, max });
91
+ const _operator = NxQL._getRangeOperator(_date);
92
+ return NxQL._getValueRange(_date, 'DATE', _operator);
93
+ }
94
+ return;
95
+ }
96
+ _normalizeDateRange(date) {
97
+ moment.locale('en');
98
+ if (!date) {
99
+ return null;
100
+ }
101
+ const { min, max } = date;
102
+ return {
103
+ min: min ? moment(min).startOf('day').format() : min,
104
+ max: max ? moment(max).endOf('day').format() : max
105
+ };
106
+ }
107
+ }
108
+ PredicateDateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PredicateDateInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
109
+ PredicateDateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PredicateDateInputComponent, selector: "lib-predicate-date-input", host: { classAttribute: "date-field" }, providers: [
110
+ {
111
+ provide: NG_VALUE_ACCESSOR,
112
+ useExisting: forwardRef(() => PredicateDateInputComponent),
113
+ multi: true
114
+ },
115
+ {
116
+ provide: NG_VALIDATORS,
117
+ useExisting: forwardRef(() => PredicateDateInputComponent),
118
+ multi: true
119
+ }
120
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"filter-date-input\" (click)=\"$event.stopPropagation()\">\r\n\t<ndf-datepicker\r\n\t\t[formControl]=\"formDate\"\r\n\t\t[range]=\"isDateRange\"\r\n\t\t[startDatePlaceholder]=\"'FILTERS.from' | translate\"\r\n\t\t[endDatePlaceholder]=\"'FILTERS.to' | translate\"\r\n\t\t[placeholder]=\"renderOptions?.placeholder\"\r\n\t\t[showActions]=\"renderOptions?.showActions ?? true\"\r\n\t\t[autoFill]=\"renderOptions?.autoFill\"\r\n\t\t[panelClass]=\"renderOptions?.panelClass\"\r\n\t\t[startView]=\"renderOptions?.startView\"\r\n\t\t[max]=\"renderOptions?.max\"\r\n\t\t[min]=\"renderOptions?.min\"\r\n\t\t[startAt]=\"renderOptions?.startAt\"\r\n\t\t[updateLocalLang]=\"renderOptions?.updateLocalLang ?? true\"\r\n\t\t[hijriDisplayFormat]=\"renderOptions?.hijriDisplayFormat\"\r\n\t\t[displayFormat]=\"renderOptions?.displayFormat\"\r\n\t></ndf-datepicker>\r\n</div>\r\n", styles: [".filter-date-input .mat-form-field-appearance-outline .mat-form-field-infix{padding:.6rem 0}.filter-date-input .mat-form-field-prefix .mat-icon-button,.filter-date-input .mat-form-field-suffix .mat-icon-button,.filter-date-input .mat-icon-button{width:1.8rem;height:1.8rem}.filter-date-input .mat-form-field-wrapper{padding-bottom:0}.filter-date-input input{font-weight:300;font-size:var(--f-input-font-size, 13px)}\n"], components: [{ type: i1.NdfDatepickerComponent, selector: "ndf-datepicker", inputs: ["label", "showActions", "autoFill", "panelClass", "endDatePlaceholder", "startDatePlaceholder", "placeholder", "startView", "appearance", "dateFilter", "max", "min", "startAt", "updateLocalLang", "hijriDisplayFormat", "displayFormat"], outputs: ["yearSelected", "monthSelected"] }], directives: [{ type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
121
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PredicateDateInputComponent, decorators: [{
122
+ type: Component,
123
+ args: [{
124
+ selector: 'lib-predicate-date-input',
125
+ templateUrl: './predicate-date-input.component.html',
126
+ styleUrls: ['./predicate-date-input.component.scss'],
127
+ encapsulation: ViewEncapsulation.None,
128
+ changeDetection: ChangeDetectionStrategy.Default,
129
+ providers: [
130
+ {
131
+ provide: NG_VALUE_ACCESSOR,
132
+ useExisting: forwardRef(() => PredicateDateInputComponent),
133
+ multi: true
134
+ },
135
+ {
136
+ provide: NG_VALIDATORS,
137
+ useExisting: forwardRef(() => PredicateDateInputComponent),
138
+ multi: true
139
+ }
140
+ ],
141
+ host: {
142
+ class: 'date-field'
143
+ }
144
+ }]
145
+ }] });
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGljYXRlLWRhdGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXMvbmRmLXRhYmxlL2ZpbHRlcnMtcGFuZWwvY29tcG9uZW50cy9wcmVkaWNhdGUtZGF0ZS1pbnB1dC9wcmVkaWNhdGUtZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlcy9uZGYtdGFibGUvZmlsdGVycy1wYW5lbC9jb21wb25lbnRzL3ByZWRpY2F0ZS1kYXRlLWlucHV0L3ByZWRpY2F0ZS1kYXRlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFFTixXQUFXLEVBQ1gsYUFBYSxFQUNiLGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDcEYsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUM7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDOzs7OztBQWlDdkIsTUFBTSxPQUFPLDJC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d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNYO3dCQUNEOzRCQUNDLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNMLEtBQUssRUFBRSxZQUFZO3FCQUNuQjtpQkFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuXHRBYnN0cmFjdENvbnRyb2wsXHJcblx0Rm9ybUNvbnRyb2wsXHJcblx0TkdfVkFMSURBVE9SUyxcclxuXHROR19WQUxVRV9BQ0NFU1NPUixcclxuXHRWYWxpZGF0aW9uRXJyb3JzLFxyXG5cdFZhbGlkYXRvcnNcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEJhc2VQcmVkaWNhdGVGaWVsZCB9IGZyb20gJy4uLy4uL2Jhc2UnO1xyXG5pbXBvcnQgeyBGaWVsZFZhbHVlT2JqZWN0IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcclxuaW1wb3J0IHsgaXNEYXRlT2JqZWN0LCBpc0ZpZWxkVmFsdWVPYmplY3QsIE54UUwgfSBmcm9tICcuLi8uLi91dGlsaXR5JztcclxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgRGF0ZVZhbHVlT2JqZWN0LCBMb2NhbGl6ZURhdGVWYWx1ZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL25kZi1kYXRlcGlja2VyJztcclxuXHJcbnR5cGUgRGF0ZVR5cGUgPVxyXG5cdHwgc3RyaW5nXHJcblx0fCBGaWVsZFZhbHVlT2JqZWN0PHN0cmluZz5cclxuXHR8IHtcclxuXHRcdFx0bWluOiBzdHJpbmc7XHJcblx0XHRcdG1heDogc3RyaW5nO1xyXG5cdCAgfTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLXByZWRpY2F0ZS1kYXRlLWlucHV0JyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcHJlZGljYXRlLWRhdGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3ByZWRpY2F0ZS1kYXRlLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXHJcblx0ZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuXHRjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LkRlZmF1bHQsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQcmVkaWNhdGVEYXRlSW5wdXRDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJlZGljYXRlRGF0ZUlucHV0Q29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH1cclxuXHRdLFxyXG5cdGhvc3Q6IHtcclxuXHRcdGNsYXNzOiAnZGF0ZS1maWVsZCdcclxuXHR9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcmVkaWNhdGVEYXRlSW5wdXRDb21wb25lbnRcclxuXHRleHRlbmRzIEJhc2VQcmVkaWNhdGVGaWVsZDwnZGF0ZScsIHN0cmluZyB8IEZpZWxkVmFsdWVPYmplY3Q8c3RyaW5nPj5cclxuXHRpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcblx0Zm9ybURhdGUgPSBuZXcgRm9ybUNvbnRyb2wobnVsbCk7XHJcblxyXG5cdGdldCBpc0RhdGVSYW5nZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLnJlbmRlck9wdGlvbnM/LmlzRGF0ZVJhbmdlO1xyXG5cdH1cclxuXHJcblx0Z2V0IHZhbGlkYXRvcnMoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5pc0RhdGVSYW5nZSA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdO1xyXG5cdH1cclxuXHJcblx0Z2V0IGRlYm91bmNlVGltZSgpIHtcclxuXHRcdHJldHVybiB0aGlzLnJlbmRlck9wdGlvbnM/LmRlYm91bmNlVGltZSA/PyAzMDA7XHJcblx0fVxyXG5cclxuXHR3cml0ZVZhbHVlKG9iajogRGF0ZVR5cGUpOiB2b2lkIHtcclxuXHRcdGlmIChvYmopIHtcclxuXHRcdFx0aWYgKGlzRmllbGRWYWx1ZU9iamVjdChvYmopKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuX2hhbmRlbEZpZWxkVmFsdWVEYXRhKG9iaik7XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGlzRGF0ZU9iamVjdChvYmopKSB7XHJcblx0XHRcdFx0dGhpcy5faGFuZGVsRGF0ZU9iaihvYmopO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAodHlwZW9mIG9iaiA9PT0gJ3N0cmluZycgJiYgIXRoaXMuaXNEYXRlUmFuZ2UpIHtcclxuXHRcdFx0XHR0aGlzLmZvcm1EYXRlLnNldFZhbHVlKG9iaiwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdHRoaXMuZm9ybURhdGUucmVzZXQobnVsbCwge1xyXG5cdFx0XHRlbWl0RXZlbnQ6IGZhbHNlXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMge1xyXG5cdFx0cmV0dXJuIGNvbnRyb2wudmFsaWQgPyBudWxsIDogY29udHJvbC5lcnJvcnM7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZm9ybURhdGUudmFsdWVDaGFuZ2VzXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdG1hcCgoZGF0ZTogTG9jYWxpemVEYXRlVmFsdWU8c3RyaW5nIHwgRGF0ZVZhbHVlT2JqZWN0PikgPT4gdGhpcy5fcHJlcGFyZURhdGVUb0VtaXQoZGF0ZSkpLFxyXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBfLmlzRXF1YWwoYSwgYikpLFxyXG5cdFx0XHRcdGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy5faXNGaWVsZERpcnR5ID0gISFyZXM7XHJcblx0XHRcdFx0dGhpcy5vbkNoYW5nZShyZXMpO1xyXG5cdFx0XHR9KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2hhbmRlbERhdGVPYmooZGF0ZTogeyBtaW46IHN0cmluZzsgbWF4OiBzdHJpbmcgfSkge1xyXG5cdFx0Y29uc3QgeyBtaW4sIG1heCB9ID0gZGF0ZTtcclxuXHRcdHRoaXMuZm9ybURhdGUuc2V0VmFsdWUoXHJcblx0XHRcdHtcclxuXHRcdFx0XHRmcm9tOiBtaW4sXHJcblx0XHRcdFx0dG86IG1heFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGVtaXRFdmVudDogZmFsc2UgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX2hhbmRlbEZpZWxkVmFsdWVEYXRhKGRhdGU6IEZpZWxkVmFsdWVPYmplY3Q8c3RyaW5nPikge1xyXG5cdFx0Y29uc3QgeyBtaW4sIG1heCwgdmFsdWUgfSA9IGRhdGU7XHJcblx0XHR0aGlzLmZvcm1EYXRlLnBhdGNoVmFsdWUoXHJcblx0XHRcdHtcclxuXHRcdFx0XHRmcm9tOiBtaW4gfHwgdmFsdWUsXHJcblx0XHRcdFx0dG86IG1heFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR7IGVtaXRFdmVudDogZmFsc2UgfVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVEYXRlVG9FbWl0KGRhdGU6IExvY2FsaXplRGF0ZVZhbHVlPHN0cmluZyB8IERhdGVWYWx1ZU9iamVjdD4pIHtcclxuXHRcdGlmICghZGF0ZSB8fCAhZGF0ZT8udmFsdWUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0XHRjb25zdCB7IHZhbHVlIH0gPSBkYXRlO1xyXG5cdFx0aWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgIXRoaXMuaXNEYXRlUmFuZ2UpIHtcclxuXHRcdFx0cmV0dXJuIHZhbHVlO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnN0IHsgZnJvbTogbWluLCB0bzogbWF4IH0gPSB2YWx1ZSBhcyBEYXRlVmFsdWVPYmplY3Q7XHJcblxyXG5cdFx0Y29uc3QgX2hhc0RhdGEgPSBtaW4gfHwgbWF4O1xyXG5cdFx0aWYgKCFfaGFzRGF0YSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHRpZiAodGhpcy5maWVsZC52YWx1ZVR5cGUgPT0gJ3Byb3BlcnR5Jykge1xyXG5cdFx0XHRpZiAobWluICYmIG1heCAmJiB0aGlzLmlzRGF0ZVJhbmdlKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuX25vcm1hbGl6ZURhdGVSYW5nZSh7IG1pbiwgbWF4IH0pO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBtaW47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKHRoaXMuX2lzVmFsdWVPYmplY3QoKSkge1xyXG5cdFx0XHRjb25zdCBfZGF0ZSA9IHRoaXMuX25vcm1hbGl6ZURhdGVSYW5nZSh7IG1pbiwgbWF4IH0pO1xyXG5cdFx0XHRjb25zdCBfb3BlcmF0b3IgPSBOeFFMLl9nZXRSYW5nZU9wZXJhdG9yKF9kYXRlKTtcclxuXHRcdFx0cmV0dXJuIE54UUwuX2dldFZhbHVlUmFuZ2UoX2RhdGUsICdEQVRFJywgX29wZXJhdG9yKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm47XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9ub3JtYWxpemVEYXRlUmFuZ2UoZGF0ZTogeyBtaW46IHN0cmluZyB8IG51bGw7IG1heDogc3RyaW5nIHwgbnVsbCB9KSB7XHJcblx0XHRtb21lbnQubG9jYWxlKCdlbicpO1xyXG5cclxuXHRcdGlmICghZGF0ZSkge1xyXG5cdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdH1cclxuXHRcdGNvbnN0IHsgbWluLCBtYXggfSA9IGRhdGU7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRtaW46IG1pbiA/IG1vbWVudChtaW4pLnN0YXJ0T2YoJ2RheScpLmZvcm1hdCgpIDogbWluLFxyXG5cdFx0XHRtYXg6IG1heCA/IG1vbWVudChtYXgpLmVuZE9mKCdkYXknKS5mb3JtYXQoKSA6IG1heFxyXG5cdFx0fTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImZpbHRlci1kYXRlLWlucHV0XCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG5cdDxuZGYtZGF0ZXBpY2tlclxyXG5cdFx0W2Zvcm1Db250cm9sXT1cImZvcm1EYXRlXCJcclxuXHRcdFtyYW5nZV09XCJpc0RhdGVSYW5nZVwiXHJcblx0XHRbc3RhcnREYXRlUGxhY2Vob2xkZXJdPVwiJ0ZJTFRFUlMuZnJvbScgfCB0cmFuc2xhdGVcIlxyXG5cdFx0W2VuZERhdGVQbGFjZWhvbGRlcl09XCInRklMVEVSUy50bycgfCB0cmFuc2xhdGVcIlxyXG5cdFx0W3BsYWNlaG9sZGVyXT1cInJlbmRlck9wdGlvbnM/LnBsYWNlaG9sZGVyXCJcclxuXHRcdFtzaG93QWN0aW9uc109XCJyZW5kZXJPcHRpb25zPy5zaG93QWN0aW9ucyA/PyB0cnVlXCJcclxuXHRcdFthdXRvRmlsbF09XCJyZW5kZXJPcHRpb25zPy5hdXRvRmlsbFwiXHJcblx0XHRbcGFuZWxDbGFzc109XCJyZW5kZXJPcHRpb25zPy5wYW5lbENsYXNzXCJcclxuXHRcdFtzdGFydFZpZXddPVwicmVuZGVyT3B0aW9ucz8uc3RhcnRWaWV3XCJcclxuXHRcdFttYXhdPVwicmVuZGVyT3B0aW9ucz8ubWF4XCJcclxuXHRcdFttaW5dPVwicmVuZGVyT3B0aW9ucz8ubWluXCJcclxuXHRcdFtzdGFydEF0XT1cInJlbmRlck9wdGlvbnM/LnN0YXJ0QXRcIlxyXG5cdFx0W3VwZGF0ZUxvY2FsTGFuZ109XCJyZW5kZXJPcHRpb25zPy51cGRhdGVMb2NhbExhbmcgPz8gdHJ1ZVwiXHJcblx0XHRbaGlqcmlEaXNwbGF5Rm9ybWF0XT1cInJlbmRlck9wdGlvbnM/LmhpanJpRGlzcGxheUZvcm1hdFwiXHJcblx0XHRbZGlzcGxheUZvcm1hdF09XCJyZW5kZXJPcHRpb25zPy5kaXNwbGF5Rm9ybWF0XCJcclxuXHQ+PC9uZGYtZGF0ZXBpY2tlcj5cclxuPC9kaXY+XHJcbiJdfQ==