@net7/boilerplate-arianna 3.0.1-rc.2

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 (256) hide show
  1. package/README.md +24 -0
  2. package/esm2020/lib/components/aw-facets-wrapper/aw-facets-wrapper.mjs +29 -0
  3. package/esm2020/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.mjs +23 -0
  4. package/esm2020/lib/components/chart-tippy/chart-tippy.mjs +25 -0
  5. package/esm2020/lib/components/index.mjs +7 -0
  6. package/esm2020/lib/components/pdf-viewer/pdf-viewer.mjs +31 -0
  7. package/esm2020/lib/components/scheda-dropdown/scheda-dropdown.mjs +26 -0
  8. package/esm2020/lib/components/smart-breadcrumbs/smart-breadcrumbs.mjs +82 -0
  9. package/esm2020/lib/config/apollo.config.mjs +706 -0
  10. package/esm2020/lib/config-types/arianna/app.mjs +2 -0
  11. package/esm2020/lib/config-types/arianna/index.mjs +3 -0
  12. package/esm2020/lib/config-types/arianna/layouts.mjs +2 -0
  13. package/esm2020/lib/config-types/index.mjs +2 -0
  14. package/esm2020/lib/data-sources/autocomplete-wrapper.ds.mjs +48 -0
  15. package/esm2020/lib/data-sources/aw-facets-wrapper.ds.mjs +162 -0
  16. package/esm2020/lib/data-sources/bubble-chart.ds.mjs +95 -0
  17. package/esm2020/lib/data-sources/carousel.ds.mjs +74 -0
  18. package/esm2020/lib/data-sources/chart-tippy.ds.mjs +30 -0
  19. package/esm2020/lib/data-sources/entita-metadata-viewer.ds.mjs +16 -0
  20. package/esm2020/lib/data-sources/entita-nav.ds.mjs +74 -0
  21. package/esm2020/lib/data-sources/gallery-results.ds.mjs +103 -0
  22. package/esm2020/lib/data-sources/hero.ds.mjs +27 -0
  23. package/esm2020/lib/data-sources/home-autocomplete.ds.mjs +80 -0
  24. package/esm2020/lib/data-sources/home-facets-wrapper.ds.mjs +178 -0
  25. package/esm2020/lib/data-sources/home-hero-patrimonio.ds.mjs +7 -0
  26. package/esm2020/lib/data-sources/home-item-tags-wrapper.ds.mjs +7 -0
  27. package/esm2020/lib/data-sources/index.mjs +36 -0
  28. package/esm2020/lib/data-sources/linked-objects.ds.mjs +219 -0
  29. package/esm2020/lib/data-sources/map.ds.mjs +88 -0
  30. package/esm2020/lib/data-sources/related-entities.ds.mjs +35 -0
  31. package/esm2020/lib/data-sources/scheda-breadcrumbs.ds.mjs +18 -0
  32. package/esm2020/lib/data-sources/scheda-dropdown.ds.mjs +40 -0
  33. package/esm2020/lib/data-sources/scheda-image.ds.mjs +65 -0
  34. package/esm2020/lib/data-sources/scheda-inner-title.ds.mjs +7 -0
  35. package/esm2020/lib/data-sources/scheda-metadata.ds.mjs +11 -0
  36. package/esm2020/lib/data-sources/scheda-pdf.ds.mjs +54 -0
  37. package/esm2020/lib/data-sources/search-layout-tabs.ds.mjs +28 -0
  38. package/esm2020/lib/data-sources/sidebar-header.ds.mjs +24 -0
  39. package/esm2020/lib/data-sources/table.ds.mjs +8 -0
  40. package/esm2020/lib/data-sources/timeline.ds.mjs +106 -0
  41. package/esm2020/lib/data-sources/tree.ds.mjs +154 -0
  42. package/esm2020/lib/event-handlers/autocomplete-wrapper.eh.mjs +18 -0
  43. package/esm2020/lib/event-handlers/aw-facets-wrapper.eh.mjs +88 -0
  44. package/esm2020/lib/event-handlers/bubble-chart.eh.mjs +98 -0
  45. package/esm2020/lib/event-handlers/chart-tippy.eh.mjs +64 -0
  46. package/esm2020/lib/event-handlers/entita-nav.eh.mjs +22 -0
  47. package/esm2020/lib/event-handlers/gallery-results.eh.mjs +38 -0
  48. package/esm2020/lib/event-handlers/hero.eh.mjs +25 -0
  49. package/esm2020/lib/event-handlers/home-autocomplete.eh.mjs +15 -0
  50. package/esm2020/lib/event-handlers/home-facets-wrapper.eh.mjs +125 -0
  51. package/esm2020/lib/event-handlers/home-hero-patrimonio.eh.mjs +7 -0
  52. package/esm2020/lib/event-handlers/home-item-tags-wrapper.eh.mjs +18 -0
  53. package/esm2020/lib/event-handlers/index.mjs +30 -0
  54. package/esm2020/lib/event-handlers/linked-objects.eh.mjs +60 -0
  55. package/esm2020/lib/event-handlers/map.eh.mjs +23 -0
  56. package/esm2020/lib/event-handlers/scheda-breadcrumbs.eh.mjs +12 -0
  57. package/esm2020/lib/event-handlers/scheda-dropdown.eh.mjs +17 -0
  58. package/esm2020/lib/event-handlers/scheda-pdf.eh.mjs +14 -0
  59. package/esm2020/lib/event-handlers/search-layout-tabs.eh.mjs +7 -0
  60. package/esm2020/lib/event-handlers/sidebar-header.eh.mjs +11 -0
  61. package/esm2020/lib/event-handlers/table.eh.mjs +15 -0
  62. package/esm2020/lib/event-handlers/timeline.eh.mjs +46 -0
  63. package/esm2020/lib/event-handlers/tree.eh.mjs +113 -0
  64. package/esm2020/lib/helpers/metadata.helper.mjs +89 -0
  65. package/esm2020/lib/layouts/collection-layout/collection-layout.config.mjs +17 -0
  66. package/esm2020/lib/layouts/collection-layout/collection-layout.ds.mjs +173 -0
  67. package/esm2020/lib/layouts/collection-layout/collection-layout.eh.mjs +27 -0
  68. package/esm2020/lib/layouts/collection-layout/collection-layout.mjs +38 -0
  69. package/esm2020/lib/layouts/collection-layout/collection-layout.types.mjs +2 -0
  70. package/esm2020/lib/layouts/entita-layout/entita-layout.config.mjs +29 -0
  71. package/esm2020/lib/layouts/entita-layout/entita-layout.ds.mjs +310 -0
  72. package/esm2020/lib/layouts/entita-layout/entita-layout.eh.mjs +119 -0
  73. package/esm2020/lib/layouts/entita-layout/entita-layout.mjs +51 -0
  74. package/esm2020/lib/layouts/entita-layout/entita-layout.types.mjs +2 -0
  75. package/esm2020/lib/layouts/gallery-layout/gallery-facets.config.mjs +145 -0
  76. package/esm2020/lib/layouts/gallery-layout/gallery-layout.config.mjs +32 -0
  77. package/esm2020/lib/layouts/gallery-layout/gallery-layout.ds.mjs +15 -0
  78. package/esm2020/lib/layouts/gallery-layout/gallery-layout.eh.mjs +8 -0
  79. package/esm2020/lib/layouts/gallery-layout/gallery-layout.mjs +45 -0
  80. package/esm2020/lib/layouts/home-layout/home-layout.config.mjs +36 -0
  81. package/esm2020/lib/layouts/home-layout/home-layout.ds.mjs +286 -0
  82. package/esm2020/lib/layouts/home-layout/home-layout.eh.mjs +245 -0
  83. package/esm2020/lib/layouts/home-layout/home-layout.mjs +44 -0
  84. package/esm2020/lib/layouts/index.mjs +41 -0
  85. package/esm2020/lib/layouts/map-layout/map-layout.config.mjs +26 -0
  86. package/esm2020/lib/layouts/map-layout/map-layout.ds.mjs +112 -0
  87. package/esm2020/lib/layouts/map-layout/map-layout.eh.mjs +44 -0
  88. package/esm2020/lib/layouts/map-layout/map-layout.mjs +46 -0
  89. package/esm2020/lib/layouts/scheda-layout/scheda-layout.config.mjs +32 -0
  90. package/esm2020/lib/layouts/scheda-layout/scheda-layout.ds.mjs +282 -0
  91. package/esm2020/lib/layouts/scheda-layout/scheda-layout.eh.mjs +150 -0
  92. package/esm2020/lib/layouts/scheda-layout/scheda-layout.mjs +53 -0
  93. package/esm2020/lib/layouts/search-layout/search-facets.config.mjs +163 -0
  94. package/esm2020/lib/layouts/search-layout/search-layout.config.mjs +32 -0
  95. package/esm2020/lib/layouts/search-layout/search-layout.ds.mjs +296 -0
  96. package/esm2020/lib/layouts/search-layout/search-layout.eh.mjs +175 -0
  97. package/esm2020/lib/layouts/search-layout/search-layout.mjs +50 -0
  98. package/esm2020/lib/layouts/timeline-layout/timeline-layout.config.mjs +26 -0
  99. package/esm2020/lib/layouts/timeline-layout/timeline-layout.ds.mjs +133 -0
  100. package/esm2020/lib/layouts/timeline-layout/timeline-layout.eh.mjs +41 -0
  101. package/esm2020/lib/layouts/timeline-layout/timeline-layout.mjs +46 -0
  102. package/esm2020/lib/n7-boilerplate-arianna.module.mjs +110 -0
  103. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-checkbox.mjs +32 -0
  104. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-link.mjs +89 -0
  105. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-select.mjs +28 -0
  106. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input-text.mjs +36 -0
  107. package/esm2020/lib/search/aw-facet-inputs/aw-facet-input.mjs +30 -0
  108. package/esm2020/lib/search/aw-facet-inputs/index.mjs +6 -0
  109. package/esm2020/lib/search/aw-search.model.mjs +331 -0
  110. package/esm2020/lib/search/aw-search.service.mjs +42 -0
  111. package/esm2020/lib/search/entity-links.helper.mjs +126 -0
  112. package/esm2020/net7-boilerplate-arianna.mjs +5 -0
  113. package/esm2020/public-api.mjs +11 -0
  114. package/fesm2015/net7-boilerplate-arianna.mjs +7482 -0
  115. package/fesm2015/net7-boilerplate-arianna.mjs.map +1 -0
  116. package/fesm2020/net7-boilerplate-arianna.mjs +7520 -0
  117. package/fesm2020/net7-boilerplate-arianna.mjs.map +1 -0
  118. package/lib/components/aw-facets-wrapper/aw-facets-wrapper.d.ts +9 -0
  119. package/lib/components/bubble-chart-wrapper/bubble-chart-wrapper.d.ts +9 -0
  120. package/lib/components/chart-tippy/chart-tippy.d.ts +9 -0
  121. package/lib/components/index.d.ts +6 -0
  122. package/lib/components/pdf-viewer/pdf-viewer.d.ts +38 -0
  123. package/lib/components/scheda-dropdown/scheda-dropdown.d.ts +23 -0
  124. package/lib/components/smart-breadcrumbs/smart-breadcrumbs.d.ts +71 -0
  125. package/lib/config/apollo.config.d.ts +67 -0
  126. package/lib/config-types/arianna/app.d.ts +103 -0
  127. package/lib/config-types/arianna/index.d.ts +2 -0
  128. package/lib/config-types/arianna/layouts.d.ts +164 -0
  129. package/lib/config-types/index.d.ts +1 -0
  130. package/lib/data-sources/autocomplete-wrapper.ds.d.ts +18 -0
  131. package/lib/data-sources/aw-facets-wrapper.ds.d.ts +50 -0
  132. package/lib/data-sources/bubble-chart.ds.d.ts +47 -0
  133. package/lib/data-sources/carousel.ds.d.ts +22 -0
  134. package/lib/data-sources/chart-tippy.ds.d.ts +4 -0
  135. package/lib/data-sources/entita-metadata-viewer.ds.d.ts +9 -0
  136. package/lib/data-sources/entita-nav.ds.d.ts +4 -0
  137. package/lib/data-sources/gallery-results.ds.d.ts +11 -0
  138. package/lib/data-sources/hero.ds.d.ts +20 -0
  139. package/lib/data-sources/home-autocomplete.ds.d.ts +37 -0
  140. package/lib/data-sources/home-facets-wrapper.ds.d.ts +14 -0
  141. package/lib/data-sources/home-hero-patrimonio.ds.d.ts +4 -0
  142. package/lib/data-sources/home-item-tags-wrapper.ds.d.ts +4 -0
  143. package/lib/data-sources/index.d.ts +27 -0
  144. package/lib/data-sources/linked-objects.ds.d.ts +22 -0
  145. package/lib/data-sources/map.ds.d.ts +17 -0
  146. package/lib/data-sources/related-entities.ds.d.ts +7 -0
  147. package/lib/data-sources/scheda-breadcrumbs.ds.d.ts +5 -0
  148. package/lib/data-sources/scheda-dropdown.ds.d.ts +7 -0
  149. package/lib/data-sources/scheda-image.ds.d.ts +10 -0
  150. package/lib/data-sources/scheda-inner-title.ds.d.ts +4 -0
  151. package/lib/data-sources/scheda-metadata.ds.d.ts +8 -0
  152. package/lib/data-sources/scheda-pdf.ds.d.ts +8 -0
  153. package/lib/data-sources/search-layout-tabs.ds.d.ts +12 -0
  154. package/lib/data-sources/sidebar-header.ds.d.ts +11 -0
  155. package/lib/data-sources/table.ds.d.ts +4 -0
  156. package/lib/data-sources/timeline.ds.d.ts +37 -0
  157. package/lib/data-sources/tree.ds.d.ts +19 -0
  158. package/lib/event-handlers/autocomplete-wrapper.eh.d.ts +4 -0
  159. package/lib/event-handlers/aw-facets-wrapper.eh.d.ts +7 -0
  160. package/lib/event-handlers/bubble-chart.eh.d.ts +7 -0
  161. package/lib/event-handlers/chart-tippy.eh.d.ts +6 -0
  162. package/lib/event-handlers/entita-nav.eh.d.ts +4 -0
  163. package/lib/event-handlers/gallery-results.eh.d.ts +4 -0
  164. package/lib/event-handlers/hero.eh.d.ts +4 -0
  165. package/lib/event-handlers/home-autocomplete.eh.d.ts +4 -0
  166. package/lib/event-handlers/home-facets-wrapper.eh.d.ts +7 -0
  167. package/lib/event-handlers/home-hero-patrimonio.eh.d.ts +4 -0
  168. package/lib/event-handlers/home-item-tags-wrapper.eh.d.ts +4 -0
  169. package/lib/event-handlers/index.d.ts +21 -0
  170. package/lib/event-handlers/linked-objects.eh.d.ts +5 -0
  171. package/lib/event-handlers/map.eh.d.ts +5 -0
  172. package/lib/event-handlers/scheda-breadcrumbs.eh.d.ts +4 -0
  173. package/lib/event-handlers/scheda-dropdown.eh.d.ts +4 -0
  174. package/lib/event-handlers/scheda-pdf.eh.d.ts +6 -0
  175. package/lib/event-handlers/search-layout-tabs.eh.d.ts +4 -0
  176. package/lib/event-handlers/sidebar-header.eh.d.ts +4 -0
  177. package/lib/event-handlers/table.eh.d.ts +4 -0
  178. package/lib/event-handlers/timeline.eh.d.ts +5 -0
  179. package/lib/event-handlers/tree.eh.d.ts +9 -0
  180. package/lib/helpers/metadata.helper.d.ts +15 -0
  181. package/lib/layouts/collection-layout/collection-layout.config.d.ts +13 -0
  182. package/lib/layouts/collection-layout/collection-layout.d.ts +21 -0
  183. package/lib/layouts/collection-layout/collection-layout.ds.d.ts +50 -0
  184. package/lib/layouts/collection-layout/collection-layout.eh.d.ts +6 -0
  185. package/lib/layouts/collection-layout/collection-layout.types.d.ts +31 -0
  186. package/lib/layouts/entita-layout/entita-layout.config.d.ts +29 -0
  187. package/lib/layouts/entita-layout/entita-layout.d.ts +28 -0
  188. package/lib/layouts/entita-layout/entita-layout.ds.d.ts +76 -0
  189. package/lib/layouts/entita-layout/entita-layout.eh.d.ts +13 -0
  190. package/lib/layouts/entita-layout/entita-layout.types.d.ts +17 -0
  191. package/lib/layouts/gallery-layout/gallery-facets.config.d.ts +150 -0
  192. package/lib/layouts/gallery-layout/gallery-layout.config.d.ts +38 -0
  193. package/lib/layouts/gallery-layout/gallery-layout.d.ts +26 -0
  194. package/lib/layouts/gallery-layout/gallery-layout.ds.d.ts +158 -0
  195. package/lib/layouts/gallery-layout/gallery-layout.eh.d.ts +4 -0
  196. package/lib/layouts/home-layout/home-layout.config.d.ts +15 -0
  197. package/lib/layouts/home-layout/home-layout.d.ts +23 -0
  198. package/lib/layouts/home-layout/home-layout.ds.d.ts +53 -0
  199. package/lib/layouts/home-layout/home-layout.eh.d.ts +11 -0
  200. package/lib/layouts/index.d.ts +32 -0
  201. package/lib/layouts/map-layout/map-layout.config.d.ts +22 -0
  202. package/lib/layouts/map-layout/map-layout.d.ts +23 -0
  203. package/lib/layouts/map-layout/map-layout.ds.d.ts +37 -0
  204. package/lib/layouts/map-layout/map-layout.eh.d.ts +5 -0
  205. package/lib/layouts/scheda-layout/scheda-layout.config.d.ts +19 -0
  206. package/lib/layouts/scheda-layout/scheda-layout.d.ts +33 -0
  207. package/lib/layouts/scheda-layout/scheda-layout.ds.d.ts +75 -0
  208. package/lib/layouts/scheda-layout/scheda-layout.eh.d.ts +11 -0
  209. package/lib/layouts/search-layout/search-facets.config.d.ts +168 -0
  210. package/lib/layouts/search-layout/search-layout.config.d.ts +38 -0
  211. package/lib/layouts/search-layout/search-layout.d.ts +31 -0
  212. package/lib/layouts/search-layout/search-layout.ds.d.ts +71 -0
  213. package/lib/layouts/search-layout/search-layout.eh.d.ts +31 -0
  214. package/lib/layouts/timeline-layout/timeline-layout.config.d.ts +22 -0
  215. package/lib/layouts/timeline-layout/timeline-layout.d.ts +23 -0
  216. package/lib/layouts/timeline-layout/timeline-layout.ds.d.ts +39 -0
  217. package/lib/layouts/timeline-layout/timeline-layout.eh.d.ts +5 -0
  218. package/lib/n7-boilerplate-arianna.module.d.ts +28 -0
  219. package/lib/search/aw-facet-inputs/aw-facet-input-checkbox.d.ts +18 -0
  220. package/lib/search/aw-facet-inputs/aw-facet-input-link.d.ts +8 -0
  221. package/lib/search/aw-facet-inputs/aw-facet-input-select.d.ts +21 -0
  222. package/lib/search/aw-facet-inputs/aw-facet-input-text.d.ts +30 -0
  223. package/lib/search/aw-facet-inputs/aw-facet-input.d.ts +35 -0
  224. package/lib/search/aw-facet-inputs/index.d.ts +5 -0
  225. package/lib/search/aw-search.model.d.ts +125 -0
  226. package/lib/search/aw-search.service.d.ts +13 -0
  227. package/lib/search/entity-links.helper.d.ts +12 -0
  228. package/net7-boilerplate-arianna.d.ts +5 -0
  229. package/package.json +36 -0
  230. package/public-api.d.ts +6 -0
  231. package/src/lib/styles/arianna/components/_advanced-autocomplete.scss +103 -0
  232. package/src/lib/styles/arianna/components/_breadcrumbs.scss +129 -0
  233. package/src/lib/styles/arianna/components/_bubble-popup-menu.scss +87 -0
  234. package/src/lib/styles/arianna/components/_carousel.scss +32 -0
  235. package/src/lib/styles/arianna/components/_facet-header.scss +58 -0
  236. package/src/lib/styles/arianna/components/_facet.scss +268 -0
  237. package/src/lib/styles/arianna/components/_footer.scss +64 -0
  238. package/src/lib/styles/arianna/components/_header.scss +61 -0
  239. package/src/lib/styles/arianna/components/_item-preview.scss +278 -0
  240. package/src/lib/styles/arianna/components/_map.scss +59 -0
  241. package/src/lib/styles/arianna/components/_metadata-viewer.scss +106 -0
  242. package/src/lib/styles/arianna/components/_pdf-viewer.scss +93 -0
  243. package/src/lib/styles/arianna/components/_simple-autocomplete.scss +60 -0
  244. package/src/lib/styles/arianna/components/_timeline.scss +112 -0
  245. package/src/lib/styles/arianna/components/_tippy-tooltip.scss +41 -0
  246. package/src/lib/styles/arianna/components/_tree.scss +110 -0
  247. package/src/lib/styles/arianna/generic/_color_scheme.scss +60 -0
  248. package/src/lib/styles/arianna/generic/_mixins.scss +18 -0
  249. package/src/lib/styles/arianna/generic/_variables.scss +380 -0
  250. package/src/lib/styles/arianna/layouts/_collection-layout.scss +200 -0
  251. package/src/lib/styles/arianna/layouts/_entita-layout.scss +344 -0
  252. package/src/lib/styles/arianna/layouts/_home-layout.scss +785 -0
  253. package/src/lib/styles/arianna/layouts/_multimedia-layout.scss +132 -0
  254. package/src/lib/styles/arianna/layouts/_scheda-layout.scss +438 -0
  255. package/src/lib/styles/arianna/layouts/_search-layout.scss +284 -0
  256. package/src/lib/styles/arianna/utilities/_item-preview-list.scss +48 -0
@@ -0,0 +1,89 @@
1
+ import { AwFacetInput } from './aw-facet-input';
2
+ const RESULTS_LIMIT = 2000;
3
+ export class AwFacetInputLink extends AwFacetInput {
4
+ transform() {
5
+ const facetId = this.getFacetId();
6
+ const results = [];
7
+ let resultsCounter = 0;
8
+ this.data.forEach(({ label, counter, hidden, value: rawValue, options: rawOptions }) => {
9
+ if (hidden) {
10
+ return;
11
+ }
12
+ resultsCounter += 1;
13
+ if (resultsCounter > RESULTS_LIMIT) {
14
+ return;
15
+ }
16
+ // normalize value
17
+ const value = `${rawValue}`;
18
+ const options = rawOptions || {};
19
+ const classes = [];
20
+ if (options.classes) {
21
+ classes.push(options.classes);
22
+ }
23
+ if (this._isActive(this.facetValue, value)) {
24
+ classes.push('is-active');
25
+ }
26
+ if (value === '__loading__') {
27
+ classes.push('loader-link');
28
+ }
29
+ results.push({
30
+ type: 'link',
31
+ id: this.getId(),
32
+ text: label,
33
+ counter,
34
+ payload: {
35
+ facetId,
36
+ source: 'input-link',
37
+ value,
38
+ },
39
+ icon: options.icon || null,
40
+ classes: classes.join(' '),
41
+ _meta: { facetId, value },
42
+ });
43
+ });
44
+ // empty state control
45
+ const itemEmpty = results.filter((item) => item.id === 'empty')[0];
46
+ if (this.isEmpty) {
47
+ if (itemEmpty) {
48
+ itemEmpty.classes = 'empty-text-link';
49
+ }
50
+ else {
51
+ const { label } = this.getConfig().emptyState;
52
+ const emptyId = 'empty-link';
53
+ results.push({
54
+ type: 'link',
55
+ id: emptyId,
56
+ text: label,
57
+ classes: 'empty-text-link',
58
+ _meta: { facetId: emptyId, value: null },
59
+ });
60
+ }
61
+ }
62
+ else if (itemEmpty) {
63
+ itemEmpty.classes = 'empty-text-link is-hidden';
64
+ }
65
+ return results;
66
+ }
67
+ setActive(facetValue) {
68
+ this.output.forEach((config) => {
69
+ const isActive = this._isActive(facetValue, config._meta.value);
70
+ let classes = config.classes ? config.classes.split(' ') : [];
71
+ if (!isActive) {
72
+ classes = classes.filter((className) => className !== 'is-active');
73
+ }
74
+ else if (classes.indexOf('is-active') === -1) {
75
+ classes.push('is-active');
76
+ }
77
+ config.classes = classes.join(' ');
78
+ });
79
+ }
80
+ _isActive(facetValue, value) {
81
+ this.facetValue = facetValue;
82
+ return ((Array.isArray(facetValue) && facetValue.indexOf(value) !== -1)
83
+ || (facetValue === value));
84
+ }
85
+ clear() {
86
+ this.facetValue = [];
87
+ }
88
+ }
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQtbGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9zZWFyY2gvYXctZmFjZXQtaW5wdXRzL2F3LWZhY2V0LWlucHV0LWxpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRWhELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQztBQUUzQixNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBWTtJQUd0QyxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxjQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDakIsS0FBSyxFQUNMLE9BQU8sRUFDUCxNQUFNLEVBQ04sS0FBSyxFQUFFLFFBQVEsRUFDZixPQUFPLEVBQUUsVUFBVSxFQUNwQixFQUFFLEVBQUU7WUFDSCxJQUFJLE1BQU0sRUFBRTtnQkFDVixPQUFPO2FBQ1I7WUFDRCxjQUFjLElBQUksQ0FBQyxDQUFDO1lBRXBCLElBQUksY0FBYyxHQUFHLGFBQWEsRUFBRTtnQkFDbEMsT0FBTzthQUNSO1lBRUQsa0JBQWtCO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLEdBQUcsUUFBUSxFQUFFLENBQUM7WUFDNUIsTUFBTSxPQUFPLEdBQUcsVUFBVSxJQUFJLEVBQUUsQ0FBQztZQUVqQyxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbkIsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFO2dCQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQUU7WUFDdkQsSUFBSSxJQUFJLENBQUMsU0FB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UUFFN0IsT0FBTyxDQUNMLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2VBQzVELENBQUMsVUFBVSxLQUFLLEtBQUssQ0FBQyxDQUMxQixDQUFDO0lBQ0osQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUN2QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd0ZhY2V0SW5wdXQgfSBmcm9tICcuL2F3LWZhY2V0LWlucHV0JztcblxuY29uc3QgUkVTVUxUU19MSU1JVCA9IDIwMDA7XG5cbmV4cG9ydCBjbGFzcyBBd0ZhY2V0SW5wdXRMaW5rIGV4dGVuZHMgQXdGYWNldElucHV0IHtcbiAgcHJpdmF0ZSBmYWNldFZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBwcm90ZWN0ZWQgdHJhbnNmb3JtKCkge1xuICAgIGNvbnN0IGZhY2V0SWQgPSB0aGlzLmdldEZhY2V0SWQoKTtcbiAgICBjb25zdCByZXN1bHRzID0gW107XG4gICAgbGV0IHJlc3VsdHNDb3VudGVyID0gMDtcblxuICAgIHRoaXMuZGF0YS5mb3JFYWNoKCh7XG4gICAgICBsYWJlbCxcbiAgICAgIGNvdW50ZXIsXG4gICAgICBoaWRkZW4sXG4gICAgICB2YWx1ZTogcmF3VmFsdWUsXG4gICAgICBvcHRpb25zOiByYXdPcHRpb25zXG4gICAgfSkgPT4ge1xuICAgICAgaWYgKGhpZGRlbikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICByZXN1bHRzQ291bnRlciArPSAxO1xuXG4gICAgICBpZiAocmVzdWx0c0NvdW50ZXIgPiBSRVNVTFRTX0xJTUlUKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgLy8gbm9ybWFsaXplIHZhbHVlXG4gICAgICBjb25zdCB2YWx1ZSA9IGAke3Jhd1ZhbHVlfWA7XG4gICAgICBjb25zdCBvcHRpb25zID0gcmF3T3B0aW9ucyB8fCB7fTtcblxuICAgICAgY29uc3QgY2xhc3NlcyA9IFtdO1xuICAgICAgaWYgKG9wdGlvbnMuY2xhc3NlcykgeyBjbGFzc2VzLnB1c2gob3B0aW9ucy5jbGFzc2VzKTsgfVxuICAgICAgaWYgKHRoaXMuX2lzQWN0aXZlKHRoaXMuZmFjZXRWYWx1ZSwgdmFsdWUpKSB7IGNsYXNzZXMucHVzaCgnaXMtYWN0aXZlJyk7IH1cbiAgICAgIGlmICh2YWx1ZSA9PT0gJ19fbG9hZGluZ19fJykgeyBjbGFzc2VzLnB1c2goJ2xvYWRlci1saW5rJyk7IH1cblxuICAgICAgcmVzdWx0cy5wdXNoKHtcbiAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICBpZDogdGhpcy5nZXRJZCgpLFxuICAgICAgICB0ZXh0OiBsYWJlbCxcbiAgICAgICAgY291bnRlcixcbiAgICAgICAgcGF5bG9hZDoge1xuICAgICAgICAgIGZhY2V0SWQsXG4gICAgICAgICAgc291cmNlOiAnaW5wdXQtbGluaycsXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgIH0sXG4gICAgICAgIGljb246IG9wdGlvbnMuaWNvbiB8fCBudWxsLFxuICAgICAgICBjbGFzc2VzOiBjbGFzc2VzLmpvaW4oJyAnKSxcbiAgICAgICAgX21ldGE6IHsgZmFjZXRJZCwgdmFsdWUgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgLy8gZW1wdHkgc3RhdGUgY29udHJvbFxuICAgIGNvbnN0IGl0ZW1FbXB0eSA9IHJlc3VsdHMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLmlkID09PSAnZW1wdHknKVswXTtcbiAgICBpZiAodGhpcy5pc0VtcHR5KSB7XG4gICAgICBpZiAoaXRlbUVtcHR5KSB7XG4gICAgICAgIGl0ZW1FbXB0eS5jbGFzc2VzID0gJ2VtcHR5LXRleHQtbGluayc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7IGxhYmVsIH0gPSB0aGlzLmdldENvbmZpZygpLmVtcHR5U3RhdGU7XG4gICAgICAgIGNvbnN0IGVtcHR5SWQgPSAnZW1wdHktbGluayc7XG4gICAgICAgIHJlc3VsdHMucHVzaCh7XG4gICAgICAgICAgdHlwZTogJ2xpbmsnLFxuICAgICAgICAgIGlkOiBlbXB0eUlkLFxuICAgICAgICAgIHRleHQ6IGxhYmVsLFxuICAgICAgICAgIGNsYXNzZXM6ICdlbXB0eS10ZXh0LWxpbmsnLFxuICAgICAgICAgIF9tZXRhOiB7IGZhY2V0SWQ6IGVtcHR5SWQsIHZhbHVlOiBudWxsIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoaXRlbUVtcHR5KSB7XG4gICAgICBpdGVtRW1wdHkuY2xhc3NlcyA9ICdlbXB0eS10ZXh0LWxpbmsgaXMtaGlkZGVuJztcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0cztcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmUoZmFjZXRWYWx1ZSkge1xuICAgIHRoaXMub3V0cHV0LmZvckVhY2goKGNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLl9pc0FjdGl2ZShmYWNldFZhbHVlLCBjb25maWcuX21ldGEudmFsdWUpO1xuICAgICAgbGV0IGNsYXNzZXMgPSBjb25maWcuY2xhc3NlcyA/IGNvbmZpZy5jbGFzc2VzLnNwbGl0KCcgJykgOiBbXTtcbiAgICAgIGlmICghaXNBY3RpdmUpIHtcbiAgICAgICAgY2xhc3NlcyA9IGNsYXNzZXMuZmlsdGVyKChjbGFzc05hbWUpID0+IGNsYXNzTmFtZSAhPT0gJ2lzLWFjdGl2ZScpO1xuICAgICAgfSBlbHNlIGlmIChjbGFzc2VzLmluZGV4T2YoJ2lzLWFjdGl2ZScpID09PSAtMSkge1xuICAgICAgICBjbGFzc2VzLnB1c2goJ2lzLWFjdGl2ZScpO1xuICAgICAgfVxuICAgICAgY29uZmlnLmNsYXNzZXMgPSBjbGFzc2VzLmpvaW4oJyAnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzQWN0aXZlKGZhY2V0VmFsdWUsIHZhbHVlKSB7XG4gICAgdGhpcy5mYWNldFZhbHVlID0gZmFjZXRWYWx1ZTtcblxuICAgIHJldHVybiAoXG4gICAgICAoQXJyYXkuaXNBcnJheShmYWNldFZhbHVlKSAmJiBmYWNldFZhbHVlLmluZGV4T2YodmFsdWUpICE9PSAtMSlcbiAgICAgIHx8IChmYWNldFZhbHVlID09PSB2YWx1ZSlcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNsZWFyKCkge1xuICAgIHRoaXMuZmFjZXRWYWx1ZSA9IFtdO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,28 @@
1
+ import { AwFacetInput } from './aw-facet-input';
2
+ export class AwFacetInputSelect extends AwFacetInput {
3
+ transform() {
4
+ const facetId = this.getFacetId();
5
+ return {
6
+ type: 'select',
7
+ id: this.getId(),
8
+ label: this.config.label,
9
+ disabled: this.config.disabled,
10
+ options: this.data ? this.data.map(({ value, label }) => ({
11
+ // normalize value
12
+ value: `${value}`,
13
+ label,
14
+ })) : [],
15
+ payload: {
16
+ facetId,
17
+ source: 'input-select',
18
+ },
19
+ _meta: { facetId },
20
+ };
21
+ }
22
+ setActive(facetValue) {
23
+ this.output.options
24
+ .filter((option) => option.value === facetValue)
25
+ .forEach((option) => { option.selected = true; });
26
+ }
27
+ }
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQtc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL3NlYXJjaC9hdy1mYWNldC1pbnB1dHMvYXctZmFjZXQtaW5wdXQtc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsWUFBWTtJQUN4QyxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQyxPQUFPO1lBQ0wsSUFBSSxFQUFFLFFBQVE7WUFDZCxFQUFFLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNoQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3hELGtCQUFrQjtnQkFDbEIsS0FBSyxFQUFFLEdBQUcsS0FBSyxFQUFFO2dCQUNqQixLQUFLO2FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDUixPQUFPLEVBQUU7Z0JBQ1AsT0FBTztnQkFDUCxNQUFNLEVBQUUsY0FBYzthQUN2QjtZQUNELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRTtTQUNuQixDQUFDO0lBQ0osQ0FBQztJQUVNLFNBQVMsQ0FBQyxVQUFVO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzthQUNoQixNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDO2FBQy9DLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd0ZhY2V0SW5wdXQgfSBmcm9tICcuL2F3LWZhY2V0LWlucHV0JztcblxuZXhwb3J0IGNsYXNzIEF3RmFjZXRJbnB1dFNlbGVjdCBleHRlbmRzIEF3RmFjZXRJbnB1dCB7XG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oKSB7XG4gICAgY29uc3QgZmFjZXRJZCA9IHRoaXMuZ2V0RmFjZXRJZCgpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdzZWxlY3QnLFxuICAgICAgaWQ6IHRoaXMuZ2V0SWQoKSxcbiAgICAgIGxhYmVsOiB0aGlzLmNvbmZpZy5sYWJlbCxcbiAgICAgIGRpc2FibGVkOiB0aGlzLmNvbmZpZy5kaXNhYmxlZCxcbiAgICAgIG9wdGlvbnM6IHRoaXMuZGF0YSA/IHRoaXMuZGF0YS5tYXAoKHsgdmFsdWUsIGxhYmVsIH0pID0+ICh7XG4gICAgICAgIC8vIG5vcm1hbGl6ZSB2YWx1ZVxuICAgICAgICB2YWx1ZTogYCR7dmFsdWV9YCxcbiAgICAgICAgbGFiZWwsXG4gICAgICB9KSkgOiBbXSxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgZmFjZXRJZCxcbiAgICAgICAgc291cmNlOiAnaW5wdXQtc2VsZWN0JyxcbiAgICAgIH0sXG4gICAgICBfbWV0YTogeyBmYWNldElkIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmUoZmFjZXRWYWx1ZSkge1xuICAgIHRoaXMub3V0cHV0Lm9wdGlvbnNcbiAgICAgIC5maWx0ZXIoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBmYWNldFZhbHVlKVxuICAgICAgLmZvckVhY2goKG9wdGlvbikgPT4geyBvcHRpb24uc2VsZWN0ZWQgPSB0cnVlOyB9KTtcbiAgfVxufVxuIl19
@@ -0,0 +1,36 @@
1
+ import { helpers } from '@net7/boilerplate-common';
2
+ import { AwFacetInput } from './aw-facet-input';
3
+ export class AwFacetInputText extends AwFacetInput {
4
+ transform() {
5
+ const facetId = this.getFacetId();
6
+ const payload = {
7
+ facetId,
8
+ source: 'input-text',
9
+ };
10
+ return {
11
+ type: 'text',
12
+ id: this.getId(),
13
+ label: this.config.label,
14
+ disabled: this.config.disabled,
15
+ placeholder: this.config.placeholder,
16
+ icon: this.config.icon,
17
+ inputPayload: {
18
+ ...payload,
19
+ trigger: 'input',
20
+ },
21
+ enterPayload: {
22
+ ...payload,
23
+ trigger: 'enter',
24
+ },
25
+ iconPayload: {
26
+ ...payload,
27
+ trigger: 'icon',
28
+ },
29
+ _meta: { facetId },
30
+ };
31
+ }
32
+ setActive(facetValue) {
33
+ this.output.value = helpers.unescapeQuotes(facetValue) || null;
34
+ }
35
+ }
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQtdGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL243LWJvaWxlcnBsYXRlLWFyaWFubmEvc3JjL2xpYi9zZWFyY2gvYXctZmFjZXQtaW5wdXRzL2F3LWZhY2V0LWlucHV0LXRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVoRCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsWUFBWTtJQUN0QyxTQUFTO1FBQ2pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRztZQUNkLE9BQU87WUFDUCxNQUFNLEVBQUUsWUFBWTtTQUNyQixDQUFDO1FBRUYsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztZQUN4QixRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRO1lBQzlCLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDcEMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtZQUN0QixZQUFZLEVBQUU7Z0JBQ1osR0FBRyxPQUFPO2dCQUNWLE9BQU8sRUFBRSxPQUFPO2FBQ2pCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLEdBQUcsT0FBTztnQkFDVixPQUFPLEVBQUUsT0FBTzthQUNqQjtZQUNELFdBQVcsRUFBRTtnQkFDWCxHQUFHLE9BQU87Z0JBQ1YsT0FBTyxFQUFFLE1BQU07YUFDaEI7WUFDRCxLQUFLLEVBQUUsRUFBRSxPQUFPLEVBQUU7U0FDbkIsQ0FBQztJQUNKLENBQUM7SUFFTSxTQUFTLENBQUMsVUFBVTtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLElBQUksQ0FBQztJQUNqRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7IEF3RmFjZXRJbnB1dCB9IGZyb20gJy4vYXctZmFjZXQtaW5wdXQnO1xuXG5leHBvcnQgY2xhc3MgQXdGYWNldElucHV0VGV4dCBleHRlbmRzIEF3RmFjZXRJbnB1dCB7XG4gIHByb3RlY3RlZCB0cmFuc2Zvcm0oKSB7XG4gICAgY29uc3QgZmFjZXRJZCA9IHRoaXMuZ2V0RmFjZXRJZCgpO1xuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBmYWNldElkLFxuICAgICAgc291cmNlOiAnaW5wdXQtdGV4dCcsXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgICBpZDogdGhpcy5nZXRJZCgpLFxuICAgICAgbGFiZWw6IHRoaXMuY29uZmlnLmxhYmVsLFxuICAgICAgZGlzYWJsZWQ6IHRoaXMuY29uZmlnLmRpc2FibGVkLFxuICAgICAgcGxhY2Vob2xkZXI6IHRoaXMuY29uZmlnLnBsYWNlaG9sZGVyLFxuICAgICAgaWNvbjogdGhpcy5jb25maWcuaWNvbixcbiAgICAgIGlucHV0UGF5bG9hZDoge1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICB0cmlnZ2VyOiAnaW5wdXQnLFxuICAgICAgfSxcbiAgICAgIGVudGVyUGF5bG9hZDoge1xuICAgICAgICAuLi5wYXlsb2FkLFxuICAgICAgICB0cmlnZ2VyOiAnZW50ZXInLFxuICAgICAgfSxcbiAgICAgIGljb25QYXlsb2FkOiB7XG4gICAgICAgIC4uLnBheWxvYWQsXG4gICAgICAgIHRyaWdnZXI6ICdpY29uJyxcbiAgICAgIH0sXG4gICAgICBfbWV0YTogeyBmYWNldElkIH0sXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRBY3RpdmUoZmFjZXRWYWx1ZSkge1xuICAgIHRoaXMub3V0cHV0LnZhbHVlID0gaGVscGVycy51bmVzY2FwZVF1b3RlcyhmYWNldFZhbHVlKSB8fCBudWxsO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,30 @@
1
+ export class AwFacetInput {
2
+ constructor(config) {
3
+ this.isEmpty = false;
4
+ this.update = () => { this.output = this.transform(); };
5
+ this.getId = () => this.id;
6
+ this.getData = () => this.data;
7
+ this.getConfig = () => this.config;
8
+ this.getFacetId = () => this.config.facetId;
9
+ this.getInputIndex = () => this.config.inputIndex;
10
+ this.getSectionIndex = () => this.config.sectionIndex;
11
+ this.getContext = () => this.config.filterConfig.context || 'external';
12
+ this.getTarget = () => this.config.filterConfig.target || null;
13
+ this.getSearchIn = () => this.config.filterConfig.searchIn || null;
14
+ this.getType = () => this.config.type;
15
+ this.getOutput = () => this.output;
16
+ this.setIsEmpty = (empty) => {
17
+ this.isEmpty = empty;
18
+ };
19
+ this.setData = (newData) => { this.data = newData; };
20
+ this.config = config;
21
+ this._setId();
22
+ AwFacetInput.index += 1;
23
+ }
24
+ clear() { return null; }
25
+ _setId() {
26
+ this.id = `facet-input-${this.getType()}-${AwFacetInput.index}`;
27
+ }
28
+ }
29
+ AwFacetInput.index = 0;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctZmFjZXQtaW5wdXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvc2VhcmNoL2F3LWZhY2V0LWlucHV0cy9hdy1mYWNldC1pbnB1dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLE9BQWdCLFlBQVk7SUFhaEMsWUFBWSxNQUFNO1FBRlIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQWFuQixXQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFFbEQsVUFBSyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFFdEIsWUFBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFFMUIsY0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFOUIsZUFBVSxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBRXZDLGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFFN0Msb0JBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUVqRCxlQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLFVBQVUsQ0FBQztRQUVsRSxjQUFTLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQztRQUUxRCxnQkFBVyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUM7UUFFOUQsWUFBTyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBRWpDLGNBQVMsR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBSTlCLGVBQVUsR0FBRyxDQUFDLEtBQWMsRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQTtRQUVNLFlBQU8sR0FBRyxDQUFDLE9BQXlCLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBeEN0RSxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFZCxZQUFZLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBOEJNLEtBQUssS0FBSyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUM7SUFRdkIsTUFBTTtRQUNaLElBQUksQ0FBQyxFQUFFLEdBQUcsZUFBZSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2xFLENBQUM7O0FBekRNLGtCQUFLLEdBQUcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW50ZXJmYWNlIEZhY2V0SW5wdXREYXRhIHtcbiAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgbGFiZWw6IHN0cmluZztcbiAgY291bnRlcjogbnVtYmVyO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBvcHRpb25zPzogYW55O1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXdGYWNldElucHV0IHtcbiAgc3RhdGljIGluZGV4ID0gMDtcblxuICBwcml2YXRlIGlkOiBzdHJpbmc7XG5cbiAgcHJvdGVjdGVkIGNvbmZpZzogYW55O1xuXG4gIHByb3RlY3RlZCBvdXRwdXQ6IGFueTtcblxuICBwcm90ZWN0ZWQgZGF0YTogRmFjZXRJbnB1dERhdGFbXTtcblxuICBwcm90ZWN0ZWQgaXNFbXB0eSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuX3NldElkKCk7XG5cbiAgICBBd0ZhY2V0SW5wdXQuaW5kZXggKz0gMTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBzZXRBY3RpdmUoZmFjZXRWYWx1ZTogYW55KTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgdHJhbnNmb3JtKCk6IGFueTtcblxuICBwdWJsaWMgdXBkYXRlID0gKCkgPT4geyB0aGlzLm91dHB1dCA9IHRoaXMudHJhbnNmb3JtKCk7IH1cblxuICBwdWJsaWMgZ2V0SWQgPSAoKSA9PiB0aGlzLmlkO1xuXG4gIHB1YmxpYyBnZXREYXRhID0gKCkgPT4gdGhpcy5kYXRhO1xuXG4gIHB1YmxpYyBnZXRDb25maWcgPSAoKSA9PiB0aGlzLmNvbmZpZztcblxuICBwdWJsaWMgZ2V0RmFjZXRJZCA9ICgpID0+IHRoaXMuY29uZmlnLmZhY2V0SWQ7XG5cbiAgcHVibGljIGdldElucHV0SW5kZXggPSAoKSA9PiB0aGlzLmNvbmZpZy5pbnB1dEluZGV4O1xuXG4gIHB1YmxpYyBnZXRTZWN0aW9uSW5kZXggPSAoKSA9PiB0aGlzLmNvbmZpZy5zZWN0aW9uSW5kZXg7XG5cbiAgcHVibGljIGdldENvbnRleHQgPSAoKSA9PiB0aGlzLmNvbmZpZy5maWx0ZXJDb25maWcuY29udGV4dCB8fCAnZXh0ZXJuYWwnO1xuXG4gIHB1YmxpYyBnZXRUYXJnZXQgPSAoKSA9PiB0aGlzLmNvbmZpZy5maWx0ZXJDb25maWcudGFyZ2V0IHx8IG51bGw7XG5cbiAgcHVibGljIGdldFNlYXJjaEluID0gKCkgPT4gdGhpcy5jb25maWcuZmlsdGVyQ29uZmlnLnNlYXJjaEluIHx8IG51bGw7XG5cbiAgcHVibGljIGdldFR5cGUgPSAoKSA9PiB0aGlzLmNvbmZpZy50eXBlO1xuXG4gIHB1YmxpYyBnZXRPdXRwdXQgPSAoKSA9PiB0aGlzLm91dHB1dDtcblxuICBwdWJsaWMgY2xlYXIoKSB7IHJldHVybiBudWxsOyB9XG5cbiAgcHVibGljIHNldElzRW1wdHkgPSAoZW1wdHk6IGJvb2xlYW4pID0+IHtcbiAgICB0aGlzLmlzRW1wdHkgPSBlbXB0eTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREYXRhID0gKG5ld0RhdGE6IEZhY2V0SW5wdXREYXRhW10pID0+IHsgdGhpcy5kYXRhID0gbmV3RGF0YTsgfVxuXG4gIHByaXZhdGUgX3NldElkKCkge1xuICAgIHRoaXMuaWQgPSBgZmFjZXQtaW5wdXQtJHt0aGlzLmdldFR5cGUoKX0tJHtBd0ZhY2V0SW5wdXQuaW5kZXh9YDtcbiAgfVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ export * from './aw-facet-input';
2
+ export * from './aw-facet-input-checkbox';
3
+ export * from './aw-facet-input-link';
4
+ export * from './aw-facet-input-select';
5
+ export * from './aw-facet-input-text';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uNy1ib2lsZXJwbGF0ZS1hcmlhbm5hL3NyYy9saWIvc2VhcmNoL2F3LWZhY2V0LWlucHV0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F3LWZhY2V0LWlucHV0JztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXQtaW5wdXQtY2hlY2tib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9hdy1mYWNldC1pbnB1dC1saW5rJztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXQtaW5wdXQtc2VsZWN0JztcbmV4cG9ydCAqIGZyb20gJy4vYXctZmFjZXQtaW5wdXQtdGV4dCc7XG4iXX0=
@@ -0,0 +1,331 @@
1
+ /* eslint-disable max-classes-per-file */
2
+ import { get as _get, isEmpty as _isEmpty } from 'lodash';
3
+ import { Subject } from 'rxjs';
4
+ import { helpers } from '@net7/boilerplate-common';
5
+ import { AwFacetInputCheckbox, AwFacetInputText, AwFacetInputLink, AwFacetInputSelect, } from './aw-facet-inputs';
6
+ const INPUTS_MAP = {
7
+ checkbox: AwFacetInputCheckbox,
8
+ text: AwFacetInputText,
9
+ link: AwFacetInputLink,
10
+ select: AwFacetInputSelect,
11
+ };
12
+ const FILTERS_MAP = {
13
+ '=': '_filterDataEquals',
14
+ '>': '_filterDataGreaterThan',
15
+ '<': '_filterDataLessThan',
16
+ '>=': '_filterDataGreaterOrEquals',
17
+ '<=': '_filterDataLessOrEquals',
18
+ '<>': '_filterDataNotEqual',
19
+ LIKE: '_filterDataLike',
20
+ };
21
+ export class AwSearchModel {
22
+ constructor(id, config) {
23
+ this._filters = [];
24
+ this._facets = [];
25
+ this._inputs = [];
26
+ this._results$ = new Subject();
27
+ this.getId = () => this._id;
28
+ this.getFilters = () => this._filters;
29
+ this.getFacets = () => this._facets;
30
+ this.getInputs = () => this._inputs;
31
+ this.getConfig = () => this._config;
32
+ this.getTotalCount = () => this._totalCount;
33
+ this.getFields = () => this._config.fields;
34
+ this.getResults$ = () => this._results$;
35
+ this.setResults = (results) => this._results$.next(results);
36
+ this._id = id;
37
+ this._config = config;
38
+ this._setFilters();
39
+ this._setFacets();
40
+ this._setPage();
41
+ this._setInputs();
42
+ this._setInputsData();
43
+ this._setTotalCount();
44
+ // query params control
45
+ /* eslint-disable @typescript-eslint/no-use-before-define */
46
+ if (AwSearchModel.queryParams) {
47
+ this.updateFiltersFromQueryParams(AwSearchModel.queryParams);
48
+ AwSearchModel.queryParams = null;
49
+ }
50
+ }
51
+ updateFilter(facetId, value, remove) {
52
+ const selectedFilters = this.getFiltersByFacetId(facetId);
53
+ selectedFilters.forEach((filter) => {
54
+ if (Array.isArray(filter.value) && remove) {
55
+ filter.value = filter.value.filter((item) => item !== value);
56
+ }
57
+ else if (Array.isArray(filter.value)
58
+ && filter.value.indexOf(value) === -1) {
59
+ filter.value.push(value);
60
+ }
61
+ else {
62
+ filter.value = !remove ? helpers.escapeQuotes(value) : null;
63
+ }
64
+ });
65
+ }
66
+ clear() {
67
+ this.updateFiltersFromQueryParams({}, true);
68
+ this._clearInputs();
69
+ }
70
+ updateFiltersFromQueryParams(queryParams, clearAll = false) {
71
+ this._facets.forEach(({ id }) => {
72
+ const selectedFilters = this.getFiltersByFacetId(id);
73
+ const value = queryParams[id];
74
+ const isInternal = this.getInputByFacetId(id).getContext() === 'internal';
75
+ if (isInternal && !clearAll) {
76
+ return;
77
+ }
78
+ selectedFilters.forEach((filter) => {
79
+ if (filter.isArray) {
80
+ filter.value = value ? value.split(',') : [];
81
+ }
82
+ else {
83
+ filter.value = value || null;
84
+ }
85
+ });
86
+ });
87
+ }
88
+ updateInputsFromFilters() {
89
+ this._filters.forEach(({ facetId, value }) => {
90
+ this.getInputByFacetId(facetId).setActive(value);
91
+ });
92
+ }
93
+ updateFacets(facets) {
94
+ facets.forEach(({ id, data }) => this.updateFacet(id, data));
95
+ this._setInputsData();
96
+ }
97
+ updateTotalCount(totalCount) {
98
+ this._totalCount = totalCount;
99
+ }
100
+ updateFacet(facetId, data) {
101
+ const selectedFacets = this._facets.filter((facet) => facet.id === facetId);
102
+ if (!selectedFacets.length) {
103
+ throw Error(`Facet with id '${facetId}' does not exists`);
104
+ }
105
+ selectedFacets.forEach((facet) => { facet.data = data; });
106
+ }
107
+ reset() {
108
+ this._filters.forEach((filter) => { filter.value = null; });
109
+ }
110
+ getRequestParams() {
111
+ return {
112
+ facets: this._getRequestFacets(),
113
+ page: this._page,
114
+ results: this._config.results,
115
+ filters: this._filters
116
+ .filter((filter) => filter.context !== 'internal')
117
+ .map(({ facetId, value, searchIn, pagination }) => (pagination ? {
118
+ facetId, value, searchIn, pagination
119
+ } : {
120
+ facetId, value, searchIn
121
+ })),
122
+ };
123
+ }
124
+ getInternalFilters() {
125
+ return this._filters
126
+ .filter((filter) => (filter.context === 'internal'
127
+ && !_isEmpty(filter.value)))
128
+ .map(({ facetId, value, searchIn }) => ({
129
+ facetId, value, searchIn
130
+ }));
131
+ }
132
+ filtersAsQueryParams(filters) {
133
+ const queryParams = {};
134
+ filters.forEach((filter) => {
135
+ queryParams[filter.facetId] = Array.isArray(filter.value)
136
+ ? filter.value.join(',')
137
+ : filter.value;
138
+ });
139
+ return queryParams;
140
+ }
141
+ getFiltersByFacetId(facetId) {
142
+ return this._filters.filter((filter) => filter.facetId === facetId);
143
+ }
144
+ getInputByFacetId(facetId) {
145
+ return this._inputs.filter((input) => input.getFacetId() === facetId)[0];
146
+ }
147
+ setInputData(facetId, data) {
148
+ this.getInputByFacetId(facetId).setData(data);
149
+ }
150
+ filterTarget(target) {
151
+ const inputs = this._inputs.filter((input) => input.getTarget() === target);
152
+ const targetInput = this.getInputByFacetId(target);
153
+ const facet = this._facets.filter((f) => f.id === target)[0];
154
+ const facetData = facet.data;
155
+ const searchIns = [];
156
+ inputs.forEach((input) => {
157
+ const filter = this.getFiltersByFacetId(input.getFacetId())[0];
158
+ const searchIn = input.getSearchIn();
159
+ const { value } = filter;
160
+ searchIns.push([searchIn, value]);
161
+ });
162
+ // filter
163
+ facetData.forEach((item) => this._filterData(searchIns, item));
164
+ // update
165
+ targetInput.setData(facetData);
166
+ if (targetInput.getConfig().emptyState) {
167
+ const isEmpty = !facetData.filter((data) => !data.hidden).length;
168
+ targetInput.setIsEmpty(isEmpty);
169
+ }
170
+ targetInput.update();
171
+ }
172
+ setSearchConfigOrderBy(orderBy) {
173
+ this._config.results.order.key = orderBy;
174
+ }
175
+ setSearchConfigDirection(direction) {
176
+ this._config.results.order.direction = direction;
177
+ }
178
+ setSearchConfigType(type) {
179
+ this._config.results.order.type = type;
180
+ }
181
+ setPageConfigOffset(offset) {
182
+ this._config.page.offset = offset;
183
+ }
184
+ setPageConfigLimit(limit) {
185
+ this._config.page.limit = limit;
186
+ }
187
+ _clearInputs() {
188
+ // do nothing
189
+ }
190
+ _filterData(searchIns, item) {
191
+ // reset
192
+ item.hidden = false;
193
+ searchIns.forEach(([searchIn, value]) => {
194
+ searchIn.forEach(({ key, operator }) => {
195
+ if (item.hidden) {
196
+ return;
197
+ }
198
+ let refValue = _get(item, key, null);
199
+ if (key.indexOf('searchData') !== -1 && Array.isArray(item.searchData)) {
200
+ const searchDataKey = key.replace('searchData.', '');
201
+ item.searchData.forEach(({ key: dataKey, value: dataValue }) => {
202
+ if (dataKey === searchDataKey) {
203
+ refValue = dataValue;
204
+ }
205
+ });
206
+ }
207
+ if (refValue === null) {
208
+ item.hidden = true;
209
+ }
210
+ else if (FILTERS_MAP[operator]) {
211
+ item.hidden = this[FILTERS_MAP[operator]](value, refValue);
212
+ }
213
+ else {
214
+ console.warn(`SearchIn: operator ${operator} not supported`);
215
+ }
216
+ });
217
+ });
218
+ }
219
+ _filterDataEquals(value, refValue) {
220
+ if (Array.isArray(refValue)) {
221
+ if (Array.isArray(value)) {
222
+ let inArray = value.length === 0;
223
+ refValue.forEach((rv) => {
224
+ if (value.indexOf(rv) !== -1) {
225
+ inArray = true;
226
+ }
227
+ });
228
+ return !(inArray);
229
+ }
230
+ return !(value && refValue.indexOf(value) !== -1);
231
+ }
232
+ if (Array.isArray(value)) {
233
+ return !(!value.length || value.indexOf(refValue) !== -1);
234
+ }
235
+ return !(value && value === refValue);
236
+ }
237
+ _filterDataGreaterThan(value, refValue) {
238
+ if (!Array.isArray(value)) {
239
+ return !(value && value > refValue);
240
+ }
241
+ return false;
242
+ }
243
+ _filterDataLessThan(value, refValue) {
244
+ if (!Array.isArray(value)) {
245
+ return !(value && value < refValue);
246
+ }
247
+ return false;
248
+ }
249
+ _filterDataGreaterOrEquals(value, refValue) {
250
+ if (!Array.isArray(value)) {
251
+ return !(value && value >= refValue);
252
+ }
253
+ return false;
254
+ }
255
+ _filterDataLessOrEquals(value, refValue) {
256
+ if (!Array.isArray(value)) {
257
+ return !(value && value <= refValue);
258
+ }
259
+ return false;
260
+ }
261
+ _filterDataNotEqual(value, refValue) {
262
+ if (!Array.isArray(value)) {
263
+ return !(value && value !== refValue);
264
+ }
265
+ return false;
266
+ }
267
+ _filterDataLike(value, refValue) {
268
+ if (value
269
+ && typeof value === 'string'
270
+ && typeof refValue === 'string') {
271
+ const haystack = refValue.toLowerCase();
272
+ const needle = value.toLocaleLowerCase();
273
+ return !(haystack.indexOf(needle) !== -1);
274
+ }
275
+ return false;
276
+ }
277
+ _setFilters() {
278
+ this._config.fields.forEach((field) => {
279
+ field.inputs.forEach((input) => this._filters.push({
280
+ ...input.filterConfig,
281
+ facetId: input.facetId,
282
+ value: input.filterConfig.isArray ? [] : null,
283
+ }));
284
+ });
285
+ }
286
+ _setFacets() {
287
+ this._facets = this._config.facets;
288
+ }
289
+ _setPage() {
290
+ this._page = this._config.page;
291
+ }
292
+ _setTotalCount() {
293
+ this._totalCount = this._config.totalCount;
294
+ }
295
+ _setInputs() {
296
+ this._config.fields.forEach((sectionConfig, sectionIndex) => {
297
+ sectionConfig.inputs.forEach((inputConfig, inputIndex) => {
298
+ const InputModel = INPUTS_MAP[inputConfig.type];
299
+ if (!InputModel) {
300
+ throw Error(`Input type ${inputConfig.type} not supported`);
301
+ }
302
+ this._inputs.push(new InputModel({ ...inputConfig, inputIndex, sectionIndex }));
303
+ });
304
+ });
305
+ }
306
+ _setInputsData() {
307
+ this._facets.forEach((facet) => this.setInputData(facet.id, facet.data));
308
+ }
309
+ _getRequestFacets() {
310
+ const results = [];
311
+ this._facets.forEach((f) => {
312
+ const facetConfig = { ...f };
313
+ if (!f.hasStaticData) {
314
+ delete facetConfig.data;
315
+ }
316
+ delete facetConfig.hasStaticData;
317
+ // searchData control
318
+ if (Array.isArray(facetConfig.data)) {
319
+ facetConfig.data
320
+ .filter((dataItem) => typeof dataItem.searchData !== 'undefined')
321
+ .forEach((dataItem) => {
322
+ delete dataItem.searchData;
323
+ });
324
+ }
325
+ results.push(facetConfig);
326
+ });
327
+ return results;
328
+ }
329
+ }
330
+ AwSearchModel.queryParams = null;
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXctc2VhcmNoLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbjctYm9pbGVycGxhdGUtYXJpYW5uYS9zcmMvbGliL3NlYXJjaC9hdy1zZWFyY2gubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseUNBQXlDO0FBQ3pDLE9BQU8sRUFBRSxHQUFHLElBQUksSUFBSSxFQUFFLE9BQU8sSUFBSSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUVMLG9CQUFvQixFQUNwQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLGtCQUFrQixHQUNuQixNQUFNLG1CQUFtQixDQUFDO0FBTTNCLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLFFBQVEsRUFBRSxvQkFBb0I7SUFDOUIsSUFBSSxFQUFFLGdCQUFnQjtJQUN0QixJQUFJLEVBQUUsZ0JBQWdCO0lBQ3RCLE1BQU0sRUFBRSxrQkFBa0I7Q0FDM0IsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHO0lBQ2xCLEdBQUcsRUFBRSxtQkFBbUI7SUFDeEIsR0FBRyxFQUFFLHdCQUF3QjtJQUM3QixHQUFHLEVBQUUscUJBQXFCO0lBQzFCLElBQUksRUFBRSw0QkFBNEI7SUFDbEMsSUFBSSxFQUFFLHlCQUF5QjtJQUMvQixJQUFJLEVBQUUscUJBQXFCO0lBQzNCLElBQUksRUFBRSxpQkFBaUI7Q0FDeEIsQ0FBQztBQW9DRixNQUFNLE9BQU8sYUFBYTtJQW1CeEIsWUFBWSxFQUFVLEVBQUUsTUFBc0I7UUFkdEMsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUV4QixZQUFPLEdBQVksRUFBRSxDQUFDO1FBRXRCLFlBQU8sR0FBbUIsRUFBRSxDQUFDO1FBUTdCLGNBQVMsR0FBbUIsSUFBSSxPQUFPLEVB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RUFBRSxFQUFFLENBQUMsT0FBTyxRQUFRLENBQUMsVUFBVSxLQUFLLFdBQVcsQ0FBQztxQkFDaEUsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ3BCLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDOztBQXRZTSx5QkFBVyxHQUFRLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG1heC1jbGFzc2VzLXBlci1maWxlICovXG5pbXBvcnQgeyBnZXQgYXMgX2dldCwgaXNFbXB0eSBhcyBfaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBoZWxwZXJzIH0gZnJvbSAnQG5ldDcvYm9pbGVycGxhdGUtY29tbW9uJztcbmltcG9ydCB7XG4gIEF3RmFjZXRJbnB1dCxcbiAgQXdGYWNldElucHV0Q2hlY2tib3gsXG4gIEF3RmFjZXRJbnB1dFRleHQsXG4gIEF3RmFjZXRJbnB1dExpbmssXG4gIEF3RmFjZXRJbnB1dFNlbGVjdCxcbn0gZnJvbSAnLi9hdy1mYWNldC1pbnB1dHMnO1xuXG5leHBvcnQgdHlwZSBGaWx0ZXJPcGVyYXRvcnMgPSAnPScgfCAnPicgfCAnPCcgfCAnPj0nIHwgJzw9JyB8ICc8PicgfCAnTElLRSc7XG5leHBvcnQgdHlwZSBGYWNldFR5cGVzID0gJ3ZhbHVlJyB8ICdyYW5nZSc7XG5leHBvcnQgdHlwZSBGYWNldE9wZXJhdG9ycyA9ICdPUicgfCAnQU5EJztcblxuY29uc3QgSU5QVVRTX01BUCA9IHtcbiAgY2hlY2tib3g6IEF3RmFjZXRJbnB1dENoZWNrYm94LFxuICB0ZXh0OiBBd0ZhY2V0SW5wdXRUZXh0LFxuICBsaW5rOiBBd0ZhY2V0SW5wdXRMaW5rLFxuICBzZWxlY3Q6IEF3RmFjZXRJbnB1dFNlbGVjdCxcbn07XG5cbmNvbnN0IEZJTFRFUlNfTUFQID0ge1xuICAnPSc6ICdfZmlsdGVyRGF0YUVxdWFscycsXG4gICc+JzogJ19maWx0ZXJEYXRhR3JlYXRlclRoYW4nLFxuICAnPCc6ICdfZmlsdGVyRGF0YUxlc3NUaGFuJyxcbiAgJz49JzogJ19maWx0ZXJEYXRhR3JlYXRlck9yRXF1YWxzJyxcbiAgJzw9JzogJ19maWx0ZXJEYXRhTGVzc09yRXF1YWxzJyxcbiAgJzw+JzogJ19maWx0ZXJEYXRhTm90RXF1YWwnLFxuICBMSUtFOiAnX2ZpbHRlckRhdGFMaWtlJyxcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXdTZWFyY2hDb25maWcge1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIGZhY2V0czogYW55O1xuICBwYWdlOiBhbnk7XG4gIHJlc3VsdHM6IGFueTtcbiAgZmllbGRzOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmFjZXQge1xuICBpZDogc3RyaW5nO1xuICB0eXBlOiBGYWNldFR5cGVzO1xuICBvcGVyYXRvcjogRmFjZXRPcGVyYXRvcnM7XG4gIGhhc1N0YXRpY0RhdGE/OiBib29sZWFuO1xuICBzZWFyY2hEYXRhPzogc3RyaW5nW107XG4gIGRhdGE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyIHtcbiAgZmFjZXRJZDogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgKG51bWJlciB8IHN0cmluZylbXSB8IG51bGw7XG4gIHNlYXJjaEluOiBBcnJheTx7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgb3BlcmF0b3I/OiBGaWx0ZXJPcGVyYXRvcnM7XG4gIH0+O1xuICBpc0FycmF5PzogYm9vbGVhbjtcbiAgY29udGV4dD86ICdpbnRlcm5hbCcgfCAnZXh0ZXJuYWwnO1xuICB0YXJnZXQ/OiBzdHJpbmc7XG4gIHBhZ2luYXRpb24/OiB7XG4gICAgdG90YWxDb3VudDogbnVtYmVyO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgb2Zmc2V0OiBudW1iZXI7XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBBd1NlYXJjaE1vZGVsIHtcbiAgc3RhdGljIHF1ZXJ5UGFyYW1zOiBhbnkgPSBudWxsO1xuXG4gIHByaXZhdGUgX2lkOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyczogRmlsdGVyW10gPSBbXTtcblxuICBwcml2YXRlIF9mYWNldHM6IEZhY2V0W10gPSBbXTtcblxuICBwcml2YXRlIF9pbnB1dHM6IEF3RmFjZXRJbnB1dFtdID0gW107XG5cbiAgcHJpdmF0ZSBfcGFnZTogYW55O1xuXG4gIHByaXZhdGUgX3RvdGFsQ291bnQ6IG51bWJlciB8IG51bGw7XG5cbiAgcHJpdmF0ZSBfY29uZmlnOiBBd1NlYXJjaENvbmZpZztcblxuICBwcml2YXRlIF9yZXN1bHRzJDogU3ViamVjdDxhbnlbXT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIGNvbmZpZzogQXdTZWFyY2hDb25maWcpIHtcbiAgICB0aGlzLl9pZCA9IGlkO1xuICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcblxuICAgIHRoaXMuX3NldEZpbHRlcnMoKTtcbiAgICB0aGlzLl9zZXRGYWNldHMoKTtcbiAgICB0aGlzLl9zZXRQYWdlKCk7XG4gICAgdGhpcy5fc2V0SW5wdXRzKCk7XG4gICAgdGhpcy5fc2V0SW5wdXRzRGF0YSgpO1xuICAgIHRoaXMuX3NldFRvdGFsQ291bnQoKTtcblxuICAgIC8vIHF1ZXJ5IHBhcmFtcyBjb250cm9sXG4gICAgLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVzZS1iZWZvcmUtZGVmaW5lICovXG4gICAgaWYgKEF3U2VhcmNoTW9kZWwucXVlcnlQYXJhbXMpIHtcbiAgICAgIHRoaXMudXBkYXRlRmlsdGVyc0Zyb21RdWVyeVBhcmFtcyhBd1NlYXJjaE1vZGVsLnF1ZXJ5UGFyYW1zKTtcbiAgICAgIEF3U2VhcmNoTW9kZWwucXVlcnlQYXJhbXMgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRJZCA9ICgpID0+IHRoaXMuX2lkO1xuXG4gIHB1YmxpYyBnZXRGaWx0ZXJzID0gKCkgPT4gdGhpcy5fZmlsdGVycztcblxuICBwdWJsaWMgZ2V0RmFjZXRzID0gKCkgPT4gdGhpcy5fZmFjZXRzO1xuXG4gIHB1YmxpYyBnZXRJbnB1dHMgPSAoKSA9PiB0aGlzLl9pbnB1dHM7XG5cbiAgcHVibGljIGdldENvbmZpZyA9ICgpID0+IHRoaXMuX2NvbmZpZztcblxuICBwdWJsaWMgZ2V0VG90YWxDb3VudCA9ICgpID0+IHRoaXMuX3RvdGFsQ291bnQ7XG5cbiAgcHVibGljIGdldEZpZWxkcyA9ICgpID0+IHRoaXMuX2NvbmZpZy5maWVsZHM7XG5cbiAgcHVibGljIGdldFJlc3VsdHMkID0gKCkgPT4gdGhpcy5fcmVzdWx0cyQ7XG5cbiAgcHVibGljIHNldFJlc3VsdHMgPSAocmVzdWx0cykgPT4gdGhpcy5fcmVzdWx0cyQubmV4dChyZXN1bHRzKTtcblxuICBwdWJsaWMgdXBkYXRlRmlsdGVyKGZhY2V0SWQsIHZhbHVlLCByZW1vdmU/OiBib29sZWFuKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWRGaWx0ZXJzID0gdGhpcy5nZXRGaWx0ZXJzQnlGYWNldElkKGZhY2V0SWQpO1xuICAgIHNlbGVjdGVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpbHRlci52YWx1ZSkgJiYgcmVtb3ZlKSB7XG4gICAgICAgIGZpbHRlci52YWx1ZSA9IGZpbHRlci52YWx1ZS5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0gIT09IHZhbHVlKTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIEFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKVxuICAgICAgICAmJiBmaWx0ZXIudmFsdWUuaW5kZXhPZih2YWx1ZSkgPT09IC0xXG4gICAgICApIHtcbiAgICAgICAgZmlsdGVyLnZhbHVlLnB1c2godmFsdWUpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZmlsdGVyLnZhbHVlID0gIXJlbW92ZSA/IGhlbHBlcnMuZXNjYXBlUXVvdGVzKHZhbHVlKSA6IG51bGw7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgdGhpcy51cGRhdGVGaWx0ZXJzRnJvbVF1ZXJ5UGFyYW1zKHt9LCB0cnVlKTtcbiAgICB0aGlzLl9jbGVhcklucHV0cygpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZpbHRlcnNGcm9tUXVlcnlQYXJhbXMocXVlcnlQYXJhbXMsIGNsZWFyQWxsID0gZmFsc2UpIHtcbiAgICB0aGlzLl9mYWNldHMuZm9yRWFjaCgoeyBpZCB9KSA9PiB7XG4gICAgICBjb25zdCBzZWxlY3RlZEZpbHRlcnMgPSB0aGlzLmdldEZpbHRlcnNCeUZhY2V0SWQoaWQpO1xuICAgICAgY29uc3QgdmFsdWUgPSBxdWVyeVBhcmFtc1tpZF07XG4gICAgICBjb25zdCBpc0ludGVybmFsID0gdGhpcy5nZXRJbnB1dEJ5RmFjZXRJZChpZCkuZ2V0Q29udGV4dCgpID09PSAnaW50ZXJuYWwnO1xuXG4gICAgICBpZiAoaXNJbnRlcm5hbCAmJiAhY2xlYXJBbGwpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBzZWxlY3RlZEZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyKSA9PiB7XG4gICAgICAgIGlmIChmaWx0ZXIuaXNBcnJheSkge1xuICAgICAgICAgIGZpbHRlci52YWx1ZSA9IHZhbHVlID8gdmFsdWUuc3BsaXQoJywnKSA6IFtdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGZpbHRlci52YWx1ZSA9IHZhbHVlIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUlucHV0c0Zyb21GaWx0ZXJzKCkge1xuICAgIHRoaXMuX2ZpbHRlcnMuZm9yRWFjaCgoeyBmYWNldElkLCB2YWx1ZSB9KSA9PiB7XG4gICAgICB0aGlzLmdldElucHV0QnlGYWNldElkKGZhY2V0SWQpLnNldEFjdGl2ZSh2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmFjZXRzKGZhY2V0cykge1xuICAgIGZhY2V0cy5mb3JFYWNoKCh7IGlkLCBkYXRhIH0pID0+IHRoaXMudXBkYXRlRmFjZXQoaWQsIGRhdGEpKTtcbiAgICB0aGlzLl9zZXRJbnB1dHNEYXRhKCk7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlVG90YWxDb3VudCh0b3RhbENvdW50KSB7XG4gICAgdGhpcy5fdG90YWxDb3VudCA9IHRvdGFsQ291bnQ7XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlRmFjZXQoZmFjZXRJZCwgZGF0YSkge1xuICAgIGNvbnN0IHNlbGVjdGVkRmFjZXRzID0gdGhpcy5fZmFjZXRzLmZpbHRlcigoZmFjZXQpID0+IGZhY2V0LmlkID09PSBmYWNldElkKTtcbiAgICBpZiAoIXNlbGVjdGVkRmFjZXRzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgRXJyb3IoYEZhY2V0IHdpdGggaWQgJyR7ZmFjZXRJZH0nIGRvZXMgbm90IGV4aXN0c2ApO1xuICAgIH1cblxuICAgIHNlbGVjdGVkRmFjZXRzLmZvckVhY2goKGZhY2V0KSA9PiB7IGZhY2V0LmRhdGEgPSBkYXRhOyB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldCgpIHtcbiAgICB0aGlzLl9maWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4geyBmaWx0ZXIudmFsdWUgPSBudWxsOyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRSZXF1ZXN0UGFyYW1zKCkge1xuICAgIHJldHVybiB7XG4gICAgICBmYWNldHM6IHRoaXMuX2dldFJlcXVlc3RGYWNldHMoKSxcbiAgICAgIHBhZ2U6IHRoaXMuX3BhZ2UsXG4gICAgICByZXN1bHRzOiB0aGlzLl9jb25maWcucmVzdWx0cyxcbiAgICAgIGZpbHRlcnM6IHRoaXMuX2ZpbHRlcnNcbiAgICAgICAgLmZpbHRlcigoZmlsdGVyKSA9PiBmaWx0ZXIuY29udGV4dCAhPT0gJ2ludGVybmFsJylcbiAgICAgICAgLm1hcCgoe1xuICAgICAgICAgIGZhY2V0SWQsIHZhbHVlLCBzZWFyY2hJbiwgcGFnaW5hdGlvblxuICAgICAgICB9KSA9PiAocGFnaW5hdGlvbiA/IHtcbiAgICAgICAgICBmYWNldElkLCB2YWx1ZSwgc2VhcmNoSW4sIHBhZ2luYXRpb25cbiAgICAgICAgfSA6IHtcbiAgICAgICAgICBmYWNldElkLCB2YWx1ZSwgc2VhcmNoSW5cbiAgICAgICAgfSkpLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgZ2V0SW50ZXJuYWxGaWx0ZXJzKCkge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzXG4gICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IChcbiAgICAgICAgZmlsdGVyLmNvbnRleHQgPT09ICdpbnRlcm5hbCdcbiAgICAgICAgJiYgIV9pc0VtcHR5KGZpbHRlci52YWx1ZSlcbiAgICAgICkpXG4gICAgICAubWFwKCh7XG4gICAgICAgIGZhY2V0SWQsIHZhbHVlLCBzZWFyY2hJblxuICAgICAgfSkgPT4gKHtcbiAgICAgICAgZmFjZXRJZCwgdmFsdWUsIHNlYXJjaEluXG4gICAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyc0FzUXVlcnlQYXJhbXMoZmlsdGVycykge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBhbnkgPSB7fTtcbiAgICBmaWx0ZXJzLmZvckVhY2goXG4gICAgICAoZmlsdGVyKSA9PiB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zW2ZpbHRlci5mYWNldElkXSA9IEFycmF5LmlzQXJyYXkoZmlsdGVyLnZhbHVlKVxuICAgICAgICAgID8gZmlsdGVyLnZhbHVlLmpvaW4oJywnKVxuICAgICAgICAgIDogZmlsdGVyLnZhbHVlO1xuICAgICAgfSxcbiAgICApO1xuXG4gICAgcmV0dXJuIHF1ZXJ5UGFyYW1zO1xuICB9XG5cbiAgcHVibGljIGdldEZpbHRlcnNCeUZhY2V0SWQoZmFjZXRJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5mYWNldElkID09PSBmYWNldElkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRJbnB1dEJ5RmFjZXRJZChmYWNldElkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXRzLmZpbHRlcigoaW5wdXQpID0+IGlucHV0LmdldEZhY2V0SWQoKSA9PT0gZmFjZXRJZClbMF07XG4gIH1cblxuICBwdWJsaWMgc2V0SW5wdXREYXRhKGZhY2V0SWQsIGRhdGEpIHtcbiAgICB0aGlzLmdldElucHV0QnlGYWNldElkKGZhY2V0SWQpLnNldERhdGEoZGF0YSk7XG4gIH1cblxuICBwdWJsaWMgZmlsdGVyVGFyZ2V0KHRhcmdldCkge1xuICAgIGNvbnN0IGlucHV0cyA9IHRoaXMuX2lucHV0cy5maWx0ZXIoKGlucHV0KSA9PiBpbnB1dC5nZXRUYXJnZXQoKSA9PT0gdGFyZ2V0KTtcbiAgICBjb25zdCB0YXJnZXRJbnB1dCA9IHRoaXMuZ2V0SW5wdXRCeUZhY2V0SWQodGFyZ2V0KTtcbiAgICBjb25zdCBmYWNldCA9IHRoaXMuX2ZhY2V0cy5maWx0ZXIoKGYpID0+IGYuaWQgPT09IHRhcmdldClbMF07XG4gICAgY29uc3QgZmFjZXREYXRhID0gZmFjZXQuZGF0YTtcblxuICAgIGNvbnN0IHNlYXJjaElucyA9IFtdO1xuICAgIGlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5nZXRGaWx0ZXJzQnlGYWNldElkKGlucHV0LmdldEZhY2V0SWQoKSlbMF07XG4gICAgICBjb25zdCBzZWFyY2hJbiA9IGlucHV0LmdldFNlYXJjaEluKCk7XG4gICAgICBjb25zdCB7IHZhbHVlIH0gPSBmaWx0ZXI7XG5cbiAgICAgIHNlYXJjaElucy5wdXNoKFtzZWFyY2hJbiwgdmFsdWVdKTtcbiAgICB9KTtcblxuICAgIC8vIGZpbHRlclxuICAgIGZhY2V0RGF0YS5mb3JFYWNoKChpdGVtKSA9PiB0aGlzLl9maWx0ZXJEYXRhKHNlYXJjaElucywgaXRlbSkpO1xuXG4gICAgLy8gdXBkYXRlXG4gICAgdGFyZ2V0SW5wdXQuc2V0RGF0YShmYWNldERhdGEpO1xuXG4gICAgaWYgKHRhcmdldElucHV0LmdldENvbmZpZygpLmVtcHR5U3RhdGUpIHtcbiAgICAgIGNvbnN0IGlzRW1wdHkgPSAhZmFjZXREYXRhLmZpbHRlcigoZGF0YSkgPT4gIWRhdGEuaGlkZGVuKS5sZW5ndGg7XG4gICAgICB0YXJnZXRJbnB1dC5zZXRJc0VtcHR5KGlzRW1wdHkpO1xuICAgIH1cbiAgICB0YXJnZXRJbnB1dC51cGRhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTZWFyY2hDb25maWdPcmRlckJ5KG9yZGVyQnkpIHtcbiAgICB0aGlzLl9jb25maWcucmVzdWx0cy5vcmRlci5rZXkgPSBvcmRlckJ5O1xuICB9XG5cbiAgcHVibGljIHNldFNlYXJjaENvbmZpZ0RpcmVjdGlvbihkaXJlY3Rpb24pIHtcbiAgICB0aGlzLl9jb25maWcucmVzdWx0cy5vcmRlci5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gIH1cblxuICBwdWJsaWMgc2V0U2VhcmNoQ29uZmlnVHlwZSh0eXBlKSB7XG4gICAgdGhpcy5fY29uZmlnLnJlc3VsdHMub3JkZXIudHlwZSA9IHR5cGU7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZUNvbmZpZ09mZnNldChvZmZzZXQpIHtcbiAgICB0aGlzLl9jb25maWcucGFnZS5vZmZzZXQgPSBvZmZzZXQ7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZUNvbmZpZ0xpbWl0KGxpbWl0KSB7XG4gICAgdGhpcy5fY29uZmlnLnBhZ2UubGltaXQgPSBsaW1pdDtcbiAgfVxuXG4gIHByaXZhdGUgX2NsZWFySW5wdXRzKCkge1xuICAgIC8vIGRvIG5vdGhpbmdcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckRhdGEoc2VhcmNoSW5zLCBpdGVtKSB7XG4gICAgLy8gcmVzZXRcbiAgICBpdGVtLmhpZGRlbiA9IGZhbHNlO1xuICAgIHNlYXJjaElucy5mb3JFYWNoKChbc2VhcmNoSW4sIHZhbHVlXSkgPT4ge1xuICAgICAgc2VhcmNoSW4uZm9yRWFjaCgoeyBrZXksIG9wZXJhdG9yIH0pID0+IHtcbiAgICAgICAgaWYgKGl0ZW0uaGlkZGVuKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZWZWYWx1ZSA9IF9nZXQoaXRlbSwga2V5LCBudWxsKTtcbiAgICAgICAgaWYgKGtleS5pbmRleE9mKCdzZWFyY2hEYXRhJykgIT09IC0xICYmIEFycmF5LmlzQXJyYXkoaXRlbS5zZWFyY2hEYXRhKSkge1xuICAgICAgICAgIGNvbnN0IHNlYXJjaERhdGFLZXkgPSBrZXkucmVwbGFjZSgnc2VhcmNoRGF0YS4nLCAnJyk7XG4gICAgICAgICAgaXRlbS5zZWFyY2hEYXRhLmZvckVhY2goKHsga2V5OiBkYXRhS2V5LCB2YWx1ZTogZGF0YVZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgIGlmIChkYXRhS2V5ID09PSBzZWFyY2hEYXRhS2V5KSB7XG4gICAgICAgICAgICAgIHJlZlZhbHVlID0gZGF0YVZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWZWYWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgIGl0ZW0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmIChGSUxURVJTX01BUFtvcGVyYXRvcl0pIHtcbiAgICAgICAgICBpdGVtLmhpZGRlbiA9IHRoaXNbRklMVEVSU19NQVBbb3BlcmF0b3JdXSh2YWx1ZSwgcmVmVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnNvbGUud2FybihgU2VhcmNoSW46IG9wZXJhdG9yICR7b3BlcmF0b3J9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJEYXRhRXF1YWxzKHZhbHVlLCByZWZWYWx1ZSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlZlZhbHVlKSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIGxldCBpbkFycmF5ID0gdmFsdWUubGVuZ3RoID09PSAwO1xuICAgICAgICByZWZWYWx1ZS5mb3JFYWNoKChydikgPT4ge1xuICAgICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKHJ2KSAhPT0gLTEpIHtcbiAgICAgICAgICAgIGluQXJyYXkgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAhKGluQXJyYXkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuICEodmFsdWUgJiYgcmVmVmFsdWUuaW5kZXhPZih2YWx1ZSkgIT09IC0xKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gIShcbiAgICAgICAgIXZhbHVlLmxlbmd0aCB8fCB2YWx1ZS5pbmRleE9mKHJlZlZhbHVlKSAhPT0gLTFcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAhKHZhbHVlICYmIHZhbHVlID09PSByZWZWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJEYXRhR3JlYXRlclRoYW4odmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuICEodmFsdWUgJiYgdmFsdWUgPiByZWZWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckRhdGFMZXNzVGhhbih2YWx1ZSwgcmVmVmFsdWUpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gISh2YWx1ZSAmJiB2YWx1ZSA8IHJlZlZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRGF0YUdyZWF0ZXJPckVxdWFscyh2YWx1ZSwgcmVmVmFsdWUpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICByZXR1cm4gISh2YWx1ZSAmJiB2YWx1ZSA+PSByZWZWYWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2ZpbHRlckRhdGFMZXNzT3JFcXVhbHModmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuICEodmFsdWUgJiYgdmFsdWUgPD0gcmVmVmFsdWUpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9maWx0ZXJEYXRhTm90RXF1YWwodmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgcmV0dXJuICEodmFsdWUgJiYgdmFsdWUgIT09IHJlZlZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZmlsdGVyRGF0YUxpa2UodmFsdWUsIHJlZlZhbHVlKSB7XG4gICAgaWYgKFxuICAgICAgdmFsdWVcbiAgICAgICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgICYmIHR5cGVvZiByZWZWYWx1ZSA9PT0gJ3N0cmluZydcbiAgICApIHtcbiAgICAgIGNvbnN0IGhheXN0YWNrID0gcmVmVmFsdWUudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNvbnN0IG5lZWRsZSA9IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgICAgIHJldHVybiAhKGhheXN0YWNrLmluZGV4T2YobmVlZGxlKSAhPT0gLTEpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGaWx0ZXJzKCkge1xuICAgIHRoaXMuX2NvbmZpZy5maWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgIGZpZWxkLmlucHV0cy5mb3JFYWNoKChpbnB1dCkgPT4gdGhpcy5fZmlsdGVycy5wdXNoKHtcbiAgICAgICAgLi4uaW5wdXQuZmlsdGVyQ29uZmlnLFxuICAgICAgICBmYWNldElkOiBpbnB1dC5mYWNldElkLFxuICAgICAgICB2YWx1ZTogaW5wdXQuZmlsdGVyQ29uZmlnLmlzQXJyYXkgPyBbXSA6IG51bGwsXG4gICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGYWNldHMoKSB7XG4gICAgdGhpcy5fZmFjZXRzID0gdGhpcy5fY29uZmlnLmZhY2V0cztcbiAgfVxuXG4gIHByaXZhdGUgX3NldFBhZ2UoKSB7XG4gICAgdGhpcy5fcGFnZSA9IHRoaXMuX2NvbmZpZy5wYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0VG90YWxDb3VudCgpIHtcbiAgICB0aGlzLl90b3RhbENvdW50ID0gdGhpcy5fY29uZmlnLnRvdGFsQ291bnQ7XG4gIH1cblxuICBwcml2YXRlIF9zZXRJbnB1dHMoKSB7XG4gICAgdGhpcy5fY29uZmlnLmZpZWxkcy5mb3JFYWNoKChzZWN0aW9uQ29uZmlnLCBzZWN0aW9uSW5kZXgpID0+IHtcbiAgICAgIHNlY3Rpb25Db25maWcuaW5wdXRzLmZvckVhY2goKGlucHV0Q29uZmlnLCBpbnB1dEluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IElucHV0TW9kZWwgPSBJTlBVVFNfTUFQW2lucHV0Q29uZmlnLnR5cGVdO1xuICAgICAgICBpZiAoIUlucHV0TW9kZWwpIHtcbiAgICAgICAgICB0aHJvdyBFcnJvcihgSW5wdXQgdHlwZSAke2lucHV0Q29uZmlnLnR5cGV9IG5vdCBzdXBwb3J0ZWRgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2lucHV0cy5wdXNoKFxuICAgICAgICAgIG5ldyBJbnB1dE1vZGVsKHsgLi4uaW5wdXRDb25maWcsIGlucHV0SW5kZXgsIHNlY3Rpb25JbmRleCB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0SW5wdXRzRGF0YSgpIHtcbiAgICB0aGlzLl9mYWNldHMuZm9yRWFjaCgoZmFjZXQpID0+IHRoaXMuc2V0SW5wdXREYXRhKGZhY2V0LmlkLCBmYWNldC5kYXRhKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRSZXF1ZXN0RmFjZXRzKCkge1xuICAgIGNvbnN0IHJlc3VsdHM6IEZhY2V0W10gPSBbXTtcbiAgICB0aGlzLl9mYWNldHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZmFjZXRDb25maWcgPSB7IC4uLmYgfTtcbiAgICAgIGlmICghZi5oYXNTdGF0aWNEYXRhKSB7XG4gICAgICAgIGRlbGV0ZSBmYWNldENvbmZpZy5kYXRhO1xuICAgICAgfVxuICAgICAgZGVsZXRlIGZhY2V0Q29uZmlnLmhhc1N0YXRpY0RhdGE7XG5cbiAgICAgIC8vIHNlYXJjaERhdGEgY29udHJvbFxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmFjZXRDb25maWcuZGF0YSkpIHtcbiAgICAgICAgZmFjZXRDb25maWcuZGF0YVxuICAgICAgICAgIC5maWx0ZXIoKGRhdGFJdGVtKSA9PiB0eXBlb2YgZGF0YUl0ZW0uc2VhcmNoRGF0YSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgLmZvckVhY2goKGRhdGFJdGVtKSA9PiB7XG4gICAgICAgICAgICBkZWxldGUgZGF0YUl0ZW0uc2VhcmNoRGF0YTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJlc3VsdHMucHVzaChmYWNldENvbmZpZyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdHM7XG4gIH1cbn1cbiJdfQ==