fix: editor page csv upload
This commit is contained in:
486
client/package-lock.json
generated
486
client/package-lock.json
generated
@ -776,17 +776,6 @@
|
|||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@angular-devkit/build-angular/node_modules/@types/node": {
|
|
||||||
"version": "20.14.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz",
|
|
||||||
"integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"undici-types": "~5.26.4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@angular-devkit/build-angular/node_modules/@vitejs/plugin-basic-ssl": {
|
"node_modules/@angular-devkit/build-angular/node_modules/@vitejs/plugin-basic-ssl": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz",
|
||||||
@ -6377,12 +6366,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@types/text-encoding/-/text-encoding-0.0.35.tgz",
|
"resolved": "https://registry.npmjs.org/@types/text-encoding/-/text-encoding-0.0.35.tgz",
|
||||||
"integrity": "sha512-jfo/A88XIiAweUa8np+1mPbm3h2w0s425YrI8t3wk5QxhH6UI7w517MboNVnGDeMSuoFwA8Rwmklno+FicvV4g=="
|
"integrity": "sha512-jfo/A88XIiAweUa8np+1mPbm3h2w0s425YrI8t3wk5QxhH6UI7w517MboNVnGDeMSuoFwA8Rwmklno+FicvV4g=="
|
||||||
},
|
},
|
||||||
"node_modules/@types/tough-cookie": {
|
|
||||||
"version": "4.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
|
|
||||||
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/@types/trusted-types": {
|
"node_modules/@types/trusted-types": {
|
||||||
"version": "2.0.7",
|
"version": "2.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
||||||
@ -6987,12 +6970,6 @@
|
|||||||
"@xtuc/long": "4.2.2"
|
"@xtuc/long": "4.2.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@webcomponents/custom-elements": {
|
|
||||||
"version": "1.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/@webcomponents/custom-elements/-/custom-elements-1.6.0.tgz",
|
|
||||||
"integrity": "sha512-CqTpxOlUCPWRNUPZDxT5v2NnHXA4oox612iUGnmTUGQFhZ1Gkj8kirtl/2wcF6MqX7+PqqicZzOCBKKfIn0dww==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/@xtuc/ieee754": {
|
"node_modules/@xtuc/ieee754": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
|
||||||
@ -7999,13 +7976,6 @@
|
|||||||
"base64-js": "^1.1.2"
|
"base64-js": "^1.1.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browser-stdout": {
|
|
||||||
"version": "1.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
|
|
||||||
"integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/browserify-aes": {
|
"node_modules/browserify-aes": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||||
@ -9747,19 +9717,6 @@
|
|||||||
"callsite": "^1.0.0"
|
"callsite": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/decamelize": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/deep-equal": {
|
"node_modules/deep-equal": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz",
|
||||||
@ -12202,16 +12159,6 @@
|
|||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/he": {
|
|
||||||
"version": "1.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
|
|
||||||
"integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"bin": {
|
|
||||||
"he": "bin/he"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/hmac-drbg": {
|
"node_modules/hmac-drbg": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
||||||
@ -15153,385 +15100,6 @@
|
|||||||
"mkdirp": "bin/cmd.js"
|
"mkdirp": "bin/cmd.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mocha": {
|
|
||||||
"version": "10.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz",
|
|
||||||
"integrity": "sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"ansi-colors": "4.1.1",
|
|
||||||
"browser-stdout": "1.3.1",
|
|
||||||
"chokidar": "3.5.3",
|
|
||||||
"debug": "4.3.4",
|
|
||||||
"diff": "5.0.0",
|
|
||||||
"escape-string-regexp": "4.0.0",
|
|
||||||
"find-up": "5.0.0",
|
|
||||||
"glob": "8.1.0",
|
|
||||||
"he": "1.2.0",
|
|
||||||
"js-yaml": "4.1.0",
|
|
||||||
"log-symbols": "4.1.0",
|
|
||||||
"minimatch": "5.0.1",
|
|
||||||
"ms": "2.1.3",
|
|
||||||
"serialize-javascript": "6.0.0",
|
|
||||||
"strip-json-comments": "3.1.1",
|
|
||||||
"supports-color": "8.1.1",
|
|
||||||
"workerpool": "6.2.1",
|
|
||||||
"yargs": "16.2.0",
|
|
||||||
"yargs-parser": "20.2.4",
|
|
||||||
"yargs-unparser": "2.0.0"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"_mocha": "bin/_mocha",
|
|
||||||
"mocha": "bin/mocha.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 14.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/ansi-colors": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
|
|
||||||
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/ansi-styles": {
|
|
||||||
"version": "4.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
|
|
||||||
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"color-convert": "^2.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/argparse": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/brace-expansion": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"balanced-match": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/chokidar": {
|
|
||||||
"version": "3.5.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
|
||||||
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
|
|
||||||
"dev": true,
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "individual",
|
|
||||||
"url": "https://paulmillr.com/funding/"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"anymatch": "~3.1.2",
|
|
||||||
"braces": "~3.0.2",
|
|
||||||
"glob-parent": "~5.1.2",
|
|
||||||
"is-binary-path": "~2.1.0",
|
|
||||||
"is-glob": "~4.0.1",
|
|
||||||
"normalize-path": "~3.0.0",
|
|
||||||
"readdirp": "~3.6.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 8.10.0"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
|
||||||
"fsevents": "~2.3.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/cliui": {
|
|
||||||
"version": "7.0.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
|
|
||||||
"integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"string-width": "^4.2.0",
|
|
||||||
"strip-ansi": "^6.0.0",
|
|
||||||
"wrap-ansi": "^7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/color-convert": {
|
|
||||||
"version": "2.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
|
||||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"color-name": "~1.1.4"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/color-name": {
|
|
||||||
"version": "1.1.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
|
||||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/debug": {
|
|
||||||
"version": "4.3.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
|
|
||||||
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"ms": "2.1.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"supports-color": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/debug/node_modules/ms": {
|
|
||||||
"version": "2.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
|
||||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/escape-string-regexp": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/find-up": {
|
|
||||||
"version": "5.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
|
|
||||||
"integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"locate-path": "^6.0.0",
|
|
||||||
"path-exists": "^4.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/glob": {
|
|
||||||
"version": "8.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
|
||||||
"integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==",
|
|
||||||
"deprecated": "Glob versions prior to v9 are no longer supported",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"fs.realpath": "^1.0.0",
|
|
||||||
"inflight": "^1.0.4",
|
|
||||||
"inherits": "2",
|
|
||||||
"minimatch": "^5.0.1",
|
|
||||||
"once": "^1.3.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/has-flag": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/js-yaml": {
|
|
||||||
"version": "4.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
|
|
||||||
"integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"argparse": "^2.0.1"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"js-yaml": "bin/js-yaml.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/locate-path": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"p-locate": "^5.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/minimatch": {
|
|
||||||
"version": "5.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz",
|
|
||||||
"integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"brace-expansion": "^2.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/ms": {
|
|
||||||
"version": "2.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
|
||||||
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/p-limit": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
|
|
||||||
"integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"yocto-queue": "^0.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/p-locate": {
|
|
||||||
"version": "5.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
|
|
||||||
"integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"p-limit": "^3.0.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/serialize-javascript": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"randombytes": "^2.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/supports-color": {
|
|
||||||
"version": "8.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
|
|
||||||
"integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"has-flag": "^4.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/wrap-ansi": {
|
|
||||||
"version": "7.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
|
|
||||||
"integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"ansi-styles": "^4.0.0",
|
|
||||||
"string-width": "^4.1.0",
|
|
||||||
"strip-ansi": "^6.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/chalk/wrap-ansi?sponsor=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/yargs": {
|
|
||||||
"version": "16.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
|
|
||||||
"integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"cliui": "^7.0.2",
|
|
||||||
"escalade": "^3.1.1",
|
|
||||||
"get-caller-file": "^2.0.5",
|
|
||||||
"require-directory": "^2.1.1",
|
|
||||||
"string-width": "^4.2.0",
|
|
||||||
"y18n": "^5.0.5",
|
|
||||||
"yargs-parser": "^20.2.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mocha/node_modules/yargs-parser": {
|
|
||||||
"version": "20.2.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
|
|
||||||
"integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mochawesome": {
|
"node_modules/mochawesome": {
|
||||||
"version": "7.1.3",
|
"version": "7.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/mochawesome/-/mochawesome-7.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/mochawesome/-/mochawesome-7.1.3.tgz",
|
||||||
@ -20606,14 +20174,6 @@
|
|||||||
"node": ">=18.0"
|
"node": ">=18.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/undici-types": {
|
|
||||||
"version": "5.26.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
|
|
||||||
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
|
|
||||||
"dev": true,
|
|
||||||
"optional": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/unicode-canonical-property-names-ecmascript": {
|
"node_modules/unicode-canonical-property-names-ecmascript": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
|
||||||
@ -21413,13 +20973,6 @@
|
|||||||
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
|
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/workerpool": {
|
|
||||||
"version": "6.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz",
|
|
||||||
"integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/wrap-ansi": {
|
"node_modules/wrap-ansi": {
|
||||||
"version": "6.2.0",
|
"version": "6.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||||
@ -21620,45 +21173,6 @@
|
|||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/yargs-unparser": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"dependencies": {
|
|
||||||
"camelcase": "^6.0.0",
|
|
||||||
"decamelize": "^4.0.0",
|
|
||||||
"flat": "^5.0.2",
|
|
||||||
"is-plain-obj": "^2.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/yargs-unparser/node_modules/camelcase": {
|
|
||||||
"version": "6.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
|
|
||||||
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/yargs-unparser/node_modules/is-plain-obj": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
|
|
||||||
"integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
|
|
||||||
"dev": true,
|
|
||||||
"peer": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/yauzl": {
|
"node_modules/yauzl": {
|
||||||
"version": "2.10.0",
|
"version": "2.10.0",
|
||||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
|
||||||
|
@ -81,11 +81,11 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
@ViewChildren('fileUploadInput')
|
@ViewChildren('fileUploadInput')
|
||||||
fileUploadInputCompList: QueryList<ElementRef> = new QueryList()
|
fileUploadInputCompList: QueryList<ElementRef> = new QueryList()
|
||||||
|
|
||||||
public static cnt: number = 0
|
public static cnt = 0
|
||||||
public static nonPkCnt: number = 0
|
public static nonPkCnt = 0
|
||||||
public static lastCell: number = 0
|
public static lastCell = 0
|
||||||
private _tableSub: Subscription | undefined
|
private _tableSub: Subscription | undefined
|
||||||
public message: string = ''
|
public message = ''
|
||||||
public $dataFormats: $DataFormats | null = null
|
public $dataFormats: $DataFormats | null = null
|
||||||
public submit: boolean | undefined
|
public submit: boolean | undefined
|
||||||
public cols: Col[] = []
|
public cols: Col[] = []
|
||||||
@ -107,12 +107,12 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
*/
|
*/
|
||||||
restrictions: EditorRestrictions = {}
|
restrictions: EditorRestrictions = {}
|
||||||
|
|
||||||
datasetInfo: boolean = false
|
datasetInfo = false
|
||||||
dsmeta: DSMeta[] = []
|
dsmeta: DSMeta[] = []
|
||||||
versions: Version[] = []
|
versions: Version[] = []
|
||||||
dsNote = ''
|
dsNote = ''
|
||||||
|
|
||||||
viewboxes: boolean = false
|
viewboxes = false
|
||||||
|
|
||||||
Infinity = Infinity
|
Infinity = Infinity
|
||||||
|
|
||||||
@ -154,7 +154,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
selection: any[],
|
selection: any[],
|
||||||
clickEvent: MouseEvent
|
clickEvent: MouseEvent
|
||||||
) => {
|
) => {
|
||||||
let firstSelection = selection[0]
|
const firstSelection = selection[0]
|
||||||
|
|
||||||
if (firstSelection.start.row === firstSelection.end.row) {
|
if (firstSelection.start.row === firstSelection.end.row) {
|
||||||
this.editRecord(null, firstSelection.start.row)
|
this.editRecord(null, firstSelection.start.row)
|
||||||
@ -195,25 +195,25 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
public hotCellsPropRow: number | null = null
|
public hotCellsPropRow: number | null = null
|
||||||
|
|
||||||
public filter: boolean = false
|
public filter = false
|
||||||
public submitLoading: boolean = false
|
public submitLoading = false
|
||||||
public uploadLoading: boolean = false
|
public uploadLoading = false
|
||||||
public rowsChanged: any = {
|
public rowsChanged: any = {
|
||||||
rowsUpdated: 0,
|
rowsUpdated: 0,
|
||||||
rowsDeleted: 0,
|
rowsDeleted: 0,
|
||||||
rowsAdded: 0
|
rowsAdded: 0
|
||||||
}
|
}
|
||||||
public modifedRowsIndexes: number[] = []
|
public modifedRowsIndexes: number[] = []
|
||||||
public queryErr: boolean = false
|
public queryErr = false
|
||||||
public queryErrMessage: string | undefined
|
public queryErrMessage: string | undefined
|
||||||
public successEnable: boolean = false
|
public successEnable = false
|
||||||
public libTab: string | undefined
|
public libTab: string | undefined
|
||||||
public queryFilter: any
|
public queryFilter: any
|
||||||
public _query: Subscription | undefined
|
public _query: Subscription | undefined
|
||||||
|
|
||||||
public whereString: string | undefined
|
public whereString: string | undefined
|
||||||
public clauses: any
|
public clauses: any
|
||||||
public nullVariables: boolean = false
|
public nullVariables = false
|
||||||
|
|
||||||
public tableId: string | undefined
|
public tableId: string | undefined
|
||||||
public pkFields: any = []
|
public pkFields: any = []
|
||||||
@ -221,53 +221,53 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
public libds: string | undefined
|
public libds: string | undefined
|
||||||
public filter_pk: string | undefined
|
public filter_pk: string | undefined
|
||||||
public table: any
|
public table: any
|
||||||
public filename: string = ''
|
public filename = ''
|
||||||
public selectedColumn: any
|
public selectedColumn: any
|
||||||
public hotSelection: Array<number> | null | undefined
|
public hotSelection: Array<number> | null | undefined
|
||||||
public submitLimitNotice: boolean = false
|
public submitLimitNotice = false
|
||||||
public badEdit: boolean = false
|
public badEdit = false
|
||||||
public badEditCause: string | undefined
|
public badEditCause: string | undefined
|
||||||
public badEditTitle: string | undefined
|
public badEditTitle: string | undefined
|
||||||
public tableTrue: boolean | undefined
|
public tableTrue: boolean | undefined
|
||||||
public saveLoading: boolean = false
|
public saveLoading = false
|
||||||
public approvers: string[] = []
|
public approvers: string[] = []
|
||||||
public approver: any
|
public approver: any
|
||||||
public readOnlyFields!: number
|
public readOnlyFields!: number
|
||||||
public errValidation: boolean = false
|
public errValidation = false
|
||||||
public dataObj: any
|
public dataObj: any
|
||||||
public disableSubmit: boolean | undefined
|
public disableSubmit: boolean | undefined
|
||||||
public pkNull: boolean = false
|
public pkNull = false
|
||||||
public noPkNull: boolean = false
|
public noPkNull = false
|
||||||
public tableData: Array<any> = []
|
public tableData: Array<any> = []
|
||||||
public queryText: string = ''
|
public queryText = ''
|
||||||
public queryTextSaved: string = ''
|
public queryTextSaved = ''
|
||||||
public showApprovers: boolean = false
|
public showApprovers = false
|
||||||
public pkDups: boolean = false
|
public pkDups = false
|
||||||
public validationDone: number = 0
|
public validationDone = 0
|
||||||
public duplicatePkIndexes: any = []
|
public duplicatePkIndexes: any = []
|
||||||
public columnHeader: string[] = []
|
public columnHeader: string[] = []
|
||||||
public specInfo: { col: string; len: number; type: number }[] = []
|
public specInfo: { col: string; len: number; type: number }[] = []
|
||||||
public tooLong: boolean = false
|
public tooLong = false
|
||||||
public exceedCells: {
|
public exceedCells: {
|
||||||
col: string
|
col: string
|
||||||
len: number
|
len: number
|
||||||
val: string
|
val: string
|
||||||
}[] = []
|
}[] = []
|
||||||
public uploader: FileUploader = new FileUploader()
|
public uploader: FileUploader = new FileUploader()
|
||||||
public uploadUrl: string = ''
|
public uploadUrl = ''
|
||||||
public excelFileReady: boolean = false
|
public excelFileReady = false
|
||||||
public uploadPreview: boolean = false
|
public uploadPreview = false
|
||||||
public excelFileParsing: boolean = false
|
public excelFileParsing = false
|
||||||
public excelUploadState: string | null = null
|
public excelUploadState: string | null = null
|
||||||
public data: AOA = []
|
public data: AOA = []
|
||||||
public headerArray: string[] = []
|
public headerArray: string[] = []
|
||||||
public hotDataSchema: any = {}
|
public hotDataSchema: any = {}
|
||||||
public headerShow: string[] = []
|
public headerShow: string[] = []
|
||||||
public headerVisible: boolean = false
|
public headerVisible = false
|
||||||
public hasBaseDropZoneOver: boolean = false
|
public hasBaseDropZoneOver = false
|
||||||
public hasAnotherDropZoneOver: boolean = false
|
public hasAnotherDropZoneOver = false
|
||||||
public headerPks: string[] = []
|
public headerPks: string[] = []
|
||||||
public columnLevelSecurityFlag: boolean = false
|
public columnLevelSecurityFlag = false
|
||||||
public dateTimeHeaders: string[] = []
|
public dateTimeHeaders: string[] = []
|
||||||
public timeHeaders: string[] = []
|
public timeHeaders: string[] = []
|
||||||
public dateHeaders: string[] = []
|
public dateHeaders: string[] = []
|
||||||
@ -286,12 +286,12 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
dataModified!: any[]
|
dataModified!: any[]
|
||||||
|
|
||||||
public filePasswordSubject: Subject<string | undefined> = new Subject()
|
public filePasswordSubject: Subject<string | undefined> = new Subject()
|
||||||
public fileUnlockError: boolean = false
|
public fileUnlockError = false
|
||||||
|
|
||||||
public filePasswordModal: boolean = false
|
public filePasswordModal = false
|
||||||
public showUploadModal: boolean = false
|
public showUploadModal = false
|
||||||
public discardSourceFile: boolean = false
|
public discardSourceFile = false
|
||||||
public manualFileEditModal: boolean = false
|
public manualFileEditModal = false
|
||||||
|
|
||||||
public recordAction: string | null = null
|
public recordAction: string | null = null
|
||||||
|
|
||||||
@ -299,25 +299,25 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
public currentEditRecordValidator: DcValidator | undefined
|
public currentEditRecordValidator: DcValidator | undefined
|
||||||
public currentEditRecordLoadings: number[] = []
|
public currentEditRecordLoadings: number[] = []
|
||||||
public currentEditRecordErrors: number[] = []
|
public currentEditRecordErrors: number[] = []
|
||||||
public currentEditRecordIndex: number = -1
|
public currentEditRecordIndex = -1
|
||||||
|
|
||||||
public generateEditRecordUrlLoading: boolean = false
|
public generateEditRecordUrlLoading = false
|
||||||
public generatedRecordUrl: string | null = null
|
public generatedRecordUrl: string | null = null
|
||||||
public addRecordUrl: string | null = null
|
public addRecordUrl: string | null = null
|
||||||
public recordNewOrPkModified: boolean = false
|
public recordNewOrPkModified = false
|
||||||
public addRecordLoading: boolean = false
|
public addRecordLoading = false
|
||||||
public singleRowSelected: boolean = false
|
public singleRowSelected = false
|
||||||
public addingNewRow: boolean = false
|
public addingNewRow = false
|
||||||
public getdataError: boolean = false
|
public getdataError = false
|
||||||
public zeroFilterRows: boolean = false
|
public zeroFilterRows = false
|
||||||
|
|
||||||
public tableFileDragOver: boolean = false
|
public tableFileDragOver = false
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hash/values table used for dynamic cell validation
|
* Hash/values table used for dynamic cell validation
|
||||||
*/
|
*/
|
||||||
public cellValidationSource: CellValidationSource[] = []
|
public cellValidationSource: CellValidationSource[] = []
|
||||||
public validationTableLimit: number = 20
|
public validationTableLimit = 20
|
||||||
public extendedCellValidationFields: {
|
public extendedCellValidationFields: {
|
||||||
DISPLAY_INDEX: number
|
DISPLAY_INDEX: number
|
||||||
EXTRA_COL_NAME: number
|
EXTRA_COL_NAME: number
|
||||||
@ -463,8 +463,8 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.hasBaseDropZoneOver = e
|
this.hasBaseDropZoneOver = e
|
||||||
}
|
}
|
||||||
|
|
||||||
public attachFile(event: any, dropped: boolean = false) {
|
public attachFile(event: any, dropped = false) {
|
||||||
let file: File = dropped ? event[0] : event.target.files[0]
|
const file: File = dropped ? event[0] : event.target.files[0]
|
||||||
|
|
||||||
this.excelUploadState = 'Loading'
|
this.excelUploadState = 'Loading'
|
||||||
this.excelFileParsing = true
|
this.excelFileParsing = true
|
||||||
@ -494,7 +494,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.eventService.showInfoModal('Table Found', tableFoundInfo)
|
this.eventService.showInfoModal('Table Found', tableFoundInfo)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.then((parseResult: ParseResult | undefined) => {
|
.then(async (parseResult: ParseResult | undefined) => {
|
||||||
if (parseResult) {
|
if (parseResult) {
|
||||||
this.excelFileReady = true
|
this.excelFileReady = true
|
||||||
|
|
||||||
@ -507,7 +507,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.getPendingExcelPreview()
|
this.getPendingExcelPreview()
|
||||||
} else {
|
} else {
|
||||||
// otherwise it's csv file, and we send them directly
|
// otherwise it's csv file, and we send them directly
|
||||||
this.uploadParsedFiles()
|
await this.uploadParsedFiles()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -542,7 +542,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
* This method will run validations and upload all of the pending files
|
* This method will run validations and upload all of the pending files
|
||||||
* that are in the uploader queue.
|
* that are in the uploader queue.
|
||||||
*/
|
*/
|
||||||
public uploadParsedFiles() {
|
public async uploadParsedFiles() {
|
||||||
if (this.checkInvalid()) {
|
if (this.checkInvalid()) {
|
||||||
this.eventService.showAbortModal(null, 'Invalid values are present.')
|
this.eventService.showAbortModal(null, 'Invalid values are present.')
|
||||||
return
|
return
|
||||||
@ -559,7 +559,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.uploadLoading = true
|
this.uploadLoading = true
|
||||||
let filesToUpload: UploadFile[] = []
|
const filesToUpload: UploadFile[] = []
|
||||||
|
|
||||||
for (const file of this.uploader.queue) {
|
for (const file of this.uploader.queue) {
|
||||||
filesToUpload.push({
|
filesToUpload.push({
|
||||||
@ -568,7 +568,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
this.sasService
|
await this.sasService
|
||||||
.uploadFile(this.uploadUrl, filesToUpload, { table: this.libds })
|
.uploadFile(this.uploadUrl, filesToUpload, { table: this.libds })
|
||||||
.then(
|
.then(
|
||||||
(res: UploadFileResponse) => {
|
(res: UploadFileResponse) => {
|
||||||
@ -577,7 +577,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
this.uploadLoading = false
|
this.uploadLoading = false
|
||||||
let params = res.adapterResponse.sasparams[0]
|
const params = res.adapterResponse.sasparams[0]
|
||||||
this.successEnable = true
|
this.successEnable = true
|
||||||
this.tableId = params.DSID
|
this.tableId = params.DSID
|
||||||
this.router.navigateByUrl('/stage/' + this.tableId)
|
this.router.navigateByUrl('/stage/' + this.tableId)
|
||||||
@ -628,10 +628,10 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
this.toggleHotPlugin('contextMenu', false)
|
this.toggleHotPlugin('contextMenu', false)
|
||||||
|
|
||||||
let previewDatasource: any[] = []
|
const previewDatasource: any[] = []
|
||||||
|
|
||||||
this.data.map((item) => {
|
this.data.map((item) => {
|
||||||
let itemObject: any = {}
|
const itemObject: any = {}
|
||||||
|
|
||||||
this.headerShow.map((header: any, index: number) => {
|
this.headerShow.map((header: any, index: number) => {
|
||||||
itemObject[header] = item[index]
|
itemObject[header] = item[index]
|
||||||
@ -710,7 +710,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.editTable(true)
|
this.editTable(true)
|
||||||
}
|
}
|
||||||
|
|
||||||
private appendUploadState(state: string, replaceLast: boolean = false) {
|
private appendUploadState(state: string, replaceLast = false) {
|
||||||
this.cdf.detectChanges()
|
this.cdf.detectChanges()
|
||||||
|
|
||||||
if (this.uploadStaterCompList.first) {
|
if (this.uploadStaterCompList.first) {
|
||||||
@ -743,7 +743,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
async sendClause() {
|
async sendClause() {
|
||||||
this.submitLoading = true
|
this.submitLoading = true
|
||||||
let nullVariableArr = []
|
let nullVariableArr = []
|
||||||
let emptyVariablesArr = []
|
const emptyVariablesArr = []
|
||||||
|
|
||||||
// to check number of empty clauses
|
// to check number of empty clauses
|
||||||
if (typeof this.clauses === 'undefined') {
|
if (typeof this.clauses === 'undefined') {
|
||||||
@ -751,7 +751,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.submitLoading = false
|
this.submitLoading = false
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
let query = this.clauses.queryObj
|
const query = this.clauses.queryObj
|
||||||
|
|
||||||
if (query[0].elements.length < 1) {
|
if (query[0].elements.length < 1) {
|
||||||
// Clear cached filtering data
|
// Clear cached filtering data
|
||||||
@ -866,9 +866,9 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
|
|
||||||
let columnSorting = hot.getPlugin('multiColumnSorting')
|
const columnSorting = hot.getPlugin('multiColumnSorting')
|
||||||
let columnSortConfig = columnSorting.getSortConfig()
|
const columnSortConfig = columnSorting.getSortConfig()
|
||||||
let sortConfigs = Array.isArray(columnSortConfig)
|
const sortConfigs = Array.isArray(columnSortConfig)
|
||||||
? columnSortConfig
|
? columnSortConfig
|
||||||
: [columnSortConfig]
|
: [columnSortConfig]
|
||||||
|
|
||||||
@ -891,7 +891,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
hot.render()
|
hot.render()
|
||||||
|
|
||||||
for (let sortConfig of sortConfigs) {
|
for (const sortConfig of sortConfigs) {
|
||||||
columnSorting.sort(sortConfig)
|
columnSorting.sort(sortConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -900,9 +900,9 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
convertToCorrectTypes(dataSource: any) {
|
convertToCorrectTypes(dataSource: any) {
|
||||||
for (let row of dataSource) {
|
for (const row of dataSource) {
|
||||||
for (let colKey in row) {
|
for (const colKey in row) {
|
||||||
let colSpecs = this.cols.find((x: any) => x.NAME === colKey)
|
const colSpecs = this.cols.find((x: any) => x.NAME === colKey)
|
||||||
|
|
||||||
if (colSpecs) {
|
if (colSpecs) {
|
||||||
if (
|
if (
|
||||||
@ -923,9 +923,9 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.cellValidationSource = []
|
this.cellValidationSource = []
|
||||||
|
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
let columnSorting = hot.getPlugin('multiColumnSorting')
|
const columnSorting = hot.getPlugin('multiColumnSorting')
|
||||||
let columnSortConfig = columnSorting.getSortConfig()
|
const columnSortConfig = columnSorting.getSortConfig()
|
||||||
let sortConfigs = Array.isArray(columnSortConfig)
|
const sortConfigs = Array.isArray(columnSortConfig)
|
||||||
? columnSortConfig
|
? columnSortConfig
|
||||||
: [columnSortConfig]
|
: [columnSortConfig]
|
||||||
|
|
||||||
@ -946,14 +946,14 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
hot.validateRows(this.modifedRowsIndexes)
|
hot.validateRows(this.modifedRowsIndexes)
|
||||||
// this.editRecordListeners();
|
// this.editRecordListeners();
|
||||||
for (let sortConfig of sortConfigs) {
|
for (const sortConfig of sortConfigs) {
|
||||||
columnSorting.sort(sortConfig)
|
columnSorting.sort(sortConfig)
|
||||||
}
|
}
|
||||||
|
|
||||||
this.checkRowLimit()
|
this.checkRowLimit()
|
||||||
}
|
}
|
||||||
|
|
||||||
timesClicked: number = 0
|
timesClicked = 0
|
||||||
public hotClicked() {
|
public hotClicked() {
|
||||||
if (this.timesClicked === 1 && this.hotTable.readOnly) {
|
if (this.timesClicked === 1 && this.hotTable.readOnly) {
|
||||||
this.editTable()
|
this.editTable()
|
||||||
@ -982,7 +982,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
|
|
||||||
let dsInsertIndex = this.dataSource.length
|
const dsInsertIndex = this.dataSource.length
|
||||||
hot.alter('insert_row_below', dsInsertIndex, 1)
|
hot.alter('insert_row_below', dsInsertIndex, 1)
|
||||||
hot.updateSettings({ data: this.dataSource }, false)
|
hot.updateSettings({ data: this.dataSource }, false)
|
||||||
hot.selectCell(this.dataSource.length - 1, 0)
|
hot.selectCell(this.dataSource.length - 1, 0)
|
||||||
@ -1040,14 +1040,14 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.dataModified = []
|
this.dataModified = []
|
||||||
|
|
||||||
for (let i = 0; i < this.dataSource.length; i++) {
|
for (let i = 0; i < this.dataSource.length; i++) {
|
||||||
let dataRow = this.helperService.deepClone(this.dataSource[i])
|
const dataRow = this.helperService.deepClone(this.dataSource[i])
|
||||||
|
|
||||||
if (dataRow._____DELETE__THIS__RECORD_____ === 'Yes') {
|
if (dataRow._____DELETE__THIS__RECORD_____ === 'Yes') {
|
||||||
this.dataModified.push(dataRow)
|
this.dataModified.push(dataRow)
|
||||||
rowsDeleted++
|
rowsDeleted++
|
||||||
} else {
|
} else {
|
||||||
let dataRowUnchanged = this.dataSourceUnchanged.find((row: any) => {
|
const dataRowUnchanged = this.dataSourceUnchanged.find((row: any) => {
|
||||||
for (let pkCol of this.headerPks) {
|
for (const pkCol of this.headerPks) {
|
||||||
if (row[pkCol] !== dataRow[pkCol]) {
|
if (row[pkCol] !== dataRow[pkCol]) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -1080,7 +1080,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
public validatePrimaryKeys() {
|
public validatePrimaryKeys() {
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
|
|
||||||
let myTable = hot.getData()
|
const myTable = hot.getData()
|
||||||
this.pkFields = []
|
this.pkFields = []
|
||||||
for (let index = 0; index < myTable.length; index++) {
|
for (let index = 0; index < myTable.length; index++) {
|
||||||
let pkRow = ''
|
let pkRow = ''
|
||||||
@ -1090,8 +1090,8 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.pkFields.push(pkRow)
|
this.pkFields.push(pkRow)
|
||||||
}
|
}
|
||||||
|
|
||||||
let results = []
|
const results = []
|
||||||
let rows = this.dataSource.length
|
const rows = this.dataSource.length
|
||||||
|
|
||||||
for (let j = 0; j < this.pkFields.length; j++) {
|
for (let j = 0; j < this.pkFields.length; j++) {
|
||||||
for (let i = 0; i < this.pkFields.length; i++) {
|
for (let i = 0; i < this.pkFields.length; i++) {
|
||||||
@ -1136,12 +1136,12 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
* when we don't want to re-set force values of every row in the table
|
* when we don't want to re-set force values of every row in the table
|
||||||
*/
|
*/
|
||||||
public reSetCellValidationValues(
|
public reSetCellValidationValues(
|
||||||
setForcedValues: boolean = false,
|
setForcedValues = false,
|
||||||
specificRowForceValue?: number
|
specificRowForceValue?: number
|
||||||
) {
|
) {
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
|
|
||||||
for (let entry of this.cellValidationSource) {
|
for (const entry of this.cellValidationSource) {
|
||||||
const colSource = entry.values.map(
|
const colSource = entry.values.map(
|
||||||
(el: any) => el[this.cellValidationFields.RAW_VALUE]
|
(el: any) => el[this.cellValidationFields.RAW_VALUE]
|
||||||
)
|
)
|
||||||
@ -1196,7 +1196,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
public reSetExtendedCellValidationValues(
|
public reSetExtendedCellValidationValues(
|
||||||
cellValidationEntry?: CellValidationSource,
|
cellValidationEntry?: CellValidationSource,
|
||||||
row?: number,
|
row?: number,
|
||||||
setForcedValues: boolean = false,
|
setForcedValues = false,
|
||||||
specificRowForceValue?: number
|
specificRowForceValue?: number
|
||||||
) {
|
) {
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
@ -1218,7 +1218,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let entry of this.cellValidationSource) {
|
for (const entry of this.cellValidationSource) {
|
||||||
const extendedValuesObject = this.getExtendedValuesByCellValue(entry)
|
const extendedValuesObject = this.getExtendedValuesByCellValue(entry)
|
||||||
|
|
||||||
this.setExtendedValuesToCells(
|
this.setExtendedValuesToCells(
|
||||||
@ -1235,19 +1235,19 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
cellValidationEntry: CellValidationSource,
|
cellValidationEntry: CellValidationSource,
|
||||||
row: number,
|
row: number,
|
||||||
extendedValues: DynamicExtendedCellValidation[],
|
extendedValues: DynamicExtendedCellValidation[],
|
||||||
setForcedValues: boolean = false,
|
setForcedValues = false,
|
||||||
specificRowForceValue?: number
|
specificRowForceValue?: number
|
||||||
) {
|
) {
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
|
|
||||||
let uniqueCells: any[] = []
|
const uniqueCells: any[] = []
|
||||||
|
|
||||||
for (let element of extendedValues) {
|
for (const element of extendedValues) {
|
||||||
if (uniqueCells.indexOf(element.EXTRA_COL_NAME) < 0)
|
if (uniqueCells.indexOf(element.EXTRA_COL_NAME) < 0)
|
||||||
uniqueCells.push(element.EXTRA_COL_NAME)
|
uniqueCells.push(element.EXTRA_COL_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let cell of uniqueCells) {
|
for (const cell of uniqueCells) {
|
||||||
const valuesForCol = extendedValues.filter(
|
const valuesForCol = extendedValues.filter(
|
||||||
(x) => x.EXTRA_COL_NAME === cell
|
(x) => x.EXTRA_COL_NAME === cell
|
||||||
)
|
)
|
||||||
@ -1385,10 +1385,10 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
const extendedValuesObject = []
|
const extendedValuesObject = []
|
||||||
|
|
||||||
for (let extendedValue of filteredValues || []) {
|
for (const extendedValue of filteredValues || []) {
|
||||||
let tempObj: any = {}
|
const tempObj: any = {}
|
||||||
|
|
||||||
for (let key of Object.keys(prepObj)) {
|
for (const key of Object.keys(prepObj)) {
|
||||||
tempObj[key] = extendedValue[prepObj[key]]
|
tempObj[key] = extendedValue[prepObj[key]]
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1442,7 +1442,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
/**
|
/**
|
||||||
* Below code should be analized, not sure what is the purpose of exceedCells
|
* Below code should be analized, not sure what is the purpose of exceedCells
|
||||||
*/
|
*/
|
||||||
let myTableData = hot.getData()
|
const myTableData = hot.getData()
|
||||||
|
|
||||||
// If the last row is empty, remove it before validation
|
// If the last row is empty, remove it before validation
|
||||||
if (myTableData.length > 1 && hot.isEmptyRow(myTableData.length - 1)) {
|
if (myTableData.length > 1 && hot.isEmptyRow(myTableData.length - 1)) {
|
||||||
@ -1462,7 +1462,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
hot.validateRows(this.modifedRowsIndexes, () => {
|
hot.validateRows(this.modifedRowsIndexes, () => {
|
||||||
if (this.checkInvalid()) {
|
if (this.checkInvalid()) {
|
||||||
let abortMsg = 'Invalid Values are Present'
|
const abortMsg = 'Invalid Values are Present'
|
||||||
|
|
||||||
this.eventService.showInfoModal('Validation error', abortMsg)
|
this.eventService.showInfoModal('Validation error', abortMsg)
|
||||||
|
|
||||||
@ -1473,7 +1473,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.validationDone = 1
|
this.validationDone = 1
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
let txt: any = document.getElementById('formFields_8')
|
const txt: any = document.getElementById('formFields_8')
|
||||||
if (txt) txt.focus()
|
if (txt) txt.focus()
|
||||||
}, 200)
|
}, 200)
|
||||||
})
|
})
|
||||||
@ -1490,11 +1490,11 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
|
|
||||||
public async saveTable(data: any) {
|
public async saveTable(data: any) {
|
||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
let hotData = hot.getData()
|
const hotData = hot.getData()
|
||||||
|
|
||||||
data = data.filter((dataRow: any) => {
|
data = data.filter((dataRow: any) => {
|
||||||
let elModified = this.dataModified.find((row) => {
|
const elModified = this.dataModified.find((row) => {
|
||||||
for (let pkCol of this.headerPks) {
|
for (const pkCol of this.headerPks) {
|
||||||
if (row[pkCol] !== dataRow[pkCol]) {
|
if (row[pkCol] !== dataRow[pkCol]) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
@ -1507,7 +1507,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
})
|
})
|
||||||
|
|
||||||
data = data.map((row: any) => {
|
data = data.map((row: any) => {
|
||||||
let deleteColValue = row['_____DELETE__THIS__RECORD_____']
|
const deleteColValue = row['_____DELETE__THIS__RECORD_____']
|
||||||
|
|
||||||
delete row['_____DELETE__THIS__RECORD_____']
|
delete row['_____DELETE__THIS__RECORD_____']
|
||||||
row['_____DELETE__THIS__RECORD_____'] = deleteColValue
|
row['_____DELETE__THIS__RECORD_____'] = deleteColValue
|
||||||
@ -1525,7 +1525,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.loggerService.log('Data submitted', data)
|
this.loggerService.log('Data submitted', data)
|
||||||
|
|
||||||
if (this.checkInvalid()) {
|
if (this.checkInvalid()) {
|
||||||
let abortMsg = 'Invalid Values are Present'
|
const abortMsg = 'Invalid Values are Present'
|
||||||
this.eventService.showInfoModal('Validation error', abortMsg)
|
this.eventService.showInfoModal('Validation error', abortMsg)
|
||||||
this.cancelSubmit()
|
this.cancelSubmit()
|
||||||
this.submit = false
|
this.submit = false
|
||||||
@ -1543,7 +1543,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.saveLoading = true
|
this.saveLoading = true
|
||||||
this.disableSubmit = false
|
this.disableSubmit = false
|
||||||
this.submit = true
|
this.submit = true
|
||||||
let updateParams: any = {}
|
const updateParams: any = {}
|
||||||
updateParams.ACTION = 'LOAD'
|
updateParams.ACTION = 'LOAD'
|
||||||
this.message = this.message.replace(/\n/g, '. ')
|
this.message = this.message.replace(/\n/g, '. ')
|
||||||
updateParams.MESSAGE = this.message
|
updateParams.MESSAGE = this.message
|
||||||
@ -1576,7 +1576,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
let error = `Submit request failed`
|
let error = `Submit request failed`
|
||||||
|
|
||||||
if (res) {
|
if (res) {
|
||||||
let errorText =
|
const errorText =
|
||||||
typeof res === 'string' ? res : JSON.stringify(res)
|
typeof res === 'string' ? res : JSON.stringify(res)
|
||||||
|
|
||||||
error += `\n${errorText}`
|
error += `\n${errorText}`
|
||||||
@ -1596,7 +1596,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.disableSubmit = true
|
this.disableSubmit = true
|
||||||
this.submit = false
|
this.submit = false
|
||||||
|
|
||||||
let errorText =
|
const errorText =
|
||||||
typeof err.adapterRespnse === 'string'
|
typeof err.adapterRespnse === 'string'
|
||||||
? err.adapterRespnse
|
? err.adapterRespnse
|
||||||
: JSON.stringify(err.adapterRespnse)
|
: JSON.stringify(err.adapterRespnse)
|
||||||
@ -1669,7 +1669,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
confirmRecordEdit(close: boolean = true) {
|
confirmRecordEdit(close = true) {
|
||||||
const closingRecordIndex = this.currentEditRecordIndex
|
const closingRecordIndex = this.currentEditRecordIndex
|
||||||
|
|
||||||
if (close) this.currentEditRecordIndex = -1
|
if (close) this.currentEditRecordIndex = -1
|
||||||
@ -1771,7 +1771,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
)
|
)
|
||||||
|
|
||||||
// Update that copy with current cells meta (dynamic validation data)
|
// Update that copy with current cells meta (dynamic validation data)
|
||||||
for (let cellMeta of currentEditRecordCellsMeta) {
|
for (const cellMeta of currentEditRecordCellsMeta) {
|
||||||
if (cellMeta) {
|
if (cellMeta) {
|
||||||
const data = cellMeta.prop?.toString() //------------
|
const data = cellMeta.prop?.toString() //------------
|
||||||
delete cellMeta.prop // We convert to be able to update dcValidator rule by using CellProperties
|
delete cellMeta.prop // We convert to be able to update dcValidator rule by using CellProperties
|
||||||
@ -1795,7 +1795,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
const hot = this.hotInstance
|
const hot = this.hotInstance
|
||||||
|
|
||||||
hot.batch(() => {
|
hot.batch(() => {
|
||||||
let contextMenuPlugin = hot.getPlugin<any>(pluginName)
|
const contextMenuPlugin = hot.getPlugin<any>(pluginName)
|
||||||
|
|
||||||
if (!contextMenuPlugin) {
|
if (!contextMenuPlugin) {
|
||||||
console.warn(
|
console.warn(
|
||||||
@ -2222,7 +2222,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// recover lib and table parameters from url; filter pk is optional - if filter is applied
|
// recover lib and table parameters from url; filter pk is optional - if filter is applied
|
||||||
let myParams: any = {}
|
const myParams: any = {}
|
||||||
if (typeof this.route.snapshot.params['libMem'] !== 'undefined') {
|
if (typeof this.route.snapshot.params['libMem'] !== 'undefined') {
|
||||||
this.libds = this.route.snapshot.params['libMem']
|
this.libds = this.route.snapshot.params['libMem']
|
||||||
this.filter_pk = this.route.snapshot.params['filterId']
|
this.filter_pk = this.route.snapshot.params['filterId']
|
||||||
@ -2503,7 +2503,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
this.columnHeader[0] = 'Delete?'
|
this.columnHeader[0] = 'Delete?'
|
||||||
this.readOnlyFields = response.data.sasparams[0].PKCNT
|
this.readOnlyFields = response.data.sasparams[0].PKCNT
|
||||||
|
|
||||||
let hotInstaceEl = document.getElementById('hotInstance')
|
const hotInstaceEl = document.getElementById('hotInstance')
|
||||||
|
|
||||||
if (hotInstaceEl) {
|
if (hotInstaceEl) {
|
||||||
hotInstaceEl.addEventListener('mousedown', (event) => {
|
hotInstaceEl.addEventListener('mousedown', (event) => {
|
||||||
@ -2512,7 +2512,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
let menuDebugItem: any =
|
const menuDebugItem: any =
|
||||||
document.querySelector('.debug-switch-item') || undefined
|
document.querySelector('.debug-switch-item') || undefined
|
||||||
if (menuDebugItem) menuDebugItem.click()
|
if (menuDebugItem) menuDebugItem.click()
|
||||||
}, 100)
|
}, 100)
|
||||||
@ -2602,7 +2602,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
|||||||
hot.addHook('afterCreateRow', (source: any, change: any) => {
|
hot.addHook('afterCreateRow', (source: any, change: any) => {
|
||||||
if (source > this.dataSource.length) {
|
if (source > this.dataSource.length) {
|
||||||
// don't scroll if row is not added to the end (bottom)
|
// don't scroll if row is not added to the end (bottom)
|
||||||
let wtHolder = document.querySelector('.wtHolder')
|
const wtHolder = document.querySelector('.wtHolder')
|
||||||
|
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
if (wtHolder) wtHolder.scrollTop = wtHolder.scrollHeight
|
if (wtHolder) wtHolder.scrollTop = wtHolder.scrollHeight
|
||||||
|
@ -129,6 +129,12 @@ export class SpreadsheetUtil {
|
|||||||
reader.readAsArrayBuffer(file)
|
reader.readAsArrayBuffer(file)
|
||||||
} else if (fileType.toLowerCase() === 'csv') {
|
} else if (fileType.toLowerCase() === 'csv') {
|
||||||
return this.parseCsvFile(parseParams, uploader, fileType)
|
return this.parseCsvFile(parseParams, uploader, fileType)
|
||||||
|
.then((response) => {
|
||||||
|
return resolve(response)
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
return reject(err)
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
let abortMsg =
|
let abortMsg =
|
||||||
'Invalid file type "<b>' +
|
'Invalid file type "<b>' +
|
||||||
@ -367,7 +373,7 @@ export class SpreadsheetUtil {
|
|||||||
parseParams: ParseParams,
|
parseParams: ParseParams,
|
||||||
uploader: FileUploader,
|
uploader: FileUploader,
|
||||||
fileType: string
|
fileType: string
|
||||||
) {
|
): Promise<ParseResult> {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
if (this.licenceState.value.submit_rows_limit !== Infinity) {
|
if (this.licenceState.value.submit_rows_limit !== Infinity) {
|
||||||
uploader.queue.pop()
|
uploader.queue.pop()
|
||||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "dcfrontend",
|
"name": "dcfrontend",
|
||||||
"version": "6.10.0",
|
"version": "6.12.1",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "dcfrontend",
|
"name": "dcfrontend",
|
||||||
"version": "6.10.0",
|
"version": "6.12.1",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@saithodev/semantic-release-gitea": "^2.1.0",
|
"@saithodev/semantic-release-gitea": "^2.1.0",
|
||||||
|
6
sas/package-lock.json
generated
6
sas/package-lock.json
generated
@ -229,12 +229,6 @@
|
|||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/tough-cookie": {
|
|
||||||
"version": "4.0.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.5.tgz",
|
|
||||||
"integrity": "sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==",
|
|
||||||
"peer": true
|
|
||||||
},
|
|
||||||
"node_modules/abab": {
|
"node_modules/abab": {
|
||||||
"version": "2.0.6",
|
"version": "2.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||||
|
@ -230,7 +230,7 @@
|
|||||||
"macroVars": {}
|
"macroVars": {}
|
||||||
},
|
},
|
||||||
"streamConfig": {
|
"streamConfig": {
|
||||||
"streamWeb": false,
|
"streamWeb": true,
|
||||||
"streamWebFolder": "web",
|
"streamWebFolder": "web",
|
||||||
"webSourcePath": "../client/dist",
|
"webSourcePath": "../client/dist",
|
||||||
"streamServiceName": "DataController2",
|
"streamServiceName": "DataController2",
|
||||||
|
Reference in New Issue
Block a user