@datorama/core 21.3.1-rc.5 → 21.4.0-rc.3

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 (48) hide show
  1. package/bundle.scss +87 -2
  2. package/bundles/datorama-core.umd.js +223 -22
  3. package/bundles/datorama-core.umd.js.map +1 -1
  4. package/bundles/datorama-core.umd.min.js +54 -54
  5. package/bundles/datorama-core.umd.min.js.map +1 -1
  6. package/datorama-core.metadata.json +1 -1
  7. package/esm2015/lib/grid-v2/grid/grid-v2.component.js +5 -2
  8. package/esm2015/lib/grid-v2/grid/grid-v2.types.js +1 -1
  9. package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.component.js +8 -7
  10. package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +11 -1
  11. package/esm2015/lib/grid-v2/grid-filter/filter-validator.js +27 -2
  12. package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +31 -6
  13. package/esm2015/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  14. package/esm2015/lib/grid-v2/grid-pagination/grid-pagination.component.js +16 -3
  15. package/esm2015/lib/grid-v2/grid-store/grid.query.js +34 -4
  16. package/esm2015/lib/grid-v2/grid-store/grid.service.js +58 -4
  17. package/esm2015/lib/grid-v2/grid-store/util.js +10 -1
  18. package/esm2015/lib/icon/icon.types.js +1 -1
  19. package/esm2015/lib/utils/array.js +10 -1
  20. package/esm5/lib/grid-v2/grid/grid-v2.component.js +9 -2
  21. package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
  22. package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +8 -11
  23. package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +11 -1
  24. package/esm5/lib/grid-v2/grid-filter/filter-validator.js +29 -3
  25. package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +36 -6
  26. package/esm5/lib/grid-v2/grid-filter/grid-filter.types.js +1 -1
  27. package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +16 -3
  28. package/esm5/lib/grid-v2/grid-store/grid.query.js +34 -4
  29. package/esm5/lib/grid-v2/grid-store/grid.service.js +76 -4
  30. package/esm5/lib/grid-v2/grid-store/util.js +10 -1
  31. package/esm5/lib/icon/icon.types.js +1 -1
  32. package/esm5/lib/utils/array.js +12 -1
  33. package/fesm2015/datorama-core.js +193 -19
  34. package/fesm2015/datorama-core.js.map +1 -1
  35. package/fesm5/datorama-core.js +223 -23
  36. package/fesm5/datorama-core.js.map +1 -1
  37. package/lib/grid-v2/grid/grid-v2.component.d.ts +1 -0
  38. package/lib/grid-v2/grid/grid-v2.types.d.ts +2 -0
  39. package/lib/grid-v2/grid-column-header/grid-column-header.component.d.ts +0 -2
  40. package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +5 -1
  41. package/lib/grid-v2/grid-filter/grid-filter.component.d.ts +6 -0
  42. package/lib/grid-v2/grid-filter/grid-filter.types.d.ts +2 -0
  43. package/lib/grid-v2/grid-pagination/grid-pagination.component.d.ts +4 -0
  44. package/lib/grid-v2/grid-store/grid.query.d.ts +5 -1
  45. package/lib/grid-v2/grid-store/grid.service.d.ts +9 -1
  46. package/lib/grid-v2/grid-store/util.d.ts +7 -1
  47. package/lib/utils/array.d.ts +5 -0
  48. package/package.json +2 -2
@@ -1 +1 @@
1
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2ljb24vaWNvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSWNvbklucHV0cyA9IHtcbiAgbmFtZT86IHN0cmluZztcbiAgc2l6ZT86ICdsZycgfCAnbWQnIHwgJ3NtJztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRvSWNvbnMgPSAnYWNjb3VudCcgfCAnYWN0aW9uLWNlbnRlcicgfCAnYWN0aW9uJyB8ICdhZGQtY29sbGVjdGlvbicgfCAnYWRkLXBhZ2UnIHwgJ2FkZC13aWRnZXQnIHwgJ2Fkdmlzb3InIHwgJ2FsbC1jb2xsZWN0aW9ucycgfCAnYWx0ZXJuYXRpdmVzJyB8ICdhbnlvbmUnIHwgJ2FwcC1wYWdlJyB8ICdhcHBzLXRhYicgfCAnYXBwcycgfCAnYXJyb3ctZG93bicgfCAnYXJyb3ctbGVmdCcgfCAnYXJyb3ctcmlnaHQnIHwgJ2Fycm93LXVwJyB8ICdhcnRpY2xlJyB8ICdhdXRoZW50aWNhdGlvbicgfCAnYXV0by1mb3JtYXQnIHwgJ2F1dG9tYXRlJyB8ICdiYWNrZ3JvdW5kJyB8ICdicmFuZGluZycgfCAnYnVpbGRlcicgfCAnY2FsZW5kYXInIHwgJ2NlcnRpZmljYXRpb24nIHwgJ2NoYXJ0cycgfCAnY2hldnJvbi1kb3duLWRvdWJsZScgfCAnY2hldnJvbi1kb3duJyB8ICdjaGV2cm9uLWxlZnQtZG91YmxlJyB8ICdjaGV2cm9uLWxlZnQnIHwgJ2NoZXZyb24tcmlnaHQtZG91YmxlJyB8ICdjaGV2cm9uLXJpZ2h0JyB8ICdjaGV2cm9uLXVwLWRvdWJsZScgfCAnY2hldnJvbi11cCcgfCAnY2xhc3NpZmljYXRpb24nIHwgJ2Nsb3NlJyB8ICdjb2xsYWJvcmF0ZScgfCAnY29sbGFwc2UnIHwgJ2NvbW1lbnQtY29kZScgfCAnY29tcGFycmlzb24nIHwgJ2Nvbm5lY3QnIHwgJ2Nvbm5lY3RlZCcgfCAnY29weS10bycgfCAnY29weScgfCAnY29zdC1jZW50ZXInIHwgJ2N1cnJlbnQnIHwgJ2RhdGEtdHJhbnNmb3JtZWQnIHwgJ2RhdGEtY2xhc3NpZmljYXRpb24nIHwgJ2RhdGEtZnVzaW9uJyB8ICdkYXRhLWxha2VzJyB8ICdkYXRhLW1vZGVsJyB8ICdkYXRhLXByZXZpZXcnIHwgJ2RhdGEtc2NpZW5jZScgfCAnZGF0YS1zdHJlYW0nIHwgJ2RlcGxveScgfCAnZGVzY3JpcHRpb24nIHwgJ2Rlc2lnbicgfCAnZGlhbW9uZCcgfCAnZGltZW5zaW9uLXR5cGUtMicgfCAnZGltZW5zaW9uJyB8ICdkaXJ0eScgfCAnZGlzbWlzcycgfCAnZG90dGllJyB8ICdkb3dubG9hZCcgfCAnZHJhZy13aW5kb3cnIHwgJ2RyYWcnIHwgJ2VkaXQtcGFnZScgfCAnZWRpdC13aWRnZXQnIHwgJ2VkaXQnIHwgJ2VpbnN0ZWluLWluc2lnaHRzJyB8ICdlbGVtZW50cycgfCAnZW1iZWQnIHwgJ2V2YWx1YXRlJyB8ICdleHBhbmQnIHwgJ2V4cGxvcmUnIHwgJ2V4cG9ydC1zdGF0cycgfCAnZXhwb3J0JyB8ICdleHRlbmRlZC1sb2cnIHwgJ2V4dGVybmFsLWRhdGEnIHwgJ2V4dGVybmFsLXBhZ2UnIHwgJ2V4dGVybmFsJyB8ICdmYWlsZWQtZnVsbCcgfCAnZmFpbGVkLWxpbmUnIHwgJ2ZhaWxlZCcgfCAnZmlsdGVyJyB8ICdmaWx0ZXJzLXBhZ2UnIHwgJ2ZpbHRlcnMtd2lkZ2V0JyB8ICdmaW5kLWFuZC1yZXBsYWNlJyB8ICdmb2N1cycgfCAnZm9sZGVyLWNsb3NlZCcgfCAnZm9sZGVyLW9wZW4nIHwgJ2Zvcm11bGEnIHwgJ2ZyZWUtdGV4dCcgfCAnZnVsbC1lbnRpdHknIHwgJ2Z1bGxzY3JlZW4tZW50ZXInIHwgJ2Z1bGxzY3JlZW4tZXhpdCcgfCAnZ2VuZXJpYy1idWNrZXQnIHwgJ2dvYWxzJyB8ICdncmlkLWhpZGUnIHwgJ2dyb3VwJyB8ICdoYW1idXJnZXInIHwgJ2hhcm1vbml6ZWQtZGltZW5zaW9uJyB8ICdoZWFydC1lbXB0eScgfCAnaGVhcnQtZnVsbCcgfCAnaGlkZScgfCAnaGlnaGxpZ2h0JyB8ICdoaXN0b3J5JyB8ICdob21lJyB8ICdob3VyLWdsYXNzJyB8ICdpZGxlJyB8ICdpbXBlcnNvbmF0ZScgfCAnaW5mby1mdWxsJyB8ICdpbmZvLWxpbmUnIHwgJ2luZm8nIHwgJ2luc3RhbnQnIHwgJ2ludGVyYWN0aXZlLWZpbHRlcicgfCAnaW50ZXJhY3RpdmUtZmlsdGVyc2V0JyB8ICdrZXknIHwgJ2tub3dsZWRnZS1iYXNlJyB8ICdsYWJlbCcgfCAnbGF5b3V0LWZpbHRlcmVkJyB8ICdsYXlvdXQnIHwgJ2xpbmtlZCcgfCAnbGl2ZScgfCAnbG9jYWxpemF0aW9uLTE2NCcgfCAnbG9naWNhbC12aWV3JyB8ICdtYWdpYy13YW5kJyB8ICdtYWluLWVudGl0eScgfCAnbWFuYWdlLWNvbGxlY3Rpb25zJyB8ICdtYXAtcmlnaHQnIHwgJ21hcC1sZWZ0JyB8ICdtYXBwaW5nJyB8ICdtYXJrZXQnIHwgJ21heGltaXplLWhvcml6b250YWwnIHwgJ21heGltaXplJyB8ICdtZWFzdXJlbWVudC1uYXYnIHwgJ21lYXN1cmVtZW50JyB8ICdtaW5pbWl6ZS1ob3Jpem9udGFsJyB8ICdtaW5pbWl6ZScgfCAnbW9yZS1ob3Jpem9udGFsJyB8ICdtb3JlLXZlcnRpY2FsJyB8ICdtb3ZlLXRvLWZvbGRlcicgfCAnbXktcHJvZmlsZScgfCAnbmFtaW5nLWNvbnZlbnRpb25zLXBhdHRlcm5zJyB8ICduZXctdGFiJyB8ICduby1hdXRlbnRpY2F0aW9uJyB8ICduby1lbnRyeScgfCAnbm8tZmlsZScgfCAnbm8tb25lJyB8ICdub3Rlcy1yb3VkZWQnIHwgJ25vdGVzJyB8ICdub3RpZmljYXRpb25zJyB8ICdwYWdlJyB8ICdwYW5lbC1jbG9zZScgfCAncGFuZWwtb3BlbicgfCAncGVuZGluZycgfCAncGVvcGxlJyB8ICdwaW4nIHwgJ3Bpdm90LXRhYmxlJyB8ICdwbGF5JyB8ICdwbHVzLWJ0bicgfCAncGx1cy1zaW1wbGUnIHwgJ3ByZXNlbnQnIHwgJ3Byb2Nlc3MtdGVjaC1hYm9ydCcgfCAncHJvY2Vzcy10ZWNoJyB8ICdwcm9jZXNzLWVycm9yJyB8ICdwcm9jZXNzJyB8ICdwdWJsaXNoJyB8ICdwdXNoLWVudGl0eScgfCAncXVlcnktYXBpJyB8ICdyZS1ydW4nIHwgJ3JlY2VudCcgfCAncmVkbycgfCAncmVmcmVzaCcgfCAncmVvZmZlcicgfCAncmVzZXQtZmlsdGVycycgfCAncmVzZXQtdGFibGUnIHwgJ3Jlc3RvcmUnIHwgJ3JldHJpdmUtZGF0YScgfCAncm9ja2V0JyB8ICdydW4tbGF0ZXInIHwgJ3NhbmRib3gtY29sb3InIHwgJ3NhbmRib3gtbWlkJyB8ICdzYW5kYm94JyB8ICdzYXZlLWFzJyB8ICdzYXZlJyB8ICdzY2hlZHVsZS1leHBvcnQnIHwgJ3NjcmVlbi1ndWlkZScgfCAnc2VhcmNoJyB8ICdzZW5kJyB8ICdzZXJ2ZXInIHwgJ3NoYXJlLXRvJyB8ICdzaGFyZScgfCAnc2hhcmluZy1hZGQtb3V0bGluZScgfCAnc2hhcmluZy1vdXRsaW5lJyB8ICdzaGFyaW5nJyB8ICdzaG93LWdyaWQnIHwgJ3NpZ24tb3V0JyB8ICdzbmlwcGV0cycgfCAnc29ydC1hc2NlbmRpbmcnIHwgJ3NvcnQtZGVzY2VuZGluZycgfCAnc29ydCcgfCAnc3Rhci1lbXB0eScgfCAnc3Rhci1mdWxsLWNvbG9yJyB8ICdzdGFyLWZ1bGwnIHwgJ3N0YXR1cycgfCAnc3VjY2Vzcy1mdWxsJyB8ICdzdWNjZXNzLWxpbmUnIHwgJ3N1Y2Nlc3Mtc2ltcGxlJyB8ICdzd2l0Y2gnIHwgJ3RhYmxlLXJlZ3VsYXInIHwgJ3RhYmxlJyB8ICd0YWJsZWF1JyB8ICd0ZW1wbGF0ZS1mdWxsJyB8ICd0ZW1wbGF0ZXMnIHwgJ3Rlc3QnIHwgJ3RodW1icy1kb3duJyB8ICd0aHVtYnMtdXAnIHwgJ3RpbWUnIHwgJ3RpcC1mdWxsJyB8ICd0aXAtbGluZScgfCAndGlwLXNpbXBsZScgfCAndG9vbCcgfCAndHJhbnNwb3NlZC10YWJsZScgfCAndHJhc2gnIHwgJ3RyZW5kJyB8ICd0eXBlZmFjZScgfCAndW5jb21tZW50LWNvZGUnIHwgJ3VuZG8nIHwgJ3VuZ3JvdXAnIHwgJ3VuaXZlcnNpdHknIHwgJ3VubGluaycgfCAndW5wdWJsaXNoJyB8ICd1cGxvYWQnIHwgJ3VzZXInIHwgJ3ZhbGlkYXRlLWNvZGUnIHwgJ3ZpZXdzLWxpbmUnIHwgJ3ZpZXdzJyB8ICd2aXN1YWxpemUnIHwgJ3dhcm5pbmctZnVsbCcgfCAnd2FybmluZy1saW5lJyB8ICd3YXJuaW5nLXNpbXBsZScgfCAnd2ViaW5hcicgfCAnd2lkZ2V0cycgfCAnd29ya2Zsb3cnIHwgJ3dvcmtzcGFjZScgfCAnem9vbS1pbic7XG4iXX0=
1
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9jb3JlLyIsInNvdXJjZXMiOlsibGliL2ljb24vaWNvbi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgSWNvbklucHV0cyA9IHtcbiAgbmFtZT86IHN0cmluZztcbiAgc2l6ZT86ICdsZycgfCAnbWQnIHwgJ3NtJztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIHdpZHRoPzogc3RyaW5nO1xuICBoZWlnaHQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBEYXRvSWNvbnMgPVxuICB8ICdhY2NvdW50J1xuICB8ICdhY3Rpb24tY2VudGVyJ1xuICB8ICdhY3Rpb24nXG4gIHwgJ2FkZC1jb2xsZWN0aW9uJ1xuICB8ICdhZGQtcGFnZSdcbiAgfCAnYWRkLXdpZGdldCdcbiAgfCAnYWR2aXNvcidcbiAgfCAnYWxsLWNvbGxlY3Rpb25zJ1xuICB8ICdhbHRlcm5hdGl2ZXMnXG4gIHwgJ2FueW9uZSdcbiAgfCAnYXBwLXBhZ2UnXG4gIHwgJ2FwcHMtdGFiJ1xuICB8ICdhcHBzJ1xuICB8ICdhcnJvdy1kb3duJ1xuICB8ICdhcnJvdy1sZWZ0J1xuICB8ICdhcnJvdy1yaWdodCdcbiAgfCAnYXJyb3ctdXAnXG4gIHwgJ2FydGljbGUnXG4gIHwgJ2F1dGhlbnRpY2F0aW9uJ1xuICB8ICdhdXRvLWZvcm1hdCdcbiAgfCAnYXV0b21hdGUnXG4gIHwgJ2JhY2tncm91bmQnXG4gIHwgJ2JyYW5kaW5nJ1xuICB8ICdidWlsZGVyJ1xuICB8ICdjYWxlbmRhcidcbiAgfCAnY2VydGlmaWNhdGlvbidcbiAgfCAnY2hhcnRzJ1xuICB8ICdjaGV2cm9uLWRvd24tZG91YmxlJ1xuICB8ICdjaGV2cm9uLWRvd24nXG4gIHwgJ2NoZXZyb24tbGVmdC1kb3VibGUnXG4gIHwgJ2NoZXZyb24tbGVmdCdcbiAgfCAnY2hldnJvbi1yaWdodC1kb3VibGUnXG4gIHwgJ2NoZXZyb24tcmlnaHQnXG4gIHwgJ2NoZXZyb24tdXAtZG91YmxlJ1xuICB8ICdjaGV2cm9uLXVwJ1xuICB8ICdjbGFzc2lmaWNhdGlvbidcbiAgfCAnY2xvc2UnXG4gIHwgJ2NvbGxhYm9yYXRlJ1xuICB8ICdjb2xsYXBzZSdcbiAgfCAnY29tbWVudC1jb2RlJ1xuICB8ICdjb21wYXJyaXNvbidcbiAgfCAnY29ubmVjdCdcbiAgfCAnY29ubmVjdGVkJ1xuICB8ICdjb3B5LXRvJ1xuICB8ICdjb3B5J1xuICB8ICdjb3N0LWNlbnRlcidcbiAgfCAnY3VycmVudCdcbiAgfCAnZGF0YS10cmFuc2Zvcm1lZCdcbiAgfCAnZGF0YS1jbGFzc2lmaWNhdGlvbidcbiAgfCAnZGF0YS1mdXNpb24nXG4gIHwgJ2RhdGEtbGFrZXMnXG4gIHwgJ2RhdGEtbW9kZWwnXG4gIHwgJ2RhdGEtcHJldmlldydcbiAgfCAnZGF0YS1zY2llbmNlJ1xuICB8ICdkYXRhLXN0cmVhbSdcbiAgfCAnZGVwbG95J1xuICB8ICdkZXNjcmlwdGlvbidcbiAgfCAnZGVzaWduJ1xuICB8ICdkaWFtb25kJ1xuICB8ICdkaW1lbnNpb24tdHlwZS0yJ1xuICB8ICdkaW1lbnNpb24nXG4gIHwgJ2RpcnR5J1xuICB8ICdkaXNtaXNzJ1xuICB8ICdkb3R0aWUnXG4gIHwgJ2Rvd25sb2FkJ1xuICB8ICdkcmFnLXdpbmRvdydcbiAgfCAnZHJhZydcbiAgfCAnZWRpdC1wYWdlJ1xuICB8ICdlZGl0LXdpZGdldCdcbiAgfCAnZWRpdCdcbiAgfCAnZWluc3RlaW4taW5zaWdodHMnXG4gIHwgJ2VsZW1lbnRzJ1xuICB8ICdlbWJlZCdcbiAgfCAnZXZhbHVhdGUnXG4gIHwgJ2V4cGFuZCdcbiAgfCAnZXhwbG9yZSdcbiAgfCAnZXhwb3J0LXN0YXRzJ1xuICB8ICdleHBvcnQnXG4gIHwgJ2V4dGVuZGVkLWxvZydcbiAgfCAnZXh0ZXJuYWwtZGF0YSdcbiAgfCAnZXh0ZXJuYWwtcGFnZSdcbiAgfCAnZXh0ZXJuYWwnXG4gIHwgJ2ZhaWxlZC1mdWxsJ1xuICB8ICdmYWlsZWQtbGluZSdcbiAgfCAnZmFpbGVkJ1xuICB8ICdmaWx0ZXInXG4gIHwgJ2ZpbHRlcnMtcGFnZSdcbiAgfCAnZmlsdGVycy13aWRnZXQnXG4gIHwgJ2ZpbmQtYW5kLXJlcGxhY2UnXG4gIHwgJ2ZvY3VzJ1xuICB8ICdmb2xkZXItY2xvc2VkJ1xuICB8ICdmb2xkZXItb3BlbidcbiAgfCAnZm9ybXVsYSdcbiAgfCAnZnJlZS10ZXh0J1xuICB8ICdmdWxsLWVudGl0eSdcbiAgfCAnZnVsbHNjcmVlbi1lbnRlcidcbiAgfCAnZnVsbHNjcmVlbi1leGl0J1xuICB8ICdnZW5lcmljLWJ1Y2tldCdcbiAgfCAnZ29hbHMnXG4gIHwgJ2dyaWQtaGlkZSdcbiAgfCAnZ3JvdXAnXG4gIHwgJ2hhbWJ1cmdlcidcbiAgfCAnaGFybW9uaXplZC1kaW1lbnNpb24nXG4gIHwgJ2hlYXJ0LWVtcHR5J1xuICB8ICdoZWFydC1mdWxsJ1xuICB8ICdoaWRlJ1xuICB8ICdoaWdobGlnaHQnXG4gIHwgJ2hpc3RvcnknXG4gIHwgJ2hvbWUnXG4gIHwgJ2hvdXItZ2xhc3MnXG4gIHwgJ2lkbGUnXG4gIHwgJ2ltcGVyc29uYXRlJ1xuICB8ICdpbmZvLWZ1bGwnXG4gIHwgJ2luZm8tbGluZSdcbiAgfCAnaW5mbydcbiAgfCAnaW5zdGFudCdcbiAgfCAnaW50ZXJhY3RpdmUtZmlsdGVyJ1xuICB8ICdpbnRlcmFjdGl2ZS1maWx0ZXJzZXQnXG4gIHwgJ2tleSdcbiAgfCAna25vd2xlZGdlLWJhc2UnXG4gIHwgJ2xhYmVsJ1xuICB8ICdsYXlvdXQtZmlsdGVyZWQnXG4gIHwgJ2xheW91dCdcbiAgfCAnbGlua2VkJ1xuICB8ICdsaXZlJ1xuICB8ICdsb2NhbGl6YXRpb24tMTY0J1xuICB8ICdsb2dpY2FsLXZpZXcnXG4gIHwgJ21hZ2ljLXdhbmQnXG4gIHwgJ21haW4tZW50aXR5J1xuICB8ICdtYW5hZ2UtY29sbGVjdGlvbnMnXG4gIHwgJ21hcC1yaWdodCdcbiAgfCAnbWFwLWxlZnQnXG4gIHwgJ21hcHBpbmcnXG4gIHwgJ21hcmtldCdcbiAgfCAnbWF4aW1pemUtaG9yaXpvbnRhbCdcbiAgfCAnbWF4aW1pemUnXG4gIHwgJ21lYXN1cmVtZW50LW5hdidcbiAgfCAnbWVhc3VyZW1lbnQnXG4gIHwgJ21pbmltaXplLWhvcml6b250YWwnXG4gIHwgJ21pbmltaXplJ1xuICB8ICdtb3JlLWhvcml6b250YWwnXG4gIHwgJ21vcmUtdmVydGljYWwnXG4gIHwgJ21vdmUtdG8tZm9sZGVyJ1xuICB8ICdteS1wcm9maWxlJ1xuICB8ICduYW1pbmctY29udmVudGlvbnMtcGF0dGVybnMnXG4gIHwgJ25ldy10YWInXG4gIHwgJ25vLWF1dGVudGljYXRpb24nXG4gIHwgJ25vLWVudHJ5J1xuICB8ICduby1maWxlJ1xuICB8ICduby1vbmUnXG4gIHwgJ25vdGVzLXJvdWRlZCdcbiAgfCAnbm90ZXMnXG4gIHwgJ25vdGlmaWNhdGlvbnMnXG4gIHwgJ3BhZ2UnXG4gIHwgJ3BhbmVsLWNsb3NlJ1xuICB8ICdwYW5lbC1vcGVuJ1xuICB8ICdwZW5kaW5nJ1xuICB8ICdwZW9wbGUnXG4gIHwgJ3BpbidcbiAgfCAncGl2b3QtdGFibGUnXG4gIHwgJ3BsYXknXG4gIHwgJ3BsdXMtYnRuJ1xuICB8ICdwbHVzLXNpbXBsZSdcbiAgfCAncHJlc2VudCdcbiAgfCAncHJvY2Vzcy10ZWNoLWFib3J0J1xuICB8ICdwcm9jZXNzLXRlY2gnXG4gIHwgJ3Byb2Nlc3MtZXJyb3InXG4gIHwgJ3Byb2Nlc3MnXG4gIHwgJ3B1Ymxpc2gnXG4gIHwgJ3B1c2gtZW50aXR5J1xuICB8ICdxdWVyeS1hcGknXG4gIHwgJ3JlLXJ1bidcbiAgfCAncmVjZW50J1xuICB8ICdyZWRvJ1xuICB8ICdyZWZyZXNoJ1xuICB8ICdyZW9mZmVyJ1xuICB8ICdyZXNldC1maWx0ZXJzJ1xuICB8ICdyZXNldC10YWJsZSdcbiAgfCAncmVzdG9yZSdcbiAgfCAncmV0cml2ZS1kYXRhJ1xuICB8ICdyb2NrZXQnXG4gIHwgJ3J1bi1sYXRlcidcbiAgfCAnc2FuZGJveC1jb2xvcidcbiAgfCAnc2FuZGJveC1taWQnXG4gIHwgJ3NhbmRib3gnXG4gIHwgJ3NhdmUtYXMnXG4gIHwgJ3NhdmUnXG4gIHwgJ3NjaGVkdWxlLWV4cG9ydCdcbiAgfCAnc2NyZWVuLWd1aWRlJ1xuICB8ICdzZWFyY2gnXG4gIHwgJ3NlbmQnXG4gIHwgJ3NlcnZlcidcbiAgfCAnc2hhcmUtdG8nXG4gIHwgJ3NoYXJlJ1xuICB8ICdzaGFyaW5nLWFkZC1vdXRsaW5lJ1xuICB8ICdzaGFyaW5nLW91dGxpbmUnXG4gIHwgJ3NoYXJpbmcnXG4gIHwgJ3Nob3ctZ3JpZCdcbiAgfCAnc2lnbi1vdXQnXG4gIHwgJ3NuaXBwZXRzJ1xuICB8ICdzb3J0LWFzY2VuZGluZydcbiAgfCAnc29ydC1kZXNjZW5kaW5nJ1xuICB8ICdzb3J0J1xuICB8ICdzdGFyLWVtcHR5J1xuICB8ICdzdGFyLWZ1bGwtY29sb3InXG4gIHwgJ3N0YXItZnVsbCdcbiAgfCAnc3RhdHVzJ1xuICB8ICdzdWNjZXNzLWZ1bGwnXG4gIHwgJ3N1Y2Nlc3MtbGluZSdcbiAgfCAnc3VjY2Vzcy1zaW1wbGUnXG4gIHwgJ3N3aXRjaCdcbiAgfCAndGFibGUtcmVndWxhcidcbiAgfCAndGFibGUnXG4gIHwgJ3RhYmxlYXUnXG4gIHwgJ3RlbXBsYXRlLWZ1bGwnXG4gIHwgJ3RlbXBsYXRlcydcbiAgfCAndGVzdCdcbiAgfCAndGh1bWJzLWRvd24nXG4gIHwgJ3RodW1icy11cCdcbiAgfCAndGltZSdcbiAgfCAndGlwLWZ1bGwnXG4gIHwgJ3RpcC1saW5lJ1xuICB8ICd0aXAtc2ltcGxlJ1xuICB8ICd0b29sJ1xuICB8ICd0cmFuc3Bvc2VkLXRhYmxlJ1xuICB8ICd0cmFzaCdcbiAgfCAndHJlbmQnXG4gIHwgJ3R5cGVmYWNlJ1xuICB8ICd1bmNvbW1lbnQtY29kZSdcbiAgfCAndW5kbydcbiAgfCAndW5ncm91cCdcbiAgfCAndW5pdmVyc2l0eSdcbiAgfCAndW5saW5rJ1xuICB8ICd1bnB1Ymxpc2gnXG4gIHwgJ3VwbG9hZCdcbiAgfCAndXNlcidcbiAgfCAndmFsaWRhdGUtY29kZSdcbiAgfCAndmlld3MtbGluZSdcbiAgfCAndmlld3MnXG4gIHwgJ3Zpc3VhbGl6ZSdcbiAgfCAnd2FybmluZy1mdWxsJ1xuICB8ICd3YXJuaW5nLWxpbmUnXG4gIHwgJ3dhcm5pbmctc2ltcGxlJ1xuICB8ICd3ZWJpbmFyJ1xuICB8ICd3aWRnZXRzJ1xuICB8ICd3b3JrZmxvdydcbiAgfCAnd29ya3NwYWNlJ1xuICB8ICd6b29tLWluJztcbiJdfQ==
@@ -111,4 +111,15 @@ export function a(array, n) {
111
111
  if (n === void 0) { n = 1; }
112
112
  return array.filter(function (e, index) { return index >= n; });
113
113
  }
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxhQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFDO0FBQ2xDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQztBQUNsQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFFcEM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDcEMsT0FBTyxhQUFhLHdCQUFJLE1BQU0sR0FBRTtBQUNsQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLEtBQUs7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDN0IsT0FBTyxNQUFNLHdCQUFJLE1BQU0sR0FBRTtBQUMzQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDbEMsT0FBTyxXQUFXLHdCQUFJLE1BQU0sR0FBRTtBQUNoQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDcEMsT0FBTyxhQUFhLHdCQUFJLE1BQU0sR0FBRTtBQUNsQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFVLEVBQUUsU0FBVTtJQUNyRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNuQztJQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO0lBQ25DLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksS0FBbUI7SUFDekMsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzdELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFJLEtBQVU7SUFDaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRO0lBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFJLEtBQVUsRUFBRSxDQUFLO0lBQUwsa0JBQUEsRUFBQSxLQUFLO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsRUFBRSxLQUFLLElBQUssT0FBQSxLQUFLLElBQUksQ0FBQyxFQUFWLENBQVUsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsQ0FBQyxDQUFJLEtBQVUsRUFBRSxDQUFLO0lBQUwsa0JBQUEsRUFBQSxLQUFLO0lBQ3BDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsRUFBRSxLQUFLLElBQUssT0FBQSxLQUFLLElBQUksQ0FBQyxFQUFWLENBQVUsQ0FBQyxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgX2ludGVyc2VjdGlvbiBmcm9tICdsb2Rhc2guaW50ZXJzZWN0aW9uJztcbmltcG9ydCBfdW5pb24gZnJvbSAnbG9kYXNoLnVuaW9uJztcbmltcG9ydCBfZGlmZmVyZW5jZSBmcm9tICdsb2Rhc2guZGlmZmVyZW5jZSc7XG5pbXBvcnQgX2RpZmZlcmVuY2VCeSBmcm9tICdsb2Rhc2guZGlmZmVyZW5jZWJ5JztcbmltcG9ydCBfZmluZEluZGV4IGZyb20gJ2xvZGFzaC5maW5kaW5kZXgnO1xuaW1wb3J0IF9taW5CeSBmcm9tICdsb2Rhc2gubWluYnknO1xuaW1wb3J0IF91bmlxQnkgZnJvbSAnbG9kYXNoLnVuaXFieSc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBhcnJheXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGludGVyc2VjdGlvbiguLi5hcnJheXMpIHtcbiAgcmV0dXJuIF9pbnRlcnNlY3Rpb24oLi4uYXJyYXlzKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGFycmF5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pb24oLi4uYXJyYXlzKSB7XG4gIHJldHVybiBfdW5pb24oLi4uYXJyYXlzKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGFycmF5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZSguLi5hcnJheXMpIHtcbiAgcmV0dXJuIF9kaWZmZXJlbmNlKC4uLmFycmF5cyk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBhcnJheXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZlcmVuY2VCeSguLi5hcnJheXMpIHtcbiAgcmV0dXJuIF9kaWZmZXJlbmNlQnkoLi4uYXJyYXlzKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGFycmF5XG4gKiBAcGFyYW0gcHJlZGljYXRlXG4gKiBAcGFyYW0gZnJvbUluZGV4XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaW5kSW5kZXgoYXJyYXksIHByZWRpY2F0ZT8sIGZyb21JbmRleD8pIHtcbiAgaWYgKEFycmF5LnByb3RvdHlwZS5maW5kSW5kZXgpIHtcbiAgICByZXR1cm4gYXJyYXkuZmluZEluZGV4KHByZWRpY2F0ZSk7XG4gIH1cblxuICByZXR1cm4gX2ZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlLCBmcm9tSW5kZXgpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gYXJyYXlcbiAqIEBwYXJhbSBpdGVyYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gbWluQnkoYXJyYXksIGl0ZXJhdG9yKSB7XG4gIHJldHVybiBfbWluQnkoYXJyYXksIGl0ZXJhdG9yKTtcbn1cblxuLyoqXG4gKlxuICpcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAcGFyYW0ge2FueX0gdmFsdWVcbiAqIEByZXR1cm5zIHtUfSAtIGxhc3QgZWxlbWVudCBpbiBhcnJheSBvciB1bmRlZmluZWQgaWYgbm8gZWxlbW5ldHMuXG4gKiBAbWVtYmVyb2YgQXJyYXlVdGlsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsYXN0PFQ+KHZhbHVlOiBBcnJheUxpa2U8VD4pOiBUIHtcbiAgY29uc3QgYXJyID0gQXJyYXkuZnJvbSh2YWx1ZSk7XG4gIHJldHVybiBhcnIgJiYgYXJyLmxlbmd0aCA/IGFyclthcnIubGVuZ3RoIC0gMV0gOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogUmVtb3ZlIGFycmF5IGR1cGxpY2F0ZXNcbiAqIEBwYXJhbSBhcnJheVxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcTxUPihhcnJheTogVFtdKTogVFtdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20obmV3IFNldChhcnJheSkpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gYXJyYXlcbiAqIEBwYXJhbSBpdGVyYXRvclxuICovXG5leHBvcnQgZnVuY3Rpb24gdW5pcUJ5KGFycmF5LCBpdGVyYXRvcikge1xuICByZXR1cm4gX3VuaXFCeShhcnJheSwgaXRlcmF0b3IpO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZmlyc3QgbiAocGFzc2VkIHBhcmFtKSBpdGVtcyBpbiB0aGUgZ2l2ZW4gYXJyYXlcbiAqIEBwYXJhbSB7VFtdfSBhcnJheSAtIFRoZSBhcnJheSB0byBkcm9wIGZyb21cbiAqIEBwYXJhbSB7bnVtYmVyfSBuIC0gbnVtYmVyIG9mIGl0ZW1zIHRvIHJlbW92ZSBkZWZhdWx0cyB0byAxXG4gKiBAcmV0dXJucyB7VFtdfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZHJvcDxUPihhcnJheTogVFtdLCBuID0gMSk6IFRbXSB7XG4gIHJldHVybiBhcnJheS5maWx0ZXIoKGUsIGluZGV4KSA9PiBpbmRleCA+PSBuKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGE8VD4oYXJyYXk6IFRbXSwgbiA9IDEpOiBUW10ge1xuICByZXR1cm4gYXJyYXkuZmlsdGVyKChlLCBpbmRleCkgPT4gaW5kZXggPj0gbik7XG59XG4iXX0=
114
+ /**
115
+ * Compares 2 array and return whether their inner values are the same,
116
+ * without considering their order
117
+ */
118
+ export function isArrayValuesEqual(arrA, arrB) {
119
+ if (arrA === void 0) { arrA = []; }
120
+ if (arrB === void 0) { arrB = []; }
121
+ var aInb = arrA.every(function (valA) { return arrB.find(function (valB) { return valB === valA; }); });
122
+ var bIna = arrB.every(function (valB) { return arrA.find(function (valA) { return valA === valB; }); });
123
+ return aInb && bIna && arrA.length === arrB.length;
124
+ }
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi91dGlscy9hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxhQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFDO0FBQ2xDLE9BQU8sV0FBVyxNQUFNLG1CQUFtQixDQUFDO0FBQzVDLE9BQU8sYUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sVUFBVSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQztBQUNsQyxPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFFcEM7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDcEMsT0FBTyxhQUFhLHdCQUFJLE1BQU0sR0FBRTtBQUNsQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLEtBQUs7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDN0IsT0FBTyxNQUFNLHdCQUFJLE1BQU0sR0FBRTtBQUMzQixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDbEMsT0FBTyxXQUFXLHdCQUFJLE1BQU0sR0FBRTtBQUNoQyxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFBQyxnQkFBUztTQUFULFVBQVMsRUFBVCxxQkFBUyxFQUFULElBQVM7UUFBVCwyQkFBUzs7SUFDcEMsT0FBTyxhQUFhLHdCQUFJLE1BQU0sR0FBRTtBQUNsQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFVLEVBQUUsU0FBVTtJQUNyRCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQzdCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztLQUNuQztJQUVELE9BQU8sVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRO0lBQ25DLE9BQU8sTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNqQyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxJQUFJLENBQUksS0FBbUI7SUFDekMsSUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQzdELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFJLEtBQVU7SUFDaEMsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDcEMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRO0lBQ3BDLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFJLEtBQVUsRUFBRSxDQUFLO0lBQUwsa0JBQUEsRUFBQSxLQUFLO0lBQ3ZDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsRUFBRSxLQUFLLElBQUssT0FBQSxLQUFLLElBQUksQ0FBQyxFQUFWLENBQVUsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxNQUFNLFVBQVUsQ0FBQyxDQUFJLEtBQVUsRUFBRSxDQUFLO0lBQUwsa0JBQUEsRUFBQSxLQUFLO0lBQ3BDLE9BQU8sS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFDLENBQUMsRUFBRSxLQUFLLElBQUssT0FBQSxLQUFLLElBQUksQ0FBQyxFQUFWLENBQVUsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsSUFBUyxFQUFFLElBQVM7SUFBcEIscUJBQUEsRUFBQSxTQUFTO0lBQUUscUJBQUEsRUFBQSxTQUFTO0lBQ3JELElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxLQUFLLElBQUksRUFBYixDQUFhLENBQUMsRUFBaEMsQ0FBZ0MsQ0FBQyxDQUFDO0lBQ2xFLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBQSxJQUFJLElBQUksT0FBQSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsSUFBSSxLQUFLLElBQUksRUFBYixDQUFhLENBQUMsRUFBaEMsQ0FBZ0MsQ0FBQyxDQUFDO0lBRWxFLE9BQU8sSUFBSSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxNQUFNLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfaW50ZXJzZWN0aW9uIGZyb20gJ2xvZGFzaC5pbnRlcnNlY3Rpb24nO1xuaW1wb3J0IF91bmlvbiBmcm9tICdsb2Rhc2gudW5pb24nO1xuaW1wb3J0IF9kaWZmZXJlbmNlIGZyb20gJ2xvZGFzaC5kaWZmZXJlbmNlJztcbmltcG9ydCBfZGlmZmVyZW5jZUJ5IGZyb20gJ2xvZGFzaC5kaWZmZXJlbmNlYnknO1xuaW1wb3J0IF9maW5kSW5kZXggZnJvbSAnbG9kYXNoLmZpbmRpbmRleCc7XG5pbXBvcnQgX21pbkJ5IGZyb20gJ2xvZGFzaC5taW5ieSc7XG5pbXBvcnQgX3VuaXFCeSBmcm9tICdsb2Rhc2gudW5pcWJ5JztcblxuLyoqXG4gKlxuICogQHBhcmFtIGFycmF5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gaW50ZXJzZWN0aW9uKC4uLmFycmF5cykge1xuICByZXR1cm4gX2ludGVyc2VjdGlvbiguLi5hcnJheXMpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gYXJyYXlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmlvbiguLi5hcnJheXMpIHtcbiAgcmV0dXJuIF91bmlvbiguLi5hcnJheXMpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gYXJyYXlzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmZXJlbmNlKC4uLmFycmF5cykge1xuICByZXR1cm4gX2RpZmZlcmVuY2UoLi4uYXJyYXlzKTtcbn1cblxuLyoqXG4gKlxuICogQHBhcmFtIGFycmF5c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZGlmZmVyZW5jZUJ5KC4uLmFycmF5cykge1xuICByZXR1cm4gX2RpZmZlcmVuY2VCeSguLi5hcnJheXMpO1xufVxuXG4vKipcbiAqXG4gKiBAcGFyYW0gYXJyYXlcbiAqIEBwYXJhbSBwcmVkaWNhdGVcbiAqIEBwYXJhbSBmcm9tSW5kZXhcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRJbmRleChhcnJheSwgcHJlZGljYXRlPywgZnJvbUluZGV4Pykge1xuICBpZiAoQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleCkge1xuICAgIHJldHVybiBhcnJheS5maW5kSW5kZXgocHJlZGljYXRlKTtcbiAgfVxuXG4gIHJldHVybiBfZmluZEluZGV4KGFycmF5LCBwcmVkaWNhdGUsIGZyb21JbmRleCk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBhcnJheVxuICogQHBhcmFtIGl0ZXJhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaW5CeShhcnJheSwgaXRlcmF0b3IpIHtcbiAgcmV0dXJuIF9taW5CeShhcnJheSwgaXRlcmF0b3IpO1xufVxuXG4vKipcbiAqXG4gKlxuICogQHRlbXBsYXRlIFRcbiAqIEBwYXJhbSB7YW55fSB2YWx1ZVxuICogQHJldHVybnMge1R9IC0gbGFzdCBlbGVtZW50IGluIGFycmF5IG9yIHVuZGVmaW5lZCBpZiBubyBlbGVtbmV0cy5cbiAqIEBtZW1iZXJvZiBBcnJheVV0aWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxhc3Q8VD4odmFsdWU6IEFycmF5TGlrZTxUPik6IFQge1xuICBjb25zdCBhcnIgPSBBcnJheS5mcm9tKHZhbHVlKTtcbiAgcmV0dXJuIGFyciAmJiBhcnIubGVuZ3RoID8gYXJyW2Fyci5sZW5ndGggLSAxXSA6IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgYXJyYXkgZHVwbGljYXRlc1xuICogQHBhcmFtIGFycmF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmlxPFQ+KGFycmF5OiBUW10pOiBUW10ge1xuICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGFycmF5KSk7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBhcnJheVxuICogQHBhcmFtIGl0ZXJhdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1bmlxQnkoYXJyYXksIGl0ZXJhdG9yKSB7XG4gIHJldHVybiBfdW5pcUJ5KGFycmF5LCBpdGVyYXRvcik7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBmaXJzdCBuIChwYXNzZWQgcGFyYW0pIGl0ZW1zIGluIHRoZSBnaXZlbiBhcnJheVxuICogQHBhcmFtIHtUW119IGFycmF5IC0gVGhlIGFycmF5IHRvIGRyb3AgZnJvbVxuICogQHBhcmFtIHtudW1iZXJ9IG4gLSBudW1iZXIgb2YgaXRlbXMgdG8gcmVtb3ZlIGRlZmF1bHRzIHRvIDFcbiAqIEByZXR1cm5zIHtUW119XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkcm9wPFQ+KGFycmF5OiBUW10sIG4gPSAxKTogVFtdIHtcbiAgcmV0dXJuIGFycmF5LmZpbHRlcigoZSwgaW5kZXgpID0+IGluZGV4ID49IG4pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYTxUPihhcnJheTogVFtdLCBuID0gMSk6IFRbXSB7XG4gIHJldHVybiBhcnJheS5maWx0ZXIoKGUsIGluZGV4KSA9PiBpbmRleCA+PSBuKTtcbn1cblxuLyoqXG4gKiBDb21wYXJlcyAyIGFycmF5IGFuZCByZXR1cm4gd2hldGhlciB0aGVpciBpbm5lciB2YWx1ZXMgYXJlIHRoZSBzYW1lLFxuICogd2l0aG91dCBjb25zaWRlcmluZyB0aGVpciBvcmRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBcnJheVZhbHVlc0VxdWFsKGFyckEgPSBbXSwgYXJyQiA9IFtdKTogYm9vbGVhbiB7XG4gIGNvbnN0IGFJbmIgPSBhcnJBLmV2ZXJ5KHZhbEEgPT4gYXJyQi5maW5kKHZhbEIgPT4gdmFsQiA9PT0gdmFsQSkpO1xuICBjb25zdCBiSW5hID0gYXJyQi5ldmVyeSh2YWxCID0+IGFyckEuZmluZCh2YWxBID0+IHZhbEEgPT09IHZhbEIpKTtcblxuICByZXR1cm4gYUluYiAmJiBiSW5hICYmIGFyckEubGVuZ3RoID09PSBhcnJCLmxlbmd0aDtcbn1cbiJdfQ==
@@ -1051,6 +1051,15 @@ function drop(array, n = 1) {
1051
1051
  function a(array, n = 1) {
1052
1052
  return array.filter((e, index) => index >= n);
1053
1053
  }
1054
+ /**
1055
+ * Compares 2 array and return whether their inner values are the same,
1056
+ * without considering their order
1057
+ */
1058
+ function isArrayValuesEqual(arrA = [], arrB = []) {
1059
+ const aInb = arrA.every(valA => arrB.find(valB => valB === valA));
1060
+ const bIna = arrB.every(valB => arrA.find(valA => valA === valB));
1061
+ return aInb && bIna && arrA.length === arrB.length;
1062
+ }
1054
1063
 
1055
1064
  function toBoolean(value, includeZero = false) {
1056
1065
  return value != null && `${value}` !== 'false' && ((includeZero && value !== 0) || !includeZero);
@@ -9992,6 +10001,15 @@ function getColumnsSizes(columns, original) {
9992
10001
  return sizeMap;
9993
10002
  }, {});
9994
10003
  }
10004
+ /**
10005
+ * Take pivoted value field if pivot column,
10006
+ * or field of the colDef,
10007
+ * or group field form showRowGroup if its agg column
10008
+ */
10009
+ function getColField(colDef) {
10010
+ const { field, showRowGroup, pivotValueColumn } = colDef;
10011
+ return pivotValueColumn ? pivotValueColumn.getColId() : field || showRowGroup;
10012
+ }
9995
10013
 
9996
10014
  let GridQuery = class GridQuery extends Query {
9997
10015
  constructor(store) {
@@ -10038,7 +10056,7 @@ let GridQuery = class GridQuery extends Query {
10038
10056
  }
10039
10057
  getCurrentGridSettings() {
10040
10058
  const toColId = column => column.getColId();
10041
- const { columns, grid } = this.api;
10059
+ const { columns } = this.api;
10042
10060
  const groupedColumns = columns.getRowGroupColumns();
10043
10061
  const columnsOrder = columns.getAllColumns();
10044
10062
  const allGridColumns = columns.getAllGridColumns();
@@ -10048,7 +10066,7 @@ let GridQuery = class GridQuery extends Query {
10048
10066
  const storeSettings = this.getValue().settings;
10049
10067
  const settings = {
10050
10068
  gridAlignment: storeSettings.gridAlignment,
10051
- sort: grid.getSortModel().pop(),
10069
+ sort: this.getSort(),
10052
10070
  hiddenColumns,
10053
10071
  groupedColumns: groupedColumns.map(toColId),
10054
10072
  filter: this.getFilter(),
@@ -10062,6 +10080,29 @@ let GridQuery = class GridQuery extends Query {
10062
10080
  }
10063
10081
  return settings;
10064
10082
  }
10083
+ getSort() {
10084
+ if (this.gridRef.gridOptions.pivotMode) {
10085
+ const { sort, colId } = this.api.grid.getSortModel().pop() || {};
10086
+ const column = this.api.columns.getColumn(colId);
10087
+ const secondaryColumns = this.api.columns.getSecondaryColumns();
10088
+ const pivotedColumn = secondaryColumns && secondaryColumns.find(col => col.getColId() === colId);
10089
+ if (pivotedColumn) {
10090
+ const uniquePivotParents = uniq(secondaryColumns.map(column => column.getParent()));
10091
+ const secondaryColumn = secondaryColumns.find(col => col.getColId() === pivotedColumn.getColId());
10092
+ const pivotColIndex = uniquePivotParents.indexOf(secondaryColumn.getParent());
10093
+ return { colId: getColField(pivotedColumn.getColDef()), sort, pivotColIndex };
10094
+ }
10095
+ else if (column) {
10096
+ return { colId: getColField(column.getColDef()), sort };
10097
+ }
10098
+ }
10099
+ else {
10100
+ return this.api.grid.getSortModel().pop();
10101
+ }
10102
+ }
10103
+ selectSort() {
10104
+ return this.select(state => state.settings.sort);
10105
+ }
10065
10106
  /* @internal */
10066
10107
  _setApi(api, gridRef) {
10067
10108
  this.api = api;
@@ -10078,6 +10119,9 @@ let GridQuery = class GridQuery extends Query {
10078
10119
  getFilter() {
10079
10120
  return this.getValue().settings.filter;
10080
10121
  }
10122
+ selectFilter() {
10123
+ return this.select(state => state.settings.filter);
10124
+ }
10081
10125
  getSearchTerm() {
10082
10126
  return this.getValue().settings.searchTerm;
10083
10127
  }
@@ -10132,6 +10176,9 @@ let GridQuery = class GridQuery extends Query {
10132
10176
  getAllDisplayedColumns() {
10133
10177
  return this.filterCheckboxSelectionColumn(this.api.columns.getAllDisplayedColumns());
10134
10178
  }
10179
+ getAllPivotColumns() {
10180
+ return this.getAllColumns().filter(column => column.isPivotActive());
10181
+ }
10135
10182
  selectIsSelectAllRowsEnabled() {
10136
10183
  return this.select(state => state.serverSidePagination.selectAllRowsEnabled);
10137
10184
  }
@@ -10306,8 +10353,13 @@ function validateFilter({ row, api }, activeFilters) {
10306
10353
  const orderedFilters = Object.keys(activeFilters);
10307
10354
  for (const filter of orderedFilters) {
10308
10355
  let filterPasses = true;
10309
- const { byValue, conditional } = activeFilters[filter];
10356
+ const { byValue, conditional, pivotKeys } = activeFilters[filter];
10357
+ const currentRowPivotKeys = row.parent.childrenMapped && getRowPivotKeys(row.parent.childrenMapped);
10310
10358
  const rowValue = api.getValue(filter, row);
10359
+ /** If value is under a pivoted column but doesn't match the filter pivot */
10360
+ if (pivotKeys && !isArrayValuesEqual(pivotKeys, currentRowPivotKeys)) {
10361
+ return true;
10362
+ }
10311
10363
  if (conditional) {
10312
10364
  const { operator, conditions, type } = conditional;
10313
10365
  const conditionsRelation = operator === OperatorTypes.AND ? 'every' : 'some';
@@ -10324,6 +10376,25 @@ function validateFilter({ row, api }, activeFilters) {
10324
10376
  }
10325
10377
  return true;
10326
10378
  }
10379
+ /**
10380
+ * Get pivot keys from a row parent
10381
+ */
10382
+ function getRowPivotKeys(childrenMapped, keys = []) {
10383
+ const key = Object.keys(childrenMapped)[0];
10384
+ let parsedKey;
10385
+ try {
10386
+ parsedKey = JSON.parse(key);
10387
+ }
10388
+ catch (e) {
10389
+ console.error(`Can't parse ${key} from JSON`);
10390
+ }
10391
+ finally {
10392
+ if (parsedKey) {
10393
+ keys = getRowPivotKeys(childrenMapped[key], [...keys, parsedKey.value]);
10394
+ }
10395
+ }
10396
+ return keys;
10397
+ }
10327
10398
 
10328
10399
  var GridActionType;
10329
10400
  (function (GridActionType) {
@@ -11113,15 +11184,20 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11113
11184
  return this.filterForm.get('conditional.conditions');
11114
11185
  }
11115
11186
  get colFilter() {
11116
- return this.gridQuery.getFilter()[this.colField];
11187
+ const filter = this.gridQuery.getFilter()[this.colField];
11188
+ return filter && isArrayValuesEqual(this.pivotKeys, filter.pivotKeys) ? filter : null;
11117
11189
  }
11118
11190
  get colDef() {
11119
11191
  return this.popover.data.column.getColDef();
11120
11192
  }
11193
+ get pivotKeys() {
11194
+ return this.colDef.pivotKeys || [];
11195
+ }
11121
11196
  ngOnInit() {
11122
11197
  const { gridService, gridQuery } = this.popover.data;
11123
- const { field, filter, filtersConfig = {} } = this.colDef;
11124
- this.colField = field;
11198
+ const { filter, filtersConfig = {}, pivotValueColumn, pivotKeys } = this.colDef;
11199
+ this.colField = getColField(this.colDef);
11200
+ this.pivotColumn = gridQuery.api.columns.getSecondaryPivotColumn(pivotKeys, pivotValueColumn);
11125
11201
  if (filtersConfig.sections) {
11126
11202
  this.filterSections = { [filtersConfig.sections]: true };
11127
11203
  }
@@ -11133,7 +11209,11 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11133
11209
  this.listSortByKey = this.filterType === DatoGridFilterTypes.Number && this.colDef.valueFormatter ? 'id' : 'label';
11134
11210
  this.gridQuery = gridQuery;
11135
11211
  this.gridService = gridService;
11136
- this.hasFilter$ = this.gridQuery.select(state => state.settings.filter[field]).pipe(map$1(filter => !isNil(filter)));
11212
+ this.hasFilter$ = this.gridQuery
11213
+ .select(state => state.settings.filter[this.colField])
11214
+ .pipe(map$1(filter => {
11215
+ return !isNil(filter) && isArrayValuesEqual(filter.pivotKeys, this.pivotKeys);
11216
+ }));
11137
11217
  if (this.filterSections.Conditional) {
11138
11218
  let filterConditions = filterOptions || DatoGridStringFilterOptions;
11139
11219
  if (filtersConfig.showEmptyConditions) {
@@ -11241,6 +11321,10 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11241
11321
  buildFilter() {
11242
11322
  const { byValue, conditional } = this.filterForm.value;
11243
11323
  const filter = {};
11324
+ filter.pivotKeys = this.pivotKeys;
11325
+ if (this.pivotColumn) {
11326
+ filter.pivotFields = this.getPivotFields(this.pivotColumn.getParent());
11327
+ }
11244
11328
  if (this.filterSections.Conditional) {
11245
11329
  this.setConditionalFilter(filter, conditional);
11246
11330
  }
@@ -11547,6 +11631,17 @@ let DatoGridFilterComponent = class DatoGridFilterComponent {
11547
11631
  getNonExcludedValues(data) {
11548
11632
  return data.filter(v => !this.excludedValues.has(v));
11549
11633
  }
11634
+ /**
11635
+ * Get pivot dimensions as defined in the parent group column header class.
11636
+ */
11637
+ getPivotFields(parent, fields = []) {
11638
+ const grandParent = parent.getParent();
11639
+ if (grandParent) {
11640
+ this.getPivotFields(grandParent, fields);
11641
+ }
11642
+ fields.push(parent.getOriginalColumnGroup().getColGroupDef().headerClass);
11643
+ return fields;
11644
+ }
11550
11645
  };
11551
11646
  DatoGridFilterComponent.ctorParameters = () => [
11552
11647
  { type: ElementRef },
@@ -11629,10 +11724,9 @@ let DatoGridColumnHeaderComponent = class DatoGridColumnHeaderComponent {
11629
11724
  const colDef = params.column.getColDef();
11630
11725
  this.headerInfo = colDef.info;
11631
11726
  this.headerName = colDef.headerName;
11632
- this.aggColumn = this.column.getColId().indexOf('ag-Grid-AutoColumn') !== -1;
11633
11727
  this.showFilter = colDef.filter !== DatoGridFilterTypes.None;
11634
11728
  this.showMoreMenu = isNil(colDef.moreMenuActions) || colDef.moreMenuActions.length > 0;
11635
- this.field = this.aggColumn ? this.groupField : colDef.field;
11729
+ this.field = getColField(colDef);
11636
11730
  this.context = {
11637
11731
  api: {
11638
11732
  grid: params.api,
@@ -11644,7 +11738,10 @@ let DatoGridColumnHeaderComponent = class DatoGridColumnHeaderComponent {
11644
11738
  this.customTemplates = gridService.getCustomHeader(this.field);
11645
11739
  this.filterActive$ = gridQuery
11646
11740
  .select(state => state.settings.filter[this.field])
11647
- .pipe(map$1(filter => size(filter) > 0));
11741
+ .pipe(map$1(filter => {
11742
+ const isPivotColumnMatchFilter = filter && isArrayValuesEqual(filter.pivotKeys, colDef.pivotKeys);
11743
+ return size(filter) > 0 && isPivotColumnMatchFilter;
11744
+ }));
11648
11745
  if (this.params.enableSorting) {
11649
11746
  fromEvent(this.host.nativeElement, 'click')
11650
11747
  .pipe(untilDestroyed(this))
@@ -11704,9 +11801,6 @@ let DatoGridColumnHeaderComponent = class DatoGridColumnHeaderComponent {
11704
11801
  });
11705
11802
  }
11706
11803
  ngOnDestroy() { }
11707
- get groupField() {
11708
- return this.column.getColDef().showRowGroup;
11709
- }
11710
11804
  };
11711
11805
  DatoGridColumnHeaderComponent.ctorParameters = () => [
11712
11806
  { type: ViewContainerRef },
@@ -12180,8 +12274,8 @@ let GridService = class GridService {
12180
12274
  this.svgRegistry = svgRegistry;
12181
12275
  this.storageAPI = storageAPI;
12182
12276
  this.logger = logger;
12183
- this.pageNumberToReturnAfterRefresh = -1;
12184
12277
  this.treeConfig = defaultGridTreeLabel;
12278
+ this.pageNumberToReturnAfterRefresh = -1;
12185
12279
  this.CHECKBOX_SELECTION_COL_ID = 'grid-checkbox-selection';
12186
12280
  }
12187
12281
  set treeData(isTreeData) {
@@ -12238,6 +12332,9 @@ let GridService = class GridService {
12238
12332
  const treeDate = convertToTreeData(data, this.treeConfig);
12239
12333
  this.api.grid.setRowData(treeDate);
12240
12334
  }
12335
+ else if (this.isPivotMode) {
12336
+ this.setPivotModeRows(data);
12337
+ }
12241
12338
  else {
12242
12339
  this.api.grid.setRowData(data);
12243
12340
  }
@@ -12349,6 +12446,12 @@ let GridService = class GridService {
12349
12446
  params.gridOptions.saveSettings = saveSettings !== false && !isNil(gridName);
12350
12447
  /** Server Side Pagination for select all option */
12351
12448
  this.initOnRowSelectedForServerSidePagination(params);
12449
+ /** Add pivot specific required settings */
12450
+ if (params.gridOptions.pivotMode) {
12451
+ this.initPivotSecondaryColsProcess(params);
12452
+ params.gridOptions.enableV2_1 = true;
12453
+ params.gridOptions.saveSettings = false;
12454
+ }
12352
12455
  return params.gridOptions;
12353
12456
  }
12354
12457
  normalizeColumns(colDefs, gridOptions = null) {
@@ -12516,9 +12619,10 @@ let GridService = class GridService {
12516
12619
  numOfConditions: (filter.conditional && filter.conditional.conditions.length) || 0,
12517
12620
  byValue: !!filter.byValue ? 'Yes' : 'No'
12518
12621
  });
12622
+ const colField = getColField(column.getColDef());
12519
12623
  this.store.update(state => {
12520
12624
  return {
12521
- settings: Object.assign(Object.assign({}, state.settings), { filter: Object.assign(Object.assign({}, state.settings.filter), { [column.getColDef().field]: filter }) })
12625
+ settings: Object.assign(Object.assign({}, state.settings), { filter: Object.assign(Object.assign({}, state.settings.filter), { [colField]: filter }) })
12522
12626
  };
12523
12627
  });
12524
12628
  this.notifyFilterUpdate();
@@ -12973,6 +13077,50 @@ let GridService = class GridService {
12973
13077
  this.setServerSidePagination({ selectAllRowsEnabled: false, excludedFromSelectAll: [] });
12974
13078
  }
12975
13079
  }
13080
+ /**
13081
+ * When pivoting,
13082
+ * we add the field name to the column header class in order to access it through the auto generated pivot column.
13083
+ * @private
13084
+ */
13085
+ initPivotSecondaryColsProcess({ gridOptions }) {
13086
+ gridOptions.processSecondaryColDef = colDef => {
13087
+ const api = colDef.headerComponentParams.gridQuery.api;
13088
+ if (api) {
13089
+ const valueColumns = colDef.headerComponentParams.gridQuery.api.columns.getValueColumns();
13090
+ const originalColDef = valueColumns
13091
+ .map(({ userProvidedColDef }) => userProvidedColDef)
13092
+ .find(({ colId }) => colId === colDef.pivotValueColumn.getColId());
13093
+ if (originalColDef) {
13094
+ colDef.filter = originalColDef.filter;
13095
+ }
13096
+ }
13097
+ if (colDef.pivotKeys) {
13098
+ colDef.pivotKeys = colDef.pivotKeys.map(key => JSON.parse(key).value);
13099
+ }
13100
+ };
13101
+ gridOptions.processSecondaryColGroupDef = (colGroupDef) => {
13102
+ if (colGroupDef.headerName) {
13103
+ const { field, value } = JSON.parse(colGroupDef.headerName);
13104
+ colGroupDef.headerClass = field;
13105
+ colGroupDef.headerName = value;
13106
+ }
13107
+ if (colGroupDef.pivotKeys) {
13108
+ colGroupDef.pivotKeys = colGroupDef.pivotKeys.map(key => JSON.parse(key).value);
13109
+ }
13110
+ };
13111
+ }
13112
+ setPivotModeRows(data) {
13113
+ const pivotColumns = this.gridQuery.getAllPivotColumns();
13114
+ const convertedData = data.map((currentValue, index) => {
13115
+ const mappedValues = Object.assign({}, currentValue);
13116
+ for (const col of pivotColumns) {
13117
+ const field = col.getColDef().field;
13118
+ mappedValues[field] = JSON.stringify({ field, value: currentValue[field] });
13119
+ }
13120
+ return mappedValues;
13121
+ });
13122
+ this.api.grid.setRowData(convertedData);
13123
+ }
12976
13124
  };
12977
13125
  GridService.ctorParameters = () => [
12978
13126
  { type: GridStore },
@@ -13380,6 +13528,7 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13380
13528
  set gridOptions(gridOptions) {
13381
13529
  this._gridOptions = gridOptions;
13382
13530
  this.gridService.treeData = gridOptions.treeData;
13531
+ this.gridService.isPivotMode = gridOptions.pivotMode;
13383
13532
  if (this.agGridEl) {
13384
13533
  if (gridOptions.treeData) {
13385
13534
  !this.agGridEl.classList.contains(this.treeGridClass) && this.agGridEl.classList.add(this.treeGridClass);
@@ -13453,6 +13602,15 @@ let DatoGridControllerComponent = class DatoGridControllerComponent {
13453
13602
  const defaults = Object.assign(Object.assign(Object.assign({}, defaultGridOptions), (this.gridOptions.treeData ? defaultTreeOptions : {})), { icons: this.getGridIcons() });
13454
13603
  return deepmerge(defaults, normalized);
13455
13604
  }
13605
+ setGridRows(data) {
13606
+ this.gridService.setRows(data);
13607
+ }
13608
+ onFilterChanged() {
13609
+ return this.gridQuery.selectFilter();
13610
+ }
13611
+ onSortChanged() {
13612
+ return this.gridQuery.selectSort();
13613
+ }
13456
13614
  getGridIcons() {
13457
13615
  const moveColumnIcon = `<span class="da-grid-icon pointer d-flex column-move">${this.iconRegistry.getSvg('move-column')}</span>`;
13458
13616
  return {
@@ -13806,6 +13964,9 @@ let DatoGridV2Component = class DatoGridV2Component {
13806
13964
  get enableV2_1() {
13807
13965
  return this.gridOptions ? this.gridOptions.enableV2_1 : false;
13808
13966
  }
13967
+ get isPivotMode() {
13968
+ return this.gridOptions ? this.gridOptions.pivotMode : false;
13969
+ }
13809
13970
  };
13810
13971
  DatoGridV2Component.ctorParameters = () => [
13811
13972
  { type: DatoGridControllerComponent },
@@ -13819,7 +13980,7 @@ __decorate([
13819
13980
  DatoGridV2Component = __decorate([
13820
13981
  Component({
13821
13982
  selector: 'dato-grid-v2',
13822
- template: "<ag-grid-angular data-auto-id=\"grid\" class=\"dato-grid ag-theme-material\" [class.has-background]=\"enableBackground\" [class.enable-v2_1]=\"enableV2_1\"\n [class.with-multi-selection-col]=\"gridOptions?.showMultiSelectionCheckboxes\">\n</ag-grid-angular>\n<dato-grid-pagination-v2 [class.has-background]=\"enableBackground\"></dato-grid-pagination-v2>\n",
13983
+ template: "<ag-grid-angular data-auto-id=\"grid\" class=\"dato-grid ag-theme-material\" [class.has-background]=\"enableBackground\" [class.enable-v2_1]=\"enableV2_1\"\n [class.with-multi-selection-col]=\"gridOptions?.showMultiSelectionCheckboxes\" [class.pivot-mode]=\"isPivotMode\">\n</ag-grid-angular>\n<dato-grid-pagination-v2 [class.has-background]=\"enableBackground\"></dato-grid-pagination-v2>\n",
13823
13984
  changeDetection: ChangeDetectionStrategy.OnPush,
13824
13985
  encapsulation: ViewEncapsulation.None,
13825
13986
  styles: ["dato-grid-v2{flex-grow:1;display:flex;flex-direction:column;position:relative}dato-grid-v2 .dato-grid,dato-grid-v2 dato-grid-pagination-v2{position:absolute;left:0;right:0;bottom:0}dato-grid-v2 .dato-grid{top:0;bottom:50px}dato-grid-v2 .grid-hover-actions{position:absolute;z-index:2;transition:opacity .2s ease-in-out}dato-grid-v2 .ag-row-drag{width:initial!important}dato-grid-v2 .da-grid-icon{display:inline-block;line-height:31px;vertical-align:middle;width:initial;height:initial}dato-grid-v2 .da-grid-icon.drag{width:14px;height:14px;margin-right:6px;opacity:0;transition:opacity .3s;transform:translateY(-50%)}dato-grid-v2 .da-grid-icon.folder{width:18px;height:35px;margin:0 8px}dato-grid-v2 .ag-row.ag-row-hover .da-grid-icon.drag{opacity:1}dato-grid-v2 ag-grid-angular.tree .ag-group-contracted,dato-grid-v2 ag-grid-angular.tree .ag-group-expanded{display:inline-block;width:18px;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-group-checkbox{display:none}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-empty-folder .folder{margin-left:26px}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-1 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 1)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-1{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-2 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 2)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-2{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-3 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 3)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-3{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row.ag-row-level-4 .ag-cell-wrapper .ag-row-drag{padding-right:calc(55px * 4)}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-row-group-indent-4{margin-left:0!important;padding-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-row div[col-id=ag-Grid-AutoColumn]{padding-left:0}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell{display:flex;align-items:center}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .ag-group-value>span{display:inline-block;vertical-align:middle}dato-grid-v2 ag-grid-angular.tree .ag-row .ag-cell .initials{border-radius:50%;padding:4px;margin-right:8px;margin-left:20px;width:28px;height:28px;display:inline-block;text-align:center}dato-grid-v2 ag-grid-angular.tree .ag-row-group-leaf-indent{margin-left:0!important}dato-grid-v2 ag-grid-angular.tree .ag-selection-checkbox .ag-icon-checkbox-indeterminate:before{text-align:center;content:'-';display:inline-block;position:absolute;top:0;left:0;right:0;bottom:0;line-height:.5;color:#fff}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell{line-height:33px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.dato-editable-cell{line-height:29px}dato-grid-v2 ag-grid-angular.row-height-35 .ag-cell.ag-cell-inline-editing{height:35px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell{line-height:42px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.dato-editable-cell{line-height:38px}dato-grid-v2 ag-grid-angular.row-height-44 .ag-cell.ag-cell-inline-editing{height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell{line-height:48px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.dato-editable-cell{line-height:44px}dato-grid-v2 ag-grid-angular.row-height-50 .ag-cell.ag-cell-inline-editing{height:50px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell{line-height:57px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.dato-editable-cell{line-height:53px}dato-grid-v2 ag-grid-angular.row-height-59 .ag-cell.ag-cell-inline-editing{height:59px}dato-grid-v2 ag-grid-angular .ag-cell.checkbox-selection-cell{display:flex}dato-grid-v2 .ag-menu .da-grid-icon svg{vertical-align:middle}dato-grid-v2 .ag-header-cell-sortable .ag-sort-none-icon{opacity:0;transition:opacity .2s}dato-grid-v2 .ag-header-cell-sortable:hover .ag-sort-none-icon{opacity:1}dato-grid-v2 .group-contracted-icon,dato-grid-v2 .group-expanded-icon{width:7px}dato-grid-v2 .group-expanded-icon{transform:rotate(90deg)}dato-grid-v2 .dato-grid .ag-cell{border-top:0;border-bottom:0}.ag-dnd-ghost{min-width:100px;border:none;display:flex;justify-content:flex-start;align-content:center;align-items:center;cursor:-webkit-grabbing;cursor:grabbing;z-index:10000000}.ag-dnd-ghost .da-grid-icon.column-move-hide svg{height:18px;width:18px}.ag-dnd-ghost .da-grid-icon.column-move svg,.ag-dnd-ghost .da-grid-icon.column-move-pin svg{height:16px;width:16px}"]
@@ -14090,6 +14251,9 @@ let DatoGridPaginationV2Component = class DatoGridPaginationV2Component {
14090
14251
  showFirstEllipsis: false,
14091
14252
  showLastPage: false
14092
14253
  };
14254
+ // Show fit cell content and collapse/expand row groups controls
14255
+ this.showBottomControls = false;
14256
+ this.isExpanded = true;
14093
14257
  this.isServerSidePagination = false;
14094
14258
  // The number of pages displayed in the navigation panel for each view as defined by product.
14095
14259
  this.MINI_DISPLAY_LENGTH = 2;
@@ -14124,7 +14288,10 @@ let DatoGridPaginationV2Component = class DatoGridPaginationV2Component {
14124
14288
  this.initPagination();
14125
14289
  });
14126
14290
  this.gridQuery.gridReady$
14127
- .pipe(tap(() => (this.gridApi = this.gridQuery.api.grid)), switchMap(() => {
14291
+ .pipe(tap(() => {
14292
+ this.gridApi = this.gridQuery.api.grid;
14293
+ this.showBottomControls = this.gridQuery.getGridOptions().showBottomControls;
14294
+ }), switchMap(() => {
14128
14295
  this.isServerSidePagination = this.gridQuery.isServerSide;
14129
14296
  return this.isServerSidePagination ? this.gridQuery.serverDataLoaded$ : this.gridQuery.rowDataChanged$;
14130
14297
  }), throttleTime(100), tapOnce(() => this.initPagination()), untilDestroyed(this))
@@ -14240,6 +14407,13 @@ let DatoGridPaginationV2Component = class DatoGridPaginationV2Component {
14240
14407
  trackByPage(index, page) {
14241
14408
  return page;
14242
14409
  }
14410
+ toggleGroupsState() {
14411
+ this.isExpanded ? this.gridApi.collapseAll() : this.gridApi.expandAll();
14412
+ this.isExpanded = !this.isExpanded;
14413
+ }
14414
+ autoFitGrid(type) {
14415
+ this.gridService.fitGrid(type);
14416
+ }
14243
14417
  ngOnDestroy() { }
14244
14418
  /**
14245
14419
  * Sets the rows display string
@@ -14329,7 +14503,7 @@ DatoGridPaginationV2Component = __decorate([
14329
14503
  Component({
14330
14504
  selector: 'dato-grid-pagination-v2',
14331
14505
  changeDetection: ChangeDetectionStrategy.OnPush,
14332
- template: "<div class=\"d-flex-row d-flex-auto d-flex-wrap container\" [class.small]=\"smallVersion\"\n [attr.data-pages-count]=\"totalPages\"\n [attr.data-current-page]=\"pageNumbersDisplay.currentPage\"\n [attr.data-page-size]=\"rowsPerPage\"\n [attr.data-rows-count]=\"rowCount\">\n <div *ngIf=\"totalPages > 1\" #navigation\n class=\"navigation d-flex-row d-flex-0-0-auto align-center\">\n\n <!-- First Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"mr-4\" data-auto-id=\"pagiantion-first-page\"\n icon=\"chevron-left-double\"\n datoType=\"secondary\"\n datoSize=\"md\"\n [disabled]=\"prevPageDisabled\"\n (click)=\"navigateFirstPage()\">\n </dato-icon-button>\n\n <!-- Previous Page -->\n <dato-icon-button icon=\"arrow-left\" datoType=\"secondary\" datoSize=\"md\"\n [disabled]=\"prevPageDisabled\" data-auto-id=\"pagiantion-previous-page\"\n (click)=\"navigatePrevPage()\">\n </dato-icon-button>\n\n\n <div class=\"d-flex mx-5 align-center number-container\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-previous-batch\"\n *ngIf=\"pageNumbersDisplay.showFirstEllipsis && !smallVersion\"\n (click)=\"showPreviousBatch()\">...\n </dato-link>\n <dato-link class=\"page-number mx-5\" [datoType]=\"page === pageNumbersDisplay.currentPage ? 'primary' : 'secondary'\" datoSize=\"sm\"\n *ngFor=\"let page of pageNumbersDisplay.pages; index as i; trackBy: trackByPage;\" [attr.data-auto-id]=\"'pagiantion-page-' + i\"\n (click)=\"navigatePage(page - 1)\">\n {{page}}\n </dato-link>\n\n <div class=\"d-flex\" *ngIf=\"pageNumbersDisplay.showLastPage && !smallVersion\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-next-batch\"\n (click)=\"showNextBatch()\">...</dato-link>\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\"\n [attr.data-auto-id]=\"'pagiantion-page-' + totalPages\"\n (click)=\"navigatePage(totalPages - 1)\">\n {{totalPages}}\n </dato-link>\n </div>\n\n </div>\n\n <!-- Next Page -->\n <dato-icon-button icon=\"arrow-right\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"navigateNextPage()\" data-auto-id=\"pagiantion-next-page\"\n [disabled]=\"nextPageDisabled\">\n </dato-icon-button>\n\n <!-- Last Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"ml-4\" icon=\"chevron-right-double\"\n datoType=\"secondary\" datoSize=\"md\" data-auto-id=\"pagiantion-last-page\"\n [disabled]=\"nextPageDisabled\"\n (click)=\"navigatePage(totalPages - 1)\">\n </dato-icon-button>\n\n </div>\n\n <div *ngIf=\"totalPages > 1 && !smallVersion\"\n class=\"separator mx-10 my-auto primary-100-background-color\">\n </div>\n\n <div class=\"total d-flex-0-0-auto d-flex-row align-center\">\n <span class=\"dato-note primary-300-color\">{{rowsRange}}</span>\n </div>\n\n</div>\n",
14506
+ template: "<div class=\"d-flex-row d-flex-auto d-flex-wrap container\" [class.small]=\"smallVersion\"\n [attr.data-pages-count]=\"totalPages\"\n [attr.data-current-page]=\"pageNumbersDisplay.currentPage\"\n [attr.data-page-size]=\"rowsPerPage\"\n [attr.data-rows-count]=\"rowCount\">\n <div *ngIf=\"totalPages > 1\" #navigation\n class=\"navigation d-flex-row d-flex-0-0-auto align-center\">\n\n <!-- First Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"mr-4\" data-auto-id=\"pagiantion-first-page\"\n icon=\"chevron-left-double\"\n datoType=\"secondary\"\n datoSize=\"md\"\n [disabled]=\"prevPageDisabled\"\n (click)=\"navigateFirstPage()\">\n </dato-icon-button>\n\n <!-- Previous Page -->\n <dato-icon-button icon=\"arrow-left\" datoType=\"secondary\" datoSize=\"md\"\n [disabled]=\"prevPageDisabled\" data-auto-id=\"pagiantion-previous-page\"\n (click)=\"navigatePrevPage()\">\n </dato-icon-button>\n\n\n <div class=\"d-flex mx-5 align-center number-container\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-previous-batch\"\n *ngIf=\"pageNumbersDisplay.showFirstEllipsis && !smallVersion\"\n (click)=\"showPreviousBatch()\">...\n </dato-link>\n <dato-link class=\"page-number mx-5\" [datoType]=\"page === pageNumbersDisplay.currentPage ? 'primary' : 'secondary'\" datoSize=\"sm\"\n *ngFor=\"let page of pageNumbersDisplay.pages; index as i; trackBy: trackByPage;\" [attr.data-auto-id]=\"'pagiantion-page-' + i\"\n (click)=\"navigatePage(page - 1)\">\n {{page}}\n </dato-link>\n\n <div class=\"d-flex\" *ngIf=\"pageNumbersDisplay.showLastPage && !smallVersion\">\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\" data-auto-id=\"pagiantion-next-batch\"\n (click)=\"showNextBatch()\">...</dato-link>\n <dato-link class=\"page-number mx-5\" datoType=\"secondary\" datoSize=\"sm\"\n [attr.data-auto-id]=\"'pagiantion-page-' + totalPages\"\n (click)=\"navigatePage(totalPages - 1)\">\n {{totalPages}}\n </dato-link>\n </div>\n\n </div>\n\n <!-- Next Page -->\n <dato-icon-button icon=\"arrow-right\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"navigateNextPage()\" data-auto-id=\"pagiantion-next-page\"\n [disabled]=\"nextPageDisabled\">\n </dato-icon-button>\n\n <!-- Last Page -->\n <dato-icon-button *ngIf=\"!disableButtons\"\n class=\"ml-4\" icon=\"chevron-right-double\"\n datoType=\"secondary\" datoSize=\"md\" data-auto-id=\"pagiantion-last-page\"\n [disabled]=\"nextPageDisabled\"\n (click)=\"navigatePage(totalPages - 1)\">\n </dato-icon-button>\n\n </div>\n\n <div *ngIf=\"totalPages > 1 && !smallVersion\"\n class=\"separator mx-10 my-auto primary-100-background-color\">\n </div>\n\n <div class=\"total d-flex-0-0-auto d-flex-row align-center\">\n <span class=\"dato-note primary-300-color\">{{rowsRange}}</span>\n </div>\n\n <div *ngIf=\"showBottomControls\" class=\"grid-controls d-flex d-flex-1 justify-end\">\n <dato-icon-button [icon]=\"isExpanded ? 'collapse' : 'expand'\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"toggleGroupsState()\" data-auto-id=\"pagiantion-next-page\">\n </dato-icon-button>\n\n <dato-icon-button class=\"mx-4\" icon=\"maximize-horizontal\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"autoFitGrid('container')\" data-auto-id=\"pagiantion-next-page\">\n </dato-icon-button>\n\n <dato-icon-button icon=\"minimize-horizontal\" datoType=\"secondary\" datoSize=\"md\"\n (click)=\"autoFitGrid('content')\" data-auto-id=\"pagiantion-next-page\">\n </dato-icon-button>\n </div>\n</div>\n",
14333
14507
  providers: [DecimalPipe],
14334
14508
  styles: [":host{padding:12px 0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;min-height:25px}:host .container{height:25px}:host .navigation .page-number{transition:color .3s ease-in-out}:host .navigation .page-number:first-of-type{margin-left:7px}:host .navigation .page-number:last-of-type{margin-right:7px}:host .separator{width:1px;height:25px}:host .container.small .navigation,:host .container.small .total{margin-top:8px;margin-left:auto;margin-right:auto}"]
14335
14509
  }),
@@ -22366,5 +22540,5 @@ window.coreVersion = '21.4.0-rc.';
22366
22540
  * Generated bundle index. Do not edit.
22367
22541
  */
22368
22542
 
22369
- export { APP_TRANSLATE, AceService, BaseCustomControl, COMPARE_RESULT, CUSTOM_RANGE_ID, ColorPalette, ConfirmationType, ContentRef, ContentType, CustomHeaderControllerService, DATE_PICKER_CONFIG, DATE_PICKER_POPOVER_ID, DATO_CORE_LOGGER, DATO_FORM_ERRORS, DATO_GRID_STORAGE_API, DEFAULT_FORMAT, DEFAULT_GRID_SEARCH_DEBOUNCE_TIME, DatePickerConfig, DatePickerMonthComponent, DateType, DatoAccordionComponent, DatoAccordionContentComponent, DatoAccordionGroupComponent, DatoAccordionHeaderComponent, DatoAccordionModule, DatoAceDirective, DatoAceDraggableDirective, DatoAceModule, DatoActionType, DatoAutoCompleteContentDirective, DatoAutoFocusDirective, DatoAutocompleteComponent, DatoAutocompleteDirective, DatoAutocompleteModule, DatoBreadcrumbsComponent, DatoBreadcrumbsModule, DatoButtonComponent, DatoButtonGroupComponent, DatoButtonGroupModule, DatoButtonModule, DatoCamelCasePipe, DatoCarouselComponent, DatoCarouselItemDirective, DatoCarouselItemElement, DatoCarouselModule, DatoCheckboxComponent, DatoCheckboxModule, DatoClipboardDirective, DatoColorDirective, DatoConfirmationDialogComponent, DatoControlErrorComponent, DatoControlErrorContainerDirective, DatoControlErrorsDirective, DatoCoreError, DatoCoreModule, DatoCustomHeaderTemplateComponent, DatoCustomHeaderTemplateDirective, DatoCustomMoreMenuTemplateDirective, DatoDatePickerContainerComponent, DatoDatePickerModule, DatoDatePickerRangeComponent, DatoDatePickerSingleComponent, DatoDialog, DatoDialogCloseDirective, DatoDialogComponent, DatoDialogContentComponent, DatoDialogDismissDirective, DatoDialogFooterComponent, DatoDialogHeaderComponent, DatoDialogModule, DatoDialogRef, DatoDirectivesModule, DatoDisableControlDirective, DatoDraggableDirective, DatoDynamicContentComponent, DatoDynamicContentModule, DatoEditableHeaderComponent, DatoEditableHeaderModule, DatoFileInputComponent, DatoFileInputDefaultComponent, DatoFileInputModule, DatoFilterConditions, DatoFontDirective, DatoFontIconComponent, DatoFontIconModule, DatoFormSubmitDirective, DatoFormValidationModule, DatoGrid, DatoGridAPI, DatoGridAvatarCellComponent, DatoGridColumnDisplayMenuComponent, DatoGridColumnHeaderComponent, DatoGridColumnHeaderMoreMenuComponent, DatoGridColumnTypes, DatoGridComponent, DatoGridControllerComponent, DatoGridDateFilterOptions, DatoGridFilterComponent, DatoGridFilterOptionsMap, DatoGridFilterSections, DatoGridFilterTypes, DatoGridGroupsMenuComponent, DatoGridHeaderComponent, DatoGridHeaderV2Component, DatoGridInitialsCellComponent, DatoGridItemsCellComponent, DatoGridModule, DatoGridMoreMenuActions, DatoGridNumberFilterOptions, DatoGridOnHoverComponent, DatoGridPaginationComponent, DatoGridPaginationV2Component, DatoGridStatusCellComponent, DatoGridStringFilterOptions, DatoGridToolbarComponent, DatoGridToolbarItemDirective, DatoGridToolbarItemElementDirective, DatoGridV2Component, DatoGridV2LoaderComponent, DatoGridV2Module, DatoGridV2NoDataOverlayComponent, DatoGridV2ToolbarButtonComponent, DatoGridV2ToolbarComponent, DatoGroupComponent, DatoHighlightPipe, DatoHotkeys, DatoHotkeysDirective, DatoHotkeysHelpComponent, DatoHotkeysModule, DatoIconButtonComponent, DatoIconButtonModule, DatoIconComponent, DatoIconModule, DatoInfiniteScrollComponent, DatoInfiniteScrollModule, DatoInputComponent, DatoInputModule, DatoInputNumberComponent, DatoInputNumberDirective, DatoInputNumberModule, DatoKebabCasePipe, DatoLinkButtonComponent, DatoLinkButtonModule, DatoListComponent, DatoListModule, DatoListNoDataComponent, DatoListNoResultComponent, DatoListV2Component, DatoListV2Module, DatoLoaderComponent, DatoLoadersModule, DatoMenuComponent, DatoMenuContentDirective, DatoMenuItemDirective, DatoMenuModule, DatoMenuTriggerForDirective, DatoMultiOptionComponent, DatoMultiOptionV2Component, DatoOperatorTogglerComponent, DatoOperatorTogglerModule, DatoOptionComponent, DatoOptionV2Component, DatoOptionsModule, DatoOriginDirective, DatoOverlay, DatoPageLoaderComponent, DatoPanel, DatoPanelComponent, DatoPanelContentComponent, DatoPanelFooterComponent, DatoPanelHeaderComponent, DatoPanelInternalConfig, DatoPanelModule, DatoPanelRef, DatoPillsComponent, DatoPillsModule, DatoPipesModule, DatoPopover, DatoPopoverComponent, DatoPopoverModule, DatoProgressBarComponent, DatoProgressBarModule, DatoRadioComponent, DatoRadioModule, DatoRichTextDirective, DatoRichTextModule, DatoSearchResultsGroupSortPipe, DatoSearchResultsSortPipe, DatoSearchableContainerComponent, DatoSearchableDirective, DatoSearchableHighlightDirective, DatoSearchableModule, DatoSelectActiveDirective, DatoSelectComponent, DatoSelectEmptyComponent, DatoSelectModule, DatoSliderComponent, DatoSliderModule, DatoSnackbar, DatoSnackbarComponent, DatoSnackbarModule, DatoSortableComponent, DatoSortableHandleDirective, DatoSortableModule, DatoStaticImageSrcDirective, DatoStaticImagesSrcModule, DatoSubscribeContext, DatoSubscribeDirective, DatoTab, DatoTabContent, DatoTabTitle, DatoTabsModule, DatoTabset, DatoTemplatePortal, DatoTextModule, DatoThemesModule, DatoToast, DatoToastComponent, DatoToastModule, DatoTogglerComponent, DatoTogglerModule, DatoTooltipDirective, DatoTooltipV2Directive, DatoTrackByPropPipe, DatoTranslateService, DatoTreePipe, DatoTriggerMulti, DatoTriggerSingle, DialogConfig, DialogResultStatus, Dimensions, EventModifiersPlugin, GridActionType, GridMinWidths, GridRowSelectionType, GridToolbarService, ISO_FORMAT, IconRegistry, KeyCodes, KeyboardEventKeys, ListValueTypes, MockService, OperatorTypes, POPPER_BOUNDARY, PaletteDirective, PanelResultCloseTrigger, PillType, PopoverCloseDirective, PopoverContentDirective, PopoverRef, PopoverTrigger, ROOT_NODE_ID, RelativeDateType, RenderMethod, RowSelectionType, RowSelectionTypeV2, SELECT_MAX_HEIGHT, SUPPORTED_LOCALES, SelectType, SnackbarRef, SnackbarType, Store, SvgRegistry, ToolbarActionType, ToolbarArea, ToolbarConfirmation, ToolbarDeleteConfirmation, ToolbarHandler, TranslatePipe, Types, _valueChanges, a, addClass, addJSObjectCompletor, allowedFileTypes, alphabeticalGroupSort, alphabeticalSort, appendChild, appendScript, appendStyle, appendToBody, assertString, camelCase, capitalize, cloneDeep, closest, coerceArray, coerceElement, compareWith, compose, convertFromTreeData, convertToTreeData, copyToClipboard, createComponent, createElement, createGUID, createHTMLCompletor, curry, dateCompare, daysOfTheMonth, debounce, declarations$2 as declarations, deepEqual, deepmerge, defaultActions$1 as defaultActions, defaultConfig, defaultEditableColumnRenderer, defaultGridOptions, defaultGridTreeLabel, defaultOptionsDisplayLimit, defaultTreeOptions, dialogSizePreset, diff, difference, differenceBy, dimensionsChanges, directives, drop, editableCellRendererWithSearchHighlight, escape, escapeRegExp, filter, filterByControlValue, filterByTerm, filterDialogDismissed, filterDialogSuccess, filterGroupByControlValue, filterGroupByTerm, filterKey, find, findIndex, findKey, fixNgLeaks, forEach, formatKeys, generateMonths, get, getAttr, getCustomRange, getDateISOString, getDefaultConfirmationOptions, getDefaultOptions, getDefaultsToastOptions, getElementCoords, getFunctionName, getGridConfiguration, getGridModel, getInitials, getLocalizedFormat, getMultiTemplate, getOptionTemplate, getPopperDefaults, getUTCDate, getVisibleActions, gridTreeFilePathKey, groupBy, groupSortOrder, has, inView, intersection, invert, isArrowUpDown, isBoolean, isEmpty, isEmptyString, isEnter, isEqual, isEscape, isFraction, isFunction, isMacintosh, isNil, isNumber, isObject, isRangeCondition, isRangeCustom, isString, isTestEnv, isValidMediaLink, kebabCase, keyBy, keysSymbols, last, map, mapKeys, mapValues, maxFileSize, merge, minBy, mockInDev, mocks, ngContentResolver, noop, normalizeData, omit, omitBy, optionalDebounce, pallete, parseDateString, partial, polling, prependChild, publicApi$1 as publicApi, query, queryAll, random, rawDiff, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setEmptyFolderClass, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, size, sortBy, stubs, supportedLocales, tapLog, tapOnce, throttle, toBoolean, toFormData, toNumber, toResponseBody, toString, toggleClass, toolbarActionToContextAction, unescape, union, uniq, uniqBy, uploadProgress, validBase64Image, validUrl, validateCondition, validateDate, validateDateCondition, validateFilter, validateNumberCondition, validateRange, validateStringCondition, values, workerMap, zoneStable, ɵ0$2 as ɵ0, ɵ1$2 as ɵ1, ɵ2, DATO_CORE_CONFIG as ɵb, DatoGridHelper as ɵc, Popper as ɵd, GridQuery as ɵe, GridStore as ɵf, GridService as ɵg, DatoDateRangesFilterPipe as ɵh, ListStore as ɵi, DatoListSelectAllComponent as ɵj, DatoGridMultiSelectColumnHeaderComponent as ɵk, DatoGridItemsCountCellComponent as ɵl, DatoGridV2ToolbarMoreMenuComponent as ɵm, DatoGridSearchBarComponent as ɵn, RichTextService as ɵo };
22543
+ export { APP_TRANSLATE, AceService, BaseCustomControl, COMPARE_RESULT, CUSTOM_RANGE_ID, ColorPalette, ConfirmationType, ContentRef, ContentType, CustomHeaderControllerService, DATE_PICKER_CONFIG, DATE_PICKER_POPOVER_ID, DATO_CORE_LOGGER, DATO_FORM_ERRORS, DATO_GRID_STORAGE_API, DEFAULT_FORMAT, DEFAULT_GRID_SEARCH_DEBOUNCE_TIME, DatePickerConfig, DatePickerMonthComponent, DateType, DatoAccordionComponent, DatoAccordionContentComponent, DatoAccordionGroupComponent, DatoAccordionHeaderComponent, DatoAccordionModule, DatoAceDirective, DatoAceDraggableDirective, DatoAceModule, DatoActionType, DatoAutoCompleteContentDirective, DatoAutoFocusDirective, DatoAutocompleteComponent, DatoAutocompleteDirective, DatoAutocompleteModule, DatoBreadcrumbsComponent, DatoBreadcrumbsModule, DatoButtonComponent, DatoButtonGroupComponent, DatoButtonGroupModule, DatoButtonModule, DatoCamelCasePipe, DatoCarouselComponent, DatoCarouselItemDirective, DatoCarouselItemElement, DatoCarouselModule, DatoCheckboxComponent, DatoCheckboxModule, DatoClipboardDirective, DatoColorDirective, DatoConfirmationDialogComponent, DatoControlErrorComponent, DatoControlErrorContainerDirective, DatoControlErrorsDirective, DatoCoreError, DatoCoreModule, DatoCustomHeaderTemplateComponent, DatoCustomHeaderTemplateDirective, DatoCustomMoreMenuTemplateDirective, DatoDatePickerContainerComponent, DatoDatePickerModule, DatoDatePickerRangeComponent, DatoDatePickerSingleComponent, DatoDialog, DatoDialogCloseDirective, DatoDialogComponent, DatoDialogContentComponent, DatoDialogDismissDirective, DatoDialogFooterComponent, DatoDialogHeaderComponent, DatoDialogModule, DatoDialogRef, DatoDirectivesModule, DatoDisableControlDirective, DatoDraggableDirective, DatoDynamicContentComponent, DatoDynamicContentModule, DatoEditableHeaderComponent, DatoEditableHeaderModule, DatoFileInputComponent, DatoFileInputDefaultComponent, DatoFileInputModule, DatoFilterConditions, DatoFontDirective, DatoFontIconComponent, DatoFontIconModule, DatoFormSubmitDirective, DatoFormValidationModule, DatoGrid, DatoGridAPI, DatoGridAvatarCellComponent, DatoGridColumnDisplayMenuComponent, DatoGridColumnHeaderComponent, DatoGridColumnHeaderMoreMenuComponent, DatoGridColumnTypes, DatoGridComponent, DatoGridControllerComponent, DatoGridDateFilterOptions, DatoGridFilterComponent, DatoGridFilterOptionsMap, DatoGridFilterSections, DatoGridFilterTypes, DatoGridGroupsMenuComponent, DatoGridHeaderComponent, DatoGridHeaderV2Component, DatoGridInitialsCellComponent, DatoGridItemsCellComponent, DatoGridModule, DatoGridMoreMenuActions, DatoGridNumberFilterOptions, DatoGridOnHoverComponent, DatoGridPaginationComponent, DatoGridPaginationV2Component, DatoGridStatusCellComponent, DatoGridStringFilterOptions, DatoGridToolbarComponent, DatoGridToolbarItemDirective, DatoGridToolbarItemElementDirective, DatoGridV2Component, DatoGridV2LoaderComponent, DatoGridV2Module, DatoGridV2NoDataOverlayComponent, DatoGridV2ToolbarButtonComponent, DatoGridV2ToolbarComponent, DatoGroupComponent, DatoHighlightPipe, DatoHotkeys, DatoHotkeysDirective, DatoHotkeysHelpComponent, DatoHotkeysModule, DatoIconButtonComponent, DatoIconButtonModule, DatoIconComponent, DatoIconModule, DatoInfiniteScrollComponent, DatoInfiniteScrollModule, DatoInputComponent, DatoInputModule, DatoInputNumberComponent, DatoInputNumberDirective, DatoInputNumberModule, DatoKebabCasePipe, DatoLinkButtonComponent, DatoLinkButtonModule, DatoListComponent, DatoListModule, DatoListNoDataComponent, DatoListNoResultComponent, DatoListV2Component, DatoListV2Module, DatoLoaderComponent, DatoLoadersModule, DatoMenuComponent, DatoMenuContentDirective, DatoMenuItemDirective, DatoMenuModule, DatoMenuTriggerForDirective, DatoMultiOptionComponent, DatoMultiOptionV2Component, DatoOperatorTogglerComponent, DatoOperatorTogglerModule, DatoOptionComponent, DatoOptionV2Component, DatoOptionsModule, DatoOriginDirective, DatoOverlay, DatoPageLoaderComponent, DatoPanel, DatoPanelComponent, DatoPanelContentComponent, DatoPanelFooterComponent, DatoPanelHeaderComponent, DatoPanelInternalConfig, DatoPanelModule, DatoPanelRef, DatoPillsComponent, DatoPillsModule, DatoPipesModule, DatoPopover, DatoPopoverComponent, DatoPopoverModule, DatoProgressBarComponent, DatoProgressBarModule, DatoRadioComponent, DatoRadioModule, DatoRichTextDirective, DatoRichTextModule, DatoSearchResultsGroupSortPipe, DatoSearchResultsSortPipe, DatoSearchableContainerComponent, DatoSearchableDirective, DatoSearchableHighlightDirective, DatoSearchableModule, DatoSelectActiveDirective, DatoSelectComponent, DatoSelectEmptyComponent, DatoSelectModule, DatoSliderComponent, DatoSliderModule, DatoSnackbar, DatoSnackbarComponent, DatoSnackbarModule, DatoSortableComponent, DatoSortableHandleDirective, DatoSortableModule, DatoStaticImageSrcDirective, DatoStaticImagesSrcModule, DatoSubscribeContext, DatoSubscribeDirective, DatoTab, DatoTabContent, DatoTabTitle, DatoTabsModule, DatoTabset, DatoTemplatePortal, DatoTextModule, DatoThemesModule, DatoToast, DatoToastComponent, DatoToastModule, DatoTogglerComponent, DatoTogglerModule, DatoTooltipDirective, DatoTooltipV2Directive, DatoTrackByPropPipe, DatoTranslateService, DatoTreePipe, DatoTriggerMulti, DatoTriggerSingle, DialogConfig, DialogResultStatus, Dimensions, EventModifiersPlugin, GridActionType, GridMinWidths, GridRowSelectionType, GridToolbarService, ISO_FORMAT, IconRegistry, KeyCodes, KeyboardEventKeys, ListValueTypes, MockService, OperatorTypes, POPPER_BOUNDARY, PaletteDirective, PanelResultCloseTrigger, PillType, PopoverCloseDirective, PopoverContentDirective, PopoverRef, PopoverTrigger, ROOT_NODE_ID, RelativeDateType, RenderMethod, RowSelectionType, RowSelectionTypeV2, SELECT_MAX_HEIGHT, SUPPORTED_LOCALES, SelectType, SnackbarRef, SnackbarType, Store, SvgRegistry, ToolbarActionType, ToolbarArea, ToolbarConfirmation, ToolbarDeleteConfirmation, ToolbarHandler, TranslatePipe, Types, _valueChanges, a, addClass, addJSObjectCompletor, allowedFileTypes, alphabeticalGroupSort, alphabeticalSort, appendChild, appendScript, appendStyle, appendToBody, assertString, camelCase, capitalize, cloneDeep, closest, coerceArray, coerceElement, compareWith, compose, convertFromTreeData, convertToTreeData, copyToClipboard, createComponent, createElement, createGUID, createHTMLCompletor, curry, dateCompare, daysOfTheMonth, debounce, declarations$2 as declarations, deepEqual, deepmerge, defaultActions$1 as defaultActions, defaultConfig, defaultEditableColumnRenderer, defaultGridOptions, defaultGridTreeLabel, defaultOptionsDisplayLimit, defaultTreeOptions, dialogSizePreset, diff, difference, differenceBy, dimensionsChanges, directives, drop, editableCellRendererWithSearchHighlight, escape, escapeRegExp, filter, filterByControlValue, filterByTerm, filterDialogDismissed, filterDialogSuccess, filterGroupByControlValue, filterGroupByTerm, filterKey, find, findIndex, findKey, fixNgLeaks, forEach, formatKeys, generateMonths, get, getAttr, getCustomRange, getDateISOString, getDefaultConfirmationOptions, getDefaultOptions, getDefaultsToastOptions, getElementCoords, getFunctionName, getGridConfiguration, getGridModel, getInitials, getLocalizedFormat, getMultiTemplate, getOptionTemplate, getPopperDefaults, getUTCDate, getVisibleActions, gridTreeFilePathKey, groupBy, groupSortOrder, has, inView, intersection, invert, isArrayValuesEqual, isArrowUpDown, isBoolean, isEmpty, isEmptyString, isEnter, isEqual, isEscape, isFraction, isFunction, isMacintosh, isNil, isNumber, isObject, isRangeCondition, isRangeCustom, isString, isTestEnv, isValidMediaLink, kebabCase, keyBy, keysSymbols, last, map, mapKeys, mapValues, maxFileSize, merge, minBy, mockInDev, mocks, ngContentResolver, noop, normalizeData, omit, omitBy, optionalDebounce, pallete, parseDateString, partial, polling, prependChild, publicApi$1 as publicApi, query, queryAll, random, rawDiff, reject, relativeDateTypes, removeClass, resolveRange, round, searchHighlightCellRenderer, searchResultsGroupSort, searchResultsSort, setAttr, setAttribute, setDimensions, setEmptyFolderClass, setGridConfiguration, setGridModel, setMaxDimensions, setMinDimensions, setStyle, setStyles, size, sortBy, stubs, supportedLocales, tapLog, tapOnce, throttle, toBoolean, toFormData, toNumber, toResponseBody, toString, toggleClass, toolbarActionToContextAction, unescape, union, uniq, uniqBy, uploadProgress, validBase64Image, validUrl, validateCondition, validateDate, validateDateCondition, validateFilter, validateNumberCondition, validateRange, validateStringCondition, values, workerMap, zoneStable, ɵ0$2 as ɵ0, ɵ1$2 as ɵ1, ɵ2, DATO_CORE_CONFIG as ɵb, DatoGridHelper as ɵc, Popper as ɵd, GridQuery as ɵe, GridStore as ɵf, GridService as ɵg, DatoDateRangesFilterPipe as ɵh, ListStore as ɵi, DatoListSelectAllComponent as ɵj, DatoGridMultiSelectColumnHeaderComponent as ɵk, DatoGridItemsCountCellComponent as ɵl, DatoGridV2ToolbarMoreMenuComponent as ɵm, DatoGridSearchBarComponent as ɵn, RichTextService as ɵo };
22370
22544
  //# sourceMappingURL=datorama-core.js.map