From ade04b6979bc32202fd5dc5268ab7cc0dd7f245a Mon Sep 17 00:00:00 2001 From: adiletelf <74559101+adiletelf@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:26:38 +0600 Subject: [PATCH] Merge branch 'dev' into certification (#159) * New translations (#112) * Microsoft mandatory file (#117) Co-authored-by: microsoft-github-policy-service[bot] <77245923+microsoft-github-policy-service[bot]@users.noreply.github.com> * Update timeline to use new formatting model API (5.1+) (#137) * Add new formatting model units * Update capabilities.json to new formatting model API * Update version to 2.5.0 * Refactor Calendar into using interfaces * Upgrade to new formatting model API * Remove jquery, fix tests * Migrate from puppeteer to playwright-chromium * Split d3 into submodules like d3-selection * Update dependencies Previously visual didn't work with node v20.10.0, but after updating the dependencies it works now. * Set default value "false" for ScrollAutoAdjustment * Fix top level slices to display "show" button on the cards * Add stroke color and stroke width settings * Add cursor color settings * Add an option to specify the width, height manually * Add scroll behavior When scrolling on the cell it increases/decreases the date period. * Add cell gap setting * Revert "Add scroll behavior" This reverts commit 3a0e97061188ac0f3f73a7fdd243b475d6a91caf. * Decrease min cell width. Add missing localization keys. * Fix build status in README.md * Use 4 digit number in version * Update build.yml to run audit, outdated, linter * Rename ambiguous topLevelSlice to show field. Revert MinCellWidth to fix a breaking change. * Fix the resizing issue when enabling manual sizing. When enabling manual sizing width and height of the cell is changed to the last saved by the user. Instead, the expected behavior is so width and height should be the same as before enabling manual sizing. It requires persisting current width and height of cells, but it triggers an additional update. * Fix uneven stroke width around cells When increasing stroke-width around the cells the height of the cell should be decreasing, otherwise the stroke is uneven. * Fix vertical cursor shift when changing stroke width * Update packages * Fix npm vulnerabilities * Remove core-js * Update powerbi-visuals-api to 5.7.0 * Fix the issue with replacing old Timeline visual with newer version (#138) * Add "Visual_Short_Description", "Visual_Long_Description" localization keys * Fix the issue with upgrading the visual version inside the report When user replaces the visual with new version the visual didn't render because some ItemDropDown values were not set. * Fix eslint errors * New translations * Fix error with rendering when ItemDropDown values are undefined (#139) * Fix error with rendering when ItemDropDown values are undefined * Fix tests * Update codeql-analysis.yml * New translations * Fix backwards compatibility (#143) * Fix error with rendering when ItemDropDown values are undefined * Fix tests * Set topLevelSlice for "Cursor", "First Day of Week" formatting settings cards * Update API to 5.8.0 * Fix height and width calculation when enableManualSizing is enabled * Limit max text size in range header and labels * Rollback capabilities.json to previous configuration to keep backwards compatibility * Update packages Bump version to 2.5.0.0 * Remove jquery * Update GitHub actions to use node 18, 20 * Add TimelineSettingsModel.ts * Refactor calendar interfaces * Migrate to formatting model * Add visual short and long description localization keys * Fix granularity value backwards compatibility (use numbers instead of string) * Add cursor formatting settings * Add "Cells" card settings: stroke width and gap width * Add formatting setting to manually resize cell height and width * Split D3 into submodules like d3-selection * Update packages * Update API to 5.9.0 * Refactor event handlers into behavior.ts * Refactor behavior.ts into static * Fix karma.config * Fix bugs with click handler and selecting period (#148) * Disable "Calendar" and "First day of week" settings when WeekStandard is set to IS0 8601 * Fix cell click handler (passed invalid selected index) * Fix uninitialized start date when date from filters is less than date from DataView * Increase font max size for range header to 40 * Update outdated packages * New translations * New translations * New translations * Add toggle 'Treat as end of fiscal year' (#150) * Add toggle 'Treat as end of fiscal year' * Disable 'Force selection' toggles when filters are changed * Fix 'Force selection' update on filter change * Update packages, bump version to 2.5.6.0 * Fix selecting current period * Fix npm vulnerabilities * Fix forceSelection update when currentPeriod dates is null * 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' * Fix rendering visual when scroll is enabled. Fix scroll arrows not being clicked * Remove range header font size restrictions * Remove displayAll from labels * Remove tests with label 'displayAll' * Downgrade to API 5.9.0 (#155) * New translations --------- Co-authored-by: pbicvloc <104190707+pbicvloc@users.noreply.github.com> Co-authored-by: microsoft-github-policy-service[bot] <77245923+microsoft-github-policy-service[bot]@users.noreply.github.com> Co-authored-by: MulyukovAidar --- CHANGELOG.md | 13 + capabilities.json | 27 +- package-lock.json | 502 +++++++------------ package.json | 22 +- pbiviz.json | 4 +- src/calendars/calendar.ts | 36 +- src/calendars/calendarFactory.ts | 9 +- src/calendars/calendarISO8061.ts | 6 +- src/granularity/weekGranularity.ts | 2 +- src/timeLine.ts | 222 +++++--- src/timeLineSettingsModel.ts | 59 ++- stringResources/ar-SA/resources.resjson | 6 + stringResources/bg-BG/resources.resjson | 6 + stringResources/ca-ES/resources.resjson | 6 + stringResources/cs-CZ/resources.resjson | 6 + stringResources/da-DK/resources.resjson | 6 + stringResources/de-DE/resources.resjson | 6 + stringResources/el-GR/resources.resjson | 6 + stringResources/en-US/resources.resjson | 6 + stringResources/es-ES/resources.resjson | 6 + stringResources/et-EE/resources.resjson | 6 + stringResources/eu-ES/resources.resjson | 6 + stringResources/fi-FI/resources.resjson | 6 + stringResources/fr-FR/resources.resjson | 6 + stringResources/gl-ES/resources.resjson | 6 + stringResources/he-IL/resources.resjson | 6 + stringResources/hi-IN/resources.resjson | 6 + stringResources/hr-HR/resources.resjson | 6 + stringResources/hu-HU/resources.resjson | 6 + stringResources/id-ID/resources.resjson | 6 + stringResources/it-IT/resources.resjson | 6 + stringResources/ja-JP/resources.resjson | 6 + stringResources/kk-KZ/resources.resjson | 6 + stringResources/ko-KR/resources.resjson | 6 + stringResources/lt-LT/resources.resjson | 6 + stringResources/lv-LV/resources.resjson | 6 + stringResources/ms-MY/resources.resjson | 6 + stringResources/nb-NO/resources.resjson | 6 + stringResources/nl-NL/resources.resjson | 6 + stringResources/pl-PL/resources.resjson | 6 + stringResources/pt-BR/resources.resjson | 6 + stringResources/pt-PT/resources.resjson | 6 + stringResources/ro-RO/resources.resjson | 6 + stringResources/ru-RU/resources.resjson | 6 + stringResources/sk-SK/resources.resjson | 6 + stringResources/sl-SI/resources.resjson | 6 + stringResources/sr-Cyrl-RS/resources.resjson | 6 + stringResources/sr-Latn-RS/resources.resjson | 6 + stringResources/sv-SE/resources.resjson | 6 + stringResources/th-TH/resources.resjson | 6 + stringResources/tr-TR/resources.resjson | 6 + stringResources/uk-UA/resources.resjson | 6 + stringResources/vi-VN/resources.resjson | 6 + stringResources/zh-CN/resources.resjson | 6 + stringResources/zh-TW/resources.resjson | 6 + test/visual.test.ts | 39 +- 56 files changed, 752 insertions(+), 453 deletions(-) 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[] {