angular-slickgrid 4.2.0 → 4.2.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 (415) hide show
  1. package/LICENSE +20 -20
  2. package/{dist/app → app}/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts +2 -2
  3. package/{dist/app → app}/modules/angular-slickgrid/constants.d.ts +0 -0
  4. package/{dist/app → app}/modules/angular-slickgrid/extensions/index.d.ts +0 -0
  5. package/{dist/app → app}/modules/angular-slickgrid/extensions/slickRowDetailView.d.ts +0 -2
  6. package/{dist/app → app}/modules/angular-slickgrid/global-grid-options.d.ts +0 -0
  7. package/{dist/app → app}/modules/angular-slickgrid/index.d.ts +0 -0
  8. package/{dist/app → app}/modules/angular-slickgrid/models/angularComponentOutput.interface.d.ts +0 -0
  9. package/{dist/app → app}/modules/angular-slickgrid/models/angularGridInstance.interface.d.ts +0 -0
  10. package/{dist/app → app}/modules/angular-slickgrid/models/externalTestingDependencies.interface.d.ts +0 -0
  11. package/{dist/app → app}/modules/angular-slickgrid/models/gridOption.interface.d.ts +0 -0
  12. package/{dist/app → app}/modules/angular-slickgrid/models/index.d.ts +0 -0
  13. package/{dist/app → app}/modules/angular-slickgrid/models/rowDetailView.interface.d.ts +0 -0
  14. package/{dist/app → app}/modules/angular-slickgrid/models/slickGrid.interface.d.ts +0 -0
  15. package/{dist/app → app}/modules/angular-slickgrid/modules/angular-slickgrid.module.d.ts +0 -0
  16. package/{dist/app → app}/modules/angular-slickgrid/services/angularUtil.service.d.ts +0 -0
  17. package/{dist/app → app}/modules/angular-slickgrid/services/bsDropdown.service.d.ts +0 -0
  18. package/{dist/app → app}/modules/angular-slickgrid/services/container.service.d.ts +1 -0
  19. package/{dist/app → app}/modules/angular-slickgrid/services/index.d.ts +0 -0
  20. package/{dist/app → app}/modules/angular-slickgrid/services/translater.service.d.ts +0 -0
  21. package/{dist/app → app}/modules/angular-slickgrid/services/utilities.d.ts +0 -0
  22. package/{dist/app → app}/modules/angular-slickgrid/slickgrid-config.d.ts +0 -0
  23. package/docs/assets/lib/multiple-select/README.md +17 -0
  24. package/{dist/esm2020 → esm2020}/angular-slickgrid.mjs +0 -0
  25. package/esm2020/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +1170 -0
  26. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/constants.mjs +1 -1
  27. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/extensions/index.mjs +1 -1
  28. package/esm2020/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +298 -0
  29. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/global-grid-options.mjs +1 -1
  30. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/index.mjs +1 -1
  31. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/angularComponentOutput.interface.mjs +1 -1
  32. package/esm2020/app/modules/angular-slickgrid/models/angularGridInstance.interface.mjs +2 -0
  33. package/esm2020/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.mjs +2 -0
  34. package/esm2020/app/modules/angular-slickgrid/models/gridOption.interface.mjs +2 -0
  35. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/index.mjs +1 -1
  36. package/esm2020/app/modules/angular-slickgrid/models/rowDetailView.interface.mjs +2 -0
  37. package/esm2020/app/modules/angular-slickgrid/models/slickGrid.interface.mjs +2 -0
  38. package/esm2020/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +43 -0
  39. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/angularUtil.service.mjs +4 -4
  40. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/bsDropdown.service.mjs +4 -4
  41. package/esm2020/app/modules/angular-slickgrid/services/container.service.mjs +29 -0
  42. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/index.mjs +1 -1
  43. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/translater.service.mjs +4 -4
  44. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/utilities.mjs +1 -1
  45. package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/slickgrid-config.mjs +1 -1
  46. package/{dist/esm2020 → esm2020}/public_api.mjs +1 -1
  47. package/{dist/fesm2015 → fesm2015}/angular-slickgrid.mjs +48 -51
  48. package/fesm2015/angular-slickgrid.mjs.map +1 -0
  49. package/{dist/fesm2020 → fesm2020}/angular-slickgrid.mjs +48 -51
  50. package/fesm2020/angular-slickgrid.mjs.map +1 -0
  51. package/{dist/i18n → i18n}/en.json +89 -89
  52. package/{dist/i18n → i18n}/fr.json +90 -90
  53. package/{dist/angular-slickgrid.d.ts → index.d.ts} +0 -0
  54. package/package.json +33 -118
  55. package/{dist/public_api.d.ts → public_api.d.ts} +0 -0
  56. package/test/cypress/node_modules/@cypress/request/README.md +1038 -0
  57. package/test/cypress/node_modules/@cypress/xvfb/README.md +48 -0
  58. package/test/cypress/node_modules/@cypress/xvfb/node_modules/debug/README.md +437 -0
  59. package/test/cypress/node_modules/@types/node/README.md +16 -0
  60. package/test/cypress/node_modules/@types/sinonjs__fake-timers/README.md +16 -0
  61. package/test/cypress/node_modules/@types/sizzle/README.md +16 -0
  62. package/test/cypress/node_modules/@types/yauzl/README.md +16 -0
  63. package/test/cypress/node_modules/@types/yauzl/node_modules/@types/node/README.md +16 -0
  64. package/test/cypress/node_modules/aggregate-error/README.md +61 -0
  65. package/test/cypress/node_modules/ansi-colors/README.md +315 -0
  66. package/test/cypress/node_modules/ansi-escapes/README.md +245 -0
  67. package/test/cypress/node_modules/ansi-regex/README.md +78 -0
  68. package/test/cypress/node_modules/ansi-styles/README.md +152 -0
  69. package/test/cypress/node_modules/arch/README.md +71 -0
  70. package/test/cypress/node_modules/asn1/README.md +50 -0
  71. package/test/cypress/node_modules/assert-plus/README.md +162 -0
  72. package/test/cypress/node_modules/astral-regex/README.md +46 -0
  73. package/test/cypress/node_modules/async/README.md +60 -0
  74. package/test/cypress/node_modules/asynckit/README.md +233 -0
  75. package/test/cypress/node_modules/at-least-node/README.md +25 -0
  76. package/test/cypress/node_modules/aws-sign2/README.md +4 -0
  77. package/test/cypress/node_modules/aws4/README.md +183 -0
  78. package/test/cypress/node_modules/balanced-match/README.md +91 -0
  79. package/test/cypress/node_modules/base64-js/README.md +34 -0
  80. package/test/cypress/node_modules/bcrypt-pbkdf/README.md +45 -0
  81. package/test/cypress/node_modules/blob-util/README.md +623 -0
  82. package/test/cypress/node_modules/bluebird/README.md +57 -0
  83. package/test/cypress/node_modules/brace-expansion/README.md +129 -0
  84. package/test/cypress/node_modules/buffer/README.md +410 -0
  85. package/test/cypress/node_modules/buffer-crc32/README.md +47 -0
  86. package/test/cypress/node_modules/cachedir/README.md +27 -0
  87. package/test/cypress/node_modules/caseless/README.md +45 -0
  88. package/test/cypress/node_modules/chalk/README.md +293 -0
  89. package/test/cypress/node_modules/chalk/node_modules/supports-color/README.md +76 -0
  90. package/test/cypress/node_modules/check-more-types/README.md +952 -0
  91. package/test/cypress/node_modules/ci-info/README.md +114 -0
  92. package/test/cypress/node_modules/clean-stack/README.md +76 -0
  93. package/test/cypress/node_modules/cli-cursor/README.md +55 -0
  94. package/test/cypress/node_modules/cli-table3/README.md +218 -0
  95. package/test/cypress/node_modules/cli-truncate/README.md +139 -0
  96. package/test/cypress/node_modules/color-convert/README.md +68 -0
  97. package/test/cypress/node_modules/color-name/README.md +11 -0
  98. package/test/cypress/node_modules/colorette/README.md +102 -0
  99. package/test/cypress/node_modules/colors/README.md +221 -0
  100. package/test/cypress/node_modules/combined-stream/README.md +138 -0
  101. package/test/cypress/node_modules/commander/README.md +737 -0
  102. package/test/cypress/node_modules/common-tags/README.md +687 -0
  103. package/test/cypress/node_modules/core-util-is/README.md +3 -0
  104. package/test/cypress/node_modules/cross-spawn/README.md +96 -0
  105. package/test/cypress/node_modules/cypress/README.md +25 -0
  106. package/test/cypress/node_modules/cypress/mount-utils/README.md +14 -0
  107. package/test/cypress/node_modules/cypress/react/README.md +414 -0
  108. package/test/cypress/node_modules/cypress/vue/README.md +678 -0
  109. package/test/cypress/node_modules/cypress/vue2/README.md +693 -0
  110. package/test/cypress/node_modules/dashdash/README.md +574 -0
  111. package/test/cypress/node_modules/dayjs/README.md +128 -0
  112. package/test/cypress/node_modules/debug/README.md +455 -0
  113. package/test/cypress/node_modules/delayed-stream/README.md +141 -0
  114. package/test/cypress/node_modules/ecc-jsbn/README.md +8 -0
  115. package/test/cypress/node_modules/emoji-regex/README.md +73 -0
  116. package/test/cypress/node_modules/end-of-stream/README.md +54 -0
  117. package/test/cypress/node_modules/enquirer/README.md +1752 -0
  118. package/test/cypress/node_modules/escape-string-regexp/README.md +27 -0
  119. package/test/cypress/node_modules/eventemitter2/README.md +809 -0
  120. package/test/cypress/node_modules/execa/README.md +656 -0
  121. package/test/cypress/node_modules/executable/README.md +64 -0
  122. package/test/cypress/node_modules/extend/README.md +81 -0
  123. package/test/cypress/node_modules/extract-zip/README.md +57 -0
  124. package/test/cypress/node_modules/extract-zip/node_modules/debug/README.md +455 -0
  125. package/test/cypress/node_modules/extsprintf/README.md +46 -0
  126. package/test/cypress/node_modules/fd-slicer/README.md +199 -0
  127. package/test/cypress/node_modules/figures/README.md +139 -0
  128. package/test/cypress/node_modules/forever-agent/README.md +4 -0
  129. package/test/cypress/node_modules/form-data/README.md +234 -0
  130. package/test/cypress/node_modules/fs-extra/README.md +264 -0
  131. package/test/cypress/node_modules/fs.realpath/README.md +33 -0
  132. package/test/cypress/node_modules/get-stream/README.md +124 -0
  133. package/test/cypress/node_modules/getos/README.md +79 -0
  134. package/test/cypress/node_modules/getpass/README.md +32 -0
  135. package/test/cypress/node_modules/glob/README.md +375 -0
  136. package/test/cypress/node_modules/global-dirs/README.md +72 -0
  137. package/test/cypress/node_modules/graceful-fs/README.md +133 -0
  138. package/test/cypress/node_modules/has-flag/README.md +89 -0
  139. package/test/cypress/node_modules/http-signature/README.md +80 -0
  140. package/test/cypress/node_modules/human-signals/README.md +155 -0
  141. package/test/cypress/node_modules/ieee754/README.md +51 -0
  142. package/test/cypress/node_modules/indent-string/README.md +70 -0
  143. package/test/cypress/node_modules/inflight/README.md +37 -0
  144. package/test/cypress/node_modules/inherits/README.md +42 -0
  145. package/test/cypress/node_modules/ini/README.md +102 -0
  146. package/test/cypress/node_modules/is-ci/README.md +50 -0
  147. package/test/cypress/node_modules/is-fullwidth-code-point/README.md +39 -0
  148. package/test/cypress/node_modules/is-installed-globally/README.md +31 -0
  149. package/test/cypress/node_modules/is-path-inside/README.md +63 -0
  150. package/test/cypress/node_modules/is-stream/README.md +57 -0
  151. package/test/cypress/node_modules/is-typedarray/README.md +16 -0
  152. package/test/cypress/node_modules/isexe/README.md +51 -0
  153. package/test/cypress/node_modules/isstream/README.md +66 -0
  154. package/test/cypress/node_modules/jsbn/README.md +175 -0
  155. package/test/cypress/node_modules/json-schema/README.md +3 -0
  156. package/test/cypress/node_modules/json-stringify-safe/README.md +52 -0
  157. package/test/cypress/node_modules/jsonfile/README.md +205 -0
  158. package/test/cypress/node_modules/jsonfile/node_modules/universalify/README.md +76 -0
  159. package/test/cypress/node_modules/jsprim/README.md +287 -0
  160. package/test/cypress/node_modules/lazy-ass/README.md +269 -0
  161. package/test/cypress/node_modules/listr2/README.md +17 -0
  162. package/test/cypress/node_modules/lodash/README.md +39 -0
  163. package/test/cypress/node_modules/lodash.once/README.md +18 -0
  164. package/test/cypress/node_modules/log-symbols/README.md +51 -0
  165. package/test/cypress/node_modules/log-update/README.md +97 -0
  166. package/test/cypress/node_modules/log-update/node_modules/slice-ansi/README.md +66 -0
  167. package/test/cypress/node_modules/log-update/node_modules/wrap-ansi/README.md +97 -0
  168. package/test/cypress/node_modules/lru-cache/README.md +166 -0
  169. package/test/cypress/node_modules/merge-stream/README.md +78 -0
  170. package/test/cypress/node_modules/mime-db/README.md +102 -0
  171. package/test/cypress/node_modules/mime-types/README.md +123 -0
  172. package/test/cypress/node_modules/mimic-fn/README.md +69 -0
  173. package/test/cypress/node_modules/minimatch/README.md +209 -0
  174. package/test/cypress/node_modules/ms/README.md +60 -0
  175. package/test/cypress/node_modules/npm-run-path/README.md +115 -0
  176. package/test/cypress/node_modules/once/README.md +79 -0
  177. package/test/cypress/node_modules/onetime/README.md +94 -0
  178. package/test/cypress/node_modules/ospath/README.md +53 -0
  179. package/test/cypress/node_modules/p-map/README.md +89 -0
  180. package/test/cypress/node_modules/path-is-absolute/README.md +59 -0
  181. package/test/cypress/node_modules/path-key/README.md +61 -0
  182. package/test/cypress/node_modules/pend/README.md +41 -0
  183. package/test/cypress/node_modules/performance-now/README.md +30 -0
  184. package/test/cypress/node_modules/pify/README.md +119 -0
  185. package/test/cypress/node_modules/pretty-bytes/README.md +131 -0
  186. package/test/cypress/node_modules/proxy-from-env/README.md +131 -0
  187. package/test/cypress/node_modules/psl/README.md +215 -0
  188. package/test/cypress/node_modules/pump/README.md +65 -0
  189. package/test/cypress/node_modules/punycode/README.md +122 -0
  190. package/test/cypress/node_modules/qs/README.md +475 -0
  191. package/test/cypress/node_modules/request-progress/README.md +78 -0
  192. package/test/cypress/node_modules/restore-cursor/README.md +26 -0
  193. package/test/cypress/node_modules/rimraf/README.md +101 -0
  194. package/test/cypress/node_modules/rxjs/README.md +147 -0
  195. package/test/cypress/node_modules/rxjs/_esm2015/README.md +147 -0
  196. package/test/cypress/node_modules/rxjs/_esm5/README.md +147 -0
  197. package/test/cypress/node_modules/rxjs/src/README.md +147 -0
  198. package/test/cypress/node_modules/safe-buffer/README.md +584 -0
  199. package/test/cypress/node_modules/safer-buffer/README.md +156 -0
  200. package/test/cypress/node_modules/semver/README.md +566 -0
  201. package/test/cypress/node_modules/shebang-command/README.md +34 -0
  202. package/test/cypress/node_modules/shebang-regex/README.md +33 -0
  203. package/test/cypress/node_modules/signal-exit/README.md +39 -0
  204. package/test/cypress/node_modules/slice-ansi/README.md +72 -0
  205. package/test/cypress/node_modules/sshpk/README.md +804 -0
  206. package/test/cypress/node_modules/string-width/README.md +50 -0
  207. package/test/cypress/node_modules/strip-ansi/README.md +46 -0
  208. package/test/cypress/node_modules/strip-final-newline/README.md +30 -0
  209. package/test/cypress/node_modules/supports-color/README.md +77 -0
  210. package/test/cypress/node_modules/throttleit/README.md +32 -0
  211. package/test/cypress/node_modules/tmp/README.md +365 -0
  212. package/test/cypress/node_modules/tough-cookie/README.md +527 -0
  213. package/test/cypress/node_modules/tslib/README.md +142 -0
  214. package/test/cypress/node_modules/tunnel-agent/README.md +4 -0
  215. package/test/cypress/node_modules/tweetnacl/README.md +459 -0
  216. package/test/cypress/node_modules/type-fest/README.md +760 -0
  217. package/test/cypress/node_modules/universalify/README.md +76 -0
  218. package/test/cypress/node_modules/untildify/README.md +30 -0
  219. package/test/cypress/node_modules/uuid/README.md +505 -0
  220. package/test/cypress/node_modules/verror/README.md +528 -0
  221. package/test/cypress/node_modules/verror/node_modules/extsprintf/README.md +46 -0
  222. package/test/cypress/node_modules/which/README.md +54 -0
  223. package/test/cypress/node_modules/wrap-ansi/README.md +91 -0
  224. package/test/cypress/node_modules/wrappy/README.md +36 -0
  225. package/test/cypress/node_modules/yallist/README.md +204 -0
  226. package/test/cypress/node_modules/yauzl/README.md +658 -0
  227. package/.browserslistrc +0 -12
  228. package/.codecov.yml +0 -17
  229. package/.editorconfig +0 -18
  230. package/.eslintrc.json +0 -50
  231. package/.github/CODE_OF_CONDUCT.md +0 -76
  232. package/.github/FUNDING.yml +0 -8
  233. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -54
  234. package/.github/ISSUE_TEMPLATE/config.yml +0 -5
  235. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -44
  236. package/.github/renovate.json5 +0 -26
  237. package/.github/stale.yml +0 -7
  238. package/.github/workflows/main.yml +0 -83
  239. package/.vscode/extensions.json +0 -9
  240. package/.vscode/launch.json +0 -72
  241. package/.vscode/settings.json +0 -7
  242. package/.vscode/tasks.json +0 -77
  243. package/CHANGELOG.md +0 -1172
  244. package/angular.json +0 -148
  245. package/dist/LICENSE +0 -20
  246. package/dist/README.md +0 -182
  247. package/dist/esm2020/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +0 -1171
  248. package/dist/esm2020/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +0 -300
  249. package/dist/esm2020/app/modules/angular-slickgrid/models/angularGridInstance.interface.mjs +0 -2
  250. package/dist/esm2020/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.mjs +0 -2
  251. package/dist/esm2020/app/modules/angular-slickgrid/models/gridOption.interface.mjs +0 -2
  252. package/dist/esm2020/app/modules/angular-slickgrid/models/rowDetailView.interface.mjs +0 -2
  253. package/dist/esm2020/app/modules/angular-slickgrid/models/slickGrid.interface.mjs +0 -2
  254. package/dist/esm2020/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +0 -46
  255. package/dist/esm2020/app/modules/angular-slickgrid/services/container.service.mjs +0 -26
  256. package/dist/fesm2015/angular-slickgrid.mjs.map +0 -1
  257. package/dist/fesm2020/angular-slickgrid.mjs.map +0 -1
  258. package/dist/package.json +0 -79
  259. package/global.d.ts +0 -1
  260. package/ngcc.config.js +0 -13
  261. package/screenshots/column-picker.png +0 -0
  262. package/screenshots/composite-editor.png +0 -0
  263. package/screenshots/draggable-grouping.png +0 -0
  264. package/screenshots/editors.png +0 -0
  265. package/screenshots/export-to-file.png +0 -0
  266. package/screenshots/filter_and_sort.png +0 -0
  267. package/screenshots/formatters.png +0 -0
  268. package/screenshots/frozen.png +0 -0
  269. package/screenshots/multipleSelectFilter.png +0 -0
  270. package/screenshots/pagination.png +0 -0
  271. package/screenshots/selectFilter.png +0 -0
  272. package/screenshots/singleFilter.png +0 -0
  273. package/src/app/app-routing.module.ts +0 -83
  274. package/src/app/app.component.html +0 -160
  275. package/src/app/app.component.scss +0 -65
  276. package/src/app/app.component.ts +0 -10
  277. package/src/app/app.module.ts +0 -175
  278. package/src/app/examples/custom-angularComponentEditor.ts +0 -184
  279. package/src/app/examples/custom-angularComponentFilter.ts +0 -126
  280. package/src/app/examples/custom-inputEditor.ts +0 -124
  281. package/src/app/examples/custom-inputFilter.ts +0 -142
  282. package/src/app/examples/custom-titleFormatter.component.ts +0 -8
  283. package/src/app/examples/editor-ng-select.component.ts +0 -37
  284. package/src/app/examples/filter-ng-select.component.ts +0 -32
  285. package/src/app/examples/grid-additem.component.html +0 -48
  286. package/src/app/examples/grid-additem.component.ts +0 -272
  287. package/src/app/examples/grid-angular.component.html +0 -79
  288. package/src/app/examples/grid-angular.component.scss +0 -28
  289. package/src/app/examples/grid-angular.component.ts +0 -370
  290. package/src/app/examples/grid-autoheight.component.html +0 -52
  291. package/src/app/examples/grid-autoheight.component.ts +0 -147
  292. package/src/app/examples/grid-basic.component.html +0 -29
  293. package/src/app/examples/grid-basic.component.ts +0 -82
  294. package/src/app/examples/grid-clientside.component.html +0 -51
  295. package/src/app/examples/grid-clientside.component.ts +0 -293
  296. package/src/app/examples/grid-colspan.component.html +0 -39
  297. package/src/app/examples/grid-colspan.component.scss +0 -11
  298. package/src/app/examples/grid-colspan.component.ts +0 -155
  299. package/src/app/examples/grid-composite-editor.component.html +0 -79
  300. package/src/app/examples/grid-composite-editor.component.scss +0 -19
  301. package/src/app/examples/grid-composite-editor.component.ts +0 -948
  302. package/src/app/examples/grid-contextmenu.component.html +0 -62
  303. package/src/app/examples/grid-contextmenu.component.scss +0 -44
  304. package/src/app/examples/grid-contextmenu.component.ts +0 -473
  305. package/src/app/examples/grid-custom-tooltip.component.html +0 -25
  306. package/src/app/examples/grid-custom-tooltip.component.scss +0 -77
  307. package/src/app/examples/grid-custom-tooltip.component.ts +0 -483
  308. package/src/app/examples/grid-draggrouping.component.html +0 -93
  309. package/src/app/examples/grid-draggrouping.component.ts +0 -397
  310. package/src/app/examples/grid-editor.component.html +0 -88
  311. package/src/app/examples/grid-editor.component.ts +0 -699
  312. package/src/app/examples/grid-formatter.component.html +0 -26
  313. package/src/app/examples/grid-formatter.component.ts +0 -162
  314. package/src/app/examples/grid-frozen.component.html +0 -65
  315. package/src/app/examples/grid-frozen.component.scss +0 -11
  316. package/src/app/examples/grid-frozen.component.ts +0 -303
  317. package/src/app/examples/grid-graphql-nopage.component.html +0 -33
  318. package/src/app/examples/grid-graphql-nopage.component.scss +0 -9
  319. package/src/app/examples/grid-graphql-nopage.component.ts +0 -242
  320. package/src/app/examples/grid-graphql.component.html +0 -87
  321. package/src/app/examples/grid-graphql.component.ts +0 -304
  322. package/src/app/examples/grid-grouping.component.html +0 -80
  323. package/src/app/examples/grid-grouping.component.ts +0 -313
  324. package/src/app/examples/grid-headerbutton.component.html +0 -31
  325. package/src/app/examples/grid-headerbutton.component.scss +0 -10
  326. package/src/app/examples/grid-headerbutton.component.ts +0 -233
  327. package/src/app/examples/grid-headermenu.component.html +0 -31
  328. package/src/app/examples/grid-headermenu.component.scss +0 -25
  329. package/src/app/examples/grid-headermenu.component.ts +0 -159
  330. package/src/app/examples/grid-localization.component.html +0 -54
  331. package/src/app/examples/grid-localization.component.ts +0 -293
  332. package/src/app/examples/grid-menu.component.html +0 -37
  333. package/src/app/examples/grid-menu.component.scss +0 -28
  334. package/src/app/examples/grid-menu.component.ts +0 -229
  335. package/src/app/examples/grid-odata.component.html +0 -116
  336. package/src/app/examples/grid-odata.component.ts +0 -441
  337. package/src/app/examples/grid-range.component.html +0 -74
  338. package/src/app/examples/grid-range.component.ts +0 -291
  339. package/src/app/examples/grid-remote.component.html +0 -37
  340. package/src/app/examples/grid-remote.component.ts +0 -153
  341. package/src/app/examples/grid-resize-by-content.component.html +0 -62
  342. package/src/app/examples/grid-resize-by-content.component.scss +0 -19
  343. package/src/app/examples/grid-resize-by-content.component.ts +0 -780
  344. package/src/app/examples/grid-rowdetail.component.html +0 -35
  345. package/src/app/examples/grid-rowdetail.component.ts +0 -205
  346. package/src/app/examples/grid-rowmove.component.html +0 -49
  347. package/src/app/examples/grid-rowmove.component.ts +0 -234
  348. package/src/app/examples/grid-rowselection.component.html +0 -76
  349. package/src/app/examples/grid-rowselection.component.ts +0 -267
  350. package/src/app/examples/grid-state.component.html +0 -36
  351. package/src/app/examples/grid-state.component.ts +0 -259
  352. package/src/app/examples/grid-tabs.component.html +0 -35
  353. package/src/app/examples/grid-tabs.component.ts +0 -115
  354. package/src/app/examples/grid-trading.component.html +0 -58
  355. package/src/app/examples/grid-trading.component.scss +0 -49
  356. package/src/app/examples/grid-trading.component.ts +0 -319
  357. package/src/app/examples/grid-tree-data-hierarchical.component.html +0 -79
  358. package/src/app/examples/grid-tree-data-hierarchical.component.scss +0 -47
  359. package/src/app/examples/grid-tree-data-hierarchical.component.ts +0 -311
  360. package/src/app/examples/grid-tree-data-parent-child.component.html +0 -108
  361. package/src/app/examples/grid-tree-data-parent-child.component.scss +0 -10
  362. package/src/app/examples/grid-tree-data-parent-child.component.ts +0 -351
  363. package/src/app/examples/home.component.html +0 -41
  364. package/src/app/examples/home.component.ts +0 -9
  365. package/src/app/examples/rowdetail-preload.component.ts +0 -10
  366. package/src/app/examples/rowdetail-view.component.html +0 -36
  367. package/src/app/examples/rowdetail-view.component.ts +0 -54
  368. package/src/app/examples/swt-common-grid-pagination.component.ts +0 -156
  369. package/src/app/examples/swt-common-grid-test.component.html +0 -30
  370. package/src/app/examples/swt-common-grid-test.component.ts +0 -219
  371. package/src/app/examples/swt-common-grid.component.ts +0 -436
  372. package/src/app/examples/swt-logger.service.ts +0 -165
  373. package/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.html +0 -4
  374. package/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts +0 -1395
  375. package/src/app/modules/angular-slickgrid/constants.ts +0 -97
  376. package/src/app/modules/angular-slickgrid/extensions/index.ts +0 -1
  377. package/src/app/modules/angular-slickgrid/extensions/slickRowDetailView.ts +0 -375
  378. package/src/app/modules/angular-slickgrid/global-grid-options.ts +0 -245
  379. package/src/app/modules/angular-slickgrid/index.ts +0 -11
  380. package/src/app/modules/angular-slickgrid/models/angularComponentOutput.interface.ts +0 -6
  381. package/src/app/modules/angular-slickgrid/models/angularGridInstance.interface.ts +0 -68
  382. package/src/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.ts +0 -37
  383. package/src/app/modules/angular-slickgrid/models/gridOption.interface.ts +0 -12
  384. package/src/app/modules/angular-slickgrid/models/index.ts +0 -6
  385. package/src/app/modules/angular-slickgrid/models/rowDetailView.interface.ts +0 -33
  386. package/src/app/modules/angular-slickgrid/models/slickGrid.interface.ts +0 -7
  387. package/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts +0 -37
  388. package/src/app/modules/angular-slickgrid/services/angularUtil.service.ts +0 -48
  389. package/src/app/modules/angular-slickgrid/services/bsDropdown.service.ts +0 -142
  390. package/src/app/modules/angular-slickgrid/services/container.service.ts +0 -24
  391. package/src/app/modules/angular-slickgrid/services/index.ts +0 -5
  392. package/src/app/modules/angular-slickgrid/services/translater.service.ts +0 -38
  393. package/src/app/modules/angular-slickgrid/services/utilities.ts +0 -19
  394. package/src/app/modules/angular-slickgrid/slickgrid-config.ts +0 -10
  395. package/src/app/slickgrid-custom-variables.scss +0 -10
  396. package/src/assets/.gitkeep +0 -0
  397. package/src/assets/data/collection_100_numbers.json +0 -12
  398. package/src/assets/data/collection_500_numbers.json +0 -52
  399. package/src/assets/data/countries.json +0 -245
  400. package/src/assets/data/country_names.json +0 -245
  401. package/src/assets/data/customers_100.json +0 -102
  402. package/src/assets/i18n/en.json +0 -90
  403. package/src/assets/i18n/fr.json +0 -91
  404. package/src/environments/environment.prod.ts +0 -3
  405. package/src/environments/environment.ts +0 -8
  406. package/src/favicon.ico +0 -0
  407. package/src/index.html +0 -18
  408. package/src/main.ts +0 -13
  409. package/src/polyfills.ts +0 -52
  410. package/src/public_api.ts +0 -1
  411. package/src/styles.scss +0 -66
  412. package/src/typings.d.ts +0 -10
  413. package/tsconfig.app.json +0 -25
  414. package/tsconfig.json +0 -40
  415. package/tsconfig.spec.json +0 -23
@@ -1,242 +0,0 @@
1
- import { Component, OnInit, ViewEncapsulation } from '@angular/core';
2
- import { HttpClient } from '@angular/common/http';
3
- import { GraphqlService, GraphqlResult, GraphqlServiceApi, } from '@slickgrid-universal/graphql';
4
-
5
- import {
6
- AngularGridInstance,
7
- Column,
8
- Filters,
9
- Formatters,
10
- GridOption,
11
- Metrics,
12
- MultipleSelectOption,
13
- OperatorType,
14
- } from './../modules/angular-slickgrid';
15
- import { Observable } from 'rxjs';
16
-
17
- const COUNTRIES_API = 'https://countries.trevorblades.com/';
18
-
19
- export interface Country {
20
- countryCode: string;
21
- countryName: string;
22
- countryNative: string;
23
- countryPhone: number;
24
- countryCurrency: string;
25
- countryEmoji: string;
26
- continentCode: string;
27
- continentName: string;
28
- languageCode: string;
29
- languageName: string;
30
- languageNative: string;
31
- };
32
-
33
- @Component({
34
- templateUrl: './grid-graphql-nopage.component.html',
35
- styleUrls: ['./grid-graphql-nopage.component.scss'],
36
- encapsulation: ViewEncapsulation.None,
37
- })
38
- export class GridGraphqlWithoutPaginationComponent implements OnInit {
39
- title = 'Example 27: GraphQL Basic API without Pagination';
40
- subTitle = `
41
- Use basic GraphQL query with any external public APIs (<a href="https://github.com/ghiscoding/Angular-Slickgrid/wiki/GraphQL" target="_blank">Wiki docs</a>).
42
- <ul>
43
- <li>This Examples uses a Public GraphQL API that you can find at this link <a href="https://countries.trevorblades.com/" target="_blank">https://countries.trevorblades.com/</a></li>
44
- <li>Compare to the regular and default GraphQL implementation, you will find the following differences</li>
45
- <ul>
46
- <li>There are no Pagination and we only use GraphQL <b>once</b> to load the data, then we use the grid as a regular local in-memory grid</li>
47
- <li>We enabled the following 2 flags "useLocalFiltering" and "useLocalSorting" to use regular (in memory) DataView filtering/sorting</li>
48
- </ul>
49
- <li>NOTE - This Example calls multiple GraphQL queries, this is <b>ONLY</b> for demo purposes, you would typically only call 1 query (which is what GraphQL is good at)</li>
50
- <li>This example is mainly to demo the use of GraphqlService to build the query and retrieve the data but also to demo how to mix that with local (in-memory) Filtering/Sorting strategies</li>
51
- </ul>
52
- `;
53
- angularGrid!: AngularGridInstance;
54
- columnDefinitions!: Column[];
55
- gridOptions!: GridOption;
56
- dataset = [];
57
- metrics!: Metrics;
58
-
59
- graphqlQuery = '';
60
- processing = true;
61
- status = { text: 'processing...', class: 'alert alert-danger' };
62
- isDataLoaded = false;
63
-
64
- constructor(private http: HttpClient) { }
65
-
66
- ngOnInit(): void {
67
- this.columnDefinitions = [
68
- { id: 'countryCode', field: 'code', name: 'Code', maxWidth: 90, sortable: true, filterable: true, columnGroup: 'Country' },
69
- { id: 'countryName', field: 'name', name: 'Name', width: 60, sortable: true, filterable: true, columnGroup: 'Country' },
70
- { id: 'countryNative', field: 'native', name: 'Native', width: 60, sortable: true, filterable: true, columnGroup: 'Country' },
71
- { id: 'countryPhone', field: 'phone', name: 'Phone Area Code', maxWidth: 110, sortable: true, filterable: true, columnGroup: 'Country' },
72
- { id: 'countryCurrency', field: 'currency', name: 'Currency', maxWidth: 90, sortable: true, filterable: true, columnGroup: 'Country' },
73
- { id: 'countryEmoji', field: 'emoji', name: 'Emoji', maxWidth: 90, sortable: true, columnGroup: 'Country' },
74
- {
75
- id: 'languageName', field: 'languages.name', name: 'Names', width: 60,
76
- formatter: Formatters.arrayObjectToCsv, columnGroup: 'Language',
77
- params: { propertyNames: ['name'], useFormatterOuputToFilter: true },
78
- filterable: true,
79
- // this Filter is a bit more tricky than others since the values are an array of objects
80
- // what we can do is use the Formatter to search from the CSV string coming from the Formatter (with "useFormatterOuputToFilter: true")
81
- // we also need to use the Operator IN_CONTAINS
82
- filter: {
83
- model: Filters.multipleSelect,
84
- collectionAsync: this.getLanguages(),
85
- operator: OperatorType.inContains,
86
- collectionOptions: {
87
- addBlankEntry: true,
88
- // the data is not at the root of the array, so we must tell the Select Filter where to pull the data
89
- collectionInsideObjectProperty: 'data.languages'
90
- },
91
- collectionFilterBy: [
92
- // filter out any empty values
93
- { property: 'name', value: '', operator: 'NE' },
94
- { property: 'name', value: null, operator: 'NE' },
95
- ],
96
- collectionSortBy: {
97
- property: 'name'
98
- },
99
- customStructure: {
100
- value: 'name',
101
- label: 'name',
102
- },
103
- filterOptions: {
104
- filter: true
105
- } as MultipleSelectOption
106
- },
107
- },
108
- {
109
- id: 'languageNative', field: 'languages.native', name: 'Native', width: 60,
110
- formatter: Formatters.arrayObjectToCsv, params: { propertyNames: ['native'], useFormatterOuputToFilter: true }, columnGroup: 'Language',
111
- filterable: true,
112
- filter: {
113
- model: Filters.multipleSelect,
114
- collectionAsync: this.getLanguages(),
115
- operator: OperatorType.inContains,
116
- collectionOptions: {
117
- addBlankEntry: true,
118
- // the data is not at the root of the array, so we must tell the Select Filter where to pull the data
119
- collectionInsideObjectProperty: 'data.languages'
120
- },
121
- collectionFilterBy: [
122
- // filter out any empty values
123
- { property: 'native', value: '', operator: 'NE' },
124
- { property: 'native', value: null, operator: 'NE' },
125
- ],
126
- collectionSortBy: {
127
- property: 'native'
128
- },
129
- customStructure: {
130
- value: 'native',
131
- label: 'native',
132
- },
133
- filterOptions: {
134
- filter: true
135
- } as MultipleSelectOption
136
- },
137
- },
138
- {
139
- id: 'languageCode', field: 'languages.code', name: 'Codes', maxWidth: 100,
140
- formatter: Formatters.arrayObjectToCsv, params: { propertyNames: ['code'], useFormatterOuputToFilter: true }, columnGroup: 'Language',
141
- filterable: true,
142
- },
143
- {
144
- id: 'continentName', field: 'continent.name', name: 'Name', width: 60, sortable: true,
145
- filterable: true, formatter: Formatters.complexObject, columnGroup: 'Continent'
146
- },
147
- {
148
- id: 'continentCode', field: 'continent.code', name: 'Code', maxWidth: 90,
149
- sortable: true,
150
- filterable: true,
151
- filter: {
152
- model: Filters.singleSelect,
153
- collectionAsync: this.getContinents(),
154
- collectionOptions: {
155
- // the data is not at the root of the array, so we must tell the Select Filter where to pull the data
156
- collectionInsideObjectProperty: 'data.continents',
157
- addBlankEntry: true,
158
- separatorBetweenTextLabels: ': ',
159
- },
160
- customStructure: {
161
- value: 'code',
162
- label: 'code',
163
- labelSuffix: 'name',
164
- }
165
- },
166
- formatter: Formatters.complexObject, columnGroup: 'Continent',
167
- },
168
- ];
169
-
170
- this.gridOptions = {
171
- autoResize: {
172
- container: '#demo-container',
173
- rightPadding: 10
174
- },
175
- enableFiltering: true,
176
- enableCellNavigation: true,
177
- enablePagination: false,
178
- createPreHeaderPanel: true,
179
- showPreHeaderPanel: true,
180
- preHeaderPanelHeight: 28,
181
- datasetIdPropertyName: 'code',
182
- showCustomFooter: true, // display some metrics in the bottom custom footer
183
- backendServiceApi: {
184
- // use the GraphQL Service to build the query but use local (in memory) Filtering/Sorting strategies
185
- // the useLocalFiltering/useLocalSorting flags can be enabled independently
186
- service: new GraphqlService(),
187
- useLocalFiltering: true,
188
- useLocalSorting: true,
189
-
190
- options: {
191
- datasetName: 'countries', // the only REQUIRED property
192
- },
193
- // you can define the onInit callback OR enable the "executeProcessCommandOnInit" flag in the service init
194
- preProcess: () => !this.isDataLoaded ? this.displaySpinner(true) : '',
195
- process: (query: string) => this.getCountries(query),
196
- postProcess: (result: GraphqlResult<Country>) => {
197
- this.metrics = result.metrics as Metrics;
198
- this.displaySpinner(false);
199
- this.isDataLoaded = true;
200
- }
201
- } as GraphqlServiceApi
202
- };
203
- }
204
-
205
- displaySpinner(isProcessing: boolean) {
206
- this.processing = isProcessing;
207
- this.status = (isProcessing)
208
- ? { text: 'processing...', class: 'alert alert-danger' }
209
- : { text: 'finished', class: 'alert alert-success' };
210
- }
211
-
212
- // --
213
- // NOTE - Demo Code ONLY
214
- // This Example calls multiple GraphQL queries, this is ONLY for demo purposes, you would typically only call 1 query (which is what GraphQL is good at)
215
- // This demo is mainly to show the use of GraphqlService to build the query and retrieve the data but also to show how to mix that with usage of local Filtering/Sorting strategies
216
- // --
217
-
218
- /** Calling the GraphQL backend API to get the Countries with the Query created by the "process" method of GraphqlService */
219
- getCountries(query: string): Observable<GraphqlResult<Country>> {
220
- return this.http.post<GraphqlResult<Country>>(COUNTRIES_API, { query });
221
- }
222
-
223
- /**
224
- * Calling again the GraphQL backend API, however in this case we cannot use the GraphQL Service to build the query
225
- * So we will have to write, by hand, the query to get the continents code & name
226
- * We also need to resolve the data in a flat array (singleSelect/multipleSelect Filters only accept data at the root of the array)
227
- */
228
- getContinents(): Observable<GraphqlResult<{ code: string; name: string; }>> {
229
- const continentQuery = `query { continents { code, name }}`;
230
- return this.http.post<GraphqlResult<{ code: string; name: string; }>>(COUNTRIES_API, { query: continentQuery });
231
- }
232
-
233
- /**
234
- * Calling again the GraphQL backend API, however in this case we cannot use the GraphQL Service to build the query
235
- * So we will have to write, by hand, the query to get the languages code & name
236
- * We also need to resolve the data in a flat array (singleSelect/multipleSelect Filters only accept data at the root of the array)
237
- */
238
- getLanguages(): Observable<GraphqlResult<{ code: string; name: string; native: string; }>> {
239
- const languageQuery = `query { languages { code, name, native }}`;
240
- return this.http.post<GraphqlResult<{ code: string; name: string; native: string; }>>(COUNTRIES_API, { query: languageQuery });
241
- }
242
- }
@@ -1,87 +0,0 @@
1
- <div id="demo-container" class="container-fluid">
2
- <h2>
3
- {{title}}
4
- <span class="float-end">
5
- <a style="font-size: 18px"
6
- target="_blank"
7
- href="https://github.com/ghiscoding/Angular-Slickgrid/blob/master/src/app/examples/grid-graphql.component.ts">
8
- <span class="fa fa-link"></span> code
9
- </a>
10
- </span>
11
- </h2>
12
- <div class="subtitle" [innerHTML]="subTitle"></div>
13
-
14
- <div class="row">
15
- <div class="col-sm-5">
16
- <div [class]="status.class" role="alert" data-test="status">
17
- <strong>Status: </strong> {{status.text}}
18
- <span [hidden]="!processing">
19
- <i class="fa fa-refresh fa-spin fa-lg fa-fw"></i>
20
- </span>
21
- </div>
22
-
23
- <div class="row">
24
- <div class="col-md-12">
25
- <button class="btn btn-outline-secondary btn-sm" data-test="clear-filters-sorting"
26
- (click)="clearAllFiltersAndSorts()" title="Clear all Filters & Sorts">
27
- <i class="fa fa-filter text-danger"></i>
28
- Clear all Filter & Sorts
29
- </button>
30
- <button class="btn btn-outline-secondary btn-sm" data-test="set-dynamic-filter"
31
- (click)="setFiltersDynamically()">
32
- Set Filters Dynamically
33
- </button>
34
- <button class="btn btn-outline-secondary btn-sm" data-test="set-dynamic-sorting"
35
- (click)="setSortingDynamically()">
36
- Set Sorting Dynamically
37
- </button>
38
- </div>
39
- </div>
40
- <div class="row mt-1">
41
- <div class="col-md-12">
42
- <button class="btn btn-outline-secondary btn-sm" data-test="language-button" (click)="switchLanguage()">
43
- <i class="fa fa-language"></i>
44
- Switch Language
45
- </button>
46
- <strong>Locale:</strong>
47
- <span style="font-style: italic" data-test="selected-locale">
48
- {{selectedLanguage + '.json'}}
49
- </span>
50
- </div>
51
- </div>
52
- <br />
53
- <div *ngIf="metrics" style="margin: 10px 0px">
54
- <b>Metrics:</b> {{metrics.endTime | date: 'yyyy-MM-dd hh:mm aaaaa\'m\''}} | {{metrics.executionTime}}ms
55
- | {{metrics.totalItemCount}} items
56
- </div>
57
- <div class="row mb-2">
58
- <div class="col-md-12">
59
- <label>Programmatically go to first/last page:</label>
60
- <button class="btn btn-outline-secondary btn-xs" data-test="goto-first-page" (click)="goToFirstPage()">
61
- <i class="fa fa-caret-left fa-lg"></i>
62
- </button>
63
- <button class="btn btn-outline-secondary btn-xs" data-test="goto-last-page" (click)="goToLastPage()">
64
- <i class="fa fa-caret-right fa-lg"></i>
65
- </button>
66
- </div>
67
- </div>
68
- </div>
69
-
70
- <div class="col-sm-7">
71
- <div class="alert alert-info" data-test="alert-graphql-query">
72
- <strong>GraphQL Query:</strong>
73
- <div [innerHTML]="graphqlQuery" data-test="graphql-query-result"></div>
74
- </div>
75
- </div>
76
- </div>
77
-
78
- <hr />
79
- <angular-slickgrid gridId="grid6"
80
- [columnDefinitions]="columnDefinitions"
81
- [gridOptions]="gridOptions"
82
- [dataset]="dataset"
83
- (onAngularGridCreated)="angularGridReady($event.detail)"
84
- (onGridStateChanged)="gridStateChanged($event.detail)"
85
- (onBeforeGridDestroy)="saveCurrentGridState()">
86
- </angular-slickgrid>
87
- </div>
@@ -1,304 +0,0 @@
1
- import { GraphqlService, GraphqlPaginatedResult, GraphqlServiceApi, } from '@slickgrid-universal/graphql';
2
- import { Component, OnInit, OnDestroy, ChangeDetectorRef } from '@angular/core';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import {
5
- AngularGridInstance,
6
- Column,
7
- FieldType,
8
- Filters,
9
- Formatters,
10
- GridOption,
11
- GridStateChange,
12
- Metrics,
13
- MultipleSelectOption,
14
- OperatorType,
15
- SortDirection,
16
- unsubscribeAllObservables,
17
- } from './../modules/angular-slickgrid';
18
- import * as moment from 'moment-mini';
19
- import { Subscription } from 'rxjs';
20
-
21
- const defaultPageSize = 20;
22
- const GRAPHQL_QUERY_DATASET_NAME = 'users';
23
- const LOCAL_STORAGE_KEY = 'gridStateGraphql';
24
-
25
- @Component({
26
- templateUrl: './grid-graphql.component.html'
27
- })
28
- export class GridGraphqlComponent implements OnInit, OnDestroy {
29
- title = 'Example 6: Grid connected to Backend Server with GraphQL';
30
- subTitle = `
31
- Sorting/Paging connected to a Backend GraphQL Service (<a href="https://github.com/ghiscoding/Angular-Slickgrid/wiki/GraphQL" target="_blank">Wiki docs</a>).
32
- <br/>
33
- <ul class="small">
34
- <li><span class="red">(*) NO DATA SHOWING</span> - just change Filters &amp; Pages and look at the "GraphQL Query" changing :)</li>
35
- <li>This example also demos the Grid State feature, open the console log to see the changes</li>
36
- <li>String column also support operator (>, >=, <, <=, <>, !=, =, ==, *)
37
- <ul>
38
- <li>The (*) can be used as startsWith (ex.: "abc*" => startsWith "abc") / endsWith (ex.: "*xyz" => endsWith "xyz")</li>
39
- <li>The other operators can be used on column type number for example: ">=100" (bigger or equal than 100)</li>
40
- </ul>
41
- <li>You can also preload a grid with certain "presets" like Filters / Sorters / Pagination <a href="https://github.com/ghiscoding/Angular-Slickgrid/wiki/Grid-State-&-Preset" target="_blank">Wiki - Grid Preset</a>
42
- </ul>
43
- `;
44
- private subscriptions: Subscription[] = [];
45
- angularGrid!: AngularGridInstance;
46
- columnDefinitions!: Column[];
47
- gridOptions!: GridOption;
48
- dataset = [];
49
- metrics!: Metrics;
50
-
51
- graphqlQuery = '';
52
- processing = true;
53
- status = { text: 'processing...', class: 'alert alert-danger' };
54
- isWithCursor = false;
55
- selectedLanguage: string;
56
-
57
- constructor(private readonly cd: ChangeDetectorRef, private translate: TranslateService) {
58
- // always start with English for Cypress E2E tests to be consistent
59
- const defaultLang = 'en';
60
- this.translate.use(defaultLang);
61
- this.selectedLanguage = defaultLang;
62
- }
63
-
64
- ngOnDestroy() {
65
- // also unsubscribe all Angular Subscriptions
66
- this.subscriptions = unsubscribeAllObservables(this.subscriptions);
67
- }
68
-
69
- ngOnInit(): void {
70
- this.columnDefinitions = [
71
- {
72
- id: 'name', field: 'name', nameKey: 'NAME', width: 60, columnGroupKey: 'CUSTOMER_INFORMATION',
73
- type: FieldType.string,
74
- sortable: true,
75
- filterable: true,
76
- filter: {
77
- model: Filters.compoundInput
78
- }
79
- },
80
- {
81
- id: 'gender', field: 'gender', nameKey: 'GENDER', filterable: true, sortable: true, width: 60, columnGroupKey: 'CUSTOMER_INFORMATION',
82
- filter: {
83
- model: Filters.singleSelect,
84
- collection: [{ value: '', label: '' }, { value: 'male', label: 'male', labelKey: 'MALE' }, { value: 'female', label: 'female', labelKey: 'FEMALE' }]
85
- }
86
- },
87
- {
88
- id: 'company', field: 'company', nameKey: 'COMPANY', width: 60, columnGroupKey: 'CUSTOMER_INFORMATION',
89
- sortable: true, filterable: true,
90
- filter: {
91
- model: Filters.multipleSelect,
92
- collection: [{ value: 'acme', label: 'Acme' }, { value: 'abc', label: 'Company ABC' }, { value: 'xyz', label: 'Company XYZ' }],
93
- filterOptions: {
94
- filter: true // adds a filter on top of the multi-select dropdown
95
- } as MultipleSelectOption
96
- }
97
- },
98
- {
99
- id: 'billingAddressStreet', field: 'billing.address.street', nameKey: 'BILLING.ADDRESS.STREET',
100
- width: 60, filterable: true, sortable: true, columnGroupKey: 'BILLING.INFORMATION',
101
- },
102
- {
103
- id: 'billingAddressZip', field: 'billing.address.zip', nameKey: 'BILLING.ADDRESS.ZIP', width: 60,
104
- type: FieldType.number,
105
- columnGroupKey: 'BILLING.INFORMATION', // or use "columnGroup" without Translate
106
- filterable: true, sortable: true,
107
- filter: {
108
- model: Filters.compoundInput
109
- },
110
- formatter: Formatters.multiple, params: { formatters: [Formatters.complexObject, Formatters.translate] }
111
- },
112
- {
113
- id: 'finish', field: 'finish', name: 'Date', formatter: Formatters.dateIso, sortable: true, minWidth: 90, width: 120, exportWithFormatter: true,
114
- type: FieldType.date,
115
- columnGroupKey: 'BILLING.INFORMATION', // or use "columnGroup" without Translate
116
- filterable: true,
117
- filter: {
118
- model: Filters.dateRange,
119
- }
120
- },
121
- ];
122
-
123
- const presetLowestDay = moment().add(-2, 'days').format('YYYY-MM-DD');
124
- const presetHighestDay = moment().add(20, 'days').format('YYYY-MM-DD');
125
-
126
- this.gridOptions = {
127
- gridHeight: 200,
128
- gridWidth: 900,
129
- enableFiltering: true,
130
- enableCellNavigation: true,
131
- enableTranslate: true,
132
- createPreHeaderPanel: true,
133
- showPreHeaderPanel: true,
134
- preHeaderPanelHeight: 28,
135
- i18n: this.translate,
136
- gridMenu: {
137
- resizeOnShowHeaderRow: true,
138
- commandItems: [
139
- {
140
- iconCssClass: 'fa fa-times text-danger',
141
- title: 'Reset Grid',
142
- disabled: false,
143
- command: 'reset-grid',
144
- positionOrder: 60
145
- }
146
- ],
147
- onCommand: (e, args) => {
148
- if (args.command === 'reset-grid') {
149
- this.angularGrid.gridService.resetGrid(this.columnDefinitions);
150
- localStorage[LOCAL_STORAGE_KEY] = null;
151
- }
152
- }
153
- },
154
- enablePagination: true, // you could optionally disable the Pagination
155
- pagination: {
156
- pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],
157
- pageSize: defaultPageSize,
158
- totalItems: 0
159
- },
160
- presets: {
161
- columns: [
162
- { columnId: 'name', width: 100 },
163
- { columnId: 'gender', width: 55 },
164
- { columnId: 'company' },
165
- { columnId: 'billingAddressZip' }, // flip column position of Street/Zip to Zip/Street
166
- { columnId: 'billingAddressStreet', width: 120 },
167
- { columnId: 'finish', width: 130 },
168
- ],
169
- filters: [
170
- // you can use OperatorType or type them as string, e.g.: operator: 'EQ'
171
- { columnId: 'gender', searchTerms: ['male'], operator: OperatorType.equal },
172
- { columnId: 'name', searchTerms: ['John Doe'], operator: OperatorType.contains },
173
- { columnId: 'company', searchTerms: ['xyz'], operator: 'IN' },
174
-
175
- // use a date range with 2 searchTerms values
176
- { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
177
- ],
178
- sorters: [
179
- // direction can written as 'asc' (uppercase or lowercase) and/or use the SortDirection type
180
- { columnId: 'name', direction: 'asc' },
181
- { columnId: 'company', direction: SortDirection.DESC }
182
- ],
183
- pagination: { pageNumber: 2, pageSize: defaultPageSize }
184
- },
185
- backendServiceApi: {
186
- service: new GraphqlService(),
187
- options: {
188
- datasetName: GRAPHQL_QUERY_DATASET_NAME, // the only REQUIRED property
189
- addLocaleIntoQuery: true, // optionally add current locale into the query
190
- extraQueryArguments: [{ // optionally add some extra query arguments as input query arguments
191
- field: 'userId',
192
- value: 123
193
- }],
194
- // when dealing with complex objects, we want to keep our field name with double quotes
195
- // example with gender: query { users (orderBy:[{field:"gender",direction:ASC}]) {}
196
- keepArgumentFieldDoubleQuotes: true
197
- },
198
- // you can define the onInit callback OR enable the "executeProcessCommandOnInit" flag in the service init
199
- // onInit: (query) => this.getCustomerApiCall(query)
200
- preProcess: () => this.displaySpinner(true),
201
- process: (query) => this.getCustomerApiCall(query),
202
- postProcess: (result: GraphqlPaginatedResult) => {
203
- this.metrics = result.metrics as Metrics;
204
- this.displaySpinner(false);
205
- this.cd.detectChanges();
206
- }
207
- } as GraphqlServiceApi
208
- };
209
- }
210
-
211
- angularGridReady(angularGrid: AngularGridInstance) {
212
- this.angularGrid = angularGrid;
213
- }
214
-
215
- displaySpinner(isProcessing: boolean) {
216
- this.processing = isProcessing;
217
- this.status = (isProcessing)
218
- ? { text: 'processing...', class: 'alert alert-danger' }
219
- : { text: 'finished', class: 'alert alert-success' };
220
- }
221
-
222
- /**
223
- * Calling your GraphQL backend server should always return a Promise or Observable of type GraphqlPaginatedResult (or GraphqlResult without Pagination)
224
- * @param query
225
- * @return Promise<GraphqlPaginatedResult> | Observable<GraphqlResult>
226
- */
227
- getCustomerApiCall(query: string): Promise<GraphqlPaginatedResult> {
228
- // in your case, you will call your WebAPI function (wich needs to return a Promise)
229
- // for the demo purpose, we will call a mock WebAPI function
230
- const mockedResult = {
231
- // the dataset name is the only unknown property
232
- // will be the same defined in your GraphQL Service init, in our case GRAPHQL_QUERY_DATASET_NAME
233
- data: {
234
- [GRAPHQL_QUERY_DATASET_NAME]: {
235
- nodes: [],
236
- totalCount: 100
237
- }
238
- }
239
- };
240
-
241
- return new Promise(resolve => {
242
- setTimeout(() => {
243
- this.graphqlQuery = this.angularGrid.backendService!.buildQuery();
244
- resolve(mockedResult);
245
- }, 100);
246
- });
247
- }
248
-
249
- goToFirstPage() {
250
- this.angularGrid.paginationService!.goToFirstPage();
251
- }
252
-
253
- goToLastPage() {
254
- this.angularGrid.paginationService!.goToLastPage();
255
- }
256
-
257
- /** Dispatched event of a Grid State Changed event */
258
- gridStateChanged(gridStateChanges: GridStateChange) {
259
- console.log('GraphQL Example, Grid State changed:: ', gridStateChanges);
260
- localStorage[LOCAL_STORAGE_KEY] = JSON.stringify(gridStateChanges.gridState);
261
- }
262
-
263
- clearAllFiltersAndSorts() {
264
- if (this.angularGrid?.gridService) {
265
- this.angularGrid.gridService.clearAllFiltersAndSorts();
266
- }
267
- }
268
-
269
- /** Save current Filters, Sorters in LocaleStorage or DB */
270
- saveCurrentGridState() {
271
- console.log('GraphQL current grid state', this.angularGrid.gridStateService.getCurrentGridState());
272
- }
273
-
274
- setFiltersDynamically() {
275
- const presetLowestDay = moment().add(-2, 'days').format('YYYY-MM-DD');
276
- const presetHighestDay = moment().add(20, 'days').format('YYYY-MM-DD');
277
-
278
- // we can Set Filters Dynamically (or different filters) afterward through the FilterService
279
- this.angularGrid.filterService.updateFilters([
280
- { columnId: 'gender', searchTerms: ['female'], operator: OperatorType.equal },
281
- { columnId: 'name', searchTerms: ['Jane'], operator: OperatorType.startsWith },
282
- { columnId: 'company', searchTerms: ['acme'], operator: 'IN' },
283
- { columnId: 'billingAddressZip', searchTerms: ['11'], operator: OperatorType.greaterThanOrEqual },
284
- { columnId: 'finish', searchTerms: [presetLowestDay, presetHighestDay], operator: OperatorType.rangeInclusive },
285
- ]);
286
- }
287
-
288
- setSortingDynamically() {
289
- this.angularGrid.sortService.updateSorting([
290
- // orders matter, whichever is first in array will be the first sorted column
291
- { columnId: 'billingAddressZip', direction: 'DESC' },
292
- { columnId: 'company', direction: 'ASC' },
293
- ]);
294
- }
295
-
296
- switchLanguage() {
297
- const nextLanguage = (this.selectedLanguage === 'en') ? 'fr' : 'en';
298
- this.subscriptions.push(
299
- this.translate.use(nextLanguage).subscribe(() => {
300
- this.selectedLanguage = nextLanguage;
301
- })
302
- );
303
- }
304
- }