@universis/ngx-tables 6.0.0 → 15.0.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 (163) hide show
  1. package/esm2020/lib/actions/table.actions.mjs +27 -0
  2. package/esm2020/lib/advanced-aggregator.mjs +2 -0
  3. package/esm2020/lib/components/add-items/add-items.component.mjs +138 -0
  4. package/esm2020/lib/components/advanced-aggregator/advanced-aggregator.component.mjs +126 -0
  5. package/esm2020/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.mjs +53 -0
  6. package/esm2020/lib/components/advanced-list/advanced-list.component.mjs +184 -0
  7. package/esm2020/lib/components/advanced-row-action/advanced-row-action.component.mjs +178 -0
  8. package/esm2020/lib/components/advanced-search-form/advanced-search-form.component.mjs +154 -0
  9. package/esm2020/lib/components/advanced-select/advanced-select.component.mjs +42 -0
  10. package/esm2020/lib/components/advanced-select/advanced-select.service.mjs +38 -0
  11. package/esm2020/lib/components/advanced-table/advanced-filter-value-provider.service.mjs +31 -0
  12. package/esm2020/lib/components/advanced-table/advanced-table-resolvers.mjs +40 -0
  13. package/esm2020/lib/components/advanced-table/advanced-table-search-base.mjs +31 -0
  14. package/esm2020/lib/components/advanced-table/advanced-table-search.component.mjs +525 -0
  15. package/esm2020/lib/components/advanced-table/advanced-table-settings.component.mjs +108 -0
  16. package/esm2020/lib/components/advanced-table/advanced-table.component.mjs +1599 -0
  17. package/esm2020/lib/components/advanced-table/advanced-table.formatters.interface.mjs +17 -0
  18. package/esm2020/lib/components/advanced-table/advanced-table.formatters.mjs +429 -0
  19. package/esm2020/lib/components/advanced-table/advanced-table.interfaces.mjs +2 -0
  20. package/esm2020/lib/components/advanced-table-modal/advanced-table-modal-base.component.mjs +420 -0
  21. package/esm2020/lib/components/column-selector/column-selector.component.mjs +205 -0
  22. package/esm2020/lib/components/column-selector/column-selector.service.mjs +45 -0
  23. package/esm2020/lib/components/table-simple-header/table-simple-header.component.mjs +52 -0
  24. package/esm2020/lib/directives/advance-search-state.directive.mjs +111 -0
  25. package/esm2020/lib/directives/advance-table-state.directive.mjs +63 -0
  26. package/esm2020/lib/directives/advanced-search-router-state.directive.mjs +64 -0
  27. package/esm2020/lib/directives/advanced-table-editor.directive.mjs +154 -0
  28. package/esm2020/lib/directives/btnexp.directive.mjs +222 -0
  29. package/esm2020/lib/i18n/tables.el.mjs +129 -0
  30. package/esm2020/lib/i18n/tables.en.mjs +128 -0
  31. package/esm2020/lib/pipes/advanced-aggregator.pipe.mjs +38 -0
  32. package/esm2020/lib/pipes/advansed-aggregator-list-title-parse.pipe.mjs +45 -0
  33. package/esm2020/lib/reducers/index.mjs +37 -0
  34. package/esm2020/lib/services/advanced-aggregator/advanced-aggregator.service.mjs +119 -0
  35. package/esm2020/lib/tables.activated-table.service.mjs +46 -0
  36. package/esm2020/lib/tables.module.mjs +218 -0
  37. package/esm2020/public_api.mjs +37 -0
  38. package/esm2020/universis-ngx-tables.mjs +5 -0
  39. package/fesm2015/universis-ngx-tables.mjs +5642 -0
  40. package/fesm2015/universis-ngx-tables.mjs.map +1 -0
  41. package/fesm2020/universis-ngx-tables.mjs +5609 -0
  42. package/fesm2020/universis-ngx-tables.mjs.map +1 -0
  43. package/index.d.ts +5 -0
  44. package/lib/actions/table.actions.d.ts +4 -4
  45. package/lib/components/add-items/add-items.component.d.ts +5 -5
  46. package/lib/components/advanced-aggregator/advanced-aggregator.component.d.ts +10 -4
  47. package/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.d.ts +4 -1
  48. package/lib/components/advanced-list/advanced-list.component.d.ts +6 -3
  49. package/lib/components/advanced-row-action/advanced-row-action.component.d.ts +9 -7
  50. package/lib/components/advanced-search-form/advanced-search-form.component.d.ts +4 -1
  51. package/lib/components/advanced-select/advanced-select.component.d.ts +3 -1
  52. package/lib/components/advanced-select/advanced-select.service.d.ts +3 -0
  53. package/lib/components/advanced-table/advanced-filter-value-provider.service.d.ts +3 -0
  54. package/lib/components/advanced-table/advanced-table-resolvers.d.ts +5 -0
  55. package/lib/components/advanced-table/advanced-table-search-base.d.ts +6 -2
  56. package/lib/components/advanced-table/advanced-table-search.component.d.ts +6 -2
  57. package/lib/components/advanced-table/advanced-table-settings.component.d.ts +3 -0
  58. package/lib/components/advanced-table/advanced-table.component.d.ts +21 -12
  59. package/lib/components/advanced-table-modal/advanced-table-modal-base.component.d.ts +4 -1
  60. package/lib/components/column-selector/column-selector.component.d.ts +5 -2
  61. package/lib/components/column-selector/column-selector.service.d.ts +3 -0
  62. package/lib/components/table-simple-header/table-simple-header.component.d.ts +5 -0
  63. package/lib/directives/advance-search-state.directive.d.ts +3 -0
  64. package/lib/directives/advance-table-state.directive.d.ts +3 -0
  65. package/lib/directives/advanced-search-router-state.directive.d.ts +3 -0
  66. package/lib/directives/advanced-table-editor.directive.d.ts +4 -1
  67. package/lib/directives/btnexp.directive.d.ts +3 -0
  68. package/lib/i18n/tables.el.d.ts +107 -107
  69. package/lib/i18n/tables.en.d.ts +106 -106
  70. package/lib/pipes/advanced-aggregator.pipe.d.ts +4 -1
  71. package/lib/pipes/advansed-aggregator-list-title-parse.pipe.d.ts +4 -1
  72. package/lib/reducers/index.d.ts +5 -3
  73. package/lib/services/advanced-aggregator/advanced-aggregator.service.d.ts +3 -0
  74. package/lib/tables.activated-table.service.d.ts +5 -1
  75. package/lib/tables.module.d.ts +36 -0
  76. package/package.json +44 -42
  77. package/public_api.d.ts +3 -0
  78. package/bundles/universis-ngx-tables.umd.js +0 -8161
  79. package/bundles/universis-ngx-tables.umd.js.map +0 -1
  80. package/bundles/universis-ngx-tables.umd.min.js +0 -2
  81. package/bundles/universis-ngx-tables.umd.min.js.map +0 -1
  82. package/esm2015/lib/actions/table.actions.js +0 -69
  83. package/esm2015/lib/advanced-aggregator.js +0 -6
  84. package/esm2015/lib/components/add-items/add-items.component.js +0 -209
  85. package/esm2015/lib/components/advanced-aggregator/advanced-aggregator.component.js +0 -190
  86. package/esm2015/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +0 -80
  87. package/esm2015/lib/components/advanced-list/advanced-list.component.js +0 -245
  88. package/esm2015/lib/components/advanced-row-action/advanced-row-action.component.js +0 -265
  89. package/esm2015/lib/components/advanced-search-form/advanced-search-form.component.js +0 -213
  90. package/esm2015/lib/components/advanced-select/advanced-select.component.js +0 -97
  91. package/esm2015/lib/components/advanced-select/advanced-select.service.js +0 -57
  92. package/esm2015/lib/components/advanced-table/advanced-filter-value-provider.service.js +0 -58
  93. package/esm2015/lib/components/advanced-table/advanced-table-resolvers.js +0 -72
  94. package/esm2015/lib/components/advanced-table/advanced-table-search-base.js +0 -49
  95. package/esm2015/lib/components/advanced-table/advanced-table-search.component.js +0 -718
  96. package/esm2015/lib/components/advanced-table/advanced-table-settings.component.js +0 -191
  97. package/esm2015/lib/components/advanced-table/advanced-table.component.js +0 -1973
  98. package/esm2015/lib/components/advanced-table/advanced-table.formatters.interface.js +0 -53
  99. package/esm2015/lib/components/advanced-table/advanced-table.formatters.js +0 -642
  100. package/esm2015/lib/components/advanced-table/advanced-table.interfaces.js +0 -6
  101. package/esm2015/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +0 -553
  102. package/esm2015/lib/components/column-selector/column-selector.component.js +0 -296
  103. package/esm2015/lib/components/column-selector/column-selector.service.js +0 -64
  104. package/esm2015/lib/components/table-simple-header/table-simple-header.component.js +0 -76
  105. package/esm2015/lib/directives/advance-search-state.directive.js +0 -147
  106. package/esm2015/lib/directives/advance-table-state.directive.js +0 -86
  107. package/esm2015/lib/directives/advanced-search-router-state.directive.js +0 -90
  108. package/esm2015/lib/directives/advanced-table-editor.directive.js +0 -186
  109. package/esm2015/lib/directives/btnexp.directive.js +0 -272
  110. package/esm2015/lib/i18n/tables.el.js +0 -133
  111. package/esm2015/lib/i18n/tables.en.js +0 -132
  112. package/esm2015/lib/pipes/advanced-aggregator.pipe.js +0 -39
  113. package/esm2015/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +0 -58
  114. package/esm2015/lib/reducers/index.js +0 -63
  115. package/esm2015/lib/services/advanced-aggregator/advanced-aggregator.service.js +0 -142
  116. package/esm2015/lib/tables.activated-table.service.js +0 -85
  117. package/esm2015/lib/tables.module.js +0 -163
  118. package/esm2015/public_api.js +0 -37
  119. package/esm2015/universis-ngx-tables.js +0 -13
  120. package/esm5/lib/actions/table.actions.js +0 -64
  121. package/esm5/lib/advanced-aggregator.js +0 -6
  122. package/esm5/lib/components/add-items/add-items.component.js +0 -243
  123. package/esm5/lib/components/advanced-aggregator/advanced-aggregator.component.js +0 -265
  124. package/esm5/lib/components/advanced-aggregator-list/advanced-aggregator-list.component.js +0 -99
  125. package/esm5/lib/components/advanced-list/advanced-list.component.js +0 -273
  126. package/esm5/lib/components/advanced-row-action/advanced-row-action.component.js +0 -288
  127. package/esm5/lib/components/advanced-search-form/advanced-search-form.component.js +0 -232
  128. package/esm5/lib/components/advanced-select/advanced-select.component.js +0 -103
  129. package/esm5/lib/components/advanced-select/advanced-select.service.js +0 -61
  130. package/esm5/lib/components/advanced-table/advanced-filter-value-provider.service.js +0 -82
  131. package/esm5/lib/components/advanced-table/advanced-table-resolvers.js +0 -80
  132. package/esm5/lib/components/advanced-table/advanced-table-search-base.js +0 -59
  133. package/esm5/lib/components/advanced-table/advanced-table-search.component.js +0 -828
  134. package/esm5/lib/components/advanced-table/advanced-table-settings.component.js +0 -212
  135. package/esm5/lib/components/advanced-table/advanced-table.component.js +0 -2145
  136. package/esm5/lib/components/advanced-table/advanced-table.formatters.interface.js +0 -53
  137. package/esm5/lib/components/advanced-table/advanced-table.formatters.js +0 -815
  138. package/esm5/lib/components/advanced-table/advanced-table.interfaces.js +0 -6
  139. package/esm5/lib/components/advanced-table-modal/advanced-table-modal-base.component.js +0 -555
  140. package/esm5/lib/components/column-selector/column-selector.component.js +0 -389
  141. package/esm5/lib/components/column-selector/column-selector.service.js +0 -68
  142. package/esm5/lib/components/table-simple-header/table-simple-header.component.js +0 -92
  143. package/esm5/lib/directives/advance-search-state.directive.js +0 -169
  144. package/esm5/lib/directives/advance-table-state.directive.js +0 -87
  145. package/esm5/lib/directives/advanced-search-router-state.directive.js +0 -98
  146. package/esm5/lib/directives/advanced-table-editor.directive.js +0 -244
  147. package/esm5/lib/directives/btnexp.directive.js +0 -389
  148. package/esm5/lib/i18n/tables.el.js +0 -133
  149. package/esm5/lib/i18n/tables.en.js +0 -132
  150. package/esm5/lib/pipes/advanced-aggregator.pipe.js +0 -65
  151. package/esm5/lib/pipes/advansed-aggregator-list-title-parse.pipe.js +0 -75
  152. package/esm5/lib/reducers/index.js +0 -65
  153. package/esm5/lib/services/advanced-aggregator/advanced-aggregator.service.js +0 -196
  154. package/esm5/lib/tables.activated-table.service.js +0 -88
  155. package/esm5/lib/tables.module.js +0 -168
  156. package/esm5/public_api.js +0 -37
  157. package/esm5/universis-ngx-tables.js +0 -13
  158. package/fesm2015/universis-ngx-tables.js +0 -6745
  159. package/fesm2015/universis-ngx-tables.js.map +0 -1
  160. package/fesm5/universis-ngx-tables.js +0 -7837
  161. package/fesm5/universis-ngx-tables.js.map +0 -1
  162. package/universis-ngx-tables.d.ts +0 -8
  163. package/universis-ngx-tables.metadata.json +0 -1
@@ -0,0 +1,129 @@
1
+ // tslint:disable: quotemark
2
+ // tslint:disable: max-line-length
3
+ export const TABLES_EL = {
4
+ "Tables": {
5
+ "Export": "Εξαγωγή",
6
+ "More": "Περισσότερα",
7
+ "Search": "Αναζήτηση",
8
+ "SearchPlaceholder": "Αναζήτηση...",
9
+ "GroupBy": "Ομαδοποίηση ανά",
10
+ "NotDefined": "Μη προσδιορισμένο",
11
+ "DataTable": {
12
+ "paginate": {
13
+ "first": "Πρώτη σελίδα",
14
+ "last": "Τελεταία σελίδα",
15
+ "next": "Επόμενη",
16
+ "previous": "Προηγούμενη"
17
+ },
18
+ "info": "Εμφάνιση _START_ έως _END_ από _TOTAL_ εγγραφές",
19
+ "infoEmpty": "Δεν βρέθηκαν εγγραφές",
20
+ "loading": "Εμφάνιση δεδομένων...",
21
+ "processing": "Παραλαβή δεδομένων...",
22
+ "emptyTable": "Δεν βρέθηκαν αποτελέσματα."
23
+ },
24
+ "ColumnDisplay": "Επιλογή Εμφάνισης στηλών",
25
+ "ColumnDisplayInfo": "Επιλέξτε τις στήλες που θέλετε να εμφανίζονται.",
26
+ "Save": "Εφαρμογή",
27
+ "Apply": "Εφαρμογή",
28
+ "Cancel": "Ακύρωση",
29
+ "RecordsPerPage": "Εγγραφές ανά σελίδα",
30
+ "PageInfo": "{{start}}-{{end}} από {{recordsTotal}}",
31
+ "SearchListPlaceholder": "Αναζητήστε στη λίστα...",
32
+ "Filters": "Φίλτρα",
33
+ "All": "Όλα",
34
+ "AddItem": "Προσθήκη στοιχείου",
35
+ "EmptyTableTitle": "Δεν βρέθηκαν αποτελέσματα.",
36
+ "EmptyTableMessage": "Προσπαθήστε να χρησιμοποιήσετε άλλες λέξεις κλειδιά.",
37
+ "RemoveItem": "Διαγραφή στοιχείου",
38
+ "Items": "στοιχεία",
39
+ "Item": "στοιχείο",
40
+ "AddItemMessage": {
41
+ "title": "Προσθήκη στοιχείων",
42
+ "one": "Ένα νέο στοιχείο προστέθηκε με επιτυχία.",
43
+ "many": "{{value}} νέα στοιχεία προστέθηκαν με επιτυχία."
44
+ },
45
+ "RemoveItemMessage": {
46
+ "title": "Αφαίρεση στοιχείων",
47
+ "one": "Ένα στοιχείο αφαιρέθηκε με επιτυχία.",
48
+ "many": "{{value}} στοιχεία αφαιρέθηκαν με επιτυχία."
49
+ },
50
+ "RemoveItemsTitle": "Διαγραφή στοιχείου",
51
+ "RemoveItemsMessage": "Πρόκειται να διαγράψετε ένα ή περισσότερα στοιχεία. Θέλετε να προχωρήσετε?",
52
+ "SelectAll": "Επιλογή όλων",
53
+ "ClearSelection": "Αναίρεση επιλογής",
54
+ "Actions": {
55
+ "Label": "Επεξεργασία",
56
+ "Start": "Έναρξη",
57
+ "ActionMessage": {
58
+ "None": "Δεν έχετε επιλέξει κανένα στοιχείο που να ακολουθεί τις προϋποθέσεις της ενέργειας.",
59
+ "One": "Έχετε επιλέξει ένα στοιχείο που ακολουθεί τις προϋποθέσεις της ενέργειας. Πατήστε το πλήκτρο Έναρξη για να ξεκινήσει η διαδικασία.",
60
+ "Many": "Έχετε επιλέξει {{length}} στοιχεία που ακολουθούν τις προϋποθέσεις της ενέργειας. Πατήστε το πλήκτρο Έναρξη για να ξεκινήσει η διαδικασία."
61
+ },
62
+ "CompletedWithErrors": {
63
+ "Title": "Η διαδικασία ολοκληρώθηκε με σφάλματα.",
64
+ "Description": {
65
+ "One": "Ένα στοιχείο δεν ανανεώθηκε λόγω ενός σφάλματος που συνέβη κατά την εκτέλεση της διαδικασίας.",
66
+ "Many": "{{errors}} στοιχεία δεν ανανεώθηκαν λόγω ενός σφάλματος που συνέβη κατά την εκτέλεση της διαδικασίας."
67
+ }
68
+ },
69
+ "CompletedWithSuccess": {
70
+ "Title": "Η διαδικασία ολοκληρώθηκε με επιτυχία."
71
+ }
72
+ },
73
+ "SelectColumns": "Επιλογή στηλών",
74
+ "MoveUp": "Επάνω",
75
+ "MoveDown": "Κάτω",
76
+ "AddColumn": "Επιλογή",
77
+ "RemoveColumn": "Αφαίρεση",
78
+ "SelectColumnHelp": "Επιλέξτε μία ή περισσότερες από τις διαθέσιμες στήλες και πατήστε το πλήκτρο 'Επιλογή' για να τις εμφανίσετε. Χρησιμοποιήστε το πλήκτρο 'Αφαίρεση' για να αφαιρέσετε τις επιλεγμένες στήλες.",
79
+ "MoveColumnHelp": "Χρησιμοποιήστε τα πλήκτρα 'Επάνω' και 'Κάτω' για να αλλάξετε την σειρά εμφάνισης των στηλών του πίνακα.",
80
+ "UnknownColumn": "Άγνωστο",
81
+ "SelectColumn": "Επιλογή",
82
+ "ActionLinkColumn": "Ενέργειες",
83
+ "DataError": {
84
+ "Title": "Σφάλμα κατά την παραλαβή των δεδομένων",
85
+ "Message": "Συνέβη σφάλμα κατά την παραλαβή των δεδομένων. Προσπαθήστε ξανά ή τροποποιήστε τα στοιχεία αναζήτησης."
86
+ },
87
+ "ExportList": "Εξαγωγή λίστας",
88
+ "ExportLimitExceeded": "Το πλήθος των στοιχείων προς εξαγωγή ({{dataLength}}) ξεπερνάει το μέγιστο επιτρεπτό ({{exportLimit}}). Παρακαλούμε προσαρμόστε τα φίλτρα της αναζήτησης και προσπαθήστε ξανά.",
89
+ "ExportResults": "Δεδομένα λίστας"
90
+ },
91
+ "TrueFalse": {
92
+ "long": {
93
+ "Yes": "Ναι",
94
+ "No": "Όχι"
95
+ }
96
+ },
97
+ "Settings": {
98
+ "OperationCompleted": "Η διαδικασία ολοκληρώθηκε με επιτυχία."
99
+ },
100
+ "AdvancedSearch": {
101
+ "Choose": "<Επιλέξτε μια αναζήτηση>",
102
+ "ChooseDate": "Επιλογή ημερομηνίας",
103
+ "SavedSearches": "Αποθηκευμένες αναζητήσεις",
104
+ "ToggleDropdown": "Εμφάνιση λίστας",
105
+ "SaveCurrentSearch": "Αποθήκευση αναζήτησης",
106
+ "SaveAs": "Αποθήκευση ως",
107
+ "Save": "Αποθήκευση",
108
+ "Delete": "Διαγραφή",
109
+ "More": "Περισσότερα",
110
+ "Less": "Λιγότερα",
111
+ "Modal": {
112
+ "Title": "Αποθήκευση κριτηρίων αναζήτησης",
113
+ "Help": "Ορίστε έναν τίτλο για τα επιλεγμένα κριτήρια αναζήτησης. Αυτός ο τίτλος θα σας βοηθήσει να τα χρησιμοποιήσετε ξανά στο μέλλον.",
114
+ "TitleOnUserError": "Παρακαλώ εισάγετε έναν τίτλο",
115
+ "TitleOnListAlreadyCreated": "Το όνομα αυτό χρησιμοποιείται ήδη. Διαλέξτε ένα διαφορετικό.",
116
+ "NoListDefined": "Δεν έχει οριστεί το σημείο αποθήκευσης της λίστας",
117
+ "EmptyCriteriaList": "Δεν έχετε καθορίσει κανένα κριτήριο για αποθήκευση",
118
+ "SaveNameLabel": "Ονομασία λίστας",
119
+ "SaveNamePlaceholder": "Εισάγετε έναν τίτλο",
120
+ "Accept": "Αποθήκευση",
121
+ "Decline": "Απόρριψη",
122
+ "Close": "Κλείσιμο"
123
+ }
124
+ },
125
+ "AddItems": {
126
+ "SelectItems": "Επιλέξτε στοιχεία",
127
+ }
128
+ };
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLmVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9pMThuL3RhYmxlcy5lbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixRQUFRLEVBQUU7UUFDTixRQUFRLEVBQUUsU0FBUztRQUNuQixNQUFNLEVBQUUsYUFBYTtRQUNyQixRQUFRLEVBQUUsV0FBVztRQUNyQixtQkFBbUIsRUFBRSxjQUFjO1FBQ25DLFNBQVMsRUFBRSxpQkFBaUI7UUFDNUIsWUFBWSxFQUFFLG1CQUFtQjtRQUNqQyxXQUFXLEVBQUU7WUFDVCxVQUFVLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLGNBQWM7Z0JBQ3ZCLE1BQU0sRUFBRSxpQkFBaUI7Z0JBQ3pCLE1BQU0sRUFBRSxTQUFTO2dCQUNqQixVQUFVLEVBQUUsYUFBYTthQUM1QjtZQUNELE1BQU0sRUFBRSxpREFBaUQ7WUFDekQsV0FBVyxFQUFFLHVCQUF1QjtZQUNwQyxTQUFTLEVBQUUsdUJBQXVCO1lBQ2xDLFlBQVksRUFBRSx1QkFBdUI7WUFDckMsWUFBWSxFQUFFLDRCQUE0QjtTQUM3QztRQUNILGVBQWUsRUFBRSwwQkFBMEI7UUFDM0MsbUJBQW1CLEVBQUUsaURBQWlEO1FBQ3RFLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLE9BQU8sRUFBRSxVQUFVO1FBQ25CLFFBQVEsRUFBRSxTQUFTO1FBQ25CLGdCQUFnQixFQUFFLHFCQUFxQjtRQUN2QyxVQUFVLEVBQUUsd0NBQXdDO1FBQ3BELHVCQUF1QixFQUFFLHlCQUF5QjtRQUNsRCxTQUFTLEVBQUUsUUFBUTtRQUNuQixLQUFLLEVBQUUsS0FBSztRQUNWLFNBQVMsRUFBRSxvQkFBb0I7UUFDL0IsaUJBQWlCLEVBQUUsNEJBQTRCO1FBQy9DLG1CQUFtQixFQUFFLHNEQUFzRDtRQUMzRSxZQUFZLEVBQUUsb0JBQW9CO1FBQ2xDLE9BQU8sRUFBRSxVQUFVO1FBQ25CLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLGdCQUFnQixFQUFFO1lBQ2QsT0FBTyxFQUFFLG9CQUFvQjtZQUM3QixLQUFLLEVBQUUsMENBQTBDO1lBQ2pELE1BQU0sRUFBRSxpREFBaUQ7U0FDMUQ7UUFDSCxtQkFBbUIsRUFBRTtZQUNqQixPQUFPLEVBQUUsb0JBQW9CO1lBQzdCLEtBQUssRUFBRSxzQ0FBc0M7WUFDN0MsTUFBTSxFQUFFLDZDQUE2QztTQUN4RDtRQUNELGtCQUFrQixFQUFFLG9CQUFvQjtRQUN4QyxvQkFBb0IsRUFBRSw0RUFBNEU7UUFDbEcsV0FBVyxFQUFFLGNBQWM7UUFDM0IsZ0JBQWdCLEVBQUUsbUJBQW1CO1FBQ3ZDLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRSxhQUFhO1lBQ3RCLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUscUZBQXFGO2dCQUM3RixLQUFLLEVBQUUsb0lBQW9JO2dCQUMzSSxNQUFNLEVBQUUsNElBQTRJO2FBQ3JKO1lBQ0QscUJBQXFCLEVBQUU7Z0JBQ3JCLE9BQU8sRUFBRSx3Q0FBd0M7Z0JBQ2pELGFBQWEsRUFBRTtvQkFDYixLQUFLLEVBQUUsK0ZBQStGO29CQUN0RyxNQUFNLEVBQUUsdUdBQXVHO2lCQUNoSDthQUNGO1lBQ0Qsc0JBQXNCLEVBQUU7Z0JBQ3RCLE9BQU8sRUFBRSx3Q0FBd0M7YUFDbEQ7U0FDRjtRQUNELGVBQWUsRUFBRSxnQkFBZ0I7UUFDakMsUUFBUSxFQUFFLE9BQU87UUFDakIsVUFBVSxFQUFFLE1BQU07UUFDbEIsV0FBVyxFQUFFLFNBQVM7UUFDdEIsY0FBYyxFQUFFLFVBQVU7UUFDMUIsa0JBQWtCLEVBQUUsOExBQThMO1FBQ2xOLGdCQUFnQixFQUFFLHlHQUF5RztRQUMzSCxlQUFlLEVBQUUsU0FBUztRQUMxQixjQUFjLEVBQUUsU0FBUztRQUN6QixrQkFBa0IsRUFBRSxXQUFXO1FBQy9CLFdBQVcsRUFBRTtZQUNYLE9BQU8sRUFBRSx3Q0FBd0M7WUFDakQsU0FBUyxFQUFFLHdHQUF3RztTQUNwSDtRQUNELFlBQVksRUFBRSxnQkFBZ0I7UUFDOUIscUJBQXFCLEVBQUUsZ0xBQWdMO1FBQ3ZNLGVBQWUsRUFBRSxpQkFBaUI7S0FDbkM7SUFDRCxXQUFXLEVBQUU7UUFDVCxNQUFNLEVBQUU7WUFDSixLQUFLLEVBQUUsS0FBSztZQUNaLElBQUksRUFBRSxLQUFLO1NBQ2Q7S0FDSjtJQUNELFVBQVUsRUFBRTtRQUNWLG9CQUFvQixFQUFFLHdDQUF3QztLQUMvRDtJQUNELGdCQUFnQixFQUFFO1FBQ2QsUUFBUSxFQUFFLDBCQUEwQjtRQUNwQyxZQUFZLEVBQUUscUJBQXFCO1FBQ25DLGVBQWUsRUFBRSwyQkFBMkI7UUFDNUMsZ0JBQWdCLEVBQUcsaUJBQWlCO1FBQ3BDLG1CQUFtQixFQUFFLHVCQUF1QjtRQUM1QyxRQUFRLEVBQUcsZUFBZTtRQUMxQixNQUFNLEVBQUcsWUFBWTtRQUNyQixRQUFRLEVBQUcsVUFBVTtRQUNyQixNQUFNLEVBQUUsYUFBYTtRQUNyQixNQUFNLEVBQUUsVUFBVTtRQUNsQixPQUFPLEVBQUc7WUFDTixPQUFPLEVBQUcsaUNBQWlDO1lBQzNDLE1BQU0sRUFBRyxnSUFBZ0k7WUFDekksa0JBQWtCLEVBQUcsOEJBQThCO1lBQ25ELDJCQUEyQixFQUFHLDhEQUE4RDtZQUM1RixlQUFlLEVBQUcsbURBQW1EO1lBQ3JFLG1CQUFtQixFQUFHLG9EQUFvRDtZQUMxRSxlQUFlLEVBQUcsaUJBQWlCO1lBQ25DLHFCQUFxQixFQUFHLHFCQUFxQjtZQUM3QyxRQUFRLEVBQUcsWUFBWTtZQUN2QixTQUFTLEVBQUcsVUFBVTtZQUN0QixPQUFPLEVBQUcsVUFBVTtTQUN2QjtLQUNKO0lBQ0QsVUFBVSxFQUFHO1FBQ1gsYUFBYSxFQUFFLG1CQUFtQjtLQUNuQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogcXVvdGVtYXJrXG4vLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG5leHBvcnQgY29uc3QgVEFCTEVTX0VMID0ge1xuICAgIFwiVGFibGVzXCI6IHtcbiAgICAgICAgXCJFeHBvcnRcIjogXCLOlc6+zrHOs8+JzrPOrlwiLFxuICAgICAgICBcIk1vcmVcIjogXCLOoM61z4HOuc+Dz4PPjM+EzrXPgc6xXCIsXG4gICAgICAgIFwiU2VhcmNoXCI6IFwizpHOvc6xzrbOrs+EzrfPg863XCIsXG4gICAgICAgIFwiU2VhcmNoUGxhY2Vob2xkZXJcIjogXCLOkc69zrHOts6uz4TOt8+DzrcuLi5cIixcbiAgICAgICAgXCJHcm91cEJ5XCI6IFwizp/OvM6xzrTOv8+Azr/Or863z4POtyDOsc69zqxcIixcbiAgICAgICAgXCJOb3REZWZpbmVkXCI6IFwizpzOtyDPgM+Bzr/Pg860zrnOv8+BzrnPg868zq3Ovc6/XCIsXG4gICAgICAgIFwiRGF0YVRhYmxlXCI6IHtcbiAgICAgICAgICAgIFwicGFnaW5hdGVcIjoge1xuICAgICAgICAgICAgICAgIFwiZmlyc3RcIjogXCLOoM+Bz47PhM63IM+DzrXOu86vzrTOsVwiLFxuICAgICAgICAgICAgICAgIFwibGFzdFwiOiBcIs6kzrXOu861z4TOsc6vzrEgz4POtc67zq/OtM6xXCIsXG4gICAgICAgICAgICAgICAgXCJuZXh0XCI6IFwizpXPgM+MzrzOtc69zrdcIixcbiAgICAgICAgICAgICAgICBcInByZXZpb3VzXCI6IFwizqDPgc6/zrfOs86/z43OvM61zr3Ot1wiXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgXCJpbmZvXCI6IFwizpXOvM+GzqzOvc65z4POtyBfU1RBUlRfIM6tz4nPgiBfRU5EXyDOsc+Az4wgX1RPVEFMXyDOtc6zzrPPgc6xz4bOrc+CXCIsXG4gICAgICAgICAgICBcImluZm9FbXB0eVwiOiBcIs6UzrXOvSDOss+Bzq3OuM63zrrOsc69IM61zrPOs8+BzrHPhs6tz4JcIixcbiAgICAgICAgICAgIFwibG9hZGluZ1wiOiBcIs6VzrzPhs6szr3Ouc+DzrcgzrTOtc60zr/OvM6tzr3Pic69Li4uXCIsXG4gICAgICAgICAgICBcInByb2Nlc3NpbmdcIjogXCLOoM6xz4HOsc67zrHOss6uIM60zrXOtM6/zrzOrc69z4nOvS4uLlwiLFxuICAgICAgICAgICAgXCJlbXB0eVRhYmxlXCI6IFwizpTOtc69IM6yz4HOrc64zrfOus6xzr0gzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xLlwiXG4gICAgICAgIH0sXG4gICAgICBcIkNvbHVtbkRpc3BsYXlcIjogXCLOlc+AzrnOu86/zrPOriDOlc68z4bOrM69zrnPg863z4Igz4PPhM63zrvPjs69XCIsXG4gICAgICBcIkNvbHVtbkRpc3BsYXlJbmZvXCI6IFwizpXPgM65zrvOrc6+z4TOtSDPhM65z4Igz4PPhM6uzrvOtc+CIM+Azr/PhSDOuM6tzrvOtc+EzrUgzr3OsSDOtc68z4bOsc69zq/Ots6/zr3PhM6xzrkuXCIsXG4gICAgICBcIlNhdmVcIjogXCLOlc+GzrHPgc68zr/Os86uXCIsXG4gICAgICBcIkFwcGx5XCI6IFwizpXPhs6xz4HOvM6/zrPOrlwiLFxuICAgICAgXCJDYW5jZWxcIjogXCLOkc66z43Pgc+Jz4POt1wiLFxuICAgICAgXCJSZWNvcmRzUGVyUGFnZVwiOiBcIs6VzrPOs8+BzrHPhs6tz4IgzrHOvc6sIM+DzrXOu86vzrTOsVwiLFxuICAgICAgXCJQYWdlSW5mb1wiOiBcInt7c3RhcnR9fS17e2VuZH19IM6xz4DPjCB7e3JlY29yZHNUb3RhbH19XCIsXG4gICAgICBcIlNlYXJjaExpc3RQbGFjZWhvbGRlclwiOiBcIs6Rzr3Osc62zrfPhM6uz4PPhM61IM+Dz4TOtyDOu86vz4PPhM6xLi4uXCIsXG4gICAgICBcIkZpbHRlcnNcIjogXCLOps6vzrvPhM+BzrFcIixcbiAgICAgIFwiQWxsXCI6IFwizozOu86xXCIsXG4gICAgICAgIFwiQWRkSXRlbVwiOiBcIs6gz4HOv8+DzrjOrs66zrcgz4PPhM6/zrnPh861zq/Ov8+FXCIsXG4gICAgICAgIFwiRW1wdHlUYWJsZVRpdGxlXCI6IFwizpTOtc69IM6yz4HOrc64zrfOus6xzr0gzrHPgM6/z4TOtc67zq3Pg868zrHPhM6xLlwiLFxuICAgICAgICBcIkVtcHR5VGFibGVNZXNzYWdlXCI6IFwizqDPgc6/z4PPgM6xzrjOrs+Dz4TOtSDOvc6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zq7Pg861z4TOtSDOrM67zrvOtc+CIM67zq3Ovs61zrnPgiDOus67zrXOuc60zrnOrC5cIixcbiAgICAgICAgXCJSZW1vdmVJdGVtXCI6IFwizpTOuc6xzrPPgc6xz4bOriDPg8+Ezr/Ouc+HzrXOr86/z4VcIixcbiAgICAgICAgXCJJdGVtc1wiOiBcIs+Dz4TOv865z4fOtc6vzrFcIixcbiAgICAgICAgXCJJdGVtXCI6IFwiz4PPhM6/zrnPh861zq/Ov1wiLFxuICAgICAgICBcIkFkZEl0ZW1NZXNzYWdlXCI6IHtcbiAgICAgICAgICAgIFwidGl0bGVcIjogXCLOoM+Bzr/Pg864zq7Ous63IM+Dz4TOv865z4fOtc6vz4nOvVwiLFxuICAgICAgICAgICAgXCJvbmVcIjogXCLOiM69zrEgzr3Orc6/IM+Dz4TOv865z4fOtc6vzr8gz4DPgc6/z4PPhM6tzrjOt866zrUgzrzOtSDOtc+AzrnPhM+Fz4fOr86xLlwiLFxuICAgICAgICAgICAgXCJtYW55XCI6IFwie3t2YWx1ZX19IM69zq3OsSDPg8+Ezr/Ouc+HzrXOr86xIM+Az4HOv8+Dz4TOrc64zrfOus6xzr0gzrzOtSDOtc+AzrnPhM+Fz4fOr86xLlwiXG4gICAgICAgICAgfSxcbiAgICAgICAgXCJSZW1vdmVJdGVtTWVzc2FnZVwiOiB7XG4gICAgICAgICAgICBcInRpdGxlXCI6IFwizpHPhs6xzq/Pgc61z4POtyDPg8+Ezr/Ouc+HzrXOr8+Jzr1cIixcbiAgICAgICAgICAgIFwib25lXCI6IFwizojOvc6xIM+Dz4TOv865z4fOtc6vzr8gzrHPhs6xzrnPgc6tzrjOt866zrUgzrzOtSDOtc+AzrnPhM+Fz4fOr86xLlwiLFxuICAgICAgICAgICAgXCJtYW55XCI6IFwie3t2YWx1ZX19IM+Dz4TOv865z4fOtc6vzrEgzrHPhs6xzrnPgc6tzrjOt866zrHOvSDOvM61IM61z4DOuc+Ez4XPh86vzrEuXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJSZW1vdmVJdGVtc1RpdGxlXCI6IFwizpTOuc6xzrPPgc6xz4bOriDPg8+Ezr/Ouc+HzrXOr86/z4VcIixcbiAgICAgICAgXCJSZW1vdmVJdGVtc01lc3NhZ2VcIjogXCLOoM+Bz4zOus61zrnPhM6xzrkgzr3OsSDOtM65zrHOs8+BzqzPiM61z4TOtSDOrc69zrEgzq4gz4DOtc+BzrnPg8+Dz4zPhM61z4HOsSDPg8+Ezr/Ouc+HzrXOr86xLiDOmM6tzrvOtc+EzrUgzr3OsSDPgM+Bzr/Ph8+Jz4HOrs+DzrXPhM61P1wiLFxuICAgICAgICBcIlNlbGVjdEFsbFwiOiBcIs6Vz4DOuc67zr/Os86uIM+MzrvPic69XCIsXG4gICAgICAgIFwiQ2xlYXJTZWxlY3Rpb25cIjogXCLOkc69zrHOr8+BzrXPg863IM61z4DOuc67zr/Os86uz4JcIixcbiAgICAgIFwiQWN0aW9uc1wiOiB7XG4gICAgICAgIFwiTGFiZWxcIjogXCLOlc+AzrXOvs61z4HOs86xz4POr86xXCIsXG4gICAgICAgIFwiU3RhcnRcIjogXCLOiM69zrHPgc6+zrdcIixcbiAgICAgICAgXCJBY3Rpb25NZXNzYWdlXCI6IHtcbiAgICAgICAgICBcIk5vbmVcIjogXCLOlM61zr0gzq3Ph861z4TOtSDOtc+AzrnOu86tzr7Otc65IM66zrHOvc6tzr3OsSDPg8+Ezr/Ouc+HzrXOr86/IM+Azr/PhSDOvc6xIM6xzrrOv867zr/Phc64zrXOryDPhM65z4Igz4DPgc6/z4vPgM6/zrjOrc+DzrXOuc+CIM+EzrfPgiDOtc69zq3Pgc6zzrXOuc6xz4IuXCIsXG4gICAgICAgICAgXCJPbmVcIjogXCLOiM+HzrXPhM61IM61z4DOuc67zq3Ovs61zrkgzq3Ovc6xIM+Dz4TOv865z4fOtc6vzr8gz4DOv8+FIM6xzrrOv867zr/Phc64zrXOryDPhM65z4Igz4DPgc6/z4vPgM6/zrjOrc+DzrXOuc+CIM+EzrfPgiDOtc69zq3Pgc6zzrXOuc6xz4IuIM6gzrHPhM6uz4PPhM61IM+Ezr8gz4DOu86uzrrPhM+Bzr8gzojOvc6xz4HOvs63IM6zzrnOsSDOvc6xIM6+zrXOus65zr3Ors+DzrXOuSDOtyDOtM65zrHOtM65zrrOsc+Dzq/OsS5cIixcbiAgICAgICAgICBcIk1hbnlcIjogXCLOiM+HzrXPhM61IM61z4DOuc67zq3Ovs61zrkge3tsZW5ndGh9fSDPg8+Ezr/Ouc+HzrXOr86xIM+Azr/PhSDOsc66zr/Ou86/z4XOuM6/z43OvSDPhM65z4Igz4DPgc6/z4vPgM6/zrjOrc+DzrXOuc+CIM+EzrfPgiDOtc69zq3Pgc6zzrXOuc6xz4IuIM6gzrHPhM6uz4PPhM61IM+Ezr8gz4DOu86uzrrPhM+Bzr8gzojOvc6xz4HOvs63IM6zzrnOsSDOvc6xIM6+zrXOus65zr3Ors+DzrXOuSDOtyDOtM65zrHOtM65zrrOsc+Dzq/OsS5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXBsZXRlZFdpdGhFcnJvcnNcIjoge1xuICAgICAgICAgIFwiVGl0bGVcIjogXCLOlyDOtM65zrHOtM65zrrOsc+Dzq/OsSDOv867zr/Ous67zrfPgc+OzrjOt866zrUgzrzOtSDPg8+GzqzOu868zrHPhM6xLlwiLFxuICAgICAgICAgIFwiRGVzY3JpcHRpb25cIjoge1xuICAgICAgICAgICAgXCJPbmVcIjogXCLOiM69zrEgz4PPhM6/zrnPh861zq/OvyDOtM61zr0gzrHOvc6xzr3Otc+OzrjOt866zrUgzrvPjM6zz4kgzrXOvc+Mz4Igz4PPhs6szrvOvM6xz4TOv8+CIM+Azr/PhSDPg8+Fzr3Orc6yzrcgzrrOsc+Ezqwgz4TOt869IM61zrrPhM6tzrvOtc+Dzrcgz4TOt8+CIM60zrnOsc60zrnOus6xz4POr86xz4IuXCIsXG4gICAgICAgICAgICBcIk1hbnlcIjogXCJ7e2Vycm9yc319IM+Dz4TOv865z4fOtc6vzrEgzrTOtc69IM6xzr3Osc69zrXPjs64zrfOus6xzr0gzrvPjM6zz4kgzrXOvc+Mz4Igz4PPhs6szrvOvM6xz4TOv8+CIM+Azr/PhSDPg8+Fzr3Orc6yzrcgzrrOsc+Ezqwgz4TOt869IM61zrrPhM6tzrvOtc+Dzrcgz4TOt8+CIM60zrnOsc60zrnOus6xz4POr86xz4IuXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwiQ29tcGxldGVkV2l0aFN1Y2Nlc3NcIjoge1xuICAgICAgICAgIFwiVGl0bGVcIjogXCLOlyDOtM65zrHOtM65zrrOsc+Dzq/OsSDOv867zr/Ous67zrfPgc+OzrjOt866zrUgzrzOtSDOtc+AzrnPhM+Fz4fOr86xLlwiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcIlNlbGVjdENvbHVtbnNcIjogXCLOlc+AzrnOu86/zrPOriDPg8+EzrfOu8+Ozr1cIixcbiAgICAgIFwiTW92ZVVwXCI6IFwizpXPgM6szr3PiVwiLFxuICAgICAgXCJNb3ZlRG93blwiOiBcIs6azqzPhM+JXCIsXG4gICAgICBcIkFkZENvbHVtblwiOiBcIs6Vz4DOuc67zr/Os86uXCIsXG4gICAgICBcIlJlbW92ZUNvbHVtblwiOiBcIs6Rz4bOsc6vz4HOtc+DzrdcIixcbiAgICAgIFwiU2VsZWN0Q29sdW1uSGVscFwiOiBcIs6Vz4DOuc67zq3Ovs+EzrUgzrzOr86xIM6uIM+AzrXPgc65z4PPg8+Mz4TOtc+BzrXPgiDOsc+Az4wgz4TOuc+CIM60zrnOsc64zq3Pg865zrzOtc+CIM+Dz4TOrs67zrXPgiDOus6xzrkgz4DOsc+Ezq7Pg8+EzrUgz4TOvyDPgM67zq7Ous+Ez4HOvyAnzpXPgM65zrvOv86zzq4nIM6zzrnOsSDOvc6xIM+EzrnPgiDOtc68z4bOsc69zq/Pg861z4TOtS4gzqfPgc63z4POuc68zr/PgM6/zrnOrs+Dz4TOtSDPhM6/IM+AzrvOrs66z4TPgc6/ICfOkc+GzrHOr8+BzrXPg863JyDOs865zrEgzr3OsSDOsc+GzrHOuc+Bzq3Pg861z4TOtSDPhM65z4IgzrXPgM65zrvOtc6zzrzOrc69zrXPgiDPg8+Ezq7Ou861z4IuXCIsXG4gICAgICBcIk1vdmVDb2x1bW5IZWxwXCI6IFwizqfPgc63z4POuc68zr/PgM6/zrnOrs+Dz4TOtSDPhM6xIM+AzrvOrs66z4TPgc6xICfOlc+AzqzOvc+JJyDOus6xzrkgJ86azqzPhM+JJyDOs865zrEgzr3OsSDOsc67zrvOrM6+zrXPhM61IM+EzrfOvSDPg861zrnPgc6sIM61zrzPhs6szr3Ouc+DzrfPgiDPhM+Jzr0gz4PPhM63zrvPjs69IM+Ezr/PhSDPgM6vzr3Osc66zrEuXCIsXG4gICAgICBcIlVua25vd25Db2x1bW5cIjogXCLOhs6zzr3Pic+Dz4TOv1wiLFxuICAgICAgXCJTZWxlY3RDb2x1bW5cIjogXCLOlc+AzrnOu86/zrPOrlwiLFxuICAgICAgXCJBY3Rpb25MaW5rQ29sdW1uXCI6IFwizpXOvc6tz4HOs861zrnOtc+CXCIsXG4gICAgICBcIkRhdGFFcnJvclwiOiB7XG4gICAgICAgIFwiVGl0bGVcIjogXCLOo8+GzqzOu868zrEgzrrOsc+Ezqwgz4TOt869IM+AzrHPgc6xzrvOsc6yzq4gz4TPic69IM60zrXOtM6/zrzOrc69z4nOvVwiLFxuICAgICAgICBcIk1lc3NhZ2VcIjogXCLOo8+Fzr3Orc6yzrcgz4PPhs6szrvOvM6xIM66zrHPhM6sIM+EzrfOvSDPgM6xz4HOsc67zrHOss6uIM+Ez4nOvSDOtM61zrTOv868zq3Ovc+Jzr0uIM6gz4HOv8+Dz4DOsc64zq7Pg8+EzrUgzr7Osc69zqwgzq4gz4TPgc6/z4DOv8+Azr/Ouc6uz4PPhM61IM+EzrEgz4PPhM6/zrnPh861zq/OsSDOsc69zrHOts6uz4TOt8+DzrfPgi5cIlxuICAgICAgfSxcbiAgICAgIFwiRXhwb3J0TGlzdFwiOiBcIs6Vzr7Osc6zz4nOs86uIM67zq/Pg8+EzrHPglwiLFxuICAgICAgXCJFeHBvcnRMaW1pdEV4Y2VlZGVkXCI6IFwizqTOvyDPgM67zq7OuM6/z4Igz4TPic69IM+Dz4TOv865z4fOtc6vz4nOvSDPgM+Bzr/PgiDOtc6+zrHOs8+JzrPOriAoe3tkYXRhTGVuZ3RofX0pIM6+zrXPgM61z4HOvc6szrXOuSDPhM6/IM68zq3Os865z4PPhM6/IM61z4DOuc+Ez4HOtc+Az4TPjCAoe3tleHBvcnRMaW1pdH19KS4gzqDOsc+BzrHOus6xzrvOv8+NzrzOtSDPgM+Bzr/Pg86xz4HOvM+Mz4PPhM61IM+EzrEgz4bOr867z4TPgc6xIM+EzrfPgiDOsc69zrHOts6uz4TOt8+DzrfPgiDOus6xzrkgz4DPgc6/z4PPgM6xzrjOrs+Dz4TOtSDOvs6xzr3OrC5cIixcbiAgICAgIFwiRXhwb3J0UmVzdWx0c1wiOiBcIs6UzrXOtM6/zrzOrc69zrEgzrvOr8+Dz4TOsc+CXCJcbiAgICB9LFxuICAgIFwiVHJ1ZUZhbHNlXCI6IHtcbiAgICAgICAgXCJsb25nXCI6IHtcbiAgICAgICAgICAgIFwiWWVzXCI6IFwizp3Osc65XCIsXG4gICAgICAgICAgICBcIk5vXCI6IFwizozPh865XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJTZXR0aW5nc1wiOiB7XG4gICAgICBcIk9wZXJhdGlvbkNvbXBsZXRlZFwiOiBcIs6XIM60zrnOsc60zrnOus6xz4POr86xIM6/zrvOv866zrvOt8+Bz47OuM63zrrOtSDOvM61IM61z4DOuc+Ez4XPh86vzrEuXCJcbiAgICB9LFxuICAgIFwiQWR2YW5jZWRTZWFyY2hcIjoge1xuICAgICAgICBcIkNob29zZVwiOiBcIjzOlc+AzrnOu86tzr7PhM61IM68zrnOsSDOsc69zrHOts6uz4TOt8+Dzrc+XCIsXG4gICAgICAgIFwiQ2hvb3NlRGF0ZVwiOiBcIs6Vz4DOuc67zr/Os86uIM63zrzOtc+Bzr/OvM63zr3Or86xz4JcIixcbiAgICAgICAgXCJTYXZlZFNlYXJjaGVzXCI6IFwizpHPgM6/zrjOt866zrXPhc68zq3Ovc61z4IgzrHOvc6xzrbOt8+Ezq7Pg861zrnPglwiLFxuICAgICAgICBcIlRvZ2dsZURyb3Bkb3duXCIgOiBcIs6VzrzPhs6szr3Ouc+DzrcgzrvOr8+Dz4TOsc+CXCIsXG4gICAgICAgIFwiU2F2ZUN1cnJlbnRTZWFyY2hcIjogXCLOkc+Azr/OuM6uzrrOtc+Fz4POtyDOsc69zrHOts6uz4TOt8+DzrfPglwiLFxuICAgICAgICBcIlNhdmVBc1wiIDogXCLOkc+Azr/OuM6uzrrOtc+Fz4POtyDPic+CXCIsXG4gICAgICAgIFwiU2F2ZVwiIDogXCLOkc+Azr/OuM6uzrrOtc+Fz4POt1wiLFxuICAgICAgICBcIkRlbGV0ZVwiIDogXCLOlM65zrHOs8+BzrHPhs6uXCIsXG4gICAgICAgIFwiTW9yZVwiOiBcIs6gzrXPgc65z4PPg8+Mz4TOtc+BzrFcIixcbiAgICAgICAgXCJMZXNzXCI6IFwizpvOuc6zz4zPhM61z4HOsVwiLFxuICAgICAgICBcIk1vZGFsXCIgOiB7XG4gICAgICAgICAgICBcIlRpdGxlXCIgOiBcIs6Rz4DOv864zq7Ous61z4XPg863IM66z4HOuc+EzrfPgc6vz4nOvSDOsc69zrHOts6uz4TOt8+DzrfPglwiLFxuICAgICAgICAgICAgXCJIZWxwXCIgOiBcIs6fz4HOr8+Dz4TOtSDOrc69zrHOvSDPhM6vz4TOu86/IM6zzrnOsSDPhM6xIM61z4DOuc67zrXOs868zq3Ovc6xIM66z4HOuc+Ezq7Pgc65zrEgzrHOvc6xzrbOrs+EzrfPg863z4IuIM6Rz4XPhM+Mz4Igzr8gz4TOr8+EzrvOv8+CIM64zrEgz4POsc+CIM6yzr/Ot864zq7Pg861zrkgzr3OsSDPhM6xIM+Hz4HOt8+DzrnOvM6/z4DOv865zq7Pg861z4TOtSDOvs6xzr3OrCDPg8+Ezr8gzrzOrc67zrvOv869LlwiLFxuICAgICAgICAgICAgXCJUaXRsZU9uVXNlckVycm9yXCIgOiBcIs6gzrHPgc6xzrrOsc67z44gzrXOuc+DzqzOs861z4TOtSDOrc69zrHOvSDPhM6vz4TOu86/XCIsXG4gICAgICAgICAgICBcIlRpdGxlT25MaXN0QWxyZWFkeUNyZWF0ZWRcIiA6IFwizqTOvyDPjM69zr/OvM6xIM6xz4XPhM+MIM+Hz4HOt8+DzrnOvM6/z4DOv865zrXOr8+EzrHOuSDOrs60zrcuIM6UzrnOsc67zq3Ovs+EzrUgzq3Ovc6xIM60zrnOsc+Gzr/Pgc61z4TOuc66z4wuXCIsXG4gICAgICAgICAgICBcIk5vTGlzdERlZmluZWRcIiA6IFwizpTOtc69IM6tz4fOtc65IM6/z4HOuc+Dz4TOtc6vIM+Ezr8gz4POt868zrXOr86/IM6xz4DOv864zq7Ous61z4XPg863z4Igz4TOt8+CIM67zq/Pg8+EzrHPglwiLFxuICAgICAgICAgICAgXCJFbXB0eUNyaXRlcmlhTGlzdFwiIDogXCLOlM61zr0gzq3Ph861z4TOtSDOus6xzrjOv8+Bzq/Pg861zrkgzrrOsc69zq3Ovc6xIM66z4HOuc+Ezq7Pgc65zr8gzrPOuc6xIM6xz4DOv864zq7Ous61z4XPg863XCIsXG4gICAgICAgICAgICBcIlNhdmVOYW1lTGFiZWxcIiA6IFwizp/Ovc6/zrzOsc+Dzq/OsSDOu86vz4PPhM6xz4JcIixcbiAgICAgICAgICAgIFwiU2F2ZU5hbWVQbGFjZWhvbGRlclwiIDogXCLOlc65z4POrM6zzrXPhM61IM6tzr3Osc69IM+Ezq/PhM67zr9cIixcbiAgICAgICAgICAgIFwiQWNjZXB0XCIgOiBcIs6Rz4DOv864zq7Ous61z4XPg863XCIsXG4gICAgICAgICAgICBcIkRlY2xpbmVcIiA6IFwizpHPgM+Mz4HPgc65z4jOt1wiLFxuICAgICAgICAgICAgXCJDbG9zZVwiIDogXCLOms67zrXOr8+DzrnOvM6/XCJcbiAgICAgICAgfVxuICAgIH0sXG4gICAgXCJBZGRJdGVtc1wiIDoge1xuICAgICAgXCJTZWxlY3RJdGVtc1wiOiBcIs6Vz4DOuc67zq3Ovs+EzrUgz4PPhM6/zrnPh861zq/OsVwiLFxuICAgIH1cbn07XG4iXX0=
@@ -0,0 +1,128 @@
1
+ // tslint:disable: quotemark
2
+ // tslint:disable: max-line-length
3
+ export const TABLES_EN = {
4
+ "Tables": {
5
+ "Export": "Export",
6
+ "More": "More",
7
+ "Search": "Search",
8
+ "SearchPlaceholder": "Search...",
9
+ "GroupBy": "Group by",
10
+ "NotDefined": "Not defined",
11
+ "DataTable": {
12
+ "paginate": {
13
+ "first": "First",
14
+ "last": "Last",
15
+ "next": "Next",
16
+ "previous": "Previous"
17
+ },
18
+ "info": "Showing _START_ to _END_ of _TOTAL_ entries",
19
+ "infoEmpty": "Showing 0 to 0 of 0 entries",
20
+ "processing": "Processing data...",
21
+ "emptyTable": "There are no matching records."
22
+ },
23
+ "ColumnDisplay": "Column Display",
24
+ "ColumnDisplayInfo": "Επιλέξτε τις στήλες που θέλετε να εμφανίζονται.",
25
+ "Save": "Save",
26
+ "Apply": "Apply",
27
+ "Cancel": "Cancel",
28
+ "RecordsPerPage": "Items per page",
29
+ "PageInfo": "{{start}}-{{end}} of {{recordsTotal}}",
30
+ "SearchListPlaceHolder": "Search in list...",
31
+ "Filters": "Filters",
32
+ "All": "All",
33
+ "AddItem": "Add item",
34
+ "EmptyTableTitle": "There are no matching records.",
35
+ "EmptyTableMessage": "Please try to use other keywords or search parameters.",
36
+ "RemoveItem": "Remove item",
37
+ "Items": "items",
38
+ "Item": "item",
39
+ "AddItemMessage": {
40
+ "title": "Add item",
41
+ "one": "A new item has been added successfully.",
42
+ "many": "{{value}} new items have been added successfully."
43
+ },
44
+ "RemoveItemMessage": {
45
+ "title": "Remove items",
46
+ "one": "An item has been successfully removed.",
47
+ "many": "{{value}} items have been successfully removed."
48
+ },
49
+ "RemoveItemsTitle": "Remove items",
50
+ "RemoveItemsMessage": "You are going to remove one or more instructor courses. Do you want to proceed?",
51
+ "SelectAll": "Select all",
52
+ "ClearSelection": "Clear selection",
53
+ "Actions": {
54
+ "Label": "Edit",
55
+ "Start": "Start",
56
+ "ActionMessage": {
57
+ "None": "There is no selected item that meets action requirements.",
58
+ "One": "You have selected one item that meets action requirements.",
59
+ "Many": "You have selected {{length}} items that meet action requirements."
60
+ },
61
+ "CompletedWithErrors": {
62
+ "Title": "The operation was completed with errors.",
63
+ "Description": {
64
+ "One": "One item has not been updated due to an error occurred while executing process.",
65
+ "Many": "{{errors}} items have not been updated due to an error occurred while executing process."
66
+ }
67
+ },
68
+ "CompletedWithSuccess": {
69
+ "Title": "The operation was completed successfully."
70
+ }
71
+ },
72
+ "SelectColumns": "Select columns",
73
+ "MoveUp": "Move up",
74
+ "MoveDown": "Move down",
75
+ "AddColumn": "Add",
76
+ "RemoveColumn": "Remove",
77
+ "SelectColumnHelp": "Select one or more columns and press 'Add' button to include them in table. Use 'Remove' button to exclude one or more columns from view.",
78
+ "MoveColumnHelp": "Use 'Move up' and 'Move down' buttons to change column order.",
79
+ "UnknownColumn": "Unknown",
80
+ "SelectColumn": "Select",
81
+ "ActionLinkColumn": "Actions",
82
+ "DataError": {
83
+ "Title": "Error while getting data",
84
+ "Message": "An error occurred while getting data. Please try again or change your criteria."
85
+ },
86
+ "ExportList": "Export list",
87
+ "ExportLimitExceeded": "The number of items that are to be exported ({{dataLength}}) exceeds the export limit ({{exportLimit}}). Please apply more specific filters to the search.",
88
+ "ExportResults": "Exported list"
89
+ },
90
+ "TrueFalse": {
91
+ "long": {
92
+ "Yes": "Yes",
93
+ "No": "No"
94
+ }
95
+ },
96
+ "Settings": {
97
+ "OperationCompleted": "The operation was completed successfully."
98
+ },
99
+ "AdvancedSearch": {
100
+ "Choose": "<Select a saved search>",
101
+ "ChooseDate": "Choose date",
102
+ "SavedSearches": "Saved searches",
103
+ "ToggleDropdown": "Toggle Dropdown",
104
+ "SaveCurrentSearch": "Save search",
105
+ "SaveAs": "Save as...",
106
+ "Save": "Save",
107
+ "Delete": "Remove",
108
+ "More": "More",
109
+ "Less": "Less",
110
+ "Modal": {
111
+ "Title": "Save current search criteria",
112
+ "Help": "Please add a title for the given search criteria. This title will help you to use those criteria again in the future.",
113
+ "TitleOnUserError": "Please use a valid name for your list",
114
+ "TitleOnListAlreadyCreated": "Name already in use. Please choose a different one",
115
+ "NoListDefined": "Cannot define user storage key.",
116
+ "EmptyCriteriaList": "Please define search criteria before save.",
117
+ "SaveNameLabel": "List name",
118
+ "SaveNamePlaceholder": "Type a title here...",
119
+ "Accept": "Save",
120
+ "Decline": "Decline",
121
+ "Close": "Close"
122
+ }
123
+ },
124
+ "AddItems": {
125
+ "SelectItems": "Select items",
126
+ }
127
+ };
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVzLmVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9pMThuL3RhYmxlcy5lbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsa0NBQWtDO0FBQ2xDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUNyQixRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsTUFBTTtRQUNkLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLG1CQUFtQixFQUFFLFdBQVc7UUFDaEMsU0FBUyxFQUFFLFVBQVU7UUFDckIsWUFBWSxFQUFFLGFBQWE7UUFDM0IsV0FBVyxFQUFFO1lBQ1QsVUFBVSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixNQUFNLEVBQUUsTUFBTTtnQkFDZCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxVQUFVLEVBQUUsVUFBVTthQUN6QjtZQUNELE1BQU0sRUFBRSw2Q0FBNkM7WUFDckQsV0FBVyxFQUFFLDZCQUE2QjtZQUMxQyxZQUFZLEVBQUUsb0JBQW9CO1lBQ2xDLFlBQVksRUFBRSxnQ0FBZ0M7U0FDakQ7UUFDSCxlQUFlLEVBQUUsZ0JBQWdCO1FBQ2pDLG1CQUFtQixFQUFFLGlEQUFpRDtRQUN0RSxNQUFNLEVBQUUsTUFBTTtRQUNkLE9BQU8sRUFBRSxPQUFPO1FBQ2hCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLGdCQUFnQixFQUFFLGdCQUFnQjtRQUNsQyxVQUFVLEVBQUUsdUNBQXVDO1FBQ25ELHVCQUF1QixFQUFFLG1CQUFtQjtRQUM1QyxTQUFTLEVBQUUsU0FBUztRQUNwQixLQUFLLEVBQUUsS0FBSztRQUNaLFNBQVMsRUFBRSxVQUFVO1FBQ3JCLGlCQUFpQixFQUFFLGdDQUFnQztRQUNuRCxtQkFBbUIsRUFBRSx3REFBd0Q7UUFDN0UsWUFBWSxFQUFFLGFBQWE7UUFDM0IsT0FBTyxFQUFFLE9BQU87UUFDaEIsTUFBTSxFQUFFLE1BQU07UUFDaEIsZ0JBQWdCLEVBQUU7WUFDaEIsT0FBTyxFQUFFLFVBQVU7WUFDbkIsS0FBSyxFQUFFLHlDQUF5QztZQUNoRCxNQUFNLEVBQUUsbURBQW1EO1NBQzVEO1FBQ0QsbUJBQW1CLEVBQUU7WUFDbkIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsS0FBSyxFQUFFLHdDQUF3QztZQUMvQyxNQUFNLEVBQUUsaURBQWlEO1NBQzFEO1FBQ0Qsa0JBQWtCLEVBQUUsY0FBYztRQUNsQyxvQkFBb0IsRUFBRSxpRkFBaUY7UUFDckcsV0FBVyxFQUFFLFlBQVk7UUFDekIsZ0JBQWdCLEVBQUUsaUJBQWlCO1FBQ25DLFNBQVMsRUFBRTtZQUNULE9BQU8sRUFBRSxNQUFNO1lBQ2YsT0FBTyxFQUFFLE9BQU87WUFDaEIsZUFBZSxFQUFFO2dCQUNmLE1BQU0sRUFBRSwyREFBMkQ7Z0JBQ25FLEtBQUssRUFBRSw0REFBNEQ7Z0JBQ25FLE1BQU0sRUFBRSxtRUFBbUU7YUFDNUU7WUFDRCxxQkFBcUIsRUFBRTtnQkFDckIsT0FBTyxFQUFFLDBDQUEwQztnQkFDbkQsYUFBYSxFQUFFO29CQUNiLEtBQUssRUFBRSxpRkFBaUY7b0JBQ3hGLE1BQU0sRUFBRSwwRkFBMEY7aUJBQ25HO2FBQ0Y7WUFDRCxzQkFBc0IsRUFBRTtnQkFDdEIsT0FBTyxFQUFFLDJDQUEyQzthQUNyRDtTQUNGO1FBQ0QsZUFBZSxFQUFFLGdCQUFnQjtRQUNqQyxRQUFRLEVBQUUsU0FBUztRQUNuQixVQUFVLEVBQUUsV0FBVztRQUN2QixXQUFXLEVBQUUsS0FBSztRQUNsQixjQUFjLEVBQUUsUUFBUTtRQUN4QixrQkFBa0IsRUFBRSwySUFBMkk7UUFDL0osZ0JBQWdCLEVBQUUsK0RBQStEO1FBQ2pGLGVBQWUsRUFBRSxTQUFTO1FBQzFCLGNBQWMsRUFBRSxRQUFRO1FBQ3hCLGtCQUFrQixFQUFFLFNBQVM7UUFDN0IsV0FBVyxFQUFFO1lBQ1gsT0FBTyxFQUFFLDBCQUEwQjtZQUNuQyxTQUFTLEVBQUUsaUZBQWlGO1NBQzdGO1FBQ0QsWUFBWSxFQUFFLGFBQWE7UUFDM0IscUJBQXFCLEVBQUUsNEpBQTRKO1FBQ25MLGVBQWUsRUFBRSxlQUFlO0tBQ2pDO0lBQ0QsV0FBVyxFQUFFO1FBQ1QsTUFBTSxFQUFFO1lBQ0osS0FBSyxFQUFFLEtBQUs7WUFDWixJQUFJLEVBQUUsSUFBSTtTQUNiO0tBQ0o7SUFDRCxVQUFVLEVBQUU7UUFDVixvQkFBb0IsRUFBRSwyQ0FBMkM7S0FDbEU7SUFDRCxnQkFBZ0IsRUFBRTtRQUNkLFFBQVEsRUFBRSx5QkFBeUI7UUFDbkMsWUFBWSxFQUFFLGFBQWE7UUFDM0IsZUFBZSxFQUFFLGdCQUFnQjtRQUNqQyxnQkFBZ0IsRUFBRyxpQkFBaUI7UUFDcEMsbUJBQW1CLEVBQUUsYUFBYTtRQUNsQyxRQUFRLEVBQUcsWUFBWTtRQUN2QixNQUFNLEVBQUcsTUFBTTtRQUNmLFFBQVEsRUFBRyxRQUFRO1FBQ25CLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLE1BQU07UUFDZCxPQUFPLEVBQUc7WUFDTixPQUFPLEVBQUcsOEJBQThCO1lBQ3hDLE1BQU0sRUFBRyx1SEFBdUg7WUFDaEksa0JBQWtCLEVBQUcsdUNBQXVDO1lBQzVELDJCQUEyQixFQUFHLG9EQUFvRDtZQUNsRixlQUFlLEVBQUcsaUNBQWlDO1lBQ25ELG1CQUFtQixFQUFHLDRDQUE0QztZQUNsRSxlQUFlLEVBQUcsV0FBVztZQUM3QixxQkFBcUIsRUFBRyxzQkFBc0I7WUFDOUMsUUFBUSxFQUFHLE1BQU07WUFDakIsU0FBUyxFQUFHLFNBQVM7WUFDckIsT0FBTyxFQUFHLE9BQU87U0FDcEI7S0FDSjtJQUNILFVBQVUsRUFBRztRQUNYLGFBQWEsRUFBRSxjQUFjO0tBQzlCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOiBxdW90ZW1hcmtcbi8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbmV4cG9ydCBjb25zdCBUQUJMRVNfRU4gPSB7XG4gICAgXCJUYWJsZXNcIjoge1xuICAgICAgXCJFeHBvcnRcIjogXCJFeHBvcnRcIixcbiAgICAgICAgXCJNb3JlXCI6IFwiTW9yZVwiLFxuICAgICAgICBcIlNlYXJjaFwiOiBcIlNlYXJjaFwiLFxuICAgICAgICBcIlNlYXJjaFBsYWNlaG9sZGVyXCI6IFwiU2VhcmNoLi4uXCIsXG4gICAgICAgIFwiR3JvdXBCeVwiOiBcIkdyb3VwIGJ5XCIsXG4gICAgICAgIFwiTm90RGVmaW5lZFwiOiBcIk5vdCBkZWZpbmVkXCIsXG4gICAgICAgIFwiRGF0YVRhYmxlXCI6IHtcbiAgICAgICAgICAgIFwicGFnaW5hdGVcIjoge1xuICAgICAgICAgICAgICAgIFwiZmlyc3RcIjogXCJGaXJzdFwiLFxuICAgICAgICAgICAgICAgIFwibGFzdFwiOiBcIkxhc3RcIixcbiAgICAgICAgICAgICAgICBcIm5leHRcIjogXCJOZXh0XCIsXG4gICAgICAgICAgICAgICAgXCJwcmV2aW91c1wiOiBcIlByZXZpb3VzXCJcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBcImluZm9cIjogXCJTaG93aW5nIF9TVEFSVF8gdG8gX0VORF8gb2YgX1RPVEFMXyBlbnRyaWVzXCIsXG4gICAgICAgICAgICBcImluZm9FbXB0eVwiOiBcIlNob3dpbmcgMCB0byAwIG9mIDAgZW50cmllc1wiLFxuICAgICAgICAgICAgXCJwcm9jZXNzaW5nXCI6IFwiUHJvY2Vzc2luZyBkYXRhLi4uXCIsXG4gICAgICAgICAgICBcImVtcHR5VGFibGVcIjogXCJUaGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVjb3Jkcy5cIlxuICAgICAgICB9LFxuICAgICAgXCJDb2x1bW5EaXNwbGF5XCI6IFwiQ29sdW1uIERpc3BsYXlcIixcbiAgICAgIFwiQ29sdW1uRGlzcGxheUluZm9cIjogXCLOlc+AzrnOu86tzr7PhM61IM+EzrnPgiDPg8+Ezq7Ou861z4Igz4DOv8+FIM64zq3Ou861z4TOtSDOvc6xIM61zrzPhs6xzr3Or862zr/Ovc+EzrHOuS5cIixcbiAgICAgIFwiU2F2ZVwiOiBcIlNhdmVcIixcbiAgICAgIFwiQXBwbHlcIjogXCJBcHBseVwiLFxuICAgICAgXCJDYW5jZWxcIjogXCJDYW5jZWxcIixcbiAgICAgIFwiUmVjb3Jkc1BlclBhZ2VcIjogXCJJdGVtcyBwZXIgcGFnZVwiLFxuICAgICAgXCJQYWdlSW5mb1wiOiBcInt7c3RhcnR9fS17e2VuZH19IG9mIHt7cmVjb3Jkc1RvdGFsfX1cIixcbiAgICAgIFwiU2VhcmNoTGlzdFBsYWNlSG9sZGVyXCI6IFwiU2VhcmNoIGluIGxpc3QuLi5cIixcbiAgICAgIFwiRmlsdGVyc1wiOiBcIkZpbHRlcnNcIixcbiAgICAgIFwiQWxsXCI6IFwiQWxsXCIsXG4gICAgICBcIkFkZEl0ZW1cIjogXCJBZGQgaXRlbVwiLFxuICAgICAgXCJFbXB0eVRhYmxlVGl0bGVcIjogXCJUaGVyZSBhcmUgbm8gbWF0Y2hpbmcgcmVjb3Jkcy5cIixcbiAgICAgIFwiRW1wdHlUYWJsZU1lc3NhZ2VcIjogXCJQbGVhc2UgdHJ5IHRvIHVzZSBvdGhlciBrZXl3b3JkcyBvciBzZWFyY2ggcGFyYW1ldGVycy5cIixcbiAgICAgIFwiUmVtb3ZlSXRlbVwiOiBcIlJlbW92ZSBpdGVtXCIsXG4gICAgICBcIkl0ZW1zXCI6IFwiaXRlbXNcIixcbiAgICAgIFwiSXRlbVwiOiBcIml0ZW1cIixcbiAgICBcIkFkZEl0ZW1NZXNzYWdlXCI6IHtcbiAgICAgIFwidGl0bGVcIjogXCJBZGQgaXRlbVwiLFxuICAgICAgXCJvbmVcIjogXCJBIG5ldyBpdGVtIGhhcyBiZWVuIGFkZGVkIHN1Y2Nlc3NmdWxseS5cIixcbiAgICAgIFwibWFueVwiOiBcInt7dmFsdWV9fSBuZXcgaXRlbXMgaGF2ZSBiZWVuIGFkZGVkIHN1Y2Nlc3NmdWxseS5cIlxuICAgIH0sXG4gICAgXCJSZW1vdmVJdGVtTWVzc2FnZVwiOiB7XG4gICAgICBcInRpdGxlXCI6IFwiUmVtb3ZlIGl0ZW1zXCIsXG4gICAgICBcIm9uZVwiOiBcIkFuIGl0ZW0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHJlbW92ZWQuXCIsXG4gICAgICBcIm1hbnlcIjogXCJ7e3ZhbHVlfX0gaXRlbXMgaGF2ZSBiZWVuIHN1Y2Nlc3NmdWxseSByZW1vdmVkLlwiXG4gICAgfSxcbiAgICBcIlJlbW92ZUl0ZW1zVGl0bGVcIjogXCJSZW1vdmUgaXRlbXNcIixcbiAgICBcIlJlbW92ZUl0ZW1zTWVzc2FnZVwiOiBcIllvdSBhcmUgZ29pbmcgdG8gcmVtb3ZlIG9uZSBvciBtb3JlIGluc3RydWN0b3IgY291cnNlcy4gRG8geW91IHdhbnQgdG8gcHJvY2VlZD9cIixcbiAgICAgIFwiU2VsZWN0QWxsXCI6IFwiU2VsZWN0IGFsbFwiLFxuICAgICAgXCJDbGVhclNlbGVjdGlvblwiOiBcIkNsZWFyIHNlbGVjdGlvblwiLFxuICAgICAgXCJBY3Rpb25zXCI6IHtcbiAgICAgICAgXCJMYWJlbFwiOiBcIkVkaXRcIixcbiAgICAgICAgXCJTdGFydFwiOiBcIlN0YXJ0XCIsXG4gICAgICAgIFwiQWN0aW9uTWVzc2FnZVwiOiB7XG4gICAgICAgICAgXCJOb25lXCI6IFwiVGhlcmUgaXMgbm8gc2VsZWN0ZWQgaXRlbSB0aGF0IG1lZXRzIGFjdGlvbiByZXF1aXJlbWVudHMuXCIsXG4gICAgICAgICAgXCJPbmVcIjogXCJZb3UgaGF2ZSBzZWxlY3RlZCBvbmUgaXRlbSB0aGF0IG1lZXRzIGFjdGlvbiByZXF1aXJlbWVudHMuXCIsXG4gICAgICAgICAgXCJNYW55XCI6IFwiWW91IGhhdmUgc2VsZWN0ZWQge3tsZW5ndGh9fSBpdGVtcyB0aGF0IG1lZXQgYWN0aW9uIHJlcXVpcmVtZW50cy5cIlxuICAgICAgICB9LFxuICAgICAgICBcIkNvbXBsZXRlZFdpdGhFcnJvcnNcIjoge1xuICAgICAgICAgIFwiVGl0bGVcIjogXCJUaGUgb3BlcmF0aW9uIHdhcyBjb21wbGV0ZWQgd2l0aCBlcnJvcnMuXCIsXG4gICAgICAgICAgXCJEZXNjcmlwdGlvblwiOiB7XG4gICAgICAgICAgICBcIk9uZVwiOiBcIk9uZSBpdGVtIGhhcyBub3QgYmVlbiB1cGRhdGVkIGR1ZSB0byBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBleGVjdXRpbmcgcHJvY2Vzcy5cIixcbiAgICAgICAgICAgIFwiTWFueVwiOiBcInt7ZXJyb3JzfX0gaXRlbXMgaGF2ZSBub3QgYmVlbiB1cGRhdGVkIGR1ZSB0byBhbiBlcnJvciBvY2N1cnJlZCB3aGlsZSBleGVjdXRpbmcgcHJvY2Vzcy5cIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJDb21wbGV0ZWRXaXRoU3VjY2Vzc1wiOiB7XG4gICAgICAgICAgXCJUaXRsZVwiOiBcIlRoZSBvcGVyYXRpb24gd2FzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuXCJcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFwiU2VsZWN0Q29sdW1uc1wiOiBcIlNlbGVjdCBjb2x1bW5zXCIsXG4gICAgICBcIk1vdmVVcFwiOiBcIk1vdmUgdXBcIixcbiAgICAgIFwiTW92ZURvd25cIjogXCJNb3ZlIGRvd25cIixcbiAgICAgIFwiQWRkQ29sdW1uXCI6IFwiQWRkXCIsXG4gICAgICBcIlJlbW92ZUNvbHVtblwiOiBcIlJlbW92ZVwiLFxuICAgICAgXCJTZWxlY3RDb2x1bW5IZWxwXCI6IFwiU2VsZWN0IG9uZSBvciBtb3JlIGNvbHVtbnMgYW5kIHByZXNzICdBZGQnIGJ1dHRvbiB0byBpbmNsdWRlIHRoZW0gaW4gdGFibGUuIFVzZSAnUmVtb3ZlJyBidXR0b24gdG8gZXhjbHVkZSBvbmUgb3IgbW9yZSBjb2x1bW5zIGZyb20gdmlldy5cIixcbiAgICAgIFwiTW92ZUNvbHVtbkhlbHBcIjogXCJVc2UgJ01vdmUgdXAnIGFuZCAnTW92ZSBkb3duJyBidXR0b25zIHRvIGNoYW5nZSBjb2x1bW4gb3JkZXIuXCIsXG4gICAgICBcIlVua25vd25Db2x1bW5cIjogXCJVbmtub3duXCIsXG4gICAgICBcIlNlbGVjdENvbHVtblwiOiBcIlNlbGVjdFwiLFxuICAgICAgXCJBY3Rpb25MaW5rQ29sdW1uXCI6IFwiQWN0aW9uc1wiLFxuICAgICAgXCJEYXRhRXJyb3JcIjoge1xuICAgICAgICBcIlRpdGxlXCI6IFwiRXJyb3Igd2hpbGUgZ2V0dGluZyBkYXRhXCIsXG4gICAgICAgIFwiTWVzc2FnZVwiOiBcIkFuIGVycm9yIG9jY3VycmVkIHdoaWxlIGdldHRpbmcgZGF0YS4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjaGFuZ2UgeW91ciBjcml0ZXJpYS5cIlxuICAgICAgfSxcbiAgICAgIFwiRXhwb3J0TGlzdFwiOiBcIkV4cG9ydCBsaXN0XCIsXG4gICAgICBcIkV4cG9ydExpbWl0RXhjZWVkZWRcIjogXCJUaGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgYXJlIHRvIGJlIGV4cG9ydGVkICh7e2RhdGFMZW5ndGh9fSkgZXhjZWVkcyB0aGUgZXhwb3J0IGxpbWl0ICh7e2V4cG9ydExpbWl0fX0pLiBQbGVhc2UgYXBwbHkgbW9yZSBzcGVjaWZpYyBmaWx0ZXJzIHRvIHRoZSBzZWFyY2guXCIsXG4gICAgICBcIkV4cG9ydFJlc3VsdHNcIjogXCJFeHBvcnRlZCBsaXN0XCJcbiAgICB9LFxuICAgIFwiVHJ1ZUZhbHNlXCI6IHtcbiAgICAgICAgXCJsb25nXCI6IHtcbiAgICAgICAgICAgIFwiWWVzXCI6IFwiWWVzXCIsXG4gICAgICAgICAgICBcIk5vXCI6IFwiTm9cIlxuICAgICAgICB9XG4gICAgfSxcbiAgICBcIlNldHRpbmdzXCI6IHtcbiAgICAgIFwiT3BlcmF0aW9uQ29tcGxldGVkXCI6IFwiVGhlIG9wZXJhdGlvbiB3YXMgY29tcGxldGVkIHN1Y2Nlc3NmdWxseS5cIlxuICAgIH0sXG4gICAgXCJBZHZhbmNlZFNlYXJjaFwiOiB7XG4gICAgICAgIFwiQ2hvb3NlXCI6IFwiPFNlbGVjdCBhIHNhdmVkIHNlYXJjaD5cIixcbiAgICAgICAgXCJDaG9vc2VEYXRlXCI6IFwiQ2hvb3NlIGRhdGVcIixcbiAgICAgICAgXCJTYXZlZFNlYXJjaGVzXCI6IFwiU2F2ZWQgc2VhcmNoZXNcIixcbiAgICAgICAgXCJUb2dnbGVEcm9wZG93blwiIDogXCJUb2dnbGUgRHJvcGRvd25cIixcbiAgICAgICAgXCJTYXZlQ3VycmVudFNlYXJjaFwiOiBcIlNhdmUgc2VhcmNoXCIsXG4gICAgICAgIFwiU2F2ZUFzXCIgOiBcIlNhdmUgYXMuLi5cIixcbiAgICAgICAgXCJTYXZlXCIgOiBcIlNhdmVcIixcbiAgICAgICAgXCJEZWxldGVcIiA6IFwiUmVtb3ZlXCIsXG4gICAgICAgIFwiTW9yZVwiOiBcIk1vcmVcIixcbiAgICAgICAgXCJMZXNzXCI6IFwiTGVzc1wiLFxuICAgICAgICBcIk1vZGFsXCIgOiB7XG4gICAgICAgICAgICBcIlRpdGxlXCIgOiBcIlNhdmUgY3VycmVudCBzZWFyY2ggY3JpdGVyaWFcIixcbiAgICAgICAgICAgIFwiSGVscFwiIDogXCJQbGVhc2UgYWRkIGEgdGl0bGUgZm9yIHRoZSBnaXZlbiBzZWFyY2ggY3JpdGVyaWEuIFRoaXMgdGl0bGUgd2lsbCBoZWxwIHlvdSB0byB1c2UgdGhvc2UgY3JpdGVyaWEgYWdhaW4gaW4gdGhlIGZ1dHVyZS5cIixcbiAgICAgICAgICAgIFwiVGl0bGVPblVzZXJFcnJvclwiIDogXCJQbGVhc2UgdXNlIGEgdmFsaWQgbmFtZSBmb3IgeW91ciBsaXN0XCIsXG4gICAgICAgICAgICBcIlRpdGxlT25MaXN0QWxyZWFkeUNyZWF0ZWRcIiA6IFwiTmFtZSBhbHJlYWR5IGluIHVzZS4gUGxlYXNlIGNob29zZSBhIGRpZmZlcmVudCBvbmVcIixcbiAgICAgICAgICAgIFwiTm9MaXN0RGVmaW5lZFwiIDogXCJDYW5ub3QgZGVmaW5lIHVzZXIgc3RvcmFnZSBrZXkuXCIsXG4gICAgICAgICAgICBcIkVtcHR5Q3JpdGVyaWFMaXN0XCIgOiBcIlBsZWFzZSBkZWZpbmUgc2VhcmNoIGNyaXRlcmlhIGJlZm9yZSBzYXZlLlwiLFxuICAgICAgICAgICAgXCJTYXZlTmFtZUxhYmVsXCIgOiBcIkxpc3QgbmFtZVwiLFxuICAgICAgICAgICAgXCJTYXZlTmFtZVBsYWNlaG9sZGVyXCIgOiBcIlR5cGUgYSB0aXRsZSBoZXJlLi4uXCIsXG4gICAgICAgICAgICBcIkFjY2VwdFwiIDogXCJTYXZlXCIsXG4gICAgICAgICAgICBcIkRlY2xpbmVcIiA6IFwiRGVjbGluZVwiLFxuICAgICAgICAgICAgXCJDbG9zZVwiIDogXCJDbG9zZVwiXG4gICAgICAgIH1cbiAgICB9LFxuICBcIkFkZEl0ZW1zXCIgOiB7XG4gICAgXCJTZWxlY3RJdGVtc1wiOiBcIlNlbGVjdCBpdGVtc1wiLFxuICB9XG59O1xuIl19
@@ -0,0 +1,38 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ *
5
+ *
6
+ * @classdesc Given a list of items runs a user defined function against that list
7
+ *
8
+ */
9
+ export class AdvancedAggregatorPipe {
10
+ /**
11
+ *
12
+ * @override
13
+ *
14
+ * @param items The list of items to run the aggregator against
15
+ * @param functionPool The functions that are available from the list caller
16
+ * @param functionName The name of the function to be called
17
+ *
18
+ * @returns The value to show at the UI
19
+ *
20
+ */
21
+ transform(items, functionPool, functionName) {
22
+ if (Array.isArray(items) && functionName && functionName in functionPool) {
23
+ return functionPool[functionName](items);
24
+ }
25
+ else {
26
+ return '-';
27
+ }
28
+ }
29
+ }
30
+ AdvancedAggregatorPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedAggregatorPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
31
+ AdvancedAggregatorPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: AdvancedAggregatorPipe, name: "callAggregator" });
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedAggregatorPipe, decorators: [{
33
+ type: Pipe,
34
+ args: [{
35
+ name: 'callAggregator'
36
+ }]
37
+ }] });
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9waXBlcy9hZHZhbmNlZC1hZ2dyZWdhdG9yLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBEOzs7OztHQUtHO0FBS0gsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQzs7Ozs7Ozs7OztPQVVHO0lBQ0gsU0FBUyxDQUFDLEtBQVUsRUFBRSxZQUFpQixFQUFFLFlBQW9CO1FBQzNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLElBQUksWUFBWSxJQUFJLFlBQVksRUFBRTtZQUN4RSxPQUFPLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsT0FBTyxHQUFHLENBQUM7U0FDWjtJQUNILENBQUM7O21IQW5CVSxzQkFBc0I7aUhBQXRCLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUhsQyxJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxnQkFBZ0I7aUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqXG4gKlxuICogQGNsYXNzZGVzYyBHaXZlbiBhIGxpc3Qgb2YgaXRlbXMgcnVucyBhIHVzZXIgZGVmaW5lZCBmdW5jdGlvbiBhZ2FpbnN0IHRoYXQgbGlzdFxuICpcbiAqL1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjYWxsQWdncmVnYXRvcidcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRBZ2dyZWdhdG9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIC8qKlxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHBhcmFtIGl0ZW1zIFRoZSBsaXN0IG9mIGl0ZW1zIHRvIHJ1biB0aGUgYWdncmVnYXRvciBhZ2FpbnN0XG4gICAqIEBwYXJhbSBmdW5jdGlvblBvb2wgVGhlIGZ1bmN0aW9ucyB0aGF0IGFyZSBhdmFpbGFibGUgZnJvbSB0aGUgbGlzdCBjYWxsZXJcbiAgICogQHBhcmFtIGZ1bmN0aW9uTmFtZSBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gdG8gYmUgY2FsbGVkXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB2YWx1ZSB0byBzaG93IGF0IHRoZSBVSVxuICAgKlxuICAgKi9cbiAgdHJhbnNmb3JtKGl0ZW1zOiBhbnksIGZ1bmN0aW9uUG9vbDogYW55LCBmdW5jdGlvbk5hbWU6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbXMpICYmIGZ1bmN0aW9uTmFtZSAmJiBmdW5jdGlvbk5hbWUgaW4gZnVuY3Rpb25Qb29sKSB7XG4gICAgICByZXR1cm4gZnVuY3Rpb25Qb29sW2Z1bmN0aW9uTmFtZV0oaXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJy0nO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,45 @@
1
+ import { Pipe } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@ngx-translate/core";
4
+ /**
5
+ *
6
+ *
7
+ * @classdesc Given a title of an aggregator list, translates and evaluates the parameter if any
8
+ *
9
+ */
10
+ export class ParseTitlePipe {
11
+ constructor(_translateService) {
12
+ this._translateService = _translateService;
13
+ }
14
+ /**
15
+ *
16
+ * @override
17
+ *
18
+ * @param title The title of the list
19
+ * @param key The current list key that is being used
20
+ *
21
+ */
22
+ transform(title, key) {
23
+ if (!title) {
24
+ return '';
25
+ }
26
+ else {
27
+ if (key === undefined || key === null || key === 'undefined' || key === 'null') {
28
+ key = this._translateService.instant('Tables.NotDefined');
29
+ }
30
+ return title.split(' ')
31
+ .map((part) => this._translateService.instant(part))
32
+ .map((part) => part.replace('${param}', key))
33
+ .join(' ');
34
+ }
35
+ }
36
+ }
37
+ ParseTitlePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ParseTitlePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
38
+ ParseTitlePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: ParseTitlePipe, name: "aggregatorListTitle" });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ParseTitlePipe, decorators: [{
40
+ type: Pipe,
41
+ args: [{
42
+ name: 'aggregatorListTitle'
43
+ }]
44
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5zZWQtYWdncmVnYXRvci1saXN0LXRpdGxlLXBhcnNlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3BpcGVzL2FkdmFuc2VkLWFnZ3JlZ2F0b3ItbGlzdC10aXRsZS1wYXJzZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFHcEQ7Ozs7O0dBS0c7QUFLSCxNQUFNLE9BQU8sY0FBYztJQUV6QixZQUNVLGlCQUFtQztRQUFuQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQWtCO0lBQzFDLENBQUM7SUFFSjs7Ozs7OztPQU9HO0lBQ0gsU0FBUyxDQUFDLEtBQWEsRUFBRSxHQUFRO1FBQy9CLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDVixPQUFPLEVBQUUsQ0FBQztTQUNYO2FBQU07WUFDTCxJQUFJLEdBQUcsS0FBSyxTQUFTLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssV0FBVyxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7Z0JBQzlFLEdBQUcsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7YUFDM0Q7WUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUNwQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ25ELEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzVDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkO0lBQ0gsQ0FBQzs7MkdBMUJVLGNBQWM7eUdBQWQsY0FBYzsyRkFBZCxjQUFjO2tCQUgxQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxxQkFBcUI7aUJBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG4vKipcbiAqXG4gKiBcbiAqIEBjbGFzc2Rlc2MgR2l2ZW4gYSB0aXRsZSBvZiBhbiBhZ2dyZWdhdG9yIGxpc3QsIHRyYW5zbGF0ZXMgYW5kIGV2YWx1YXRlcyB0aGUgcGFyYW1ldGVyIGlmIGFueVxuICpcbiAqL1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdhZ2dyZWdhdG9yTGlzdFRpdGxlJ1xufSlcbmV4cG9ydCBjbGFzcyBQYXJzZVRpdGxlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3RyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKlxuICAgKiBAb3ZlcnJpZGVcbiAgICpcbiAgICogQHBhcmFtIHRpdGxlIFRoZSB0aXRsZSBvZiB0aGUgbGlzdFxuICAgKiBAcGFyYW0ga2V5IFRoZSBjdXJyZW50IGxpc3Qga2V5IHRoYXQgaXMgYmVpbmcgdXNlZFxuICAgKlxuICAgKi9cbiAgdHJhbnNmb3JtKHRpdGxlOiBzdHJpbmcsIGtleTogYW55KTogYW55IHtcbiAgICBpZiAoIXRpdGxlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCB8fCBrZXkgPT09IG51bGwgfHwga2V5ID09PSAndW5kZWZpbmVkJyB8fCBrZXkgPT09ICdudWxsJykge1xuICAgICAgICBrZXkgPSB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1RhYmxlcy5Ob3REZWZpbmVkJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGl0bGUuc3BsaXQoJyAnKVxuICAgICAgICAubWFwKChwYXJ0KSA9PiB0aGlzLl90cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQocGFydCkpXG4gICAgICAgIC5tYXAoKHBhcnQpID0+IHBhcnQucmVwbGFjZSgnJHtwYXJhbX0nLCBrZXkpKVxuICAgICAgICAuam9pbignICcpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,37 @@
1
+ import { createFeatureSelector, createSelector, } from '@ngrx/store';
2
+ import { cloneDeep } from 'lodash';
3
+ import { TableActionTypes } from '../actions/table.actions';
4
+ export const initialState = {};
5
+ export const tableInitialState = {
6
+ filter: {},
7
+ order: []
8
+ };
9
+ export function tableReducer(state = initialState, action) {
10
+ switch (action.type) {
11
+ case TableActionTypes.LoadFilter:
12
+ return state[action.id];
13
+ case TableActionTypes.AppendFilter:
14
+ state[action.id] = {
15
+ ...state[action.id],
16
+ filter: cloneDeep(action.filter)
17
+ };
18
+ return state;
19
+ case TableActionTypes.AppendState:
20
+ state[action.id] = {
21
+ ...state[action.id],
22
+ table: action.data
23
+ };
24
+ return state;
25
+ default:
26
+ return state;
27
+ }
28
+ }
29
+ export const tableReducers = {
30
+ tables: tableReducer,
31
+ };
32
+ export const featureName = 'tables';
33
+ export const getTablesState = createFeatureSelector(featureName);
34
+ export const selectTable = createSelector(getTablesState, (state, props) => {
35
+ return state.tables[props.id];
36
+ });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JlZHVjZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxxQkFBcUIsRUFDckIsY0FBYyxHQUNmLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFnQixnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBUTFFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxFQUMzQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQWU7SUFDM0MsTUFBTSxFQUFFLEVBQUU7SUFDVixLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUM7QUFFRixNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQUssR0FBRyxZQUFZLEVBQUUsTUFBb0I7SUFDckUsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBRW5CLEtBQUssZ0JBQWdCLENBQUMsVUFBVTtZQUM5QixPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUIsS0FBSyxnQkFBZ0IsQ0FBQyxZQUFZO1lBQzlCLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUc7Z0JBQ2pCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQzthQUNqQyxDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUM7UUFFakIsS0FBSyxnQkFBZ0IsQ0FBQyxXQUFXO1lBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUc7Z0JBQ2pCLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSTthQUNuQixDQUFDO1lBQ0YsT0FBTyxLQUFLLENBQUM7UUFDbkI7WUFDRSxPQUFPLEtBQUssQ0FBQztLQUNoQjtBQUNILENBQUM7QUFRRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQXFDO0lBQzdELE1BQU0sRUFBRSxZQUFZO0NBQ3JCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDO0FBRXBDLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxxQkFBcUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUVqRSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsY0FBYyxDQUN2QyxjQUFjLEVBQ2QsQ0FBQyxLQUFxQixFQUFFLEtBQXFCLEVBQUUsRUFBRTtJQUMvQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWN0aW9uUmVkdWNlck1hcCxcbiAgY3JlYXRlRmVhdHVyZVNlbGVjdG9yLFxuICBjcmVhdGVTZWxlY3Rvcixcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFRhYmxlQWN0aW9ucywgVGFibGVBY3Rpb25UeXBlcyB9IGZyb20gJy4uL2FjdGlvbnMvdGFibGUuYWN0aW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTdGF0ZSB7XG4gIGZpbHRlcj86IGFueTtcbiAgb3JkZXI/OiBhbnk7XG4gIHRhYmxlPzogYW55O1xufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlID0ge1xufTtcblxuZXhwb3J0IGNvbnN0IHRhYmxlSW5pdGlhbFN0YXRlOiBUYWJsZVN0YXRlID0ge1xuICBmaWx0ZXI6IHt9LFxuICBvcmRlcjogW11cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZVJlZHVjZXIoc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbjogVGFibGVBY3Rpb25zKTogeyBbaWQ6IHN0cmluZ106IFRhYmxlU3RhdGU7IH0ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG5cbiAgICBjYXNlIFRhYmxlQWN0aW9uVHlwZXMuTG9hZEZpbHRlcjpcbiAgICAgIHJldHVybiBzdGF0ZVthY3Rpb24uaWRdO1xuICAgIGNhc2UgVGFibGVBY3Rpb25UeXBlcy5BcHBlbmRGaWx0ZXI6XG4gICAgICAgIHN0YXRlW2FjdGlvbi5pZF0gPSB7XG4gICAgICAgICAgLi4uc3RhdGVbYWN0aW9uLmlkXSxcbiAgICAgICAgICBmaWx0ZXI6IGNsb25lRGVlcChhY3Rpb24uZmlsdGVyKVxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gc3RhdGU7XG5cbiAgICBjYXNlIFRhYmxlQWN0aW9uVHlwZXMuQXBwZW5kU3RhdGU6XG4gICAgICAgICAgc3RhdGVbYWN0aW9uLmlkXSA9IHtcbiAgICAgICAgICAgIC4uLnN0YXRlW2FjdGlvbi5pZF0sXG4gICAgICAgICAgICB0YWJsZTogYWN0aW9uLmRhdGFcbiAgICAgICAgICB9O1xuICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXRlO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmd4VGFibGVzU3RhdGUge1xuICB0YWJsZXM6IHtcbiAgICBbaWQ6IHN0cmluZ106IFRhYmxlU3RhdGU7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCB0YWJsZVJlZHVjZXJzOiBBY3Rpb25SZWR1Y2VyTWFwPE5neFRhYmxlc1N0YXRlPiA9IHtcbiAgdGFibGVzOiB0YWJsZVJlZHVjZXIsXG59O1xuXG5leHBvcnQgY29uc3QgZmVhdHVyZU5hbWUgPSAndGFibGVzJztcblxuZXhwb3J0IGNvbnN0IGdldFRhYmxlc1N0YXRlID0gY3JlYXRlRmVhdHVyZVNlbGVjdG9yKGZlYXR1cmVOYW1lKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFRhYmxlID0gY3JlYXRlU2VsZWN0b3IoXG4gIGdldFRhYmxlc1N0YXRlLFxuICAoc3RhdGU6IE5neFRhYmxlc1N0YXRlLCBwcm9wczogeyBpZDogc3RyaW5nIH0pID0+IHtcbiAgICByZXR1cm4gc3RhdGUudGFibGVzW3Byb3BzLmlkXTtcbiAgfVxuKTtcbiJdfQ==
@@ -0,0 +1,119 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@themost/angular";
4
+ import * as i2 from "@universis/common";
5
+ export class AdvancedAggregatorService {
6
+ constructor(_context, _template) {
7
+ this._context = _context;
8
+ this._template = _template;
9
+ }
10
+ /**
11
+ *
12
+ * Formats and executes the data query
13
+ *
14
+ * @param model The target model
15
+ * @param fixedParams Pairs of parameters to always be applied
16
+ * @param queryStatement The default query to use for fetching the data (e.g. expands etc)
17
+ * @param filters A list of filter expressions to append at the query
18
+ * @param searchTemplate The template to use for searching expressions
19
+ * @param searchValue The value of the user search
20
+ *
21
+ * @returns The response of the query execution
22
+ */
23
+ // tslint:disable-next-line:max-line-length
24
+ async fetchData(model, fixedParams, queryStatement = '', filters, searchTemplate, searchValue) {
25
+ const query = this._context.model(model).asQueryable();
26
+ if (!fixedParams || typeof fixedParams !== 'object') {
27
+ fixedParams = {};
28
+ }
29
+ let filterExpressions = [];
30
+ if (fixedParams) {
31
+ for (const param of Object.keys(fixedParams)) {
32
+ filterExpressions.push(`${param} eq ${fixedParams[param]}`);
33
+ }
34
+ }
35
+ if (filters && Array.isArray(filters)) {
36
+ filterExpressions = [
37
+ ...filterExpressions,
38
+ ...filters
39
+ ];
40
+ }
41
+ if (searchTemplate && searchValue) {
42
+ let evaluatedSearch;
43
+ if (/^"(.*?)"$/.test(searchValue)) { // validate search text in double quotes
44
+ evaluatedSearch = this._template.transform(searchTemplate, {
45
+ ...fixedParams,
46
+ text: searchValue.replace(/^"|"$/g, '')
47
+ });
48
+ }
49
+ else {
50
+ // try to split words
51
+ const words = searchValue.split(' ');
52
+ // join words to a single filter
53
+ evaluatedSearch = words.map(word => {
54
+ return this._template.transform(searchTemplate, {
55
+ ...fixedParams,
56
+ text: word
57
+ });
58
+ }).join(' and ');
59
+ }
60
+ filterExpressions.push(evaluatedSearch);
61
+ }
62
+ query.setParam('$filter', filterExpressions.join('and'));
63
+ return query.expand(queryStatement).take(-1).getItems();
64
+ }
65
+ /**
66
+ *
67
+ * Formats the received data to use flat keys
68
+ *
69
+ * @param config The applied configuration
70
+ * @param data The raw data
71
+ *
72
+ * @returns The flat-key object list
73
+ *
74
+ */
75
+ formatData(config, data) {
76
+ try {
77
+ return data.map((entry) => {
78
+ if (entry.subitems && Array.isArray(entry.subitems)) {
79
+ entry.subitems = this.formatData(config, entry.subitems);
80
+ }
81
+ const entryObject = {};
82
+ for (let i = 0; i < config.columns.length; i++) {
83
+ const keys = config.columns[i].name.split('/');
84
+ let helperObject = entry[keys[0]];
85
+ if (helperObject && keys.length > 1) {
86
+ // tslint:disable-next-line:no-shadowed-variable
87
+ for (let i = 1; i < keys.length; i++) {
88
+ if (helperObject === undefined || helperObject === null) {
89
+ break;
90
+ }
91
+ else {
92
+ helperObject = helperObject[keys[i]] !== undefined && helperObject[keys[i]] !== null
93
+ ? helperObject[keys[i]]
94
+ : undefined;
95
+ }
96
+ }
97
+ }
98
+ entryObject[config.columns[i].name] = helperObject;
99
+ }
100
+ if (entry.subitems) {
101
+ entryObject.subitems = entry.subitems;
102
+ }
103
+ return entryObject;
104
+ });
105
+ }
106
+ catch (err) {
107
+ console.error(err);
108
+ }
109
+ }
110
+ }
111
+ AdvancedAggregatorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedAggregatorService, deps: [{ token: i1.AngularDataContext }, { token: i2.TemplatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
112
+ AdvancedAggregatorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedAggregatorService, providedIn: 'root' });
113
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AdvancedAggregatorService, decorators: [{
114
+ type: Injectable,
115
+ args: [{
116
+ providedIn: 'root'
117
+ }]
118
+ }], ctorParameters: function () { return [{ type: i1.AngularDataContext }, { type: i2.TemplatePipe }]; } });
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWR2YW5jZWQtYWdncmVnYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9hZHZhbmNlZC1hZ2dyZWdhdG9yL2FkdmFuY2VkLWFnZ3JlZ2F0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBTzNDLE1BQU0sT0FBTyx5QkFBeUI7SUFFcEMsWUFDVSxRQUE0QixFQUM1QixTQUF1QjtRQUR2QixhQUFRLEdBQVIsUUFBUSxDQUFvQjtRQUM1QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQzdCLENBQUM7SUFFTDs7Ozs7Ozs7Ozs7O09BWUc7SUFDSCwyQ0FBMkM7SUFDM0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxpQkFBeUIsRUFBRSxFQUFFLE9BQWlCLEVBQUUsY0FBdUIsRUFBRSxXQUFvQjtRQUMvSSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtZQUNuRCxXQUFXLEdBQUcsRUFBRSxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxpQkFBaUIsR0FBVSxFQUFFLENBQUM7UUFFbEMsSUFBSSxXQUFXLEVBQUU7WUFDZixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7Z0JBQzVDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQzdEO1NBQ0Y7UUFFRCxJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3JDLGlCQUFpQixHQUFHO2dCQUNsQixHQUFHLGlCQUFpQjtnQkFDcEIsR0FBRyxPQUFPO2FBQ1gsQ0FBQztTQUNIO1FBRUQsSUFBSSxjQUFjLElBQUksV0FBVyxFQUFFO1lBQ2pDLElBQUksZUFBZSxDQUFDO1lBQ3BCLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLHdDQUF3QztnQkFDM0UsZUFBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRTtvQkFDekQsR0FBRyxXQUFXO29CQUNkLElBQUksRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7aUJBQ3hDLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLHFCQUFxQjtnQkFDckIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckMsZ0NBQWdDO2dCQUNoQyxlQUFlLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDakMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxjQUFjLEVBQUU7d0JBQzlDLEdBQUcsV0FBVzt3QkFDZCxJQUFJLEVBQUUsSUFBSTtxQkFDWCxDQUFDLENBQUM7Z0JBQ0wsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBRWxCO1lBQ0QsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ3pDO1FBRUQsS0FBSyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUk7UUFDckIsSUFBSTtZQUNGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUN4QixJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQ25ELEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO2lCQUMxRDtnQkFDRCxNQUFNLFdBQVcsR0FBRyxFQUFTLENBQUM7Z0JBQzlCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDOUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMvQyxJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBRWxDLElBQUksWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO3dCQUNuQyxnREFBZ0Q7d0JBQ2hELEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFOzRCQUNwQyxJQUFJLFlBQVksS0FBSyxTQUFTLElBQUksWUFBWSxLQUFLLElBQUksRUFBRTtnQ0FDdkQsTUFBTTs2QkFDUDtpQ0FBTTtnQ0FDTCxZQUFZLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSTtvQ0FDbEYsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQ3ZCLENBQUMsQ0FBQyxTQUFTLENBQUM7NkJBQ2Y7eUJBQ0Y7cUJBQ0Y7b0JBRUQsV0FBVyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDO2lCQUNwRDtnQkFFRCxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7b0JBQ2xCLFdBQVcsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztpQkFDdkM7Z0JBRUQsT0FBTyxXQUFXLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7O3NIQW5IVSx5QkFBeUI7MEhBQXpCLHlCQUF5QixjQUZ4QixNQUFNOzJGQUVQLHlCQUF5QjtrQkFIckMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbmd1bGFyRGF0YUNvbnRleHQgfSBmcm9tICdAdGhlbW9zdC9hbmd1bGFyJztcbmltcG9ydCB7IFRlbXBsYXRlUGlwZSB9IGZyb20gJ0B1bml2ZXJzaXMvY29tbW9uJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQWR2YW5jZWRBZ2dyZWdhdG9yU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY29udGV4dDogQW5ndWxhckRhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgX3RlbXBsYXRlOiBUZW1wbGF0ZVBpcGVcbiAgKSB7IH1cblxuICAvKipcbiAgICpcbiAgICogRm9ybWF0cyBhbmQgZXhlY3V0ZXMgdGhlIGRhdGEgcXVlcnlcbiAgICpcbiAgICogQHBhcmFtIG1vZGVsIFRoZSB0YXJnZXQgbW9kZWxcbiAgICogQHBhcmFtIGZpeGVkUGFyYW1zIFBhaXJzIG9mIHBhcmFtZXRlcnMgdG8gYWx3YXlzIGJlIGFwcGxpZWRcbiAgICogQHBhcmFtIHF1ZXJ5U3RhdGVtZW50IFRoZSBkZWZhdWx0IHF1ZXJ5IHRvIHVzZSBmb3IgZmV0Y2hpbmcgdGhlIGRhdGEgKGUuZy4gZXhwYW5kcyBldGMpXG4gICAqIEBwYXJhbSBmaWx0ZXJzIEEgbGlzdCBvZiBmaWx0ZXIgZXhwcmVzc2lvbnMgdG8gYXBwZW5kIGF0IHRoZSBxdWVyeVxuICAgKiBAcGFyYW0gc2VhcmNoVGVtcGxhdGUgVGhlIHRlbXBsYXRlIHRvIHVzZSBmb3Igc2VhcmNoaW5nIGV4cHJlc3Npb25zXG4gICAqIEBwYXJhbSBzZWFyY2hWYWx1ZSBUaGUgdmFsdWUgb2YgdGhlIHVzZXIgc2VhcmNoXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZSBvZiB0aGUgcXVlcnkgZXhlY3V0aW9uXG4gICAqL1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXG4gIGFzeW5jIGZldGNoRGF0YShtb2RlbDogc3RyaW5nLCBmaXhlZFBhcmFtczogb2JqZWN0LCBxdWVyeVN0YXRlbWVudDogc3RyaW5nID0gJycsIGZpbHRlcnM6IHN0cmluZ1tdLCBzZWFyY2hUZW1wbGF0ZT86IHN0cmluZywgc2VhcmNoVmFsdWU/OiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5fY29udGV4dC5tb2RlbChtb2RlbCkuYXNRdWVyeWFibGUoKTtcblxuICAgIGlmICghZml4ZWRQYXJhbXMgfHwgdHlwZW9mIGZpeGVkUGFyYW1zICE9PSAnb2JqZWN0Jykge1xuICAgICAgZml4ZWRQYXJhbXMgPSB7fTtcbiAgICB9XG5cbiAgICBsZXQgZmlsdGVyRXhwcmVzc2lvbnM6IGFueVtdID0gW107XG5cbiAgICBpZiAoZml4ZWRQYXJhbXMpIHtcbiAgICAgIGZvciAoY29uc3QgcGFyYW0gb2YgT2JqZWN0LmtleXMoZml4ZWRQYXJhbXMpKSB7XG4gICAgICAgIGZpbHRlckV4cHJlc3Npb25zLnB1c2goYCR7cGFyYW19IGVxICR7Zml4ZWRQYXJhbXNbcGFyYW1dfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmaWx0ZXJzICYmIEFycmF5LmlzQXJyYXkoZmlsdGVycykpIHtcbiAgICAgIGZpbHRlckV4cHJlc3Npb25zID0gW1xuICAgICAgICAuLi5maWx0ZXJFeHByZXNzaW9ucyxcbiAgICAgICAgLi4uZmlsdGVyc1xuICAgICAgXTtcbiAgICB9XG5cbiAgICBpZiAoc2VhcmNoVGVtcGxhdGUgJiYgc2VhcmNoVmFsdWUpIHtcbiAgICAgIGxldCBldmFsdWF0ZWRTZWFyY2g7XG4gICAgICBpZiAoL15cIiguKj8pXCIkLy50ZXN0KHNlYXJjaFZhbHVlKSkgeyAvLyB2YWxpZGF0ZSBzZWFyY2ggdGV4dCBpbiBkb3VibGUgcXVvdGVzXG4gICAgICAgIGV2YWx1YXRlZFNlYXJjaCA9IHRoaXMuX3RlbXBsYXRlLnRyYW5zZm9ybShzZWFyY2hUZW1wbGF0ZSwge1xuICAgICAgICAgIC4uLmZpeGVkUGFyYW1zLFxuICAgICAgICAgIHRleHQ6IHNlYXJjaFZhbHVlLnJlcGxhY2UoL15cInxcIiQvZywgJycpXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdHJ5IHRvIHNwbGl0IHdvcmRzXG4gICAgICAgIGNvbnN0IHdvcmRzID0gc2VhcmNoVmFsdWUuc3BsaXQoJyAnKTtcbiAgICAgICAgLy8gam9pbiB3b3JkcyB0byBhIHNpbmdsZSBmaWx0ZXJcbiAgICAgICAgZXZhbHVhdGVkU2VhcmNoID0gd29yZHMubWFwKHdvcmQgPT4ge1xuICAgICAgICAgIHJldHVybiB0aGlzLl90ZW1wbGF0ZS50cmFuc2Zvcm0oc2VhcmNoVGVtcGxhdGUsIHtcbiAgICAgICAgICAgIC4uLmZpeGVkUGFyYW1zLFxuICAgICAgICAgICAgdGV4dDogd29yZFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KS5qb2luKCcgYW5kICcpO1xuXG4gICAgICB9XG4gICAgICBmaWx0ZXJFeHByZXNzaW9ucy5wdXNoKGV2YWx1YXRlZFNlYXJjaCk7XG4gICAgfVxuXG4gICAgcXVlcnkuc2V0UGFyYW0oJyRmaWx0ZXInLCBmaWx0ZXJFeHByZXNzaW9ucy5qb2luKCdhbmQnKSk7XG4gICAgcmV0dXJuIHF1ZXJ5LmV4cGFuZChxdWVyeVN0YXRlbWVudCkudGFrZSgtMSkuZ2V0SXRlbXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBGb3JtYXRzIHRoZSByZWNlaXZlZCBkYXRhIHRvIHVzZSBmbGF0IGtleXNcbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZyBUaGUgYXBwbGllZCBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSBkYXRhIFRoZSByYXcgZGF0YVxuICAgKlxuICAgKiBAcmV0dXJucyBUaGUgZmxhdC1rZXkgb2JqZWN0IGxpc3RcbiAgICpcbiAgICovXG4gIGZvcm1hdERhdGEoY29uZmlnLCBkYXRhKSB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBkYXRhLm1hcCgoZW50cnkpID0+IHtcbiAgICAgICAgaWYgKGVudHJ5LnN1Yml0ZW1zICYmIEFycmF5LmlzQXJyYXkoZW50cnkuc3ViaXRlbXMpKSB7XG4gICAgICAgICAgZW50cnkuc3ViaXRlbXMgPSB0aGlzLmZvcm1hdERhdGEoY29uZmlnLCBlbnRyeS5zdWJpdGVtcyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW50cnlPYmplY3QgPSB7fSBhcyBhbnk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29uZmlnLmNvbHVtbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBjb25zdCBrZXlzID0gY29uZmlnLmNvbHVtbnNbaV0ubmFtZS5zcGxpdCgnLycpO1xuICAgICAgICAgIGxldCBoZWxwZXJPYmplY3QgPSBlbnRyeVtrZXlzWzBdXTtcblxuICAgICAgICAgIGlmIChoZWxwZXJPYmplY3QgJiYga2V5cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tc2hhZG93ZWQtdmFyaWFibGVcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICBpZiAoaGVscGVyT2JqZWN0ID09PSB1bmRlZmluZWQgfHwgaGVscGVyT2JqZWN0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaGVscGVyT2JqZWN0ID0gaGVscGVyT2JqZWN0W2tleXNbaV1dICE9PSB1bmRlZmluZWQgJiYgaGVscGVyT2JqZWN0W2tleXNbaV1dICE9PSBudWxsXG4gICAgICAgICAgICAgICAgICA/IGhlbHBlck9iamVjdFtrZXlzW2ldXVxuICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBlbnRyeU9iamVjdFtjb25maWcuY29sdW1uc1tpXS5uYW1lXSA9IGhlbHBlck9iamVjdDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChlbnRyeS5zdWJpdGVtcykge1xuICAgICAgICAgIGVudHJ5T2JqZWN0LnN1Yml0ZW1zID0gZW50cnkuc3ViaXRlbXM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZW50cnlPYmplY3Q7XG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==