nuxeo-development-framework 5.3.6 → 5.3.7

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 (344) hide show
  1. package/bundles/nuxeo-development-framework.umd.js +575 -202
  2. package/bundles/nuxeo-development-framework.umd.js.map +1 -1
  3. package/esm2015/lib/components/ndf-config-editor/containers/monaco-editor.component.js +1 -2
  4. package/esm2015/lib/components/ndf-filters/base/base-aggregation-field.component.js +91 -0
  5. package/esm2015/lib/components/ndf-filters/base/base-checkbox-radio.component.js +66 -0
  6. package/esm2015/lib/components/ndf-filters/base/base-custom-field.component.js +46 -0
  7. package/esm2015/lib/components/ndf-filters/base/base-predicate-field.component.js +43 -0
  8. package/esm2015/lib/components/ndf-filters/base/base-value-accessor.component.js +34 -0
  9. package/esm2015/lib/components/ndf-filters/base/index.js +6 -0
  10. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/field-header.component.js +1 -1
  11. package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.js +97 -0
  12. package/esm2015/lib/components/ndf-filters/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +43 -0
  13. package/esm2015/lib/components/ndf-filters/components/__parts/filter-collapse-control/filter-collapse-control.component.js +44 -0
  14. package/esm2015/lib/components/ndf-filters/components/__parts/filter-date-range/filter-date-range.component.js +89 -0
  15. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-empty-message.component.js +1 -1
  16. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-option-text/filter-option-text.component.js +1 -1
  17. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-options-sort/filter-options-sort.component.js +1 -1
  18. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-search-input/filter-search-input.component.js +1 -1
  19. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/html-dialog/html-dialog.component.js +2 -2
  20. package/esm2015/lib/components/ndf-filters/components/__parts/index.js +10 -0
  21. package/esm2015/lib/components/ndf-filters/components/aggregation-autocomplete/aggregation-autocomplete.component.js +109 -0
  22. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-checkbox/aggregation-checkbox.component.js +1 -1
  23. package/esm2015/lib/components/ndf-filters/components/aggregation-custom/aggregation-custom.component.js +66 -0
  24. package/esm2015/lib/components/ndf-filters/components/aggregation-date-list/aggregation-date-list.component.js +219 -0
  25. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-radio/aggregation-radio.component.js +1 -1
  26. package/esm2015/lib/components/ndf-filters/components/aggregation-select/aggregation-select.component.js +83 -0
  27. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-switch/aggregation-switch.component.js +1 -1
  28. package/esm2015/lib/components/ndf-filters/components/index.js +11 -0
  29. package/esm2015/lib/components/ndf-filters/components/predicate-date-input/predicate-date-input.component.js +146 -0
  30. package/esm2015/lib/components/ndf-filters/components/predicate-text-input/predicate-text-input.component.js +144 -0
  31. package/esm2015/lib/components/ndf-filters/constants/common.js +4 -0
  32. package/esm2015/lib/components/ndf-filters/constants/field.js +6 -0
  33. package/esm2015/lib/components/ndf-filters/constants/index.js +5 -0
  34. package/esm2015/lib/components/ndf-filters/constants/operators.js +18 -0
  35. package/esm2015/lib/components/ndf-filters/constants/sort.js +23 -0
  36. package/esm2015/lib/components/ndf-filters/constants/type.js +26 -0
  37. package/esm2015/lib/components/ndf-filters/containers/aggregation-field/aggregation-field.component.js +78 -0
  38. package/esm2015/lib/components/ndf-filters/containers/base-field.js +62 -0
  39. package/esm2015/lib/components/ndf-filters/containers/custom-field/custom-field.component.js +73 -0
  40. package/esm2015/lib/components/ndf-filters/containers/filters-panel/base-filters-panel.js +55 -0
  41. package/esm2015/lib/components/ndf-filters/containers/filters-panel/filters-panel.component.js +127 -0
  42. package/esm2015/lib/components/ndf-filters/containers/index.js +5 -0
  43. package/esm2015/lib/components/ndf-filters/containers/predicate-field/predicate-field.component.js +71 -0
  44. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user-switch.component.js +55 -0
  45. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/active-user.service.js +17 -0
  46. package/esm2015/lib/components/ndf-filters/custom-components/active-user-switch/user-types.js +2 -0
  47. package/esm2015/lib/components/ndf-filters/custom-components/index.js +2 -0
  48. package/esm2015/lib/components/ndf-filters/directives/autocomplete-template.directive.js +28 -0
  49. package/esm2015/lib/components/ndf-filters/directives/checkbox-template.directive.js +28 -0
  50. package/esm2015/lib/components/ndf-filters/directives/custom-template.directive.js +28 -0
  51. package/esm2015/lib/components/ndf-filters/directives/date-template.directive.js +28 -0
  52. package/esm2015/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/dropdown-label-template.directive.js +1 -1
  53. package/esm2015/lib/components/ndf-filters/directives/dropdown-template.directive.js +28 -0
  54. package/esm2015/lib/components/ndf-filters/directives/index.js +9 -0
  55. package/esm2015/lib/components/ndf-filters/directives/radio-template.directive.js +28 -0
  56. package/esm2015/lib/components/ndf-filters/directives/switch-template.directive.js +28 -0
  57. package/esm2015/lib/components/ndf-filters/index.js +2 -0
  58. package/esm2015/lib/components/ndf-filters/models/aggregation-field-config.js +2 -0
  59. package/esm2015/lib/components/ndf-filters/models/aggregation-response.model.js +2 -0
  60. package/esm2015/lib/components/ndf-filters/models/base-field-config.js +2 -0
  61. package/esm2015/lib/components/ndf-filters/models/common.js +2 -0
  62. package/esm2015/lib/components/ndf-filters/models/custom-field-config.js +2 -0
  63. package/esm2015/lib/components/ndf-filters/models/field-config.model.js +2 -0
  64. package/esm2015/lib/components/ndf-filters/models/field-options/autocomplete-options.js +2 -0
  65. package/esm2015/lib/components/ndf-filters/models/field-options/checkbox-options.js +2 -0
  66. package/esm2015/lib/components/ndf-filters/models/field-options/common-utils.js +2 -0
  67. package/esm2015/lib/components/ndf-filters/models/field-options/custom-fields-options.js +2 -0
  68. package/esm2015/lib/components/ndf-filters/models/field-options/custom-options.js +2 -0
  69. package/esm2015/lib/components/ndf-filters/models/field-options/date-list-options.js +2 -0
  70. package/esm2015/lib/components/ndf-filters/models/field-options/date-options.js +2 -0
  71. package/esm2015/lib/components/ndf-filters/models/field-options/dropdown-options.js +2 -0
  72. package/esm2015/lib/components/ndf-filters/models/field-options/index.js +12 -0
  73. package/esm2015/lib/components/ndf-filters/models/field-options/input-options.js +2 -0
  74. package/esm2015/lib/components/ndf-filters/models/field-options/radio-options.js +2 -0
  75. package/esm2015/lib/components/ndf-filters/models/field-options/switch-options.js +2 -0
  76. package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +2 -0
  77. package/esm2015/lib/components/ndf-filters/models/form-query-request.js +2 -0
  78. package/esm2015/lib/components/ndf-filters/models/index.js +14 -0
  79. package/esm2015/lib/components/ndf-filters/models/operator-value-object.js +2 -0
  80. package/esm2015/lib/components/ndf-filters/models/predicate-field-config.js +2 -0
  81. package/esm2015/lib/components/ndf-filters/models/types-helper.js +2 -0
  82. package/esm2015/lib/components/ndf-filters/models/value-object.model.js +12 -0
  83. package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +207 -0
  84. package/esm2015/lib/components/ndf-filters/pipes/autocomplete-filter.pipe.js +27 -0
  85. package/esm2015/lib/components/ndf-filters/pipes/check-condition.pipe.js +32 -0
  86. package/esm2015/lib/components/ndf-filters/pipes/filter.pipe.js +27 -0
  87. package/esm2015/lib/components/ndf-filters/pipes/hash-translate.pipe.js +52 -0
  88. package/esm2015/lib/components/ndf-filters/pipes/index.js +10 -0
  89. package/esm2015/lib/components/ndf-filters/pipes/localized-label.pipe.js +28 -0
  90. package/esm2015/lib/components/ndf-filters/pipes/roles-filters.pipe.js +31 -0
  91. package/esm2015/lib/components/ndf-filters/pipes/sanitizer.pipe.js +34 -0
  92. package/esm2015/lib/components/ndf-filters/pipes/sort.pipe.js +40 -0
  93. package/esm2015/lib/components/ndf-filters/pipes/tooltip.pipe.js +69 -0
  94. package/esm2015/lib/components/ndf-filters/public-api.js +12 -0
  95. package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +105 -0
  96. package/esm2015/lib/components/ndf-filters/services/dynamic-component-loader.service.js +59 -0
  97. package/esm2015/lib/components/ndf-filters/services/filters-mapper.service.js +60 -0
  98. package/esm2015/lib/components/ndf-filters/services/filters-query.service.js +117 -0
  99. package/esm2015/lib/components/ndf-filters/services/index.js +5 -0
  100. package/esm2015/lib/components/ndf-filters/utility/index.js +4 -0
  101. package/esm2015/lib/components/ndf-filters/utility/nxql-query.js +53 -0
  102. package/esm2015/lib/components/ndf-filters/utility/nxql.js +47 -0
  103. package/esm2015/lib/components/ndf-filters/utility/object.js +42 -0
  104. package/esm2015/lib/components/ndf-tabs/tab.type.js +1 -1
  105. package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +3 -3
  106. package/esm2015/lib/components/reports/ndf-reports/models/common.js +1 -1
  107. package/esm2015/lib/components/reports/ndf-reports/models/ndf-reports.config.js +1 -1
  108. package/esm2015/lib/components/reports/ndf-reports/ndf-reports.module.js +6 -5
  109. package/esm2015/lib/components/reports/ndf-reports/services/report-config-mapper.service.js +1 -1
  110. package/esm2015/lib/components/spell-checker-field/spell-checker-field.module.js +1 -1
  111. package/esm2015/lib/components/tables/ndf-table/components/text-search/text-search.component.js +2 -2
  112. package/esm2015/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.js +26 -25
  113. package/esm2015/lib/components/tables/ndf-table/models/payload-types.js +1 -1
  114. package/esm2015/lib/components/tables/ndf-table/models/search.config.js +1 -1
  115. package/esm2015/lib/components/tables/ndf-table/models/table-mode.js +1 -1
  116. package/esm2015/lib/components/tables/ndf-table/models/table-options.js +1 -1
  117. package/esm2015/lib/components/tables/ndf-table/models/types.js +1 -1
  118. package/esm2015/lib/components/tables/ndf-table/ndf-table.module.js +5 -5
  119. package/esm2015/lib/components/tables/ndf-table/public-api.js +1 -2
  120. package/esm2015/lib/components/tables/ndf-table/services/index.js +1 -2
  121. package/esm2015/lib/shared/evaluator/evaluator.js +332 -0
  122. package/esm2015/lib/shared/evaluator/index.js +2 -0
  123. package/esm2015/lib/shared/evaluator/types.js +2 -0
  124. package/esm2015/lib/shared/models/index.js +2 -1
  125. package/esm2015/lib/shared/models/type-helpers.js +2 -0
  126. package/esm2015/public-api.js +2 -1
  127. package/fesm2015/nuxeo-development-framework.js +532 -169
  128. package/fesm2015/nuxeo-development-framework.js.map +1 -1
  129. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/base/base-aggregation-field.component.d.ts +1 -1
  130. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/base/base-value-accessor.component.d.ts +1 -1
  131. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.d.ts +1 -1
  132. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-autocomplete-input/filter-autocomplete.service.d.ts +3 -2
  133. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-date-range/filter-date-range.component.d.ts +1 -1
  134. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/html-dialog/html-dialog.component.d.ts +2 -1
  135. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/containers/filters-panel/base-filters-panel.d.ts +1 -1
  136. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/containers/filters-panel/filters-panel.component.d.ts +1 -0
  137. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/custom-components/active-user-switch/active-user.service.d.ts +1 -1
  138. package/lib/components/ndf-filters/index.d.ts +1 -0
  139. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/aggregation-field-config.d.ts +2 -1
  140. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/base-field-config.d.ts +3 -1
  141. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/custom-field-config.d.ts +2 -1
  142. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/autocomplete-options.d.ts +1 -1
  143. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/checkbox-options.d.ts +1 -1
  144. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/common-utils.d.ts +2 -1
  145. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/custom-fields-options.d.ts +1 -1
  146. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/date-list-options.d.ts +1 -1
  147. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/date-options.d.ts +1 -1
  148. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/dropdown-options.d.ts +1 -1
  149. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/input-options.d.ts +1 -1
  150. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/radio-options.d.ts +1 -1
  151. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/switch-options.d.ts +1 -1
  152. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/filter-option.model.d.ts +1 -1
  153. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/index.d.ts +1 -0
  154. package/lib/components/ndf-filters/models/operator-value-object.d.ts +6 -0
  155. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/predicate-field-config.d.ts +2 -1
  156. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/types-helper.d.ts +0 -11
  157. package/lib/components/ndf-filters/ndf-filters-panel.module.d.ts +66 -0
  158. package/lib/components/ndf-filters/pipes/check-condition.pipe.d.ts +12 -0
  159. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/index.d.ts +1 -0
  160. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/roles-filters.pipe.d.ts +1 -1
  161. package/lib/components/{tables/ndf-table/filters-panel/index.d.ts → ndf-filters/public-api.d.ts} +2 -1
  162. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/services/aggregation-field.service.d.ts +1 -1
  163. package/lib/components/{tables/ndf-table → ndf-filters}/services/filters-mapper.service.d.ts +1 -1
  164. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/services/index.d.ts +1 -0
  165. package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/utility/index.d.ts +1 -0
  166. package/lib/components/{tables/ndf-table/utils → ndf-filters/utility}/nxql-query.d.ts +4 -3
  167. package/lib/components/ndf-tabs/tab.type.d.ts +1 -1
  168. package/lib/components/reports/ndf-reports/base/base-report.d.ts +3 -3
  169. package/lib/components/reports/ndf-reports/containers/ndf-report/ndf-report.component.d.ts +1 -1
  170. package/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.d.ts +3 -2
  171. package/lib/components/reports/ndf-reports/models/common.d.ts +2 -2
  172. package/lib/components/reports/ndf-reports/models/ndf-reports.config.d.ts +1 -1
  173. package/lib/components/reports/ndf-reports/ndf-reports.module.d.ts +2 -2
  174. package/lib/components/reports/ndf-reports/services/dynamic-timeline-report.service.d.ts +1 -1
  175. package/lib/components/tables/ndf-table/components/text-search/text-search.component.d.ts +1 -1
  176. package/lib/components/tables/ndf-table/containers/ndf-table/ndf-table.component.d.ts +3 -2
  177. package/lib/components/tables/ndf-table/models/payload-types.d.ts +0 -6
  178. package/lib/components/tables/ndf-table/models/search.config.d.ts +1 -1
  179. package/lib/components/tables/ndf-table/models/table-mode.d.ts +1 -1
  180. package/lib/components/tables/ndf-table/models/table-options.d.ts +1 -1
  181. package/lib/components/tables/ndf-table/models/types.d.ts +1 -1
  182. package/lib/components/tables/ndf-table/ndf-table.module.d.ts +2 -2
  183. package/lib/components/tables/ndf-table/public-api.d.ts +0 -1
  184. package/lib/components/tables/ndf-table/services/index.d.ts +0 -1
  185. package/lib/shared/evaluator/evaluator.d.ts +79 -0
  186. package/lib/shared/evaluator/index.d.ts +1 -0
  187. package/lib/shared/evaluator/types.d.ts +14 -0
  188. package/lib/shared/models/index.d.ts +1 -0
  189. package/lib/shared/models/type-helpers.d.ts +11 -0
  190. package/package.json +3 -2
  191. package/public-api.d.ts +1 -0
  192. package/src/docs/ndf-table.doc.md +287 -217
  193. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-aggregation-field.component.js +0 -91
  194. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-checkbox-radio.component.js +0 -66
  195. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-custom-field.component.js +0 -46
  196. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-predicate-field.component.js +0 -43
  197. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/base-value-accessor.component.js +0 -34
  198. package/esm2015/lib/components/tables/ndf-table/filters-panel/base/index.js +0 -6
  199. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-autocomplete-input/filter-autocomplete-input.component.js +0 -97
  200. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-autocomplete-input/filter-autocomplete.service.js +0 -43
  201. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-collapse-control/filter-collapse-control.component.js +0 -44
  202. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/filter-date-range/filter-date-range.component.js +0 -89
  203. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/__parts/index.js +0 -10
  204. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-autocomplete/aggregation-autocomplete.component.js +0 -109
  205. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-custom/aggregation-custom.component.js +0 -66
  206. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-date-list/aggregation-date-list.component.js +0 -219
  207. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/aggregation-select/aggregation-select.component.js +0 -83
  208. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/index.js +0 -11
  209. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/predicate-date-input/predicate-date-input.component.js +0 -146
  210. package/esm2015/lib/components/tables/ndf-table/filters-panel/components/predicate-text-input/predicate-text-input.component.js +0 -144
  211. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/common.js +0 -4
  212. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/field.js +0 -6
  213. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/index.js +0 -5
  214. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/operators.js +0 -18
  215. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/sort.js +0 -23
  216. package/esm2015/lib/components/tables/ndf-table/filters-panel/constants/type.js +0 -26
  217. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/aggregation-field/aggregation-field.component.js +0 -78
  218. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/base-field.js +0 -62
  219. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/custom-field/custom-field.component.js +0 -73
  220. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/filters-panel/base-filters-panel.js +0 -55
  221. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/filters-panel/filters-panel.component.js +0 -122
  222. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/index.js +0 -5
  223. package/esm2015/lib/components/tables/ndf-table/filters-panel/containers/predicate-field/predicate-field.component.js +0 -71
  224. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/active-user-switch.component.js +0 -55
  225. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/active-user.service.js +0 -17
  226. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/active-user-switch/user-types.js +0 -2
  227. package/esm2015/lib/components/tables/ndf-table/filters-panel/custom-components/index.js +0 -2
  228. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/autocomplete-template.directive.js +0 -28
  229. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/checkbox-template.directive.js +0 -28
  230. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/custom-template.directive.js +0 -28
  231. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/date-template.directive.js +0 -28
  232. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/dropdown-template.directive.js +0 -28
  233. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/index.js +0 -9
  234. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/radio-template.directive.js +0 -28
  235. package/esm2015/lib/components/tables/ndf-table/filters-panel/directives/switch-template.directive.js +0 -28
  236. package/esm2015/lib/components/tables/ndf-table/filters-panel/filters-panel.module.js +0 -205
  237. package/esm2015/lib/components/tables/ndf-table/filters-panel/index.js +0 -11
  238. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/aggregation-field-config.js +0 -2
  239. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/aggregation-response.model.js +0 -2
  240. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/base-field-config.js +0 -2
  241. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/common.js +0 -2
  242. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/custom-field-config.js +0 -2
  243. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-config.model.js +0 -2
  244. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/autocomplete-options.js +0 -2
  245. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/checkbox-options.js +0 -2
  246. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/common-utils.js +0 -2
  247. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/custom-fields-options.js +0 -2
  248. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/custom-options.js +0 -2
  249. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/date-list-options.js +0 -2
  250. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/date-options.js +0 -2
  251. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/dropdown-options.js +0 -2
  252. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/index.js +0 -12
  253. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/input-options.js +0 -2
  254. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/radio-options.js +0 -2
  255. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/field-options/switch-options.js +0 -2
  256. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/filter-option.model.js +0 -2
  257. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/form-query-request.js +0 -2
  258. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/index.js +0 -13
  259. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/predicate-field-config.js +0 -2
  260. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/types-helper.js +0 -2
  261. package/esm2015/lib/components/tables/ndf-table/filters-panel/models/value-object.model.js +0 -12
  262. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/autocomplete-filter.pipe.js +0 -27
  263. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/filter.pipe.js +0 -27
  264. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/hash-translate.pipe.js +0 -52
  265. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/index.js +0 -9
  266. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/localized-label.pipe.js +0 -28
  267. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/roles-filters.pipe.js +0 -31
  268. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/sanitizer.pipe.js +0 -34
  269. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/sort.pipe.js +0 -40
  270. package/esm2015/lib/components/tables/ndf-table/filters-panel/pipes/tooltip.pipe.js +0 -69
  271. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/aggregation-field.service.js +0 -105
  272. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/dynamic-component-loader.service.js +0 -59
  273. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/filters-query.service.js +0 -117
  274. package/esm2015/lib/components/tables/ndf-table/filters-panel/services/index.js +0 -4
  275. package/esm2015/lib/components/tables/ndf-table/filters-panel/utility/index.js +0 -3
  276. package/esm2015/lib/components/tables/ndf-table/filters-panel/utility/nxql.js +0 -47
  277. package/esm2015/lib/components/tables/ndf-table/filters-panel/utility/object.js +0 -42
  278. package/esm2015/lib/components/tables/ndf-table/services/filters-mapper.service.js +0 -60
  279. package/esm2015/lib/components/tables/ndf-table/utils/index.js +0 -2
  280. package/esm2015/lib/components/tables/ndf-table/utils/nxql-query.js +0 -52
  281. package/lib/components/tables/ndf-table/filters-panel/filters-panel.module.d.ts +0 -65
  282. package/lib/components/tables/ndf-table/utils/index.d.ts +0 -1
  283. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/base/base-checkbox-radio.component.d.ts +0 -0
  284. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/base/base-custom-field.component.d.ts +0 -0
  285. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/base/base-predicate-field.component.d.ts +0 -0
  286. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/base/index.d.ts +0 -0
  287. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/field-header.component.d.ts +0 -0
  288. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-collapse-control/filter-collapse-control.component.d.ts +0 -0
  289. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-empty-message.component.d.ts +0 -0
  290. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-option-text/filter-option-text.component.d.ts +0 -0
  291. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-options-sort/filter-options-sort.component.d.ts +0 -0
  292. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/filter-search-input/filter-search-input.component.d.ts +0 -0
  293. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/__parts/index.d.ts +0 -0
  294. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-autocomplete/aggregation-autocomplete.component.d.ts +0 -0
  295. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-checkbox/aggregation-checkbox.component.d.ts +0 -0
  296. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-custom/aggregation-custom.component.d.ts +0 -0
  297. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-date-list/aggregation-date-list.component.d.ts +0 -0
  298. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-radio/aggregation-radio.component.d.ts +0 -0
  299. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-select/aggregation-select.component.d.ts +0 -0
  300. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/aggregation-switch/aggregation-switch.component.d.ts +0 -0
  301. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/index.d.ts +0 -0
  302. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/predicate-date-input/predicate-date-input.component.d.ts +0 -0
  303. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/components/predicate-text-input/predicate-text-input.component.d.ts +0 -0
  304. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/constants/common.d.ts +0 -0
  305. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/constants/field.d.ts +0 -0
  306. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/constants/index.d.ts +0 -0
  307. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/constants/operators.d.ts +0 -0
  308. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/constants/sort.d.ts +0 -0
  309. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/constants/type.d.ts +0 -0
  310. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/containers/aggregation-field/aggregation-field.component.d.ts +0 -0
  311. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/containers/base-field.d.ts +0 -0
  312. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/containers/custom-field/custom-field.component.d.ts +0 -0
  313. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/containers/index.d.ts +0 -0
  314. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/containers/predicate-field/predicate-field.component.d.ts +0 -0
  315. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/custom-components/active-user-switch/active-user-switch.component.d.ts +0 -0
  316. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/custom-components/active-user-switch/user-types.d.ts +0 -0
  317. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/custom-components/index.d.ts +0 -0
  318. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/autocomplete-template.directive.d.ts +0 -0
  319. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/checkbox-template.directive.d.ts +0 -0
  320. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/custom-template.directive.d.ts +0 -0
  321. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/date-template.directive.d.ts +0 -0
  322. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/dropdown-label-template.directive.d.ts +0 -0
  323. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/dropdown-template.directive.d.ts +0 -0
  324. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/index.d.ts +0 -0
  325. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/radio-template.directive.d.ts +0 -0
  326. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/directives/switch-template.directive.d.ts +0 -0
  327. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/aggregation-response.model.d.ts +0 -0
  328. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/common.d.ts +0 -0
  329. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-config.model.d.ts +0 -0
  330. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/custom-options.d.ts +0 -0
  331. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/field-options/index.d.ts +0 -0
  332. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/form-query-request.d.ts +0 -0
  333. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/models/value-object.model.d.ts +0 -0
  334. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/autocomplete-filter.pipe.d.ts +0 -0
  335. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/filter.pipe.d.ts +0 -0
  336. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/hash-translate.pipe.d.ts +0 -0
  337. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/localized-label.pipe.d.ts +0 -0
  338. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/sanitizer.pipe.d.ts +0 -0
  339. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/sort.pipe.d.ts +0 -0
  340. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/pipes/tooltip.pipe.d.ts +0 -0
  341. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/services/dynamic-component-loader.service.d.ts +0 -0
  342. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/services/filters-query.service.d.ts +0 -0
  343. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/utility/nxql.d.ts +0 -0
  344. /package/lib/components/{tables/ndf-table/filters-panel → ndf-filters}/utility/object.d.ts +0 -0
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGljYXRlLWRhdGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9jb21wb25lbnRzL3ByZWRpY2F0ZS1kYXRlLWlucHV0L3ByZWRpY2F0ZS1kYXRlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29tcG9uZW50cy9wcmVkaWNhdGUtZGF0ZS1pbnB1dC9wcmVkaWNhdGUtZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBRU4sV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFFakIsVUFBVSxFQUNWLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BGLE9BQU8sS0FBSyxNQUFNLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFpQ3ZCLE1BQU0sT0FBTywyQkFDWixTQUFRLGtCQUE2RDtJQXZCdEU7O1FBMEJDLGFBQVEsR0FBRyxJQUFJLFdBQVcs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LENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWDt3QkFDRDs0QkFDQyxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNYO3FCQUNEO29CQUNELElBQUksRUFBRTt3QkFDTCxLQUFLLEVBQUUsWUFBWTtxQkFDbkI7aUJBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcblx0QWJzdHJhY3RDb250cm9sLFxyXG5cdEZvcm1Db250cm9sLFxyXG5cdE5HX1ZBTElEQVRPUlMsXHJcblx0TkdfVkFMVUVfQUNDRVNTT1IsXHJcblx0VmFsaWRhdGlvbkVycm9ycyxcclxuXHRWYWxpZGF0b3JzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBCYXNlUHJlZGljYXRlRmllbGQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgRmllbGRWYWx1ZU9iamVjdCB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IGlzRGF0ZU9iamVjdCwgaXNGaWVsZFZhbHVlT2JqZWN0LCBOeFFMIH0gZnJvbSAnLi4vLi4vdXRpbGl0eSc7XHJcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IERhdGVWYWx1ZU9iamVjdCwgTG9jYWxpemVEYXRlVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9uZGYtZGF0ZXBpY2tlcic7XHJcblxyXG50eXBlIERhdGVUeXBlID1cclxuXHR8IHN0cmluZ1xyXG5cdHwgRmllbGRWYWx1ZU9iamVjdDxzdHJpbmc+XHJcblx0fCB7XHJcblx0XHRcdG1pbjogc3RyaW5nO1xyXG5cdFx0XHRtYXg6IHN0cmluZztcclxuXHQgIH07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2xpYi1wcmVkaWNhdGUtZGF0ZS1pbnB1dCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3ByZWRpY2F0ZS1kYXRlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9wcmVkaWNhdGUtZGF0ZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5EZWZhdWx0LFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJlZGljYXRlRGF0ZUlucHV0Q29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFByZWRpY2F0ZURhdGVJbnB1dENvbXBvbmVudCksXHJcblx0XHRcdG11bHRpOiB0cnVlXHJcblx0XHR9XHJcblx0XSxcclxuXHRob3N0OiB7XHJcblx0XHRjbGFzczogJ2RhdGUtZmllbGQnXHJcblx0fVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJlZGljYXRlRGF0ZUlucHV0Q29tcG9uZW50XHJcblx0ZXh0ZW5kcyBCYXNlUHJlZGljYXRlRmllbGQ8J2RhdGUnLCBzdHJpbmcgfCBGaWVsZFZhbHVlT2JqZWN0PHN0cmluZz4+XHJcblx0aW1wbGVtZW50cyBPbkluaXRcclxue1xyXG5cdGZvcm1EYXRlID0gbmV3IEZvcm1Db250cm9sKG51bGwpO1xyXG5cclxuXHRnZXQgaXNEYXRlUmFuZ2UoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5yZW5kZXJPcHRpb25zPy5pc0RhdGVSYW5nZTtcclxuXHR9XHJcblxyXG5cdGdldCB2YWxpZGF0b3JzKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuaXNEYXRlUmFuZ2UgPyBbVmFsaWRhdG9ycy5yZXF1aXJlZF0gOiBbXTtcclxuXHR9XHJcblxyXG5cdGdldCBkZWJvdW5jZVRpbWUoKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5yZW5kZXJPcHRpb25zPy5kZWJvdW5jZVRpbWUgPz8gMzAwO1xyXG5cdH1cclxuXHJcblx0d3JpdGVWYWx1ZShvYmo6IERhdGVUeXBlKTogdm9pZCB7XHJcblx0XHRpZiAob2JqKSB7XHJcblx0XHRcdGlmIChpc0ZpZWxkVmFsdWVPYmplY3Qob2JqKSkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLl9oYW5kZWxGaWVsZFZhbHVlRGF0YShvYmopO1xyXG5cdFx0XHR9XHJcblx0XHRcdGlmIChpc0RhdGVPYmplY3Qob2JqKSkge1xyXG5cdFx0XHRcdHRoaXMuX2hhbmRlbERhdGVPYmoob2JqKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKHR5cGVvZiBvYmogPT09ICdzdHJpbmcnICYmICF0aGlzLmlzRGF0ZVJhbmdlKSB7XHJcblx0XHRcdFx0dGhpcy5mb3JtRGF0ZS5zZXRWYWx1ZShvYmosIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblx0XHR0aGlzLmZvcm1EYXRlLnJlc2V0KG51bGwsIHtcclxuXHRcdFx0ZW1pdEV2ZW50OiBmYWxzZVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHR2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcclxuXHRcdHJldHVybiBjb250cm9sLnZhbGlkID8gbnVsbCA6IGNvbnRyb2wuZXJyb3JzO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmZvcm1EYXRlLnZhbHVlQ2hhbmdlc1xyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKGRhdGU6IExvY2FsaXplRGF0ZVZhbHVlPHN0cmluZyB8IERhdGVWYWx1ZU9iamVjdD4pID0+IHRoaXMuX3ByZXBhcmVEYXRlVG9FbWl0KGRhdGUpKSxcclxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4gXy5pc0VxdWFsKGEsIGIpKSxcclxuXHRcdFx0XHRkZWJvdW5jZVRpbWUodGhpcy5kZWJvdW5jZVRpbWUpLFxyXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKVxyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG5cdFx0XHRcdHRoaXMuX2lzRmllbGREaXJ0eSA9ICEhcmVzO1xyXG5cdFx0XHRcdHRoaXMub25DaGFuZ2UocmVzKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9oYW5kZWxEYXRlT2JqKGRhdGU6IHsgbWluOiBzdHJpbmc7IG1heDogc3RyaW5nIH0pIHtcclxuXHRcdGNvbnN0IHsgbWluLCBtYXggfSA9IGRhdGU7XHJcblx0XHR0aGlzLmZvcm1EYXRlLnNldFZhbHVlKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0ZnJvbTogbWluLFxyXG5cdFx0XHRcdHRvOiBtYXhcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9oYW5kZWxGaWVsZFZhbHVlRGF0YShkYXRlOiBGaWVsZFZhbHVlT2JqZWN0PHN0cmluZz4pIHtcclxuXHRcdGNvbnN0IHsgbWluLCBtYXgsIHZhbHVlIH0gPSBkYXRlO1xyXG5cdFx0dGhpcy5mb3JtRGF0ZS5wYXRjaFZhbHVlKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0ZnJvbTogbWluIHx8IHZhbHVlLFxyXG5cdFx0XHRcdHRvOiBtYXhcclxuXHRcdFx0fSxcclxuXHRcdFx0eyBlbWl0RXZlbnQ6IGZhbHNlIH1cclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlRGF0ZVRvRW1pdChkYXRlOiBMb2NhbGl6ZURhdGVWYWx1ZTxzdHJpbmcgfCBEYXRlVmFsdWVPYmplY3Q+KSB7XHJcblx0XHRpZiAoIWRhdGUgfHwgIWRhdGU/LnZhbHVlKSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdFx0Y29uc3QgeyB2YWx1ZSB9ID0gZGF0ZTtcclxuXHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICF0aGlzLmlzRGF0ZVJhbmdlKSB7XHJcblx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdH1cclxuXHJcblx0XHRjb25zdCB7IGZyb206IG1pbiwgdG86IG1heCB9ID0gdmFsdWUgYXMgRGF0ZVZhbHVlT2JqZWN0O1xyXG5cclxuXHRcdGNvbnN0IF9oYXNEYXRhID0gbWluIHx8IG1heDtcclxuXHRcdGlmICghX2hhc0RhdGEpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMuZmllbGQudmFsdWVUeXBlID09ICdwcm9wZXJ0eScpIHtcclxuXHRcdFx0aWYgKG1pbiAmJiBtYXggJiYgdGhpcy5pc0RhdGVSYW5nZSkge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLl9ub3JtYWxpemVEYXRlUmFuZ2UoeyBtaW4sIG1heCB9KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gbWluO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICh0aGlzLl9pc1ZhbHVlT2JqZWN0KCkpIHtcclxuXHRcdFx0Y29uc3QgX2RhdGUgPSB0aGlzLl9ub3JtYWxpemVEYXRlUmFuZ2UoeyBtaW4sIG1heCB9KTtcclxuXHRcdFx0Y29uc3QgX29wZXJhdG9yID0gTnhRTC5fZ2V0UmFuZ2VPcGVyYXRvcihfZGF0ZSk7XHJcblx0XHRcdHJldHVybiBOeFFMLl9nZXRWYWx1ZVJhbmdlKF9kYXRlLCAnREFURScsIF9vcGVyYXRvcik7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBfbm9ybWFsaXplRGF0ZVJhbmdlKGRhdGU6IHsgbWluOiBzdHJpbmcgfCBudWxsOyBtYXg6IHN0cmluZyB8IG51bGwgfSkge1xyXG5cdFx0bW9tZW50LmxvY2FsZSgnZW4nKTtcclxuXHJcblx0XHRpZiAoIWRhdGUpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0XHRjb25zdCB7IG1pbiwgbWF4IH0gPSBkYXRlO1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0bWluOiBtaW4gPyBtb21lbnQobWluKS5zdGFydE9mKCdkYXknKS5mb3JtYXQoKSA6IG1pbixcclxuXHRcdFx0bWF4OiBtYXggPyBtb21lbnQobWF4KS5lbmRPZignZGF5JykuZm9ybWF0KCkgOiBtYXhcclxuXHRcdH07XHJcblx0fVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJmaWx0ZXItZGF0ZS1pbnB1dFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuXHQ8bmRmLWRhdGVwaWNrZXJcclxuXHRcdFtmb3JtQ29udHJvbF09XCJmb3JtRGF0ZVwiXHJcblx0XHRbcmFuZ2VdPVwiaXNEYXRlUmFuZ2VcIlxyXG5cdFx0W3N0YXJ0RGF0ZVBsYWNlaG9sZGVyXT1cIidGSUxURVJTLmZyb20nIHwgdHJhbnNsYXRlXCJcclxuXHRcdFtlbmREYXRlUGxhY2Vob2xkZXJdPVwiJ0ZJTFRFUlMudG8nIHwgdHJhbnNsYXRlXCJcclxuXHRcdFtwbGFjZWhvbGRlcl09XCJyZW5kZXJPcHRpb25zPy5wbGFjZWhvbGRlclwiXHJcblx0XHRbc2hvd0FjdGlvbnNdPVwicmVuZGVyT3B0aW9ucz8uc2hvd0FjdGlvbnMgPz8gdHJ1ZVwiXHJcblx0XHRbYXV0b0ZpbGxdPVwicmVuZGVyT3B0aW9ucz8uYXV0b0ZpbGxcIlxyXG5cdFx0W3BhbmVsQ2xhc3NdPVwicmVuZGVyT3B0aW9ucz8ucGFuZWxDbGFzc1wiXHJcblx0XHRbc3RhcnRWaWV3XT1cInJlbmRlck9wdGlvbnM/LnN0YXJ0Vmlld1wiXHJcblx0XHRbbWF4XT1cInJlbmRlck9wdGlvbnM/Lm1heFwiXHJcblx0XHRbbWluXT1cInJlbmRlck9wdGlvbnM/Lm1pblwiXHJcblx0XHRbc3RhcnRBdF09XCJyZW5kZXJPcHRpb25zPy5zdGFydEF0XCJcclxuXHRcdFt1cGRhdGVMb2NhbExhbmddPVwicmVuZGVyT3B0aW9ucz8udXBkYXRlTG9jYWxMYW5nID8/IHRydWVcIlxyXG5cdFx0W2hpanJpRGlzcGxheUZvcm1hdF09XCJyZW5kZXJPcHRpb25zPy5oaWpyaURpc3BsYXlGb3JtYXRcIlxyXG5cdFx0W2Rpc3BsYXlGb3JtYXRdPVwicmVuZGVyT3B0aW9ucz8uZGlzcGxheUZvcm1hdFwiXHJcblx0PjwvbmRmLWRhdGVwaWNrZXI+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,144 @@
1
+ import { __rest } from "tslib";
2
+ import { ChangeDetectionStrategy, Component, forwardRef, ViewEncapsulation } from '@angular/core';
3
+ import { FormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
4
+ import { MatDialog } from '@angular/material/dialog';
5
+ import { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';
6
+ import { BasePredicateField } from '../../base';
7
+ import { COMPARISON_OPERATOR, DEFAULT_DEBOUNCE_TIME } from '../../constants';
8
+ import { HtmlDialogComponent } from '../__parts';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/material/icon";
11
+ import * as i2 from "@angular/material/menu";
12
+ import * as i3 from "@angular/common";
13
+ import * as i4 from "@angular/forms";
14
+ import * as i5 from "ngx-mask";
15
+ import * as i6 from "@angular/material/tooltip";
16
+ import * as i7 from "@angular/cdk/bidi";
17
+ import * as i8 from "@ngx-translate/core";
18
+ import * as i9 from "../../pipes/hash-translate.pipe";
19
+ export class PredicateTextInputComponent extends BasePredicateField {
20
+ constructor() {
21
+ super(...arguments);
22
+ this._dialog = this.injector.get(MatDialog);
23
+ this.internalValue = new FormControl('');
24
+ }
25
+ get selectConfig() {
26
+ var _a, _b;
27
+ return (_b = (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.suffix) === null || _b === void 0 ? void 0 : _b.dropdown;
28
+ }
29
+ get tooltip() {
30
+ var _a, _b;
31
+ return (_b = (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.suffix) === null || _b === void 0 ? void 0 : _b.tooltip;
32
+ }
33
+ get dialogConfig() {
34
+ var _a, _b;
35
+ return (_b = (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.suffix) === null || _b === void 0 ? void 0 : _b.dialog;
36
+ }
37
+ get maskOptions() {
38
+ var _a;
39
+ return (_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.mask;
40
+ }
41
+ writeValue(data) {
42
+ var _a, _b;
43
+ if (data) {
44
+ if (typeof data === 'string') {
45
+ this.internalValue.setValue(data, { emitEvent: false });
46
+ this.cdr.detectChanges();
47
+ return;
48
+ }
49
+ this.selectValue = (_b = (_a = this.selectConfig) === null || _a === void 0 ? void 0 : _a.items) === null || _b === void 0 ? void 0 : _b.find((itm) => itm.value === (data === null || data === void 0 ? void 0 : data.value));
50
+ this.internalValue.setValue(data === null || data === void 0 ? void 0 : data.value, { emitEvent: false });
51
+ }
52
+ else if (this._isFieldDirty) {
53
+ this.internalValue.setValue(null, { emitEvent: false });
54
+ this._isFieldDirty = false;
55
+ }
56
+ }
57
+ ngOnInit() {
58
+ var _a;
59
+ this._prepareSelectList();
60
+ this.internalValue.valueChanges
61
+ .pipe(distinctUntilChanged(), debounceTime(((_a = this.renderOptions) === null || _a === void 0 ? void 0 : _a.debounceTime) || DEFAULT_DEBOUNCE_TIME), takeUntil(this.destroy$))
62
+ .subscribe((res) => {
63
+ this.updateValue(res);
64
+ this._isFieldDirty = Boolean(res);
65
+ });
66
+ }
67
+ updateValue(value) {
68
+ if (this.field.valueType == 'property') {
69
+ this.onChange(value);
70
+ return;
71
+ }
72
+ this.updateObjectValue();
73
+ }
74
+ updateObjectValue() {
75
+ var _a;
76
+ if (this.internalValue.value) {
77
+ const operator = (((_a = this.selectValue) === null || _a === void 0 ? void 0 : _a.value) || COMPARISON_OPERATOR.like);
78
+ const data = this._prepareValueObject(this.internalValue.value, operator);
79
+ this.onChange(data);
80
+ return;
81
+ }
82
+ this.onChange(null);
83
+ }
84
+ changeOperator(event) {
85
+ this.selectValue = event;
86
+ this.cdr.detectChanges();
87
+ if (this.internalValue.value) {
88
+ this.updateObjectValue();
89
+ }
90
+ }
91
+ openModal() {
92
+ const _a = this.dialogConfig, { options } = _a, data = __rest(_a, ["options"]);
93
+ this._dialog.open(HtmlDialogComponent, Object.assign(Object.assign({ panelClass: 'p-0', minWidth: 'min(500px,60vw)', direction: this.direction }, options), { data }));
94
+ }
95
+ _prepareSelectList() {
96
+ var _a, _b;
97
+ if (this.selectConfig && !this.selectValue) {
98
+ const key = (_a = this.selectConfig.items.find((itm) => itm.value === this.selectConfig.selectedValue)) === null || _a === void 0 ? void 0 : _a.key;
99
+ this.selectValue = {
100
+ key: key,
101
+ value: (_b = this.selectConfig) === null || _b === void 0 ? void 0 : _b.selectedValue
102
+ };
103
+ }
104
+ }
105
+ }
106
+ PredicateTextInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PredicateTextInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
107
+ PredicateTextInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: PredicateTextInputComponent, selector: "predicate-text-input", host: { classAttribute: "text-field input-wrapper" }, providers: [
108
+ {
109
+ provide: NG_VALUE_ACCESSOR,
110
+ useExisting: forwardRef(() => PredicateTextInputComponent),
111
+ multi: true
112
+ },
113
+ {
114
+ provide: NG_VALIDATORS,
115
+ useExisting: forwardRef(() => PredicateTextInputComponent),
116
+ multi: true
117
+ }
118
+ ], usesInheritance: true, ngImport: i0, template: "<input\r\n\t*ngIf=\"!maskOptions?.mask\"\r\n\ttype=\"text\"\r\n\tclass=\"text-field__input\"\r\n\t[formControl]=\"internalValue\"\r\n\t[title]=\"field?.label | translate\"\r\n\t[placeholder]=\"renderOptions?.placeholder ?? 'FILTERS.enterText' | translate\"\r\n/>\r\n\r\n<input\r\n\t*ngIf=\"maskOptions?.mask\"\r\n\ttype=\"text\"\r\n\tclass=\"text-field__input\"\r\n\t[formControl]=\"internalValue\"\r\n\t[title]=\"field?.label | translate\"\r\n\t[placeholder]=\"renderOptions?.placeholder ?? 'FILTERS.enterText' | translate\"\r\n\t[mask]=\"maskOptions?.mask\"\r\n\t[dropSpecialCharacters]=\"maskOptions?.dropSpecialCharacters ?? true\"\r\n\t[showMaskTyped]=\"maskOptions?.showMaskTyped ?? true\"\r\n\t[validation]=\"maskOptions?.validation\"\r\n\t[shownMaskExpression]=\"maskOptions?.shownMaskExpression\"\r\n\t[allowNegativeNumbers]=\"maskOptions?.allowNegativeNumbers\"\r\n\t[keepCharacterPositions]=\"maskOptions?.keepCharacterPositions\"\r\n\t[leadZero]=\"maskOptions?.leadZero\"\r\n\t[hiddenInput]=\"maskOptions?.hiddenInput\"\r\n\t[clearIfNotMatch]=\"maskOptions?.clearIfNotMatch\"\r\n\t[prefix]=\"maskOptions?.prefix ?? ''\"\r\n\t[suffix]=\"maskOptions?.suffix ?? ''\"\r\n/>\r\n\r\n<div *ngIf=\"renderOptions?.suffix\" class=\"text-field__suffix\">\r\n\t<mat-icon\r\n\t\t*ngIf=\"tooltip\"\r\n\t\t[matTooltip]=\"tooltip | hashTranslateAsync | async\"\r\n\t\tclass=\"text-field__suffix__item suffix-icon\"\r\n\t>\r\n\t\tinfo\r\n\t</mat-icon>\r\n\r\n\t<span *ngIf=\"renderOptions.suffix?.text\" class=\"text-field__suffix__item text- suffix-text\">\r\n\t\t{{ renderOptions.suffix.text | translate }}\r\n\t</span>\r\n\r\n\t<button *ngIf=\"selectConfig\" class=\"text-field__suffix__item suffix-button\" [matMenuTriggerFor]=\"menu\">\r\n\t\t<mat-icon> edit </mat-icon>\r\n\t</button>\r\n\r\n\t<button *ngIf=\"dialogConfig\" class=\"text-field__suffix__item suffix-button\" (click)=\"openModal()\">\r\n\t\t<mat-icon>help_outline</mat-icon>\r\n\t</button>\r\n</div>\r\n\r\n<mat-menu #menu=\"matMenu\" class=\"text-field__suffix__menu\">\r\n\t<span [dir]=\"direction\" class=\"text-field__suffix__menu__wrapper\" *ngIf=\"selectConfig?.items\">\r\n\t\t<button\r\n\t\t\tmat-menu-item\r\n\t\t\t*ngFor=\"let item of selectConfig.items\"\r\n\t\t\t(click)=\"changeOperator(item)\"\r\n\t\t\t[class.selected]=\"item.value === selectValue?.value\"\r\n\t\t>\r\n\t\t\t{{ item.key | translate }}\r\n\t\t</button>\r\n\t</span>\r\n</mat-menu>\r\n", styles: [".text-field{--text-border-color: var(--tf-border-color, var(--main-hover));display:var(--tf-display, inline-grid);grid-template-columns:var(--tf-columns, 1fr auto);align-items:var(--tf-align-items, center);border:var(--tf-border, 1px solid);border-color:var(--text-border-color);border-radius:var(--tf-radius, 4px);color:var(--tf-background, var(--main-text));background-color:var(--tf-background, transparent);height:var(--tf-height, calc(1.5em + .75rem + 2px));width:var(--tf-width, 100%)}.text-field:focus-within{--text-border-color: var(--tf-focus-border-color, var(--main-color))}.text-field__input{display:block;padding:var(--tf-input-padding, .375rem .75rem);font-size:1rem;font-weight:400;line-height:1.5;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;border-start-start-radius:var(--tf-radius, 4px);border-end-start-radius:var(--tf-radius, 4px);min-width:0}.text-field__suffix{display:inline-flex;align-items:center;grid-gap:var(--tf-suffix-gap, 0 .2rem);gap:var(--tf-suffix-gap, 0 .2rem);border-inline-start:var(--tf-suffix-start-border, 1px solid var(--text-border-color))}.text-field__suffix__item{padding:var(--tf-item-padding, 0 .1rem);width:auto;height:100%;display:grid;place-items:center}.text-field__suffix__menu .mat-menu-item{line-height:var(--mi-height, 36px);height:var(--mi-height, 36px)}.text-field__suffix__menu .mat-menu-item.selected{background:var(--mi-sel-background, var(--main-color));color:var(--mi-sel-color, var(--main-hover))}.text-field__suffix__menu .mat-menu-item.selected:hover{--mi-sel-color: currentColor}.text-field__suffix__menu__wrapper{max-height:var(--tf-menu-height, 250px);overflow-y:auto;display:block}\n"], components: [{ type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.FormControlDirective, selector: "[formControl]", inputs: ["disabled", "formControl", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"], exportAs: ["mask", "ngxMask"] }, { type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["matMenuTriggerRestoreFocus", "mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { type: i7.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i8.TranslatePipe, "async": i3.AsyncPipe, "hashTranslateAsync": i9.HashTranslateAsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PredicateTextInputComponent, decorators: [{
120
+ type: Component,
121
+ args: [{
122
+ selector: 'predicate-text-input',
123
+ templateUrl: './predicate-text-input.component.html',
124
+ styleUrls: ['./predicate-text-input.component.scss'],
125
+ encapsulation: ViewEncapsulation.None,
126
+ changeDetection: ChangeDetectionStrategy.OnPush,
127
+ providers: [
128
+ {
129
+ provide: NG_VALUE_ACCESSOR,
130
+ useExisting: forwardRef(() => PredicateTextInputComponent),
131
+ multi: true
132
+ },
133
+ {
134
+ provide: NG_VALIDATORS,
135
+ useExisting: forwardRef(() => PredicateTextInputComponent),
136
+ multi: true
137
+ }
138
+ ],
139
+ host: {
140
+ class: 'text-field input-wrapper'
141
+ }
142
+ }]
143
+ }] });
144
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZGljYXRlLXRleHQtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9jb21wb25lbnRzL3ByZWRpY2F0ZS10ZXh0LWlucHV0L3ByZWRpY2F0ZS10ZXh0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29tcG9uZW50cy9wcmVkaWNhdGUtdGV4dC1pbnB1dC9wcmVkaWNhdGUtdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUcsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDOzs7Ozs7Ozs7OztBQXdCakQsTUFBTSxPQUFPLDJCQUNaLFNBQVEsa0JBQThEO0lBdkJ2RTs7UUEwQmtCLFlBQU8sR0FBRyxJQUFJLENBQUMs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RUFBRSxHQUFHO2dCQUNSLEtBQUssRUFBRSxNQUFBLElBQUksQ0FBQyxZQUFZLDBDQUFFLGFBQWE7YUFDdkMsQ0FBQztTQUNGO0lBQ0YsQ0FBQzs7eUhBbkdXLDJCQUEyQjs2R0FBM0IsMkJBQTJCLHFHQWhCNUI7UUFDVjtZQUNDLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztZQUMxRCxLQUFLLEVBQUUsSUFBSTtTQUNYO1FBQ0Q7WUFDQyxPQUFPLEVBQUUsYUFBYTtZQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQzFELEtBQUssRUFBRSxJQUFJO1NBQ1g7S0FDRCxpREMzQkYsaTRFQWdFQTs0RkRoQ2EsMkJBQTJCO2tCQXRCdkMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxXQUFXLEVBQUUsdUNBQXVDO29CQUNwRCxTQUFTLEVBQUUsQ0FBQyx1Q0FBdUMsQ0FBQztvQkFDcEQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxTQUFTLEVBQUU7d0JBQ1Y7NEJBQ0MsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsNEJBQTRCLENBQUM7NEJBQzFELEtBQUssRUFBRSxJQUFJO3lCQUNYO3dCQUNEOzRCQUNDLE9BQU8sRUFBRSxhQUFhOzRCQUN0QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw0QkFBNEIsQ0FBQzs0QkFDMUQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7cUJBQ0Q7b0JBQ0QsSUFBSSxFQUFFO3dCQUNMLEtBQUssRUFBRSwwQkFBMEI7cUJBQ2pDO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBCYXNlUHJlZGljYXRlRmllbGQgfSBmcm9tICcuLi8uLi9iYXNlJztcclxuaW1wb3J0IHsgQ09NUEFSSVNPTl9PUEVSQVRPUiwgREVGQVVMVF9ERUJPVU5DRV9USU1FIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcclxuaW1wb3J0IHsgQ29tcGFyaXNvbk9wZXJhdG9yLCBGaWVsZFZhbHVlT2JqZWN0LCBIdG1sRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgSHRtbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uL19fcGFydHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdwcmVkaWNhdGUtdGV4dC1pbnB1dCcsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3ByZWRpY2F0ZS10ZXh0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9wcmVkaWNhdGUtdGV4dC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQcmVkaWNhdGVUZXh0SW5wdXRDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fSxcclxuXHRcdHtcclxuXHRcdFx0cHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUHJlZGljYXRlVGV4dElucHV0Q29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH1cclxuXHRdLFxyXG5cdGhvc3Q6IHtcclxuXHRcdGNsYXNzOiAndGV4dC1maWVsZCBpbnB1dC13cmFwcGVyJ1xyXG5cdH1cclxufSlcclxuZXhwb3J0IGNsYXNzIFByZWRpY2F0ZVRleHRJbnB1dENvbXBvbmVudFxyXG5cdGV4dGVuZHMgQmFzZVByZWRpY2F0ZUZpZWxkPCdpbnB1dCcsIHN0cmluZyB8IEZpZWxkVmFsdWVPYmplY3Q8c3RyaW5nPj5cclxuXHRpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcblx0cHJpdmF0ZSByZWFkb25seSBfZGlhbG9nID0gdGhpcy5pbmplY3Rvci5nZXQoTWF0RGlhbG9nKTtcclxuXHJcblx0aW50ZXJuYWxWYWx1ZSA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XHJcblx0c2VsZWN0VmFsdWU6IEtleVZhbHVlPHN0cmluZywgc3RyaW5nPjtcclxuXHRnZXQgc2VsZWN0Q29uZmlnKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucz8uc3VmZml4Py5kcm9wZG93bjtcclxuXHR9XHJcblxyXG5cdGdldCB0b29sdGlwKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucz8uc3VmZml4Py50b29sdGlwO1xyXG5cdH1cclxuXHJcblx0Z2V0IGRpYWxvZ0NvbmZpZygpIHtcclxuXHRcdHJldHVybiB0aGlzLnJlbmRlck9wdGlvbnM/LnN1ZmZpeD8uZGlhbG9nO1xyXG5cdH1cclxuXHJcblx0Z2V0IG1hc2tPcHRpb25zKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMucmVuZGVyT3B0aW9ucz8ubWFzaztcclxuXHR9XHJcblxyXG5cdHdyaXRlVmFsdWUoZGF0YTogc3RyaW5nIHwgRmllbGRWYWx1ZU9iamVjdDxzdHJpbmc+KTogdm9pZCB7XHJcblx0XHRpZiAoZGF0YSkge1xyXG5cdFx0XHRpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSB7XHJcblx0XHRcdFx0dGhpcy5pbnRlcm5hbFZhbHVlLnNldFZhbHVlKGRhdGEsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0XHR0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdHRoaXMuc2VsZWN0VmFsdWUgPSB0aGlzLnNlbGVjdENvbmZpZz8uaXRlbXM/LmZpbmQoKGl0bSkgPT4gaXRtLnZhbHVlID09PSBkYXRhPy52YWx1ZSk7XHJcblx0XHRcdHRoaXMuaW50ZXJuYWxWYWx1ZS5zZXRWYWx1ZShkYXRhPy52YWx1ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cdFx0fSBlbHNlIGlmICh0aGlzLl9pc0ZpZWxkRGlydHkpIHtcclxuXHRcdFx0dGhpcy5pbnRlcm5hbFZhbHVlLnNldFZhbHVlKG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHRcdFx0dGhpcy5faXNGaWVsZERpcnR5ID0gZmFsc2U7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX3ByZXBhcmVTZWxlY3RMaXN0KCk7XHJcblx0XHR0aGlzLmludGVybmFsVmFsdWUudmFsdWVDaGFuZ2VzXHJcblx0XHRcdC5waXBlKFxyXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXHJcblx0XHRcdFx0ZGVib3VuY2VUaW1lKHRoaXMucmVuZGVyT3B0aW9ucz8uZGVib3VuY2VUaW1lIHx8IERFRkFVTFRfREVCT1VOQ0VfVElNRSksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcblx0XHRcdClcclxuXHRcdFx0LnN1YnNjcmliZSgocmVzKSA9PiB7XHJcblx0XHRcdFx0dGhpcy51cGRhdGVWYWx1ZShyZXMpO1xyXG5cdFx0XHRcdHRoaXMuX2lzRmllbGREaXJ0eSA9IEJvb2xlYW4ocmVzKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XHJcblx0XHRpZiAodGhpcy5maWVsZC52YWx1ZVR5cGUgPT0gJ3Byb3BlcnR5Jykge1xyXG5cdFx0XHR0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMudXBkYXRlT2JqZWN0VmFsdWUoKTtcclxuXHR9XHJcblxyXG5cdHVwZGF0ZU9iamVjdFZhbHVlKCkge1xyXG5cdFx0aWYgKHRoaXMuaW50ZXJuYWxWYWx1ZS52YWx1ZSkge1xyXG5cdFx0XHRjb25zdCBvcGVyYXRvciA9ICh0aGlzLnNlbGVjdFZhbHVlPy52YWx1ZSB8fCBDT01QQVJJU09OX09QRVJBVE9SLmxpa2UpIGFzIENvbXBhcmlzb25PcGVyYXRvcjtcclxuXHRcdFx0Y29uc3QgZGF0YSA9IHRoaXMuX3ByZXBhcmVWYWx1ZU9iamVjdCh0aGlzLmludGVybmFsVmFsdWUudmFsdWUsIG9wZXJhdG9yKTtcclxuXHRcdFx0dGhpcy5vbkNoYW5nZShkYXRhKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cdFx0dGhpcy5vbkNoYW5nZShudWxsKTtcclxuXHR9XHJcblxyXG5cdGNoYW5nZU9wZXJhdG9yKGV2ZW50OiBLZXlWYWx1ZTxzdHJpbmcsIHN0cmluZz4pIHtcclxuXHRcdHRoaXMuc2VsZWN0VmFsdWUgPSBldmVudDtcclxuXHRcdHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuXHRcdGlmICh0aGlzLmludGVybmFsVmFsdWUudmFsdWUpIHtcclxuXHRcdFx0dGhpcy51cGRhdGVPYmplY3RWYWx1ZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b3Blbk1vZGFsKCkge1xyXG5cdFx0Y29uc3QgeyBvcHRpb25zLCAuLi5kYXRhIH0gPSB0aGlzLmRpYWxvZ0NvbmZpZztcclxuXHRcdHRoaXMuX2RpYWxvZy5vcGVuPEh0bWxEaWFsb2dDb21wb25lbnQsIEh0bWxEaWFsb2dDb25maWc+KEh0bWxEaWFsb2dDb21wb25lbnQsIHtcclxuXHRcdFx0cGFuZWxDbGFzczogJ3AtMCcsXHJcblx0XHRcdG1pbldpZHRoOiAnbWluKDUwMHB4LDYwdncpJyxcclxuXHRcdFx0ZGlyZWN0aW9uOiB0aGlzLmRpcmVjdGlvbixcclxuXHRcdFx0Li4ub3B0aW9ucyxcclxuXHRcdFx0ZGF0YVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIF9wcmVwYXJlU2VsZWN0TGlzdCgpIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdENvbmZpZyAmJiAhdGhpcy5zZWxlY3RWYWx1ZSkge1xyXG5cdFx0XHRjb25zdCBrZXkgPSB0aGlzLnNlbGVjdENvbmZpZy5pdGVtcy5maW5kKChpdG0pID0+IGl0bS52YWx1ZSA9PT0gdGhpcy5zZWxlY3RDb25maWcuc2VsZWN0ZWRWYWx1ZSk/LmtleTtcclxuXHRcdFx0dGhpcy5zZWxlY3RWYWx1ZSA9IHtcclxuXHRcdFx0XHRrZXk6IGtleSxcclxuXHRcdFx0XHR2YWx1ZTogdGhpcy5zZWxlY3RDb25maWc/LnNlbGVjdGVkVmFsdWVcclxuXHRcdFx0fTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIiwiPGlucHV0XHJcblx0Km5nSWY9XCIhbWFza09wdGlvbnM/Lm1hc2tcIlxyXG5cdHR5cGU9XCJ0ZXh0XCJcclxuXHRjbGFzcz1cInRleHQtZmllbGRfX2lucHV0XCJcclxuXHRbZm9ybUNvbnRyb2xdPVwiaW50ZXJuYWxWYWx1ZVwiXHJcblx0W3RpdGxlXT1cImZpZWxkPy5sYWJlbCB8IHRyYW5zbGF0ZVwiXHJcblx0W3BsYWNlaG9sZGVyXT1cInJlbmRlck9wdGlvbnM/LnBsYWNlaG9sZGVyID8/ICdGSUxURVJTLmVudGVyVGV4dCcgfCB0cmFuc2xhdGVcIlxyXG4vPlxyXG5cclxuPGlucHV0XHJcblx0Km5nSWY9XCJtYXNrT3B0aW9ucz8ubWFza1wiXHJcblx0dHlwZT1cInRleHRcIlxyXG5cdGNsYXNzPVwidGV4dC1maWVsZF9faW5wdXRcIlxyXG5cdFtmb3JtQ29udHJvbF09XCJpbnRlcm5hbFZhbHVlXCJcclxuXHRbdGl0bGVdPVwiZmllbGQ/LmxhYmVsIHwgdHJhbnNsYXRlXCJcclxuXHRbcGxhY2Vob2xkZXJdPVwicmVuZGVyT3B0aW9ucz8ucGxhY2Vob2xkZXIgPz8gJ0ZJTFRFUlMuZW50ZXJUZXh0JyB8IHRyYW5zbGF0ZVwiXHJcblx0W21hc2tdPVwibWFza09wdGlvbnM/Lm1hc2tcIlxyXG5cdFtkcm9wU3BlY2lhbENoYXJhY3RlcnNdPVwibWFza09wdGlvbnM/LmRyb3BTcGVjaWFsQ2hhcmFjdGVycyA/PyB0cnVlXCJcclxuXHRbc2hvd01hc2tUeXBlZF09XCJtYXNrT3B0aW9ucz8uc2hvd01hc2tUeXBlZCA/PyB0cnVlXCJcclxuXHRbdmFsaWRhdGlvbl09XCJtYXNrT3B0aW9ucz8udmFsaWRhdGlvblwiXHJcblx0W3Nob3duTWFza0V4cHJlc3Npb25dPVwibWFza09wdGlvbnM/LnNob3duTWFza0V4cHJlc3Npb25cIlxyXG5cdFthbGxvd05lZ2F0aXZlTnVtYmVyc109XCJtYXNrT3B0aW9ucz8uYWxsb3dOZWdhdGl2ZU51bWJlcnNcIlxyXG5cdFtrZWVwQ2hhcmFjdGVyUG9zaXRpb25zXT1cIm1hc2tPcHRpb25zPy5rZWVwQ2hhcmFjdGVyUG9zaXRpb25zXCJcclxuXHRbbGVhZFplcm9dPVwibWFza09wdGlvbnM/LmxlYWRaZXJvXCJcclxuXHRbaGlkZGVuSW5wdXRdPVwibWFza09wdGlvbnM/LmhpZGRlbklucHV0XCJcclxuXHRbY2xlYXJJZk5vdE1hdGNoXT1cIm1hc2tPcHRpb25zPy5jbGVhcklmTm90TWF0Y2hcIlxyXG5cdFtwcmVmaXhdPVwibWFza09wdGlvbnM/LnByZWZpeCA/PyAnJ1wiXHJcblx0W3N1ZmZpeF09XCJtYXNrT3B0aW9ucz8uc3VmZml4ID8/ICcnXCJcclxuLz5cclxuXHJcbjxkaXYgKm5nSWY9XCJyZW5kZXJPcHRpb25zPy5zdWZmaXhcIiBjbGFzcz1cInRleHQtZmllbGRfX3N1ZmZpeFwiPlxyXG5cdDxtYXQtaWNvblxyXG5cdFx0Km5nSWY9XCJ0b29sdGlwXCJcclxuXHRcdFttYXRUb29sdGlwXT1cInRvb2x0aXAgfCBoYXNoVHJhbnNsYXRlQXN5bmMgfCBhc3luY1wiXHJcblx0XHRjbGFzcz1cInRleHQtZmllbGRfX3N1ZmZpeF9faXRlbSBzdWZmaXgtaWNvblwiXHJcblx0PlxyXG5cdFx0aW5mb1xyXG5cdDwvbWF0LWljb24+XHJcblxyXG5cdDxzcGFuICpuZ0lmPVwicmVuZGVyT3B0aW9ucy5zdWZmaXg/LnRleHRcIiBjbGFzcz1cInRleHQtZmllbGRfX3N1ZmZpeF9faXRlbSB0ZXh0LSBzdWZmaXgtdGV4dFwiPlxyXG5cdFx0e3sgcmVuZGVyT3B0aW9ucy5zdWZmaXgudGV4dCB8IHRyYW5zbGF0ZSB9fVxyXG5cdDwvc3Bhbj5cclxuXHJcblx0PGJ1dHRvbiAqbmdJZj1cInNlbGVjdENvbmZpZ1wiIGNsYXNzPVwidGV4dC1maWVsZF9fc3VmZml4X19pdGVtIHN1ZmZpeC1idXR0b25cIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxyXG5cdFx0PG1hdC1pY29uPiBlZGl0IDwvbWF0LWljb24+XHJcblx0PC9idXR0b24+XHJcblxyXG5cdDxidXR0b24gKm5nSWY9XCJkaWFsb2dDb25maWdcIiBjbGFzcz1cInRleHQtZmllbGRfX3N1ZmZpeF9faXRlbSBzdWZmaXgtYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCI+XHJcblx0XHQ8bWF0LWljb24+aGVscF9vdXRsaW5lPC9tYXQtaWNvbj5cclxuXHQ8L2J1dHRvbj5cclxuPC9kaXY+XHJcblxyXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJ0ZXh0LWZpZWxkX19zdWZmaXhfX21lbnVcIj5cclxuXHQ8c3BhbiBbZGlyXT1cImRpcmVjdGlvblwiIGNsYXNzPVwidGV4dC1maWVsZF9fc3VmZml4X19tZW51X193cmFwcGVyXCIgKm5nSWY9XCJzZWxlY3RDb25maWc/Lml0ZW1zXCI+XHJcblx0XHQ8YnV0dG9uXHJcblx0XHRcdG1hdC1tZW51LWl0ZW1cclxuXHRcdFx0Km5nRm9yPVwibGV0IGl0ZW0gb2Ygc2VsZWN0Q29uZmlnLml0ZW1zXCJcclxuXHRcdFx0KGNsaWNrKT1cImNoYW5nZU9wZXJhdG9yKGl0ZW0pXCJcclxuXHRcdFx0W2NsYXNzLnNlbGVjdGVkXT1cIml0ZW0udmFsdWUgPT09IHNlbGVjdFZhbHVlPy52YWx1ZVwiXHJcblx0XHQ+XHJcblx0XHRcdHt7IGl0ZW0ua2V5IHwgdHJhbnNsYXRlIH19XHJcblx0XHQ8L2J1dHRvbj5cclxuXHQ8L3NwYW4+XHJcbjwvbWF0LW1lbnU+XHJcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export const MIN_VISIBLE_COUNT = 10;
2
+ export const DEFAULT_DEBOUNCE_TIME = 100;
3
+ export const VALUE_OBJECT = '__valueObject__';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9jb25zdGFudHMvY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFFekMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IE1JTl9WSVNJQkxFX0NPVU5UID0gMTA7XHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX0RFQk9VTkNFX1RJTUUgPSAxMDA7XHJcblxyXG5leHBvcnQgY29uc3QgVkFMVUVfT0JKRUNUID0gJ19fdmFsdWVPYmplY3RfXyc7XHJcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export const FIELD_SEND_MODE = {
2
+ payload: 'payload',
3
+ queryParam: 'queryParam',
4
+ custom: 'custom'
5
+ };
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2NvbnN0YW50cy9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDOUIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsVUFBVSxFQUFFLFlBQVk7SUFDeEIsTUFBTSxFQUFFLFFBQVE7Q0FDUCxDQUFFIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEZJRUxEX1NFTkRfTU9ERSA9IHtcclxuXHRwYXlsb2FkOiAncGF5bG9hZCcsXHJcblx0cXVlcnlQYXJhbTogJ3F1ZXJ5UGFyYW0nLFxyXG5cdGN1c3RvbTogJ2N1c3RvbSdcclxufSBhcyBjb25zdCA7XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ export * from './common';
2
+ export * from './field';
3
+ export * from './operators';
4
+ export * from './type';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL25kZi1maWx0ZXJzL2NvbnN0YW50cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29tbW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9maWVsZCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3BlcmF0b3JzJztcclxuZXhwb3J0ICogZnJvbSAnLi90eXBlJztcclxuIl19
@@ -0,0 +1,18 @@
1
+ export const COMPARISON_OPERATOR = {
2
+ equals: '=',
3
+ notEquals: '!=',
4
+ lessThan: '<',
5
+ greaterThan: '>',
6
+ in: 'IN',
7
+ notIn: 'NOT IN',
8
+ between: 'BETWEEN',
9
+ lessThanOrEqual: '<=',
10
+ greaterThanOrEqual: '>=',
11
+ like: 'LIKE',
12
+ iLike: 'ILIKE',
13
+ notLike: 'NOT LIKE',
14
+ notILike: 'NOT ILIKE',
15
+ startsWith: 'STARTSWITH',
16
+ fullText: 'FULLTEXT'
17
+ };
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BlcmF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9jb25zdGFudHMvb3BlcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2xDLE1BQU0sRUFBRSxHQUFHO0lBQ1gsU0FBUyxFQUFFLElBQUk7SUFDZixRQUFRLEVBQUUsR0FBRztJQUNiLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEVBQUUsRUFBRSxJQUFJO0lBQ1IsS0FBSyxFQUFFLFFBQVE7SUFDZixPQUFPLEVBQUUsU0FBUztJQUNsQixlQUFlLEVBQUUsSUFBSTtJQUNyQixrQkFBa0IsRUFBRSxJQUFJO0lBQ3hCLElBQUksRUFBRSxNQUFNO0lBQ1osS0FBSyxFQUFFLE9BQU87SUFDZCxPQUFPLEVBQUUsVUFBVTtJQUNuQixRQUFRLEVBQUUsV0FBVztJQUNyQixVQUFVLEVBQUUsWUFBWTtJQUN4QixRQUFRLEVBQUUsVUFBVTtDQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQ09NUEFSSVNPTl9PUEVSQVRPUiA9IHtcclxuXHRlcXVhbHM6ICc9JyxcclxuXHRub3RFcXVhbHM6ICchPScsXHJcblx0bGVzc1RoYW46ICc8JyxcclxuXHRncmVhdGVyVGhhbjogJz4nLFxyXG5cdGluOiAnSU4nLFxyXG5cdG5vdEluOiAnTk9UIElOJyxcclxuXHRiZXR3ZWVuOiAnQkVUV0VFTicsXHJcblx0bGVzc1RoYW5PckVxdWFsOiAnPD0nLFxyXG5cdGdyZWF0ZXJUaGFuT3JFcXVhbDogJz49JyxcclxuXHRsaWtlOiAnTElLRScsIC8vJCVcclxuXHRpTGlrZTogJ0lMSUtFJywgLy8lJCVcclxuXHRub3RMaWtlOiAnTk9UIExJS0UnLFxyXG5cdG5vdElMaWtlOiAnTk9UIElMSUtFJyxcclxuXHRzdGFydHNXaXRoOiAnU1RBUlRTV0lUSCcsXHJcblx0ZnVsbFRleHQ6ICdGVUxMVEVYVCdcclxufSBhcyBjb25zdDtcclxuIl19
@@ -0,0 +1,23 @@
1
+ export const SORT_OPTIONS = [
2
+ {
3
+ key: 'alphabeticallyDesc',
4
+ value: 'alphabetically',
5
+ direction: 'desc'
6
+ },
7
+ {
8
+ key: 'alphabeticallyAsc',
9
+ value: 'alphabetically',
10
+ direction: 'asc'
11
+ },
12
+ {
13
+ key: 'countDesc',
14
+ value: 'count',
15
+ direction: 'desc'
16
+ },
17
+ {
18
+ key: 'countAsc',
19
+ value: 'count',
20
+ direction: 'asc'
21
+ }
22
+ ];
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29uc3RhbnRzL3NvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFnQjtJQUN4QztRQUNDLEdBQUcsRUFBRSxvQkFBb0I7UUFDekIsS0FBSyxFQUFFLGdCQUFnQjtRQUN2QixTQUFTLEVBQUUsTUFBTTtLQUNqQjtJQUNEO1FBQ0MsR0FBRyxFQUFFLG1CQUFtQjtRQUN4QixLQUFLLEVBQUUsZ0JBQWdCO1FBQ3ZCLFNBQVMsRUFBRSxLQUFLO0tBQ2hCO0lBQ0Q7UUFDQyxHQUFHLEVBQUUsV0FBVztRQUNoQixLQUFLLEVBQUUsT0FBTztRQUNkLFNBQVMsRUFBRSxNQUFNO0tBQ2pCO0lBQ0Q7UUFDQyxHQUFHLEVBQUUsVUFBVTtRQUNmLEtBQUssRUFBRSxPQUFPO1FBQ2QsU0FBUyxFQUFFLEtBQUs7S0FDaEI7Q0FDRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU29ydE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzJztcclxuXHJcbmV4cG9ydCBjb25zdCBTT1JUX09QVElPTlM6IFNvcnRNb2RlbFtdID0gW1xyXG5cdHtcclxuXHRcdGtleTogJ2FscGhhYmV0aWNhbGx5RGVzYycsXHJcblx0XHR2YWx1ZTogJ2FscGhhYmV0aWNhbGx5JyxcclxuXHRcdGRpcmVjdGlvbjogJ2Rlc2MnXHJcblx0fSxcclxuXHR7XHJcblx0XHRrZXk6ICdhbHBoYWJldGljYWxseUFzYycsXHJcblx0XHR2YWx1ZTogJ2FscGhhYmV0aWNhbGx5JyxcclxuXHRcdGRpcmVjdGlvbjogJ2FzYydcclxuXHR9LFxyXG5cdHtcclxuXHRcdGtleTogJ2NvdW50RGVzYycsXHJcblx0XHR2YWx1ZTogJ2NvdW50JyxcclxuXHRcdGRpcmVjdGlvbjogJ2Rlc2MnXHJcblx0fSxcclxuXHR7XHJcblx0XHRrZXk6ICdjb3VudEFzYycsXHJcblx0XHR2YWx1ZTogJ2NvdW50JyxcclxuXHRcdGRpcmVjdGlvbjogJ2FzYydcclxuXHR9XHJcbl07XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ export const AGGREGATION_FIELD_TYPES = {
2
+ dropdown: 'dropdown',
3
+ checkbox: 'checkbox',
4
+ radio: 'radio',
5
+ switch: 'switch',
6
+ autocomplete: 'autocomplete',
7
+ dateList: 'dateList',
8
+ custom: 'custom'
9
+ };
10
+ export const DATE_LIST_VIEW = {
11
+ list: 'list',
12
+ dropdown: 'dropdown'
13
+ };
14
+ export const FIELD_TYPE = {
15
+ aggregation: 'aggregation',
16
+ predicate: 'predicate',
17
+ custom: 'custom'
18
+ };
19
+ export const PREDICATE_FIELD_TYPES = {
20
+ input: 'input',
21
+ date: 'date'
22
+ };
23
+ export const CUSTOM_FIELD_TYPES = {
24
+ activeUser: 'activeUser'
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29uc3RhbnRzL3R5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDdEMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsS0FBSyxFQUFFLE9BQU87SUFDZCxNQUFNLEVBQUUsUUFBUTtJQUNoQixZQUFZLEVBQUUsY0FBYztJQUM1QixRQUFRLEVBQUUsVUFBVTtJQUNwQixNQUFNLEVBQUUsUUFBUTtDQUNQLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDN0IsSUFBSSxFQUFFLE1BQU07SUFDWixRQUFRLEVBQUUsVUFBVTtDQUNYLENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUc7SUFDekIsV0FBVyxFQUFFLGFBQWE7SUFDMUIsU0FBUyxFQUFFLFdBQVc7SUFDdEIsTUFBTSxFQUFFLFFBQVE7Q0FDUCxDQUFDO0FBRVgsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDcEMsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtDQUNILENBQUM7QUFFWCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNqQyxVQUFVLEVBQUUsWUFBWTtDQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgQUdHUkVHQVRJT05fRklFTERfVFlQRVMgPSB7XHJcblx0ZHJvcGRvd246ICdkcm9wZG93bicsXHJcblx0Y2hlY2tib3g6ICdjaGVja2JveCcsXHJcblx0cmFkaW86ICdyYWRpbycsXHJcblx0c3dpdGNoOiAnc3dpdGNoJyxcclxuXHRhdXRvY29tcGxldGU6ICdhdXRvY29tcGxldGUnLFxyXG5cdGRhdGVMaXN0OiAnZGF0ZUxpc3QnLFxyXG5cdGN1c3RvbTogJ2N1c3RvbSdcclxufSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCBjb25zdCBEQVRFX0xJU1RfVklFVyA9IHtcclxuXHRsaXN0OiAnbGlzdCcsXHJcblx0ZHJvcGRvd246ICdkcm9wZG93bidcclxufSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCBjb25zdCBGSUVMRF9UWVBFID0ge1xyXG5cdGFnZ3JlZ2F0aW9uOiAnYWdncmVnYXRpb24nLFxyXG5cdHByZWRpY2F0ZTogJ3ByZWRpY2F0ZScsXHJcblx0Y3VzdG9tOiAnY3VzdG9tJ1xyXG59IGFzIGNvbnN0O1xyXG5cclxuZXhwb3J0IGNvbnN0IFBSRURJQ0FURV9GSUVMRF9UWVBFUyA9IHtcclxuXHRpbnB1dDogJ2lucHV0JyxcclxuXHRkYXRlOiAnZGF0ZSdcclxufSBhcyBjb25zdDtcclxuXHJcbmV4cG9ydCBjb25zdCBDVVNUT01fRklFTERfVFlQRVMgPSB7XHJcblx0YWN0aXZlVXNlcjogJ2FjdGl2ZVVzZXInXHJcbn0gYXMgY29uc3Q7XHJcbiJdfQ==
@@ -0,0 +1,78 @@
1
+ import { Component, forwardRef, Input, ViewEncapsulation } from '@angular/core';
2
+ import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { BaseField } from '../base-field';
4
+ import { AGGREGATION_FIELD_TYPES } from '../../constants';
5
+ import * as i0 from "@angular/core";
6
+ export class AggregationFieldComponent extends BaseField {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.handlers = {
10
+ [AGGREGATION_FIELD_TYPES.dropdown]: this._prepareField.bind(this),
11
+ [AGGREGATION_FIELD_TYPES.checkbox]: this._prepareField.bind(this),
12
+ [AGGREGATION_FIELD_TYPES.radio]: this._prepareField.bind(this),
13
+ [AGGREGATION_FIELD_TYPES.switch]: this._prepareField.bind(this),
14
+ [AGGREGATION_FIELD_TYPES.autocomplete]: this._prepareField.bind(this),
15
+ [AGGREGATION_FIELD_TYPES.dateList]: this._prepareField.bind(this),
16
+ [AGGREGATION_FIELD_TYPES.custom]: this._prepareField.bind(this)
17
+ };
18
+ }
19
+ ngOnInit() {
20
+ var _a, _b, _c, _d;
21
+ const componentType = (_b = (_a = this.fieldConfig) === null || _a === void 0 ? void 0 : _a.render) === null || _b === void 0 ? void 0 : _b.type;
22
+ if (componentType) {
23
+ this._componentRef = this.dynamicComponent.renderComponent(componentType, this.container);
24
+ this._prepareValueAccessor();
25
+ (_d = (_c = this.handlers)[componentType]) === null || _d === void 0 ? void 0 : _d.call(_c);
26
+ }
27
+ }
28
+ _prepareField() {
29
+ const instance = this._componentRef.instance;
30
+ instance.aggregation = this.aggregation;
31
+ instance.fieldConfig = this.fieldConfig;
32
+ if (this.contentTemplate) {
33
+ instance.contentTemplate = this.contentTemplate;
34
+ }
35
+ }
36
+ }
37
+ AggregationFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationFieldComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
38
+ AggregationFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: AggregationFieldComponent, selector: "app-aggregation-field", inputs: { aggregation: "aggregation", contentTemplate: "contentTemplate" }, host: { properties: { "class": "'aggregation-field' + ' aggregation-field__fieldConfig?.render?.type' " } }, providers: [
39
+ {
40
+ provide: NG_VALUE_ACCESSOR,
41
+ useExisting: forwardRef(() => AggregationFieldComponent),
42
+ multi: true
43
+ },
44
+ {
45
+ provide: NG_VALIDATORS,
46
+ useExisting: forwardRef(() => AggregationFieldComponent),
47
+ multi: true
48
+ }
49
+ ], usesInheritance: true, ngImport: i0, template: '<ng-container #dynamicContainer></ng-container>', isInline: true, styles: [""], encapsulation: i0.ViewEncapsulation.None });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: AggregationFieldComponent, decorators: [{
51
+ type: Component,
52
+ args: [{
53
+ selector: 'app-aggregation-field',
54
+ template: '<ng-container #dynamicContainer></ng-container>',
55
+ styles: [''],
56
+ encapsulation: ViewEncapsulation.None,
57
+ providers: [
58
+ {
59
+ provide: NG_VALUE_ACCESSOR,
60
+ useExisting: forwardRef(() => AggregationFieldComponent),
61
+ multi: true
62
+ },
63
+ {
64
+ provide: NG_VALIDATORS,
65
+ useExisting: forwardRef(() => AggregationFieldComponent),
66
+ multi: true
67
+ }
68
+ ],
69
+ host: {
70
+ '[class]': "'aggregation-field' + ' aggregation-field__fieldConfig?.render?.type' "
71
+ }
72
+ }]
73
+ }], propDecorators: { aggregation: [{
74
+ type: Input
75
+ }], contentTemplate: [{
76
+ type: Input
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdncmVnYXRpb24tZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9uZGYtZmlsdGVycy9jb250YWluZXJzL2FnZ3JlZ2F0aW9uLWZpZWxkL2FnZ3JlZ2F0aW9uLWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBd0IxRCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsU0FBaUM7SUFyQmhGOztRQXlCa0IsYUFBUSxHQUE2QztZQUNyRSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNqRSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNqRSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5RCxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUMvRCxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNyRSxDQUFDLHVCQUF1QixDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUNqRSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUMvRCxDQUFDO0tBb0JGO0lBbEJBLFFBQVE7O1FBQ1AsTUFBTSxhQUFhLEdBQUcsTUFBQSxNQUFBLElBQUksQ0FBQyxXQUFXLDBDQUFFLE1BQU0sMENBQUUsSUFBSSxDQUFDO1FBQ3JELElBQUksYUFBYSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzFGLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLE1BQUEsTUFBQSxJQUFJLENBQUMsUUFBUSxFQUFDLGFBQWEsQ0FBQyxrREFBSSxDQUFDO1NBQ2pDO0lBQ0YsQ0FBQztJQUVPLGFBQWE7UUFDcEIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFzRCxDQUFDO1FBQzNGLFFBQVEsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUN4QyxRQUFRLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFeEMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLFFBQVEsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztTQUNoRDtJQUNGLENBQUM7O3VIQS9CVyx5QkFBeUI7MkdBQXpCLHlCQUF5QiwwT0FoQjFCO1FBQ1Y7WUFDQyxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUM7WUFDeEQsS0FBSyxFQUFFLElBQUk7U0FDWDtRQUNEO1lBQ0MsT0FBTyxFQUFFLGFBQWE7WUFDdEIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztZQUN4RCxLQUFLLEVBQUUsSUFBSTtTQUNYO0tBQ0QsaURBZFMsaURBQWlEOzRGQW1CL0MseUJBQXlCO2tCQXJCckMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxRQUFRLEVBQUUsaURBQWlEO29CQUMzRCxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQ1osYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLFNBQVMsRUFBRTt3QkFDVjs0QkFDQyxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ1g7d0JBQ0Q7NEJBQ0MsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDBCQUEwQixDQUFDOzRCQUN4RCxLQUFLLEVBQUUsSUFBSTt5QkFDWDtxQkFDRDtvQkFDRCxJQUFJLEVBQUU7d0JBQ0wsU0FBUyxFQUFFLHlFQUF5RTtxQkFDcEY7aUJBQ0Q7OEJBRVMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBZ2dyZWdhdGlvbkZpZWxkQ29uZmlnLCBBZ2dyZWdhdGlvbkZpZWxkVHlwZSwgQWdncmVnYXRpb25SZXNwb25zZSB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IEJhc2VGaWVsZCB9IGZyb20gJy4uL2Jhc2UtZmllbGQnO1xyXG5pbXBvcnQgeyBBR0dSRUdBVElPTl9GSUVMRF9UWVBFUyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7IEJhc2VBZ2dyZWdhdGlvbkZpZWxkIH0gZnJvbSAnLi4vLi4vYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2FwcC1hZ2dyZWdhdGlvbi1maWVsZCcsXHJcblx0dGVtcGxhdGU6ICc8bmctY29udGFpbmVyICNkeW5hbWljQ29udGFpbmVyPjwvbmctY29udGFpbmVyPicsXHJcblx0c3R5bGVzOiBbJyddLFxyXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcblx0cHJvdmlkZXJzOiBbXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdFx0XHR1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBZ2dyZWdhdGlvbkZpZWxkQ29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWVcclxuXHRcdH0sXHJcblx0XHR7XHJcblx0XHRcdHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcblx0XHRcdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFnZ3JlZ2F0aW9uRmllbGRDb21wb25lbnQpLFxyXG5cdFx0XHRtdWx0aTogdHJ1ZVxyXG5cdFx0fVxyXG5cdF0sXHJcblx0aG9zdDoge1xyXG5cdFx0J1tjbGFzc10nOiBcIidhZ2dyZWdhdGlvbi1maWVsZCcgKyAnICBhZ2dyZWdhdGlvbi1maWVsZF9fZmllbGRDb25maWc/LnJlbmRlcj8udHlwZScgXCJcclxuXHR9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZ2dyZWdhdGlvbkZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQmFzZUZpZWxkPEFnZ3JlZ2F0aW9uRmllbGRDb25maWc+IHtcclxuXHRASW5wdXQoKSBhZ2dyZWdhdGlvbjogQWdncmVnYXRpb25SZXNwb25zZTtcclxuXHRASW5wdXQoKSBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gfCB1bmRlZmluZWQ7XHJcblxyXG5cdHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlcnM6IFJlY29yZDxBZ2dyZWdhdGlvbkZpZWxkVHlwZSwgKCkgPT4gdm9pZD4gPSB7XHJcblx0XHRbQUdHUkVHQVRJT05fRklFTERfVFlQRVMuZHJvcGRvd25dOiB0aGlzLl9wcmVwYXJlRmllbGQuYmluZCh0aGlzKSxcclxuXHRcdFtBR0dSRUdBVElPTl9GSUVMRF9UWVBFUy5jaGVja2JveF06IHRoaXMuX3ByZXBhcmVGaWVsZC5iaW5kKHRoaXMpLFxyXG5cdFx0W0FHR1JFR0FUSU9OX0ZJRUxEX1RZUEVTLnJhZGlvXTogdGhpcy5fcHJlcGFyZUZpZWxkLmJpbmQodGhpcyksXHJcblx0XHRbQUdHUkVHQVRJT05fRklFTERfVFlQRVMuc3dpdGNoXTogdGhpcy5fcHJlcGFyZUZpZWxkLmJpbmQodGhpcyksXHJcblx0XHRbQUdHUkVHQVRJT05fRklFTERfVFlQRVMuYXV0b2NvbXBsZXRlXTogdGhpcy5fcHJlcGFyZUZpZWxkLmJpbmQodGhpcyksXHJcblx0XHRbQUdHUkVHQVRJT05fRklFTERfVFlQRVMuZGF0ZUxpc3RdOiB0aGlzLl9wcmVwYXJlRmllbGQuYmluZCh0aGlzKSxcclxuXHRcdFtBR0dSRUdBVElPTl9GSUVMRF9UWVBFUy5jdXN0b21dOiB0aGlzLl9wcmVwYXJlRmllbGQuYmluZCh0aGlzKVxyXG5cdH07XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0Y29uc3QgY29tcG9uZW50VHlwZSA9IHRoaXMuZmllbGRDb25maWc/LnJlbmRlcj8udHlwZTtcclxuXHRcdGlmIChjb21wb25lbnRUeXBlKSB7XHJcblx0XHRcdHRoaXMuX2NvbXBvbmVudFJlZiA9IHRoaXMuZHluYW1pY0NvbXBvbmVudC5yZW5kZXJDb21wb25lbnQoY29tcG9uZW50VHlwZSwgdGhpcy5jb250YWluZXIpO1xyXG5cdFx0XHR0aGlzLl9wcmVwYXJlVmFsdWVBY2Nlc3NvcigpO1xyXG5cdFx0XHR0aGlzLmhhbmRsZXJzW2NvbXBvbmVudFR5cGVdPy4oKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHByaXZhdGUgX3ByZXBhcmVGaWVsZCgpIHtcclxuXHRcdGNvbnN0IGluc3RhbmNlID0gdGhpcy5fY29tcG9uZW50UmVmLmluc3RhbmNlIGFzIEJhc2VBZ2dyZWdhdGlvbkZpZWxkPEFnZ3JlZ2F0aW9uRmllbGRUeXBlPjtcclxuXHRcdGluc3RhbmNlLmFnZ3JlZ2F0aW9uID0gdGhpcy5hZ2dyZWdhdGlvbjtcclxuXHRcdGluc3RhbmNlLmZpZWxkQ29uZmlnID0gdGhpcy5maWVsZENvbmZpZztcclxuXHJcblx0XHRpZiAodGhpcy5jb250ZW50VGVtcGxhdGUpIHtcclxuXHRcdFx0aW5zdGFuY2UuY29udGVudFRlbXBsYXRlID0gdGhpcy5jb250ZW50VGVtcGxhdGU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,62 @@
1
+ import { BaseCustomValueAccessor } from '../base';
2
+ import { Directive, Input, ViewChild, ViewContainerRef } from '@angular/core';
3
+ import { NgControl } from '@angular/forms';
4
+ import { DynamicComponentLoaderService } from '../services';
5
+ import * as i0 from "@angular/core";
6
+ export class BaseField extends BaseCustomValueAccessor {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.dynamicComponent = this.injector.get(DynamicComponentLoaderService);
10
+ }
11
+ writeValue(obj) {
12
+ var _a, _b, _c, _d;
13
+ this.internalValue = obj;
14
+ if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.writeValue) {
15
+ (_d = (_c = this._componentRef) === null || _c === void 0 ? void 0 : _c.instance) === null || _d === void 0 ? void 0 : _d.writeValue(obj);
16
+ }
17
+ }
18
+ validate(control) {
19
+ var _a, _b;
20
+ if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.validate) {
21
+ return this._componentRef.instance.validate(control);
22
+ }
23
+ else {
24
+ return null;
25
+ }
26
+ }
27
+ registerOnValidatorChange(fn) {
28
+ var _a, _b;
29
+ if ((_b = (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.registerOnValidatorChange) {
30
+ this._componentRef.instance.registerOnValidatorChange(fn);
31
+ }
32
+ }
33
+ ngOnChanges(changes) {
34
+ if (!this._componentRef) {
35
+ return;
36
+ }
37
+ Object.keys(changes).forEach((key) => {
38
+ this._componentRef.instance[key] = changes[key].currentValue;
39
+ });
40
+ this._componentRef.changeDetectorRef.markForCheck();
41
+ }
42
+ ngOnDestroy() {
43
+ if (this._componentRef) {
44
+ this._componentRef.destroy();
45
+ }
46
+ }
47
+ _prepareValueAccessor() {
48
+ const ngControl = this.injector.get(NgControl);
49
+ ngControl.valueAccessor = this._componentRef.instance;
50
+ }
51
+ }
52
+ BaseField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseField, deps: null, target: i0.ɵɵFactoryTarget.Directive });
53
+ BaseField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.17", type: BaseField, inputs: { fieldConfig: "fieldConfig" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["dynamicContainer"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0 });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: BaseField, decorators: [{
55
+ type: Directive
56
+ }], propDecorators: { container: [{
57
+ type: ViewChild,
58
+ args: ['dynamicContainer', { read: ViewContainerRef, static: true }]
59
+ }], fieldConfig: [{
60
+ type: Input
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL251eGVvLWRldmVsb3BtZW50LWZyYW1ld29yay9zcmMvbGliL2NvbXBvbmVudHMvbmRmLWZpbHRlcnMvY29udGFpbmVycy9iYXNlLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUNsRCxPQUFPLEVBRU4sU0FBUyxFQUNULEtBQUssRUFJTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsU0FBUyxFQUFvQixNQUFNLGdCQUFnQixDQUFDO0FBQzlFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFJNUQsTUFBTSxPQUFnQixTQUNyQixTQUFRLHVCQUFpQztJQUYxQzs7UUFRVyxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0tBaUQ5RTtJQXpDQSxVQUFVLENBQUMsR0FBUTs7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7UUFDekIsSUFBSSxNQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsUUFBUSwwQ0FBRSxVQUFVLEVBQUU7WUFDN0MsTUFBQSxNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFFBQVEsMENBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzlDO0lBQ0YsQ0FBQztJQUVELFFBQVEsQ0FBQyxPQUF3Qjs7UUFDaEMsSUFBSSxNQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsUUFBUSwwQ0FBRSxRQUFRLEVBQUU7WUFDM0MsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckQ7YUFBTTtZQUNOLE9BQU8sSUFBSSxDQUFDO1NBQ1o7SUFDRixDQUFDO0lBRUQseUJBQXlCLENBQUUsRUFBYzs7UUFDeEMsSUFBSSxNQUFBLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsUUFBUSwwQ0FBRSx5QkFBeUIsRUFBRTtZQUM1RCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUMxRDtJQUNGLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDeEIsT0FBTztTQUNQO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO0lBQ0YsQ0FBQztJQUVTLHFCQUFxQjtRQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMvQyxTQUFTLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQ3ZELENBQUM7O3VHQXZEb0IsU0FBUzsyRkFBVCxTQUFTLDRKQUlTLGdCQUFnQjs0RkFKbEMsU0FBUztrQkFEOUIsU0FBUzs4QkFNVCxTQUFTO3NCQURSLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFLOUQsV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDdXN0b21WYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vYmFzZSc7XHJcbmltcG9ydCB7XHJcblx0Q29tcG9uZW50UmVmLFxyXG5cdERpcmVjdGl2ZSxcclxuXHRJbnB1dCxcclxuXHRPbkNoYW5nZXMsXHJcblx0T25EZXN0cm95LFxyXG5cdFNpbXBsZUNoYW5nZXMsXHJcblx0Vmlld0NoaWxkLFxyXG5cdFZpZXdDb250YWluZXJSZWZcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0NvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRMb2FkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBGaWVsZENvbmZpZyB9IGZyb20gJy4uL21vZGVscyc7XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGaWVsZDxURmllbGRDb25maWcgZXh0ZW5kcyBGaWVsZENvbmZpZz5cclxuXHRleHRlbmRzIEJhc2VDdXN0b21WYWx1ZUFjY2Vzc29yPGFueSwgYW55PlxyXG5cdGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3lcclxue1xyXG5cdEBWaWV3Q2hpbGQoJ2R5bmFtaWNDb250YWluZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxyXG5cdGNvbnRhaW5lciE6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG5cdHByb3RlY3RlZCBkeW5hbWljQ29tcG9uZW50ID0gdGhpcy5pbmplY3Rvci5nZXQoRHluYW1pY0NvbXBvbmVudExvYWRlclNlcnZpY2UpO1xyXG5cclxuXHRASW5wdXQoKSBmaWVsZENvbmZpZzogVEZpZWxkQ29uZmlnO1xyXG5cclxuXHRwcm90ZWN0ZWQgX2NvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT47XHJcblxyXG5cdGludGVybmFsVmFsdWU6IGFueTtcclxuXHJcblx0d3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG5cdFx0dGhpcy5pbnRlcm5hbFZhbHVlID0gb2JqO1xyXG5cdFx0aWYgKHRoaXMuX2NvbXBvbmVudFJlZj8uaW5zdGFuY2U/LndyaXRlVmFsdWUpIHtcclxuXHRcdFx0dGhpcy5fY29tcG9uZW50UmVmPy5pbnN0YW5jZT8ud3JpdGVWYWx1ZShvYmopO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0dmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XHJcblx0XHRpZiAodGhpcy5fY29tcG9uZW50UmVmPy5pbnN0YW5jZT8udmFsaWRhdGUpIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS52YWxpZGF0ZShjb250cm9sKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmVnaXN0ZXJPblZhbGlkYXRvckNoYW5nZT8oZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuXHRcdGlmICh0aGlzLl9jb21wb25lbnRSZWY/Lmluc3RhbmNlPy5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKSB7XHJcblx0XHRcdHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZS5yZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlKGZuKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5fY29tcG9uZW50UmVmKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdE9iamVjdC5rZXlzKGNoYW5nZXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG5cdFx0XHR0aGlzLl9jb21wb25lbnRSZWYuaW5zdGFuY2Vba2V5XSA9IGNoYW5nZXNba2V5XS5jdXJyZW50VmFsdWU7XHJcblx0XHR9KTtcclxuXHRcdHRoaXMuX2NvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0aWYgKHRoaXMuX2NvbXBvbmVudFJlZikge1xyXG5cdFx0XHR0aGlzLl9jb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIF9wcmVwYXJlVmFsdWVBY2Nlc3NvcigpIHtcclxuXHRcdGNvbnN0IG5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XHJcblx0XHRuZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXMuX2NvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuXHR9XHJcbn1cclxuIl19