mirror of
https://gitee.com/eolink_admin/postcat.git
synced 2024-12-03 20:28:14 +08:00
refactor: replace table component env
This commit is contained in:
parent
80aa72d42b
commit
545dc00527
22
app/package-lock.json
generated
22
app/package-lock.json
generated
@ -212,7 +212,7 @@
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.3.3",
|
||||
"resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.3.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/debug/download/debug-4.3.3.tgz",
|
||||
"integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
|
||||
"requires": {
|
||||
"ms": "2.1.2"
|
||||
@ -263,7 +263,7 @@
|
||||
},
|
||||
"electron": {
|
||||
"version": "16.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/electron/-/electron-16.0.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/electron/download/electron-16.0.0.tgz",
|
||||
"integrity": "sha512-B+K/UnEV8NsP7IUOd4VAIYLT0uShLQ/V0p1QQLX0McF8d185AV522faklgMGMtPVWNVL2qifx9rZAsKtHPzmEg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -294,7 +294,7 @@
|
||||
},
|
||||
"encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/encodeurl/download/encodeurl-1.0.2.tgz",
|
||||
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
@ -342,7 +342,7 @@
|
||||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.6.9",
|
||||
"resolved": "https://registry.npmmirror.com/debug/-/debug-2.6.9.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/debug/download/debug-2.6.9.tgz",
|
||||
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
@ -425,7 +425,7 @@
|
||||
},
|
||||
"globalthis": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.2.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/globalthis/download/globalthis-1.0.2.tgz",
|
||||
"integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
@ -454,7 +454,7 @@
|
||||
},
|
||||
"graceful-fs": {
|
||||
"version": "4.2.9",
|
||||
"resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.9.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/graceful-fs/download/graceful-fs-4.2.9.tgz",
|
||||
"integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ=="
|
||||
},
|
||||
"http-cache-semantics": {
|
||||
@ -486,7 +486,7 @@
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/isarray/download/isarray-1.0.0.tgz",
|
||||
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
|
||||
"dev": true
|
||||
},
|
||||
@ -536,7 +536,7 @@
|
||||
},
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/lodash/download/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
@ -577,12 +577,12 @@
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.51.0",
|
||||
"resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.51.0.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/mime-db/download/mime-db-1.51.0.tgz?cache=0&sync_timestamp=1636425999210&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-db%2Fdownload%2Fmime-db-1.51.0.tgz",
|
||||
"integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.34",
|
||||
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.34.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/mime-types/download/mime-types-2.1.34.tgz?cache=0&sync_timestamp=1636432299957&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fmime-types%2Fdownload%2Fmime-types-2.1.34.tgz",
|
||||
"integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
|
||||
"requires": {
|
||||
"mime-db": "1.51.0"
|
||||
@ -680,7 +680,7 @@
|
||||
},
|
||||
"progress": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/progress/-/progress-2.0.3.tgz",
|
||||
"resolved": "https://registry.npmmirror.com/progress/download/progress-2.0.3.tgz",
|
||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
||||
"dev": true
|
||||
},
|
||||
|
733
package-lock.json
generated
733
package-lock.json
generated
@ -1284,15 +1284,6 @@
|
||||
"@babel/helper-plugin-utils": "^7.8.0"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-syntax-jsx": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz",
|
||||
"integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-plugin-utils": "^7.16.7"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-syntax-logical-assignment-operators": {
|
||||
"version": "7.10.4",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
|
||||
@ -1365,15 +1356,6 @@
|
||||
"@babel/helper-plugin-utils": "^7.14.5"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-syntax-typescript": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.16.7.tgz",
|
||||
"integrity": "sha512-YhUIJHHGkqPgEcMYkPCKTyGUdoGKWtopIycQyjJH8OjvRgOYsXsaKehLVPScKJWAULPxMa4N1vCe6szREFlZ7A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-plugin-utils": "^7.16.7"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-transform-arrow-functions": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.16.7.tgz",
|
||||
@ -1605,19 +1587,6 @@
|
||||
"@babel/helper-plugin-utils": "^7.16.7"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-transform-react-jsx": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz",
|
||||
"integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-annotate-as-pure": "^7.16.7",
|
||||
"@babel/helper-module-imports": "^7.16.7",
|
||||
"@babel/helper-plugin-utils": "^7.16.7",
|
||||
"@babel/plugin-syntax-jsx": "^7.16.7",
|
||||
"@babel/types": "^7.16.7"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-transform-regenerator": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.16.7.tgz",
|
||||
@ -1704,17 +1673,6 @@
|
||||
"@babel/helper-plugin-utils": "^7.16.7"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-transform-typescript": {
|
||||
"version": "7.16.8",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.16.8.tgz",
|
||||
"integrity": "sha512-bHdQ9k7YpBDO2d0NVfkj51DpQcvwIzIusJ7mEUaMlbZq3Kt/U47j24inXZHQ5MDiYpCs+oZiwnXyKedE8+q7AQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-create-class-features-plugin": "^7.16.7",
|
||||
"@babel/helper-plugin-utils": "^7.16.7",
|
||||
"@babel/plugin-syntax-typescript": "^7.16.7"
|
||||
}
|
||||
},
|
||||
"@babel/plugin-transform-unicode-escapes": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz",
|
||||
@ -1837,17 +1795,6 @@
|
||||
"esutils": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"@babel/preset-typescript": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.16.7.tgz",
|
||||
"integrity": "sha512-WbVEmgXdIyvzB77AQjGBEyYPZx+8tTsO50XtfozQrkW8QB2rLJpH2lgx0TRw5EJrBxOZQ+wCcyPVQvS8tjEHpQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/helper-plugin-utils": "^7.16.7",
|
||||
"@babel/helper-validator-option": "^7.16.7",
|
||||
"@babel/plugin-transform-typescript": "^7.16.7"
|
||||
}
|
||||
},
|
||||
"@babel/runtime": {
|
||||
"version": "7.16.7",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.16.7.tgz",
|
||||
@ -2192,70 +2139,6 @@
|
||||
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
|
||||
"dev": true
|
||||
},
|
||||
"@jest/types": {
|
||||
"version": "27.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz",
|
||||
"integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/istanbul-lib-coverage": "^2.0.0",
|
||||
"@types/istanbul-reports": "^3.0.0",
|
||||
"@types/node": "*",
|
||||
"@types/yargs": "^16.0.0",
|
||||
"chalk": "^4.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"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,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"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,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"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
|
||||
},
|
||||
"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
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@jridgewell/resolve-uri": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.3.tgz",
|
||||
@ -2650,111 +2533,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"@playwright/test": {
|
||||
"version": "1.18.1",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.18.1.tgz",
|
||||
"integrity": "sha512-v6jAM2GpRvf4MUvSLkrAXg101XT9mLu2X2NbCnEoj7GHBXwavDlAJDMwh4Hn8oipDxB6MS6FTcr7opXsIMNwrA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.14.5",
|
||||
"@babel/core": "^7.14.8",
|
||||
"@babel/plugin-proposal-class-properties": "^7.14.5",
|
||||
"@babel/plugin-proposal-dynamic-import": "^7.14.5",
|
||||
"@babel/plugin-proposal-export-namespace-from": "^7.14.5",
|
||||
"@babel/plugin-proposal-logical-assignment-operators": "^7.14.5",
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.14.5",
|
||||
"@babel/plugin-proposal-numeric-separator": "^7.14.5",
|
||||
"@babel/plugin-proposal-optional-chaining": "^7.14.5",
|
||||
"@babel/plugin-proposal-private-methods": "^7.14.5",
|
||||
"@babel/plugin-proposal-private-property-in-object": "^7.14.5",
|
||||
"@babel/plugin-syntax-async-generators": "^7.8.4",
|
||||
"@babel/plugin-syntax-json-strings": "^7.8.3",
|
||||
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
|
||||
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.14.5",
|
||||
"@babel/plugin-transform-react-jsx": "^7.14.5",
|
||||
"@babel/preset-typescript": "^7.14.5",
|
||||
"babel-plugin-module-resolver": "^4.1.0",
|
||||
"colors": "1.4.0",
|
||||
"commander": "^8.2.0",
|
||||
"debug": "^4.1.1",
|
||||
"expect": "=27.2.5",
|
||||
"jest-matcher-utils": "=27.2.5",
|
||||
"jpeg-js": "^0.4.2",
|
||||
"json5": "^2.2.0",
|
||||
"mime": "^2.4.6",
|
||||
"minimatch": "^3.0.3",
|
||||
"ms": "^2.1.2",
|
||||
"open": "^8.3.0",
|
||||
"pirates": "^4.0.1",
|
||||
"pixelmatch": "^5.2.1",
|
||||
"playwright-core": "=1.18.1",
|
||||
"pngjs": "^5.0.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"source-map-support": "^0.4.18",
|
||||
"stack-utils": "^2.0.3",
|
||||
"yazl": "^2.5.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "8.3.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
|
||||
"integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
|
||||
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
|
||||
"dev": true
|
||||
},
|
||||
"playwright-core": {
|
||||
"version": "1.18.1",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.18.1.tgz",
|
||||
"integrity": "sha512-NALGl8R1GHzGLlhUApmpmfh6M1rrrPcDTygWvhTbprxwGB9qd/j9DRwyn4HTQcUB6o0/VOpo46fH9ez3+D/Rog==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"commander": "^8.2.0",
|
||||
"debug": "^4.1.1",
|
||||
"extract-zip": "^2.0.1",
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"jpeg-js": "^0.4.2",
|
||||
"mime": "^2.4.6",
|
||||
"pngjs": "^5.0.0",
|
||||
"progress": "^2.0.3",
|
||||
"proper-lockfile": "^4.1.1",
|
||||
"proxy-from-env": "^1.1.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"socks-proxy-agent": "^6.1.0",
|
||||
"stack-utils": "^2.0.3",
|
||||
"ws": "^7.4.6",
|
||||
"yauzl": "^2.10.0",
|
||||
"yazl": "^2.5.1"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.5.7",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
|
||||
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.4.18",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
|
||||
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "^0.5.6"
|
||||
}
|
||||
},
|
||||
"ws": {
|
||||
"version": "7.5.6",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
|
||||
"integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@schematics/angular": {
|
||||
"version": "13.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-13.2.0.tgz",
|
||||
@ -3012,30 +2790,6 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/istanbul-lib-coverage": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz",
|
||||
"integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/istanbul-lib-report": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz",
|
||||
"integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/istanbul-lib-coverage": "*"
|
||||
}
|
||||
},
|
||||
"@types/istanbul-reports": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz",
|
||||
"integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/istanbul-lib-report": "*"
|
||||
}
|
||||
},
|
||||
"@types/jasmine": {
|
||||
"version": "3.10.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.10.3.tgz",
|
||||
@ -3172,12 +2926,6 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/stack-utils": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.1.tgz",
|
||||
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/verror": {
|
||||
"version": "1.10.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.5.tgz",
|
||||
@ -3194,31 +2942,12 @@
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@types/yargs": {
|
||||
"version": "16.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-16.0.4.tgz",
|
||||
"integrity": "sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/yargs-parser": "*"
|
||||
}
|
||||
},
|
||||
"@types/yargs-parser": {
|
||||
"version": "20.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz",
|
||||
"integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/yauzl": {
|
||||
"version": "2.9.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.2.tgz",
|
||||
"integrity": "sha512-8uALY5LTvSuHgloDVUvWP3pIauILm+8/0pDMokuDYIoNsOkSwd5AiHBTSEJjKTDcZr5z8UpgOWZkxBF4iJftoA==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@types/node": "*"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "5.10.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.1.tgz",
|
||||
@ -4391,19 +4120,6 @@
|
||||
"test-exclude": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"babel-plugin-module-resolver": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz",
|
||||
"integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-babel-config": "^1.2.0",
|
||||
"glob": "^7.1.6",
|
||||
"pkg-up": "^3.1.0",
|
||||
"reselect": "^4.0.0",
|
||||
"resolve": "^1.13.1"
|
||||
}
|
||||
},
|
||||
"babel-plugin-polyfill-corejs2": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz",
|
||||
@ -6429,12 +6145,6 @@
|
||||
"integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
|
||||
"dev": true
|
||||
},
|
||||
"diff-sequences": {
|
||||
"version": "27.4.0",
|
||||
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz",
|
||||
"integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==",
|
||||
"dev": true
|
||||
},
|
||||
"diffie-hellman": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz",
|
||||
@ -7905,28 +7615,6 @@
|
||||
"strip-final-newline": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"expect": {
|
||||
"version": "27.2.5",
|
||||
"resolved": "https://registry.npmjs.org/expect/-/expect-27.2.5.tgz",
|
||||
"integrity": "sha512-ZrO0w7bo8BgGoP/bLz+HDCI+0Hfei9jUSZs5yI/Wyn9VkG9w8oJ7rHRgYj+MA7yqqFa0IwHA3flJzZtYugShJA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@jest/types": "^27.2.5",
|
||||
"ansi-styles": "^5.0.0",
|
||||
"jest-get-type": "^27.0.6",
|
||||
"jest-matcher-utils": "^27.2.5",
|
||||
"jest-message-util": "^27.2.5",
|
||||
"jest-regex-util": "^27.0.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
|
||||
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"express": {
|
||||
"version": "4.17.2",
|
||||
"resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
|
||||
@ -8011,29 +7699,6 @@
|
||||
"tmp": "^0.0.33"
|
||||
}
|
||||
},
|
||||
"extract-zip": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
|
||||
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/yauzl": "^2.9.1",
|
||||
"debug": "^4.1.1",
|
||||
"get-stream": "^5.1.0",
|
||||
"yauzl": "^2.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"get-stream": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
|
||||
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pump": "^3.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"extsprintf": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz",
|
||||
@ -8184,30 +7849,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"find-babel-config": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz",
|
||||
"integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"json5": "^0.5.1",
|
||||
"path-exists": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"json5": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
|
||||
"integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
|
||||
"dev": true
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"find-cache-dir": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
|
||||
@ -9838,218 +9479,6 @@
|
||||
"colors": "1.4.0"
|
||||
}
|
||||
},
|
||||
"jest-diff": {
|
||||
"version": "27.4.6",
|
||||
"resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz",
|
||||
"integrity": "sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^4.0.0",
|
||||
"diff-sequences": "^27.4.0",
|
||||
"jest-get-type": "^27.4.0",
|
||||
"pretty-format": "^27.4.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"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,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"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,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"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
|
||||
},
|
||||
"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
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jest-get-type": {
|
||||
"version": "27.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz",
|
||||
"integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==",
|
||||
"dev": true
|
||||
},
|
||||
"jest-matcher-utils": {
|
||||
"version": "27.2.5",
|
||||
"resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.2.5.tgz",
|
||||
"integrity": "sha512-qNR/kh6bz0Dyv3m68Ck2g1fLW5KlSOUNcFQh87VXHZwWc/gY6XwnKofx76Qytz3x5LDWT09/2+yXndTkaG4aWg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^4.0.0",
|
||||
"jest-diff": "^27.2.5",
|
||||
"jest-get-type": "^27.0.6",
|
||||
"pretty-format": "^27.2.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"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,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"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,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"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
|
||||
},
|
||||
"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
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jest-message-util": {
|
||||
"version": "27.4.6",
|
||||
"resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz",
|
||||
"integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.12.13",
|
||||
"@jest/types": "^27.4.2",
|
||||
"@types/stack-utils": "^2.0.0",
|
||||
"chalk": "^4.0.0",
|
||||
"graceful-fs": "^4.2.4",
|
||||
"micromatch": "^4.0.4",
|
||||
"pretty-format": "^27.4.6",
|
||||
"slash": "^3.0.0",
|
||||
"stack-utils": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"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,
|
||||
"requires": {
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
|
||||
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"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,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"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
|
||||
},
|
||||
"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
|
||||
},
|
||||
"slash": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
|
||||
"integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
|
||||
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"jest-regex-util": {
|
||||
"version": "27.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz",
|
||||
"integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==",
|
||||
"dev": true
|
||||
},
|
||||
"jest-worker": {
|
||||
"version": "27.4.6",
|
||||
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz",
|
||||
@ -10091,12 +9520,6 @@
|
||||
"@sideway/pinpoint": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"jpeg-js": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.3.tgz",
|
||||
"integrity": "sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"js-beautify": {
|
||||
"version": "1.14.0",
|
||||
"resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.0.tgz",
|
||||
@ -12521,12 +11944,6 @@
|
||||
"pinkie": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"pirates": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.5.tgz",
|
||||
"integrity": "sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==",
|
||||
"dev": true
|
||||
},
|
||||
"piscina": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz",
|
||||
@ -12539,23 +11956,6 @@
|
||||
"nice-napi": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"pixelmatch": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/pixelmatch/-/pixelmatch-5.2.1.tgz",
|
||||
"integrity": "sha512-WjcAdYSnKrrdDdqTcVEY7aB7UhhwjYQKYhHiBXdJef0MOaQeYpUdQ+iVyBLa5YBKS8MPVPPMX7rpOByISLpeEQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pngjs": "^4.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"pngjs": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-4.0.1.tgz",
|
||||
"integrity": "sha512-rf5+2/ioHeQxR6IxuYNYGFytUyG3lma/WW1nsmjeHlWwtb2aByla6dkVc8pmJ9nplzkTA0q2xx7mMWrOTqT4Gg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"pkg-dir": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
|
||||
@ -12565,51 +11965,6 @@
|
||||
"find-up": "^4.0.0"
|
||||
}
|
||||
},
|
||||
"pkg-up": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
|
||||
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"find-up": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"find-up": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
|
||||
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"locate-path": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"locate-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
|
||||
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-locate": "^3.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"p-locate": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
|
||||
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"p-limit": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"path-exists": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
|
||||
"integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"plist": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/plist/-/plist-3.0.4.tgz",
|
||||
@ -12620,12 +11975,6 @@
|
||||
"xmlbuilder": "^9.0.7"
|
||||
}
|
||||
},
|
||||
"pngjs": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz",
|
||||
"integrity": "sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==",
|
||||
"dev": true
|
||||
},
|
||||
"portfinder": {
|
||||
"version": "1.0.28",
|
||||
"resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz",
|
||||
@ -13033,25 +12382,6 @@
|
||||
"integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==",
|
||||
"dev": true
|
||||
},
|
||||
"pretty-format": {
|
||||
"version": "27.4.6",
|
||||
"resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz",
|
||||
"integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.1",
|
||||
"ansi-styles": "^5.0.0",
|
||||
"react-is": "^17.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
|
||||
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"process": {
|
||||
"version": "0.11.10",
|
||||
"resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz",
|
||||
@ -13094,25 +12424,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"proper-lockfile": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/proper-lockfile/-/proper-lockfile-4.1.2.tgz",
|
||||
"integrity": "sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.2.4",
|
||||
"retry": "^0.12.0",
|
||||
"signal-exit": "^3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"retry": {
|
||||
"version": "0.12.0",
|
||||
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
|
||||
"integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"proto-list": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz",
|
||||
@ -13136,12 +12447,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
||||
"dev": true
|
||||
},
|
||||
"prr": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
|
||||
@ -13314,12 +12619,6 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"react-is": {
|
||||
"version": "17.0.2",
|
||||
"resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz",
|
||||
"integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==",
|
||||
"dev": true
|
||||
},
|
||||
"read-cache": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
|
||||
@ -13704,12 +13003,6 @@
|
||||
"integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
|
||||
"dev": true
|
||||
},
|
||||
"reselect": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.5.tgz",
|
||||
"integrity": "sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==",
|
||||
"dev": true
|
||||
},
|
||||
"resolve": {
|
||||
"version": "1.22.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
|
||||
@ -14506,23 +13799,6 @@
|
||||
"minipass": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"stack-utils": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.5.tgz",
|
||||
"integrity": "sha512-xrQcmYhOsn/1kX+Vraq+7j4oE2j/6BFscZ0etmYg81xuM8Gq0022Pxb8+IqgOFUIaxHs0KaSb7T1+OegiNrNFA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"escape-string-regexp": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"escape-string-regexp": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
|
||||
"integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"stat-mode": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz",
|
||||
@ -16100,15 +15376,6 @@
|
||||
"fd-slicer": "~1.1.0"
|
||||
}
|
||||
},
|
||||
"yazl": {
|
||||
"version": "2.5.1",
|
||||
"resolved": "https://registry.npmjs.org/yazl/-/yazl-2.5.1.tgz",
|
||||
"integrity": "sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-crc32": "~0.2.3"
|
||||
}
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
|
||||
|
@ -1,102 +1,24 @@
|
||||
<nz-table
|
||||
#basicTable
|
||||
#filterTable
|
||||
#smallTable
|
||||
#expandTable
|
||||
#editRowTable
|
||||
nzSize="small"
|
||||
[nzData]="listOfMapData"
|
||||
[nzShowPagination]="isShowPagination"
|
||||
>
|
||||
<table class="eo-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th
|
||||
*ngFor="let item of renderColumns"
|
||||
[nzFilters]="item.listOfFilter"
|
||||
[nzFilterMultiple]="item.filterMultiple"
|
||||
[nzFilterFn]="item.filterFn"
|
||||
[nzWidth]="item.width"
|
||||
>
|
||||
{{ item.title }}
|
||||
</th>
|
||||
<th *ngIf="isExpand">
|
||||
<a class="th_expand" nz-button nzType="link" (click)="handleExpand(null)">
|
||||
<ng-container *ngIf="expandIndexList.length !== basicTable.data.length">全部展开</ng-container>
|
||||
<ng-container *ngIf="expandIndexList.length === basicTable.data.length">全部收缩</ng-container>
|
||||
</a>
|
||||
</th>
|
||||
<th *ngFor="let title of columns" [width]="title.width">{{ title.title }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<ng-container *ngFor="let data of basicTable.data; let i = index">
|
||||
<ng-container *ngFor="let item of mapOfExpandedData[data.nodeKey]">
|
||||
<tr class="eo_table_body_tr" *ngIf="(item.parent && item.parent.expand) || !item.parent">
|
||||
<ng-container *ngFor="let cell of columns; let $i = index">
|
||||
<td
|
||||
*ngIf="cell.isExpand"
|
||||
[nzIndentSize]="item.level! * 20"
|
||||
[nzShowExpand]="!!item.children"
|
||||
[(nzExpand)]="item.expand"
|
||||
(nzExpandChange)="collapse(mapOfExpandedData[data.nodeKey], item, $event)"
|
||||
>
|
||||
{{ item[cell.key] }}
|
||||
</td>
|
||||
<td *ngIf="!cell.isExpand">
|
||||
<ng-template [ngIf]="!cell.isEdit">
|
||||
{{ item[cell.key] }}
|
||||
</ng-template>
|
||||
<ng-template [ngIf]="cell.isEdit">
|
||||
<input
|
||||
nz-input
|
||||
type="text"
|
||||
[(ngModel)]="item[cell.key]"
|
||||
[ngModelOptions]="{ standalone: true }"
|
||||
type="text"
|
||||
(blur)="handleEditData($event, data.nodeKey, cell.key)"
|
||||
/>
|
||||
</ng-template>
|
||||
<ng-container *ngIf="cell.key">
|
||||
<!-- copy button if columns include [isCopy] -->
|
||||
<ng-template [ngIf]="item[cell.key] && cell.isCopy">
|
||||
<button
|
||||
nz-button
|
||||
[nzSize]="'small'"
|
||||
class="copy"
|
||||
nzType="default"
|
||||
(click)="handleCopy(item[cell.key])"
|
||||
>
|
||||
复制
|
||||
</button>
|
||||
</ng-template>
|
||||
</ng-container>
|
||||
<!-- share scope if columns include [slot] -->
|
||||
<ng-container *ngIf="slotMap[cell.slot]">
|
||||
<ng-template
|
||||
[ngTemplateOutlet]="slotMap[cell.slot]"
|
||||
[ngTemplateOutletContext]="{ scope: item, index: i }"
|
||||
></ng-template>
|
||||
</ng-container>
|
||||
</td>
|
||||
<tr *ngFor="let body of model; let i = index" >
|
||||
<ng-container *ngFor="let cell of columns; let $i = index">
|
||||
<td >
|
||||
<input *ngIf="cell.isEdit" type="text" [(ngModel)]="body[cell['key']]" (input)="handleChange($event)" />
|
||||
<span *ngIf="!cell.isEdit">{{ body[cell['key']] }}</span>
|
||||
<!-- share scope if columns include [slot] -->
|
||||
<ng-container *ngIf="slotMap[cell.slot]">
|
||||
<ng-template
|
||||
[ngTemplateOutlet]="slotMap[cell.slot]"
|
||||
[ngTemplateOutletContext]="{ scope: body, index: i }"
|
||||
></ng-template>
|
||||
</ng-container>
|
||||
<td *ngIf="isExpand">
|
||||
<a class="td_expand" nz-button nzType="link" (click)="handleExpand(i)">
|
||||
<ng-container *ngIf="!expandIndexList.includes(i)">展开</ng-container>
|
||||
<ng-container *ngIf="expandIndexList.includes(i)">收缩</ng-container>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr [nzExpand]="expandIndexList.includes(i)">
|
||||
<p class="expand" *ngIf="item['limit']"><span>参数限制:</span> {{ item['limit'] }}</p>
|
||||
<p class="expand" *ngIf="item['note']">
|
||||
<span>备注:</span>
|
||||
{{ item['note'] }}
|
||||
</p>
|
||||
<p class="expand" *ngIf="item['demo']">
|
||||
<span>示例:</span>
|
||||
{{ item['demo'] }}
|
||||
</p>
|
||||
</tr>
|
||||
</td>
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
</tr>
|
||||
</tbody>
|
||||
</nz-table>
|
||||
</table>
|
@ -1,24 +1,53 @@
|
||||
.expand {
|
||||
font-size: 12px;
|
||||
> span {
|
||||
width: 100px;
|
||||
display: inline-block;
|
||||
table.eo-table {
|
||||
width: 100%;
|
||||
border-radius: 3px 3px 0 0;
|
||||
border: 1px solid #f1f1f1;
|
||||
thead {
|
||||
height: 40px;
|
||||
background-color: #fafafa;
|
||||
th {
|
||||
padding: 0 10px;
|
||||
position: relative;
|
||||
white-space: nowrap;
|
||||
&:after {
|
||||
position: absolute;
|
||||
content: '';
|
||||
display: block;
|
||||
right: 0;
|
||||
top: 10px;
|
||||
bottom: 10px;
|
||||
width: 1px;
|
||||
background-color: rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.td_expand,
|
||||
.th_expand {
|
||||
font-size: 12px;
|
||||
}
|
||||
tbody {
|
||||
tr {
|
||||
&:hover {
|
||||
background-color: #f7f7f7;
|
||||
td {
|
||||
input {
|
||||
border: 1px solid rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
td {
|
||||
border: none;
|
||||
padding: 5px;
|
||||
font-size: 14px;
|
||||
|
||||
.eo_table_body_tr {
|
||||
.copy {
|
||||
visibility: hidden;
|
||||
font-size: 12px;
|
||||
margin: 0 10px;
|
||||
}
|
||||
&:hover {
|
||||
.copy {
|
||||
visibility: visible;
|
||||
input {
|
||||
height: 30px;
|
||||
width: 100%;
|
||||
padding: 0 8px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid rgba(0, 0, 0, 0.05);
|
||||
&:hover {
|
||||
border-color: #00785a;
|
||||
box-shadow: 0 0 3px rgba(0, 120, 90, 0.3);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -11,9 +11,9 @@ import {
|
||||
OnInit,
|
||||
ViewChild,
|
||||
} from '@angular/core';
|
||||
import { NzMessageService } from 'ng-zorro-antd/message';
|
||||
import { addKeyInTree, findDataInTree, flatData } from '../../../utils/tree/tree.utils';
|
||||
import { CellDirective } from './cell.directive';
|
||||
import { isEmptyValue } from '../../../utils/index';
|
||||
|
||||
type Column = {
|
||||
title: string;
|
||||
key?: string;
|
||||
@ -28,164 +28,48 @@ type Column = {
|
||||
isEdit?: boolean;
|
||||
};
|
||||
|
||||
interface TreeNodeInterface {
|
||||
[propName: string]: any;
|
||||
nodeKey: string;
|
||||
level?: number;
|
||||
expand?: boolean;
|
||||
children?: TreeNodeInterface[];
|
||||
parent?: TreeNodeInterface;
|
||||
}
|
||||
|
||||
const eoFilterFn = (key) => (list: string[], item: any) => list.some((text) => item[key].indexOf(text) !== -1);
|
||||
|
||||
@Component({
|
||||
selector: 'eo-table',
|
||||
templateUrl: './eo-table.component.html',
|
||||
styleUrls: ['./eo-table.component.scss'],
|
||||
})
|
||||
export class EoTableComponent implements OnInit, OnChanges, AfterContentInit {
|
||||
@Input() data: any[] = [];
|
||||
@Input() columns: Column[];
|
||||
@Input() isShowPagination = false; // * 是否显示页脚
|
||||
@Input() isVirtualScroll = false; // * 是否开启虚拟滚动
|
||||
@Input() isExpand = false; // * show expand column or not
|
||||
@Output() dataChange: EventEmitter<any> = new EventEmitter();
|
||||
export class EoTableComponent implements OnInit, AfterContentInit {
|
||||
@Input() columns: Column[] = [];
|
||||
@Output() modelChange = new EventEmitter<any>();
|
||||
|
||||
// * about share scope
|
||||
@ContentChildren(CellDirective) slotList: QueryList<CellDirective>;
|
||||
slotMap: { [key: string]: TemplateRef<any> } = {};
|
||||
|
||||
listOfMapData: any[] = [];
|
||||
renderColumns: any[] = [];
|
||||
renderData: any[] = [];
|
||||
expandIndexList: number[] = [];
|
||||
/**
|
||||
* row data by node key
|
||||
*/
|
||||
mapOfExpandedData: { [nodeKey: string]: TreeNodeInterface[] } = {};
|
||||
|
||||
constructor(private message: NzMessageService) {}
|
||||
modelData: any[];
|
||||
get model(): any[] {
|
||||
return this.modelData;
|
||||
}
|
||||
@Input() set model(value) {
|
||||
this.modelData = value.flat(Infinity);
|
||||
const emptyList = this.modelData.filter(isEmptyValue);
|
||||
if (emptyList.length === 0) {
|
||||
// * If has no empty line, then add a new line.
|
||||
this.modelData = this.modelData.concat([{ name: '', value: '', description: '' }]);
|
||||
}
|
||||
}
|
||||
constructor() {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.renderColumns = this.columns.map(
|
||||
({
|
||||
filterListFn = null,
|
||||
filterKey = null,
|
||||
filterFn = null,
|
||||
isCopy = false,
|
||||
isExpand = false,
|
||||
isEdit = false,
|
||||
key = '',
|
||||
...it
|
||||
}) => ({
|
||||
listOfFilter: filterListFn
|
||||
? Array.from(new Set(flatData(this.data || [])?.map((item) => item[filterKey]))).map(filterListFn)
|
||||
: undefined,
|
||||
filterFn: filterFn || eoFilterFn(filterKey),
|
||||
filterMultiple: true,
|
||||
isCopy,
|
||||
isExpand,
|
||||
key,
|
||||
isEdit,
|
||||
...it,
|
||||
})
|
||||
);
|
||||
console.log('->', this.columns);
|
||||
}
|
||||
ngOnChanges(changes): void {
|
||||
this.mapOfExpandedData = {};
|
||||
this.listOfMapData = this.data?.map((it, index) => addKeyInTree(it, index));
|
||||
this.listOfMapData?.forEach((item) => {
|
||||
this.mapOfExpandedData[item.nodeKey] = this.convertTreeToList(item);
|
||||
});
|
||||
}
|
||||
|
||||
ngAfterContentInit() {
|
||||
this.slotList.forEach(({ cellName, templateRef }) => {
|
||||
this.slotMap[cellName] = templateRef;
|
||||
});
|
||||
}
|
||||
handleEditData(event, nodeKey, key) {
|
||||
this.data = this.listOfMapData.map((it) => findDataInTree(it, event.target.value, { id: nodeKey, key }));
|
||||
let elLocation = event.relatedTarget.getBoundingClientRect();
|
||||
this.dataChange.emit(this.data);
|
||||
/**
|
||||
* ! Angular Onpush will reRender table cause input blur
|
||||
* TODO use native dom to refator this component
|
||||
*/
|
||||
setTimeout(() => {
|
||||
let dom = document.elementFromPoint(elLocation.x, elLocation.y);
|
||||
if (dom.tagName !== 'INPUT') {
|
||||
dom = dom.getElementsByClassName('ant-input')[0];
|
||||
}
|
||||
(dom as HTMLInputElement).focus();
|
||||
}, 0);
|
||||
}
|
||||
handleCopy(value) {
|
||||
if (navigator.clipboard) {
|
||||
navigator.clipboard.writeText(value);
|
||||
this.message.success('复制成功');
|
||||
return;
|
||||
|
||||
handleChange(value) {
|
||||
this.modelChange.emit(this.modelData);
|
||||
const emptyList = this.modelData.filter(isEmptyValue);
|
||||
if (emptyList.length === 0) {
|
||||
// * If has no empty line, then add a new line.
|
||||
this.modelData = this.modelData.concat([{ name: '', value: '', description: '' }]);
|
||||
}
|
||||
}
|
||||
|
||||
handleExpand(index: number | null = null) {
|
||||
if (index === null) {
|
||||
// * If every row data is expand then close all, other wise expand all.
|
||||
this.expandIndexList =
|
||||
this.expandIndexList.length === this.data.length
|
||||
? []
|
||||
: Array(this.data.length)
|
||||
.fill(null)
|
||||
.map((_, i) => i);
|
||||
return;
|
||||
}
|
||||
// * Handle single row data expand or close by index-cache array
|
||||
this.expandIndexList = this.expandIndexList.includes(index)
|
||||
? this.expandIndexList.filter((it) => it !== index)
|
||||
: this.expandIndexList.concat([index]);
|
||||
}
|
||||
|
||||
collapse(array: TreeNodeInterface[], data: TreeNodeInterface, $event: boolean): void {
|
||||
if (!$event) {
|
||||
data.children?.forEach((d) => {
|
||||
const target = array.find((a) => a.nodeKey === d.nodeKey)!;
|
||||
target.expand = false;
|
||||
this.collapse(array, target, false);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
convertTreeToList(root: TreeNodeInterface): TreeNodeInterface[] {
|
||||
const stack: TreeNodeInterface[] = [];
|
||||
const array: TreeNodeInterface[] = [];
|
||||
const hashMap = {};
|
||||
stack.push({ ...root, level: 0, expand: true });
|
||||
|
||||
while (stack.length !== 0) {
|
||||
const node = stack.pop()!;
|
||||
this.visitNode(node, hashMap, array);
|
||||
if (node.children) {
|
||||
for (let i = node.children.length - 1; i >= 0; i--) {
|
||||
stack.push({ ...node.children[i], level: node.level! + 1, expand: true, parent: node });
|
||||
}
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
visitNode(node: TreeNodeInterface, hashMap: { [nodeKey: string]: boolean }, array: TreeNodeInterface[]) {
|
||||
if (!hashMap[node.nodeKey]) {
|
||||
hashMap[node.nodeKey] = true;
|
||||
array.push(node);
|
||||
}
|
||||
}
|
||||
|
||||
// pushData(data) {
|
||||
// this.data = [...this.data, data];
|
||||
// console.log('loo');
|
||||
// this.listOfMapData.push(data);
|
||||
// this.listOfMapData?.forEach((item) => {
|
||||
// this.mapOfExpandedData[item.nodeKey] = this.convertTreeToList(item);
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
10
src/app/pages/env/env.component.html
vendored
10
src/app/pages/env/env.component.html
vendored
@ -43,10 +43,7 @@
|
||||
</nz-form-item>
|
||||
<p class="b-2">环境变量:在接口文档或测试的过程中,使用{{ varName }}即可引用该环境变量</p>
|
||||
<eo-table
|
||||
class="eo-block-container"
|
||||
#table
|
||||
[data]="envInfo.parameters"
|
||||
(dataChange)="handleTableChange($event)"
|
||||
[(model)]="envInfo.parameters"
|
||||
[columns]="envListColumns"
|
||||
>
|
||||
<ng-template cell="action" let-scope="scope" let-index="index">
|
||||
@ -54,7 +51,7 @@
|
||||
(click)="handleDeleteParams(index)"
|
||||
nz-icon
|
||||
nzType="delete"
|
||||
*ngIf="scope.name || scope.value"
|
||||
*ngIf="scope.name || scope.value || scope.description"
|
||||
nzTheme="fill"
|
||||
></i>
|
||||
</ng-template>
|
||||
@ -63,8 +60,7 @@
|
||||
</div>
|
||||
</section>
|
||||
<div *nzModalFooter class="footer">
|
||||
<button nz-button nzType="primary" *ngIf="envInfo.uuid === undefined" (click)="handleSaveEnv()">保存</button>
|
||||
<button nz-button nzType="primary" *ngIf="envInfo.uuid" (click)="handleUpdateEnv(activeUuid)">更新</button>
|
||||
<button nz-button nzType="primary" (click)="handleSaveEnv(activeUuid)">保存</button>
|
||||
<button nz-button nzType="default" (click)="handleCancel()">取消</button>
|
||||
</div>
|
||||
</nz-modal>
|
||||
|
34
src/app/pages/env/env.component.ts
vendored
34
src/app/pages/env/env.component.ts
vendored
@ -79,9 +79,7 @@ export class EnvComponent implements OnInit, OnDestroy {
|
||||
handleSwitchEnv(uuid) {
|
||||
// * switch env in menu on left sidebar
|
||||
this.envService.load(uuid).subscribe((result: Environment) => {
|
||||
const { parameters, ...other } = result;
|
||||
const list = JSON.parse(JSON.stringify(parameters));
|
||||
this.envInfo = { ...other, parameters: [...list, { name: '', value: '', description: '' }] };
|
||||
this.envInfo = result;
|
||||
});
|
||||
this.activeUuid = uuid;
|
||||
}
|
||||
@ -92,12 +90,12 @@ export class EnvComponent implements OnInit, OnDestroy {
|
||||
projectID: pid || uid(),
|
||||
name: '',
|
||||
hostUri: '',
|
||||
parameters: [{ name: '', value: '', description: '' }],
|
||||
parameters: [],
|
||||
};
|
||||
this.activeUuid = null;
|
||||
}
|
||||
|
||||
handleSaveEnv() {
|
||||
handleSaveEnv(uuid: string | number | undefined = undefined) {
|
||||
// * update list after call save api
|
||||
const { parameters, name, ...other } = this.envInfo;
|
||||
if (!name) {
|
||||
@ -105,7 +103,14 @@ export class EnvComponent implements OnInit, OnDestroy {
|
||||
return;
|
||||
}
|
||||
const data = parameters.filter((it) => it.name && it.value);
|
||||
if (uuid) {
|
||||
this.envService.update({ ...other, name, parameters: data }, uuid).subscribe((result: Environment) => {
|
||||
this.message.success('编辑成功');
|
||||
this.getAllEnv();
|
||||
});
|
||||
}
|
||||
this.envService.create({ ...other, name, parameters: data }).subscribe((result: Environment) => {
|
||||
this.message.success('新增成功');
|
||||
this.envInfo = result;
|
||||
this.activeUuid = Number(result.uuid);
|
||||
this.handleSwitchEnv(result.uuid);
|
||||
@ -113,25 +118,6 @@ export class EnvComponent implements OnInit, OnDestroy {
|
||||
});
|
||||
}
|
||||
|
||||
handleTableChange(data) {
|
||||
const list = data.filter((it) => it.name || it.value || it.description);
|
||||
this.envInfo.parameters = [...list, { name: '', value: '', description: '' }];
|
||||
}
|
||||
|
||||
handleUpdateEnv(uuid: string | number) {
|
||||
// * update env
|
||||
const { parameters, name, ...other } = this.envInfo;
|
||||
if (!name) {
|
||||
this.message.error('Name is not allowed to be empty.');
|
||||
return;
|
||||
}
|
||||
const data = parameters.filter((it) => it.name && it.value);
|
||||
this.envService.update({ ...other, name, parameters: data }, uuid).subscribe((result: Environment) => {
|
||||
this.message.success('Save suceess');
|
||||
this.getAllEnv();
|
||||
});
|
||||
}
|
||||
|
||||
handleCancel(): void {
|
||||
this.isVisible = false;
|
||||
this.envList = [];
|
||||
|
@ -1,6 +1,5 @@
|
||||
export const uuid = (): string => Math.random().toString(36).slice(-8);
|
||||
|
||||
|
||||
// const DOMAIN_REGEX =
|
||||
// '(^((http|wss|ws|ftp|https)://))|(^(((http|wss|ws|ftp|https)://)|)(([\\w\\-_]+([\\w\\-\\.]*)?(\\.(' +
|
||||
// DOMAIN_CONSTANT.join('|') +
|
||||
@ -69,4 +68,9 @@ export const objectToArray = (obj) => {
|
||||
}));
|
||||
};
|
||||
|
||||
|
||||
export const isEmptyValue = (obj) => {
|
||||
const list = Object.keys(obj);
|
||||
const emptyList = list.filter((it) => !obj[it]);
|
||||
// * If they length are equal, means each value of obj is empty. like { name: '', value: '' }
|
||||
return emptyList.length === list.length;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user