diff --git a/CHANGELOG.md b/CHANGELOG.md index d16aecb..a9f9185 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## 2.5.7 +* Fix rendering visual when scroll is enabled. Fix scroll arrows not being clicked +* Remove range header font size restrictions +* Downgrade to API 5.9.0 + +## 2.5.6 +* Fix ignoring filters when "Force selection" is enabled. "Force selection" will automatically disable if filters select another period +* Add labels toggle switches to allow users to customize which labels to show +* Fix week granularity label. Previously it showed 'Year 5 - 2014, Q1 Jan' instead of 'Week 5 - 2014, Q1 Jan' + +## 2.5.5 +* Add toggle 'Treat as end of fiscal year' + ## 2.5.4 * Disable "Calendar" and "First day of week" settings when WeekStandard is set to IS0 860 * Fix uninitialized start date when date from filters is less than date from DataView diff --git a/capabilities.json b/capabilities.json index 4e4fd97..5e56e6a 100644 --- a/capabilities.json +++ b/capabilities.json @@ -99,6 +99,11 @@ }, "calendar": { "properties": { + "treatAsEndOfFiscalYear": { + "type": { + "bool": true + } + }, "month": { "type": { "enumeration": [ @@ -405,7 +410,27 @@ "bool": true } }, - "displayAll": { + "displayYears": { + "type": { + "bool": true + } + }, + "displayQuarters": { + "type": { + "bool": true + } + }, + "displayMonths": { + "type": { + "bool": true + } + }, + "displayWeeks": { + "type": { + "bool": true + } + }, + "displayDays": { "type": { "bool": true } diff --git a/package-lock.json b/package-lock.json index c5421b3..3762e31 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "powerbi-visuals-timeline", - "version": "2.5.4.0", + "version": "2.5.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "powerbi-visuals-timeline", - "version": "2.5.4.0", + "version": "2.5.7.0", "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "^7.7.1", - "@typescript-eslint/parser": "^7.7.1", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", "d3-array": "^3.2.4", "d3-drag": "^3.0.0", "d3-selection": "^3.0.0", @@ -32,9 +32,9 @@ "@types/d3-shape": "^3.1.6", "@types/jasmine": "^5.1.4", "@types/karma": "^6.3.8", - "@types/node": "^20.12.7", - "css-loader": "^7.1.1", - "jasmine": "^5.1.0", + "@types/node": "^20.14.12", + "css-loader": "^7.1.2", + "jasmine": "^5.2.0", "karma": "^6.4.3", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", @@ -44,14 +44,14 @@ "karma-webpack": "^5.0.1", "less": "^4.2.0", "less-loader": "^12.2.0", - "playwright-chromium": "^1.43.1", - "powerbi-visuals-api": "~5.9.0", - "powerbi-visuals-tools": "^5.4.3", + "playwright-chromium": "^1.45.3", + "powerbi-visuals-api": "5.9.0", + "powerbi-visuals-tools": "5.5.1", "powerbi-visuals-utils-testutils": "^6.1.1", "style-loader": "^4.0.0", "ts-loader": "^9.5.1", - "typescript": "^5.4.5", - "webpack": "^5.91.0" + "typescript": "^5.5.4", + "webpack": "^5.93.0" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -761,9 +761,9 @@ } }, "node_modules/@polka/url": { - "version": "1.0.0-next.24", - "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz", - "integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==", + "version": "1.0.0-next.25", + "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.25.tgz", + "integrity": "sha512-j7P6Rgr3mmtdkeDGTe0E/aYyWEWVtc5yFXtHCRHs28/jptDEWfaVOc5T7cblqy1XKPPfCxJc/8DwQ5YgLOZOVQ==", "dev": true }, "node_modules/@socket.io/component-emitter": { @@ -940,7 +940,8 @@ "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==" + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, "node_modules/@types/karma": { "version": "6.3.8", @@ -959,9 +960,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "20.12.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", - "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "version": "20.14.12", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.12.tgz", + "integrity": "sha512-r7wNXakLeSsGT0H1AU863vS2wa5wBOK4bWMjZz2wj+8nBx+m5PeIn0k8AloSLpRuiwdRQZwarZqHE4FNArPuJQ==", "dev": true, "dependencies": { "undici-types": "~5.26.4" @@ -994,11 +995,6 @@ "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "node_modules/@types/semver": { - "version": "7.5.8", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", - "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==" - }, "node_modules/@types/send": { "version": "0.17.4", "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", @@ -1048,20 +1044,18 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.7.1.tgz", - "integrity": "sha512-KwfdWXJBOviaBVhxO3p5TJiLpNuh2iyXyjmWN0f1nU87pwyvfS0EmjC6ukQVYVFJd/K1+0NWGPDXiyEyQorn0Q==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.17.0.tgz", + "integrity": "sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/type-utils": "7.7.1", - "@typescript-eslint/utils": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", - "debug": "^4.3.4", + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/type-utils": "7.17.0", + "@typescript-eslint/utils": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", - "semver": "^7.6.0", "ts-api-utils": "^1.3.0" }, "engines": { @@ -1082,14 +1076,14 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.7.1.tgz", - "integrity": "sha512-vmPzBOOtz48F6JAGVS/kZYk4EkXao6iGrD838sp1w3NQQC0W8ry/q641KU4PrG7AKNAf56NOcR8GOpH8l9FPCw==", - "dependencies": { - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/typescript-estree": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==", + "dependencies": { + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/typescript-estree": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4" }, "engines": { @@ -1109,12 +1103,12 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz", - "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.17.0.tgz", + "integrity": "sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==", "dependencies": { - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1" + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1125,12 +1119,12 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.7.1.tgz", - "integrity": "sha512-ZksJLW3WF7o75zaBPScdW1Gbkwhd/lyeXGf1kQCxJaOeITscoSl0MjynVvCzuV5boUz/3fOI06Lz8La55mu29Q==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.17.0.tgz", + "integrity": "sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==", "dependencies": { - "@typescript-eslint/typescript-estree": "7.7.1", - "@typescript-eslint/utils": "7.7.1", + "@typescript-eslint/typescript-estree": "7.17.0", + "@typescript-eslint/utils": "7.17.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -1151,9 +1145,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", - "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.17.0.tgz", + "integrity": "sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==", "engines": { "node": "^18.18.0 || >=20.0.0" }, @@ -1163,12 +1157,12 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz", - "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.17.0.tgz", + "integrity": "sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==", "dependencies": { - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/visitor-keys": "7.7.1", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", @@ -1198,9 +1192,9 @@ } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.4.tgz", - "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -1212,17 +1206,14 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", - "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.17.0.tgz", + "integrity": "sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.15", - "@types/semver": "^7.5.8", - "@typescript-eslint/scope-manager": "7.7.1", - "@typescript-eslint/types": "7.7.1", - "@typescript-eslint/typescript-estree": "7.7.1", - "semver": "^7.6.0" + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/typescript-estree": "7.17.0" }, "engines": { "node": "^18.18.0 || >=20.0.0" @@ -1236,11 +1227,11 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.7.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", - "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.17.0.tgz", + "integrity": "sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==", "dependencies": { - "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/types": "7.17.0", "eslint-visitor-keys": "^3.4.3" }, "engines": { @@ -1450,6 +1441,15 @@ "node": ">=0.4.0" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -1459,10 +1459,13 @@ } }, "node_modules/acorn-walk": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", - "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "version": "8.3.3", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.3.tgz", + "integrity": "sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==", "dev": true, + "dependencies": { + "acorn": "^8.11.0" + }, "engines": { "node": ">=0.4.0" } @@ -1747,11 +1750,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -2396,9 +2399,9 @@ } }, "node_modules/css-loader": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.1.tgz", - "integrity": "sha512-OxIR5P2mjO1PSXk44bWuQ8XtMK4dpEqpIyERCx3ewOo3I8EmbcxMPUc5ScLtQfgXtOojoMv57So4V/C02HQLsw==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-7.1.2.tgz", + "integrity": "sha512-6WvYYn7l/XEGN8Xu2vWFt9nVzrCn39vKyTEFf/ExEyoksJjjSZV/0/35XPlMbpnr6VGhZIUg5yJrL8tGfes/FA==", "dev": true, "dependencies": { "icss-utils": "^5.1.0", @@ -2809,9 +2812,9 @@ } }, "node_modules/engine.io": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.4.tgz", - "integrity": "sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg==", + "version": "6.5.5", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", + "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", "dev": true, "dependencies": { "@types/cookie": "^0.4.1", @@ -2823,7 +2826,7 @@ "cors": "~2.8.5", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", - "ws": "~8.11.0" + "ws": "~8.17.1" }, "engines": { "node": ">=10.2.0" @@ -2839,16 +2842,16 @@ } }, "node_modules/engine.io/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -2860,9 +2863,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "version": "5.17.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.0.tgz", + "integrity": "sha512-dwDPwZL0dmye8Txp2gzFmA6sxALaSvdRDjPH0viLcKrtlOL3tw62nWWweVD1SdILDTJrbrL6tdWVN58Wo6U3eA==", "dev": true, "dependencies": { "graceful-fs": "^4.2.4", @@ -3405,9 +3408,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -4462,22 +4465,22 @@ } }, "node_modules/jasmine": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.1.0.tgz", - "integrity": "sha512-prmJlC1dbLhti4nE4XAPDWmfJesYO15sjGXVp7Cs7Ym5I9Xtwa/hUHxxJXjnpfLO72+ySttA0Ztf8g/RiVnUKw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.2.0.tgz", + "integrity": "sha512-il+noV96N1BGU9/FMmc8QtAMxC8lPnXUiAvgb0o9MDZATRdxglTQe9wo6UdL049ropQL6MopDYwDlludKR6wJQ==", "dev": true, "dependencies": { "glob": "^10.2.2", - "jasmine-core": "~5.1.0" + "jasmine-core": "~5.2.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.1.2.tgz", - "integrity": "sha512-2oIUMGn00FdUiqz6epiiJr7xcFyNYj3rDcfmnzfkBnHyBQ3cBQUs4mmyGsOb7TTLb9kxk7dBcmEmqhDKkBoDyA==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.2.0.tgz", + "integrity": "sha512-tSAtdrvWybZkQmmaIoDgnvHG8ORUNw5kEVlO5CvrXj02Jjr9TZrmjFq7FUiOUzJiOP2wLGYT6PgrQgQF4R1xiw==", "dev": true }, "node_modules/jasmine/node_modules/brace-expansion": { @@ -5225,6 +5228,26 @@ "node": ">=6" } }, + "node_modules/mini-css-extract-plugin": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.9.0.tgz", + "integrity": "sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==", + "dev": true, + "dependencies": { + "schema-utils": "^4.0.0", + "tapable": "^2.2.1" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.0.0" + } + }, "node_modules/minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -5781,31 +5804,31 @@ } }, "node_modules/playwright-chromium": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/playwright-chromium/-/playwright-chromium-1.43.1.tgz", - "integrity": "sha512-HL/11hcpIYVt/Rw7wTf5xwm+W0R76JGDDjRxGtBkgMuUqi0Q4UYmx+F/QxW/Z+aApSbDtHd3naRFcL/Jt7Aidg==", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright-chromium/-/playwright-chromium-1.45.3.tgz", + "integrity": "sha512-GXY/+1HScU5soR06lu8sc7cnXWBnfWDGH2JV+D3wqxApb9qJbSxDK40H8loOok+naxMO7x6yhgPHwpRSCV9dug==", "dev": true, "hasInstallScript": true, "dependencies": { - "playwright-core": "1.43.1" + "playwright-core": "1.45.3" }, "bin": { "playwright": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/playwright-core": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz", - "integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.3.tgz", + "integrity": "sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==", "dev": true, "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/possible-typed-array-names": { @@ -5937,12 +5960,12 @@ } }, "node_modules/powerbi-visuals-tools": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/powerbi-visuals-tools/-/powerbi-visuals-tools-5.4.3.tgz", - "integrity": "sha512-msriNFlq+jk+YfJ7lBOG657QJggFCD3h0YMmmk2H5F7M4doVoVuY/79jcs3MacjZds3lMARKexxR+V6n/tiwgA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/powerbi-visuals-tools/-/powerbi-visuals-tools-5.5.1.tgz", + "integrity": "sha512-330nPyn5KEssbVmYnoKHU0DiyUzxeZrw2tYIo1kaWUqkF7r6CUJuUTy/UNO8t6GGjgaYK6ieBE3ttRJO81nQ8Q==", "dev": true, "dependencies": { - "@typescript-eslint/parser": "^6.21.0", + "@typescript-eslint/parser": "^7.12.0", "assert": "^2.1.0", "async": "^3.2.5", "browserify-zlib": "^0.2.0", @@ -5953,7 +5976,7 @@ "console-browserify": "^1.2.0", "constants-browserify": "^1.0.0", "crypto-browserify": "^3.12.0", - "css-loader": "^6.10.0", + "css-loader": "^6.11.0", "domain-browser": "^5.7.0", "events": "^3.3.0", "extra-watch-webpack-plugin": "^1.0.3", @@ -5963,12 +5986,12 @@ "json-loader": "0.5.7", "jszip": "^3.10.1", "less": "^4.2.0", - "less-loader": "^11.1.4", + "less-loader": "^12.2.0", "lodash.clonedeep": "4.5.0", "lodash.defaults": "4.2.0", "lodash.isequal": "4.5.0", "lodash.ismatch": "^4.4.0", - "mini-css-extract-plugin": "^2.8.1", + "mini-css-extract-plugin": "^2.9.0", "os-browserify": "^0.3.0", "path-browserify": "^1.0.1", "powerbi-visuals-webpack-plugin": "4.1.0", @@ -5988,7 +6011,7 @@ "util": "^0.12.5", "vm-browserify": "^1.1.2", "webpack": "^5.91.0", - "webpack-bundle-analyzer": "4.10.1", + "webpack-bundle-analyzer": "4.10.2", "webpack-dev-server": "^4.15.2" }, "bin": { @@ -6001,109 +6024,6 @@ "fsevents": "*" } }, - "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/powerbi-visuals-tools/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, "node_modules/powerbi-visuals-tools/node_modules/assert": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/assert/-/assert-2.1.0.tgz", @@ -6123,15 +6043,6 @@ "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, - "node_modules/powerbi-visuals-tools/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" - } - }, "node_modules/powerbi-visuals-tools/node_modules/buffer": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", @@ -6250,58 +6161,6 @@ "graceful-fs": "^4.1.6" } }, - "node_modules/powerbi-visuals-tools/node_modules/less-loader": { - "version": "11.1.4", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-11.1.4.tgz", - "integrity": "sha512-6/GrYaB6QcW6Vj+/9ZPgKKs6G10YZai/l/eJ4SLwbzqNTBsAqt5hSLVF47TgsiBxV1P6eAU0GYRH3YRuQU9V3A==", - "dev": true, - "engines": { - "node": ">= 14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "less": "^3.5.0 || ^4.0.0", - "webpack": "^5.0.0" - } - }, - "node_modules/powerbi-visuals-tools/node_modules/mini-css-extract-plugin": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.8.1.tgz", - "integrity": "sha512-/1HDlyFRxWIZPI1ZpgqlZ8jMw/1Dp/dl3P0L1jtZ+zVcHqwPhGwaJwKL00WVgfnBy6PWCde9W65or7IIETImuA==", - "dev": true, - "dependencies": { - "schema-utils": "^4.0.0", - "tapable": "^2.2.1" - }, - "engines": { - "node": ">= 12.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.0.0" - } - }, - "node_modules/powerbi-visuals-tools/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/powerbi-visuals-tools/node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", @@ -7395,26 +7254,26 @@ } }, "node_modules/socket.io-adapter": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.4.tgz", - "integrity": "sha512-wDNHGXGewWAjQPt3pyeYBtpWSq9cLE5UW1ZUPL/2eGK9jtse/FpXib7epSTsz0Q0m+6sg6Y4KtcFTlah1bdOVg==", + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.5.5.tgz", + "integrity": "sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==", "dev": true, "dependencies": { "debug": "~4.3.4", - "ws": "~8.11.0" + "ws": "~8.17.1" } }, "node_modules/socket.io-adapter/node_modules/ws": { - "version": "8.11.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", - "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -7930,9 +7789,9 @@ } }, "node_modules/typescript": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", - "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", + "version": "5.5.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.5.4.tgz", + "integrity": "sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8128,9 +7987,9 @@ } }, "node_modules/webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", + "version": "5.93.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.93.0.tgz", + "integrity": "sha512-Y0m5oEY1LRuwly578VqluorkXbvXKh7U3rLoQCEO04M97ScRr44afGVkI0FQFsXzysk5OgFAxjZAb9rsGQVihA==", "dev": true, "dependencies": { "@types/eslint-scope": "^3.7.3", @@ -8139,10 +7998,10 @@ "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", + "enhanced-resolve": "^5.17.0", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", @@ -8175,9 +8034,9 @@ } }, "node_modules/webpack-bundle-analyzer": { - "version": "4.10.1", - "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.1.tgz", - "integrity": "sha512-s3P7pgexgT/HTUSYgxJyn28A+99mmLq4HsJepMPzu0R8ImJc52QNqaFYW1Z2z2uIb1/J3eYgaAWVpaC+v/1aAQ==", + "version": "4.10.2", + "resolved": "https://registry.npmjs.org/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz", + "integrity": "sha512-vJptkMm9pk5si4Bv922ZbKLV8UTT4zib4FPgXMhgzUny0bfDDkLXAVQs3ly3fS4/TN9ROFtb0NFrm04UXFE/Vw==", "dev": true, "dependencies": { "@discoveryjs/json-ext": "0.5.7", @@ -8188,7 +8047,6 @@ "escape-string-regexp": "^4.0.0", "gzip-size": "^6.0.0", "html-escaper": "^2.0.2", - "is-plain-object": "^5.0.0", "opener": "^1.5.2", "picocolors": "^1.0.0", "sirv": "^2.0.3", @@ -8222,15 +8080,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/webpack-bundle-analyzer/node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/webpack-dev-middleware": { "version": "5.3.4", "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.4.tgz", @@ -8314,9 +8163,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "engines": { "node": ">=10.0.0" @@ -8352,15 +8201,6 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/webpack/node_modules/schema-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", @@ -8582,9 +8422,9 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { "node": ">=8.3.0" diff --git a/package.json b/package.json index 2bc2c8c..234e1e5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "powerbi-visuals-timeline", - "version": "2.5.4.0", + "version": "2.5.7.0", "description": "Timeline slicer is a graphical date range selector used as a filtering component in the report canvas", "repository": { "type": "git", @@ -34,9 +34,9 @@ "@types/d3-shape": "^3.1.6", "@types/jasmine": "^5.1.4", "@types/karma": "^6.3.8", - "@types/node": "^20.12.7", - "css-loader": "^7.1.1", - "jasmine": "^5.1.0", + "@types/node": "^20.14.12", + "css-loader": "^7.1.2", + "jasmine": "^5.2.0", "karma": "^6.4.3", "karma-chrome-launcher": "^3.2.0", "karma-coverage": "^2.2.1", @@ -46,18 +46,18 @@ "karma-webpack": "^5.0.1", "less": "^4.2.0", "less-loader": "^12.2.0", - "playwright-chromium": "^1.43.1", - "powerbi-visuals-api": "~5.9.0", - "powerbi-visuals-tools": "^5.4.3", + "playwright-chromium": "^1.45.3", + "powerbi-visuals-api": "5.9.0", + "powerbi-visuals-tools": "5.5.1", "powerbi-visuals-utils-testutils": "^6.1.1", "style-loader": "^4.0.0", "ts-loader": "^9.5.1", - "typescript": "^5.4.5", - "webpack": "^5.91.0" + "typescript": "^5.5.4", + "webpack": "^5.93.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^7.7.1", - "@typescript-eslint/parser": "^7.7.1", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", "d3-array": "^3.2.4", "d3-drag": "^3.0.0", "d3-selection": "^3.0.0", diff --git a/pbiviz.json b/pbiviz.json index e0515cf..80afd55 100644 --- a/pbiviz.json +++ b/pbiviz.json @@ -1,10 +1,10 @@ { "visual": { "name": "Timeline", - "displayName": "Timeline 2.5.4.0", + "displayName": "Timeline 2.5.7.0", "guid": "Timeline1447991079100", "visualClassName": "Timeline", - "version": "2.5.4.0", + "version": "2.5.7.0", "description": "Timeline slicer is a graphical date range selector used as a filtering component in the report canvas", "supportUrl": "https://community.powerbi.com", "gitHubUrl": "https://github.com/Microsoft/powerbi-visuals-timeline" diff --git a/src/calendars/calendar.ts b/src/calendars/calendar.ts index 86178c4..9d07213 100644 --- a/src/calendars/calendar.ts +++ b/src/calendars/calendar.ts @@ -47,8 +47,13 @@ export interface WeekdayFormat { day: number; } +export interface CalendarFormattingSettings { + treatAsEndOfFiscalYear: boolean; +} + export class Calendar { private static QuarterFirstMonths: number[] = [0, 3, 6, 9]; + private settings: CalendarFormattingSettings; protected firstDayOfWeek: number; protected firstMonthOfYear: number; @@ -60,7 +65,8 @@ export class Calendar { protected EmptyYearOffset: number = 0; protected YearOffset: number = 1; - constructor(calendarFormat: CalendarFormat, weekDaySettings: WeekdayFormat) { + constructor(calendarFormat: CalendarFormat, weekDaySettings: WeekdayFormat, settings: CalendarFormattingSettings) { + this.settings = settings; this.isDaySelection = weekDaySettings.daySelection; this.firstDayOfWeek = weekDaySettings.day; this.firstMonthOfYear = calendarFormat.month; @@ -78,7 +84,11 @@ export class Calendar { const firstMonthOfYear = this.getFirstMonthOfYear(); const firstDayOfYear = this.getFirstDayOfYear(); - return ((firstMonthOfYear === 0 && firstDayOfYear === 1) ? 0 : 1); + if (firstMonthOfYear === 0 && firstDayOfYear === 1) { + return 0; + } + + return this.settings.treatAsEndOfFiscalYear ? 1 : -1; } public determineYear(date: Date): number { @@ -91,9 +101,18 @@ export class Calendar { firstDayOfYear, ); - return date.getFullYear() + this.getFiscalYearAdjustment() - ((firstDate <= date) - ? this.EmptyYearOffset - : this.YearOffset); + let adjustment: number = this.getFiscalYearAdjustment(); + + if (adjustment === 0) { + return date.getFullYear(); + } + else if (this.settings.treatAsEndOfFiscalYear) { + adjustment -= ((firstDate <= date) ? this.EmptyYearOffset : this.YearOffset); + } else { + adjustment += ((firstDate > date) ? this.EmptyYearOffset : this.YearOffset); + } + + return date.getFullYear() + adjustment; } public determineWeek(date: Date): number[] { @@ -101,7 +120,12 @@ export class Calendar { // It's Ok until this year is used to calculate date of first week. // So, here is some adjustment was applied. const year: number = this.determineYear(date); - const fiscalYearAdjustment = this.getFiscalYearAdjustment(); + let fiscalYearAdjustment = this.getFiscalYearAdjustment(); + + // fiscal year starts with W1 (week 1), meaning previous week should be W52-53 + if (fiscalYearAdjustment === -1) { + fiscalYearAdjustment = 0; + } const dateOfFirstWeek: Date = this.getDateOfFirstWeek(year - fiscalYearAdjustment); const dateOfFirstFullWeek: Date = this.getDateOfFirstFullWeek(year - fiscalYearAdjustment); diff --git a/src/calendars/calendarFactory.ts b/src/calendars/calendarFactory.ts index 608afd8..e9d9095 100644 --- a/src/calendars/calendarFactory.ts +++ b/src/calendars/calendarFactory.ts @@ -1,4 +1,4 @@ -import {Calendar, CalendarFormat, WeekdayFormat} from "./calendar"; +import {Calendar, CalendarFormat, CalendarFormattingSettings, WeekdayFormat} from "./calendar"; import { WeekStandard } from "./weekStandard"; import { CalendarISO8061 } from "./calendarISO8061"; @@ -6,16 +6,17 @@ export class CalendarFactory { public create( weekStandard: WeekStandard, calendarSettings: CalendarFormat, - weekDaySettings: WeekdayFormat) : Calendar { + weekDaySettings: WeekdayFormat, + settings: CalendarFormattingSettings) : Calendar { let calendar: Calendar; switch (weekStandard) { case WeekStandard.ISO8061: - calendar = new CalendarISO8061(); + calendar = new CalendarISO8061(settings); break; default: - calendar = new Calendar(calendarSettings, weekDaySettings) + calendar = new Calendar(calendarSettings, weekDaySettings, settings) } return calendar; diff --git a/src/calendars/calendarISO8061.ts b/src/calendars/calendarISO8061.ts index 6baff72..ec8b218 100644 --- a/src/calendars/calendarISO8061.ts +++ b/src/calendars/calendarISO8061.ts @@ -1,11 +1,11 @@ -import {Calendar, CalendarFormat, WeekdayFormat} from "./calendar"; +import {Calendar, CalendarFormat, CalendarFormattingSettings, WeekdayFormat} from "./calendar"; import { WeekStandard } from "./weekStandard"; import { Utils } from "../utils"; import {CalendarSettingsCard} from "../timeLineSettingsModel"; export class CalendarISO8061 extends Calendar { - constructor() { + constructor(settings: CalendarFormattingSettings) { const isoCalendarSettings: CalendarFormat = { month: CalendarSettingsCard.DefaultMonth, day: CalendarSettingsCard.DefaultDay, @@ -16,7 +16,7 @@ export class CalendarISO8061 extends Calendar { day: 1, }; - super(isoCalendarSettings, isoWeekDaySettings); + super(isoCalendarSettings, isoWeekDaySettings, settings); //this.firstDayOfYear = calendarFormat.day; } diff --git a/src/granularity/weekGranularity.ts b/src/granularity/weekGranularity.ts index 100a677..88fd0a7 100644 --- a/src/granularity/weekGranularity.ts +++ b/src/granularity/weekGranularity.ts @@ -36,7 +36,7 @@ import { IGranularityRenderProps } from "./granularityRenderProps"; import { GranularityType } from "./granularityType"; export class WeekGranularity extends GranularityBase { - private localizationKey: string = "Visual_Granularity_Year"; + private localizationKey: string = "Visual_Granularity_Week"; constructor( calendar: Calendar, diff --git a/src/timeLine.ts b/src/timeLine.ts index 1fbd3f1..163c561 100644 --- a/src/timeLine.ts +++ b/src/timeLine.ts @@ -35,7 +35,7 @@ import {arc as d3Arc} from "d3-shape"; import powerbiVisualsApi from "powerbi-visuals-api"; import powerbi from "powerbi-visuals-api"; -import {AdvancedFilter, IFilterColumnTarget,} from "powerbi-models"; +import {AdvancedFilter, IAdvancedFilterCondition, IFilterColumnTarget,} from "powerbi-models"; import {CssConstants, manipulation as svgManipulation,} from "powerbi-visuals-utils-svgutils"; @@ -66,7 +66,7 @@ import {ITimelineDatePeriod, ITimelineDatePeriodBase,} from "./datePeriod/datePe import {DatePeriodBase} from "./datePeriod/datePeriodBase"; -import {Calendar, CalendarFormat, WeekdayFormat} from "./calendars/calendar"; +import {Calendar, CalendarFormat, CalendarFormattingSettings, WeekdayFormat} from "./calendars/calendar"; import {Utils} from "./utils"; import {WeekStandard} from "./calendars/weekStandard"; import {CalendarFactory} from "./calendars/calendarFactory"; @@ -79,7 +79,7 @@ import { import {FormattingSettingsService} from "powerbi-visuals-utils-formattingmodel"; import ISelectionManager = powerbiVisualsApi.extensibility.ISelectionManager; import extractFilterColumnTarget = interactivityFilterService.extractFilterColumnTarget; -import {Month} from "./calendars/month"; +import { Month } from './calendars/month'; import {Weekday} from "./calendars/weekday"; import {Behavior} from "./behavior"; @@ -106,7 +106,8 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual granularity: GranularityType, calendar: Calendar, ) { - return this.SELECT_PERIOD(datePeriod, granularity, calendar, Utils.RESET_TIME(new Date())); + const currentDate: Date = Utils.RESET_TIME(new Date()); + return this.SELECT_PERIOD(datePeriod, granularity, calendar, currentDate); } public CONVERTER( @@ -150,12 +151,11 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } if (!initialized || isCalendarChanged) { - calendar = new CalendarFactory().create(weekStandard, calendarFormat, weekDayFormat); - const granularity: GranularityType = this.visualSettings.granularity.granularity.value - ? this.visualSettings.granularity.granularity.value.value - : GranularityType.month; + const calendarFormattingSettings: CalendarFormattingSettings = { treatAsEndOfFiscalYear: this.visualSettings.calendar.treatAsEndOfFiscalYear.value }; - this.timelineData.currentGranularity = this.timelineGranularityData.getGranularity(granularity); + calendar = new CalendarFactory().create(weekStandard, calendarFormat, weekDayFormat, calendarFormattingSettings); + const granularity: GranularityType = this.getGranularityType(); + this.timelineData.currentGranularity = this.timelineGranularityData.getGranularity(granularity); } else { calendar = previousCalendar; @@ -440,7 +440,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual const labelSize: number = pixelConverter.fromPointToPixel(this.visualSettings.labels.textSize.value); if (this.visualSettings.labels.show.value) { - const granularityOffset: number = this.visualSettings.labels.displayAll.value ? granularityType + 1 : 1; + const granularityOffset: number = this.visualSettings.labels.show.value ? granularityType + 1 : 1; this.timelineProperties.cellsYPosition += labelSize * Timeline.LabelSizeFactor @@ -621,8 +621,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.headerSelection = this.headerWrapperSelection .append("svg") .attr("width", "100%") - .style("display", "block") - .style("position", "absolute"); + .style("display", "block"); this.mainSvgWrapperSelection = this.rootSelection .append("div") @@ -663,6 +662,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } + // eslint-disable-next-line max-lines-per-function public update(options: powerbiVisualsApi.extensibility.visual.VisualUpdateOptions): void { try { this.host.eventService.renderingStarted(options); @@ -690,12 +690,12 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.parseJsonFilters(this.visualSettings, (this.options.jsonFilters)); this.setHighContrastColors(); + this.adjustHeightOfElements(options.viewport.width); this.timelineGranularityData = new GranularityData(this.datePeriod.startDate, this.datePeriod.endDate); this.createTimelineData( - this.visualSettings, this.datePeriod.startDate, this.datePeriod.endDate, this.timelineGranularityData, @@ -705,39 +705,16 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.updateCalendar(); + const shouldRefresh: boolean = this.updateForceSelectionOnFilterChange(); + if (shouldRefresh) { + return; + } + const adjustedPeriod: IAdjustedFilterDatePeriod = this.adjustFilterDatePeriod(); const datePeriod: ITimelineDatePeriodBase = this.datePeriod; - const granularity: GranularityType = this.visualSettings.granularity.granularity.value - ? this.visualSettings.granularity.granularity.value.value - : GranularityType.month; - - const isCurrentPeriodSelected: boolean = !this.isForceSelectionReset && this.visualSettings.forceSelection.currentPeriod.value; - const isLatestAvailableDateSelected: boolean = !this.isForceSelectionReset && this.visualSettings.forceSelection.latestAvailableDate.value; - const isForceSelected: boolean = !this.isForceSelectionReset && (isCurrentPeriodSelected || isLatestAvailableDateSelected); - this.isForceSelectionReset = false; // Reset it to default state to allow re-enabling Force Selection - let currentForceSelectionResult = { startDate: null, endDate: null }; - - if (isCurrentPeriodSelected) { - currentForceSelectionResult = ({ - endDate: adjustedPeriod.period.endDate, - startDate: adjustedPeriod.period.startDate, - } = Timeline.SELECT_CURRENT_PERIOD(datePeriod, granularity, this.calendar)); - } - if (isLatestAvailableDateSelected - && ( - !isCurrentPeriodSelected - || (isCurrentPeriodSelected - && !currentForceSelectionResult.startDate - && !currentForceSelectionResult.endDate - ) - ) - ) { - adjustedPeriod.period.endDate = adjustedPeriod.adaptedDataEndDate; - ({ - endDate: adjustedPeriod.period.endDate, - startDate: adjustedPeriod.period.startDate, - } = Timeline.SELECT_PERIOD(datePeriod, granularity, this.calendar, this.datePeriod.endDate)); - } + const granularity: GranularityType = this.getGranularityType(); + + const isForceSelected: boolean = this.updateDatePeriodOnForceSelection(adjustedPeriod, datePeriod, granularity); this.updatePrevFilterState(adjustedPeriod, isForceSelected, this.timelineData.filterColumnTarget); @@ -782,6 +759,96 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.host.eventService.renderingFinished(options); } + + /** + * When visual is initialized, we need to check if filter date is different from currentPeriodDate or latestAvailableDate + * It may happen when visual is synced with other visuals and filter date is changed, so we need to disable corresponding forceSelection options. + */ + private updateForceSelectionOnFilterChange(): boolean { + const wasFilterChanged: boolean = + String(this.prevFilteredStartDate) !== String(this.datePeriod.startDate) || + String(this.prevFilteredEndDate) !== String(this.datePeriod.endDate); + + if (!wasFilterChanged) return; + + const filterDatePeriod: DatePeriodBase = this.filterDatePeriod; + const granularity: GranularityType = this.getGranularityType(); + const latestPeriod = Timeline.SELECT_PERIOD(this.datePeriod, granularity, this.calendar, this.datePeriod.endDate); + const currentPeriod = Timeline.SELECT_CURRENT_PERIOD(this.datePeriod, granularity, this.calendar); + + const propertiesToUpdate: Record = {}; + + // TODO: Consider how to make checking of currentPeriod more reliable when filter date is close to midnight + // currentPeriod is created and compared to filter date period. + // If filter date is different from current period then it means we need to disable forceSelection.currentPeriod toggle switch + // currentPeriod resets time and only considers date, so there's a possibility of a bug when time is close to midnight (23:59:59) + // so if filter is created close to midnight and current period is created after midnight, then it will be considered as different + // therefore occasionaly we will disable currentPeriod toggle switch when it's not necessary + if (this.visualSettings.forceSelection.currentPeriod.value && + filterDatePeriod.startDate && + filterDatePeriod.endDate && + currentPeriod.startDate && + currentPeriod.endDate && + currentPeriod.startDate.getTime() !== filterDatePeriod.startDate.getTime() && + currentPeriod.endDate.getTime() !== filterDatePeriod.endDate.getTime() && + this.prevFilteredStartDate == null && + this.prevFilteredEndDate == null + ) { + propertiesToUpdate.currentPeriod = false; + } + + if (this.visualSettings.forceSelection.latestAvailableDate.value && + filterDatePeriod.endDate && + latestPeriod.endDate && + filterDatePeriod.endDate.getTime() !== latestPeriod.endDate.getTime() && + this.prevFilteredEndDate == null + ) { + propertiesToUpdate.latestAvailableDate = false; + } + + if (Object.keys(propertiesToUpdate).length > 0) { + this.host.persistProperties({ + merge: [{ + objectName: "forceSelection", + properties: propertiesToUpdate, + selector: null, + }] + }); + + return true; + } + + return false; + } + + private updateDatePeriodOnForceSelection(adjustedPeriod: IAdjustedFilterDatePeriod, datePeriod: ITimelineDatePeriodBase, granularity: GranularityType) { + const isCurrentPeriodSelected: boolean = !this.isForceSelectionReset && this.visualSettings.forceSelection.currentPeriod.value; + const isLatestAvailableDateSelected: boolean = !this.isForceSelectionReset && this.visualSettings.forceSelection.latestAvailableDate.value; + const isForceSelected: boolean = !this.isForceSelectionReset && (isCurrentPeriodSelected || isLatestAvailableDateSelected); + this.isForceSelectionReset = false; // Reset it to default state to allow re-enabling Force Selection + + if (isCurrentPeriodSelected) { + const currentPeriod = Timeline.SELECT_CURRENT_PERIOD(datePeriod, granularity, this.calendar); + adjustedPeriod.period.startDate = currentPeriod.startDate; + adjustedPeriod.period.endDate = currentPeriod.endDate; + } + + if (isLatestAvailableDateSelected + && ( + !isCurrentPeriodSelected + || (isCurrentPeriodSelected + && !adjustedPeriod.period.startDate + && !adjustedPeriod.period.endDate + ) + )) { + const latestAvailablePeriod = Timeline.SELECT_PERIOD(datePeriod, granularity, this.calendar, this.datePeriod.endDate); + adjustedPeriod.period.startDate = latestAvailablePeriod.startDate; + adjustedPeriod.period.endDate = latestAvailablePeriod.endDate; + } + + return isForceSelected; + } + public fillCells(visSettings: TimeLineSettingsModel): void { const dataPoints: ITimelineDataPoint[] = this.timelineData.timelineDataPoints; @@ -995,9 +1062,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual return null; } - return new AdvancedFilter( - target, - "And", + const conditions: IAdvancedFilterCondition[] = [ { operator: "GreaterThanOrEqual", value: startDate.toJSON(), @@ -1006,7 +1071,9 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual operator: "LessThan", value: endDate.toJSON(), }, - ); + ]; + + return new AdvancedFilter(target, "And", conditions); } public clearSelection(target: IFilterColumnTarget): void { @@ -1023,6 +1090,36 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.visualSettings.calendar.disabled = true; } + const granularity = this.getGranularityType(); + + switch (granularity) { + case GranularityType.year: + this.visualSettings.labels.displayQuarters.visible = false; + this.visualSettings.labels.displayMonths.visible = false; + this.visualSettings.labels.displayWeeks.visible = false; + this.visualSettings.labels.displayDays.visible = false; + break; + case GranularityType.quarter: + this.visualSettings.labels.displayMonths.visible = false; + this.visualSettings.labels.displayWeeks.visible = false; + this.visualSettings.labels.displayDays.visible = false; + break; + case GranularityType.month: + this.visualSettings.labels.displayWeeks.visible = false; + this.visualSettings.labels.displayDays.visible = false; + break; + case GranularityType.week: + this.visualSettings.labels.displayDays.visible = false; + break; + default: + this.visualSettings.labels.displayMonths.visible = true; + this.visualSettings.labels.displayQuarters.visible = true; + this.visualSettings.labels.displayMonths.visible = true; + this.visualSettings.labels.displayWeeks.visible = true; + this.visualSettings.labels.displayDays.visible = true; + break; + } + return this.formattingSettingsService.buildFormattingModel(this.visualSettings); } @@ -1146,7 +1243,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } if (filterDatePeriod.endDate && adaptedDataEndDate && filterDatePeriod.endDate.getTime() > adaptedDataEndDate.getTime()) { - filterDatePeriod.endDate = null; + filterDatePeriod.endDate = adaptedDataEndDate; } return { @@ -1225,16 +1322,16 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } private createTimelineData( - timelineSettings: TimeLineSettingsModel, startDate: Date, endDate: Date, timelineGranularityData: GranularityData, locale: string, localizationManager: powerbiVisualsApi.extensibility.ILocalizationManager, ) { - const { weekStandard, calendarFormat, weekDayFormat } = Timeline.computeCalendarFormat(timelineSettings); + const { weekStandard, calendarFormat, weekDayFormat } = Timeline.computeCalendarFormat(this.visualSettings); - const calendar: Calendar = this.calendarFactory.create(weekStandard, calendarFormat, weekDayFormat); + const calendarFormattingSettings: CalendarFormattingSettings = { treatAsEndOfFiscalYear: this.visualSettings.calendar.treatAsEndOfFiscalYear.value }; + const calendar: Calendar = this.calendarFactory.create(weekStandard, calendarFormat, weekDayFormat, calendarFormattingSettings); timelineGranularityData.createGranularities(calendar, locale, localizationManager); timelineGranularityData.createLabels(); @@ -1255,9 +1352,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual || actualEndDate.getTime() !== prevEndDate.getTime(); - const granularityType: GranularityType = timelineSettings.granularity.granularity.value - ? timelineSettings.granularity.granularity.value.value - : GranularityType.month; + const granularityType: GranularityType = this.getGranularityType(); if (!changedSelection) { this.changeGranularity( @@ -1382,7 +1477,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual let yPos: number = 0; if (settings.labels.show.value) { - if (settings.labels.displayAll.value || granularityType === GranularityType.year) { + if (settings.labels.displayYears.value || granularityType === GranularityType.year) { this.renderLabels( extendedLabels.yearLabels, this.yearLabelsSelection, @@ -1393,7 +1488,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (settings.labels.displayAll.value || granularityType === GranularityType.quarter) { + if (settings.labels.displayQuarters.value || granularityType === GranularityType.quarter) { this.renderLabels( extendedLabels.quarterLabels, this.quarterLabelsSelection, @@ -1404,7 +1499,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (settings.labels.displayAll.value || granularityType === GranularityType.month) { + if (settings.labels.displayMonths.value || granularityType === GranularityType.month) { this.renderLabels( extendedLabels.monthLabels, this.monthLabelsSelection, @@ -1415,7 +1510,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (settings.labels.displayAll.value || granularityType === GranularityType.week) { + if (settings.labels.displayWeeks.value || granularityType === GranularityType.week) { this.renderLabels( extendedLabels.weekLabels, this.weekLabelsSelection, @@ -1426,7 +1521,7 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual } } - if (settings.labels.displayAll.value || granularityType === GranularityType.day) { + if (settings.labels.displayDays.value || granularityType === GranularityType.day) { this.renderLabels( extendedLabels.dayLabels, this.dayLabelsSelection, @@ -1624,4 +1719,11 @@ export class Timeline implements powerbiVisualsApi.extensibility.visual.IVisual this.isForceSelectionReset = true; } + + private getGranularityType(): GranularityType { + const granularityType: GranularityType = this.visualSettings.granularity.granularity.value + ? this.visualSettings.granularity.granularity.value.value + : GranularityType.month; + return granularityType; + } } diff --git a/src/timeLineSettingsModel.ts b/src/timeLineSettingsModel.ts index a4b8cc7..25755b7 100644 --- a/src/timeLineSettingsModel.ts +++ b/src/timeLineSettingsModel.ts @@ -118,6 +118,13 @@ export class CalendarSettingsCard extends Card { public static readonly DefaultMonth: number = 0; public static readonly DefaultDay: number = 1; + treatAsEndOfFiscalYear = new formattingSettings.ToggleSwitch({ + name: "treatAsEndOfFiscalYear", + displayName: "Treat as end of fiscal year", + displayNameKey: "Visual_TreatAsEndOfFiscalYear", + value: true, + }); + month = new formattingSettings.ItemDropdown({ name: "month", displayName: "Month", @@ -141,7 +148,7 @@ export class CalendarSettingsCard extends Card { displayName: string = "Fiscal Year"; displayNameKey: string = "Visual_FiscalYear"; descriptionKey: string = "Visual_FiscalYear_Description"; - slices = [this.month, this.day]; + slices = [this.treatAsEndOfFiscalYear, this.month, this.day]; } class WeekDaySettingsCard extends Card { @@ -188,10 +195,6 @@ export class RangeHeaderSettingsCard extends Card { displayName: "Text Size", displayNameKey: "Visual_TextSize", value: TextSizeDefaults.Default, - options: { - minValue: { value: TextSizeDefaults.Min, type: ValidatorType.Min }, - maxValue: { value: TextSizeDefaults.Max, type: ValidatorType.Max }, - } }); topLevelSlice = this.show; @@ -387,10 +390,38 @@ export class LabelsSettingsCard extends Card { value: true, }); - displayAll = new formattingSettings.ToggleSwitch({ - name: "displayAll", - displayName: "Display all", - displayNameKey: "Visual_DisplayAll", + displayYears = new formattingSettings.ToggleSwitch({ + name: "displayYears", + displayName: "Display years", + displayNameKey: "Visual_DisplayYears", + value: true, + }); + + displayQuarters = new formattingSettings.ToggleSwitch({ + name: "displayQuarters", + displayName: "Display quarters", + displayNameKey: "Visual_DisplayQuarters", + value: true, + }); + + displayMonths = new formattingSettings.ToggleSwitch({ + name: "displayMonths", + displayName: "Display months", + displayNameKey: "Visual_DisplayMonths", + value: true, + }); + + displayWeeks = new formattingSettings.ToggleSwitch({ + name: "displayWeeks", + displayName: "Display weeks", + displayNameKey: "Visual_DisplayWeeks", + value: true, + }); + + displayDays = new formattingSettings.ToggleSwitch({ + name: "displayDays", + displayName: "Display days", + displayNameKey: "Visual_DisplayDays", value: true, }); @@ -416,7 +447,15 @@ export class LabelsSettingsCard extends Card { name: string = "labels"; displayName: string = "Labels"; displayNameKey: string = "Visual_Labels"; - slices = [this.displayAll, this.fontColor, this.textSize]; + slices = [ + this.displayYears, + this.displayQuarters, + this.displayMonths, + this.displayWeeks, + this.displayDays, + this.fontColor, + this.textSize, + ]; } class ScrollAutoAdjustmentSettingsCard extends Card { diff --git a/stringResources/ar-SA/resources.resjson b/stringResources/ar-SA/resources.resjson index 4535936..ead9176 100644 --- a/stringResources/ar-SA/resources.resjson +++ b/stringResources/ar-SA/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "بداية السنة المالية", "Visual_FiscalYear": "السنة المالية", "Visual_FiscalYear_Description": "هذا الخيار ليس له معنى إذا تم اختيار معيار ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "المعاملة الفترة كأنها نهاية السنة المالية", "Visual_Month": "شهر", "Visual_Month_January": "يناير", "Visual_Month_February": "فبراير", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "أول يوم في الأسبوع", "Visual_FirstDayOfWeek_Description": "هذا الخيار ليس له معنى إذا تم اختيار معيار ISO 8601", "Visual_DisplayAll": "عرض الكل", + "Visual_DisplayYears": "عرض السنوات", + "Visual_DisplayQuarters": "عرض أرباع السنة", + "Visual_DisplayMonths": "عرض الأشهر", + "Visual_DisplayWeeks": "عرض الأسابيع", + "Visual_DisplayDays": "عرض الأيام", "Visual_Cursor": "مؤشر", "Visual_CursorColor": "لون المؤشر", "Visual_ForceSelection": "فرض التحديد", diff --git a/stringResources/bg-BG/resources.resjson b/stringResources/bg-BG/resources.resjson index c81ca0c..59c4d74 100644 --- a/stringResources/bg-BG/resources.resjson +++ b/stringResources/bg-BG/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Начало на фискална година", "Visual_FiscalYear": "Финансова година", "Visual_FiscalYear_Description": "Тази опция няма смисъл, ако е избран стандарта ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Да се счита като край на финансовата година", "Visual_Month": "Месец", "Visual_Month_January": "Януари", "Visual_Month_February": "Февруари", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Първи ден от седмицата", "Visual_FirstDayOfWeek_Description": "Тази опция няма смисъл, ако е избран стандарта ISO 8601", "Visual_DisplayAll": "Показване на всички", + "Visual_DisplayYears": "Показване на години", + "Visual_DisplayQuarters": "Показване на тримесечия", + "Visual_DisplayMonths": "Показване на месеци", + "Visual_DisplayWeeks": "Показване на седмици", + "Visual_DisplayDays": "Показване на дни", "Visual_Cursor": "Курсор", "Visual_CursorColor": "Цвят на курсор", "Visual_ForceSelection": "Принудително налагане на селекция", diff --git a/stringResources/ca-ES/resources.resjson b/stringResources/ca-ES/resources.resjson index 68df170..319e11f 100644 --- a/stringResources/ca-ES/resources.resjson +++ b/stringResources/ca-ES/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Inici de l'any fiscal", "Visual_FiscalYear": "Any fiscal", "Visual_FiscalYear_Description": "Aquesta opció no té cap sentit si s'ha triat l'estàndard ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Tracta com a final de l'exercici fiscal", "Visual_Month": "Mes", "Visual_Month_January": "Gener", "Visual_Month_February": "Febrer", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Primer dia de la setmana", "Visual_FirstDayOfWeek_Description": "Aquesta opció no té cap sentit si s'ha triat l'estàndard ISO 8601", "Visual_DisplayAll": "Mostra-ho tot", + "Visual_DisplayYears": "Mostra els anys", + "Visual_DisplayQuarters": "Mostra els trimestres", + "Visual_DisplayMonths": "Mostra els mesos", + "Visual_DisplayWeeks": "Mostra les setmanes", + "Visual_DisplayDays": "Mostra els dies", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Color del cursor", "Visual_ForceSelection": "Força la selecció", diff --git a/stringResources/cs-CZ/resources.resjson b/stringResources/cs-CZ/resources.resjson index 100e162..491b8b7 100644 --- a/stringResources/cs-CZ/resources.resjson +++ b/stringResources/cs-CZ/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Začátek fiskálního roku", "Visual_FiscalYear": "Fiskální rok", "Visual_FiscalYear_Description": "Tato možnost nemá žádný smysl, pokud byla vybrána norma ISO 8601.", + "Visual_TreatAsEndOfFiscalYear": "Považovat za konec fiskálního roku", "Visual_Month": "Měsíc", "Visual_Month_January": "Leden", "Visual_Month_February": "Únor", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "První den v týdnu", "Visual_FirstDayOfWeek_Description": "Tato možnost nemá žádný smysl, pokud byla vybrána norma ISO 8601.", "Visual_DisplayAll": "Zobrazit vše", + "Visual_DisplayYears": "Zobrazit roky", + "Visual_DisplayQuarters": "Zobrazit čtvrtletí", + "Visual_DisplayMonths": "Zobrazit měsíce", + "Visual_DisplayWeeks": "Zobrazit týdny", + "Visual_DisplayDays": "Zobrazit dny", "Visual_Cursor": "Kurzor", "Visual_CursorColor": "Barva kurzoru", "Visual_ForceSelection": "Vynutit výběr", diff --git a/stringResources/da-DK/resources.resjson b/stringResources/da-DK/resources.resjson index 16846ca..3dbaddc 100644 --- a/stringResources/da-DK/resources.resjson +++ b/stringResources/da-DK/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Begyndelsen af regnskabsår", "Visual_FiscalYear": "Regnskabsår", "Visual_FiscalYear_Description": "Denne indstilling giver ingen mening, hvis ISO 8601-standarden blev valgt", + "Visual_TreatAsEndOfFiscalYear": "Behandl som regnskabsårets slutning", "Visual_Month": "Måned", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Første dag i ugen", "Visual_FirstDayOfWeek_Description": "Denne indstilling giver ingen mening, hvis ISO 8601-standarden blev valgt", "Visual_DisplayAll": "Vis alle", + "Visual_DisplayYears": "Vis år", + "Visual_DisplayQuarters": "Vis kvartaler", + "Visual_DisplayMonths": "Vis måneder", + "Visual_DisplayWeeks": "Vis uger", + "Visual_DisplayDays": "Vis dage", "Visual_Cursor": "Markør", "Visual_CursorColor": "Markørfarve", "Visual_ForceSelection": "Gennemtving valg", diff --git a/stringResources/de-DE/resources.resjson b/stringResources/de-DE/resources.resjson index 1fdf217..a1128b0 100644 --- a/stringResources/de-DE/resources.resjson +++ b/stringResources/de-DE/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Beginn des Geschäftsjahrs", "Visual_FiscalYear": "Geschäftsjahr", "Visual_FiscalYear_Description": "Diese Option hat keinen Sinn, wenn der ISO 8601-Standard ausgewählt wurde.", + "Visual_TreatAsEndOfFiscalYear": "Als Ende des Geschäftsjahrs behandeln", "Visual_Month": "Monat", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Erster Tag der Woche", "Visual_FirstDayOfWeek_Description": "Diese Option hat keinen Sinn, wenn der ISO 8601-Standard ausgewählt wurde.", "Visual_DisplayAll": "Alle anzeigen", + "Visual_DisplayYears": "Jahre anzeigen", + "Visual_DisplayQuarters": "Quartale anzeigen", + "Visual_DisplayMonths": "Monate anzeigen", + "Visual_DisplayWeeks": "Wochen anzeigen", + "Visual_DisplayDays": "Tage anzeigen", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Cursorfarbe", "Visual_ForceSelection": "Auswahl erzwingen", diff --git a/stringResources/el-GR/resources.resjson b/stringResources/el-GR/resources.resjson index d69b1a6..5a4ea59 100644 --- a/stringResources/el-GR/resources.resjson +++ b/stringResources/el-GR/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Έναρξη οικονομικού έτους", "Visual_FiscalYear": "Οικονομικό έτος", "Visual_FiscalYear_Description": "Αυτή η επιλογή δεν έχει νόημα αν έχει επιλεγεί το πρότυπο ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Χειρισμός ως τέλους οικονομικού έτους", "Visual_Month": "Μήνας", "Visual_Month_January": "Ιανουάριος", "Visual_Month_February": "Φεβρουάριος", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Πρώτη ημέρα της εβδομάδας", "Visual_FirstDayOfWeek_Description": "Αυτή η επιλογή δεν έχει νόημα αν έχει επιλεγεί το πρότυπο ISO 8601", "Visual_DisplayAll": "Εμφάνιση όλων", + "Visual_DisplayYears": "Εμφάνιση ετών", + "Visual_DisplayQuarters": "Εμφάνιση τριμήνων", + "Visual_DisplayMonths": "Εμφάνιση μηνών", + "Visual_DisplayWeeks": "Εμφάνιση εβδομάδων", + "Visual_DisplayDays": "Εμφάνιση ημερών", "Visual_Cursor": "Τρέχουσα ομάδα εγγραφών", "Visual_CursorColor": "Χρώμα δρομέα", "Visual_ForceSelection": "Επιβολή επιλογής", diff --git a/stringResources/en-US/resources.resjson b/stringResources/en-US/resources.resjson index 1d4c0e2..1bbe934 100644 --- a/stringResources/en-US/resources.resjson +++ b/stringResources/en-US/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Fiscal Year Start", "Visual_FiscalYear": "Fiscal Year", "Visual_FiscalYear_Description": "This option have no sense if ISO 8601 standard was picked", + "Visual_TreatAsEndOfFiscalYear": "Treat as end of fiscal year", "Visual_Month": "Month", "Visual_Month_January": "January", "Visual_Month_February": "February", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "First Day of Week", "Visual_FirstDayOfWeek_Description": "This option have no sense if ISO 8601 standard was picked", "Visual_DisplayAll": "Display all", + "Visual_DisplayYears": "Display years", + "Visual_DisplayQuarters": "Display quarters", + "Visual_DisplayMonths": "Display months", + "Visual_DisplayWeeks": "Display weeks", + "Visual_DisplayDays": "Display days", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Cursor color", "Visual_ForceSelection": "Force selection", diff --git a/stringResources/es-ES/resources.resjson b/stringResources/es-ES/resources.resjson index 6886748..04e7b97 100644 --- a/stringResources/es-ES/resources.resjson +++ b/stringResources/es-ES/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Inicio del año fiscal", "Visual_FiscalYear": "Año fiscal", "Visual_FiscalYear_Description": "Esta opción no tiene sentido si se seleccionó el estándar ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Tratar como final del año fiscal", "Visual_Month": "Mes", "Visual_Month_January": "Enero", "Visual_Month_February": "Febrero", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Primer día de la semana", "Visual_FirstDayOfWeek_Description": "Esta opción no tiene sentido si se seleccionó el estándar ISO 8601", "Visual_DisplayAll": "Mostrar todo", + "Visual_DisplayYears": "Mostrar años", + "Visual_DisplayQuarters": "Mostrar trimestres", + "Visual_DisplayMonths": "Mostrar meses", + "Visual_DisplayWeeks": "Mostrar semanas", + "Visual_DisplayDays": "Mostrar días", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Color de cursor", "Visual_ForceSelection": "Forzar selección", diff --git a/stringResources/et-EE/resources.resjson b/stringResources/et-EE/resources.resjson index fc7bca8..aac1983 100644 --- a/stringResources/et-EE/resources.resjson +++ b/stringResources/et-EE/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Majandusaasta algus", "Visual_FiscalYear": "Fiskaalaasta", "Visual_FiscalYear_Description": "Sellel valikul pole mõtet, kui valitud on ISO 8601 standard", + "Visual_TreatAsEndOfFiscalYear": "Kohelge finantsaasta lõpuna", "Visual_Month": "Kuu", "Visual_Month_January": "Jaanuar", "Visual_Month_February": "Veebruar", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Nädala esimene päev", "Visual_FirstDayOfWeek_Description": "Sellel valikul pole mõtet, kui valitud on ISO 8601 standard", "Visual_DisplayAll": "Kuva kõik", + "Visual_DisplayYears": "Kuva aastad", + "Visual_DisplayQuarters": "Kuva kvartalid", + "Visual_DisplayMonths": "Kuva kuud", + "Visual_DisplayWeeks": "Kuva nädalad", + "Visual_DisplayDays": "Kuva päevad", "Visual_Cursor": "Kursor", "Visual_CursorColor": "Kursori värv", "Visual_ForceSelection": "Jõusta valik", diff --git a/stringResources/eu-ES/resources.resjson b/stringResources/eu-ES/resources.resjson index fed72cd..8e1eaff 100644 --- a/stringResources/eu-ES/resources.resjson +++ b/stringResources/eu-ES/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Urte fiskalaren hasiera", "Visual_FiscalYear": "Urte fiskala", "Visual_FiscalYear_Description": "Aukera honek ez du zentzurik ISO 8601 estandarra aukeratuz gero", + "Visual_TreatAsEndOfFiscalYear": "Tratatu urte fiskalaren amaiera gisa", "Visual_Month": "Hilabetea", "Visual_Month_January": "Urtarrila", "Visual_Month_February": "Otsaila", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Asteko lehen eguna", "Visual_FirstDayOfWeek_Description": "Aukera honek ez du zentzurik ISO 8601 estandarra aukeratuz gero", "Visual_DisplayAll": "Bistaratu guztiak", + "Visual_DisplayYears": "Bistaratu urteak", + "Visual_DisplayQuarters": "Bistaratu hiruhilekoak", + "Visual_DisplayMonths": "Bistaratu hilabeteak", + "Visual_DisplayWeeks": "Bistaratu asteak", + "Visual_DisplayDays": "Bistaratu egunak", "Visual_Cursor": "Kurtsorea", "Visual_CursorColor": "Kurtsorearen kolorea", "Visual_ForceSelection": "Behartu hautapena", diff --git a/stringResources/fi-FI/resources.resjson b/stringResources/fi-FI/resources.resjson index f654b70..2680c76 100644 --- a/stringResources/fi-FI/resources.resjson +++ b/stringResources/fi-FI/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Tilivuoden alku", "Visual_FiscalYear": "Tilivuosi", "Visual_FiscalYear_Description": "Tämä asetus ei ole toteuttamiskelpoinen, jos ISO 8601 -standardia ei valita", + "Visual_TreatAsEndOfFiscalYear": "Käsittele tilivuoden loppuna", "Visual_Month": "Kuukausi", "Visual_Month_January": "tammikuu", "Visual_Month_February": "helmikuu", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Viikon ensimmäinen päivä", "Visual_FirstDayOfWeek_Description": "Tämä asetus ei ole toteuttamiskelpoinen, jos ISO 8601 -standardia ei valita", "Visual_DisplayAll": "Näytä kaikki", + "Visual_DisplayYears": "Näytä vuodet", + "Visual_DisplayQuarters": "Näytä vuosineljännekset", + "Visual_DisplayMonths": "Näytä kuukaudet", + "Visual_DisplayWeeks": "Näytä viikot", + "Visual_DisplayDays": "Näytä päivät", "Visual_Cursor": "Kohdistin", "Visual_CursorColor": "Kohdistimen väri", "Visual_ForceSelection": "Pakota valinta", diff --git a/stringResources/fr-FR/resources.resjson b/stringResources/fr-FR/resources.resjson index 26978d1..89febbf 100644 --- a/stringResources/fr-FR/resources.resjson +++ b/stringResources/fr-FR/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Début de l'année fiscale", "Visual_FiscalYear": "Année fiscale", "Visual_FiscalYear_Description": "Cette option n’a aucun sens si la norme ISO 8601 a été sélectionnée", + "Visual_TreatAsEndOfFiscalYear": "Considérer comme la fin de l’exercice comptable", "Visual_Month": "Mois", "Visual_Month_January": "Janvier", "Visual_Month_February": "Février", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Premier jour de la semaine", "Visual_FirstDayOfWeek_Description": "Cette option n’a aucun sens si la norme ISO 8601 a été sélectionnée", "Visual_DisplayAll": "Afficher tout", + "Visual_DisplayYears": "Années d’affichage", + "Visual_DisplayQuarters": "Afficher les trimestres", + "Visual_DisplayMonths": "Afficher les mois", + "Visual_DisplayWeeks": "Afficher les semaines", + "Visual_DisplayDays": "Jours d’affichage", "Visual_Cursor": "Curseur", "Visual_CursorColor": "Couleur du curseur", "Visual_ForceSelection": "Forcer la sélection", diff --git a/stringResources/gl-ES/resources.resjson b/stringResources/gl-ES/resources.resjson index 1ae2c27..9bc38e5 100644 --- a/stringResources/gl-ES/resources.resjson +++ b/stringResources/gl-ES/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Inicio do ano fiscal", "Visual_FiscalYear": "Ano fiscal", "Visual_FiscalYear_Description": "Esta opción non ten sentido se se escolleu o estándar ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Tratar como fin de ano fiscal", "Visual_Month": "Mes", "Visual_Month_January": "Xaneiro", "Visual_Month_February": "Febreiro", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Primeiro día da semana", "Visual_FirstDayOfWeek_Description": "Esta opción non ten sentido se se escolleu o estándar ISO 8601", "Visual_DisplayAll": "Mostrar todo", + "Visual_DisplayYears": "Mostrar anos", + "Visual_DisplayQuarters": "Mostrar trimestres", + "Visual_DisplayMonths": "Mostrar meses", + "Visual_DisplayWeeks": "Mostrar semanas", + "Visual_DisplayDays": "Mostrar días", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Cor do cursor", "Visual_ForceSelection": "Forzar selección", diff --git a/stringResources/he-IL/resources.resjson b/stringResources/he-IL/resources.resjson index f9cceb1..867e83d 100644 --- a/stringResources/he-IL/resources.resjson +++ b/stringResources/he-IL/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "התחלת שנת הכספים", "Visual_FiscalYear": "שנת כספים", "Visual_FiscalYear_Description": "אפשרות זו אינה הגיונית אם תקן ISO 8601 נבחר", + "Visual_TreatAsEndOfFiscalYear": "התייחס כתאריך סיום שנת כספים", "Visual_Month": "חודש", "Visual_Month_January": "ינואר", "Visual_Month_February": "פברואר", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "היום הראשון בשבוע", "Visual_FirstDayOfWeek_Description": "אפשרות זו אינה הגיונית אם תקן ISO 8601 נבחר", "Visual_DisplayAll": "הצג הכול", + "Visual_DisplayYears": "הצג שנים", + "Visual_DisplayQuarters": "הצג רבעונים", + "Visual_DisplayMonths": "הצג חודשים", + "Visual_DisplayWeeks": "הצג שבועות", + "Visual_DisplayDays": "הצג ימים", "Visual_Cursor": "סמן", "Visual_CursorColor": "צבע סמן", "Visual_ForceSelection": "כפה בחירה", diff --git a/stringResources/hi-IN/resources.resjson b/stringResources/hi-IN/resources.resjson index cef9950..52ed03b 100644 --- a/stringResources/hi-IN/resources.resjson +++ b/stringResources/hi-IN/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "वित्त वर्ष प्रारंभ", "Visual_FiscalYear": "वित्तीय वर्ष", "Visual_FiscalYear_Description": "यदि ISO 8601 मानक चुना गया था, तो इस विकल्प का कोई अर्थ नहीं है", + "Visual_TreatAsEndOfFiscalYear": "वित्त वर्ष के अंत के रूप में मानें", "Visual_Month": "महीना", "Visual_Month_January": "जनवरी", "Visual_Month_February": "फ़रवरी", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "सप्ताह का पहला दिन", "Visual_FirstDayOfWeek_Description": "यदि ISO 8601 मानक चुना गया था, तो इस विकल्प का कोई अर्थ नहीं है", "Visual_DisplayAll": "सभी प्रदर्शित करें", + "Visual_DisplayYears": "वर्ष प्रदर्शित करें", + "Visual_DisplayQuarters": "तिमाही प्रदर्शित करें", + "Visual_DisplayMonths": "माह प्रदर्शित करें", + "Visual_DisplayWeeks": "सप्ताह प्रदर्शित करें", + "Visual_DisplayDays": "दिन प्रदर्शित करें", "Visual_Cursor": "कर्सर", "Visual_CursorColor": "कर्सर का रंग", "Visual_ForceSelection": "बाध्य चयन", diff --git a/stringResources/hr-HR/resources.resjson b/stringResources/hr-HR/resources.resjson index 248cfba..f89b378 100644 --- a/stringResources/hr-HR/resources.resjson +++ b/stringResources/hr-HR/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Početak fiskalne godine", "Visual_FiscalYear": "Poslovna godina", "Visual_FiscalYear_Description": "Ta mogućnost nema smisla ako je odabran standard ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Tretiraj kao kraj poslovne godine", "Visual_Month": "Mjesec", "Visual_Month_January": "siječnja", "Visual_Month_February": "veljače", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Prvi dan u tjednu", "Visual_FirstDayOfWeek_Description": "Ta mogućnost nema smisla ako je odabran standard ISO 8601", "Visual_DisplayAll": "Prikaži sve", + "Visual_DisplayYears": "Prikaži godine", + "Visual_DisplayQuarters": "Prikaži tromjesečja", + "Visual_DisplayMonths": "Prikaži mjesece", + "Visual_DisplayWeeks": "Prikaži tjedne", + "Visual_DisplayDays": "Prikaži dane", "Visual_Cursor": "Kursor", "Visual_CursorColor": "Boja kursora.", "Visual_ForceSelection": "Prisilan odabir", diff --git a/stringResources/hu-HU/resources.resjson b/stringResources/hu-HU/resources.resjson index d306759..408c47c 100644 --- a/stringResources/hu-HU/resources.resjson +++ b/stringResources/hu-HU/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Pénzügyi év kezdete", "Visual_FiscalYear": "Pénzügyi év", "Visual_FiscalYear_Description": "Ennek a beállításnak nincs értelme, ha az ISO 8601 szabványt választotta", + "Visual_TreatAsEndOfFiscalYear": "Kezelés a pénzügyi év végeként", "Visual_Month": "Hónap", "Visual_Month_January": "Január", "Visual_Month_February": "Február", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "A hét első napja", "Visual_FirstDayOfWeek_Description": "Ennek a beállításnak nincs értelme, ha az ISO 8601 szabványt választotta", "Visual_DisplayAll": "Összes megjelenítése", + "Visual_DisplayYears": "Évek megjelenítése", + "Visual_DisplayQuarters": "Negyedévek megjelenítése", + "Visual_DisplayMonths": "Hónapok megjelenítése", + "Visual_DisplayWeeks": "Hetek megjelenítése", + "Visual_DisplayDays": "Napok megjelenítése", "Visual_Cursor": "Kurzor", "Visual_CursorColor": "Kurzor színe", "Visual_ForceSelection": "Kötelező kiválasztás", diff --git a/stringResources/id-ID/resources.resjson b/stringResources/id-ID/resources.resjson index 6b43777..a86c058 100644 --- a/stringResources/id-ID/resources.resjson +++ b/stringResources/id-ID/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Awal Tahun Fiskal", "Visual_FiscalYear": "Tahun Fiskal", "Visual_FiscalYear_Description": "Opsi ini tidak masuk akal jika standar ISO 8601 dipilih", + "Visual_TreatAsEndOfFiscalYear": "Perlakukan sebagai akhir tahun fiskal", "Visual_Month": "Bulan", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Hari Pertama Dalam Seminggu", "Visual_FirstDayOfWeek_Description": "Opsi ini tidak masuk akal jika standar ISO 8601 dipilih", "Visual_DisplayAll": "Tampilkan semua", + "Visual_DisplayYears": "Tampilkan tahun", + "Visual_DisplayQuarters": "Tampilkan kuartal", + "Visual_DisplayMonths": "Tampilkan bulan", + "Visual_DisplayWeeks": "Tampilkan minggu", + "Visual_DisplayDays": "Tampilkan hari", "Visual_Cursor": "Kursor", "Visual_CursorColor": "Warna kursor", "Visual_ForceSelection": "Pilih paksa", diff --git a/stringResources/it-IT/resources.resjson b/stringResources/it-IT/resources.resjson index aaaae3e..e796c47 100644 --- a/stringResources/it-IT/resources.resjson +++ b/stringResources/it-IT/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Inizio anno fiscale", "Visual_FiscalYear": "Anno fiscale", "Visual_FiscalYear_Description": "Questa opzione non ha senso se è stato selezionato lo standard ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Considera come fine dell'anno fiscale", "Visual_Month": "Mese", "Visual_Month_January": "Gennaio", "Visual_Month_February": "Febbraio", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Primo giorno della settimana", "Visual_FirstDayOfWeek_Description": "Questa opzione non ha senso se è stato selezionato lo standard ISO 8601", "Visual_DisplayAll": "Visualizza tutto", + "Visual_DisplayYears": "Visualizza anni", + "Visual_DisplayQuarters": "Visualizza trimestri", + "Visual_DisplayMonths": "Visualizza mese", + "Visual_DisplayWeeks": "Visualizza settimane", + "Visual_DisplayDays": "Visualizza giorni", "Visual_Cursor": "Cursore", "Visual_CursorColor": "Colore cursore", "Visual_ForceSelection": "Forza selezione", diff --git a/stringResources/ja-JP/resources.resjson b/stringResources/ja-JP/resources.resjson index ad955d0..ee90b70 100644 --- a/stringResources/ja-JP/resources.resjson +++ b/stringResources/ja-JP/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "会計年度の開始", "Visual_FiscalYear": "会計年度", "Visual_FiscalYear_Description": "ISO 8601 標準が選択されている場合、このオプションには意味がありません", + "Visual_TreatAsEndOfFiscalYear": "会計年度の終わりとして扱う", "Visual_Month": "月", "Visual_Month_January": "1 月", "Visual_Month_February": "2 月", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "週の最初の曜日", "Visual_FirstDayOfWeek_Description": "ISO 8601 標準が選択されている場合、このオプションには意味がありません", "Visual_DisplayAll": "すべて表示", + "Visual_DisplayYears": "年数を表示する", + "Visual_DisplayQuarters": "四半期を表示する", + "Visual_DisplayMonths": "月を表示する", + "Visual_DisplayWeeks": "週を表示する", + "Visual_DisplayDays": "日数を表示する", "Visual_Cursor": "カーソル", "Visual_CursorColor": "カーソルの色", "Visual_ForceSelection": "選択を必須にする", diff --git a/stringResources/kk-KZ/resources.resjson b/stringResources/kk-KZ/resources.resjson index 3c724dc..7263832 100644 --- a/stringResources/kk-KZ/resources.resjson +++ b/stringResources/kk-KZ/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Қаржы жылының басталуы", "Visual_FiscalYear": "Қаржылық жыл", "Visual_FiscalYear_Description": "ISO 8601 стандарты таңдалған болса, бұл опцияның мағынасы жоқ", + "Visual_TreatAsEndOfFiscalYear": "Қаржы жылының соңы ретінде қарастыру", "Visual_Month": "Ай", "Visual_Month_January": "Қаңтар", "Visual_Month_February": "Ақпан", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Аптаның бірінші күні", "Visual_FirstDayOfWeek_Description": "ISO 8601 стандарты таңдалған болса, бұл опцияның мағынасы жоқ", "Visual_DisplayAll": "Барлығын көрсету", + "Visual_DisplayYears": "Жылдарды көрсету", + "Visual_DisplayQuarters": "Тоқсандарды көрсету", + "Visual_DisplayMonths": "Айларды көрсету", + "Visual_DisplayWeeks": "Апталарды көрсету", + "Visual_DisplayDays": "Күндерді көрсету", "Visual_Cursor": "Курсор", "Visual_CursorColor": "Курсор түсі", "Visual_ForceSelection": "Мәжбүрлі таңдау", diff --git a/stringResources/ko-KR/resources.resjson b/stringResources/ko-KR/resources.resjson index 90bb31e..6ff45fc 100644 --- a/stringResources/ko-KR/resources.resjson +++ b/stringResources/ko-KR/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "회계 연도 시작", "Visual_FiscalYear": "회계 연도", "Visual_FiscalYear_Description": "ISO 8601 표준을 선택한 경우 이 옵션은 의미가 없습니다.", + "Visual_TreatAsEndOfFiscalYear": "회계 연도의 끝으로 처리", "Visual_Month": "월", "Visual_Month_January": "1월", "Visual_Month_February": "2월", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "시작 요일", "Visual_FirstDayOfWeek_Description": "ISO 8601 표준을 선택한 경우 이 옵션은 의미가 없습니다.", "Visual_DisplayAll": "모두 표시", + "Visual_DisplayYears": "연도 표시", + "Visual_DisplayQuarters": "분기 표시", + "Visual_DisplayMonths": "월 표시", + "Visual_DisplayWeeks": "주 표시", + "Visual_DisplayDays": "일 표시", "Visual_Cursor": "커서", "Visual_CursorColor": "커서 색", "Visual_ForceSelection": "강제로 선택", diff --git a/stringResources/lt-LT/resources.resjson b/stringResources/lt-LT/resources.resjson index 551f826..34492bc 100644 --- a/stringResources/lt-LT/resources.resjson +++ b/stringResources/lt-LT/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Finansinių metų pradžia", "Visual_FiscalYear": "Finansiniai metai", "Visual_FiscalYear_Description": "Ši parinktis neturi jokios prasmės, jei buvo parinktas ISO 8601 standartas", + "Visual_TreatAsEndOfFiscalYear": "Laikyti finansinių metų pabaiga", "Visual_Month": "Mėnuo", "Visual_Month_January": "Sausis", "Visual_Month_February": "Vasaris", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Pirma savaitės diena", "Visual_FirstDayOfWeek_Description": "Ši parinktis neturi jokios prasmės, jei buvo parinktas ISO 8601 standartas", "Visual_DisplayAll": "Rodyti viską", + "Visual_DisplayYears": "Rodyti metus", + "Visual_DisplayQuarters": "Rodyti ketvirčius", + "Visual_DisplayMonths": "Rodyti mėnesius", + "Visual_DisplayWeeks": "Rodyti savaites", + "Visual_DisplayDays": "Rodyti dienas", "Visual_Cursor": "Žymiklis", "Visual_CursorColor": "Žymiklio spalva", "Visual_ForceSelection": "Jėgos pasirinkimas", diff --git a/stringResources/lv-LV/resources.resjson b/stringResources/lv-LV/resources.resjson index 8293d40..9e4ca68 100644 --- a/stringResources/lv-LV/resources.resjson +++ b/stringResources/lv-LV/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Finanšu gada sākums", "Visual_FiscalYear": "Finanšu gads", "Visual_FiscalYear_Description": "Šai opcijai nav jēgas, ja tika atlasīts standarts ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Apstrādāt kā finanšu gada beigas", "Visual_Month": "Mēnesis", "Visual_Month_January": "janvārī", "Visual_Month_February": "februārī", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Pirmā nedēļas diena", "Visual_FirstDayOfWeek_Description": "Šai opcijai nav jēgas, ja tika atlasīts standarts ISO 8601", "Visual_DisplayAll": "Parādīt visu", + "Visual_DisplayYears": "Rādīt gadus", + "Visual_DisplayQuarters": "Rādīt ceturkšņus", + "Visual_DisplayMonths": "Rādīt mēnešus", + "Visual_DisplayWeeks": "Rādīt nedēļas", + "Visual_DisplayDays": "Rādīt dienas", "Visual_Cursor": "Kursors", "Visual_CursorColor": "Kursora krāsa", "Visual_ForceSelection": "Piespiedu atlase", diff --git a/stringResources/ms-MY/resources.resjson b/stringResources/ms-MY/resources.resjson index c0d7bd6..cf677bc 100644 --- a/stringResources/ms-MY/resources.resjson +++ b/stringResources/ms-MY/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Permulaan Tahun Fiskal", "Visual_FiscalYear": "Tahun Fiskal", "Visual_FiscalYear_Description": "Opsyen ini tidak mempunyai peka jika standard ISO 8601 dipilih", + "Visual_TreatAsEndOfFiscalYear": "Anggap sebagai hujung tahun fiskal", "Visual_Month": "Bulan", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Hari Pertama dalam Minggu", "Visual_FirstDayOfWeek_Description": "Opsyen ini tidak mempunyai peka jika standard ISO 8601 dipilih", "Visual_DisplayAll": "Paparkan semua", + "Visual_DisplayYears": "Paparkan tahun", + "Visual_DisplayQuarters": "Paparkan suku tahun", + "Visual_DisplayMonths": "Paparkan bulan", + "Visual_DisplayWeeks": "Paparkan minggu", + "Visual_DisplayDays": "Paparkan hari", "Visual_Cursor": "Kursor", "Visual_CursorColor": "Warna kursor", "Visual_ForceSelection": "Pemilihan paksa", diff --git a/stringResources/nb-NO/resources.resjson b/stringResources/nb-NO/resources.resjson index a41fa15..ae32767 100644 --- a/stringResources/nb-NO/resources.resjson +++ b/stringResources/nb-NO/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Start på regnskapsåret", "Visual_FiscalYear": "Regnskapsår", "Visual_FiscalYear_Description": "Dette alternativet har ingen mening hvis ISO 8601-standarden ble valgt", + "Visual_TreatAsEndOfFiscalYear": "Behandle som slutten av regnskapsåret", "Visual_Month": "Måned", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Første dag i uken", "Visual_FirstDayOfWeek_Description": "Dette alternativet har ingen mening hvis ISO 8601-standarden ble valgt", "Visual_DisplayAll": "Vis alle", + "Visual_DisplayYears": "Vis år", + "Visual_DisplayQuarters": "Vis kvartaler", + "Visual_DisplayMonths": "Vis måneder", + "Visual_DisplayWeeks": "Vis uker", + "Visual_DisplayDays": "Vis dager", "Visual_Cursor": "Markør", "Visual_CursorColor": "Markørfarge.", "Visual_ForceSelection": "Tving valg", diff --git a/stringResources/nl-NL/resources.resjson b/stringResources/nl-NL/resources.resjson index 3c9b9c6..70a07f6 100644 --- a/stringResources/nl-NL/resources.resjson +++ b/stringResources/nl-NL/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Begin van het boekjaar", "Visual_FiscalYear": "Boekjaar", "Visual_FiscalYear_Description": "Deze optie heeft geen zin als de ISO 8601-standaard is gekozen", + "Visual_TreatAsEndOfFiscalYear": "Behandelen als einde van het boekjaar", "Visual_Month": "Maand", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Eerste dag van de week", "Visual_FirstDayOfWeek_Description": "Deze optie heeft geen zin als de ISO 8601-standaard is gekozen", "Visual_DisplayAll": "Alles weergeven", + "Visual_DisplayYears": "Jaren weergeven", + "Visual_DisplayQuarters": "Kwartalen weergeven", + "Visual_DisplayMonths": "Maanden weergeven", + "Visual_DisplayWeeks": "Weken weergeven", + "Visual_DisplayDays": "Dagen weergeven", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Cursorkleur", "Visual_ForceSelection": "Selectie forceren", diff --git a/stringResources/pl-PL/resources.resjson b/stringResources/pl-PL/resources.resjson index 365ef1c..88fbd9a 100644 --- a/stringResources/pl-PL/resources.resjson +++ b/stringResources/pl-PL/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Początek roku obrachunkowego", "Visual_FiscalYear": "Rok obrachunkowy", "Visual_FiscalYear_Description": "Ta opcja nie ma znaczenia, jeśli wybrano standard ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Traktuj jako koniec roku obrachunkowego", "Visual_Month": "Miesiąc", "Visual_Month_January": "styczeń", "Visual_Month_February": "Luty", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Pierwszy dzień tygodnia", "Visual_FirstDayOfWeek_Description": "Ta opcja nie ma znaczenia, jeśli wybrano standard ISO 8601", "Visual_DisplayAll": "Wyświetl wszystko", + "Visual_DisplayYears": "Wyświetlaj lata", + "Visual_DisplayQuarters": "Wyświetlaj kwartały", + "Visual_DisplayMonths": "Wyświetlaj miesiące", + "Visual_DisplayWeeks": "Wyświetlaj tygodnie", + "Visual_DisplayDays": "Wyświetlaj dni", "Visual_Cursor": "Kursor", "Visual_CursorColor": "Kolor kursora", "Visual_ForceSelection": "Wymuś wybór", diff --git a/stringResources/pt-BR/resources.resjson b/stringResources/pt-BR/resources.resjson index 44aa76d..ef65c79 100644 --- a/stringResources/pt-BR/resources.resjson +++ b/stringResources/pt-BR/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Início do Ano Fiscal", "Visual_FiscalYear": "Ano Fiscal", "Visual_FiscalYear_Description": "Esta opção não faz sentido se o padrão ISO 8601 foi escolhido", + "Visual_TreatAsEndOfFiscalYear": "Tratar como fim do ano fiscal", "Visual_Month": "Mês", "Visual_Month_January": "Janeiro", "Visual_Month_February": "Fevereiro", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Primeiro Dia da Semana", "Visual_FirstDayOfWeek_Description": "Esta opção não faz sentido se o padrão ISO 8601 foi escolhido", "Visual_DisplayAll": "Exibir todos", + "Visual_DisplayYears": "Exibir anos", + "Visual_DisplayQuarters": "Exibir trimestres", + "Visual_DisplayMonths": "Exibir meses", + "Visual_DisplayWeeks": "Exibir semanas", + "Visual_DisplayDays": "Exibir dias", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Cor do cursor", "Visual_ForceSelection": "Forçar seleção", diff --git a/stringResources/pt-PT/resources.resjson b/stringResources/pt-PT/resources.resjson index b26eb9e..718ae42 100644 --- a/stringResources/pt-PT/resources.resjson +++ b/stringResources/pt-PT/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Início do Ano Fiscal", "Visual_FiscalYear": "Ano Fiscal", "Visual_FiscalYear_Description": "Esta opção não faz sentido se a norma ISO 8601 tiver sido escolhida", + "Visual_TreatAsEndOfFiscalYear": "Tratar como fim do ano fiscal", "Visual_Month": "Mês", "Visual_Month_January": "Janeiro", "Visual_Month_February": "Fevereiro", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Primeiro Dia da Semana", "Visual_FirstDayOfWeek_Description": "Esta opção não faz sentido se a norma ISO 8601 tiver sido escolhida", "Visual_DisplayAll": "Mostrar todos", + "Visual_DisplayYears": "Apresentar anos", + "Visual_DisplayQuarters": "Apresentar trimestres", + "Visual_DisplayMonths": "Apresentar meses", + "Visual_DisplayWeeks": "Apresentar semanas", + "Visual_DisplayDays": "Apresentar dias", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Cor do cursor", "Visual_ForceSelection": "Forçar seleção", diff --git a/stringResources/ro-RO/resources.resjson b/stringResources/ro-RO/resources.resjson index 91ff7e2..2974b66 100644 --- a/stringResources/ro-RO/resources.resjson +++ b/stringResources/ro-RO/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Început an financiar", "Visual_FiscalYear": "An fiscal", "Visual_FiscalYear_Description": "Această opțiune nu are sens dacă a fost selectat standardul ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Tratați ca sfârșit de an fiscal", "Visual_Month": "Lună", "Visual_Month_January": "Ianuarie", "Visual_Month_February": "Februarie", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Prima zi a săptămânii", "Visual_FirstDayOfWeek_Description": "Această opțiune nu are sens dacă a fost selectat standardul ISO 8601", "Visual_DisplayAll": "Afișare totală", + "Visual_DisplayYears": "Afișați anii", + "Visual_DisplayQuarters": "Afișați trimestrele", + "Visual_DisplayMonths": "Afișați lunile", + "Visual_DisplayWeeks": "Afișați săptămânile", + "Visual_DisplayDays": "Afișați zilele", "Visual_Cursor": "Cursor", "Visual_CursorColor": "Culoarea cursorului", "Visual_ForceSelection": "Forțați selecția", diff --git a/stringResources/ru-RU/resources.resjson b/stringResources/ru-RU/resources.resjson index e0adcbf..c86ad0b 100644 --- a/stringResources/ru-RU/resources.resjson +++ b/stringResources/ru-RU/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Начало финансового года", "Visual_FiscalYear": "Финансовый год", "Visual_FiscalYear_Description": "Этот параметр не имеет смысла, если выбран стандарт ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Рассматривать как окончание финансового года", "Visual_Month": "Месяц", "Visual_Month_January": "Январь", "Visual_Month_February": "Февраль", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Первый день недели", "Visual_FirstDayOfWeek_Description": "Этот параметр не имеет смысла, если выбран стандарт ISO 8601", "Visual_DisplayAll": "Показать все", + "Visual_DisplayYears": "Показать годы", + "Visual_DisplayQuarters": "Показать кварталы", + "Visual_DisplayMonths": "Показать месяцы", + "Visual_DisplayWeeks": "Показать недели", + "Visual_DisplayDays": "Показать дни", "Visual_Cursor": "Курсор", "Visual_CursorColor": "Цвет курсора", "Visual_ForceSelection": "Принудительный выбор", diff --git a/stringResources/sk-SK/resources.resjson b/stringResources/sk-SK/resources.resjson index 29de86b..2989589 100644 --- a/stringResources/sk-SK/resources.resjson +++ b/stringResources/sk-SK/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Začiatok fiškálneho roka", "Visual_FiscalYear": "Fiškálny rok", "Visual_FiscalYear_Description": "Táto možnosť nemá zmysel, ak bol vybratý štandard ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Považovať za koniec fiškálneho roka", "Visual_Month": "Mesiac", "Visual_Month_January": "január", "Visual_Month_February": "február", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Prvý deň v týždni", "Visual_FirstDayOfWeek_Description": "Táto možnosť nemá zmysel, ak bol vybratý štandard ISO 8601", "Visual_DisplayAll": "Zobraziť všetko", + "Visual_DisplayYears": "Zobraziť roky", + "Visual_DisplayQuarters": "Zobraziť štvrťroky", + "Visual_DisplayMonths": "Zobraziť mesiace", + "Visual_DisplayWeeks": "Zobraziť týždne", + "Visual_DisplayDays": "Zobraziť dni", "Visual_Cursor": "Kurzor", "Visual_CursorColor": "Farba kurzora", "Visual_ForceSelection": "Vynútiť výber", diff --git a/stringResources/sl-SI/resources.resjson b/stringResources/sl-SI/resources.resjson index 07f25b4..bf6740a 100644 --- a/stringResources/sl-SI/resources.resjson +++ b/stringResources/sl-SI/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Začetek poslovnega leta", "Visual_FiscalYear": "Poslovno leto", "Visual_FiscalYear_Description": "Ta možnost nima smisla, če je bil izbran standard ISO 8601.", + "Visual_TreatAsEndOfFiscalYear": "Obravnavaj kot konec proračunskega leta", "Visual_Month": "Mesec", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Prvi dan v tednu", "Visual_FirstDayOfWeek_Description": "Ta možnost nima smisla, če je bil izbran standard ISO 8601.", "Visual_DisplayAll": "Prikaži vse", + "Visual_DisplayYears": "Prikaži leta", + "Visual_DisplayQuarters": "Prikaži četrtletja", + "Visual_DisplayMonths": "Prikaži mesece", + "Visual_DisplayWeeks": "Prikaži tedne", + "Visual_DisplayDays": "Prikaži dneve", "Visual_Cursor": "Kazalka", "Visual_CursorColor": "Barva kazalke", "Visual_ForceSelection": "Vsili izbor", diff --git a/stringResources/sr-Cyrl-RS/resources.resjson b/stringResources/sr-Cyrl-RS/resources.resjson index 6c3f1f9..6732da4 100644 --- a/stringResources/sr-Cyrl-RS/resources.resjson +++ b/stringResources/sr-Cyrl-RS/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Почетак фискалне године", "Visual_FiscalYear": "Фискална година", "Visual_FiscalYear_Description": "Ова опција нема смисла ако је изабран ISO 8601 стандард", + "Visual_TreatAsEndOfFiscalYear": "Третирајте као крај фискалне године", "Visual_Month": "Месец", "Visual_Month_January": "Јануар", "Visual_Month_February": "Фебруар", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Први дан у седмици", "Visual_FirstDayOfWeek_Description": "Ова опција нема смисла ако је изабран ISO 8601 стандард", "Visual_DisplayAll": "Прикажи све", + "Visual_DisplayYears": "Прикажи године", + "Visual_DisplayQuarters": "Прикажи квартале", + "Visual_DisplayMonths": "Прикажи месеце", + "Visual_DisplayWeeks": "Прикажи недеље", + "Visual_DisplayDays": "Прикажи дане", "Visual_Cursor": "Курсор", "Visual_CursorColor": "Боја курсора", "Visual_ForceSelection": "Наметни избор", diff --git a/stringResources/sr-Latn-RS/resources.resjson b/stringResources/sr-Latn-RS/resources.resjson index 2e629e6..aa39eb0 100644 --- a/stringResources/sr-Latn-RS/resources.resjson +++ b/stringResources/sr-Latn-RS/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Početak fiskalne godine", "Visual_FiscalYear": "Fiskalna godina", "Visual_FiscalYear_Description": "Ova opcija nema smisla ako je izabran ISO 8601 standard", + "Visual_TreatAsEndOfFiscalYear": "Tretiraj kao kraj fiskalne godine", "Visual_Month": "Mesec", "Visual_Month_January": "Januar", "Visual_Month_February": "Februar", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Prvi dan u sedmici", "Visual_FirstDayOfWeek_Description": "Ova opcija nema smisla ako je izabran ISO 8601 standard", "Visual_DisplayAll": "Prikaži sve", + "Visual_DisplayYears": "Prikaži godine", + "Visual_DisplayQuarters": "Prikaži kvartale", + "Visual_DisplayMonths": "Prikaži mesece", + "Visual_DisplayWeeks": "Prikaži sedmice", + "Visual_DisplayDays": "Prikaži dane", "Visual_Cursor": "Kursor", "Visual_CursorColor": "Boja kursora", "Visual_ForceSelection": "Nametni izbor", diff --git a/stringResources/sv-SE/resources.resjson b/stringResources/sv-SE/resources.resjson index 2b3e776..92824f0 100644 --- a/stringResources/sv-SE/resources.resjson +++ b/stringResources/sv-SE/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Räkenskapsårets början", "Visual_FiscalYear": "Räkenskapsår", "Visual_FiscalYear_Description": "Det här alternativet är inte meningsfullt om ISO 8601-standarden har valts", + "Visual_TreatAsEndOfFiscalYear": "Behandla som räkenskapsårets slut", "Visual_Month": "Månad", "Visual_Month_January": "Januari", "Visual_Month_February": "Februari", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Första dagen i veckan", "Visual_FirstDayOfWeek_Description": "Det här alternativet är inte meningsfullt om ISO 8601-standarden har valts", "Visual_DisplayAll": "Visa alla", + "Visual_DisplayYears": "Visa år", + "Visual_DisplayQuarters": "Visa kvartal", + "Visual_DisplayMonths": "Visa månader", + "Visual_DisplayWeeks": "Visa veckor", + "Visual_DisplayDays": "Visa dagar", "Visual_Cursor": "Markör", "Visual_CursorColor": "Markörens färg", "Visual_ForceSelection": "Framtvinga markering", diff --git a/stringResources/th-TH/resources.resjson b/stringResources/th-TH/resources.resjson index c5d5b4f..88112da 100644 --- a/stringResources/th-TH/resources.resjson +++ b/stringResources/th-TH/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "การเริ่มต้นปีงบประมาณ", "Visual_FiscalYear": "ปีงบประมาณ", "Visual_FiscalYear_Description": "ตัวเลือกนี้ไม่สมเหตุสมผลหากเลือกมาตรฐาน ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "ถือว่าเป็นวันสิ้นปีบัญชี", "Visual_Month": "เดือน", "Visual_Month_January": "มกราคม", "Visual_Month_February": "กุมภาพันธ์", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "วันแรกของสัปดาห์", "Visual_FirstDayOfWeek_Description": "ตัวเลือกนี้ไม่สมเหตุสมผลหากเลือกมาตรฐาน ISO 8601", "Visual_DisplayAll": "แสดงทั้งหมด", + "Visual_DisplayYears": "แสดงปี", + "Visual_DisplayQuarters": "แสดงไตรมาส", + "Visual_DisplayMonths": "แสดงเดือน", + "Visual_DisplayWeeks": "แสดงสัปดาห์", + "Visual_DisplayDays": "แสดงวัน", "Visual_Cursor": "เคอร์เซอร์", "Visual_CursorColor": "สีเคอร์เซอร์", "Visual_ForceSelection": "บังคับเลือก", diff --git a/stringResources/tr-TR/resources.resjson b/stringResources/tr-TR/resources.resjson index bcf08f0..9da3686 100644 --- a/stringResources/tr-TR/resources.resjson +++ b/stringResources/tr-TR/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Mali Yıl Başlangıcı", "Visual_FiscalYear": "Mali Yıl", "Visual_FiscalYear_Description": "ISO 8601 standardı seçiliyorsa bu seçeneğin hiçbir değeri yok", + "Visual_TreatAsEndOfFiscalYear": "Mali yıl sonu olarak değerlendir", "Visual_Month": "Ay", "Visual_Month_January": "Ocak", "Visual_Month_February": "Şubat", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Haftanın İlk Günü", "Visual_FirstDayOfWeek_Description": "ISO 8601 standardı seçiliyorsa bu seçeneğin hiçbir değeri yok", "Visual_DisplayAll": "Tümünü göster", + "Visual_DisplayYears": "Yılları görüntüle", + "Visual_DisplayQuarters": "Çeyrek dönemleri görüntüle", + "Visual_DisplayMonths": "Ayları görüntüle", + "Visual_DisplayWeeks": "Haftaları görüntüle", + "Visual_DisplayDays": "Günleri görüntüle", "Visual_Cursor": "İmleç", "Visual_CursorColor": "İmleç rengi", "Visual_ForceSelection": "Seçimi zorla", diff --git a/stringResources/uk-UA/resources.resjson b/stringResources/uk-UA/resources.resjson index 3a5d650..be41794 100644 --- a/stringResources/uk-UA/resources.resjson +++ b/stringResources/uk-UA/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Початок фінансового року", "Visual_FiscalYear": "Фінансовий рік", "Visual_FiscalYear_Description": "Цей варіант не має сенсу, якщо вибрано стандарт ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Розглядати як кінець фінансового року", "Visual_Month": "Місяць", "Visual_Month_January": "січня", "Visual_Month_February": "лютого", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Перший день тижня", "Visual_FirstDayOfWeek_Description": "Цей варіант не має сенсу, якщо вибрано стандарт ISO 8601", "Visual_DisplayAll": "Відобразити все", + "Visual_DisplayYears": "За роками", + "Visual_DisplayQuarters": "За кварталами", + "Visual_DisplayMonths": "За місяцями", + "Visual_DisplayWeeks": "За тижнями", + "Visual_DisplayDays": "За днями", "Visual_Cursor": "Курсор", "Visual_CursorColor": "Колір курсору", "Visual_ForceSelection": "Примусово застосувати виділення", diff --git a/stringResources/vi-VN/resources.resjson b/stringResources/vi-VN/resources.resjson index cafbd47..1a39a56 100644 --- a/stringResources/vi-VN/resources.resjson +++ b/stringResources/vi-VN/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "Bắt đầu năm tài chính", "Visual_FiscalYear": "Năm tài chính", "Visual_FiscalYear_Description": "Tùy chọn này sẽ vô nghĩa nếu bạn chọn tiêu chuẩn ISO 8601", + "Visual_TreatAsEndOfFiscalYear": "Dùng làm cuối năm tài chính", "Visual_Month": "Tháng", "Visual_Month_January": "Tháng 1", "Visual_Month_February": "Tháng 2", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "Ngày đầu tuần", "Visual_FirstDayOfWeek_Description": "Tùy chọn này sẽ vô nghĩa nếu bạn chọn tiêu chuẩn ISO 8601", "Visual_DisplayAll": "Hiển thị tất cả", + "Visual_DisplayYears": "Hiển thị năm", + "Visual_DisplayQuarters": "Hiển thị quý", + "Visual_DisplayMonths": "Hiển thị tháng", + "Visual_DisplayWeeks": "Hiển thị tuần", + "Visual_DisplayDays": "Hiển thị ngày", "Visual_Cursor": "Con trỏ", "Visual_CursorColor": "Màu con trỏ", "Visual_ForceSelection": "Buộc chọn", diff --git a/stringResources/zh-CN/resources.resjson b/stringResources/zh-CN/resources.resjson index 2041b69..28af443 100644 --- a/stringResources/zh-CN/resources.resjson +++ b/stringResources/zh-CN/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "会计年度开始时间", "Visual_FiscalYear": "会计年度", "Visual_FiscalYear_Description": "如果已选取 ISO 8601 标准,则此选项无效", + "Visual_TreatAsEndOfFiscalYear": "视为会计年度结束", "Visual_Month": "月", "Visual_Month_January": "一月", "Visual_Month_February": "二月", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "一周的第一天", "Visual_FirstDayOfWeek_Description": "如果已选取 ISO 8601 标准,则此选项无效", "Visual_DisplayAll": "全部显示", + "Visual_DisplayYears": "显示年份", + "Visual_DisplayQuarters": "显示季度", + "Visual_DisplayMonths": "显示月份", + "Visual_DisplayWeeks": "显示周数", + "Visual_DisplayDays": "显示天数", "Visual_Cursor": "光标", "Visual_CursorColor": "光标颜色", "Visual_ForceSelection": "强制选择", diff --git a/stringResources/zh-TW/resources.resjson b/stringResources/zh-TW/resources.resjson index 4552952..c70f55b 100644 --- a/stringResources/zh-TW/resources.resjson +++ b/stringResources/zh-TW/resources.resjson @@ -6,6 +6,7 @@ "Visual_FiscalYearStart": "會計年度開始", "Visual_FiscalYear": "會計年度", "Visual_FiscalYear_Description": "如果已挑選 ISO 8601 標準,則此選項沒有意義", + "Visual_TreatAsEndOfFiscalYear": "視為會計年度結束", "Visual_Month": "月", "Visual_Month_January": "一月", "Visual_Month_February": "二月", @@ -56,6 +57,11 @@ "Visual_FirstDayOfWeek": "每週的第一天", "Visual_FirstDayOfWeek_Description": "如果已挑選 ISO 8601 標準,則此選項沒有意義", "Visual_DisplayAll": "全部顯示", + "Visual_DisplayYears": "顯示年份", + "Visual_DisplayQuarters": "顯示季", + "Visual_DisplayMonths": "顯示月份", + "Visual_DisplayWeeks": "顯示週數", + "Visual_DisplayDays": "顯示日期", "Visual_Cursor": "資料指標", "Visual_CursorColor": "資料指標色彩", "Visual_ForceSelection": "強制選取", diff --git a/test/visual.test.ts b/test/visual.test.ts index bb8d0fb..1a565d0 100644 --- a/test/visual.test.ts +++ b/test/visual.test.ts @@ -27,7 +27,7 @@ import {select as d3Select} from "d3-selection"; import powerbiVisualsApi from "powerbi-visuals-api"; import {assertColorsMatch, d3Click, parseColorString, renderTimeout,} from "powerbi-visuals-utils-testutils"; -import {Calendar, CalendarFormat, WeekdayFormat} from "../src/calendars/calendar"; +import {Calendar, CalendarFormat, CalendarFormattingSettings, WeekdayFormat} from "../src/calendars/calendar"; import {ITimelineCursorOverElement, ITimelineData} from "../src/dataInterfaces"; import {ITimelineDatePeriod, ITimelineDatePeriodBase} from "../src/datePeriod/datePeriod"; import {DatePeriodBase} from "../src/datePeriod/datePeriodBase"; @@ -963,7 +963,6 @@ describe("Timeline", () => { beforeEach(() => { dataView.metadata.objects = { labels: { - displayAll: true, show: true, }, }; @@ -980,16 +979,6 @@ describe("Timeline", () => { expect(visualBuilder.allLabels.length).toBe(0); }); - it("shows only selected granularity label if displayAll is set to false", () => { - visualBuilder.updateFlushAllD3Transitions(dataView); - // All labels should be visible - expect(visualBuilder.allLabels.length).toBeGreaterThan(1); - ((dataView.metadata.objects)).labels.displayAll = false; - visualBuilder.updateFlushAllD3Transitions(dataView); - // Only one label should be visible - expect(visualBuilder.allLabels.length).toBe(1); - }); - it("font color", () => { const color: string = "#ABCDEF"; @@ -1029,11 +1018,11 @@ describe("Timeline - Granularity - 1 Jan (Regular Calendar)", () => { calendar = createCalendar(); granularities = [ - new YearGranularity(calendar, null, null), - new QuarterGranularity(calendar, null), - new WeekGranularity(calendar, null, null), - new MonthGranularity(calendar, null), - new DayGranularity(calendar, null), + new YearGranularity(calendar, "en-US", null), + new QuarterGranularity(calendar, "en-US"), + new WeekGranularity(calendar, "en-US", null), + new MonthGranularity(calendar, "en-US"), + new DayGranularity(calendar, "en-US"), ]; }); @@ -1075,11 +1064,11 @@ describe("Timeline - Granularity - 1 Apr (Fiscal Calendar)", () => { calendar = createCalendar(3); granularities = [ - new YearGranularity(calendar, null, null), - new QuarterGranularity(calendar, null), - new WeekGranularity(calendar, null, null), - new MonthGranularity(calendar, null), - new DayGranularity(calendar, null), + new YearGranularity(calendar, "en-US", null), + new QuarterGranularity(calendar, "en-US"), + new WeekGranularity(calendar, "en-US", null), + new MonthGranularity(calendar, "en-US"), + new DayGranularity(calendar, "en-US"), ]; }); @@ -1157,7 +1146,8 @@ describe("Timeline - Granularity - ISO 8601 Week numbering", () => { let calendar: Calendar; beforeEach(() => { - calendar = new CalendarISO8061(); + const calendarFormattingSettings: CalendarFormattingSettings = { treatAsEndOfFiscalYear: true }; + calendar = new CalendarISO8061(calendarFormattingSettings); }); describe("ISO Calendar Methods", () => { @@ -1723,6 +1713,7 @@ function createCalendar( day: number = 1, week: number = 1, dayOfWeekSelectionOn: boolean = false, + treatAsEndOfFiscalYear: boolean = true, ): Calendar { const calendarSettings: CalendarFormat = { @@ -1735,7 +1726,7 @@ function createCalendar( daySelection: dayOfWeekSelectionOn, }; - return new Calendar(calendarSettings, weekDaySettings); + return new Calendar(calendarSettings, weekDaySettings, { treatAsEndOfFiscalYear }); } function createDatePeriod(dates: Date[]): ITimelineDatePeriod[] {