fix: editor page csv upload
This commit is contained in:
parent
c89a3049fa
commit
217220ffaa
486
client/package-lock.json
generated
486
client/package-lock.json
generated
@ -776,17 +776,6 @@
|
||||
"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": {
|
||||
"version": "1.1.0",
|
||||
"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",
|
||||
"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": {
|
||||
"version": "2.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.7.tgz",
|
||||
@ -6987,12 +6970,6 @@
|
||||
"@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": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
|
||||
@ -7999,13 +7976,6 @@
|
||||
"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": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz",
|
||||
@ -9747,19 +9717,6 @@
|
||||
"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": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.2.tgz",
|
||||
@ -12202,16 +12159,6 @@
|
||||
"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": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
|
||||
@ -15153,385 +15100,6 @@
|
||||
"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": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/mochawesome/-/mochawesome-7.1.3.tgz",
|
||||
@ -20606,14 +20174,6 @@
|
||||
"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": {
|
||||
"version": "2.0.0",
|
||||
"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==",
|
||||
"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": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||
@ -21620,45 +21173,6 @@
|
||||
"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": {
|
||||
"version": "2.10.0",
|
||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
|
||||
|
@ -81,11 +81,11 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
@ViewChildren('fileUploadInput')
|
||||
fileUploadInputCompList: QueryList<ElementRef> = new QueryList()
|
||||
|
||||
public static cnt: number = 0
|
||||
public static nonPkCnt: number = 0
|
||||
public static lastCell: number = 0
|
||||
public static cnt = 0
|
||||
public static nonPkCnt = 0
|
||||
public static lastCell = 0
|
||||
private _tableSub: Subscription | undefined
|
||||
public message: string = ''
|
||||
public message = ''
|
||||
public $dataFormats: $DataFormats | null = null
|
||||
public submit: boolean | undefined
|
||||
public cols: Col[] = []
|
||||
@ -107,12 +107,12 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
*/
|
||||
restrictions: EditorRestrictions = {}
|
||||
|
||||
datasetInfo: boolean = false
|
||||
datasetInfo = false
|
||||
dsmeta: DSMeta[] = []
|
||||
versions: Version[] = []
|
||||
dsNote = ''
|
||||
|
||||
viewboxes: boolean = false
|
||||
viewboxes = false
|
||||
|
||||
Infinity = Infinity
|
||||
|
||||
@ -154,7 +154,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
selection: any[],
|
||||
clickEvent: MouseEvent
|
||||
) => {
|
||||
let firstSelection = selection[0]
|
||||
const firstSelection = selection[0]
|
||||
|
||||
if (firstSelection.start.row === firstSelection.end.row) {
|
||||
this.editRecord(null, firstSelection.start.row)
|
||||
@ -195,25 +195,25 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
public hotCellsPropRow: number | null = null
|
||||
|
||||
public filter: boolean = false
|
||||
public submitLoading: boolean = false
|
||||
public uploadLoading: boolean = false
|
||||
public filter = false
|
||||
public submitLoading = false
|
||||
public uploadLoading = false
|
||||
public rowsChanged: any = {
|
||||
rowsUpdated: 0,
|
||||
rowsDeleted: 0,
|
||||
rowsAdded: 0
|
||||
}
|
||||
public modifedRowsIndexes: number[] = []
|
||||
public queryErr: boolean = false
|
||||
public queryErr = false
|
||||
public queryErrMessage: string | undefined
|
||||
public successEnable: boolean = false
|
||||
public successEnable = false
|
||||
public libTab: string | undefined
|
||||
public queryFilter: any
|
||||
public _query: Subscription | undefined
|
||||
|
||||
public whereString: string | undefined
|
||||
public clauses: any
|
||||
public nullVariables: boolean = false
|
||||
public nullVariables = false
|
||||
|
||||
public tableId: string | undefined
|
||||
public pkFields: any = []
|
||||
@ -221,53 +221,53 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
public libds: string | undefined
|
||||
public filter_pk: string | undefined
|
||||
public table: any
|
||||
public filename: string = ''
|
||||
public filename = ''
|
||||
public selectedColumn: any
|
||||
public hotSelection: Array<number> | null | undefined
|
||||
public submitLimitNotice: boolean = false
|
||||
public badEdit: boolean = false
|
||||
public submitLimitNotice = false
|
||||
public badEdit = false
|
||||
public badEditCause: string | undefined
|
||||
public badEditTitle: string | undefined
|
||||
public tableTrue: boolean | undefined
|
||||
public saveLoading: boolean = false
|
||||
public saveLoading = false
|
||||
public approvers: string[] = []
|
||||
public approver: any
|
||||
public readOnlyFields!: number
|
||||
public errValidation: boolean = false
|
||||
public errValidation = false
|
||||
public dataObj: any
|
||||
public disableSubmit: boolean | undefined
|
||||
public pkNull: boolean = false
|
||||
public noPkNull: boolean = false
|
||||
public pkNull = false
|
||||
public noPkNull = false
|
||||
public tableData: Array<any> = []
|
||||
public queryText: string = ''
|
||||
public queryTextSaved: string = ''
|
||||
public showApprovers: boolean = false
|
||||
public pkDups: boolean = false
|
||||
public validationDone: number = 0
|
||||
public queryText = ''
|
||||
public queryTextSaved = ''
|
||||
public showApprovers = false
|
||||
public pkDups = false
|
||||
public validationDone = 0
|
||||
public duplicatePkIndexes: any = []
|
||||
public columnHeader: string[] = []
|
||||
public specInfo: { col: string; len: number; type: number }[] = []
|
||||
public tooLong: boolean = false
|
||||
public tooLong = false
|
||||
public exceedCells: {
|
||||
col: string
|
||||
len: number
|
||||
val: string
|
||||
}[] = []
|
||||
public uploader: FileUploader = new FileUploader()
|
||||
public uploadUrl: string = ''
|
||||
public excelFileReady: boolean = false
|
||||
public uploadPreview: boolean = false
|
||||
public excelFileParsing: boolean = false
|
||||
public uploadUrl = ''
|
||||
public excelFileReady = false
|
||||
public uploadPreview = false
|
||||
public excelFileParsing = false
|
||||
public excelUploadState: string | null = null
|
||||
public data: AOA = []
|
||||
public headerArray: string[] = []
|
||||
public hotDataSchema: any = {}
|
||||
public headerShow: string[] = []
|
||||
public headerVisible: boolean = false
|
||||
public hasBaseDropZoneOver: boolean = false
|
||||
public hasAnotherDropZoneOver: boolean = false
|
||||
public headerVisible = false
|
||||
public hasBaseDropZoneOver = false
|
||||
public hasAnotherDropZoneOver = false
|
||||
public headerPks: string[] = []
|
||||
public columnLevelSecurityFlag: boolean = false
|
||||
public columnLevelSecurityFlag = false
|
||||
public dateTimeHeaders: string[] = []
|
||||
public timeHeaders: string[] = []
|
||||
public dateHeaders: string[] = []
|
||||
@ -286,12 +286,12 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
dataModified!: any[]
|
||||
|
||||
public filePasswordSubject: Subject<string | undefined> = new Subject()
|
||||
public fileUnlockError: boolean = false
|
||||
public fileUnlockError = false
|
||||
|
||||
public filePasswordModal: boolean = false
|
||||
public showUploadModal: boolean = false
|
||||
public discardSourceFile: boolean = false
|
||||
public manualFileEditModal: boolean = false
|
||||
public filePasswordModal = false
|
||||
public showUploadModal = false
|
||||
public discardSourceFile = false
|
||||
public manualFileEditModal = false
|
||||
|
||||
public recordAction: string | null = null
|
||||
|
||||
@ -299,25 +299,25 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
public currentEditRecordValidator: DcValidator | undefined
|
||||
public currentEditRecordLoadings: number[] = []
|
||||
public currentEditRecordErrors: number[] = []
|
||||
public currentEditRecordIndex: number = -1
|
||||
public currentEditRecordIndex = -1
|
||||
|
||||
public generateEditRecordUrlLoading: boolean = false
|
||||
public generateEditRecordUrlLoading = false
|
||||
public generatedRecordUrl: string | null = null
|
||||
public addRecordUrl: string | null = null
|
||||
public recordNewOrPkModified: boolean = false
|
||||
public addRecordLoading: boolean = false
|
||||
public singleRowSelected: boolean = false
|
||||
public addingNewRow: boolean = false
|
||||
public getdataError: boolean = false
|
||||
public zeroFilterRows: boolean = false
|
||||
public recordNewOrPkModified = false
|
||||
public addRecordLoading = false
|
||||
public singleRowSelected = false
|
||||
public addingNewRow = false
|
||||
public getdataError = false
|
||||
public zeroFilterRows = false
|
||||
|
||||
public tableFileDragOver: boolean = false
|
||||
public tableFileDragOver = false
|
||||
|
||||
/**
|
||||
* Hash/values table used for dynamic cell validation
|
||||
*/
|
||||
public cellValidationSource: CellValidationSource[] = []
|
||||
public validationTableLimit: number = 20
|
||||
public validationTableLimit = 20
|
||||
public extendedCellValidationFields: {
|
||||
DISPLAY_INDEX: number
|
||||
EXTRA_COL_NAME: number
|
||||
@ -463,8 +463,8 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.hasBaseDropZoneOver = e
|
||||
}
|
||||
|
||||
public attachFile(event: any, dropped: boolean = false) {
|
||||
let file: File = dropped ? event[0] : event.target.files[0]
|
||||
public attachFile(event: any, dropped = false) {
|
||||
const file: File = dropped ? event[0] : event.target.files[0]
|
||||
|
||||
this.excelUploadState = 'Loading'
|
||||
this.excelFileParsing = true
|
||||
@ -494,7 +494,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.eventService.showInfoModal('Table Found', tableFoundInfo)
|
||||
}
|
||||
)
|
||||
.then((parseResult: ParseResult | undefined) => {
|
||||
.then(async (parseResult: ParseResult | undefined) => {
|
||||
if (parseResult) {
|
||||
this.excelFileReady = true
|
||||
|
||||
@ -507,7 +507,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.getPendingExcelPreview()
|
||||
} else {
|
||||
// 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
|
||||
* that are in the uploader queue.
|
||||
*/
|
||||
public uploadParsedFiles() {
|
||||
public async uploadParsedFiles() {
|
||||
if (this.checkInvalid()) {
|
||||
this.eventService.showAbortModal(null, 'Invalid values are present.')
|
||||
return
|
||||
@ -559,7 +559,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
}
|
||||
|
||||
this.uploadLoading = true
|
||||
let filesToUpload: UploadFile[] = []
|
||||
const filesToUpload: UploadFile[] = []
|
||||
|
||||
for (const file of this.uploader.queue) {
|
||||
filesToUpload.push({
|
||||
@ -568,7 +568,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
})
|
||||
}
|
||||
|
||||
this.sasService
|
||||
await this.sasService
|
||||
.uploadFile(this.uploadUrl, filesToUpload, { table: this.libds })
|
||||
.then(
|
||||
(res: UploadFileResponse) => {
|
||||
@ -577,7 +577,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
return
|
||||
} else {
|
||||
this.uploadLoading = false
|
||||
let params = res.adapterResponse.sasparams[0]
|
||||
const params = res.adapterResponse.sasparams[0]
|
||||
this.successEnable = true
|
||||
this.tableId = params.DSID
|
||||
this.router.navigateByUrl('/stage/' + this.tableId)
|
||||
@ -628,10 +628,10 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
this.toggleHotPlugin('contextMenu', false)
|
||||
|
||||
let previewDatasource: any[] = []
|
||||
const previewDatasource: any[] = []
|
||||
|
||||
this.data.map((item) => {
|
||||
let itemObject: any = {}
|
||||
const itemObject: any = {}
|
||||
|
||||
this.headerShow.map((header: any, index: number) => {
|
||||
itemObject[header] = item[index]
|
||||
@ -710,7 +710,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.editTable(true)
|
||||
}
|
||||
|
||||
private appendUploadState(state: string, replaceLast: boolean = false) {
|
||||
private appendUploadState(state: string, replaceLast = false) {
|
||||
this.cdf.detectChanges()
|
||||
|
||||
if (this.uploadStaterCompList.first) {
|
||||
@ -743,7 +743,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
async sendClause() {
|
||||
this.submitLoading = true
|
||||
let nullVariableArr = []
|
||||
let emptyVariablesArr = []
|
||||
const emptyVariablesArr = []
|
||||
|
||||
// to check number of empty clauses
|
||||
if (typeof this.clauses === 'undefined') {
|
||||
@ -751,7 +751,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.submitLoading = false
|
||||
return
|
||||
} else {
|
||||
let query = this.clauses.queryObj
|
||||
const query = this.clauses.queryObj
|
||||
|
||||
if (query[0].elements.length < 1) {
|
||||
// Clear cached filtering data
|
||||
@ -866,9 +866,9 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
const hot = this.hotInstance
|
||||
|
||||
let columnSorting = hot.getPlugin('multiColumnSorting')
|
||||
let columnSortConfig = columnSorting.getSortConfig()
|
||||
let sortConfigs = Array.isArray(columnSortConfig)
|
||||
const columnSorting = hot.getPlugin('multiColumnSorting')
|
||||
const columnSortConfig = columnSorting.getSortConfig()
|
||||
const sortConfigs = Array.isArray(columnSortConfig)
|
||||
? columnSortConfig
|
||||
: [columnSortConfig]
|
||||
|
||||
@ -891,7 +891,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
hot.render()
|
||||
|
||||
for (let sortConfig of sortConfigs) {
|
||||
for (const sortConfig of sortConfigs) {
|
||||
columnSorting.sort(sortConfig)
|
||||
}
|
||||
|
||||
@ -900,9 +900,9 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
}
|
||||
|
||||
convertToCorrectTypes(dataSource: any) {
|
||||
for (let row of dataSource) {
|
||||
for (let colKey in row) {
|
||||
let colSpecs = this.cols.find((x: any) => x.NAME === colKey)
|
||||
for (const row of dataSource) {
|
||||
for (const colKey in row) {
|
||||
const colSpecs = this.cols.find((x: any) => x.NAME === colKey)
|
||||
|
||||
if (colSpecs) {
|
||||
if (
|
||||
@ -923,9 +923,9 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.cellValidationSource = []
|
||||
|
||||
const hot = this.hotInstance
|
||||
let columnSorting = hot.getPlugin('multiColumnSorting')
|
||||
let columnSortConfig = columnSorting.getSortConfig()
|
||||
let sortConfigs = Array.isArray(columnSortConfig)
|
||||
const columnSorting = hot.getPlugin('multiColumnSorting')
|
||||
const columnSortConfig = columnSorting.getSortConfig()
|
||||
const sortConfigs = Array.isArray(columnSortConfig)
|
||||
? columnSortConfig
|
||||
: [columnSortConfig]
|
||||
|
||||
@ -946,14 +946,14 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
hot.validateRows(this.modifedRowsIndexes)
|
||||
// this.editRecordListeners();
|
||||
for (let sortConfig of sortConfigs) {
|
||||
for (const sortConfig of sortConfigs) {
|
||||
columnSorting.sort(sortConfig)
|
||||
}
|
||||
|
||||
this.checkRowLimit()
|
||||
}
|
||||
|
||||
timesClicked: number = 0
|
||||
timesClicked = 0
|
||||
public hotClicked() {
|
||||
if (this.timesClicked === 1 && this.hotTable.readOnly) {
|
||||
this.editTable()
|
||||
@ -982,7 +982,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
setTimeout(() => {
|
||||
const hot = this.hotInstance
|
||||
|
||||
let dsInsertIndex = this.dataSource.length
|
||||
const dsInsertIndex = this.dataSource.length
|
||||
hot.alter('insert_row_below', dsInsertIndex, 1)
|
||||
hot.updateSettings({ data: this.dataSource }, false)
|
||||
hot.selectCell(this.dataSource.length - 1, 0)
|
||||
@ -1040,14 +1040,14 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.dataModified = []
|
||||
|
||||
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') {
|
||||
this.dataModified.push(dataRow)
|
||||
rowsDeleted++
|
||||
} else {
|
||||
let dataRowUnchanged = this.dataSourceUnchanged.find((row: any) => {
|
||||
for (let pkCol of this.headerPks) {
|
||||
const dataRowUnchanged = this.dataSourceUnchanged.find((row: any) => {
|
||||
for (const pkCol of this.headerPks) {
|
||||
if (row[pkCol] !== dataRow[pkCol]) {
|
||||
return false
|
||||
}
|
||||
@ -1080,7 +1080,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
public validatePrimaryKeys() {
|
||||
const hot = this.hotInstance
|
||||
|
||||
let myTable = hot.getData()
|
||||
const myTable = hot.getData()
|
||||
this.pkFields = []
|
||||
for (let index = 0; index < myTable.length; index++) {
|
||||
let pkRow = ''
|
||||
@ -1090,8 +1090,8 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.pkFields.push(pkRow)
|
||||
}
|
||||
|
||||
let results = []
|
||||
let rows = this.dataSource.length
|
||||
const results = []
|
||||
const rows = this.dataSource.length
|
||||
|
||||
for (let j = 0; j < this.pkFields.length; j++) {
|
||||
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
|
||||
*/
|
||||
public reSetCellValidationValues(
|
||||
setForcedValues: boolean = false,
|
||||
setForcedValues = false,
|
||||
specificRowForceValue?: number
|
||||
) {
|
||||
const hot = this.hotInstance
|
||||
|
||||
for (let entry of this.cellValidationSource) {
|
||||
for (const entry of this.cellValidationSource) {
|
||||
const colSource = entry.values.map(
|
||||
(el: any) => el[this.cellValidationFields.RAW_VALUE]
|
||||
)
|
||||
@ -1196,7 +1196,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
public reSetExtendedCellValidationValues(
|
||||
cellValidationEntry?: CellValidationSource,
|
||||
row?: number,
|
||||
setForcedValues: boolean = false,
|
||||
setForcedValues = false,
|
||||
specificRowForceValue?: number
|
||||
) {
|
||||
const hot = this.hotInstance
|
||||
@ -1218,7 +1218,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
return
|
||||
}
|
||||
|
||||
for (let entry of this.cellValidationSource) {
|
||||
for (const entry of this.cellValidationSource) {
|
||||
const extendedValuesObject = this.getExtendedValuesByCellValue(entry)
|
||||
|
||||
this.setExtendedValuesToCells(
|
||||
@ -1235,19 +1235,19 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
cellValidationEntry: CellValidationSource,
|
||||
row: number,
|
||||
extendedValues: DynamicExtendedCellValidation[],
|
||||
setForcedValues: boolean = false,
|
||||
setForcedValues = false,
|
||||
specificRowForceValue?: number
|
||||
) {
|
||||
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)
|
||||
uniqueCells.push(element.EXTRA_COL_NAME)
|
||||
}
|
||||
|
||||
for (let cell of uniqueCells) {
|
||||
for (const cell of uniqueCells) {
|
||||
const valuesForCol = extendedValues.filter(
|
||||
(x) => x.EXTRA_COL_NAME === cell
|
||||
)
|
||||
@ -1385,10 +1385,10 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
const extendedValuesObject = []
|
||||
|
||||
for (let extendedValue of filteredValues || []) {
|
||||
let tempObj: any = {}
|
||||
for (const extendedValue of filteredValues || []) {
|
||||
const tempObj: any = {}
|
||||
|
||||
for (let key of Object.keys(prepObj)) {
|
||||
for (const key of Object.keys(prepObj)) {
|
||||
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
|
||||
*/
|
||||
let myTableData = hot.getData()
|
||||
const myTableData = hot.getData()
|
||||
|
||||
// If the last row is empty, remove it before validation
|
||||
if (myTableData.length > 1 && hot.isEmptyRow(myTableData.length - 1)) {
|
||||
@ -1462,7 +1462,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
hot.validateRows(this.modifedRowsIndexes, () => {
|
||||
if (this.checkInvalid()) {
|
||||
let abortMsg = 'Invalid Values are Present'
|
||||
const abortMsg = 'Invalid Values are Present'
|
||||
|
||||
this.eventService.showInfoModal('Validation error', abortMsg)
|
||||
|
||||
@ -1473,7 +1473,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.validationDone = 1
|
||||
|
||||
setTimeout(() => {
|
||||
let txt: any = document.getElementById('formFields_8')
|
||||
const txt: any = document.getElementById('formFields_8')
|
||||
if (txt) txt.focus()
|
||||
}, 200)
|
||||
})
|
||||
@ -1490,11 +1490,11 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
|
||||
public async saveTable(data: any) {
|
||||
const hot = this.hotInstance
|
||||
let hotData = hot.getData()
|
||||
const hotData = hot.getData()
|
||||
|
||||
data = data.filter((dataRow: any) => {
|
||||
let elModified = this.dataModified.find((row) => {
|
||||
for (let pkCol of this.headerPks) {
|
||||
const elModified = this.dataModified.find((row) => {
|
||||
for (const pkCol of this.headerPks) {
|
||||
if (row[pkCol] !== dataRow[pkCol]) {
|
||||
return false
|
||||
}
|
||||
@ -1507,7 +1507,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
})
|
||||
|
||||
data = data.map((row: any) => {
|
||||
let deleteColValue = row['_____DELETE__THIS__RECORD_____']
|
||||
const deleteColValue = row['_____DELETE__THIS__RECORD_____']
|
||||
|
||||
delete row['_____DELETE__THIS__RECORD_____']
|
||||
row['_____DELETE__THIS__RECORD_____'] = deleteColValue
|
||||
@ -1525,7 +1525,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.loggerService.log('Data submitted', data)
|
||||
|
||||
if (this.checkInvalid()) {
|
||||
let abortMsg = 'Invalid Values are Present'
|
||||
const abortMsg = 'Invalid Values are Present'
|
||||
this.eventService.showInfoModal('Validation error', abortMsg)
|
||||
this.cancelSubmit()
|
||||
this.submit = false
|
||||
@ -1543,7 +1543,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.saveLoading = true
|
||||
this.disableSubmit = false
|
||||
this.submit = true
|
||||
let updateParams: any = {}
|
||||
const updateParams: any = {}
|
||||
updateParams.ACTION = 'LOAD'
|
||||
this.message = this.message.replace(/\n/g, '. ')
|
||||
updateParams.MESSAGE = this.message
|
||||
@ -1576,7 +1576,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
let error = `Submit request failed`
|
||||
|
||||
if (res) {
|
||||
let errorText =
|
||||
const errorText =
|
||||
typeof res === 'string' ? res : JSON.stringify(res)
|
||||
|
||||
error += `\n${errorText}`
|
||||
@ -1596,7 +1596,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.disableSubmit = true
|
||||
this.submit = false
|
||||
|
||||
let errorText =
|
||||
const errorText =
|
||||
typeof err.adapterRespnse === 'string'
|
||||
? 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
|
||||
|
||||
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)
|
||||
for (let cellMeta of currentEditRecordCellsMeta) {
|
||||
for (const cellMeta of currentEditRecordCellsMeta) {
|
||||
if (cellMeta) {
|
||||
const data = cellMeta.prop?.toString() //------------
|
||||
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
|
||||
|
||||
hot.batch(() => {
|
||||
let contextMenuPlugin = hot.getPlugin<any>(pluginName)
|
||||
const contextMenuPlugin = hot.getPlugin<any>(pluginName)
|
||||
|
||||
if (!contextMenuPlugin) {
|
||||
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
|
||||
let myParams: any = {}
|
||||
const myParams: any = {}
|
||||
if (typeof this.route.snapshot.params['libMem'] !== 'undefined') {
|
||||
this.libds = this.route.snapshot.params['libMem']
|
||||
this.filter_pk = this.route.snapshot.params['filterId']
|
||||
@ -2503,7 +2503,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
this.columnHeader[0] = 'Delete?'
|
||||
this.readOnlyFields = response.data.sasparams[0].PKCNT
|
||||
|
||||
let hotInstaceEl = document.getElementById('hotInstance')
|
||||
const hotInstaceEl = document.getElementById('hotInstance')
|
||||
|
||||
if (hotInstaceEl) {
|
||||
hotInstaceEl.addEventListener('mousedown', (event) => {
|
||||
@ -2512,7 +2512,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
let menuDebugItem: any =
|
||||
const menuDebugItem: any =
|
||||
document.querySelector('.debug-switch-item') || undefined
|
||||
if (menuDebugItem) menuDebugItem.click()
|
||||
}, 100)
|
||||
@ -2602,7 +2602,7 @@ export class EditorComponent implements OnInit, AfterViewInit {
|
||||
hot.addHook('afterCreateRow', (source: any, change: any) => {
|
||||
if (source > this.dataSource.length) {
|
||||
// don't scroll if row is not added to the end (bottom)
|
||||
let wtHolder = document.querySelector('.wtHolder')
|
||||
const wtHolder = document.querySelector('.wtHolder')
|
||||
|
||||
setTimeout(() => {
|
||||
if (wtHolder) wtHolder.scrollTop = wtHolder.scrollHeight
|
||||
|
@ -129,6 +129,12 @@ export class SpreadsheetUtil {
|
||||
reader.readAsArrayBuffer(file)
|
||||
} else if (fileType.toLowerCase() === 'csv') {
|
||||
return this.parseCsvFile(parseParams, uploader, fileType)
|
||||
.then((response) => {
|
||||
return resolve(response)
|
||||
})
|
||||
.catch(err => {
|
||||
return reject(err)
|
||||
})
|
||||
} else {
|
||||
let abortMsg =
|
||||
'Invalid file type "<b>' +
|
||||
@ -367,7 +373,7 @@ export class SpreadsheetUtil {
|
||||
parseParams: ParseParams,
|
||||
uploader: FileUploader,
|
||||
fileType: string
|
||||
) {
|
||||
): Promise<ParseResult> {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.licenceState.value.submit_rows_limit !== Infinity) {
|
||||
uploader.queue.pop()
|
||||
|
4
package-lock.json
generated
4
package-lock.json
generated
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "dcfrontend",
|
||||
"version": "6.10.0",
|
||||
"version": "6.12.1",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "dcfrontend",
|
||||
"version": "6.10.0",
|
||||
"version": "6.12.1",
|
||||
"hasInstallScript": true,
|
||||
"devDependencies": {
|
||||
"@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": "*"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
|
||||
|
@ -230,7 +230,7 @@
|
||||
"macroVars": {}
|
||||
},
|
||||
"streamConfig": {
|
||||
"streamWeb": false,
|
||||
"streamWeb": true,
|
||||
"streamWebFolder": "web",
|
||||
"webSourcePath": "../client/dist",
|
||||
"streamServiceName": "DataController2",
|
||||
@ -495,4 +495,4 @@
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user