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.
- package/LICENSE +20 -20
- package/{dist/app → app}/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts +2 -2
- package/{dist/app → app}/modules/angular-slickgrid/constants.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/extensions/index.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/extensions/slickRowDetailView.d.ts +0 -2
- package/{dist/app → app}/modules/angular-slickgrid/global-grid-options.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/index.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/models/angularComponentOutput.interface.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/models/angularGridInstance.interface.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/models/externalTestingDependencies.interface.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/models/gridOption.interface.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/models/index.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/models/rowDetailView.interface.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/models/slickGrid.interface.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/modules/angular-slickgrid.module.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/services/angularUtil.service.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/services/bsDropdown.service.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/services/container.service.d.ts +1 -0
- package/{dist/app → app}/modules/angular-slickgrid/services/index.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/services/translater.service.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/services/utilities.d.ts +0 -0
- package/{dist/app → app}/modules/angular-slickgrid/slickgrid-config.d.ts +0 -0
- package/docs/assets/lib/multiple-select/README.md +17 -0
- package/{dist/esm2020 → esm2020}/angular-slickgrid.mjs +0 -0
- package/esm2020/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +1170 -0
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/constants.mjs +1 -1
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/extensions/index.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +298 -0
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/global-grid-options.mjs +1 -1
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/index.mjs +1 -1
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/angularComponentOutput.interface.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/angularGridInstance.interface.mjs +2 -0
- package/esm2020/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.mjs +2 -0
- package/esm2020/app/modules/angular-slickgrid/models/gridOption.interface.mjs +2 -0
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/models/index.mjs +1 -1
- package/esm2020/app/modules/angular-slickgrid/models/rowDetailView.interface.mjs +2 -0
- package/esm2020/app/modules/angular-slickgrid/models/slickGrid.interface.mjs +2 -0
- package/esm2020/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +43 -0
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/angularUtil.service.mjs +4 -4
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/bsDropdown.service.mjs +4 -4
- package/esm2020/app/modules/angular-slickgrid/services/container.service.mjs +29 -0
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/index.mjs +1 -1
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/translater.service.mjs +4 -4
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/services/utilities.mjs +1 -1
- package/{dist/esm2020 → esm2020}/app/modules/angular-slickgrid/slickgrid-config.mjs +1 -1
- package/{dist/esm2020 → esm2020}/public_api.mjs +1 -1
- package/{dist/fesm2015 → fesm2015}/angular-slickgrid.mjs +48 -51
- package/fesm2015/angular-slickgrid.mjs.map +1 -0
- package/{dist/fesm2020 → fesm2020}/angular-slickgrid.mjs +48 -51
- package/fesm2020/angular-slickgrid.mjs.map +1 -0
- package/{dist/i18n → i18n}/en.json +89 -89
- package/{dist/i18n → i18n}/fr.json +90 -90
- package/{dist/angular-slickgrid.d.ts → index.d.ts} +0 -0
- package/package.json +33 -118
- package/{dist/public_api.d.ts → public_api.d.ts} +0 -0
- package/test/cypress/node_modules/@cypress/request/README.md +1038 -0
- package/test/cypress/node_modules/@cypress/xvfb/README.md +48 -0
- package/test/cypress/node_modules/@cypress/xvfb/node_modules/debug/README.md +437 -0
- package/test/cypress/node_modules/@types/node/README.md +16 -0
- package/test/cypress/node_modules/@types/sinonjs__fake-timers/README.md +16 -0
- package/test/cypress/node_modules/@types/sizzle/README.md +16 -0
- package/test/cypress/node_modules/@types/yauzl/README.md +16 -0
- package/test/cypress/node_modules/@types/yauzl/node_modules/@types/node/README.md +16 -0
- package/test/cypress/node_modules/aggregate-error/README.md +61 -0
- package/test/cypress/node_modules/ansi-colors/README.md +315 -0
- package/test/cypress/node_modules/ansi-escapes/README.md +245 -0
- package/test/cypress/node_modules/ansi-regex/README.md +78 -0
- package/test/cypress/node_modules/ansi-styles/README.md +152 -0
- package/test/cypress/node_modules/arch/README.md +71 -0
- package/test/cypress/node_modules/asn1/README.md +50 -0
- package/test/cypress/node_modules/assert-plus/README.md +162 -0
- package/test/cypress/node_modules/astral-regex/README.md +46 -0
- package/test/cypress/node_modules/async/README.md +60 -0
- package/test/cypress/node_modules/asynckit/README.md +233 -0
- package/test/cypress/node_modules/at-least-node/README.md +25 -0
- package/test/cypress/node_modules/aws-sign2/README.md +4 -0
- package/test/cypress/node_modules/aws4/README.md +183 -0
- package/test/cypress/node_modules/balanced-match/README.md +91 -0
- package/test/cypress/node_modules/base64-js/README.md +34 -0
- package/test/cypress/node_modules/bcrypt-pbkdf/README.md +45 -0
- package/test/cypress/node_modules/blob-util/README.md +623 -0
- package/test/cypress/node_modules/bluebird/README.md +57 -0
- package/test/cypress/node_modules/brace-expansion/README.md +129 -0
- package/test/cypress/node_modules/buffer/README.md +410 -0
- package/test/cypress/node_modules/buffer-crc32/README.md +47 -0
- package/test/cypress/node_modules/cachedir/README.md +27 -0
- package/test/cypress/node_modules/caseless/README.md +45 -0
- package/test/cypress/node_modules/chalk/README.md +293 -0
- package/test/cypress/node_modules/chalk/node_modules/supports-color/README.md +76 -0
- package/test/cypress/node_modules/check-more-types/README.md +952 -0
- package/test/cypress/node_modules/ci-info/README.md +114 -0
- package/test/cypress/node_modules/clean-stack/README.md +76 -0
- package/test/cypress/node_modules/cli-cursor/README.md +55 -0
- package/test/cypress/node_modules/cli-table3/README.md +218 -0
- package/test/cypress/node_modules/cli-truncate/README.md +139 -0
- package/test/cypress/node_modules/color-convert/README.md +68 -0
- package/test/cypress/node_modules/color-name/README.md +11 -0
- package/test/cypress/node_modules/colorette/README.md +102 -0
- package/test/cypress/node_modules/colors/README.md +221 -0
- package/test/cypress/node_modules/combined-stream/README.md +138 -0
- package/test/cypress/node_modules/commander/README.md +737 -0
- package/test/cypress/node_modules/common-tags/README.md +687 -0
- package/test/cypress/node_modules/core-util-is/README.md +3 -0
- package/test/cypress/node_modules/cross-spawn/README.md +96 -0
- package/test/cypress/node_modules/cypress/README.md +25 -0
- package/test/cypress/node_modules/cypress/mount-utils/README.md +14 -0
- package/test/cypress/node_modules/cypress/react/README.md +414 -0
- package/test/cypress/node_modules/cypress/vue/README.md +678 -0
- package/test/cypress/node_modules/cypress/vue2/README.md +693 -0
- package/test/cypress/node_modules/dashdash/README.md +574 -0
- package/test/cypress/node_modules/dayjs/README.md +128 -0
- package/test/cypress/node_modules/debug/README.md +455 -0
- package/test/cypress/node_modules/delayed-stream/README.md +141 -0
- package/test/cypress/node_modules/ecc-jsbn/README.md +8 -0
- package/test/cypress/node_modules/emoji-regex/README.md +73 -0
- package/test/cypress/node_modules/end-of-stream/README.md +54 -0
- package/test/cypress/node_modules/enquirer/README.md +1752 -0
- package/test/cypress/node_modules/escape-string-regexp/README.md +27 -0
- package/test/cypress/node_modules/eventemitter2/README.md +809 -0
- package/test/cypress/node_modules/execa/README.md +656 -0
- package/test/cypress/node_modules/executable/README.md +64 -0
- package/test/cypress/node_modules/extend/README.md +81 -0
- package/test/cypress/node_modules/extract-zip/README.md +57 -0
- package/test/cypress/node_modules/extract-zip/node_modules/debug/README.md +455 -0
- package/test/cypress/node_modules/extsprintf/README.md +46 -0
- package/test/cypress/node_modules/fd-slicer/README.md +199 -0
- package/test/cypress/node_modules/figures/README.md +139 -0
- package/test/cypress/node_modules/forever-agent/README.md +4 -0
- package/test/cypress/node_modules/form-data/README.md +234 -0
- package/test/cypress/node_modules/fs-extra/README.md +264 -0
- package/test/cypress/node_modules/fs.realpath/README.md +33 -0
- package/test/cypress/node_modules/get-stream/README.md +124 -0
- package/test/cypress/node_modules/getos/README.md +79 -0
- package/test/cypress/node_modules/getpass/README.md +32 -0
- package/test/cypress/node_modules/glob/README.md +375 -0
- package/test/cypress/node_modules/global-dirs/README.md +72 -0
- package/test/cypress/node_modules/graceful-fs/README.md +133 -0
- package/test/cypress/node_modules/has-flag/README.md +89 -0
- package/test/cypress/node_modules/http-signature/README.md +80 -0
- package/test/cypress/node_modules/human-signals/README.md +155 -0
- package/test/cypress/node_modules/ieee754/README.md +51 -0
- package/test/cypress/node_modules/indent-string/README.md +70 -0
- package/test/cypress/node_modules/inflight/README.md +37 -0
- package/test/cypress/node_modules/inherits/README.md +42 -0
- package/test/cypress/node_modules/ini/README.md +102 -0
- package/test/cypress/node_modules/is-ci/README.md +50 -0
- package/test/cypress/node_modules/is-fullwidth-code-point/README.md +39 -0
- package/test/cypress/node_modules/is-installed-globally/README.md +31 -0
- package/test/cypress/node_modules/is-path-inside/README.md +63 -0
- package/test/cypress/node_modules/is-stream/README.md +57 -0
- package/test/cypress/node_modules/is-typedarray/README.md +16 -0
- package/test/cypress/node_modules/isexe/README.md +51 -0
- package/test/cypress/node_modules/isstream/README.md +66 -0
- package/test/cypress/node_modules/jsbn/README.md +175 -0
- package/test/cypress/node_modules/json-schema/README.md +3 -0
- package/test/cypress/node_modules/json-stringify-safe/README.md +52 -0
- package/test/cypress/node_modules/jsonfile/README.md +205 -0
- package/test/cypress/node_modules/jsonfile/node_modules/universalify/README.md +76 -0
- package/test/cypress/node_modules/jsprim/README.md +287 -0
- package/test/cypress/node_modules/lazy-ass/README.md +269 -0
- package/test/cypress/node_modules/listr2/README.md +17 -0
- package/test/cypress/node_modules/lodash/README.md +39 -0
- package/test/cypress/node_modules/lodash.once/README.md +18 -0
- package/test/cypress/node_modules/log-symbols/README.md +51 -0
- package/test/cypress/node_modules/log-update/README.md +97 -0
- package/test/cypress/node_modules/log-update/node_modules/slice-ansi/README.md +66 -0
- package/test/cypress/node_modules/log-update/node_modules/wrap-ansi/README.md +97 -0
- package/test/cypress/node_modules/lru-cache/README.md +166 -0
- package/test/cypress/node_modules/merge-stream/README.md +78 -0
- package/test/cypress/node_modules/mime-db/README.md +102 -0
- package/test/cypress/node_modules/mime-types/README.md +123 -0
- package/test/cypress/node_modules/mimic-fn/README.md +69 -0
- package/test/cypress/node_modules/minimatch/README.md +209 -0
- package/test/cypress/node_modules/ms/README.md +60 -0
- package/test/cypress/node_modules/npm-run-path/README.md +115 -0
- package/test/cypress/node_modules/once/README.md +79 -0
- package/test/cypress/node_modules/onetime/README.md +94 -0
- package/test/cypress/node_modules/ospath/README.md +53 -0
- package/test/cypress/node_modules/p-map/README.md +89 -0
- package/test/cypress/node_modules/path-is-absolute/README.md +59 -0
- package/test/cypress/node_modules/path-key/README.md +61 -0
- package/test/cypress/node_modules/pend/README.md +41 -0
- package/test/cypress/node_modules/performance-now/README.md +30 -0
- package/test/cypress/node_modules/pify/README.md +119 -0
- package/test/cypress/node_modules/pretty-bytes/README.md +131 -0
- package/test/cypress/node_modules/proxy-from-env/README.md +131 -0
- package/test/cypress/node_modules/psl/README.md +215 -0
- package/test/cypress/node_modules/pump/README.md +65 -0
- package/test/cypress/node_modules/punycode/README.md +122 -0
- package/test/cypress/node_modules/qs/README.md +475 -0
- package/test/cypress/node_modules/request-progress/README.md +78 -0
- package/test/cypress/node_modules/restore-cursor/README.md +26 -0
- package/test/cypress/node_modules/rimraf/README.md +101 -0
- package/test/cypress/node_modules/rxjs/README.md +147 -0
- package/test/cypress/node_modules/rxjs/_esm2015/README.md +147 -0
- package/test/cypress/node_modules/rxjs/_esm5/README.md +147 -0
- package/test/cypress/node_modules/rxjs/src/README.md +147 -0
- package/test/cypress/node_modules/safe-buffer/README.md +584 -0
- package/test/cypress/node_modules/safer-buffer/README.md +156 -0
- package/test/cypress/node_modules/semver/README.md +566 -0
- package/test/cypress/node_modules/shebang-command/README.md +34 -0
- package/test/cypress/node_modules/shebang-regex/README.md +33 -0
- package/test/cypress/node_modules/signal-exit/README.md +39 -0
- package/test/cypress/node_modules/slice-ansi/README.md +72 -0
- package/test/cypress/node_modules/sshpk/README.md +804 -0
- package/test/cypress/node_modules/string-width/README.md +50 -0
- package/test/cypress/node_modules/strip-ansi/README.md +46 -0
- package/test/cypress/node_modules/strip-final-newline/README.md +30 -0
- package/test/cypress/node_modules/supports-color/README.md +77 -0
- package/test/cypress/node_modules/throttleit/README.md +32 -0
- package/test/cypress/node_modules/tmp/README.md +365 -0
- package/test/cypress/node_modules/tough-cookie/README.md +527 -0
- package/test/cypress/node_modules/tslib/README.md +142 -0
- package/test/cypress/node_modules/tunnel-agent/README.md +4 -0
- package/test/cypress/node_modules/tweetnacl/README.md +459 -0
- package/test/cypress/node_modules/type-fest/README.md +760 -0
- package/test/cypress/node_modules/universalify/README.md +76 -0
- package/test/cypress/node_modules/untildify/README.md +30 -0
- package/test/cypress/node_modules/uuid/README.md +505 -0
- package/test/cypress/node_modules/verror/README.md +528 -0
- package/test/cypress/node_modules/verror/node_modules/extsprintf/README.md +46 -0
- package/test/cypress/node_modules/which/README.md +54 -0
- package/test/cypress/node_modules/wrap-ansi/README.md +91 -0
- package/test/cypress/node_modules/wrappy/README.md +36 -0
- package/test/cypress/node_modules/yallist/README.md +204 -0
- package/test/cypress/node_modules/yauzl/README.md +658 -0
- package/.browserslistrc +0 -12
- package/.codecov.yml +0 -17
- package/.editorconfig +0 -18
- package/.eslintrc.json +0 -50
- package/.github/CODE_OF_CONDUCT.md +0 -76
- package/.github/FUNDING.yml +0 -8
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -54
- package/.github/ISSUE_TEMPLATE/config.yml +0 -5
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -44
- package/.github/renovate.json5 +0 -26
- package/.github/stale.yml +0 -7
- package/.github/workflows/main.yml +0 -83
- package/.vscode/extensions.json +0 -9
- package/.vscode/launch.json +0 -72
- package/.vscode/settings.json +0 -7
- package/.vscode/tasks.json +0 -77
- package/CHANGELOG.md +0 -1172
- package/angular.json +0 -148
- package/dist/LICENSE +0 -20
- package/dist/README.md +0 -182
- package/dist/esm2020/app/modules/angular-slickgrid/components/angular-slickgrid.component.mjs +0 -1171
- package/dist/esm2020/app/modules/angular-slickgrid/extensions/slickRowDetailView.mjs +0 -300
- package/dist/esm2020/app/modules/angular-slickgrid/models/angularGridInstance.interface.mjs +0 -2
- package/dist/esm2020/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.mjs +0 -2
- package/dist/esm2020/app/modules/angular-slickgrid/models/gridOption.interface.mjs +0 -2
- package/dist/esm2020/app/modules/angular-slickgrid/models/rowDetailView.interface.mjs +0 -2
- package/dist/esm2020/app/modules/angular-slickgrid/models/slickGrid.interface.mjs +0 -2
- package/dist/esm2020/app/modules/angular-slickgrid/modules/angular-slickgrid.module.mjs +0 -46
- package/dist/esm2020/app/modules/angular-slickgrid/services/container.service.mjs +0 -26
- package/dist/fesm2015/angular-slickgrid.mjs.map +0 -1
- package/dist/fesm2020/angular-slickgrid.mjs.map +0 -1
- package/dist/package.json +0 -79
- package/global.d.ts +0 -1
- package/ngcc.config.js +0 -13
- package/screenshots/column-picker.png +0 -0
- package/screenshots/composite-editor.png +0 -0
- package/screenshots/draggable-grouping.png +0 -0
- package/screenshots/editors.png +0 -0
- package/screenshots/export-to-file.png +0 -0
- package/screenshots/filter_and_sort.png +0 -0
- package/screenshots/formatters.png +0 -0
- package/screenshots/frozen.png +0 -0
- package/screenshots/multipleSelectFilter.png +0 -0
- package/screenshots/pagination.png +0 -0
- package/screenshots/selectFilter.png +0 -0
- package/screenshots/singleFilter.png +0 -0
- package/src/app/app-routing.module.ts +0 -83
- package/src/app/app.component.html +0 -160
- package/src/app/app.component.scss +0 -65
- package/src/app/app.component.ts +0 -10
- package/src/app/app.module.ts +0 -175
- package/src/app/examples/custom-angularComponentEditor.ts +0 -184
- package/src/app/examples/custom-angularComponentFilter.ts +0 -126
- package/src/app/examples/custom-inputEditor.ts +0 -124
- package/src/app/examples/custom-inputFilter.ts +0 -142
- package/src/app/examples/custom-titleFormatter.component.ts +0 -8
- package/src/app/examples/editor-ng-select.component.ts +0 -37
- package/src/app/examples/filter-ng-select.component.ts +0 -32
- package/src/app/examples/grid-additem.component.html +0 -48
- package/src/app/examples/grid-additem.component.ts +0 -272
- package/src/app/examples/grid-angular.component.html +0 -79
- package/src/app/examples/grid-angular.component.scss +0 -28
- package/src/app/examples/grid-angular.component.ts +0 -370
- package/src/app/examples/grid-autoheight.component.html +0 -52
- package/src/app/examples/grid-autoheight.component.ts +0 -147
- package/src/app/examples/grid-basic.component.html +0 -29
- package/src/app/examples/grid-basic.component.ts +0 -82
- package/src/app/examples/grid-clientside.component.html +0 -51
- package/src/app/examples/grid-clientside.component.ts +0 -293
- package/src/app/examples/grid-colspan.component.html +0 -39
- package/src/app/examples/grid-colspan.component.scss +0 -11
- package/src/app/examples/grid-colspan.component.ts +0 -155
- package/src/app/examples/grid-composite-editor.component.html +0 -79
- package/src/app/examples/grid-composite-editor.component.scss +0 -19
- package/src/app/examples/grid-composite-editor.component.ts +0 -948
- package/src/app/examples/grid-contextmenu.component.html +0 -62
- package/src/app/examples/grid-contextmenu.component.scss +0 -44
- package/src/app/examples/grid-contextmenu.component.ts +0 -473
- package/src/app/examples/grid-custom-tooltip.component.html +0 -25
- package/src/app/examples/grid-custom-tooltip.component.scss +0 -77
- package/src/app/examples/grid-custom-tooltip.component.ts +0 -483
- package/src/app/examples/grid-draggrouping.component.html +0 -93
- package/src/app/examples/grid-draggrouping.component.ts +0 -397
- package/src/app/examples/grid-editor.component.html +0 -88
- package/src/app/examples/grid-editor.component.ts +0 -699
- package/src/app/examples/grid-formatter.component.html +0 -26
- package/src/app/examples/grid-formatter.component.ts +0 -162
- package/src/app/examples/grid-frozen.component.html +0 -65
- package/src/app/examples/grid-frozen.component.scss +0 -11
- package/src/app/examples/grid-frozen.component.ts +0 -303
- package/src/app/examples/grid-graphql-nopage.component.html +0 -33
- package/src/app/examples/grid-graphql-nopage.component.scss +0 -9
- package/src/app/examples/grid-graphql-nopage.component.ts +0 -242
- package/src/app/examples/grid-graphql.component.html +0 -87
- package/src/app/examples/grid-graphql.component.ts +0 -304
- package/src/app/examples/grid-grouping.component.html +0 -80
- package/src/app/examples/grid-grouping.component.ts +0 -313
- package/src/app/examples/grid-headerbutton.component.html +0 -31
- package/src/app/examples/grid-headerbutton.component.scss +0 -10
- package/src/app/examples/grid-headerbutton.component.ts +0 -233
- package/src/app/examples/grid-headermenu.component.html +0 -31
- package/src/app/examples/grid-headermenu.component.scss +0 -25
- package/src/app/examples/grid-headermenu.component.ts +0 -159
- package/src/app/examples/grid-localization.component.html +0 -54
- package/src/app/examples/grid-localization.component.ts +0 -293
- package/src/app/examples/grid-menu.component.html +0 -37
- package/src/app/examples/grid-menu.component.scss +0 -28
- package/src/app/examples/grid-menu.component.ts +0 -229
- package/src/app/examples/grid-odata.component.html +0 -116
- package/src/app/examples/grid-odata.component.ts +0 -441
- package/src/app/examples/grid-range.component.html +0 -74
- package/src/app/examples/grid-range.component.ts +0 -291
- package/src/app/examples/grid-remote.component.html +0 -37
- package/src/app/examples/grid-remote.component.ts +0 -153
- package/src/app/examples/grid-resize-by-content.component.html +0 -62
- package/src/app/examples/grid-resize-by-content.component.scss +0 -19
- package/src/app/examples/grid-resize-by-content.component.ts +0 -780
- package/src/app/examples/grid-rowdetail.component.html +0 -35
- package/src/app/examples/grid-rowdetail.component.ts +0 -205
- package/src/app/examples/grid-rowmove.component.html +0 -49
- package/src/app/examples/grid-rowmove.component.ts +0 -234
- package/src/app/examples/grid-rowselection.component.html +0 -76
- package/src/app/examples/grid-rowselection.component.ts +0 -267
- package/src/app/examples/grid-state.component.html +0 -36
- package/src/app/examples/grid-state.component.ts +0 -259
- package/src/app/examples/grid-tabs.component.html +0 -35
- package/src/app/examples/grid-tabs.component.ts +0 -115
- package/src/app/examples/grid-trading.component.html +0 -58
- package/src/app/examples/grid-trading.component.scss +0 -49
- package/src/app/examples/grid-trading.component.ts +0 -319
- package/src/app/examples/grid-tree-data-hierarchical.component.html +0 -79
- package/src/app/examples/grid-tree-data-hierarchical.component.scss +0 -47
- package/src/app/examples/grid-tree-data-hierarchical.component.ts +0 -311
- package/src/app/examples/grid-tree-data-parent-child.component.html +0 -108
- package/src/app/examples/grid-tree-data-parent-child.component.scss +0 -10
- package/src/app/examples/grid-tree-data-parent-child.component.ts +0 -351
- package/src/app/examples/home.component.html +0 -41
- package/src/app/examples/home.component.ts +0 -9
- package/src/app/examples/rowdetail-preload.component.ts +0 -10
- package/src/app/examples/rowdetail-view.component.html +0 -36
- package/src/app/examples/rowdetail-view.component.ts +0 -54
- package/src/app/examples/swt-common-grid-pagination.component.ts +0 -156
- package/src/app/examples/swt-common-grid-test.component.html +0 -30
- package/src/app/examples/swt-common-grid-test.component.ts +0 -219
- package/src/app/examples/swt-common-grid.component.ts +0 -436
- package/src/app/examples/swt-logger.service.ts +0 -165
- package/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.html +0 -4
- package/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts +0 -1395
- package/src/app/modules/angular-slickgrid/constants.ts +0 -97
- package/src/app/modules/angular-slickgrid/extensions/index.ts +0 -1
- package/src/app/modules/angular-slickgrid/extensions/slickRowDetailView.ts +0 -375
- package/src/app/modules/angular-slickgrid/global-grid-options.ts +0 -245
- package/src/app/modules/angular-slickgrid/index.ts +0 -11
- package/src/app/modules/angular-slickgrid/models/angularComponentOutput.interface.ts +0 -6
- package/src/app/modules/angular-slickgrid/models/angularGridInstance.interface.ts +0 -68
- package/src/app/modules/angular-slickgrid/models/externalTestingDependencies.interface.ts +0 -37
- package/src/app/modules/angular-slickgrid/models/gridOption.interface.ts +0 -12
- package/src/app/modules/angular-slickgrid/models/index.ts +0 -6
- package/src/app/modules/angular-slickgrid/models/rowDetailView.interface.ts +0 -33
- package/src/app/modules/angular-slickgrid/models/slickGrid.interface.ts +0 -7
- package/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts +0 -37
- package/src/app/modules/angular-slickgrid/services/angularUtil.service.ts +0 -48
- package/src/app/modules/angular-slickgrid/services/bsDropdown.service.ts +0 -142
- package/src/app/modules/angular-slickgrid/services/container.service.ts +0 -24
- package/src/app/modules/angular-slickgrid/services/index.ts +0 -5
- package/src/app/modules/angular-slickgrid/services/translater.service.ts +0 -38
- package/src/app/modules/angular-slickgrid/services/utilities.ts +0 -19
- package/src/app/modules/angular-slickgrid/slickgrid-config.ts +0 -10
- package/src/app/slickgrid-custom-variables.scss +0 -10
- package/src/assets/.gitkeep +0 -0
- package/src/assets/data/collection_100_numbers.json +0 -12
- package/src/assets/data/collection_500_numbers.json +0 -52
- package/src/assets/data/countries.json +0 -245
- package/src/assets/data/country_names.json +0 -245
- package/src/assets/data/customers_100.json +0 -102
- package/src/assets/i18n/en.json +0 -90
- package/src/assets/i18n/fr.json +0 -91
- package/src/environments/environment.prod.ts +0 -3
- package/src/environments/environment.ts +0 -8
- package/src/favicon.ico +0 -0
- package/src/index.html +0 -18
- package/src/main.ts +0 -13
- package/src/polyfills.ts +0 -52
- package/src/public_api.ts +0 -1
- package/src/styles.scss +0 -66
- package/src/typings.d.ts +0 -10
- package/tsconfig.app.json +0 -25
- package/tsconfig.json +0 -40
- package/tsconfig.spec.json +0 -23
|
@@ -1,483 +0,0 @@
|
|
|
1
|
-
import { Component, OnInit, ViewEncapsulation, } from '@angular/core';
|
|
2
|
-
import { SlickCustomTooltip } from '@slickgrid-universal/custom-tooltip-plugin';
|
|
3
|
-
import { ExcelExportService } from '@slickgrid-universal/excel-export';
|
|
4
|
-
import {
|
|
5
|
-
AngularGridInstance,
|
|
6
|
-
Column,
|
|
7
|
-
EditCommand,
|
|
8
|
-
Editors,
|
|
9
|
-
FieldType,
|
|
10
|
-
Filters,
|
|
11
|
-
Formatter,
|
|
12
|
-
Formatters,
|
|
13
|
-
GridOption,
|
|
14
|
-
MenuCommandItemCallbackArgs,
|
|
15
|
-
OperatorType,
|
|
16
|
-
SlickGrid,
|
|
17
|
-
} from '../modules/angular-slickgrid';
|
|
18
|
-
|
|
19
|
-
const NB_ITEMS = 500;
|
|
20
|
-
|
|
21
|
-
@Component({
|
|
22
|
-
templateUrl: './grid-custom-tooltip.component.html',
|
|
23
|
-
styleUrls: ['./grid-custom-tooltip.component.scss'],
|
|
24
|
-
encapsulation: ViewEncapsulation.None,
|
|
25
|
-
})
|
|
26
|
-
export class GridCustomTooltipComponent implements OnInit {
|
|
27
|
-
title = 'Example 32: Regular & Custom Tooltips';
|
|
28
|
-
subTitle = `
|
|
29
|
-
This demo shows how to create Regular & Custom Tooltips (<a href="https://github.com/ghiscoding/Angular-Slickgrid/wiki/Custom-Tooltip-(plugin)" target="_blank">Wiki docs</a>)
|
|
30
|
-
<br/>
|
|
31
|
-
<ul class="small">
|
|
32
|
-
<li>optionally parse regular [title] attributes and transform them into tooltips</li>
|
|
33
|
-
<li>create your own Custom Tooltip via a Custom Formatter</li>
|
|
34
|
-
<li>create an Async Custom Tooltip (Promise/Observable) to allowing fetching data from an API</li>
|
|
35
|
-
<li>optionally add Custom Tooltip on Column Header & Column Header-Row (filters)</li>
|
|
36
|
-
</ul>
|
|
37
|
-
`;
|
|
38
|
-
angularGrid!: AngularGridInstance;
|
|
39
|
-
columnDefinitions!: Column[];
|
|
40
|
-
editCommandQueue: EditCommand[] = [];
|
|
41
|
-
gridOptions!: GridOption;
|
|
42
|
-
dataset!: any[];
|
|
43
|
-
serverApiDelay = 500;
|
|
44
|
-
|
|
45
|
-
constructor() { }
|
|
46
|
-
|
|
47
|
-
ngOnInit(): void {
|
|
48
|
-
this.initializeGrid();
|
|
49
|
-
|
|
50
|
-
// mock a dataset
|
|
51
|
-
this.dataset = this.loadData(NB_ITEMS);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
angularGridReady(angularGrid: AngularGridInstance) {
|
|
55
|
-
this.angularGrid = angularGrid;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
initializeGrid() {
|
|
59
|
-
this.columnDefinitions = [
|
|
60
|
-
{
|
|
61
|
-
id: 'title', name: 'Title', field: 'title', sortable: true, type: FieldType.string,
|
|
62
|
-
editor: {
|
|
63
|
-
model: Editors.longText,
|
|
64
|
-
required: true,
|
|
65
|
-
alwaysSaveOnEnterKey: true,
|
|
66
|
-
minLength: 5,
|
|
67
|
-
maxLength: 255,
|
|
68
|
-
},
|
|
69
|
-
filterable: true,
|
|
70
|
-
customTooltip: {
|
|
71
|
-
position: 'right-align', // defaults to "auto"
|
|
72
|
-
// you can use the Custom Tooltip in 2 ways (synchronous or asynchronous)
|
|
73
|
-
// example 1 (sync):
|
|
74
|
-
// formatter: this.tooltipTaskFormatter,
|
|
75
|
-
|
|
76
|
-
// example 2 (async):
|
|
77
|
-
// when using async, the `formatter` will contain the loading spinner
|
|
78
|
-
// you will need to provide an `asyncPost` function returning a Promise and also `asyncPostFormatter` formatter to display the result once the Promise resolves
|
|
79
|
-
formatter: () => `<div><span class="fa fa-spinner fa-pulse fa-fw"></span> loading...</div>`,
|
|
80
|
-
asyncProcess: () => new Promise(resolve => {
|
|
81
|
-
setTimeout(() => resolve({ ratio: Math.random() * 10 / 10, lifespan: Math.random() * 100 }), this.serverApiDelay);
|
|
82
|
-
}),
|
|
83
|
-
asyncPostFormatter: this.tooltipTaskAsyncFormatter as Formatter,
|
|
84
|
-
|
|
85
|
-
// optional conditional usability callback
|
|
86
|
-
// usabilityOverride: (args) => !!(args.dataContext?.id % 2) // show it only every second row
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
id: 'duration', name: 'Duration', field: 'duration', sortable: true, filterable: true,
|
|
91
|
-
editor: {
|
|
92
|
-
model: Editors.float,
|
|
93
|
-
// required: true,
|
|
94
|
-
decimal: 2,
|
|
95
|
-
valueStep: 1,
|
|
96
|
-
maxValue: 10000,
|
|
97
|
-
alwaysSaveOnEnterKey: true,
|
|
98
|
-
},
|
|
99
|
-
formatter: (row, cell, value) => value > 1 ? `${value} days` : `${value} day`,
|
|
100
|
-
type: FieldType.number,
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
id: 'desc', name: `<span title='custom title tooltip text'>Description</span>`, field: 'description', width: 100, filterable: true,
|
|
104
|
-
editor: {
|
|
105
|
-
model: Editors.longText,
|
|
106
|
-
required: true,
|
|
107
|
-
alwaysSaveOnEnterKey: true,
|
|
108
|
-
minLength: 5,
|
|
109
|
-
maxLength: 255,
|
|
110
|
-
},
|
|
111
|
-
formatter: (row: number, cell: number, value: any, column: Column, dataContext) => `<span title="regular tooltip (from title attribute)\r${dataContext.title} cell value:\r${value || ''}">${value || ''}</span>`,
|
|
112
|
-
// define tooltip options here OR for the entire grid via the grid options (cell tooltip options will have precedence over grid options)
|
|
113
|
-
customTooltip: {
|
|
114
|
-
useRegularTooltip: true, // note regular tooltip will try to find a "title" attribute in the cell formatter (it won't work without a cell formatter)
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
id: 'desc2', name: `<span title='custom title tooltip text'>Description 2</span>`, field: 'description', width: 100, filterable: true,
|
|
119
|
-
editor: {
|
|
120
|
-
model: Editors.longText,
|
|
121
|
-
required: true,
|
|
122
|
-
alwaysSaveOnEnterKey: true,
|
|
123
|
-
minLength: 5,
|
|
124
|
-
maxLength: 255,
|
|
125
|
-
},
|
|
126
|
-
formatter: (row: number, cell: number, value: any, column: Column, dataContext) => `<span title="regular tooltip (from title attribute)\r${dataContext.title} cell value:\r\r${value || ''}">${value || ''}</span>`,
|
|
127
|
-
// define tooltip options here OR for the entire grid via the grid options (cell tooltip options will have precedence over grid options)
|
|
128
|
-
customTooltip: {
|
|
129
|
-
useRegularTooltip: true, // note regular tooltip will try to find a "title" attribute in the cell formatter (it won't work without a cell formatter)
|
|
130
|
-
useRegularTooltipFromFormatterOnly: true,
|
|
131
|
-
// renderRegularTooltipAsHtml: true, // defaults to false, regular "title" tooltip won't be rendered as html unless specified via this flag (also "\r\n" will be replaced by <br>)
|
|
132
|
-
// maxWidth: 75,
|
|
133
|
-
// maxHeight: 30,
|
|
134
|
-
},
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
id: 'cost', name: '<span title="custom cost title tooltip text">Cost</span>', field: 'cost',
|
|
138
|
-
width: 90,
|
|
139
|
-
sortable: true,
|
|
140
|
-
filterable: true,
|
|
141
|
-
// filter: { model: Filters.compoundInput },
|
|
142
|
-
// formatter: Formatters.dollar,
|
|
143
|
-
formatter: Formatters.multiple,
|
|
144
|
-
// params: { formatters: [Formatters.dollar, (row, cell, value) => `<span title="regular tooltip, cost: ${value}">${value || ''}</span>`] },
|
|
145
|
-
params: { formatters: [Formatters.dollar, (_row: number, _cell: number, value: any) => `<span title="regular tooltip (from title attribute) -\rcell value:\n\n${value || ''}">${value || ''}</span>`] },
|
|
146
|
-
customTooltip: {
|
|
147
|
-
useRegularTooltip: true,
|
|
148
|
-
useRegularTooltipFromFormatterOnly: true,
|
|
149
|
-
},
|
|
150
|
-
type: FieldType.number,
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
id: 'percentComplete', name: '% Complete', field: 'percentComplete', type: FieldType.number,
|
|
154
|
-
editor: {
|
|
155
|
-
model: Editors.slider,
|
|
156
|
-
minValue: 0,
|
|
157
|
-
maxValue: 100,
|
|
158
|
-
// params: { hideSliderNumber: true },
|
|
159
|
-
},
|
|
160
|
-
formatter: Formatters.percentCompleteBar,
|
|
161
|
-
sortable: true, filterable: true,
|
|
162
|
-
filter: { model: Filters.slider, operator: '>=' },
|
|
163
|
-
customTooltip: { useRegularTooltip: true, },
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
id: 'start', name: 'Start', field: 'start', sortable: true,
|
|
167
|
-
// formatter: Formatters.dateIso,
|
|
168
|
-
type: FieldType.date, outputType: FieldType.dateIso,
|
|
169
|
-
filterable: true, filter: { model: Filters.compoundDate },
|
|
170
|
-
formatter: Formatters.dateIso,
|
|
171
|
-
editor: { model: Editors.date },
|
|
172
|
-
// we can delay a tooltip via the async process
|
|
173
|
-
customTooltip: {
|
|
174
|
-
// 1- loading formatter
|
|
175
|
-
formatter: () => ``, // return empty so it won't show any pre-tooltip
|
|
176
|
-
|
|
177
|
-
// 2- delay the opening by a simple Promise and `setTimeout`
|
|
178
|
-
asyncProcess: () => new Promise(resolve => {
|
|
179
|
-
setTimeout(() => resolve({}), this.serverApiDelay); // delayed by half a second
|
|
180
|
-
}),
|
|
181
|
-
asyncPostFormatter: this.tooltipFormatter.bind(this) as Formatter,
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
id: 'finish', name: 'Finish', field: 'finish', sortable: true,
|
|
186
|
-
editor: { model: Editors.date, editorOptions: { minDate: 'today' }, },
|
|
187
|
-
// formatter: Formatters.dateIso,
|
|
188
|
-
type: FieldType.date, outputType: FieldType.dateIso,
|
|
189
|
-
formatter: Formatters.dateIso,
|
|
190
|
-
filterable: true, filter: { model: Filters.dateRange },
|
|
191
|
-
// you could disable the custom/regular tooltip via either of the following 2 options
|
|
192
|
-
disableTooltip: true,
|
|
193
|
-
// customTooltip: {
|
|
194
|
-
// usabilityOverride: (args) => false,
|
|
195
|
-
// },
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
id: 'effortDriven', name: 'Effort Driven', field: 'effortDriven',
|
|
199
|
-
width: 80, minWidth: 20, maxWidth: 100,
|
|
200
|
-
cssClass: 'cell-effort-driven',
|
|
201
|
-
sortable: true,
|
|
202
|
-
filterable: true,
|
|
203
|
-
filter: {
|
|
204
|
-
collection: [{ value: '', label: '' }, { value: true, label: 'True' }, { value: false, label: 'False' }],
|
|
205
|
-
model: Filters.singleSelect
|
|
206
|
-
},
|
|
207
|
-
exportWithFormatter: false,
|
|
208
|
-
formatter: Formatters.checkmarkMaterial,
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
id: 'prerequisites', name: 'Prerequisites', field: 'prerequisites', filterable: true,
|
|
212
|
-
formatter: (_row, _cell, value) => {
|
|
213
|
-
if (value && Array.isArray(value)) {
|
|
214
|
-
const values = value.map((val) => `Task ${val}`).join(', ');
|
|
215
|
-
return `<span title="${values}">${values}</span>`;
|
|
216
|
-
}
|
|
217
|
-
return '';
|
|
218
|
-
},
|
|
219
|
-
customTooltip: {
|
|
220
|
-
useRegularTooltip: true,
|
|
221
|
-
maxWidth: 500,
|
|
222
|
-
},
|
|
223
|
-
exportWithFormatter: true,
|
|
224
|
-
sanitizeDataExport: true,
|
|
225
|
-
minWidth: 100,
|
|
226
|
-
sortable: true,
|
|
227
|
-
type: FieldType.string,
|
|
228
|
-
editor: {
|
|
229
|
-
// OR 1- use "fetch client", they are both supported
|
|
230
|
-
// collectionAsync: fetch(URL_SAMPLE_COLLECTION_DATA),
|
|
231
|
-
|
|
232
|
-
// OR 2- use a Promise
|
|
233
|
-
collectionAsync: new Promise<any>((resolve) => {
|
|
234
|
-
setTimeout(() => {
|
|
235
|
-
resolve(Array.from(Array(this.dataset.length).keys()).map(k => ({ value: k, label: k, prefix: 'Task', suffix: 'days' })));
|
|
236
|
-
}, 500);
|
|
237
|
-
}),
|
|
238
|
-
customStructure: {
|
|
239
|
-
label: 'label',
|
|
240
|
-
value: 'value',
|
|
241
|
-
labelPrefix: 'prefix',
|
|
242
|
-
},
|
|
243
|
-
collectionOptions: {
|
|
244
|
-
separatorBetweenTextLabels: ' '
|
|
245
|
-
},
|
|
246
|
-
model: Editors.multipleSelect,
|
|
247
|
-
},
|
|
248
|
-
filter: {
|
|
249
|
-
// collectionAsync: fetch(URL_SAMPLE_COLLECTION_DATA),
|
|
250
|
-
collectionAsync: new Promise((resolve) => {
|
|
251
|
-
setTimeout(() => {
|
|
252
|
-
resolve(Array.from(Array(this.dataset.length).keys()).map(k => ({ value: k, label: `Task ${k}` })));
|
|
253
|
-
});
|
|
254
|
-
}),
|
|
255
|
-
customStructure: {
|
|
256
|
-
label: 'label',
|
|
257
|
-
value: 'value',
|
|
258
|
-
labelPrefix: 'prefix',
|
|
259
|
-
},
|
|
260
|
-
collectionOptions: {
|
|
261
|
-
separatorBetweenTextLabels: ' '
|
|
262
|
-
},
|
|
263
|
-
model: Filters.multipleSelect,
|
|
264
|
-
operator: OperatorType.inContains,
|
|
265
|
-
},
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
id: 'action', name: 'Action', field: 'action', width: 70, minWidth: 70, maxWidth: 70,
|
|
269
|
-
formatter: () => `<div class="button-style margin-auto" style="width: 35px;"><span class="fa fa-chevron-down text-primary"></span></div>`,
|
|
270
|
-
excludeFromExport: true,
|
|
271
|
-
cellMenu: {
|
|
272
|
-
hideCloseButton: false,
|
|
273
|
-
commandTitle: 'Commands',
|
|
274
|
-
commandItems: [
|
|
275
|
-
// array of command item objects, you can also use the "positionOrder" that will be used to sort the items in the list
|
|
276
|
-
{
|
|
277
|
-
command: 'command2', title: 'Command 2', positionOrder: 62,
|
|
278
|
-
// you can use the "action" callback and/or use "onCallback" callback from the grid options, they both have the same arguments
|
|
279
|
-
action: (_e, args) => {
|
|
280
|
-
console.log(args.dataContext, args.column);
|
|
281
|
-
// action callback.. do something
|
|
282
|
-
},
|
|
283
|
-
// only enable command when the task is not completed
|
|
284
|
-
itemUsabilityOverride: (args) => {
|
|
285
|
-
return !args.dataContext.completed;
|
|
286
|
-
}
|
|
287
|
-
},
|
|
288
|
-
{ command: 'command1', title: 'Command 1', cssClass: 'orange', positionOrder: 61 },
|
|
289
|
-
{
|
|
290
|
-
command: 'delete-row', title: 'Delete Row', positionOrder: 64,
|
|
291
|
-
iconCssClass: 'mdi mdi-close', cssClass: 'red', textCssClass: 'bold',
|
|
292
|
-
// only show command to 'Delete Row' when the task is not completed
|
|
293
|
-
itemVisibilityOverride: (args) => {
|
|
294
|
-
return !args.dataContext.completed;
|
|
295
|
-
}
|
|
296
|
-
},
|
|
297
|
-
// you can pass divider as a string or an object with a boolean (if sorting by position, then use the object)
|
|
298
|
-
// note you should use the "divider" string only when items array is already sorted and positionOrder are not specified
|
|
299
|
-
{ divider: true, command: '', positionOrder: 63 },
|
|
300
|
-
// 'divider',
|
|
301
|
-
{
|
|
302
|
-
command: 'help',
|
|
303
|
-
title: 'Help',
|
|
304
|
-
iconCssClass: 'mdi mdi-help-circle-outline',
|
|
305
|
-
positionOrder: 66,
|
|
306
|
-
},
|
|
307
|
-
{ command: 'something', title: 'Disabled Command', disabled: true, positionOrder: 67, }
|
|
308
|
-
],
|
|
309
|
-
}
|
|
310
|
-
},
|
|
311
|
-
];
|
|
312
|
-
|
|
313
|
-
this.gridOptions = {
|
|
314
|
-
autoEdit: true, // true single click (false for double-click)
|
|
315
|
-
autoCommitEdit: true,
|
|
316
|
-
editable: true,
|
|
317
|
-
autoResize: {
|
|
318
|
-
container: '#demo-container',
|
|
319
|
-
},
|
|
320
|
-
enableAutoSizeColumns: true,
|
|
321
|
-
enableAutoResize: true,
|
|
322
|
-
enableCellNavigation: true,
|
|
323
|
-
enableExcelExport: true,
|
|
324
|
-
excelExportOptions: {
|
|
325
|
-
exportWithFormatter: true
|
|
326
|
-
},
|
|
327
|
-
// Custom Tooltip options can be defined in a Column or Grid Options or a mixed of both (first options found wins)
|
|
328
|
-
registerExternalResources: [new SlickCustomTooltip(), new ExcelExportService()],
|
|
329
|
-
customTooltip: {
|
|
330
|
-
formatter: this.tooltipFormatter.bind(this) as Formatter,
|
|
331
|
-
headerFormatter: this.headerFormatter,
|
|
332
|
-
headerRowFormatter: this.headerRowFormatter,
|
|
333
|
-
usabilityOverride: (args) => (args.cell !== 0 && args?.column?.id !== 'action'), // don't show on first/last columns
|
|
334
|
-
// hideArrow: true, // defaults to False
|
|
335
|
-
},
|
|
336
|
-
presets: {
|
|
337
|
-
filters: [{ columnId: 'prerequisites', searchTerms: [1, 3, 5, 7, 9, 12, 15, 18, 21, 25, 28, 29, 30, 32, 34] }],
|
|
338
|
-
},
|
|
339
|
-
rowHeight: 33,
|
|
340
|
-
enableFiltering: true,
|
|
341
|
-
rowSelectionOptions: {
|
|
342
|
-
// True (Single Selection), False (Multiple Selections)
|
|
343
|
-
selectActiveRow: false
|
|
344
|
-
},
|
|
345
|
-
showCustomFooter: true,
|
|
346
|
-
enableCheckboxSelector: true,
|
|
347
|
-
enableRowSelection: true,
|
|
348
|
-
checkboxSelector: {
|
|
349
|
-
hideInFilterHeaderRow: false,
|
|
350
|
-
hideInColumnTitleRow: true,
|
|
351
|
-
},
|
|
352
|
-
editCommandHandler: (_item: any, _column: Column, editCommand: EditCommand) => {
|
|
353
|
-
this.editCommandQueue.push(editCommand);
|
|
354
|
-
editCommand.execute();
|
|
355
|
-
},
|
|
356
|
-
// when using the cellMenu, you can change some of the default options and all use some of the callback methods
|
|
357
|
-
enableCellMenu: true,
|
|
358
|
-
cellMenu: {
|
|
359
|
-
// all the Cell Menu callback methods (except the action callback)
|
|
360
|
-
// are available under the grid options as shown below
|
|
361
|
-
onCommand: (e, args) => this.executeCommand(e, args),
|
|
362
|
-
onOptionSelected: (_e, args) => {
|
|
363
|
-
// change "Completed" property with new option selected from the Cell Menu
|
|
364
|
-
const dataContext = args && args.dataContext;
|
|
365
|
-
if (dataContext && dataContext.hasOwnProperty('completed')) {
|
|
366
|
-
dataContext.completed = args.item.option;
|
|
367
|
-
this.angularGrid.gridService.updateItem(dataContext);
|
|
368
|
-
}
|
|
369
|
-
},
|
|
370
|
-
},
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
loadData(itemCount: number): any[] {
|
|
375
|
-
// mock a dataset
|
|
376
|
-
// mock data
|
|
377
|
-
const tmpArray = [];
|
|
378
|
-
for (let i = 0; i < itemCount; i++) {
|
|
379
|
-
const randomYear = 2000 + Math.floor(Math.random() * 10);
|
|
380
|
-
const randomFinishYear = (new Date().getFullYear() - 3) + Math.floor(Math.random() * 10); // use only years not lower than 3 years ago
|
|
381
|
-
const randomMonth = Math.floor(Math.random() * 11);
|
|
382
|
-
const randomDay = Math.floor((Math.random() * 29));
|
|
383
|
-
const randomFinish = new Date(randomFinishYear, (randomMonth + 1), randomDay);
|
|
384
|
-
|
|
385
|
-
tmpArray[i] = {
|
|
386
|
-
id: i,
|
|
387
|
-
title: 'Task ' + i,
|
|
388
|
-
duration: Math.round(Math.random() * 100),
|
|
389
|
-
description: `This is a sample task description.\nIt can be multiline\r\rAnother line...`,
|
|
390
|
-
percentComplete: Math.floor(Math.random() * (100 - 5 + 1) + 5),
|
|
391
|
-
start: new Date(randomYear, randomMonth, randomDay),
|
|
392
|
-
finish: randomFinish < new Date() ? '' : randomFinish, // make sure the random date is earlier than today
|
|
393
|
-
cost: (i % 33 === 0) ? null : Math.round(Math.random() * 10000) / 100,
|
|
394
|
-
effortDriven: (i % 5 === 0),
|
|
395
|
-
prerequisites: (i % 2 === 0) && i !== 0 && i < 50 ? [i, i - 1] : [],
|
|
396
|
-
};
|
|
397
|
-
}
|
|
398
|
-
|
|
399
|
-
return tmpArray;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
executeCommand(_e: Event, args: MenuCommandItemCallbackArgs) {
|
|
403
|
-
// const columnDef = args.column;
|
|
404
|
-
const command = args.command;
|
|
405
|
-
const dataContext = args.dataContext;
|
|
406
|
-
|
|
407
|
-
switch (command) {
|
|
408
|
-
case 'command1':
|
|
409
|
-
alert('Command 1');
|
|
410
|
-
break;
|
|
411
|
-
case 'command2':
|
|
412
|
-
alert('Command 2');
|
|
413
|
-
break;
|
|
414
|
-
case 'help':
|
|
415
|
-
alert('Please help!');
|
|
416
|
-
break;
|
|
417
|
-
case 'delete-row':
|
|
418
|
-
if (confirm(`Do you really want to delete row (${(args.row || 0) + 1}) with "${dataContext.title}"`)) {
|
|
419
|
-
this.angularGrid?.gridService.deleteItemById(dataContext.id);
|
|
420
|
-
}
|
|
421
|
-
break;
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
|
|
425
|
-
headerFormatter(row: number, cell: number, value: any, column: Column) {
|
|
426
|
-
const tooltipTitle = 'Custom Tooltip - Header';
|
|
427
|
-
return `<div class="header-tooltip-title">${tooltipTitle}</div>
|
|
428
|
-
<div class="tooltip-2cols-row"><div>Column:</div> <div>${column.name}</div></div>`;
|
|
429
|
-
}
|
|
430
|
-
|
|
431
|
-
headerRowFormatter(row: number, cell: number, value: any, column: Column) {
|
|
432
|
-
const tooltipTitle = 'Custom Tooltip - Header Row (filter)';
|
|
433
|
-
return `<div class="headerrow-tooltip-title">${tooltipTitle}</div>
|
|
434
|
-
<div class="tooltip-2cols-row"><div>Column:</div> <div>${column.field}</div></div>`;
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
tooltipFormatter(row: number, cell: number, value: any, column: Column, dataContext: any, grid: SlickGrid) {
|
|
438
|
-
const tooltipTitle = 'Custom Tooltip';
|
|
439
|
-
const effortDrivenHtml = Formatters.checkmarkMaterial(row, cell, dataContext.effortDriven, column, dataContext, grid);
|
|
440
|
-
|
|
441
|
-
return `<div class="header-tooltip-title">${tooltipTitle}</div>
|
|
442
|
-
<div class="tooltip-2cols-row"><div>Id:</div> <div>${dataContext.id}</div></div>
|
|
443
|
-
<div class="tooltip-2cols-row"><div>Title:</div> <div>${dataContext.title}</div></div>
|
|
444
|
-
<div class="tooltip-2cols-row"><div>Effort Driven:</div> <div>${effortDrivenHtml}</div></div>
|
|
445
|
-
<div class="tooltip-2cols-row"><div>Completion:</div> <div>${this.loadCompletionIcons(dataContext.percentComplete)}</div></div>
|
|
446
|
-
`;
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
tooltipTaskAsyncFormatter(row: number, cell: number, value: any, column: Column, dataContext: any, grid: SlickGrid) {
|
|
450
|
-
const tooltipTitle = `Task ${dataContext.id} - (async tooltip)`;
|
|
451
|
-
|
|
452
|
-
// use a 2nd Formatter to get the percent completion
|
|
453
|
-
// any properties provided from the `asyncPost` will end up in the `__params` property (unless a different prop name is provided via `asyncParamsPropName`)
|
|
454
|
-
const completionBar = Formatters.percentCompleteBarWithText(row, cell, dataContext.percentComplete, column, dataContext, grid);
|
|
455
|
-
const out = `<div class="color-sf-primary-dark header-tooltip-title">${tooltipTitle}</div>
|
|
456
|
-
<div class="tooltip-2cols-row"><div>Completion:</div> <div>${completionBar}</div></div>
|
|
457
|
-
<div class="tooltip-2cols-row"><div>Lifespan:</div> <div>${dataContext.__params.lifespan.toFixed(2)}</div></div>
|
|
458
|
-
<div class="tooltip-2cols-row"><div>Ratio:</div> <div>${dataContext.__params.ratio.toFixed(2)}</div></div>
|
|
459
|
-
`;
|
|
460
|
-
return out;
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
loadCompletionIcons(percentComplete: number) {
|
|
464
|
-
let output = '';
|
|
465
|
-
let iconCount = 0;
|
|
466
|
-
if (percentComplete > 5 && percentComplete < 25) {
|
|
467
|
-
iconCount = 1;
|
|
468
|
-
} else if (percentComplete >= 25 && percentComplete < 50) {
|
|
469
|
-
iconCount = 2;
|
|
470
|
-
} else if (percentComplete >= 50 && percentComplete < 75) {
|
|
471
|
-
iconCount = 3;
|
|
472
|
-
} else if (percentComplete >= 75 && percentComplete < 100) {
|
|
473
|
-
iconCount = 4;
|
|
474
|
-
} else if (percentComplete === 100) {
|
|
475
|
-
iconCount = 5;
|
|
476
|
-
}
|
|
477
|
-
for (let i = 0; i < iconCount; i++) {
|
|
478
|
-
const iconColor = iconCount === 5 ? 'text-success' : iconCount >= 3 ? 'text-warning' : 'text-secondary';
|
|
479
|
-
output += `<span class="fa fa-check-circle-o ${iconColor}"></span>`;
|
|
480
|
-
}
|
|
481
|
-
return output;
|
|
482
|
-
}
|
|
483
|
-
}
|
|
@@ -1,93 +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-draggrouping.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
|
-
<form class="form-inline">
|
|
15
|
-
<div class="row">
|
|
16
|
-
<div class="col-sm-12">
|
|
17
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="add-500-rows-btn" (click)="loadData(500)">
|
|
18
|
-
500 rows
|
|
19
|
-
</button>
|
|
20
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="add-50k-rows-btn" (click)="loadData(50000)">
|
|
21
|
-
50k rows
|
|
22
|
-
</button>
|
|
23
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="clear-grouping-btn"
|
|
24
|
-
(click)="clearGroupsAndSelects()">
|
|
25
|
-
<i class="fa fa-times"></i> Clear grouping
|
|
26
|
-
</button>
|
|
27
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="collapse-all-btn" (click)="collapseAllGroups()">
|
|
28
|
-
<i class="fa fa-compress"></i> Collapse all groups
|
|
29
|
-
</button>
|
|
30
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="expand-all-btn" (click)="expandAllGroups()">
|
|
31
|
-
<i class="fa fa-expand"></i> Expand all groups
|
|
32
|
-
</button>
|
|
33
|
-
<button class="btn btn-outline-secondary btn-xs" (click)="toggleDraggableGroupingRow()">
|
|
34
|
-
Toggle Draggable Grouping Row
|
|
35
|
-
</button>
|
|
36
|
-
<button class="btn btn-outline-secondary btn-xs" (click)="exportToExcel()">
|
|
37
|
-
<i class="fa fa-file-excel-o text-success"></i> Export to Excel
|
|
38
|
-
</button>
|
|
39
|
-
</div>
|
|
40
|
-
</div>
|
|
41
|
-
<div class="row">
|
|
42
|
-
<div class="col-sm-12">
|
|
43
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="group-duration-sort-value-btn"
|
|
44
|
-
(click)="groupByDurationOrderByCount(false)">
|
|
45
|
-
Group by duration & sort groups by value
|
|
46
|
-
</button>
|
|
47
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="group-duration-sort-count-btn"
|
|
48
|
-
(click)="groupByDurationOrderByCount(true)">
|
|
49
|
-
Group by duration & sort groups by count
|
|
50
|
-
</button>
|
|
51
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="group-duration-effort-btn"
|
|
52
|
-
(click)="groupByDurationEffortDriven()">
|
|
53
|
-
Group by Duration & then Effort-Driven
|
|
54
|
-
</button>
|
|
55
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="set-dynamic-filter"
|
|
56
|
-
(click)="setFiltersDynamically()">
|
|
57
|
-
Set Filters Dynamically
|
|
58
|
-
</button>
|
|
59
|
-
<button class="btn btn-outline-secondary btn-xs" data-test="set-dynamic-sorting"
|
|
60
|
-
(click)="setSortingDynamically()">
|
|
61
|
-
Set Sorting Dynamically
|
|
62
|
-
</button>
|
|
63
|
-
</div>
|
|
64
|
-
</div>
|
|
65
|
-
<div class="row mt-2">
|
|
66
|
-
<div class="col-sm-12">
|
|
67
|
-
<div class="form-row">
|
|
68
|
-
<div class="row form-group">
|
|
69
|
-
<label for="field1" class="col-sm-3 mb-2">Group by field(s)</label>
|
|
70
|
-
<div class="form-group col-md-3"
|
|
71
|
-
*ngFor="let groupField of selectedGroupingFields; let i = index; trackBy: selectTrackByFn">
|
|
72
|
-
<select class="form-select" name="groupField{{i}}" [(ngModel)]="selectedGroupingFields[i]"
|
|
73
|
-
(ngModelChange)="groupByFieldName($event, i)">
|
|
74
|
-
<option value=""></option>
|
|
75
|
-
<option [ngValue]="field.id" *ngFor="let field of columnDefinitions">{{field.name}}</option>
|
|
76
|
-
</select>
|
|
77
|
-
</div>
|
|
78
|
-
</div>
|
|
79
|
-
</div>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
</form>
|
|
83
|
-
<div class="row mt-1 mb-1">
|
|
84
|
-
<hr />
|
|
85
|
-
</div>
|
|
86
|
-
|
|
87
|
-
<angular-slickgrid gridId="grid19"
|
|
88
|
-
[dataset]="dataset"
|
|
89
|
-
[columnDefinitions]="columnDefinitions"
|
|
90
|
-
[gridOptions]="gridOptions"
|
|
91
|
-
(onAngularGridCreated)="angularGridReady($event.detail)">
|
|
92
|
-
</angular-slickgrid>
|
|
93
|
-
</div>
|