diff --git a/Build/.eslintrc.json b/Build/.eslintrc.json index 8509abec333f6b002f0255db4287d61d8bb4f552..8a6cdb5027b6dca7ae669245a7f4d01ae3484f09 100644 --- a/Build/.eslintrc.json +++ b/Build/.eslintrc.json @@ -70,6 +70,30 @@ "no-multi-spaces": "error", "no-var": "error", "no-case-declarations": "off", + "no-restricted-properties": [ + "error", + { + "object": "window", + "property": "jQuery", + "message": "Use `import jQuery from 'jquery'` instead." + }, + { + "object": "window", + "property": "$", + "message": "Use `import $ from 'jquery'` instead." + } + ], + "no-restricted-globals": [ + "error", + { + "name": "jQuery", + "message": "Use `import jQuery from 'jquery'` instead." + }, + { + "name": "$", + "message": "Use `import $ from 'jquery'` instead." + } + ], "object-curly-spacing": [ "error", "always" diff --git a/Build/Sources/TypeScript/install/module/upgrade/upgrade-docs.ts b/Build/Sources/TypeScript/install/module/upgrade/upgrade-docs.ts index 7425dda48cc4119d5616d35acf5ce70698235920..65eccdbfd1e4b5094a0483cf628205507670b466 100644 --- a/Build/Sources/TypeScript/install/module/upgrade/upgrade-docs.ts +++ b/Build/Sources/TypeScript/install/module/upgrade/upgrade-docs.ts @@ -205,7 +205,7 @@ class UpgradeDocs extends AbstractInteractableModule { if (this.currentModal.find('.panel-version .panel-collapse.collapsing').length === 0) { // Bootstrap doesn't offer promises to check whether all panels are collapsed, so we need a helper to do // something similar - $items.removeClass('hidden', 'searchhit filterhit'); + $items.removeClass('hidden searchhit filterhit'); } }); $expandedPanels.collapse('hide'); diff --git a/Build/package-lock.json b/Build/package-lock.json index 4cca4e8c6f9fc7df97df6525380e5f3f203b11fe..d9b358f065bff145337d053922ca3d3c0fbc82a9 100644 --- a/Build/package-lock.json +++ b/Build/package-lock.json @@ -7,7 +7,6 @@ "": { "name": "typo3-cms", "version": "11.0.0-dev", - "hasInstallScript": true, "license": "GPL-2.0+", "dependencies": { "@ckeditor/ckeditor5-alignment": "^38.1.0", @@ -104,7 +103,6 @@ "@types/d3-selection": "^3.0.4", "@types/jasmine": "^4.3.0", "@types/jquery": "2.0.47", - "@types/jqueryui": "^1.12.13", "@types/luxon": "^3.1.0", "@types/nprogress": "^0.2.0", "@types/requirejs": "^2.1.32", @@ -142,7 +140,6 @@ "karma-rollup-preprocessor": "^7.0.8", "lintspaces-cli": "^0.8.0", "mime-db": "^1.46.0", - "patch-package": "^6.5.1", "pofile": "^1.1.4", "postcss-banner": "^4.0.1", "postcss-clean": "^1.2.2", @@ -2344,26 +2341,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/jqueryui": { - "version": "1.12.13", - "resolved": "https://registry.npmjs.org/@types/jqueryui/-/jqueryui-1.12.13.tgz", - "integrity": "sha512-IIOytTkwN6mBcJqi5SP8T8zqDGKy9hIpifQ0aGj1/ZjqshOoMo0yZdLp2uLIg7mQDJOwMCSC3EY1QZC/qZzvLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/jquery": "*" - } - }, - "node_modules/@types/jqueryui/node_modules/@types/jquery": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.3.tgz", - "integrity": "sha512-IENpHTjGksr2wQS6ZO8eMIE0tIB22Ywg+n3/yAWCa56VSZ26phcwAbFdh9+VNUWk7e83qB27QLax3Rf4G92Y9A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/sizzle": "*" - } - }, "node_modules/@types/json-schema": { "version": "7.0.9", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz", @@ -2891,13 +2868,6 @@ "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "peer": true }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -3129,15 +3099,6 @@ "dev": true, "license": "MIT" }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/autoprefixer": { "version": "10.4.14", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.14.tgz", @@ -3719,13 +3680,6 @@ "node": ">=6.0" } }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true, - "license": "MIT" - }, "node_modules/ckeditor5": { "version": "38.1.0", "resolved": "https://registry.npmjs.org/ckeditor5/-/ckeditor5-38.1.0.tgz", @@ -4015,23 +3969,6 @@ "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.13.tgz", "integrity": "sha512-by7jKAo73y5/Do0K6sxdTKHgndY0NMjG2bEdgeJxycbcmHuCiMXqw8sxy5C5Y5WTOTcDGmbT7Sr5CgKOXR06OA==" }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, "node_modules/css-color-list": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/css-color-list/-/css-color-list-0.0.2.tgz", @@ -5503,15 +5440,6 @@ "node": ">=8" } }, - "node_modules/find-yarn-workspace-root": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz", - "integrity": "sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ==", - "dev": true, - "dependencies": { - "micromatch": "^4.0.2" - } - }, "node_modules/findup-sync": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz", @@ -5640,42 +5568,6 @@ "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", "dev": true }, - "node_modules/fs-extra": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", - "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", - "dev": true, - "dependencies": { - "at-least-node": "^1.0.0", - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/fs-extra/node_modules/jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "dependencies": { - "universalify": "^2.0.0" - }, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/fs-extra/node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true, - "engines": { - "node": ">= 10.0.0" - } - }, "node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", @@ -6843,19 +6735,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, "node_modules/is-core-module": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", @@ -6867,21 +6746,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -7017,18 +6881,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", @@ -7410,16 +7262,6 @@ "node": ">=0.10.0" } }, - "node_modules/klaw-sync": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/klaw-sync/-/klaw-sync-6.0.0.tgz", - "integrity": "sha512-nIeuVSzdCCs6TDPTqI8w1Yre34sSq7AkZ4B3sfOBbI2CgVSB4Du4aLQijFU2+lhAFCwt9+42Hel6lQNIv6AntQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "graceful-fs": "^4.1.11" - } - }, "node_modules/klona": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", @@ -8248,13 +8090,6 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "peer": true }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true, - "license": "MIT" - }, "node_modules/node-abi": { "version": "3.31.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.31.0.tgz", @@ -8476,22 +8311,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/optionator": { "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", @@ -8719,87 +8538,6 @@ "node": ">= 0.8" } }, - "node_modules/patch-package": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/patch-package/-/patch-package-6.5.1.tgz", - "integrity": "sha512-I/4Zsalfhc6bphmJTlrLoOcAF87jcxko4q0qsv4bGcurbr8IskEOtdnt9iCmsQVGL1B+iUhSQqweyTLJfCF9rA==", - "dev": true, - "dependencies": { - "@yarnpkg/lockfile": "^1.1.0", - "chalk": "^4.1.2", - "cross-spawn": "^6.0.5", - "find-yarn-workspace-root": "^2.0.0", - "fs-extra": "^9.0.0", - "is-ci": "^2.0.0", - "klaw-sync": "^6.0.0", - "minimist": "^1.2.6", - "open": "^7.4.2", - "rimraf": "^2.6.3", - "semver": "^5.6.0", - "slash": "^2.0.0", - "tmp": "^0.0.33", - "yaml": "^1.10.2" - }, - "bin": { - "patch-package": "index.js" - }, - "engines": { - "node": ">=10", - "npm": ">5" - } - }, - "node_modules/patch-package/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/patch-package/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/patch-package/node_modules/slash": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", - "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/patch-package/node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -8817,16 +8555,6 @@ "node": ">=0.10.0" } }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -10492,29 +10220,6 @@ "node": ">=10" } }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/shelljs": { "version": "0.8.5", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", diff --git a/Build/package.json b/Build/package.json index 44a77fdf75bd332a4f5b859c173477903660f9c6..7def733f28be6e07d4c45514724633d4be460637 100644 --- a/Build/package.json +++ b/Build/package.json @@ -24,7 +24,6 @@ "@types/d3-selection": "^3.0.4", "@types/jasmine": "^4.3.0", "@types/jquery": "2.0.47", - "@types/jqueryui": "^1.12.13", "@types/luxon": "^3.1.0", "@types/nprogress": "^0.2.0", "@types/requirejs": "^2.1.32", @@ -62,7 +61,6 @@ "karma-rollup-preprocessor": "^7.0.8", "lintspaces-cli": "^0.8.0", "mime-db": "^1.46.0", - "patch-package": "^6.5.1", "pofile": "^1.1.4", "postcss-banner": "^4.0.1", "postcss-clean": "^1.2.2", @@ -85,8 +83,7 @@ "build-js": "./node_modules/.bin/grunt scripts", "build-flags": "./node_modules/.bin/grunt flags-build", "update": "./node_modules/.bin/grunt update", - "lint": "./node_modules/.bin/grunt lint", - "postinstall": "patch-package" + "lint": "./node_modules/.bin/grunt lint" }, "dependencies": { "@ckeditor/ckeditor5-alignment": "^38.1.0", diff --git a/Build/patches/@types+jquery+2.0.47.patch b/Build/patches/@types+jquery+2.0.47.patch deleted file mode 100644 index fd85f6786ff4c30d2bb38f2afc00e0008a249396..0000000000000000000000000000000000000000 --- a/Build/patches/@types+jquery+2.0.47.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/node_modules/@types/jquery/index.d.ts b/node_modules/@types/jquery/index.d.ts -index b01e4ce..153d4c3 100644 ---- a/node_modules/@types/jquery/index.d.ts -+++ b/node_modules/@types/jquery/index.d.ts -@@ -3819,7 +3819,6 @@ interface JQuery { - extend(object: { [method: string]: (...args: any[]) => any; }): JQuery; - } - declare module "jquery" { -+ var $: JQueryStatic; - export = $; - } --declare var jQuery: JQueryStatic; --declare var $: JQueryStatic; diff --git a/Build/tsconfig.json b/Build/tsconfig.json index b73d4193a4e9b71b5a73ab5b243ff3049514a78d..9d9a640ff8d26078a3bf2dee4fbb525879d5d525 100644 --- a/Build/tsconfig.json +++ b/Build/tsconfig.json @@ -100,7 +100,6 @@ "d3-selection", "jasmine", "jquery", - "jqueryui", "bootstrap", "nprogress", "requirejs", diff --git a/typo3/sysext/install/Resources/Public/JavaScript/module/upgrade/upgrade-docs.js b/typo3/sysext/install/Resources/Public/JavaScript/module/upgrade/upgrade-docs.js index 569fab24cafe8b2df9f96125a3ac0a3b04485cd5..542a3c340c8eef283ef4afca2b6b5a6cbe32a3dc 100644 --- a/typo3/sysext/install/Resources/Public/JavaScript/module/upgrade/upgrade-docs.js +++ b/typo3/sysext/install/Resources/Public/JavaScript/module/upgrade/upgrade-docs.js @@ -10,4 +10,4 @@ * * The TYPO3 project - inspiring people to share! */ -import"bootstrap";import $ from"jquery";import"@typo3/install/renderable/clearable.js";import{AbstractInteractableModule}from"@typo3/install/module/abstract-interactable-module.js";import Notification from"@typo3/backend/notification.js";import AjaxRequest from"@typo3/core/ajax/ajax-request.js";import{topLevelModuleImport}from"@typo3/backend/utility/top-level-module-import.js";import Router from"@typo3/install/router.js";import DebounceEvent from"@typo3/core/event/debounce-event.js";import"@typo3/backend/element/icon-element.js";class UpgradeDocs extends AbstractInteractableModule{constructor(){super(...arguments),this.selectorFulltextSearch=".t3js-upgradeDocs-fulltext-search",this.selectorChosenField=".t3js-upgradeDocs-chosen-select",this.selectorChangeLogsForVersionContainer=".t3js-version-changes",this.selectorChangeLogsForVersion=".t3js-changelog-list",this.selectorUpgradeDoc=".t3js-upgrade-doc"}initialize(e){this.currentModal=e;window.location!==window.parent.location?topLevelModuleImport("@typo3/install/chosen.jquery.min.js").then((()=>{this.getContent()})):import("@typo3/install/chosen.jquery.min.js").then((()=>{this.getContent()})),e.on("click",".t3js-upgradeDocs-markRead",(e=>{this.markRead(e.target)})),e.on("click",".t3js-upgradeDocs-unmarkRead",(e=>{this.unmarkRead(e.target)})),$.expr[":"].contains=$.expr.createPseudo((e=>t=>$(t).text().toUpperCase().includes(e.toUpperCase())))}getContent(){const e=this.getModalBody();new AjaxRequest(Router.getUrl("upgradeDocsGetContent")).get({cache:"no-cache"}).then((async t=>{const o=await t.resolve();!0===o.success&&"undefined"!==o.html&&o.html.length>0&&(e.empty().append(o.html),this.initializeFullTextSearch(),this.initializeChosenSelector(),this.loadChangelogs())}),(t=>{Router.handleAjaxError(t,e)}))}loadChangelogs(){const e=[],t=this.getModalBody();this.findInModal(this.selectorChangeLogsForVersionContainer).each(((o,s)=>{const a=new AjaxRequest(Router.getUrl("upgradeDocsGetChangelogForVersion")).withQueryArguments({install:{version:s.dataset.version}}).get({cache:"no-cache"}).then((async e=>{const t=await e.resolve();if(!0===t.success){const e=$(s),o=e.find(this.selectorChangeLogsForVersion);o.html(t.html),this.moveNotRelevantDocuments(o),e.find(".t3js-panel-loading").remove()}else Notification.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")}),(e=>{Router.handleAjaxError(e,t)}));e.push(a)})),Promise.all(e).then((()=>{this.fulltextSearchField.prop("disabled",!1),this.appendItemsToChosenSelector()}))}initializeFullTextSearch(){this.fulltextSearchField=this.findInModal(this.selectorFulltextSearch);const e=this.fulltextSearchField.get(0);e.clearable({onClear:()=>{this.combinedFilterSearch()}}),e.focus(),new DebounceEvent("keyup",(()=>{this.combinedFilterSearch()})).bindTo(e)}initializeChosenSelector(){this.chosenField=this.getModalBody().find(this.selectorChosenField);const e={".chosen-select":{width:"100%",placeholder_text_multiple:"tags"},".chosen-select-deselect":{allow_single_deselect:!0},".chosen-select-no-single":{disable_search_threshold:10},".chosen-select-no-results":{no_results_text:"Oops, nothing found!"},".chosen-select-width":{width:"100%"}};for(const t in e)t in e&&this.findInModal(t).chosen(e[t]);this.chosenField.on("change",(()=>{this.combinedFilterSearch()}))}appendItemsToChosenSelector(){let e="";$(this.findInModal(this.selectorUpgradeDoc)).each(((t,o)=>{e+=$(o).data("item-tags")+","}));const t=[...new Set(e.slice(0,-1).split(",")).values()].reduce(((e,t)=>{const o=t.toLowerCase();return e.every((e=>e.toLowerCase()!==o))&&e.push(t),e}),[]).sort(((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())));this.chosenField.prop("disabled",!1);for(const e of t)this.chosenField.append($("<option>").text(e));this.chosenField.trigger("chosen:updated")}combinedFilterSearch(){const e=this.getModalBody(),t=e.find(this.selectorUpgradeDoc);if(this.chosenField.val().length<1&&this.fulltextSearchField.val().length<1){const e=this.currentModal.find(".panel-version .panel-collapse.show");return e.one("hidden.bs.collapse",(()=>{0===this.currentModal.find(".panel-version .panel-collapse.collapsing").length&&t.removeClass("hidden","searchhit filterhit")})),void e.collapse("hide")}if(t.removeClass("searchhit filterhit"),this.chosenField.val().length>0){t.addClass("hidden").removeClass("filterhit");const o=this.chosenField.val().map((e=>'[data-item-tags*="'+e+'"]')).join("");e.find(o).removeClass("hidden").addClass("searchhit filterhit")}else t.addClass("filterhit").removeClass("hidden");const o=this.fulltextSearchField.val();e.find(".filterhit").each(((e,t)=>{const s=$(t);$(":contains("+o+")",s).length>0||$('input[value*="'+o+'"]',s).length>0?s.removeClass("hidden").addClass("searchhit"):s.removeClass("searchhit").addClass("hidden")})),e.find(".searchhit").closest(".panel-collapse").each(((e,t)=>{window.setTimeout((()=>{$(t).collapse("show")}),20)})),e.find(".panel-version").each(((e,t)=>{const o=$(t);o.find(".searchhit, .filterhit").length<1&&o.find(" > .panel-collapse").collapse("hide")}))}moveNotRelevantDocuments(e){e.find('[data-item-state="read"]').appendTo(this.findInModal(".panel-body-read")),e.find('[data-item-state="notAffected"]').appendTo(this.findInModal(".panel-body-not-affected"))}markRead(e){const t=this.getModalBody(),o=this.getModuleContent().data("upgrade-docs-mark-read-token"),s=$(e).closest("button");s.toggleClass("t3js-upgradeDocs-unmarkRead t3js-upgradeDocs-markRead"),s.find("typo3-backend-icon,.t3js-icon").replaceWith('<typo3-backend-icon identifier="actions-ban" size="small"></typo3-backend-icon>'),s.closest(".panel").appendTo(this.findInModal(".panel-body-read")),new AjaxRequest(Router.getUrl()).post({install:{ignoreFile:s.data("filepath"),token:o,action:"upgradeDocsMarkRead"}}).catch((e=>{Router.handleAjaxError(e,t)}))}unmarkRead(e){const t=this.getModalBody(),o=this.getModuleContent().data("upgrade-docs-unmark-read-token"),s=$(e).closest("button"),a=s.closest(".panel").data("item-version");s.toggleClass("t3js-upgradeDocs-markRead t3js-upgradeDocs-unmarkRead"),s.find("typo3-backend-icon,.t3js-icon").replaceWith('<typo3-backend-icon identifier="actions-check" size="small"></typo3-backend-icon>'),s.closest(".panel").appendTo(this.findInModal('*[data-group-version="'+a+'"] .panel-body')),new AjaxRequest(Router.getUrl()).post({install:{ignoreFile:s.data("filepath"),token:o,action:"upgradeDocsUnmarkRead"}}).catch((e=>{Router.handleAjaxError(e,t)}))}}export default new UpgradeDocs; \ No newline at end of file +import"bootstrap";import $ from"jquery";import"@typo3/install/renderable/clearable.js";import{AbstractInteractableModule}from"@typo3/install/module/abstract-interactable-module.js";import Notification from"@typo3/backend/notification.js";import AjaxRequest from"@typo3/core/ajax/ajax-request.js";import{topLevelModuleImport}from"@typo3/backend/utility/top-level-module-import.js";import Router from"@typo3/install/router.js";import DebounceEvent from"@typo3/core/event/debounce-event.js";import"@typo3/backend/element/icon-element.js";class UpgradeDocs extends AbstractInteractableModule{constructor(){super(...arguments),this.selectorFulltextSearch=".t3js-upgradeDocs-fulltext-search",this.selectorChosenField=".t3js-upgradeDocs-chosen-select",this.selectorChangeLogsForVersionContainer=".t3js-version-changes",this.selectorChangeLogsForVersion=".t3js-changelog-list",this.selectorUpgradeDoc=".t3js-upgrade-doc"}initialize(e){this.currentModal=e;window.location!==window.parent.location?topLevelModuleImport("@typo3/install/chosen.jquery.min.js").then((()=>{this.getContent()})):import("@typo3/install/chosen.jquery.min.js").then((()=>{this.getContent()})),e.on("click",".t3js-upgradeDocs-markRead",(e=>{this.markRead(e.target)})),e.on("click",".t3js-upgradeDocs-unmarkRead",(e=>{this.unmarkRead(e.target)})),$.expr[":"].contains=$.expr.createPseudo((e=>t=>$(t).text().toUpperCase().includes(e.toUpperCase())))}getContent(){const e=this.getModalBody();new AjaxRequest(Router.getUrl("upgradeDocsGetContent")).get({cache:"no-cache"}).then((async t=>{const o=await t.resolve();!0===o.success&&"undefined"!==o.html&&o.html.length>0&&(e.empty().append(o.html),this.initializeFullTextSearch(),this.initializeChosenSelector(),this.loadChangelogs())}),(t=>{Router.handleAjaxError(t,e)}))}loadChangelogs(){const e=[],t=this.getModalBody();this.findInModal(this.selectorChangeLogsForVersionContainer).each(((o,s)=>{const a=new AjaxRequest(Router.getUrl("upgradeDocsGetChangelogForVersion")).withQueryArguments({install:{version:s.dataset.version}}).get({cache:"no-cache"}).then((async e=>{const t=await e.resolve();if(!0===t.success){const e=$(s),o=e.find(this.selectorChangeLogsForVersion);o.html(t.html),this.moveNotRelevantDocuments(o),e.find(".t3js-panel-loading").remove()}else Notification.error("Something went wrong","The request was not processed successfully. Please check the browser's console and TYPO3's log.")}),(e=>{Router.handleAjaxError(e,t)}));e.push(a)})),Promise.all(e).then((()=>{this.fulltextSearchField.prop("disabled",!1),this.appendItemsToChosenSelector()}))}initializeFullTextSearch(){this.fulltextSearchField=this.findInModal(this.selectorFulltextSearch);const e=this.fulltextSearchField.get(0);e.clearable({onClear:()=>{this.combinedFilterSearch()}}),e.focus(),new DebounceEvent("keyup",(()=>{this.combinedFilterSearch()})).bindTo(e)}initializeChosenSelector(){this.chosenField=this.getModalBody().find(this.selectorChosenField);const e={".chosen-select":{width:"100%",placeholder_text_multiple:"tags"},".chosen-select-deselect":{allow_single_deselect:!0},".chosen-select-no-single":{disable_search_threshold:10},".chosen-select-no-results":{no_results_text:"Oops, nothing found!"},".chosen-select-width":{width:"100%"}};for(const t in e)t in e&&this.findInModal(t).chosen(e[t]);this.chosenField.on("change",(()=>{this.combinedFilterSearch()}))}appendItemsToChosenSelector(){let e="";$(this.findInModal(this.selectorUpgradeDoc)).each(((t,o)=>{e+=$(o).data("item-tags")+","}));const t=[...new Set(e.slice(0,-1).split(",")).values()].reduce(((e,t)=>{const o=t.toLowerCase();return e.every((e=>e.toLowerCase()!==o))&&e.push(t),e}),[]).sort(((e,t)=>e.toLowerCase().localeCompare(t.toLowerCase())));this.chosenField.prop("disabled",!1);for(const e of t)this.chosenField.append($("<option>").text(e));this.chosenField.trigger("chosen:updated")}combinedFilterSearch(){const e=this.getModalBody(),t=e.find(this.selectorUpgradeDoc);if(this.chosenField.val().length<1&&this.fulltextSearchField.val().length<1){const e=this.currentModal.find(".panel-version .panel-collapse.show");return e.one("hidden.bs.collapse",(()=>{0===this.currentModal.find(".panel-version .panel-collapse.collapsing").length&&t.removeClass("hidden searchhit filterhit")})),void e.collapse("hide")}if(t.removeClass("searchhit filterhit"),this.chosenField.val().length>0){t.addClass("hidden").removeClass("filterhit");const o=this.chosenField.val().map((e=>'[data-item-tags*="'+e+'"]')).join("");e.find(o).removeClass("hidden").addClass("searchhit filterhit")}else t.addClass("filterhit").removeClass("hidden");const o=this.fulltextSearchField.val();e.find(".filterhit").each(((e,t)=>{const s=$(t);$(":contains("+o+")",s).length>0||$('input[value*="'+o+'"]',s).length>0?s.removeClass("hidden").addClass("searchhit"):s.removeClass("searchhit").addClass("hidden")})),e.find(".searchhit").closest(".panel-collapse").each(((e,t)=>{window.setTimeout((()=>{$(t).collapse("show")}),20)})),e.find(".panel-version").each(((e,t)=>{const o=$(t);o.find(".searchhit, .filterhit").length<1&&o.find(" > .panel-collapse").collapse("hide")}))}moveNotRelevantDocuments(e){e.find('[data-item-state="read"]').appendTo(this.findInModal(".panel-body-read")),e.find('[data-item-state="notAffected"]').appendTo(this.findInModal(".panel-body-not-affected"))}markRead(e){const t=this.getModalBody(),o=this.getModuleContent().data("upgrade-docs-mark-read-token"),s=$(e).closest("button");s.toggleClass("t3js-upgradeDocs-unmarkRead t3js-upgradeDocs-markRead"),s.find("typo3-backend-icon,.t3js-icon").replaceWith('<typo3-backend-icon identifier="actions-ban" size="small"></typo3-backend-icon>'),s.closest(".panel").appendTo(this.findInModal(".panel-body-read")),new AjaxRequest(Router.getUrl()).post({install:{ignoreFile:s.data("filepath"),token:o,action:"upgradeDocsMarkRead"}}).catch((e=>{Router.handleAjaxError(e,t)}))}unmarkRead(e){const t=this.getModalBody(),o=this.getModuleContent().data("upgrade-docs-unmark-read-token"),s=$(e).closest("button"),a=s.closest(".panel").data("item-version");s.toggleClass("t3js-upgradeDocs-markRead t3js-upgradeDocs-unmarkRead"),s.find("typo3-backend-icon,.t3js-icon").replaceWith('<typo3-backend-icon identifier="actions-check" size="small"></typo3-backend-icon>'),s.closest(".panel").appendTo(this.findInModal('*[data-group-version="'+a+'"] .panel-body')),new AjaxRequest(Router.getUrl()).post({install:{ignoreFile:s.data("filepath"),token:o,action:"upgradeDocsUnmarkRead"}}).catch((e=>{Router.handleAjaxError(e,t)}))}}export default new UpgradeDocs; \ No newline at end of file