@skyux/ag-grid 5.2.1 → 5.5.0-beta.0

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 (218) hide show
  1. package/README.md +6 -4
  2. package/bundles/skyux-ag-grid.umd.js +9 -3
  3. package/documentation.json +104 -88
  4. package/esm2015/index.js +28 -0
  5. package/esm2015/index.js.map +1 -0
  6. package/esm2015/lib/modules/ag-grid/ag-grid-adapter.service.js +55 -0
  7. package/esm2015/lib/modules/ag-grid/ag-grid-adapter.service.js.map +1 -0
  8. package/esm2015/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +211 -0
  9. package/esm2015/lib/modules/ag-grid/ag-grid-data-manager-adapter.directive.js.map +1 -0
  10. package/esm2015/{modules → lib/modules}/ag-grid/ag-grid-row-delete.component.js +2 -2
  11. package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.component.js.map +1 -0
  12. package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.directive.js +230 -0
  13. package/esm2015/lib/modules/ag-grid/ag-grid-row-delete.directive.js.map +1 -0
  14. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js +96 -0
  15. package/esm2015/lib/modules/ag-grid/ag-grid-wrapper.component.js.map +1 -0
  16. package/esm2015/lib/modules/ag-grid/ag-grid.module.js +122 -0
  17. package/esm2015/lib/modules/ag-grid/ag-grid.module.js.map +1 -0
  18. package/esm2015/lib/modules/ag-grid/ag-grid.service.js +355 -0
  19. package/esm2015/lib/modules/ag-grid/ag-grid.service.js.map +1 -0
  20. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js +41 -0
  21. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js.map +1 -0
  22. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js +20 -0
  23. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js.map +1 -0
  24. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +57 -0
  25. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js.map +1 -0
  26. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js +20 -0
  27. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js.map +1 -0
  28. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js +77 -0
  29. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js.map +1 -0
  30. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js +19 -0
  31. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js.map +1 -0
  32. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +74 -0
  33. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js.map +1 -0
  34. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +38 -0
  35. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js.map +1 -0
  36. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +49 -0
  37. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js.map +1 -0
  38. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js +19 -0
  39. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js.map +1 -0
  40. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +49 -0
  41. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js.map +1 -0
  42. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js +19 -0
  43. package/esm2015/lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js.map +1 -0
  44. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js +43 -0
  45. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js.map +1 -0
  46. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js +54 -0
  47. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js.map +1 -0
  48. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js +47 -0
  49. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js.map +1 -0
  50. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +35 -0
  51. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js.map +1 -0
  52. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +19 -0
  53. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js.map +1 -0
  54. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js +68 -0
  55. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js.map +1 -0
  56. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js +20 -0
  57. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js.map +1 -0
  58. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js +41 -0
  59. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js.map +1 -0
  60. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js +18 -0
  61. package/esm2015/lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js.map +1 -0
  62. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +83 -0
  63. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js.map +1 -0
  64. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js +20 -0
  65. package/esm2015/lib/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js.map +1 -0
  66. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args.js +2 -0
  67. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args.js.map +1 -0
  68. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-config.js +2 -0
  69. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-config.js.map +1 -0
  70. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args.js +2 -0
  71. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args.js.map +1 -0
  72. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-contents.js +2 -0
  73. package/esm2015/lib/modules/ag-grid/types/ag-grid-row-delete-contents.js.map +1 -0
  74. package/esm2015/lib/modules/ag-grid/types/autocomplete-properties.js +2 -0
  75. package/esm2015/lib/modules/ag-grid/types/autocomplete-properties.js.map +1 -0
  76. package/esm2015/lib/modules/ag-grid/types/cell-class.js +17 -0
  77. package/esm2015/lib/modules/ag-grid/types/cell-class.js.map +1 -0
  78. package/esm2015/lib/modules/ag-grid/types/cell-editor-autocomplete-params.js +2 -0
  79. package/esm2015/lib/modules/ag-grid/types/cell-editor-autocomplete-params.js.map +1 -0
  80. package/esm2015/lib/modules/ag-grid/types/cell-editor-currency-params.js +2 -0
  81. package/esm2015/lib/modules/ag-grid/types/cell-editor-currency-params.js.map +1 -0
  82. package/esm2015/lib/modules/ag-grid/types/cell-editor-datepicker-params.js +2 -0
  83. package/esm2015/lib/modules/ag-grid/types/cell-editor-datepicker-params.js.map +1 -0
  84. package/esm2015/lib/modules/ag-grid/types/cell-editor-lookup-params.js +2 -0
  85. package/esm2015/lib/modules/ag-grid/types/cell-editor-lookup-params.js.map +1 -0
  86. package/esm2015/lib/modules/ag-grid/types/cell-renderer-currency-params.js +2 -0
  87. package/esm2015/lib/modules/ag-grid/types/cell-renderer-currency-params.js.map +1 -0
  88. package/esm2015/lib/modules/ag-grid/types/cell-renderer-lookup-params.js +2 -0
  89. package/esm2015/lib/modules/ag-grid/types/cell-renderer-lookup-params.js.map +1 -0
  90. package/esm2015/lib/modules/ag-grid/types/cell-renderer-validator-params.js +2 -0
  91. package/esm2015/lib/modules/ag-grid/types/cell-renderer-validator-params.js.map +1 -0
  92. package/esm2015/lib/modules/ag-grid/types/cell-type.js +84 -0
  93. package/esm2015/lib/modules/ag-grid/types/cell-type.js.map +1 -0
  94. package/esm2015/lib/modules/ag-grid/types/currency-properties.js +2 -0
  95. package/esm2015/lib/modules/ag-grid/types/currency-properties.js.map +1 -0
  96. package/esm2015/lib/modules/ag-grid/types/datepicker-properties.js +2 -0
  97. package/esm2015/lib/modules/ag-grid/types/datepicker-properties.js.map +1 -0
  98. package/esm2015/lib/modules/ag-grid/types/header-class.js +8 -0
  99. package/esm2015/lib/modules/ag-grid/types/header-class.js.map +1 -0
  100. package/esm2015/lib/modules/ag-grid/types/lookup-properties.js +26 -0
  101. package/esm2015/lib/modules/ag-grid/types/lookup-properties.js.map +1 -0
  102. package/esm2015/lib/modules/ag-grid/types/sky-grid-options.js +2 -0
  103. package/esm2015/lib/modules/ag-grid/types/sky-grid-options.js.map +1 -0
  104. package/esm2015/lib/modules/ag-grid/types/validator-options.js +2 -0
  105. package/esm2015/lib/modules/ag-grid/types/validator-options.js.map +1 -0
  106. package/esm2015/lib/modules/shared/ag-grid-resources.module.js +68 -0
  107. package/esm2015/lib/modules/shared/ag-grid-resources.module.js.map +1 -0
  108. package/esm2015/skyux-ag-grid.js +2 -2
  109. package/esm2015/skyux-ag-grid.js.map +1 -0
  110. package/fesm2015/skyux-ag-grid.js +9 -3
  111. package/fesm2015/skyux-ag-grid.js.map +1 -1
  112. package/index.d.ts +24 -0
  113. package/{modules → lib/modules}/ag-grid/ag-grid-adapter.service.d.ts +0 -0
  114. package/{modules → lib/modules}/ag-grid/ag-grid-data-manager-adapter.directive.d.ts +0 -0
  115. package/{modules → lib/modules}/ag-grid/ag-grid-row-delete.component.d.ts +0 -0
  116. package/{modules → lib/modules}/ag-grid/ag-grid-row-delete.directive.d.ts +0 -0
  117. package/{modules → lib/modules}/ag-grid/ag-grid-wrapper.component.d.ts +0 -0
  118. package/{modules → lib/modules}/ag-grid/ag-grid.module.d.ts +0 -0
  119. package/{modules → lib/modules}/ag-grid/ag-grid.service.d.ts +0 -0
  120. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.d.ts +0 -0
  121. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.d.ts +0 -0
  122. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.d.ts +0 -0
  123. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.d.ts +0 -0
  124. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.d.ts +0 -0
  125. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.d.ts +0 -0
  126. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.d.ts +1 -0
  127. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.d.ts +0 -0
  128. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.d.ts +0 -0
  129. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.d.ts +0 -0
  130. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.d.ts +0 -0
  131. package/{modules → lib/modules}/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.d.ts +0 -0
  132. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.d.ts +0 -0
  133. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.d.ts +0 -0
  134. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.d.ts +0 -0
  135. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.d.ts +0 -0
  136. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.d.ts +0 -0
  137. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.d.ts +0 -0
  138. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.d.ts +0 -0
  139. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.d.ts +0 -0
  140. package/{modules → lib/modules}/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.d.ts +0 -0
  141. package/{modules → lib/modules}/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.d.ts +0 -0
  142. package/{modules → lib/modules}/ag-grid/cell-validator/ag-grid-cell-validator.module.d.ts +0 -0
  143. package/{modules → lib/modules}/ag-grid/types/ag-grid-row-delete-cancel-args.d.ts +0 -0
  144. package/{modules → lib/modules}/ag-grid/types/ag-grid-row-delete-config.d.ts +0 -0
  145. package/{modules → lib/modules}/ag-grid/types/ag-grid-row-delete-confirm-args.d.ts +0 -0
  146. package/{modules → lib/modules}/ag-grid/types/ag-grid-row-delete-contents.d.ts +0 -0
  147. package/{modules → lib/modules}/ag-grid/types/autocomplete-properties.d.ts +0 -0
  148. package/{modules → lib/modules}/ag-grid/types/cell-class.d.ts +0 -0
  149. package/{modules → lib/modules}/ag-grid/types/cell-editor-autocomplete-params.d.ts +0 -0
  150. package/{modules → lib/modules}/ag-grid/types/cell-editor-currency-params.d.ts +0 -0
  151. package/{modules → lib/modules}/ag-grid/types/cell-editor-datepicker-params.d.ts +0 -0
  152. package/{modules → lib/modules}/ag-grid/types/cell-editor-lookup-params.d.ts +0 -0
  153. package/{modules → lib/modules}/ag-grid/types/cell-renderer-currency-params.d.ts +0 -0
  154. package/{modules → lib/modules}/ag-grid/types/cell-renderer-lookup-params.d.ts +0 -0
  155. package/{modules → lib/modules}/ag-grid/types/cell-renderer-validator-params.d.ts +0 -0
  156. package/{modules → lib/modules}/ag-grid/types/cell-type.d.ts +0 -0
  157. package/{modules → lib/modules}/ag-grid/types/currency-properties.d.ts +0 -0
  158. package/{modules → lib/modules}/ag-grid/types/datepicker-properties.d.ts +0 -0
  159. package/{modules → lib/modules}/ag-grid/types/header-class.d.ts +0 -0
  160. package/{modules → lib/modules}/ag-grid/types/lookup-properties.d.ts +5 -1
  161. package/{modules → lib/modules}/ag-grid/types/sky-grid-options.d.ts +0 -0
  162. package/{modules → lib/modules}/ag-grid/types/validator-options.d.ts +0 -0
  163. package/{modules → lib/modules}/shared/ag-grid-resources.module.d.ts +0 -0
  164. package/package.json +24 -10
  165. package/skyux-ag-grid.d.ts +1 -1
  166. package/LICENSE +0 -21
  167. package/esm2015/modules/ag-grid/ag-grid-adapter.service.js +0 -54
  168. package/esm2015/modules/ag-grid/ag-grid-data-manager-adapter.directive.js +0 -210
  169. package/esm2015/modules/ag-grid/ag-grid-row-delete.directive.js +0 -230
  170. package/esm2015/modules/ag-grid/ag-grid-wrapper.component.js +0 -95
  171. package/esm2015/modules/ag-grid/ag-grid.module.js +0 -122
  172. package/esm2015/modules/ag-grid/ag-grid.service.js +0 -352
  173. package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component.js +0 -41
  174. package/esm2015/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.module.js +0 -20
  175. package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component.js +0 -57
  176. package/esm2015/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.module.js +0 -20
  177. package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component.js +0 -76
  178. package/esm2015/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.module.js +0 -19
  179. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.component.js +0 -70
  180. package/esm2015/modules/ag-grid/cell-editors/cell-editor-lookup/cell-editor-lookup.module.js +0 -38
  181. package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component.js +0 -49
  182. package/esm2015/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.module.js +0 -19
  183. package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component.js +0 -49
  184. package/esm2015/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.module.js +0 -19
  185. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component.js +0 -43
  186. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component.js +0 -54
  187. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.module.js +0 -47
  188. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.component.js +0 -35
  189. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-lookup/cell-renderer-lookup.module.js +0 -19
  190. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component.js +0 -68
  191. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.module.js +0 -20
  192. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component.js +0 -41
  193. package/esm2015/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.module.js +0 -18
  194. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component.js +0 -83
  195. package/esm2015/modules/ag-grid/cell-validator/ag-grid-cell-validator.module.js +0 -20
  196. package/esm2015/modules/ag-grid/types/ag-grid-row-delete-cancel-args.js +0 -2
  197. package/esm2015/modules/ag-grid/types/ag-grid-row-delete-config.js +0 -2
  198. package/esm2015/modules/ag-grid/types/ag-grid-row-delete-confirm-args.js +0 -2
  199. package/esm2015/modules/ag-grid/types/ag-grid-row-delete-contents.js +0 -2
  200. package/esm2015/modules/ag-grid/types/autocomplete-properties.js +0 -2
  201. package/esm2015/modules/ag-grid/types/cell-class.js +0 -17
  202. package/esm2015/modules/ag-grid/types/cell-editor-autocomplete-params.js +0 -2
  203. package/esm2015/modules/ag-grid/types/cell-editor-currency-params.js +0 -2
  204. package/esm2015/modules/ag-grid/types/cell-editor-datepicker-params.js +0 -2
  205. package/esm2015/modules/ag-grid/types/cell-editor-lookup-params.js +0 -2
  206. package/esm2015/modules/ag-grid/types/cell-renderer-currency-params.js +0 -2
  207. package/esm2015/modules/ag-grid/types/cell-renderer-lookup-params.js +0 -2
  208. package/esm2015/modules/ag-grid/types/cell-renderer-validator-params.js +0 -2
  209. package/esm2015/modules/ag-grid/types/cell-type.js +0 -84
  210. package/esm2015/modules/ag-grid/types/currency-properties.js +0 -2
  211. package/esm2015/modules/ag-grid/types/datepicker-properties.js +0 -2
  212. package/esm2015/modules/ag-grid/types/header-class.js +0 -8
  213. package/esm2015/modules/ag-grid/types/lookup-properties.js +0 -24
  214. package/esm2015/modules/ag-grid/types/sky-grid-options.js +0 -2
  215. package/esm2015/modules/ag-grid/types/validator-options.js +0 -2
  216. package/esm2015/modules/shared/ag-grid-resources.module.js +0 -68
  217. package/esm2015/public-api.js +0 -28
  218. package/public-api.d.ts +0 -24
package/index.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ export * from './lib/modules/ag-grid/ag-grid.module';
2
+ export * from './lib/modules/ag-grid/ag-grid.service';
3
+ export * from './lib/modules/ag-grid/types/ag-grid-row-delete-cancel-args';
4
+ export * from './lib/modules/ag-grid/types/ag-grid-row-delete-confirm-args';
5
+ export * from './lib/modules/ag-grid/types/autocomplete-properties';
6
+ export * from './lib/modules/ag-grid/types/cell-class';
7
+ export * from './lib/modules/ag-grid/types/cell-type';
8
+ export * from './lib/modules/ag-grid/types/datepicker-properties';
9
+ export * from './lib/modules/ag-grid/types/header-class';
10
+ export * from './lib/modules/ag-grid/types/sky-grid-options';
11
+ export { SkyAgGridCellEditorAutocompleteComponent as λ1 } from './lib/modules/ag-grid/cell-editors/cell-editor-autocomplete/cell-editor-autocomplete.component';
12
+ export { SkyAgGridCellEditorTextComponent as λ2 } from './lib/modules/ag-grid/cell-editors/cell-editor-text/cell-editor-text.component';
13
+ export { SkyAgGridCellEditorCurrencyComponent as λ3 } from './lib/modules/ag-grid/cell-editors/cell-editor-currency/cell-editor-currency.component';
14
+ export { SkyAgGridCellEditorNumberComponent as λ4 } from './lib/modules/ag-grid/cell-editors/cell-editor-number/cell-editor-number.component';
15
+ export { SkyAgGridCellEditorDatepickerComponent as λ5 } from './lib/modules/ag-grid/cell-editors/cell-editor-datepicker/cell-editor-datepicker.component';
16
+ export { SkyAgGridRowDeleteComponent as λ6 } from './lib/modules/ag-grid/ag-grid-row-delete.component';
17
+ export { SkyAgGridCellRendererRowSelectorComponent as λ7 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-row-selector/cell-renderer-row-selector.component';
18
+ export { SkyAgGridCellRendererCurrencyValidatorComponent as λ8 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency-validator.component';
19
+ export { SkyAgGridCellRendererCurrencyComponent as λ9 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-currency/cell-renderer-currency.component';
20
+ export { SkyAgGridCellRendererValidatorTooltipComponent as λ10 } from './lib/modules/ag-grid/cell-renderers/cell-renderer-validator-tooltip/cell-renderer-validator-tooltip.component';
21
+ export { SkyAgGridCellValidatorTooltipComponent as λ11 } from './lib/modules/ag-grid/cell-validator/ag-grid-cell-validator-tooltip.component';
22
+ export { SkyAgGridWrapperComponent as λ12 } from './lib/modules/ag-grid/ag-grid-wrapper.component';
23
+ export { SkyAgGridRowDeleteDirective as λ13 } from './lib/modules/ag-grid/ag-grid-row-delete.directive';
24
+ export { SkyAgGridDataManagerAdapterDirective as λ14 } from './lib/modules/ag-grid/ag-grid-data-manager-adapter.directive';
@@ -11,6 +11,7 @@ export declare class SkyAgGridCellEditorLookupComponent implements ICellEditorAn
11
11
  skyComponentProperties?: SkyLookupProperties;
12
12
  isAlive: boolean;
13
13
  lookupForm: FormGroup;
14
+ useAsyncSearch: boolean;
14
15
  private params;
15
16
  constructor(changeDetector: ChangeDetectorRef, elementRef: ElementRef);
16
17
  agInit(params: SkyCellEditorLookupParams): void;
@@ -1,6 +1,7 @@
1
1
  import { TemplateRef } from '@angular/core';
2
- import { SkyAutocompleteSearchFunction, SkyAutocompleteSearchFunctionFilter, SkyLookupSelectModeType, SkyLookupShowMoreConfig } from '@skyux/lookup';
2
+ import { SkyAutocompleteSearchAsyncArgs, SkyAutocompleteSearchFunction, SkyAutocompleteSearchFunctionFilter, SkyLookupAddClickEventArgs, SkyLookupSelectModeType, SkyLookupShowMoreConfig } from '@skyux/lookup';
3
3
  export interface SkyLookupProperties {
4
+ addClick?: (args: SkyLookupAddClickEventArgs) => {};
4
5
  ariaLabel?: string;
5
6
  autocompleteAttribute?: string;
6
7
  data: any[];
@@ -12,6 +13,7 @@ export interface SkyLookupProperties {
12
13
  placeholderText?: string;
13
14
  propertiesToSearch?: string[];
14
15
  search?: SkyAutocompleteSearchFunction;
16
+ searchAsync?: (args: SkyAutocompleteSearchAsyncArgs) => {};
15
17
  searchFilters?: SkyAutocompleteSearchFunctionFilter[];
16
18
  searchResultsLimit?: number;
17
19
  searchResultTemplate?: TemplateRef<any>;
@@ -22,6 +24,7 @@ export interface SkyLookupProperties {
22
24
  wrapperClass?: string;
23
25
  }
24
26
  export declare function applySkyLookupPropertiesDefaults(skyLookupProperties: SkyLookupProperties): {
27
+ addClick: (args: SkyLookupAddClickEventArgs) => {};
25
28
  ariaLabel: string;
26
29
  autocompleteAttribute: string;
27
30
  data: any[];
@@ -33,6 +36,7 @@ export declare function applySkyLookupPropertiesDefaults(skyLookupProperties: Sk
33
36
  placeholderText: string;
34
37
  propertiesToSearch: string[];
35
38
  search: SkyAutocompleteSearchFunction;
39
+ searchAsync: (args: SkyAutocompleteSearchAsyncArgs) => {};
36
40
  searchFilters: SkyAutocompleteSearchFunctionFilter[];
37
41
  searchResultsLimit: number;
38
42
  searchResultTemplate: TemplateRef<any>;
package/package.json CHANGED
@@ -1,24 +1,38 @@
1
1
  {
2
2
  "name": "@skyux/ag-grid",
3
- "version": "5.2.1",
3
+ "version": "5.5.0-beta.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^12.2.16",
6
6
  "@angular/core": "^12.2.16",
7
7
  "ag-grid-angular": "^26.0.0",
8
8
  "ag-grid-community": "^26.0.0",
9
- "@skyux/autonumeric": "^5.0.2",
10
- "@skyux/data-manager": "^5.0.2",
11
- "@skyux/datetime": "^5.1.2",
12
- "@skyux/forms": "^5.0.2",
13
- "@skyux/i18n": "^5.0.1",
14
- "@skyux/indicators": "^5.2.0",
15
- "@skyux/layout": "^5.2.2",
16
- "@skyux/lookup": "^5.2.0",
17
- "@skyux/popovers": "^5.0.2"
9
+ "@skyux/autonumeric": "5.5.0-beta.0",
10
+ "@skyux/data-manager": "5.5.0-beta.0",
11
+ "@skyux/datetime": "5.5.0-beta.0",
12
+ "@skyux/forms": "5.5.0-beta.0",
13
+ "@skyux/i18n": "5.5.0-beta.0",
14
+ "@skyux/indicators": "5.5.0-beta.0",
15
+ "@skyux/layout": "5.5.0-beta.0",
16
+ "@skyux/lookup": "5.5.0-beta.0",
17
+ "@skyux/popovers": "5.5.0-beta.0"
18
18
  },
19
19
  "dependencies": {
20
20
  "tslib": "^2.3.1"
21
21
  },
22
+ "author": "Blackbaud, Inc.",
23
+ "keywords": [
24
+ "blackbaud",
25
+ "skyux"
26
+ ],
27
+ "license": "MIT",
28
+ "repository": {
29
+ "type": "git",
30
+ "url": "git+https://github.com/blackbaud/skyux.git"
31
+ },
32
+ "bugs": {
33
+ "url": "https://github.com/blackbaud/skyux/issues"
34
+ },
35
+ "homepage": "https://github.com/blackbaud/skyux#readme",
22
36
  "main": "bundles/skyux-ag-grid.umd.js",
23
37
  "module": "fesm2015/skyux-ag-grid.js",
24
38
  "es2015": "fesm2015/skyux-ag-grid.js",
@@ -2,4 +2,4 @@
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
4
  /// <amd-module name="@skyux/ag-grid" />
5
- export * from './public-api';
5
+ export * from './index';
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2020 Blackbaud
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
@@ -1,54 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@skyux/core";
4
- export class SkyAgGridAdapterService {
5
- constructor(skyAdapterService) {
6
- this.skyAdapterService = skyAdapterService;
7
- }
8
- getElementOrParentWithClass(element, className) {
9
- if (element && element.classList.contains(className)) {
10
- return element;
11
- }
12
- else if (element.parentElement) {
13
- return this.getElementOrParentWithClass(element.parentElement, className);
14
- }
15
- }
16
- setFocusedElementById(parentEl, selector) {
17
- const element = parentEl.querySelector(`#${selector}`);
18
- /* istanbul ignore else */
19
- if (element) {
20
- element.focus();
21
- }
22
- }
23
- getFocusedElement() {
24
- return document.activeElement;
25
- }
26
- getNextFocusableElement(currentEl, parentEl, moveFocusLeft) {
27
- if (parentEl) {
28
- const focusableChildren = this.skyAdapterService.getFocusableChildren(parentEl);
29
- const currentElementIndex = focusableChildren.indexOf(currentEl);
30
- const nextIndex = moveFocusLeft
31
- ? currentElementIndex - 1
32
- : currentElementIndex + 1;
33
- if ((!moveFocusLeft && focusableChildren.length >= nextIndex) ||
34
- (moveFocusLeft && nextIndex >= 0)) {
35
- return focusableChildren[nextIndex];
36
- }
37
- }
38
- }
39
- focusOnFocusableChildren(element) {
40
- let focusableChildren = this.skyAdapterService.getFocusableChildren(element);
41
- if (focusableChildren.length) {
42
- focusableChildren[0].focus();
43
- }
44
- }
45
- }
46
- SkyAgGridAdapterService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable });
47
- SkyAgGridAdapterService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridAdapterService, providedIn: 'root' });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridAdapterService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- providedIn: 'root',
52
- }]
53
- }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }]; } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1ncmlkL3NyYy9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTzNDLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBb0IsaUJBQXdDO1FBQXhDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBdUI7SUFBRyxDQUFDO0lBRXpELDJCQUEyQixDQUNoQyxPQUFvQixFQUNwQixTQUFpQjtRQUVqQixJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUNwRCxPQUFPLE9BQU8sQ0FBQztTQUNoQjthQUFNLElBQUksT0FBTyxDQUFDLGFBQWEsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQzNFO0lBQ0gsQ0FBQztJQUVNLHFCQUFxQixDQUFDLFFBQXFCLEVBQUUsUUFBZ0I7UUFDbEUsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFnQixDQUFDO1FBRXRFLDBCQUEwQjtRQUMxQixJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsT0FBTyxRQUFRLENBQUMsYUFBNEIsQ0FBQztJQUMvQyxDQUFDO0lBRU0sdUJBQXVCLENBQzVCLFNBQXNCLEVBQ3RCLFFBQXFCLEVBQ3JCLGFBQXVCO1FBRXZCLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxpQkFBaUIsR0FDckIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELE1BQU0sbUJBQW1CLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ2pFLE1BQU0sU0FBUyxHQUFHLGFBQWE7Z0JBQzdCLENBQUMsQ0FBQyxtQkFBbUIsR0FBRyxDQUFDO2dCQUN6QixDQUFDLENBQUMsbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO1lBRTVCLElBQ0UsQ0FBQyxDQUFDLGFBQWEsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDO2dCQUN6RCxDQUFDLGFBQWEsSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQ2pDO2dCQUNBLE9BQU8saUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDckM7U0FDRjtJQUNILENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxPQUFvQjtRQUNsRCxJQUFJLGlCQUFpQixHQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkQsSUFBSSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUU7WUFDNUIsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDOUI7SUFDSCxDQUFDOztxSEF4RFUsdUJBQXVCO3lIQUF2Qix1QkFBdUIsY0FGdEIsTUFBTTs0RkFFUCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lDb3JlQWRhcHRlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lBZ0dyaWRBZGFwdGVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2t5QWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZSkge31cblxuICBwdWJsaWMgZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIGNsYXNzTmFtZTogc3RyaW5nXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50LmNsYXNzTGlzdC5jb250YWlucyhjbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKGVsZW1lbnQucGFyZW50RWxlbWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0RWxlbWVudE9yUGFyZW50V2l0aENsYXNzKGVsZW1lbnQucGFyZW50RWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0Rm9jdXNlZEVsZW1lbnRCeUlkKHBhcmVudEVsOiBIVE1MRWxlbWVudCwgc2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBwYXJlbnRFbC5xdWVyeVNlbGVjdG9yKGAjJHtzZWxlY3Rvcn1gKSBhcyBIVE1MRWxlbWVudDtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Rm9jdXNlZEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiBkb2N1bWVudC5hY3RpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIGdldE5leHRGb2N1c2FibGVFbGVtZW50KFxuICAgIGN1cnJlbnRFbDogSFRNTEVsZW1lbnQsXG4gICAgcGFyZW50RWw6IEhUTUxFbGVtZW50LFxuICAgIG1vdmVGb2N1c0xlZnQ/OiBib29sZWFuXG4gICk6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICBpZiAocGFyZW50RWwpIHtcbiAgICAgIGNvbnN0IGZvY3VzYWJsZUNoaWxkcmVuID1cbiAgICAgICAgdGhpcy5za3lBZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihwYXJlbnRFbCk7XG4gICAgICBjb25zdCBjdXJyZW50RWxlbWVudEluZGV4ID0gZm9jdXNhYmxlQ2hpbGRyZW4uaW5kZXhPZihjdXJyZW50RWwpO1xuICAgICAgY29uc3QgbmV4dEluZGV4ID0gbW92ZUZvY3VzTGVmdFxuICAgICAgICA/IGN1cnJlbnRFbGVtZW50SW5kZXggLSAxXG4gICAgICAgIDogY3VycmVudEVsZW1lbnRJbmRleCArIDE7XG5cbiAgICAgIGlmIChcbiAgICAgICAgKCFtb3ZlRm9jdXNMZWZ0ICYmIGZvY3VzYWJsZUNoaWxkcmVuLmxlbmd0aCA+PSBuZXh0SW5kZXgpIHx8XG4gICAgICAgIChtb3ZlRm9jdXNMZWZ0ICYmIG5leHRJbmRleCA+PSAwKVxuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmb2N1c2FibGVDaGlsZHJlbltuZXh0SW5kZXhdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb2N1c09uRm9jdXNhYmxlQ2hpbGRyZW4oZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICBsZXQgZm9jdXNhYmxlQ2hpbGRyZW4gPVxuICAgICAgdGhpcy5za3lBZGFwdGVyU2VydmljZS5nZXRGb2N1c2FibGVDaGlsZHJlbihlbGVtZW50KTtcblxuICAgIGlmIChmb2N1c2FibGVDaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIGZvY3VzYWJsZUNoaWxkcmVuWzBdLmZvY3VzKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,210 +0,0 @@
1
- import { ContentChildren, Directive, Input, } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { takeUntil, filter } from 'rxjs/operators';
4
- import { AgGridAngular } from 'ag-grid-angular';
5
- import { SkyAgGridWrapperComponent } from './ag-grid-wrapper.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@skyux/data-manager";
8
- /**
9
- * @internal
10
- */
11
- export class SkyAgGridDataManagerAdapterDirective {
12
- constructor(changeDetector, dataManagerSvc) {
13
- this.changeDetector = changeDetector;
14
- this.dataManagerSvc = dataManagerSvc;
15
- this.ngUnsubscribe = new Subject();
16
- }
17
- ngAfterContentInit() {
18
- this.dataManagerSvc.setViewkeeperClasses(this.viewId, ['.ag-header']);
19
- this.viewConfig = this.dataManagerSvc.getViewById(this.viewId);
20
- this.checkForAgGrid();
21
- this.checkForSkyAgGridWrapper();
22
- this.agGridList.changes
23
- .pipe(takeUntil(this.ngUnsubscribe))
24
- .subscribe(() => this.checkForAgGrid());
25
- this.skyAgGridWrapperList.changes
26
- .pipe(takeUntil(this.ngUnsubscribe))
27
- .subscribe(() => this.checkForSkyAgGridWrapper());
28
- }
29
- ngOnDestroy() {
30
- this.ngUnsubscribe.next();
31
- this.ngUnsubscribe.complete();
32
- }
33
- checkForAgGrid() {
34
- const agGridCount = this.agGridList.length;
35
- /* istanbul ignore else */
36
- if (agGridCount === 0) {
37
- this.unregisterAgGrid();
38
- }
39
- else if (this.agGridList.first !== this.currentAgGrid) {
40
- this.registerAgGrid();
41
- }
42
- if (agGridCount > 1) {
43
- console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');
44
- }
45
- }
46
- checkForSkyAgGridWrapper() {
47
- const skyAgGridWrapperCount = this.skyAgGridWrapperList.length;
48
- /* istanbul ignore else */
49
- if (skyAgGridWrapperCount === 0) {
50
- this.unregisterSkyAgGridWrapper();
51
- }
52
- else if (this.skyAgGridWrapperList.first !== this.currentSkyAgGridWrapper) {
53
- this.registerSkyAgGridWrapper();
54
- }
55
- if (skyAgGridWrapperCount > 1) {
56
- console.warn('More than one ag-grid child component was found. Using the first ag-Grid.');
57
- }
58
- }
59
- unregisterAgGrid() {
60
- this.currentAgGrid = undefined;
61
- /* istanbul ignore if */
62
- if (this.dataStateSub) {
63
- this.dataStateSub.unsubscribe();
64
- }
65
- }
66
- unregisterSkyAgGridWrapper() {
67
- this.currentSkyAgGridWrapper = undefined;
68
- }
69
- registerSkyAgGridWrapper() {
70
- this.unregisterSkyAgGridWrapper();
71
- this.currentSkyAgGridWrapper = this.skyAgGridWrapperList.first;
72
- setTimeout(() => {
73
- if (this.currentSkyAgGridWrapper) {
74
- this.currentSkyAgGridWrapper.viewkeeperClasses = [];
75
- }
76
- });
77
- }
78
- registerAgGrid() {
79
- this.unregisterAgGrid();
80
- const agGrid = this.agGridList.first;
81
- this.currentAgGrid = agGrid;
82
- agGrid.gridReady.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
83
- this.viewConfig.onSelectAllClick = this.selectAll.bind(this);
84
- this.viewConfig.onClearAllClick = this.clearAll.bind(this);
85
- this.dataManagerSvc.updateViewConfig(this.viewConfig);
86
- this.dataStateSub = this.dataManagerSvc
87
- .getDataStateUpdates(this.viewConfig.id)
88
- .pipe(takeUntil(this.ngUnsubscribe))
89
- .subscribe((dataState) => {
90
- this.currentDataState = dataState;
91
- this.displayColumns(dataState);
92
- });
93
- agGrid.api.sizeColumnsToFit();
94
- });
95
- agGrid.columnMoved
96
- .pipe(takeUntil(this.ngUnsubscribe), filter((event) => ![
97
- 'gridInitializing',
98
- 'uiColumnResized',
99
- 'uiColumnDragged',
100
- 'api',
101
- ].includes(event.source)))
102
- .subscribe((value) => {
103
- this.updateColumnsInCurrentDataState(value.columnApi);
104
- });
105
- let currentColumns;
106
- agGrid.dragStarted
107
- .pipe(takeUntil(this.ngUnsubscribe))
108
- .subscribe((value) => {
109
- currentColumns = this.getColumnOrder(value.columnApi);
110
- });
111
- agGrid.dragStopped
112
- .pipe(takeUntil(this.ngUnsubscribe))
113
- .subscribe((value) => {
114
- const newColumns = this.getColumnOrder(value.columnApi);
115
- const hasChanged = currentColumns.findIndex((colId, i) => colId !== newColumns[i]);
116
- if (hasChanged > -1) {
117
- this.updateColumnsInCurrentDataState(value.columnApi);
118
- }
119
- });
120
- agGrid.rowSelected
121
- .pipe(takeUntil(this.ngUnsubscribe))
122
- .subscribe((event) => {
123
- const row = event.node;
124
- let selectedIds = this.currentDataState.selectedIds || [];
125
- const rowIndex = selectedIds.indexOf(row.data.id);
126
- if (row.isSelected() && rowIndex === -1) {
127
- selectedIds.push(row.data.id);
128
- }
129
- else if (!row.isSelected() && rowIndex !== -1) {
130
- selectedIds.splice(rowIndex, 1);
131
- }
132
- this.currentDataState.selectedIds = selectedIds;
133
- this.dataManagerSvc.updateDataState(this.currentDataState, this.viewConfig.id);
134
- this.changeDetector.markForCheck();
135
- });
136
- agGrid.sortChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe(() => {
137
- const gridColumnStates = agGrid.columnApi.getColumnState();
138
- let sortOption;
139
- /* istanbul ignore else */
140
- if (gridColumnStates.length) {
141
- const activeSortColumnState = gridColumnStates.find((aGridColumnState) => aGridColumnState.sortIndex === 0);
142
- const dataManagerConfig = this.dataManagerSvc.getCurrentDataManagerConfig();
143
- /* istanbul ignore else */
144
- if (dataManagerConfig.sortOptions && activeSortColumnState) {
145
- sortOption = dataManagerConfig.sortOptions.find((option) => {
146
- return (option.propertyName === activeSortColumnState.colId &&
147
- option.descending === (activeSortColumnState.sort === 'desc'));
148
- });
149
- }
150
- else {
151
- sortOption = undefined;
152
- }
153
- }
154
- this.currentDataState.activeSortOption = sortOption;
155
- this.dataManagerSvc.updateDataState(this.currentDataState, this.viewConfig.id);
156
- });
157
- }
158
- updateColumnsInCurrentDataState(columnApi) {
159
- const columnOrder = this.getColumnOrder(columnApi);
160
- const viewState = this.currentDataState.getViewStateById(this.viewConfig.id);
161
- viewState.displayedColumnIds = columnOrder;
162
- this.dataManagerSvc.updateDataState(this.currentDataState.addOrUpdateView(this.viewConfig.id, viewState), this.viewConfig.id);
163
- }
164
- getColumnOrder(columnApi) {
165
- return columnApi
166
- .getAllDisplayedVirtualColumns()
167
- .map((col) => col.getColDef().colId);
168
- }
169
- displayColumns(dataState) {
170
- const agGrid = this.currentAgGrid;
171
- const viewState = dataState.getViewStateById(this.viewConfig.id);
172
- let displayedColumnIds = [];
173
- /*istanbul ignore else*/
174
- if (viewState.displayedColumnIds) {
175
- displayedColumnIds = viewState.displayedColumnIds;
176
- }
177
- const columns = agGrid.columnApi.getAllColumns();
178
- for (const column of columns) {
179
- const colId = column.getColId();
180
- const colIndex = displayedColumnIds.indexOf(colId);
181
- agGrid.columnApi.setColumnVisible(colId, colIndex !== -1);
182
- agGrid.columnApi.moveColumn(colId, colIndex);
183
- }
184
- }
185
- selectAll() {
186
- const agGrid = this.agGridList.first;
187
- agGrid.api.selectAll();
188
- }
189
- clearAll() {
190
- const agGrid = this.agGridList.first;
191
- agGrid.api.deselectAll();
192
- }
193
- }
194
- SkyAgGridDataManagerAdapterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.SkyDataManagerService }], target: i0.ɵɵFactoryTarget.Directive });
195
- SkyAgGridDataManagerAdapterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "12.2.16", type: SkyAgGridDataManagerAdapterDirective, selector: "[skyAgGridDataManagerAdapter]", inputs: { viewId: "viewId" }, queries: [{ propertyName: "agGridList", predicate: AgGridAngular, descendants: true }, { propertyName: "skyAgGridWrapperList", predicate: SkyAgGridWrapperComponent, descendants: true }], ngImport: i0 });
196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyAgGridDataManagerAdapterDirective, decorators: [{
197
- type: Directive,
198
- args: [{
199
- selector: '[skyAgGridDataManagerAdapter]',
200
- }]
201
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.SkyDataManagerService }]; }, propDecorators: { viewId: [{
202
- type: Input
203
- }], agGridList: [{
204
- type: ContentChildren,
205
- args: [AgGridAngular, { descendants: true }]
206
- }], skyAgGridWrapperList: [{
207
- type: ContentChildren,
208
- args: [SkyAgGridWrapperComponent, { descendants: true }]
209
- }] } });
210
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hZy1ncmlkL3NyYy9tb2R1bGVzL2FnLWdyaWQvYWctZ3JpZC1kYXRhLW1hbmFnZXItYWRhcHRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGVBQWUsRUFDZixTQUFTLEVBQ1QsS0FBSyxHQUdOLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBRTdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBa0JoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7O0FBRXhFOztHQUVHO0FBSUgsTUFBTSxPQUFPLG9DQUFvQztJQW1CL0MsWUFDVSxjQUFpQyxFQUNqQyxjQUFxQztRQURyQyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBSnZDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUtuQyxDQUFDO0lBRUcsa0JBQWtCO1FBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFdEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTzthQUNw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L0Isb0NBQW9DO2tCQUhoRCxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwrQkFBK0I7aUJBQzFDOzRJQUtRLE1BQU07c0JBRFosS0FBSztnQkFJQyxVQUFVO3NCQURoQixlQUFlO3VCQUFDLGFBQWEsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTlDLG9CQUFvQjtzQkFEMUIsZUFBZTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWwsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWdHcmlkQW5ndWxhciB9IGZyb20gJ2FnLWdyaWQtYW5ndWxhcic7XG5cbmltcG9ydCB7XG4gIENvbHVtbkFwaSxcbiAgQ29sdW1uTW92ZWRFdmVudCxcbiAgQ29sdW1uU3RhdGUsXG4gIERyYWdTdGFydGVkRXZlbnQsXG4gIERyYWdTdG9wcGVkRXZlbnQsXG4gIFJvd1NlbGVjdGVkRXZlbnQsXG59IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcblxuaW1wb3J0IHtcbiAgU2t5RGF0YU1hbmFnZXJTZXJ2aWNlLFxuICBTa3lEYXRhTWFuYWdlclNvcnRPcHRpb24sXG4gIFNreURhdGFNYW5hZ2VyU3RhdGUsXG4gIFNreURhdGFWaWV3Q29uZmlnLFxufSBmcm9tICdAc2t5dXgvZGF0YS1tYW5hZ2VyJztcblxuaW1wb3J0IHsgU2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudCB9IGZyb20gJy4vYWctZ3JpZC13cmFwcGVyLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tza3lBZ0dyaWREYXRhTWFuYWdlckFkYXB0ZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5QWdHcmlkRGF0YU1hbmFnZXJBZGFwdGVyRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95XG57XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB2aWV3SWQ6IHN0cmluZztcblxuICBAQ29udGVudENoaWxkcmVuKEFnR3JpZEFuZ3VsYXIsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIGFnR3JpZExpc3Q6IFF1ZXJ5TGlzdDxBZ0dyaWRBbmd1bGFyPjtcblxuICBAQ29udGVudENoaWxkcmVuKFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgcHVibGljIHNreUFnR3JpZFdyYXBwZXJMaXN0OiBRdWVyeUxpc3Q8U2t5QWdHcmlkV3JhcHBlckNvbXBvbmVudD47XG5cbiAgcHJpdmF0ZSBjdXJyZW50QWdHcmlkOiBBZ0dyaWRBbmd1bGFyO1xuICBwcml2YXRlIGN1cnJlbnREYXRhU3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGU7XG4gIHByaXZhdGUgY3VycmVudFNreUFnR3JpZFdyYXBwZXI6IFNreUFnR3JpZFdyYXBwZXJDb21wb25lbnQ7XG4gIHByaXZhdGUgZGF0YVN0YXRlU3ViOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgdmlld0NvbmZpZzogU2t5RGF0YVZpZXdDb25maWc7XG4gIHByaXZhdGUgbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBkYXRhTWFuYWdlclN2YzogU2t5RGF0YU1hbmFnZXJTZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMuc2V0Vmlld2tlZXBlckNsYXNzZXModGhpcy52aWV3SWQsIFsnLmFnLWhlYWRlciddKTtcblxuICAgIHRoaXMudmlld0NvbmZpZyA9IHRoaXMuZGF0YU1hbmFnZXJTdmMuZ2V0Vmlld0J5SWQodGhpcy52aWV3SWQpO1xuICAgIHRoaXMuY2hlY2tGb3JBZ0dyaWQoKTtcbiAgICB0aGlzLmNoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcigpO1xuXG4gICAgdGhpcy5hZ0dyaWRMaXN0LmNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoZWNrRm9yQWdHcmlkKCkpO1xuXG4gICAgdGhpcy5za3lBZ0dyaWRXcmFwcGVyTGlzdC5jaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jaGVja0ZvclNreUFnR3JpZFdyYXBwZXIoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLm5nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JBZ0dyaWQoKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkQ291bnQgPSB0aGlzLmFnR3JpZExpc3QubGVuZ3RoO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoYWdHcmlkQ291bnQgPT09IDApIHtcbiAgICAgIHRoaXMudW5yZWdpc3RlckFnR3JpZCgpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hZ0dyaWRMaXN0LmZpcnN0ICE9PSB0aGlzLmN1cnJlbnRBZ0dyaWQpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJBZ0dyaWQoKTtcbiAgICB9XG5cbiAgICBpZiAoYWdHcmlkQ291bnQgPiAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9yU2t5QWdHcmlkV3JhcHBlcigpOiB2b2lkIHtcbiAgICBjb25zdCBza3lBZ0dyaWRXcmFwcGVyQ291bnQgPSB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0Lmxlbmd0aDtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHNreUFnR3JpZFdyYXBwZXJDb3VudCA9PT0gMCkge1xuICAgICAgdGhpcy51bnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIH0gZWxzZSBpZiAoXG4gICAgICB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0LmZpcnN0ICE9PSB0aGlzLmN1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyXG4gICAgKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU2t5QWdHcmlkV3JhcHBlcigpO1xuICAgIH1cblxuICAgIGlmIChza3lBZ0dyaWRXcmFwcGVyQ291bnQgPiAxKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdNb3JlIHRoYW4gb25lIGFnLWdyaWQgY2hpbGQgY29tcG9uZW50IHdhcyBmb3VuZC4gVXNpbmcgdGhlIGZpcnN0IGFnLUdyaWQuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVucmVnaXN0ZXJBZ0dyaWQoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50QWdHcmlkID0gdW5kZWZpbmVkO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGlmICovXG4gICAgaWYgKHRoaXMuZGF0YVN0YXRlU3ViKSB7XG4gICAgICB0aGlzLmRhdGFTdGF0ZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTogdm9pZCB7XG4gICAgdGhpcy5jdXJyZW50U2t5QWdHcmlkV3JhcHBlciA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJTa3lBZ0dyaWRXcmFwcGVyKCk6IHZvaWQge1xuICAgIHRoaXMudW5yZWdpc3RlclNreUFnR3JpZFdyYXBwZXIoKTtcblxuICAgIHRoaXMuY3VycmVudFNreUFnR3JpZFdyYXBwZXIgPSB0aGlzLnNreUFnR3JpZFdyYXBwZXJMaXN0LmZpcnN0O1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50U2t5QWdHcmlkV3JhcHBlcikge1xuICAgICAgICB0aGlzLmN1cnJlbnRTa3lBZ0dyaWRXcmFwcGVyLnZpZXdrZWVwZXJDbGFzc2VzID0gW107XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVyQWdHcmlkKCk6IHZvaWQge1xuICAgIHRoaXMudW5yZWdpc3RlckFnR3JpZCgpO1xuXG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy5hZ0dyaWRMaXN0LmZpcnN0O1xuXG4gICAgdGhpcy5jdXJyZW50QWdHcmlkID0gYWdHcmlkO1xuXG4gICAgYWdHcmlkLmdyaWRSZWFkeS5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy52aWV3Q29uZmlnLm9uU2VsZWN0QWxsQ2xpY2sgPSB0aGlzLnNlbGVjdEFsbC5iaW5kKHRoaXMpO1xuICAgICAgdGhpcy52aWV3Q29uZmlnLm9uQ2xlYXJBbGxDbGljayA9IHRoaXMuY2xlYXJBbGwuYmluZCh0aGlzKTtcblxuICAgICAgdGhpcy5kYXRhTWFuYWdlclN2Yy51cGRhdGVWaWV3Q29uZmlnKHRoaXMudmlld0NvbmZpZyk7XG5cbiAgICAgIHRoaXMuZGF0YVN0YXRlU3ViID0gdGhpcy5kYXRhTWFuYWdlclN2Y1xuICAgICAgICAuZ2V0RGF0YVN0YXRlVXBkYXRlcyh0aGlzLnZpZXdDb25maWcuaWQpXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLm5nVW5zdWJzY3JpYmUpKVxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhU3RhdGU6IFNreURhdGFNYW5hZ2VyU3RhdGUpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnREYXRhU3RhdGUgPSBkYXRhU3RhdGU7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5Q29sdW1ucyhkYXRhU3RhdGUpO1xuICAgICAgICB9KTtcblxuICAgICAgYWdHcmlkLmFwaS5zaXplQ29sdW1uc1RvRml0KCk7XG4gICAgfSk7XG5cbiAgICBhZ0dyaWQuY29sdW1uTW92ZWRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSxcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChldmVudDogQ29sdW1uTW92ZWRFdmVudCkgPT5cbiAgICAgICAgICAgICFbXG4gICAgICAgICAgICAgICdncmlkSW5pdGlhbGl6aW5nJyxcbiAgICAgICAgICAgICAgJ3VpQ29sdW1uUmVzaXplZCcsXG4gICAgICAgICAgICAgICd1aUNvbHVtbkRyYWdnZWQnLFxuICAgICAgICAgICAgICAnYXBpJyxcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoZXZlbnQuc291cmNlKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogQ29sdW1uTW92ZWRFdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZUNvbHVtbnNJbkN1cnJlbnREYXRhU3RhdGUodmFsdWUuY29sdW1uQXBpKTtcbiAgICAgIH0pO1xuICAgIGxldCBjdXJyZW50Q29sdW1uczogc3RyaW5nW107XG4gICAgYWdHcmlkLmRyYWdTdGFydGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEcmFnU3RhcnRlZEV2ZW50KSA9PiB7XG4gICAgICAgIGN1cnJlbnRDb2x1bW5zID0gdGhpcy5nZXRDb2x1bW5PcmRlcih2YWx1ZS5jb2x1bW5BcGkpO1xuICAgICAgfSk7XG4gICAgYWdHcmlkLmRyYWdTdG9wcGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlOiBEcmFnU3RvcHBlZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0NvbHVtbnMgPSB0aGlzLmdldENvbHVtbk9yZGVyKHZhbHVlLmNvbHVtbkFwaSk7XG4gICAgICAgIGNvbnN0IGhhc0NoYW5nZWQgPSBjdXJyZW50Q29sdW1ucy5maW5kSW5kZXgoXG4gICAgICAgICAgKGNvbElkLCBpKSA9PiBjb2xJZCAhPT0gbmV3Q29sdW1uc1tpXVxuICAgICAgICApO1xuICAgICAgICBpZiAoaGFzQ2hhbmdlZCA+IC0xKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKHZhbHVlLmNvbHVtbkFwaSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgYWdHcmlkLnJvd1NlbGVjdGVkXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBSb3dTZWxlY3RlZEV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IHJvdyA9IGV2ZW50Lm5vZGU7XG4gICAgICAgIGxldCBzZWxlY3RlZElkcyA9IHRoaXMuY3VycmVudERhdGFTdGF0ZS5zZWxlY3RlZElkcyB8fCBbXTtcbiAgICAgICAgY29uc3Qgcm93SW5kZXggPSBzZWxlY3RlZElkcy5pbmRleE9mKHJvdy5kYXRhLmlkKTtcblxuICAgICAgICBpZiAocm93LmlzU2VsZWN0ZWQoKSAmJiByb3dJbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICBzZWxlY3RlZElkcy5wdXNoKHJvdy5kYXRhLmlkKTtcbiAgICAgICAgfSBlbHNlIGlmICghcm93LmlzU2VsZWN0ZWQoKSAmJiByb3dJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICBzZWxlY3RlZElkcy5zcGxpY2Uocm93SW5kZXgsIDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jdXJyZW50RGF0YVN0YXRlLnNlbGVjdGVkSWRzID0gc2VsZWN0ZWRJZHM7XG4gICAgICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMudXBkYXRlRGF0YVN0YXRlKFxuICAgICAgICAgIHRoaXMuY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgICB0aGlzLnZpZXdDb25maWcuaWRcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgYWdHcmlkLnNvcnRDaGFuZ2VkLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBncmlkQ29sdW1uU3RhdGVzOiBDb2x1bW5TdGF0ZVtdID0gYWdHcmlkLmNvbHVtbkFwaS5nZXRDb2x1bW5TdGF0ZSgpO1xuICAgICAgbGV0IHNvcnRPcHRpb246IFNreURhdGFNYW5hZ2VyU29ydE9wdGlvbjtcblxuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChncmlkQ29sdW1uU3RhdGVzLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBhY3RpdmVTb3J0Q29sdW1uU3RhdGUgPSBncmlkQ29sdW1uU3RhdGVzLmZpbmQoXG4gICAgICAgICAgKGFHcmlkQ29sdW1uU3RhdGUpID0+IGFHcmlkQ29sdW1uU3RhdGUuc29ydEluZGV4ID09PSAwXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZGF0YU1hbmFnZXJDb25maWcgPVxuICAgICAgICAgIHRoaXMuZGF0YU1hbmFnZXJTdmMuZ2V0Q3VycmVudERhdGFNYW5hZ2VyQ29uZmlnKCk7XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgICAgaWYgKGRhdGFNYW5hZ2VyQ29uZmlnLnNvcnRPcHRpb25zICYmIGFjdGl2ZVNvcnRDb2x1bW5TdGF0ZSkge1xuICAgICAgICAgIHNvcnRPcHRpb24gPSBkYXRhTWFuYWdlckNvbmZpZy5zb3J0T3B0aW9ucy5maW5kKFxuICAgICAgICAgICAgKG9wdGlvbjogU2t5RGF0YU1hbmFnZXJTb3J0T3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgb3B0aW9uLnByb3BlcnR5TmFtZSA9PT0gYWN0aXZlU29ydENvbHVtblN0YXRlLmNvbElkICYmXG4gICAgICAgICAgICAgICAgb3B0aW9uLmRlc2NlbmRpbmcgPT09IChhY3RpdmVTb3J0Q29sdW1uU3RhdGUuc29ydCA9PT0gJ2Rlc2MnKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc29ydE9wdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5jdXJyZW50RGF0YVN0YXRlLmFjdGl2ZVNvcnRPcHRpb24gPSBzb3J0T3B0aW9uO1xuICAgICAgdGhpcy5kYXRhTWFuYWdlclN2Yy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICAgIHRoaXMuY3VycmVudERhdGFTdGF0ZSxcbiAgICAgICAgdGhpcy52aWV3Q29uZmlnLmlkXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb2x1bW5zSW5DdXJyZW50RGF0YVN0YXRlKGNvbHVtbkFwaTogQ29sdW1uQXBpKSB7XG4gICAgY29uc3QgY29sdW1uT3JkZXIgPSB0aGlzLmdldENvbHVtbk9yZGVyKGNvbHVtbkFwaSk7XG5cbiAgICBjb25zdCB2aWV3U3RhdGUgPSB0aGlzLmN1cnJlbnREYXRhU3RhdGUuZ2V0Vmlld1N0YXRlQnlJZChcbiAgICAgIHRoaXMudmlld0NvbmZpZy5pZFxuICAgICk7XG4gICAgdmlld1N0YXRlLmRpc3BsYXllZENvbHVtbklkcyA9IGNvbHVtbk9yZGVyO1xuXG4gICAgdGhpcy5kYXRhTWFuYWdlclN2Yy51cGRhdGVEYXRhU3RhdGUoXG4gICAgICB0aGlzLmN1cnJlbnREYXRhU3RhdGUuYWRkT3JVcGRhdGVWaWV3KHRoaXMudmlld0NvbmZpZy5pZCwgdmlld1N0YXRlKSxcbiAgICAgIHRoaXMudmlld0NvbmZpZy5pZFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldENvbHVtbk9yZGVyKGNvbHVtbkFwaTogQ29sdW1uQXBpKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBjb2x1bW5BcGlcbiAgICAgIC5nZXRBbGxEaXNwbGF5ZWRWaXJ0dWFsQ29sdW1ucygpXG4gICAgICAubWFwKChjb2wpID0+IGNvbC5nZXRDb2xEZWYoKS5jb2xJZCk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BsYXlDb2x1bW5zKGRhdGFTdGF0ZTogU2t5RGF0YU1hbmFnZXJTdGF0ZSk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZCA9IHRoaXMuY3VycmVudEFnR3JpZDtcbiAgICBjb25zdCB2aWV3U3RhdGUgPSBkYXRhU3RhdGUuZ2V0Vmlld1N0YXRlQnlJZCh0aGlzLnZpZXdDb25maWcuaWQpO1xuICAgIGxldCBkaXNwbGF5ZWRDb2x1bW5JZHM6IHN0cmluZ1tdID0gW107XG4gICAgLyppc3RhbmJ1bCBpZ25vcmUgZWxzZSovXG4gICAgaWYgKHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHMpIHtcbiAgICAgIGRpc3BsYXllZENvbHVtbklkcyA9IHZpZXdTdGF0ZS5kaXNwbGF5ZWRDb2x1bW5JZHM7XG4gICAgfVxuICAgIGNvbnN0IGNvbHVtbnMgPSBhZ0dyaWQuY29sdW1uQXBpLmdldEFsbENvbHVtbnMoKTtcblxuICAgIGZvciAoY29uc3QgY29sdW1uIG9mIGNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IGNvbElkID0gY29sdW1uLmdldENvbElkKCk7XG4gICAgICBjb25zdCBjb2xJbmRleCA9IGRpc3BsYXllZENvbHVtbklkcy5pbmRleE9mKGNvbElkKTtcblxuICAgICAgYWdHcmlkLmNvbHVtbkFwaS5zZXRDb2x1bW5WaXNpYmxlKGNvbElkLCBjb2xJbmRleCAhPT0gLTEpO1xuICAgICAgYWdHcmlkLmNvbHVtbkFwaS5tb3ZlQ29sdW1uKGNvbElkLCBjb2xJbmRleCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgY29uc3QgYWdHcmlkID0gdGhpcy5hZ0dyaWRMaXN0LmZpcnN0O1xuICAgIGFnR3JpZC5hcGkuc2VsZWN0QWxsKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyQWxsKCk6IHZvaWQge1xuICAgIGNvbnN0IGFnR3JpZCA9IHRoaXMuYWdHcmlkTGlzdC5maXJzdDtcbiAgICBhZ0dyaWQuYXBpLmRlc2VsZWN0QWxsKCk7XG4gIH1cbn1cbiJdfQ==