diff --git a/UI/DefaultGUI.ts b/UI/DefaultGUI.ts index 3d0e2cacd..095040c63 100644 --- a/UI/DefaultGUI.ts +++ b/UI/DefaultGUI.ts @@ -33,27 +33,30 @@ import ExtraLinkButton from "./BigComponents/ExtraLinkButton"; * Adds a welcome pane, contorl buttons, ... etc to index.html */ export default class DefaultGUI { - private readonly _guiState: DefaultGuiState; + private readonly guiState: DefaultGuiState; private readonly state: FeaturePipelineState; constructor(state: FeaturePipelineState, guiState: DefaultGuiState) { this.state = state; - this._guiState = guiState; + this.guiState = guiState; - if (state.layoutToUse.customCss !== undefined) { - Utils.LoadCustomCss(state.layoutToUse.customCss); + } + + public setup(){ + if (this.state.layoutToUse.customCss !== undefined) { + Utils.LoadCustomCss(this.state.layoutToUse.customCss); } this.SetupUIElements(); this.SetupMap() - if (state.layoutToUse.customCss !== undefined && window.location.pathname.indexOf("index") >= 0) { - Utils.LoadCustomCss(state.layoutToUse.customCss) + if (this.state.layoutToUse.customCss !== undefined && window.location.pathname.indexOf("index") >= 0) { + Utils.LoadCustomCss(this.state.layoutToUse.customCss) } } - + public setupClickDialogOnMap(filterViewIsOpened: UIEventSource, state: FeaturePipelineState) { const hasPresets = state.layoutToUse.layers.some(layer => layer.presets.length > 0); @@ -125,7 +128,7 @@ export default class DefaultGUI { private SetupMap() { const state = this.state; - const guiState = this._guiState; + const guiState = this.guiState; // Attach the map state.mainMapObject.SetClass("w-full h-full") @@ -155,7 +158,7 @@ export default class DefaultGUI { private SetupUIElements() { const state = this.state; - const guiState = this._guiState; + const guiState = this.guiState; const self = this new Combine([ @@ -210,8 +213,8 @@ export default class DefaultGUI { } private InitWelcomeMessage(): BaseUIElement { - const isOpened = this._guiState.welcomeMessageIsOpened - const fullOptions = new FullWelcomePaneWithTabs(isOpened, this._guiState.welcomeMessageOpenedTab, this.state); + const isOpened = this.guiState.welcomeMessageIsOpened + const fullOptions = new FullWelcomePaneWithTabs(isOpened, this.guiState.welcomeMessageOpenedTab, this.state); // ?-Button on Desktop, opens panel with close-X. const help = new MapControlButton(Svg.help_svg()); diff --git a/index.ts b/index.ts index ac7502261..355eb5e93 100644 --- a/index.ts +++ b/index.ts @@ -36,7 +36,7 @@ class Init { // This 'leaks' the global state via the window object, useful for debugging // @ts-ignore window.mapcomplete_state = State.state; - new DefaultGUI(State.state, guiState) + new DefaultGUI(State.state, guiState).setup() } } diff --git a/package-lock.json b/package-lock.json index 75394936b..34bf3624d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,7 +26,7 @@ "@types/wikidata-sdk": "^6.1.0", "@types/xml2js": "^0.4.9", "country-language": "^0.1.7", - "doctest-ts-improved": "^0.8.5", + "doctest-ts-improved": "^0.8.6", "email-validator": "^2.0.4", "escape-html": "^1.0.3", "geojson2svg": "^1.3.1", @@ -6024,14 +6024,15 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "node_modules/doctest-ts-improved": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/doctest-ts-improved/-/doctest-ts-improved-0.8.5.tgz", - "integrity": "sha512-4zU8fQV263CU3jAi+K7xohhT9b2ZDGw20M4O7AgzW1IoKklmNkSlHMoKZX6gqN1DAouo08R+MD5aSgACG5ILRw==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/doctest-ts-improved/-/doctest-ts-improved-0.8.6.tgz", + "integrity": "sha512-J7fXMJ29ve6DUsUHKEO5bOwGmYjhNZd88L7NMVDKIiLIiUCJ9zkR2k7IZOGjMC0RXw/q788REawcMUgIj+7Muw==", "dependencies": { "@types/chai": "^4.3.0", "chai": "^4.3.6", "global": "^4.3.2", "mocha": "^9.2.2", + "process-yargs-parser": "^2.1.0", "typescript": "^4.6.2" }, "bin": { @@ -12326,6 +12327,11 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "node_modules/process-yargs-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/process-yargs-parser/-/process-yargs-parser-2.1.0.tgz", + "integrity": "sha512-tzMsZn3lKksICtEhICR/k+Qv1UmQNVtzm0FaL10OiGJtw0ixgw0woNefcREDc6ZjqXOKBSruRagyULuwZ4FK4Q==" + }, "node_modules/prompt-sync": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/prompt-sync/-/prompt-sync-4.2.0.tgz", @@ -21413,14 +21419,15 @@ "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==" }, "doctest-ts-improved": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/doctest-ts-improved/-/doctest-ts-improved-0.8.5.tgz", - "integrity": "sha512-4zU8fQV263CU3jAi+K7xohhT9b2ZDGw20M4O7AgzW1IoKklmNkSlHMoKZX6gqN1DAouo08R+MD5aSgACG5ILRw==", + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/doctest-ts-improved/-/doctest-ts-improved-0.8.6.tgz", + "integrity": "sha512-J7fXMJ29ve6DUsUHKEO5bOwGmYjhNZd88L7NMVDKIiLIiUCJ9zkR2k7IZOGjMC0RXw/q788REawcMUgIj+7Muw==", "requires": { "@types/chai": "^4.3.0", "chai": "^4.3.6", "global": "^4.3.2", "mocha": "^9.2.2", + "process-yargs-parser": "^2.1.0", "typescript": "^4.6.2" }, "dependencies": { @@ -26306,6 +26313,11 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "process-yargs-parser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/process-yargs-parser/-/process-yargs-parser-2.1.0.tgz", + "integrity": "sha512-tzMsZn3lKksICtEhICR/k+Qv1UmQNVtzm0FaL10OiGJtw0ixgw0woNefcREDc6ZjqXOKBSruRagyULuwZ4FK4Q==" + }, "prompt-sync": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/prompt-sync/-/prompt-sync-4.2.0.tgz", diff --git a/package.json b/package.json index 038b46def..8a84395bc 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "strttest": "export NODE_OPTIONS=--max_old_space_size=8364 && parcel serve test.html", "watch:css": "tailwindcss -i index.css -o css/index-tailwind-output.css --watch", "generate:css": "tailwindcss -i index.css -o css/index-tailwind-output.css", - "generate:doctests": "doctest-ts-improved .", + "generate:doctests": "doctest-ts-improved . --ignore .*.spec.ts --ignore .*ConfigJson.ts", "test:run-only": "mocha --require ts-node/register --require test/testhooks.ts \"./**/*.doctest.ts\" \"test/*\" \"test/**/*.ts\"", "test": "(npm run generate:doctests 2>&1 | grep -v \"No doctests found in\") && npm run test:run-only && npm run clean:tests", "init": "npm ci && npm run generate && npm run generate:editor-layer-index && npm run generate:layouts && npm run clean", @@ -72,7 +72,7 @@ "@types/wikidata-sdk": "^6.1.0", "@types/xml2js": "^0.4.9", "country-language": "^0.1.7", - "doctest-ts-improved": "^0.8.5", + "doctest-ts-improved": "^0.8.6", "email-validator": "^2.0.4", "escape-html": "^1.0.3", "geojson2svg": "^1.3.1", diff --git a/tslint.json b/tslint.json new file mode 100644 index 000000000..0cd44d383 --- /dev/null +++ b/tslint.json @@ -0,0 +1,72 @@ +{ + "rules": { + "class-name": false, + "comment-format": [ + true + ], + "curly": false, + "eofline": false, + "forin": false, + "indent": [ + true, + "spaces" + ], + "label-position": true, + "max-line-length": false, + "member-access": false, + "member-ordering": [ + true, + "static-after-instance", + "variables-before-functions" + ], + "no-arg": true, + "no-bitwise": false, + "no-console": false, + "no-construct": true, + "no-debugger": true, + "no-duplicate-variable": true, + "no-empty": false, + "no-eval": true, + "no-inferrable-types": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unused-expression": true, + "no-use-before-declare": false, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "quotemark": false, + "radix": true, + "semicolon": [ + "always" + ], + "triple-equals": [], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ] + } +}