@gooddata/sdk-ui-dashboard 11.40.0-alpha.1 → 11.40.0-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/NOTICE +245 -3
- package/esm/__version.d.ts +1 -1
- package/esm/__version.js +1 -1
- package/esm/index.d.ts +2 -2
- package/esm/index.js +2 -2
- package/esm/model/commandHandlers/dashboard/saveDashboardHandler.js +35 -12
- package/esm/model/commandHandlers/index.js +0 -2
- package/esm/model/commandHandlers/tabs/createDashboardTabHandler.js +2 -2
- package/esm/model/commands/base.d.ts +1 -1
- package/esm/model/commands/index.d.ts +2 -2
- package/esm/model/commands/tabs.d.ts +0 -35
- package/esm/model/commands/tabs.js +0 -16
- package/esm/model/events/base.d.ts +1 -1
- package/esm/model/events/index.d.ts +2 -2
- package/esm/model/events/tabs.d.ts +0 -44
- package/esm/model/events/tabs.js +0 -28
- package/esm/model/react/useDashboardCommand.d.ts +0 -1
- package/esm/model/react/useDashboardCommandProcessing.d.ts +0 -4
- package/esm/model/store/tabs/index.d.ts +6 -0
- package/esm/model/store/tabs/tabsReducers.d.ts +6 -0
- package/esm/model/store/tabs/tabsReducers.js +16 -0
- package/esm/model/utils/tabLocalIdentifier.d.ts +4 -0
- package/esm/model/utils/tabLocalIdentifier.js +12 -0
- package/esm/presentation/dashboard/DashboardHeader/DashboardTabs.js +2 -10
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/de-DE.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-AU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/en-GB.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-419.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/es-ES.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fi-FI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-CA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/fr-FR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/id-ID.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/it-IT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ja-JP.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ko-KR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/nl-NL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pl-PL.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-BR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/pt-PT.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/ru-RU.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/sl-SI.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/th-TH.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/tr-TR.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/uk-UA.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/vi-VN.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-HK.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hans.localization-bundle.js +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.d.ts +1 -0
- package/esm/presentation/localization/bundles/zh-Hant.localization-bundle.js +1 -0
- package/esm/sdk-ui-dashboard.d.ts +10 -94
- package/package.json +20 -20
- package/esm/model/commandHandlers/tabs/convertDashboardTabFromDefaultHandler.d.ts +0 -4
- package/esm/model/commandHandlers/tabs/convertDashboardTabFromDefaultHandler.js +0 -40
package/NOTICE
CHANGED
|
@@ -7,9 +7,9 @@
|
|
|
7
7
|
|
|
8
8
|
The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
|
|
9
9
|
|
|
10
|
-
Date generated: 2026-
|
|
10
|
+
Date generated: 2026-6-1
|
|
11
11
|
|
|
12
|
-
Revision ID:
|
|
12
|
+
Revision ID: 18e17a83de165c5692feed665b992e2839aefbf0
|
|
13
13
|
|
|
14
14
|
================================================================================
|
|
15
15
|
================================================================================
|
|
@@ -227,6 +227,10 @@ Revision ID: cca91b63bcb24d8939c88b56da17c29f0346e9e2
|
|
|
227
227
|
- @mapbox/whoots-js (3.1.0) [ISC]
|
|
228
228
|
- @maplibre/maplibre-gl-style-spec (20.4.0) [MIT, BSD-3-Clause, ISC]
|
|
229
229
|
- @marijn/find-cluster-break (1.0.2) [MIT]
|
|
230
|
+
- @module-federation/error-codes (2.3.1) [MIT]
|
|
231
|
+
- @module-federation/runtime (2.3.1) [MIT]
|
|
232
|
+
- @module-federation/runtime-core (2.3.1) [MIT]
|
|
233
|
+
- @module-federation/sdk (2.3.1) [MIT]
|
|
230
234
|
- @nodelib/fs.scandir (2.1.5) [MIT]
|
|
231
235
|
- @nodelib/fs.stat (2.0.5) [MIT]
|
|
232
236
|
- @nodelib/fs.walk (1.2.8) [MIT]
|
|
@@ -439,6 +443,7 @@ Revision ID: cca91b63bcb24d8939c88b56da17c29f0346e9e2
|
|
|
439
443
|
- convert-source-map (1.9.0) [MIT]
|
|
440
444
|
- convert-source-map (2.0.0) [MIT]
|
|
441
445
|
- cookie (0.7.1) [MIT]
|
|
446
|
+
- cookie (1.1.1) [MIT]
|
|
442
447
|
- cookie-signature (1.0.6) [MIT]
|
|
443
448
|
- copy-to-clipboard (3.3.3) [MIT]
|
|
444
449
|
- core-js-compat (3.45.1) [MIT]
|
|
@@ -669,6 +674,7 @@ Revision ID: cca91b63bcb24d8939c88b56da17c29f0346e9e2
|
|
|
669
674
|
- isobject (3.0.1) [MIT]
|
|
670
675
|
- jackspeak (4.1.1) [blueoak-1.0.0]
|
|
671
676
|
- jest-worker (27.5.1) [MIT]
|
|
677
|
+
- jiti (2.6.1) [MIT]
|
|
672
678
|
- js-tokens (4.0.0) [MIT]
|
|
673
679
|
- js-yaml (4.1.1) [MIT]
|
|
674
680
|
- jsesc (3.0.2) [MIT]
|
|
@@ -837,6 +843,7 @@ Revision ID: cca91b63bcb24d8939c88b56da17c29f0346e9e2
|
|
|
837
843
|
- picocolors (1.1.1) [ISC]
|
|
838
844
|
- picomatch (2.3.1) [MIT]
|
|
839
845
|
- picomatch (4.0.3) [MIT]
|
|
846
|
+
- picomatch (4.0.4) [MIT]
|
|
840
847
|
- pify (4.0.1) [MIT]
|
|
841
848
|
- pkg-dir (4.2.0) [MIT]
|
|
842
849
|
- playwright (1.60.0) [Apache-2.0, MIT, ISC, CC-BY-4.0, BSD-3-Clause]
|
|
@@ -887,6 +894,7 @@ Revision ID: cca91b63bcb24d8939c88b56da17c29f0346e9e2
|
|
|
887
894
|
- react-portal (4.3.0) [MIT]
|
|
888
895
|
- react-redux (9.2.0) [MIT]
|
|
889
896
|
- react-responsive (10.0.1) [MIT, BSD-3-Clause]
|
|
897
|
+
- react-router (7.13.1) [MIT]
|
|
890
898
|
- react-select (5.10.2) [MIT]
|
|
891
899
|
- react-select-async-paginate (0.7.11) [MIT]
|
|
892
900
|
- react-textarea-autosize (8.5.6) [MIT]
|
|
@@ -946,6 +954,7 @@ Revision ID: cca91b63bcb24d8939c88b56da17c29f0346e9e2
|
|
|
946
954
|
- serialize-javascript (6.0.2) [BSD-3-Clause]
|
|
947
955
|
- serve-index (1.9.1) [MIT]
|
|
948
956
|
- serve-static (1.16.2) [MIT]
|
|
957
|
+
- set-cookie-parser (2.7.2) [MIT]
|
|
949
958
|
- set-function-length (1.2.2) [MIT]
|
|
950
959
|
- setprototypeof (1.1.0) [ISC]
|
|
951
960
|
- setprototypeof (1.2.0) [ISC]
|
|
@@ -3558,6 +3567,54 @@ Package Depth: Transitive
|
|
|
3558
3567
|
MIT
|
|
3559
3568
|
|
|
3560
3569
|
|
|
3570
|
+
--------------------------------------------------------------------------------
|
|
3571
|
+
Package Title: @module-federation/error-codes (2.3.1)
|
|
3572
|
+
|
|
3573
|
+
Package Locator: npm+@module-federation/error-codes$2.3.1
|
|
3574
|
+
|
|
3575
|
+
Package Depth: Transitive
|
|
3576
|
+
--------------------------------------------------------------------------------
|
|
3577
|
+
|
|
3578
|
+
* Declared Licenses *
|
|
3579
|
+
MIT
|
|
3580
|
+
|
|
3581
|
+
|
|
3582
|
+
--------------------------------------------------------------------------------
|
|
3583
|
+
Package Title: @module-federation/runtime (2.3.1)
|
|
3584
|
+
|
|
3585
|
+
Package Locator: npm+@module-federation/runtime$2.3.1
|
|
3586
|
+
|
|
3587
|
+
Package Depth: Direct
|
|
3588
|
+
--------------------------------------------------------------------------------
|
|
3589
|
+
|
|
3590
|
+
* Declared Licenses *
|
|
3591
|
+
MIT
|
|
3592
|
+
|
|
3593
|
+
|
|
3594
|
+
--------------------------------------------------------------------------------
|
|
3595
|
+
Package Title: @module-federation/runtime-core (2.3.1)
|
|
3596
|
+
|
|
3597
|
+
Package Locator: npm+@module-federation/runtime-core$2.3.1
|
|
3598
|
+
|
|
3599
|
+
Package Depth: Transitive
|
|
3600
|
+
--------------------------------------------------------------------------------
|
|
3601
|
+
|
|
3602
|
+
* Declared Licenses *
|
|
3603
|
+
MIT
|
|
3604
|
+
|
|
3605
|
+
|
|
3606
|
+
--------------------------------------------------------------------------------
|
|
3607
|
+
Package Title: @module-federation/sdk (2.3.1)
|
|
3608
|
+
|
|
3609
|
+
Package Locator: npm+@module-federation/sdk$2.3.1
|
|
3610
|
+
|
|
3611
|
+
Package Depth: Transitive
|
|
3612
|
+
--------------------------------------------------------------------------------
|
|
3613
|
+
|
|
3614
|
+
* Declared Licenses *
|
|
3615
|
+
MIT
|
|
3616
|
+
|
|
3617
|
+
|
|
3561
3618
|
--------------------------------------------------------------------------------
|
|
3562
3619
|
Package Title: @nodelib/fs.scandir (2.1.5)
|
|
3563
3620
|
|
|
@@ -6122,6 +6179,18 @@ Package Depth: Transitive
|
|
|
6122
6179
|
MIT
|
|
6123
6180
|
|
|
6124
6181
|
|
|
6182
|
+
--------------------------------------------------------------------------------
|
|
6183
|
+
Package Title: cookie (1.1.1)
|
|
6184
|
+
|
|
6185
|
+
Package Locator: npm+cookie$1.1.1
|
|
6186
|
+
|
|
6187
|
+
Package Depth: Transitive
|
|
6188
|
+
--------------------------------------------------------------------------------
|
|
6189
|
+
|
|
6190
|
+
* Declared Licenses *
|
|
6191
|
+
MIT
|
|
6192
|
+
|
|
6193
|
+
|
|
6125
6194
|
--------------------------------------------------------------------------------
|
|
6126
6195
|
Package Title: cookie-signature (1.0.6)
|
|
6127
6196
|
|
|
@@ -8898,6 +8967,18 @@ Package Depth: Transitive
|
|
|
8898
8967
|
MIT
|
|
8899
8968
|
|
|
8900
8969
|
|
|
8970
|
+
--------------------------------------------------------------------------------
|
|
8971
|
+
Package Title: jiti (2.6.1)
|
|
8972
|
+
|
|
8973
|
+
Package Locator: npm+jiti$2.6.1
|
|
8974
|
+
|
|
8975
|
+
Package Depth: Direct
|
|
8976
|
+
--------------------------------------------------------------------------------
|
|
8977
|
+
|
|
8978
|
+
* Declared Licenses *
|
|
8979
|
+
MIT
|
|
8980
|
+
|
|
8981
|
+
|
|
8901
8982
|
--------------------------------------------------------------------------------
|
|
8902
8983
|
Package Title: js-tokens (4.0.0)
|
|
8903
8984
|
|
|
@@ -10936,6 +11017,18 @@ Package Depth: Transitive
|
|
|
10936
11017
|
MIT
|
|
10937
11018
|
|
|
10938
11019
|
|
|
11020
|
+
--------------------------------------------------------------------------------
|
|
11021
|
+
Package Title: picomatch (4.0.4)
|
|
11022
|
+
|
|
11023
|
+
Package Locator: npm+picomatch$4.0.4
|
|
11024
|
+
|
|
11025
|
+
Package Depth: Transitive
|
|
11026
|
+
--------------------------------------------------------------------------------
|
|
11027
|
+
|
|
11028
|
+
* Declared Licenses *
|
|
11029
|
+
MIT
|
|
11030
|
+
|
|
11031
|
+
|
|
10939
11032
|
--------------------------------------------------------------------------------
|
|
10940
11033
|
Package Title: pify (4.0.1)
|
|
10941
11034
|
|
|
@@ -11560,6 +11653,18 @@ MIT
|
|
|
11560
11653
|
BSD-3-Clause
|
|
11561
11654
|
|
|
11562
11655
|
|
|
11656
|
+
--------------------------------------------------------------------------------
|
|
11657
|
+
Package Title: react-router (7.13.1)
|
|
11658
|
+
|
|
11659
|
+
Package Locator: npm+react-router$7.13.1
|
|
11660
|
+
|
|
11661
|
+
Package Depth: Direct
|
|
11662
|
+
--------------------------------------------------------------------------------
|
|
11663
|
+
|
|
11664
|
+
* Declared Licenses *
|
|
11665
|
+
MIT
|
|
11666
|
+
|
|
11667
|
+
|
|
11563
11668
|
--------------------------------------------------------------------------------
|
|
11564
11669
|
Package Title: react-select (5.10.2)
|
|
11565
11670
|
|
|
@@ -12280,6 +12385,18 @@ Package Depth: Transitive
|
|
|
12280
12385
|
MIT
|
|
12281
12386
|
|
|
12282
12387
|
|
|
12388
|
+
--------------------------------------------------------------------------------
|
|
12389
|
+
Package Title: set-cookie-parser (2.7.2)
|
|
12390
|
+
|
|
12391
|
+
Package Locator: npm+set-cookie-parser$2.7.2
|
|
12392
|
+
|
|
12393
|
+
Package Depth: Transitive
|
|
12394
|
+
--------------------------------------------------------------------------------
|
|
12395
|
+
|
|
12396
|
+
* Declared Licenses *
|
|
12397
|
+
MIT
|
|
12398
|
+
|
|
12399
|
+
|
|
12283
12400
|
--------------------------------------------------------------------------------
|
|
12284
12401
|
Package Title: set-function-length (1.2.2)
|
|
12285
12402
|
|
|
@@ -32218,6 +32335,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
32218
32335
|
SOFTWARE.
|
|
32219
32336
|
|
|
32220
32337
|
|
|
32338
|
+
* MIT *
|
|
32339
|
+
|
|
32340
|
+
MIT License
|
|
32341
|
+
|
|
32342
|
+
Copyright (c) 2020 ScriptedAlchemy LLC (Zack Jackson) Zhou Shaw (zhouxiao)
|
|
32343
|
+
|
|
32344
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
32345
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
32346
|
+
in the Software without restriction, including without limitation the rights
|
|
32347
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32348
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
32349
|
+
furnished to do so, subject to the following conditions:
|
|
32350
|
+
|
|
32351
|
+
The above copyright notice and this permission notice shall be included in all
|
|
32352
|
+
copies or substantial portions of the Software.
|
|
32353
|
+
|
|
32354
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
32355
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
32356
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32357
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
32358
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32359
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32360
|
+
SOFTWARE.
|
|
32361
|
+
|
|
32362
|
+
|
|
32221
32363
|
* MIT *
|
|
32222
32364
|
|
|
32223
32365
|
MIT License
|
|
@@ -32752,6 +32894,56 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
32752
32894
|
SOFTWARE.
|
|
32753
32895
|
|
|
32754
32896
|
|
|
32897
|
+
* MIT *
|
|
32898
|
+
|
|
32899
|
+
MIT License
|
|
32900
|
+
|
|
32901
|
+
Copyright (c) 2023-present zhanghang(2heal1)
|
|
32902
|
+
|
|
32903
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
32904
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
32905
|
+
in the Software without restriction, including without limitation the rights
|
|
32906
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32907
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
32908
|
+
furnished to do so, subject to the following conditions:
|
|
32909
|
+
|
|
32910
|
+
The above copyright notice and this permission notice shall be included in all
|
|
32911
|
+
copies or substantial portions of the Software.
|
|
32912
|
+
|
|
32913
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
32914
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
32915
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32916
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
32917
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32918
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32919
|
+
SOFTWARE.
|
|
32920
|
+
|
|
32921
|
+
|
|
32922
|
+
* MIT *
|
|
32923
|
+
|
|
32924
|
+
MIT License
|
|
32925
|
+
|
|
32926
|
+
Copyright (c) 2023-present zhouxiao(zhoushaw)
|
|
32927
|
+
|
|
32928
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
32929
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
32930
|
+
in the Software without restriction, including without limitation the rights
|
|
32931
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
32932
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
32933
|
+
furnished to do so, subject to the following conditions:
|
|
32934
|
+
|
|
32935
|
+
The above copyright notice and this permission notice shall be included in all
|
|
32936
|
+
copies or substantial portions of the Software.
|
|
32937
|
+
|
|
32938
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
32939
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
32940
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
32941
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
32942
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32943
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
32944
|
+
SOFTWARE.
|
|
32945
|
+
|
|
32946
|
+
|
|
32755
32947
|
* MIT *
|
|
32756
32948
|
|
|
32757
32949
|
MIT License
|
|
@@ -33280,6 +33472,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
|
33280
33472
|
SOFTWARE.
|
|
33281
33473
|
|
|
33282
33474
|
|
|
33475
|
+
* MIT *
|
|
33476
|
+
|
|
33477
|
+
MIT License
|
|
33478
|
+
|
|
33479
|
+
Copyright (c) Pooya Parsa <pooya@pi0.io>
|
|
33480
|
+
|
|
33481
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
33482
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
33483
|
+
in the Software without restriction, including without limitation the rights
|
|
33484
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
33485
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
33486
|
+
furnished to do so, subject to the following conditions:
|
|
33487
|
+
|
|
33488
|
+
The above copyright notice and this permission notice shall be included in all
|
|
33489
|
+
copies or substantial portions of the Software.
|
|
33490
|
+
|
|
33491
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
33492
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
33493
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
33494
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
33495
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
33496
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
33497
|
+
SOFTWARE.
|
|
33498
|
+
|
|
33499
|
+
|
|
33283
33500
|
|
|
33284
33501
|
* MIT *
|
|
33285
33502
|
|
|
@@ -35520,6 +35737,31 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
35520
35737
|
THE SOFTWARE.
|
|
35521
35738
|
|
|
35522
35739
|
|
|
35740
|
+
* MIT *
|
|
35741
|
+
|
|
35742
|
+
The MIT License (MIT)
|
|
35743
|
+
|
|
35744
|
+
Copyright (c) 2015 Nathan Friedly <nathan@nfriedly.com> (http://nfriedly.com/)
|
|
35745
|
+
|
|
35746
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
35747
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
35748
|
+
in the Software without restriction, including without limitation the rights
|
|
35749
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
35750
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
35751
|
+
furnished to do so, subject to the following conditions:
|
|
35752
|
+
|
|
35753
|
+
The above copyright notice and this permission notice shall be included in
|
|
35754
|
+
all copies or substantial portions of the Software.
|
|
35755
|
+
|
|
35756
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
35757
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
35758
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
35759
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
35760
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
35761
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
35762
|
+
THE SOFTWARE.
|
|
35763
|
+
|
|
35764
|
+
|
|
35523
35765
|
* MIT *
|
|
35524
35766
|
|
|
35525
35767
|
The MIT License (MIT)
|
|
@@ -38189,4 +38431,4 @@ POSSIBILITY OF SUCH DAMAGE.
|
|
|
38189
38431
|
--------------------------------------------------------------------------------
|
|
38190
38432
|
--------------------------------------------------------------------------------
|
|
38191
38433
|
|
|
38192
|
-
Report Generated by FOSSA on 2026-
|
|
38434
|
+
Report Generated by FOSSA on 2026-6-1
|
package/esm/__version.d.ts
CHANGED
package/esm/__version.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// (C) 2021 GoodData Corporation
|
|
2
2
|
// DO NOT CHANGE THIS FILE, IT IS RE-GENERATED ON EVERY BUILD
|
|
3
|
-
export const LIB_VERSION = "11.40.0-alpha.
|
|
3
|
+
export const LIB_VERSION = "11.40.0-alpha.3";
|
|
4
4
|
export const LIB_DESCRIPTION = "GoodData SDK - Dashboard Component";
|
|
5
5
|
export const LIB_NAME = "@gooddata/sdk-ui-dashboard";
|
package/esm/index.d.ts
CHANGED
|
@@ -57,10 +57,10 @@ export { type IChangeRenderMode, type IChangeRenderModePayload, type IRenderMode
|
|
|
57
57
|
export { type IChangeDashboardDensity, type IChangeDashboardDensityPayload, changeDashboardDensity, type IRequestOpenDensityDialog, requestOpenDensityDialog, } from "./model/commands/density.js";
|
|
58
58
|
export { type IAddDrillTargets, type IAddDrillTargetsPayload, addDrillTargets, } from "./model/commands/drillTargets.js";
|
|
59
59
|
export { type ISetShowWidgetAsTable, type ISetShowWidgetAsTablePayload, setShowWidgetAsTable, } from "./model/commands/showWidgetAsTable.js";
|
|
60
|
-
export { type ISwitchDashboardTab, type ISwitchDashboardTabPayload, type
|
|
60
|
+
export { type ISwitchDashboardTab, type ISwitchDashboardTabPayload, type ICreateDashboardTab, type ICreateDashboardTabPayload, type IRepositionDashboardTab, type IRepositionDashboardTabPayload, type IDeleteDashboardTab, type IDeleteDashboardTabPayload, type IStartRenamingDashboardTab, type IStartRenamingDashboardTabPayload, type ICancelRenamingDashboardTab, type ICancelRenamingDashboardTabPayload, type IRenameDashboardTab, type IRenameDashboardTabPayload, switchDashboardTab, repositionDashboardTab, createDashboardTab, deleteDashboardTab, startRenamingDashboardTab, cancelRenamingDashboardTab, renameDashboardTab, } from "./model/commands/tabs.js";
|
|
61
61
|
export { type IDashboardEvent, type DashboardEventType, type ICustomDashboardEvent, type DashboardEventBody, isDashboardEvent, isCustomDashboardEvent, isDashboardEventOrCustomDashboardEvent, } from "./model/events/base.js";
|
|
62
62
|
export { type DateFilterValidationFailed, type DateFilterValidationFailedPayload, type DashboardInitialized, type DashboardInitializedPayload, type DashboardDeinitialized, type DashboardDeinitializedPayload, type DashboardSaved, type DashboardSavedPayload, type DashboardCopySaved, type DashboardCopySavedPayload, type IDashboardRenamed, type IDashboardRenamedPayload, type IDashboardWasReset, type IDashboardWasResetPayload, type IDashboardDeleted, type IDashboardDeletedPayload, type IDashboardExportToPdfRequested, type IDashboardExportToPdfResolved, type IDashboardExportToPdfResolvedPayload, type DashboardSharingChanged, type DashboardSharingChangedPayload, type IDashboardExportToExcelRequested, type IDashboardExportToExcelResolved, type IDashboardExportToPdfPresentationRequested, type IDashboardExportToPdfPresentationResolved, type IDashboardExportToPptPresentationRequested, type IDashboardExportToPptPresentationResolved, type IDashboardExportToExcelResolvedPayload, type IDashboardExportToPdfPresentationResolvedPayload, type IDashboardExportToPptPresentationResolvedPayload, type IDashboardIgnoreExecutionTimestampChanged, type IDashboardIgnoreExecutionTimestampChangedPayload, type IDashboardExportToImageRequested, type IDashboardExportToImageResolved, type IDashboardExportToImageResolvedPayload, isDashboardSaved, isDashboardCopySaved, isDashboardInitialized, isDashboardDeinitialized, isDashboardRenamed, isDashboardWasReset, isDashboardDeleted, isDateFilterValidationFailed, isDashboardExportToPdfRequested, isDashboardExportToPdfResolved, isDashboardSharingChanged, isDashboardExportToExcelRequested, isDashboardExportToExcelResolved, isDashboardExportToPdfPresentationRequested, isDashboardExportToPdfPresentationResolved, isDashboardExportToPptPresentationResolved, isDashboardExportToPptPresentationRequested, isDashboardExportToImageRequested, isDashboardExportToImageResolved, isDashboardIgnoreExecutionTimestampChanged, } from "./model/events/dashboard.js";
|
|
63
|
-
export { type IDashboardTabSwitched, type IDashboardTabSwitchedPayload, type IDashboardTabCreated, type IDashboardTabCreatedPayload, type
|
|
63
|
+
export { type IDashboardTabSwitched, type IDashboardTabSwitchedPayload, type IDashboardTabCreated, type IDashboardTabCreatedPayload, type IDashboardTabDeleted, type IDashboardTabDeletedPayload, type IDashboardTabRenamingStarted, type IDashboardTabRenamingStartedPayload, type IDashboardTabRenamingCanceled, type IDashboardTabRenamingCanceledPayload, type IDashboardTabRenamed, type IDashboardTabRenamedPayload, dashboardTabSwitched, isDashboardTabSwitched, dashboardTabCreated, isDashboardTabCreated, dashboardTabDeleted, isDashboardTabDeleted, dashboardTabRenamingStarted, isDashboardTabRenamingStarted, dashboardTabRenamingCanceled, isDashboardTabRenamingCanceled, dashboardTabRenamed, isDashboardTabRenamed, } from "./model/events/tabs.js";
|
|
64
64
|
export { type IDashboardParametersSelectionReset, parametersSelectionReset, isDashboardParametersSelectionReset, } from "./model/events/parameters.js";
|
|
65
65
|
export { type IDashboardCommandStarted, type IDashboardCommandStartedPayload, type IDashboardCommandRejected, type IDashboardCommandFailed, type IDashboardCommandFailedPayload, type ActionFailedErrorReason, type IDashboardQueryRejected, type IDashboardQueryFailed, type IDashboardQueryFailedPayload, type IDashboardQueryStarted, type IDashboardQueryStartedPayload, type IDashboardQueryCompleted, type IDashboardQueryCompletedPayload, isDashboardCommandStarted, isDashboardCommandFailed, isDashboardQueryFailed, isDashboardCommandRejected, isDashboardQueryCompleted, isDashboardQueryRejected, isDashboardQueryStarted, } from "./model/events/general.js";
|
|
66
66
|
export { type DashboardDateFilterSelectionChanged, type DashboardDateFilterSelectionChangedPayload, type DashboardAttributeFilterSelectionChangedPayload, type DashboardAttributeFilterItemSelectionReplaced, type DashboardAttributeFilterItemSelectionReplacedPayload, type DashboardFilterContextChanged, type DashboardFilterContextChangedPayload, type IDashboardAttributeFilterParentChanged, type IDashboardAttributeFilterParentChangedPayload, type IDashboardAttributeFilterRemoved, type IDashboardAttributeFilterRemovedPayload, type DashboardAttributeFilterSelectionChanged, type IDashboardAttributeTitleChanged, type IDashboardAttributeTitleChangedPayload, type IDashboardAttributeSelectionModeChanged, type IDashboardAttributeSelectionModeChangedPayload, type IDashboardAttributeFilterMoved, type IDashboardAttributeFilterMovedPayload, type IDashboardAttributeFilterAdded, type IDashboardAttributeFilterAddedPayload, type IDashboardAttributeFilterConfigModeChanged, type IDashboardAttributeFilterConfigModeChangedPayload, type IDashboardAttributeFilterConfigLimitingItemsChanged, type IDashboardAttributeFilterConfigLimitingItemsChangedPayload, type IDashboardMeasureValueFilterAdded, type IDashboardMeasureValueFilterAddedPayload, type IDashboardMeasureValueFilterRemoved, type IDashboardMeasureValueFilterRemovedPayload, type IDashboardMeasureValueFilterMoved, type IDashboardMeasureValueFilterMovedPayload, type IDashboardMeasureValueFilterTitleChanged, type IDashboardMeasureValueFilterTitleChangedPayload, type IDashboardMeasureValueFilterConfigModeChanged, type IDashboardMeasureValueFilterConfigModeChangedPayload, type IDashboardFilterViewCreationSucceeded, type IDashboardFilterViewCreationSucceededPayload, type IDashboardFilterViewCreationFailed, type IDashboardFilterViewDeletionSucceeded, type IDashboardFilterViewDeletionSucceededPayload, type IDashboardFilterViewDeletionFailed, type IDashboardFilterViewApplicationSucceeded, type IDashboardFilterViewApplicationSucceededPayload, type IDashboardFilterViewApplicationFailed, type IDashboardFilterViewDefaultStatusChangeSucceeded, type IDashboardFilterViewDefaultStatusChangeSucceededPayload, type IDashboardFilterViewDefaultStatusChangeFailed, type IDashboardFilterViewDefaultStatusChangeFailedPayload, type IDashboardFilterContextSelectionReset, type IDashboardFilterContextWorkingSelectionApplied, type IDashboardMeasureValueFilterConditionChanged, type IDashboardMeasureValueFilterConditionChangedPayload, type IDashboardMeasureValueFilterDimensionalityChanged, type IDashboardMeasureValueFilterDimensionalityChangedPayload, isDashboardMeasureValueFilterAdded, isDashboardMeasureValueFilterRemoved, isDashboardMeasureValueFilterMoved, isDashboardMeasureValueFilterTitleChanged, isDashboardMeasureValueFilterConfigModeChanged, isDashboardMeasureValueFilterConditionChanged, isDashboardMeasureValueFilterDimensionalityChanged, isDashboardAttributeFilterAdded, isDashboardAttributeFilterMoved, isDashboardAttributeFilterParentChanged, isDashboardAttributeFilterRemoved, isDashboardAttributeFilterSelectionChanged, isDashboardAttributeFilterItemSelectionReplaced, isDashboardAttributeFilterSelectionModeChanged, isDashboardAttributeFilterTitleChanged, isDashboardDateFilterSelectionChanged, isDashboardFilterContextChanged, isDashboardAttributeFilterConfigModeChanged, isDashboardAttributeFilterConfigLimitingItemsChanged, isDashboardFilterViewCreationSucceeded, isDashboardFilterViewCreationFailed, isDashboardFilterViewDeletionSucceeded, isDashboardFilterViewDeletionFailed, isDashboardFilterViewApplicationSucceeded, isDashboardFilterViewApplicationFailed, isDashboardFilterViewDefaultStatusChangeSucceeded, isDashboardFilterViewDefaultStatusChangeFailed, isDashboardFilterContextSelectionReset, isDashboardFilterContextWorkingSelectionApplied, filterContextSelectionReset, filterContextWorkingSelectionApplied, } from "./model/events/filters.js";
|
package/esm/index.js
CHANGED
|
@@ -42,11 +42,11 @@ export { changeRenderMode, cancelEditRenderMode, switchToEditRenderMode, } from
|
|
|
42
42
|
export { changeDashboardDensity, requestOpenDensityDialog, } from "./model/commands/density.js";
|
|
43
43
|
export { addDrillTargets, } from "./model/commands/drillTargets.js";
|
|
44
44
|
export { setShowWidgetAsTable, } from "./model/commands/showWidgetAsTable.js";
|
|
45
|
-
export { switchDashboardTab, repositionDashboardTab,
|
|
45
|
+
export { switchDashboardTab, repositionDashboardTab, createDashboardTab, deleteDashboardTab, startRenamingDashboardTab, cancelRenamingDashboardTab, renameDashboardTab, } from "./model/commands/tabs.js";
|
|
46
46
|
// Re-export from events
|
|
47
47
|
export { isDashboardEvent, isCustomDashboardEvent, isDashboardEventOrCustomDashboardEvent, } from "./model/events/base.js";
|
|
48
48
|
export { isDashboardSaved, isDashboardCopySaved, isDashboardInitialized, isDashboardDeinitialized, isDashboardRenamed, isDashboardWasReset, isDashboardDeleted, isDateFilterValidationFailed, isDashboardExportToPdfRequested, isDashboardExportToPdfResolved, isDashboardSharingChanged, isDashboardExportToExcelRequested, isDashboardExportToExcelResolved, isDashboardExportToPdfPresentationRequested, isDashboardExportToPdfPresentationResolved, isDashboardExportToPptPresentationResolved, isDashboardExportToPptPresentationRequested, isDashboardExportToImageRequested, isDashboardExportToImageResolved, isDashboardIgnoreExecutionTimestampChanged, } from "./model/events/dashboard.js";
|
|
49
|
-
export { dashboardTabSwitched, isDashboardTabSwitched, dashboardTabCreated, isDashboardTabCreated,
|
|
49
|
+
export { dashboardTabSwitched, isDashboardTabSwitched, dashboardTabCreated, isDashboardTabCreated, dashboardTabDeleted, isDashboardTabDeleted, dashboardTabRenamingStarted, isDashboardTabRenamingStarted, dashboardTabRenamingCanceled, isDashboardTabRenamingCanceled, dashboardTabRenamed, isDashboardTabRenamed, } from "./model/events/tabs.js";
|
|
50
50
|
export { parametersSelectionReset, isDashboardParametersSelectionReset, } from "./model/events/parameters.js";
|
|
51
51
|
export { isDashboardCommandStarted, isDashboardCommandFailed, isDashboardQueryFailed, isDashboardCommandRejected, isDashboardQueryCompleted, isDashboardQueryRejected, isDashboardQueryStarted, } from "./model/events/general.js";
|
|
52
52
|
export { isDashboardMeasureValueFilterAdded, isDashboardMeasureValueFilterRemoved, isDashboardMeasureValueFilterMoved, isDashboardMeasureValueFilterTitleChanged, isDashboardMeasureValueFilterConfigModeChanged, isDashboardMeasureValueFilterConditionChanged, isDashboardMeasureValueFilterDimensionalityChanged, isDashboardAttributeFilterAdded, isDashboardAttributeFilterMoved, isDashboardAttributeFilterParentChanged, isDashboardAttributeFilterRemoved, isDashboardAttributeFilterSelectionChanged, isDashboardAttributeFilterItemSelectionReplaced, isDashboardAttributeFilterSelectionModeChanged, isDashboardAttributeFilterTitleChanged, isDashboardDateFilterSelectionChanged, isDashboardFilterContextChanged, isDashboardAttributeFilterConfigModeChanged, isDashboardAttributeFilterConfigLimitingItemsChanged, isDashboardFilterViewCreationSucceeded, isDashboardFilterViewCreationFailed, isDashboardFilterViewDeletionSucceeded, isDashboardFilterViewDeletionFailed, isDashboardFilterViewApplicationSucceeded, isDashboardFilterViewApplicationFailed, isDashboardFilterViewDefaultStatusChangeSucceeded, isDashboardFilterViewDefaultStatusChangeFailed, isDashboardFilterContextSelectionReset, isDashboardFilterContextWorkingSelectionApplied, filterContextSelectionReset, filterContextWorkingSelectionApplied, } from "./model/events/filters.js";
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { batchActions } from "redux-batched-actions";
|
|
3
3
|
import { call, put, select } from "redux-saga/effects";
|
|
4
4
|
import { invariant } from "ts-invariant";
|
|
5
|
-
import { v4 as uuid } from "uuid";
|
|
6
5
|
import { isTempFilterContext, } from "@gooddata/sdk-model";
|
|
7
6
|
import { dashboardFilterContextIdentity } from "../../../_staging/dashboard/dashboardFilterContext.js";
|
|
8
7
|
import { dashboardLayoutRemoveIdentity, dashboardLayoutWidgetIdentityMap, } from "../../../_staging/dashboard/dashboardLayout.js";
|
|
@@ -29,7 +28,9 @@ import { filterOutCustomWidgets, selectBasicLayoutByTab } from "../../store/tabs
|
|
|
29
28
|
import { selectMeasureValueFilterConfigsOverridesByTab } from "../../store/tabs/measureValueFilterConfigs/measureValueFilterConfigsSelectors.js";
|
|
30
29
|
import { selectSmartPersistedTabsParameters } from "../../store/tabs/parameters/parametersSelectors.js";
|
|
31
30
|
import { selectTabs } from "../../store/tabs/tabsSelectors.js";
|
|
31
|
+
import { DEFAULT_TAB_ID } from "../../store/tabs/tabsState.js";
|
|
32
32
|
import { isTemporaryIdentity } from "../../utils/dashboardItemUtils.js";
|
|
33
|
+
import { generateTabLocalIdentifier } from "../../utils/tabLocalIdentifier.js";
|
|
33
34
|
import { changeRenderModeHandler } from "../renderMode/changeRenderModeHandler.js";
|
|
34
35
|
import { switchDashboardTabHandler } from "../tabs/switchDashboardTabHandler.js";
|
|
35
36
|
function createDashboard(ctx, saveCtx) {
|
|
@@ -69,7 +70,7 @@ export function getDashboardWithSharing(dashboard, sharingSupported = true, isNe
|
|
|
69
70
|
* @param parametersByTab - Smart-persisted parameters keyed by tab localIdentifier
|
|
70
71
|
* @returns Array of IDashboardTab objects ready for saving to backend
|
|
71
72
|
*/
|
|
72
|
-
function processExistingTabs(tabs, parametersByTab) {
|
|
73
|
+
function processExistingTabs(tabs, parametersByTab, defaultTabNewLocalIdentifier) {
|
|
73
74
|
return tabs.map((tab) => {
|
|
74
75
|
const dateFilterConfig = tab.dateFilterConfig?.dateFilterConfig;
|
|
75
76
|
const dateFilterConfigProp = dateFilterConfig ? { dateFilterConfig } : {};
|
|
@@ -97,7 +98,9 @@ function processExistingTabs(tabs, parametersByTab) {
|
|
|
97
98
|
const tabParameters = parametersByTab[tab.localIdentifier] ?? [];
|
|
98
99
|
const result = {
|
|
99
100
|
// explicitly type the result to avoid type errors caused by spread operators
|
|
100
|
-
localIdentifier: tab.localIdentifier
|
|
101
|
+
localIdentifier: tab.localIdentifier === DEFAULT_TAB_ID && defaultTabNewLocalIdentifier
|
|
102
|
+
? defaultTabNewLocalIdentifier
|
|
103
|
+
: tab.localIdentifier,
|
|
101
104
|
title: tab.title ?? "",
|
|
102
105
|
// Use each tab's own layout, filter out custom widgets, then process
|
|
103
106
|
layout: tabLayout ? processLayout(filterOutCustomWidgets(tabLayout)) : undefined,
|
|
@@ -127,7 +130,7 @@ function buildOptionalFilterConfigsProps(attributeFilterConfigs, dateFilterConfi
|
|
|
127
130
|
function createDefaultTab(layout, rootFilterContext, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs) {
|
|
128
131
|
return [
|
|
129
132
|
{
|
|
130
|
-
localIdentifier:
|
|
133
|
+
localIdentifier: generateTabLocalIdentifier(),
|
|
131
134
|
title: "",
|
|
132
135
|
layout: layout ? processLayout(layout) : undefined,
|
|
133
136
|
filterContext: rootFilterContext,
|
|
@@ -136,14 +139,14 @@ function createDefaultTab(layout, rootFilterContext, dateFilterConfig, attribute
|
|
|
136
139
|
},
|
|
137
140
|
];
|
|
138
141
|
}
|
|
139
|
-
function resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab) {
|
|
142
|
+
function resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab, defaultTabNewLocalIdentifier) {
|
|
140
143
|
// If no tabs exist, create a default tab with root-level properties
|
|
141
144
|
const shouldCreateDefaultTab = !tabs || tabs.length === 0;
|
|
142
145
|
if (shouldCreateDefaultTab && rootFilterContext) {
|
|
143
146
|
return createDefaultTab(layout, rootFilterContext, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs);
|
|
144
147
|
}
|
|
145
148
|
if (tabs) {
|
|
146
|
-
return processExistingTabs(tabs, parametersByTab);
|
|
149
|
+
return processExistingTabs(tabs, parametersByTab, defaultTabNewLocalIdentifier);
|
|
147
150
|
}
|
|
148
151
|
return undefined;
|
|
149
152
|
}
|
|
@@ -157,6 +160,13 @@ function* createDashboardSaveContext(cmd, isNewDashboard) {
|
|
|
157
160
|
const persistedDashboard = yield select(selectPersistedDashboard);
|
|
158
161
|
const dashboardDescriptor = yield select(selectDashboardDescriptor);
|
|
159
162
|
const tabs = yield select(selectTabs);
|
|
163
|
+
// Generate a real UUID for the UI placeholder tab (DEFAULT_TAB_ID) only when it has never
|
|
164
|
+
// been persisted. If the backend already owns a tab with that identifier (e.g. set intentionally
|
|
165
|
+
// via API or as-code definition) we must leave it unchanged.
|
|
166
|
+
const hasPersistedDefaultTab = persistedDashboard?.tabs?.some((t) => t.localIdentifier === DEFAULT_TAB_ID);
|
|
167
|
+
const defaultTabNewLocalIdentifier = !hasPersistedDefaultTab && tabs?.some((t) => t.localIdentifier === DEFAULT_TAB_ID)
|
|
168
|
+
? generateTabLocalIdentifier()
|
|
169
|
+
: undefined;
|
|
160
170
|
// Root-level properties must always reflect the first tab, regardless of which tab is active.
|
|
161
171
|
// Using active-tab selectors here would persist the wrong data when saving from a non-first tab.
|
|
162
172
|
const firstTabId = tabs?.[0]?.localIdentifier;
|
|
@@ -194,7 +204,7 @@ function* createDashboardSaveContext(cmd, isNewDashboard) {
|
|
|
194
204
|
...filterContextDefinition,
|
|
195
205
|
}
|
|
196
206
|
: undefined;
|
|
197
|
-
const processedTabs = resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab);
|
|
207
|
+
const processedTabs = resolveProcessedTabs(tabs, rootFilterContext, layout, dateFilterConfig, attributeFilterConfigs, dateFilterConfigs, measureValueFilterConfigs, parametersByTab, defaultTabNewLocalIdentifier);
|
|
198
208
|
const locale = yield select(selectLocale);
|
|
199
209
|
const translations = yield call(resolveMessages, locale);
|
|
200
210
|
const title = (cmd.payload.title ?? dashboardDescriptor.title) || translations[messages.untitled.id];
|
|
@@ -226,6 +236,7 @@ function* createDashboardSaveContext(cmd, isNewDashboard) {
|
|
|
226
236
|
persistedDashboard,
|
|
227
237
|
dashboardFromState,
|
|
228
238
|
dashboardToSave: getDashboardWithSharing(dashboardToSave, capabilities.supportsAccessControl, isNewDashboard),
|
|
239
|
+
defaultTabNewLocalIdentifier,
|
|
229
240
|
};
|
|
230
241
|
}
|
|
231
242
|
function* save(ctx, saveCtx, saveFn, saveActionName) {
|
|
@@ -248,9 +259,15 @@ function* save(ctx, saveCtx, saveFn, saveActionName) {
|
|
|
248
259
|
const stateTabs = yield select(selectTabs);
|
|
249
260
|
// For each tab in the saved dashboard, update its widget identities and filter context identity
|
|
250
261
|
dashboard.tabs.forEach((savedTab) => {
|
|
251
|
-
|
|
262
|
+
// If this tab was the DEFAULT_TAB_ID placeholder being saved for the first time,
|
|
263
|
+
// find the state tab by DEFAULT_TAB_ID (its current state ID) and use it as the tabId
|
|
264
|
+
// for identity updates. resolveDefaultTab (pushed below) will rename it afterwards.
|
|
265
|
+
const isDefaultTabBeingSaved = savedTab.localIdentifier === saveCtx.defaultTabNewLocalIdentifier;
|
|
266
|
+
const stateTab = isDefaultTabBeingSaved
|
|
267
|
+
? stateTabs?.find((t) => t.localIdentifier === DEFAULT_TAB_ID)
|
|
268
|
+
: stateTabs?.find((t) => t.localIdentifier === savedTab.localIdentifier);
|
|
269
|
+
const tabIdForUpdate = stateTab?.localIdentifier ?? savedTab.localIdentifier;
|
|
252
270
|
// Update filter context identity for this tab
|
|
253
|
-
// Extract identity directly from the filter context
|
|
254
271
|
const filterContext = savedTab.filterContext;
|
|
255
272
|
const filterContextIdentity = filterContext && !isTempFilterContext(filterContext) && filterContext.ref
|
|
256
273
|
? {
|
|
@@ -260,20 +277,26 @@ function* save(ctx, saveCtx, saveFn, saveActionName) {
|
|
|
260
277
|
}
|
|
261
278
|
: undefined;
|
|
262
279
|
actions.push(tabsActions.updateFilterContextIdentityForTab({
|
|
263
|
-
tabId:
|
|
280
|
+
tabId: tabIdForUpdate,
|
|
264
281
|
filterContextIdentity,
|
|
265
282
|
}));
|
|
266
283
|
// Update widget identities for this tab if both layouts exist
|
|
267
284
|
if (stateTab?.layout?.layout && savedTab.layout) {
|
|
268
|
-
// Filter out custom widgets from state layout to match the saved layout structure
|
|
269
285
|
const stateLayoutWithoutCustomWidgets = filterOutCustomWidgets(stateTab.layout.layout);
|
|
270
286
|
const mapping = dashboardLayoutWidgetIdentityMap(stateLayoutWithoutCustomWidgets, savedTab.layout);
|
|
271
287
|
actions.push(tabsActions.updateWidgetIdentitiesForTab({
|
|
272
|
-
tabId:
|
|
288
|
+
tabId: tabIdForUpdate,
|
|
273
289
|
mapping,
|
|
274
290
|
}));
|
|
275
291
|
}
|
|
276
292
|
});
|
|
293
|
+
// After all identity updates, rename DEFAULT_TAB_ID to its real UUID in state.
|
|
294
|
+
// This makes the identifier stable for filter views, drill targets, and future saves.
|
|
295
|
+
if (saveCtx.defaultTabNewLocalIdentifier) {
|
|
296
|
+
actions.push(tabsActions.resolveDefaultTab({
|
|
297
|
+
newLocalIdentifier: saveCtx.defaultTabNewLocalIdentifier,
|
|
298
|
+
}));
|
|
299
|
+
}
|
|
277
300
|
}
|
|
278
301
|
else {
|
|
279
302
|
// For dashboards without tabs, use the original approach with active tab actions
|
|
@@ -87,7 +87,6 @@ import { refreshAutomationsHandlers } from "./scheduledEmail/refreshAutomationsH
|
|
|
87
87
|
import { saveScheduledEmailHandler } from "./scheduledEmail/saveScheduledEmailHandler.js";
|
|
88
88
|
import { handleSetWidgetToShowAsTable } from "./showWidgetAsTable/showWidgetAsTableHandler.js";
|
|
89
89
|
import { cancelRenamingDashboardTabHandler } from "./tabs/cancelRenamingDashboardTabHandler.js";
|
|
90
|
-
import { convertDashboardTabFromDefaultHandler } from "./tabs/convertDashboardTabFromDefaultHandler.js";
|
|
91
90
|
import { createDashboardTabHandler } from "./tabs/createDashboardTabHandler.js";
|
|
92
91
|
import { deleteDashboardTabHandler } from "./tabs/deleteDashboardTabHandler.js";
|
|
93
92
|
import { renameDashboardTabHandler } from "./tabs/renameDashboardTabHandler.js";
|
|
@@ -254,7 +253,6 @@ export const DefaultCommandHandlers = {
|
|
|
254
253
|
"GDC.DASH/CMD.CHANGE_IGNORE_EXECUTION_TIMESTAMP": changeIgnoreExecutionTimestampHandler,
|
|
255
254
|
"GDC.DASH/CMD.SHOW_WIDGET_AS_TABLE.SET": handleSetWidgetToShowAsTable,
|
|
256
255
|
"GDC.DASH/CMD.TAB.CREATE": createDashboardTabHandler,
|
|
257
|
-
"GDC.DASH/CMD.TAB.CONVERT_FROM_DEFAULT": convertDashboardTabFromDefaultHandler,
|
|
258
256
|
"GDC.DASH/CMD.TAB.SWITCH": switchDashboardTabHandler,
|
|
259
257
|
"GDC.DASH/CMD.TAB.REPOSITION": repositionDashboardTabHandler,
|
|
260
258
|
"GDC.DASH/CMD.TAB.DELETE": deleteDashboardTabHandler,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// (C) 2025-2026 GoodData Corporation
|
|
2
2
|
import { call, put, select } from "redux-saga/effects";
|
|
3
|
-
import { v4 as uuid } from "uuid";
|
|
4
3
|
import { createDefaultFilterContext } from "../../../_staging/dashboard/defaultFilterContext.js";
|
|
5
4
|
import { DEFAULT_FISCAL_DATE_FILTER_PRESET } from "../../../_staging/dateFilterConfig/defaultConfig.js";
|
|
6
5
|
import { configHasFiscalPresets } from "../../../_staging/dateFilterConfig/validation.js";
|
|
@@ -12,6 +11,7 @@ import { selectActiveCalendars, selectDateFilterConfig } from "../../store/confi
|
|
|
12
11
|
import { tabsActions } from "../../store/tabs/index.js";
|
|
13
12
|
import { selectScreen } from "../../store/tabs/layout/layoutSelectors.js";
|
|
14
13
|
import { selectActiveTabLocalIdentifier, selectTabs } from "../../store/tabs/tabsSelectors.js";
|
|
14
|
+
import { generateTabLocalIdentifier } from "../../utils/tabLocalIdentifier.js";
|
|
15
15
|
import { EmptyDashboardLayout } from "../dashboard/common/dashboardInitialize.js";
|
|
16
16
|
import { switchDashboardTabHandler } from "./switchDashboardTabHandler.js";
|
|
17
17
|
const getTabState = ({ title, localIdentifier, isRenaming, filterContext, dateFilterConfig, dateFilterConfigs, attributeFilterConfigs, layout, screen, }) => {
|
|
@@ -61,7 +61,7 @@ export function* createDashboardTabHandler(ctx, cmd) {
|
|
|
61
61
|
configHasFiscalPresets(dateFilterConfig)
|
|
62
62
|
? { ...dateFilterConfig, selectedOption: DEFAULT_FISCAL_DATE_FILTER_PRESET }
|
|
63
63
|
: dateFilterConfig;
|
|
64
|
-
const newTabId =
|
|
64
|
+
const newTabId = generateTabLocalIdentifier();
|
|
65
65
|
const newTabFilterContext = createDefaultFilterContext(effectiveDateFilterConfig, true);
|
|
66
66
|
const newTab = getTabState({
|
|
67
67
|
localIdentifier: newTabId,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
*
|
|
10
10
|
* @public
|
|
11
11
|
*/
|
|
12
|
-
export type DashboardCommandType = "GDC.DASH/CMD.INITIALIZE" | "GDC.DASH/CMD.SAVE" | "GDC.DASH/CMD.SAVEAS" | "GDC.DASH/CMD.RESET" | "GDC.DASH/CMD.RENAME" | "GDC.DASH/CMD.DELETE" | "GDC.DASH/CMD.CHANGE_RENDER_MODE" | "GDC.DASH/CMD.SHARING.CHANGE" | "GDC.DASH/CMD.EXPORT.PDF" | "GDC.DASH/CMD.EXPORT.EXCEL" | "GDC.DASH/CMD.EXPORT.PDF_PRESENTATION" | "GDC.DASH/CMD.EXPORT.PPT_PRESENTATION" | "GDC.DASH/CMD.EVENT.TRIGGER" | "GDC.DASH/CMD.EXECUTION_RESULT.UPSERT" | "GDC.DASH/CMD.FILTER_CONTEXT.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.TEXT_ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.REPLACE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_PARENTS" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DISPLAY_FORM" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_TITLE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_SELECTION_MODE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DEPENDENT_DATE_FILTERS" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CHANGE_CONDITION" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_DIMENSIONALITY" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_TITLE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.MEASURE_VALUE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_AVAILABLE_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_LIMITING_ITEMS" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_DISPLAY_AS_LABEL" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_WITH_DIMENSION_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_TITLE" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM_TO_NEW_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.CHANGE_SECTION_HEADER" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_ITEMS" | "GDC.DASH/CMD.FLUID_LAYOUT.REPLACE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM_BY_WIDGET_REF" | "GDC.DASH/CMD.FLUID_LAYOUT.UNDO" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_HEIGHT" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_WIDTH" | "GDC.DASH/CMD.FLUID_LAYOUT.SET_SCREEN_SIZE" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_SECTION_HEADERS" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_DIRECTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_MEASURE" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_COMPARISON" | "GDC.DASH/CMD.KPI_WIDGET.REFRESH" | "GDC.DASH/CMD.KPI_WIDGET.SET_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.REMOVE_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_PROPERTIES" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_INSIGHT" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_IGNORE_CROSS_FILTERING" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_TO_URL" | "GDC.DASH/CMD.INSIGHT_WIDGET.ADD_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REFRESH" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_CONTENT" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.ADD_VISUALIZATION" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.UPDATE_VISUALIZATIONS" | "GDC.DASH/CMD.ALERT.CREATE" | "GDC.DASH/CMD.ALERT.SAVE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.CREATE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.SAVE" | "GDC.DASH/CMD.DRILL" | "GDC.DASH/CMD.DRILL.DRILL_DOWN" | "GDC.DASH/CMD.DRILL.DRILL_TO_INSIGHT" | "GDC.DASH/CMD.DRILL.DRILL_TO_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILL_TO_ATTRIBUTE_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_CUSTOM_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_LEGACY_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILLABLE_ITEMS.CHANGE" | "GDC.DASH/CMD.DRILL.CROSS_FILTERING" | "GDC.DASH/CMD.DRILL.KEY_DRIVER_ANALYSIS" | "GDC.DASH/CMD.DRILL_TARGETS.ADD" | "GDC.DASH/CMD.RENDER.ASYNC.REQUEST" | "GDC.DASH/CMD.RENDER.ASYNC.RESOLVE" | "GDC.DASH/CMD.ATTRIBUTE_HIERARCHY_MODIFIED" | "GDC.DASH/CMD.AUTOMATIONS.INITIALIZE" | "GDC.DASH/CMD.AUTOMATIONS.REFRESH" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.SAVE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.DELETE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.APPLY" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.RELOAD" | "GDC.DASH/CMD.FILTER_CONTEXT.APPLY_WORKING_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.RESET_WORKING_SELECTION" | "GDC.DASH/CMD.CHANGE_IGNORE_EXECUTION_TIMESTAMP" | "GDC.DASH/CMD.TAB.SWITCH" | "GDC.DASH/CMD.TAB.REPOSITION" | "GDC.DASH/CMD.TAB.CREATE" | "GDC.DASH/CMD.TAB.
|
|
12
|
+
export type DashboardCommandType = "GDC.DASH/CMD.INITIALIZE" | "GDC.DASH/CMD.SAVE" | "GDC.DASH/CMD.SAVEAS" | "GDC.DASH/CMD.RESET" | "GDC.DASH/CMD.RENAME" | "GDC.DASH/CMD.DELETE" | "GDC.DASH/CMD.CHANGE_RENDER_MODE" | "GDC.DASH/CMD.SHARING.CHANGE" | "GDC.DASH/CMD.EXPORT.PDF" | "GDC.DASH/CMD.EXPORT.EXCEL" | "GDC.DASH/CMD.EXPORT.PDF_PRESENTATION" | "GDC.DASH/CMD.EXPORT.PPT_PRESENTATION" | "GDC.DASH/CMD.EVENT.TRIGGER" | "GDC.DASH/CMD.EXECUTION_RESULT.UPSERT" | "GDC.DASH/CMD.FILTER_CONTEXT.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.TEXT_ATTRIBUTE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.CHANGE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER_ITEM.REPLACE_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_PARENTS" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DISPLAY_FORM" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_TITLE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_SELECTION_MODE" | "GDC.DASH/CMD.FILTER_CONTEXT.ATTRIBUTE_FILTER.SET_DEPENDENT_DATE_FILTERS" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.DATE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.ADD" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.REMOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.MOVE" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.CHANGE_CONDITION" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_DIMENSIONALITY" | "GDC.DASH/CMD.FILTER_CONTEXT.MEASURE_VALUE_FILTER.SET_TITLE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.MEASURE_VALUE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_AVAILABLE_MODE" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_LIMITING_ITEMS" | "GDC.DASH/CMD.ATTRIBUTE_FILTER_CONFIG.SET_DISPLAY_AS_LABEL" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_WITH_DIMENSION_CONFIG.SET_MODE" | "GDC.DASH/CMD.DATE_FILTER_CONFIG.SET_TITLE" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM_TO_NEW_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_SECTION" | "GDC.DASH/CMD.FLUID_LAYOUT.CHANGE_SECTION_HEADER" | "GDC.DASH/CMD.FLUID_LAYOUT.ADD_ITEMS" | "GDC.DASH/CMD.FLUID_LAYOUT.REPLACE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.MOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM" | "GDC.DASH/CMD.FLUID_LAYOUT.REMOVE_ITEM_BY_WIDGET_REF" | "GDC.DASH/CMD.FLUID_LAYOUT.UNDO" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_HEIGHT" | "GDC.DASH/CMD.FLUID_LAYOUT.RESIZE_WIDTH" | "GDC.DASH/CMD.FLUID_LAYOUT.SET_SCREEN_SIZE" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_SECTION_HEADERS" | "GDC.DASH/CMD.FLEXIBLE_LAYOUT.TOGGLE_LAYOUT_DIRECTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_MEASURE" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_COMPARISON" | "GDC.DASH/CMD.KPI_WIDGET.REFRESH" | "GDC.DASH/CMD.KPI_WIDGET.SET_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.REMOVE_DRILL" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.KPI_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_HEADER" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_DESCRIPTION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_PROPERTIES" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_CONFIGURATION" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_INSIGHT" | "GDC.DASH/CMD.INSIGHT_WIDGET.CHANGE_IGNORE_CROSS_FILTERING" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILLS" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REMOVE_DRILL_TO_URL" | "GDC.DASH/CMD.INSIGHT_WIDGET.ADD_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.MODIFY_DRILL_DOWN" | "GDC.DASH/CMD.INSIGHT_WIDGET.REFRESH" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_CONTENT" | "GDC.DASH/CMD.RICH_TEXT_WIDGET.CHANGE_FILTER_SETTINGS" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.ADD_VISUALIZATION" | "GDC.DASH/CMD.VISUALIZATION_SWITCHER_WIDGET.UPDATE_VISUALIZATIONS" | "GDC.DASH/CMD.ALERT.CREATE" | "GDC.DASH/CMD.ALERT.SAVE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.CREATE" | "GDC.DASH/CMD.SCHEDULED_EMAIL.SAVE" | "GDC.DASH/CMD.DRILL" | "GDC.DASH/CMD.DRILL.DRILL_DOWN" | "GDC.DASH/CMD.DRILL.DRILL_TO_INSIGHT" | "GDC.DASH/CMD.DRILL.DRILL_TO_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILL_TO_ATTRIBUTE_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_CUSTOM_URL" | "GDC.DASH/CMD.DRILL.DRILL_TO_LEGACY_DASHBOARD" | "GDC.DASH/CMD.DRILL.DRILLABLE_ITEMS.CHANGE" | "GDC.DASH/CMD.DRILL.CROSS_FILTERING" | "GDC.DASH/CMD.DRILL.KEY_DRIVER_ANALYSIS" | "GDC.DASH/CMD.DRILL_TARGETS.ADD" | "GDC.DASH/CMD.RENDER.ASYNC.REQUEST" | "GDC.DASH/CMD.RENDER.ASYNC.RESOLVE" | "GDC.DASH/CMD.ATTRIBUTE_HIERARCHY_MODIFIED" | "GDC.DASH/CMD.AUTOMATIONS.INITIALIZE" | "GDC.DASH/CMD.AUTOMATIONS.REFRESH" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.SAVE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.DELETE" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.APPLY" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.CHANGE_DEFAULT_STATUS" | "GDC.DASH/CMD.FILTER_CONTEXT.FILTER_VIEW.RELOAD" | "GDC.DASH/CMD.FILTER_CONTEXT.APPLY_WORKING_SELECTION" | "GDC.DASH/CMD.FILTER_CONTEXT.RESET_WORKING_SELECTION" | "GDC.DASH/CMD.CHANGE_IGNORE_EXECUTION_TIMESTAMP" | "GDC.DASH/CMD.TAB.SWITCH" | "GDC.DASH/CMD.TAB.REPOSITION" | "GDC.DASH/CMD.TAB.CREATE" | "GDC.DASH/CMD.TAB.DELETE" | "GDC.DASH/CMD.TAB.RENAME_MODE.START" | "GDC.DASH/CMD.TAB.RENAME_MODE.CANCEL" | "GDC.DASH/CMD.TAB.RENAME" | "GDC.DASH/CMD.USERS.LOAD_ALL" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_RAW" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_SLIDES" | "GDC.DASH/CMD.INSIGHT_WIDGET.EXPORT_IMAGE" | "GDC.DASH/CMD.SHOW_WIDGET_AS_TABLE.SET" | "GDC.DASH/CMD.CHANGE_DENSITY" | "GDC.DASH/CMD.OPEN_DENSITY_DIALOG";
|
|
13
13
|
/**
|
|
14
14
|
* @public
|
|
15
15
|
*/
|