@procore/saved-views 6.0.1 → 6.1.0

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.
@@ -5541,9 +5541,11 @@ __export(index_exports, {
5541
5541
  SavedViewCollectionMenuItem: () => SavedViewCollectionMenuItem,
5542
5542
  SavedViews: () => SavedViews,
5543
5543
  SavedViewsDeleteConfirmationModalShared: () => SavedViewsDeleteConfirmationModalShared,
5544
+ SavedViewsSelectionProvider: () => SavedViewsSelectionProvider,
5544
5545
  SmartGridSavedViews: () => SmartGridSavedViews,
5545
5546
  getTranslations: () => getTranslations,
5546
- useSavedViewsPanel: () => useSavedViewsPanel_default
5547
+ useSavedViewsPanel: () => useSavedViewsPanel_default,
5548
+ useSavedViewsSelection: () => useSavedViewsSelection
5547
5549
  });
5548
5550
  module.exports = __toCommonJS(index_exports);
5549
5551
 
@@ -5557,7 +5559,15 @@ var de_DE_default = {
5557
5559
  title: "Gespeicherte Ansichten",
5558
5560
  tooltip: "Erstellen und speichern Sie ein benutzerdefiniertes Tabellenlayout, um schnell zu Ihrer bevorzugten Ansicht zur\xFCckzukehren.",
5559
5561
  button: {
5560
- title: "Ansichten"
5562
+ title: "Ansichten",
5563
+ titleWithView: "Ansicht: {{name}} ({{type}})",
5564
+ viewLevel: {
5565
+ company: "Unternehmen",
5566
+ project: "Projekt",
5567
+ personal: "Pers\xF6nlich",
5568
+ default: "Standard",
5569
+ temporary: "Vor\xFCbergehend"
5570
+ }
5561
5571
  },
5562
5572
  actions: {
5563
5573
  update: "Aktualisieren",
@@ -5652,7 +5662,15 @@ var en_AU_default = {
5652
5662
  title: "Saved views",
5653
5663
  tooltip: "Create and save any custom table layout to quickly return to your preferred view.",
5654
5664
  button: {
5655
- title: "Views"
5665
+ title: "Views",
5666
+ titleWithView: "View: {{name}} ({{type}})",
5667
+ viewLevel: {
5668
+ company: "Company",
5669
+ project: "Project",
5670
+ personal: "Personal",
5671
+ default: "Default",
5672
+ temporary: "Temporary"
5673
+ }
5656
5674
  },
5657
5675
  actions: {
5658
5676
  update: "Update",
@@ -5747,7 +5765,15 @@ var en_CA_default = {
5747
5765
  title: "Saved views",
5748
5766
  tooltip: "Create and save any custom table layout to quickly return to your preferred view.",
5749
5767
  button: {
5750
- title: "Views"
5768
+ title: "Views",
5769
+ titleWithView: "View: {{name}} ({{type}})",
5770
+ viewLevel: {
5771
+ company: "Company",
5772
+ project: "Project",
5773
+ personal: "Personal",
5774
+ default: "Default",
5775
+ temporary: "Temporary"
5776
+ }
5751
5777
  },
5752
5778
  actions: {
5753
5779
  update: "Update",
@@ -5842,7 +5868,15 @@ var en_GB_default = {
5842
5868
  title: "Saved views",
5843
5869
  tooltip: "Create and save any custom table layout to quickly return to your preferred view.",
5844
5870
  button: {
5845
- title: "Views"
5871
+ title: "Views",
5872
+ titleWithView: "View: {{name}} ({{type}})",
5873
+ viewLevel: {
5874
+ company: "Company",
5875
+ project: "Project",
5876
+ personal: "Personal",
5877
+ default: "Default",
5878
+ temporary: "Temporary"
5879
+ }
5846
5880
  },
5847
5881
  actions: {
5848
5882
  update: "Update",
@@ -5937,7 +5971,15 @@ var en_default = {
5937
5971
  title: "Saved Views",
5938
5972
  tooltip: "Create and save any custom table layout to quickly return to your preferred view.",
5939
5973
  button: {
5940
- title: "Views"
5974
+ title: "Views",
5975
+ titleWithView: "View: {{name}} ({{type}})",
5976
+ viewLevel: {
5977
+ company: "Company",
5978
+ project: "Project",
5979
+ personal: "Personal",
5980
+ default: "Default",
5981
+ temporary: "Temporary"
5982
+ }
5941
5983
  },
5942
5984
  actions: {
5943
5985
  update: "Update",
@@ -6032,7 +6074,15 @@ var es_ES_default = {
6032
6074
  title: "Vistas guardadas",
6033
6075
  tooltip: "Cree y guarde un dise\xF1o de tabla personalizado para volver r\xE1pidamente a su vista preferida.",
6034
6076
  button: {
6035
- title: "Vistas"
6077
+ title: "Vistas",
6078
+ titleWithView: "Ver: {{name}} ({{type}})",
6079
+ viewLevel: {
6080
+ company: "Empresa",
6081
+ project: "Proyecto",
6082
+ personal: "Personal",
6083
+ default: "Predeterminado",
6084
+ temporary: "Temporal"
6085
+ }
6036
6086
  },
6037
6087
  actions: {
6038
6088
  update: "Actualizar",
@@ -6064,7 +6114,7 @@ var es_ES_default = {
6064
6114
  fields: {
6065
6115
  name: "Nombre",
6066
6116
  description: "Descripci\xF3n",
6067
- viewLevel: "Ver nivel",
6117
+ viewLevel: "Nivel de vista",
6068
6118
  viewLevels: {
6069
6119
  company: "Vista de la empresa",
6070
6120
  project: "Vista del proyecto",
@@ -6114,7 +6164,7 @@ var es_ES_default = {
6114
6164
  temporaryViewName: "Vista temporal",
6115
6165
  viewLevel: {
6116
6166
  company: "Vistas de la empresa",
6117
- project: "Vistas de proyectos",
6167
+ project: "Vistas del proyecto",
6118
6168
  personal: "Vistas personales"
6119
6169
  }
6120
6170
  }
@@ -6127,7 +6177,15 @@ var es_default = {
6127
6177
  title: "Vistas guardadas",
6128
6178
  tooltip: "Cree y guarde cualquier dise\xF1o de tabla personalizado para volver r\xE1pidamente a su vista preferida.",
6129
6179
  button: {
6130
- title: "Vistas"
6180
+ title: "Vistas",
6181
+ titleWithView: "Vista: {{name}} ({{type}})",
6182
+ viewLevel: {
6183
+ company: "Compa\xF1\xEDa",
6184
+ project: "Proyecto",
6185
+ personal: "Personal",
6186
+ default: "Predeterminado",
6187
+ temporary: "Temporal"
6188
+ }
6131
6189
  },
6132
6190
  actions: {
6133
6191
  update: "Actualizar",
@@ -6222,7 +6280,15 @@ var fr_CA_default = {
6222
6280
  title: "Affichages sauvegard\xE9s",
6223
6281
  tooltip: "Cr\xE9ez et sauvegardez n'importe quelle disposition de tableau personnalis\xE9e pour revenir rapidement \xE0 votre affichage pr\xE9f\xE9r\xE9.",
6224
6282
  button: {
6225
- title: "Affichages"
6283
+ title: "Affichages",
6284
+ titleWithView: "Affichage\xA0: {{name}} ({{type}})",
6285
+ viewLevel: {
6286
+ company: "Entreprise",
6287
+ project: "Projet",
6288
+ personal: "Personnel",
6289
+ default: "Par d\xE9faut",
6290
+ temporary: "Temporaire"
6291
+ }
6226
6292
  },
6227
6293
  actions: {
6228
6294
  update: "Mettre \xE0 jour",
@@ -6249,7 +6315,7 @@ var fr_CA_default = {
6249
6315
  description: "Cet affichage ne peut pas \xEAtre restaur\xE9 une fois qu'il a \xE9t\xE9 supprim\xE9."
6250
6316
  },
6251
6317
  copyConfirmation: {
6252
- description: "Vous avez coll\xE9 un lien vers une vue enregistr\xE9e qui n'existe pas encore pour vous.\nVous pouvez la cr\xE9er comme affichage personnel enregistr\xE9 ou simplement la consulter\ntemporairement."
6318
+ description: "Vous avez coll\xE9 un lien vers un affichage sauvegard\xE9 qui n'existe pas encore pour vous.\nVous pouvez le cr\xE9er comme affichage personnel sauvegard\xE9 ou simplement le consulter\ntemporairement."
6253
6319
  },
6254
6320
  fields: {
6255
6321
  name: "Nom",
@@ -6264,9 +6330,9 @@ var fr_CA_default = {
6264
6330
  errors: {
6265
6331
  maxLengthName: "Ne peut pas contenir plus de {{maxLength}}\xA0caract\xE8res.",
6266
6332
  required: "Ne peut pas \xEAtre vide.",
6267
- duplicateName: "Un affichage enregistr\xE9 portant ce nom existe d\xE9j\xE0. Veuillez renommer et r\xE9essayer.",
6333
+ duplicateName: "Un affichage sauvegard\xE9 portant ce nom existe d\xE9j\xE0. Veuillez renommer et r\xE9essayer.",
6268
6334
  unknown: "Une erreur s'est produite. Veuillez r\xE9essayer.",
6269
- title: "D\xE9sol\xE9, nous n'avons pas pu {{mode}} cet affichage enregistr\xE9",
6335
+ title: "D\xE9sol\xE9, nous n'avons pas pu {{mode}} cet affichage sauvegard\xE9",
6270
6336
  description: {
6271
6337
  create: "Veuillez corriger les erreurs ci-dessous et r\xE9essayer de le cr\xE9er",
6272
6338
  update: "Veuillez corriger les erreurs ci-dessous et r\xE9essayer de le mettre \xE0 jour"
@@ -6277,8 +6343,8 @@ var fr_CA_default = {
6277
6343
  }
6278
6344
  },
6279
6345
  ariaLabels: {
6280
- menuItem: "\xC9l\xE9ment de menu Affichages enregistr\xE9s {{name}}",
6281
- modal: "Modal pour cr\xE9er/mettre \xE0 jour les affichages enregistr\xE9s"
6346
+ menuItem: "Item du menu Affichages sauvegard\xE9s {{name}}",
6347
+ modal: "Modal pour cr\xE9er/mettre \xE0 jour les affichages sauvegard\xE9s"
6282
6348
  },
6283
6349
  update: {
6284
6350
  success: "L'affichage sauvegard\xE9 a bien \xE9t\xE9 mis \xE0 jour."
@@ -6290,12 +6356,12 @@ var fr_CA_default = {
6290
6356
  success: "Le lien a \xE9t\xE9 cr\xE9\xE9 et copi\xE9 dans le presse-papiers."
6291
6357
  },
6292
6358
  errors: {
6293
- fetch: "D\xE9sol\xE9, les affichages enregistr\xE9s n'ont pas pu \xEAtre r\xE9cup\xE9r\xE9s. Veuillez r\xE9essayer.",
6294
- create: "D\xE9sol\xE9, l'affichage enregistr\xE9 n'a pas pu \xEAtre cr\xE9\xE9. Veuillez r\xE9essayer.",
6295
- update: "D\xE9sol\xE9, l'affichage enregistr\xE9 n'a pas pu \xEAtre mis \xE0 jour. Veuillez r\xE9essayer.",
6296
- delete: "D\xE9sol\xE9, l'affichage enregistr\xE9 n'a pas pu \xEAtre supprim\xE9. Veuillez r\xE9essayer.",
6359
+ fetch: "D\xE9sol\xE9, les affichages sauvegard\xE9s n'ont pas pu \xEAtre r\xE9cup\xE9r\xE9s. Veuillez r\xE9essayer.",
6360
+ create: "D\xE9sol\xE9, l'affichage sauvegard\xE9 n'a pas pu \xEAtre cr\xE9\xE9. Veuillez r\xE9essayer.",
6361
+ update: "D\xE9sol\xE9, l'affichage sauvegard\xE9 n'a pas pu \xEAtre mis \xE0 jour. Veuillez r\xE9essayer.",
6362
+ delete: "D\xE9sol\xE9, l'affichage sauvegard\xE9 n'a pas pu \xEAtre supprim\xE9. Veuillez r\xE9essayer.",
6297
6363
  copyFailed: "Impossible de copier le lien de partage dans le presse-papiers.",
6298
- notFound: "D\xE9sol\xE9, l'affichage enregistr\xE9 est introuvable. Veuillez r\xE9essayer."
6364
+ notFound: "D\xE9sol\xE9, l'affichage sauvegard\xE9 est introuvable. Veuillez r\xE9essayer."
6299
6365
  },
6300
6366
  defaultViewTitle: {
6301
6367
  rfi: "Toutes les QRT",
@@ -6317,7 +6383,15 @@ var fr_FR_default = {
6317
6383
  title: "Vues enregistr\xE9es",
6318
6384
  tooltip: "Cr\xE9ez et enregistrez n'importe quelle disposition de tableau personnalis\xE9e pour revenir rapidement \xE0 votre vue pr\xE9f\xE9r\xE9e.",
6319
6385
  button: {
6320
- title: "Vues"
6386
+ title: "Vues",
6387
+ titleWithView: "Affichage\xA0: {{name}} ({{type}})",
6388
+ viewLevel: {
6389
+ company: "Entreprise",
6390
+ project: "Projet",
6391
+ personal: "Personnelle",
6392
+ default: "Par d\xE9faut",
6393
+ temporary: "Temporaire"
6394
+ }
6321
6395
  },
6322
6396
  actions: {
6323
6397
  update: "Mettre \xE0 jour",
@@ -6412,7 +6486,15 @@ var is_IS_default = {
6412
6486
  title: "Vista\xF0ar sko\xF0anir",
6413
6487
  tooltip: "B\xFA\xF0u til og vista\xF0u s\xE9rsni\xF0na t\xF6fluuppsetningu til a\xF0 fara flj\xF3tt aftur \xED valinn s\xFDn.",
6414
6488
  button: {
6415
- title: "\xDAts\xFDni"
6489
+ title: "\xDAts\xFDni",
6490
+ titleWithView: "Sko\xF0a: {{name}} ({{type}})",
6491
+ viewLevel: {
6492
+ company: "Fyrirt\xE6ki",
6493
+ project: "Verkefni",
6494
+ personal: "Pers\xF3nulegt",
6495
+ default: "Sj\xE1lfgefi\xF0",
6496
+ temporary: "T\xEDmabundi\xF0"
6497
+ }
6416
6498
  },
6417
6499
  actions: {
6418
6500
  update: "Uppf\xE6rsla",
@@ -6507,7 +6589,15 @@ var it_IT_default = {
6507
6589
  title: "Viste salvate",
6508
6590
  tooltip: "Creare e salvare qualsiasi layout di tabella personalizzato per tornare rapidamente alla vista preferita.",
6509
6591
  button: {
6510
- title: "Viste"
6592
+ title: "Viste",
6593
+ titleWithView: "Visualizza: {{name}} ({{type}})",
6594
+ viewLevel: {
6595
+ company: "Azienda",
6596
+ project: "Progetto",
6597
+ personal: "Personale",
6598
+ default: "Predefinita",
6599
+ temporary: "Temporaneo"
6600
+ }
6511
6601
  },
6512
6602
  actions: {
6513
6603
  update: "Aggiorna",
@@ -6602,7 +6692,15 @@ var ja_JP_default = {
6602
6692
  title: "\u4FDD\u5B58\u6E08\u307F\u30D3\u30E5\u30FC",
6603
6693
  tooltip: "\u4EFB\u610F\u306E\u30AB\u30B9\u30BF\u30E0 \u30C6\u30FC\u30D6\u30EB \u30EC\u30A4\u30A2\u30A6\u30C8\u3092\u4F5C\u6210\u3057\u3066\u4FDD\u5B58\u3057\u3001\u3059\u3070\u3084\u304F\u597D\u307F\u306E\u30D3\u30E5\u30FC\u306B\u623B\u305B\u307E\u3059\u3002",
6604
6694
  button: {
6605
- title: "\u30D3\u30E5\u30FC"
6695
+ title: "\u30D3\u30E5\u30FC",
6696
+ titleWithView: "\u30D3\u30E5\u30FC: {{name}} ({{type}})",
6697
+ viewLevel: {
6698
+ company: "\u4F1A\u793E",
6699
+ project: "\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8",
6700
+ personal: "\u500B\u4EBA\u7528",
6701
+ default: "\u65E2\u5B9A\u306E",
6702
+ temporary: "\u4E00\u6642\u7684"
6703
+ }
6606
6704
  },
6607
6705
  actions: {
6608
6706
  update: "\u66F4\u65B0",
@@ -6697,7 +6795,15 @@ var pl_PL_default = {
6697
6795
  title: "Zapisane widoki",
6698
6796
  tooltip: "Utw\xF3rz i zapisz dowolny uk\u0142ad niestandardowej tabeli, aby szybko wr\xF3ci\u0107 do preferowanego widoku.",
6699
6797
  button: {
6700
- title: "Widoki"
6798
+ title: "Widoki",
6799
+ titleWithView: "Widok: {{name}} ({{type}})",
6800
+ viewLevel: {
6801
+ company: "Firma",
6802
+ project: "Projekt",
6803
+ personal: "Osobiste",
6804
+ default: "Domy\u015Blne",
6805
+ temporary: "Tymczasowe"
6806
+ }
6701
6807
  },
6702
6808
  actions: {
6703
6809
  update: "Zaktualizuj",
@@ -6792,7 +6898,15 @@ var pt_BR_default = {
6792
6898
  title: "Visualiza\xE7\xF5es Salvas",
6793
6899
  tooltip: "Crie e salve qualquer layout personalizado de tabela para retornar rapidamente \xE0 sua visualiza\xE7\xE3o preferida.",
6794
6900
  button: {
6795
- title: "Visualiza\xE7\xF5es"
6901
+ title: "Visualiza\xE7\xF5es",
6902
+ titleWithView: "Visualiza\xE7\xE3o: {{name}} ({{type}})",
6903
+ viewLevel: {
6904
+ company: "Empresa",
6905
+ project: "Projeto",
6906
+ personal: "Pessoal",
6907
+ default: "Padr\xE3o",
6908
+ temporary: "Tempor\xE1rio"
6909
+ }
6796
6910
  },
6797
6911
  actions: {
6798
6912
  update: "Atualizar",
@@ -6887,7 +7001,15 @@ var th_TH_default = {
6887
7001
  title: "\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E17\u0E35\u0E48\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E44\u0E27\u0E49",
6888
7002
  tooltip: "\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E41\u0E25\u0E30\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E04\u0E49\u0E32\u0E42\u0E04\u0E23\u0E07\u0E15\u0E32\u0E23\u0E32\u0E07\u0E41\u0E1A\u0E1A\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E40\u0E2D\u0E07\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E01\u0E25\u0E31\u0E1A\u0E44\u0E1B\u0E22\u0E31\u0E07\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E17\u0E35\u0E48\u0E04\u0E38\u0E13\u0E15\u0E49\u0E2D\u0E07\u0E01\u0E32\u0E23\u0E44\u0E14\u0E49\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E23\u0E27\u0E14\u0E40\u0E23\u0E47\u0E27",
6889
7003
  button: {
6890
- title: "\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07"
7004
+ title: "\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07",
7005
+ titleWithView: "\u0E08\u0E33\u0E19\u0E27\u0E19\u0E01\u0E32\u0E23\u0E14\u0E39: {{name}} ({{type}})",
7006
+ viewLevel: {
7007
+ company: "\u0E1A\u0E23\u0E34\u0E29\u0E31\u0E17",
7008
+ project: "\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23",
7009
+ personal: "\u0E2A\u0E48\u0E27\u0E19\u0E1A\u0E38\u0E04\u0E04\u0E25",
7010
+ default: "\u0E04\u0E48\u0E32\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19",
7011
+ temporary: "\u0E0A\u0E31\u0E48\u0E27\u0E04\u0E23\u0E32\u0E27"
7012
+ }
6891
7013
  },
6892
7014
  actions: {
6893
7015
  update: "\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E15",
@@ -6982,7 +7104,15 @@ var zh_SG_default = {
6982
7104
  title: "\u5DF2\u4FDD\u5B58\u89C6\u56FE",
6983
7105
  tooltip: "\u521B\u5EFA\u5E76\u4FDD\u5B58\u4EFB\u4F55\u81EA\u5B9A\u4E49\u8868\u683C\u5E03\u5C40\u4EE5\u5FEB\u901F\u8FD4\u56DE\u5230\u4F60\u7684\u9996\u9009\u89C6\u56FE\u3002",
6984
7106
  button: {
6985
- title: "\u89C6\u56FE"
7107
+ title: "\u89C6\u56FE",
7108
+ titleWithView: "\u67E5\u770B\uFF1A{{name}}\uFF08{{type}}\uFF09",
7109
+ viewLevel: {
7110
+ company: "\u516C\u53F8",
7111
+ project: "\u9879\u76EE",
7112
+ personal: "\u4E2A\u4EBA",
7113
+ default: "\u9ED8\u8BA4",
7114
+ temporary: "\u4E34\u65F6"
7115
+ }
6986
7116
  },
6987
7117
  actions: {
6988
7118
  update: "\u66F4\u65B0",
@@ -7105,7 +7235,7 @@ function getTranslations(envLocale) {
7105
7235
  }
7106
7236
 
7107
7237
  // src/components/buttons/useSavedViewsPanel.tsx
7108
- var import_react4 = require("react");
7238
+ var import_react5 = require("react");
7109
7239
 
7110
7240
  // ../../node_modules/tslib/tslib.es6.mjs
7111
7241
  var __assign = function() {
@@ -7324,7 +7454,7 @@ var Plus_default = Plus;
7324
7454
 
7325
7455
  // src/components/buttons/SavedViewsButton.tsx
7326
7456
  var import_core_react2 = require("@procore/core-react");
7327
- var import_react3 = __toESM(require("react"));
7457
+ var import_react4 = __toESM(require("react"));
7328
7458
 
7329
7459
  // ../../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js
7330
7460
  function memoize(fn) {
@@ -8837,6 +8967,25 @@ var EnvironmentI18nProvider = ({ children }) => {
8837
8967
  return /* @__PURE__ */ import_react2.default.createElement(import_core_react.I18nContext.Provider, { value: i18n }, children);
8838
8968
  };
8839
8969
 
8970
+ // src/components/buttons/SavedViewsSelectionContext.tsx
8971
+ var import_react3 = __toESM(require("react"));
8972
+ var SavedViewsSelectionContext = (0, import_react3.createContext)(null);
8973
+ var SavedViewsSelectionProvider = ({
8974
+ children
8975
+ }) => {
8976
+ const [selectedView, setSelectedView] = (0, import_react3.useState)(null);
8977
+ const updateSelectedView = (0, import_react3.useCallback)(
8978
+ (view) => setSelectedView(view),
8979
+ []
8980
+ );
8981
+ const value = (0, import_react3.useMemo)(
8982
+ () => ({ selectedView, setSelectedView: updateSelectedView }),
8983
+ [selectedView, updateSelectedView]
8984
+ );
8985
+ return /* @__PURE__ */ import_react3.default.createElement(SavedViewsSelectionContext.Provider, { value }, children);
8986
+ };
8987
+ var useSavedViewsSelection = () => (0, import_react3.useContext)(SavedViewsSelectionContext);
8988
+
8840
8989
  // src/components/buttons/SavedViewsButton.tsx
8841
8990
  var StyledIcon = pt(ExpandSidebar_default)`
8842
8991
  transform: ${(props) => props.left ? "rotate(180deg)" : ""};
@@ -8846,43 +8995,72 @@ var Container = pt.div`
8846
8995
  border-right: 2px solid #d6dadc;
8847
8996
  padding-right: 8px;
8848
8997
  `;
8998
+ var Label = pt.span`
8999
+ display: inline-block;
9000
+ max-width: 218px;
9001
+ overflow: hidden;
9002
+ text-overflow: ellipsis;
9003
+ white-space: nowrap;
9004
+ vertical-align: middle;
9005
+ `;
8849
9006
  var SavedViewsButton = ({
8850
9007
  handleClick,
8851
9008
  isOpen
8852
9009
  }) => {
8853
9010
  const I18n = useCDNTranslations();
8854
- return /* @__PURE__ */ import_react3.default.createElement(Container, null, /* @__PURE__ */ import_react3.default.createElement(
9011
+ const selection = useSavedViewsSelection();
9012
+ const activeView = selection == null ? void 0 : selection.selectedView;
9013
+ const activeName = activeView == null ? void 0 : activeView.name;
9014
+ const activeType = (activeView == null ? void 0 : activeView.view_level) ? I18n.t(`savedViews.button.viewLevel.${activeView.view_level}`) : "";
9015
+ const label = activeName ? I18n.t("savedViews.button.titleWithView", {
9016
+ name: activeName,
9017
+ type: activeType
9018
+ }) : I18n.t("savedViews.button.title");
9019
+ const button = /* @__PURE__ */ import_react4.default.createElement(
8855
9020
  import_core_react2.ToggleButton,
8856
9021
  {
8857
9022
  selected: isOpen,
8858
9023
  onClick: handleClick,
8859
- icon: /* @__PURE__ */ import_react3.default.createElement(StyledIcon, { left: isOpen }),
9024
+ icon: /* @__PURE__ */ import_react4.default.createElement(StyledIcon, { left: isOpen }),
8860
9025
  "data-testid": "saved-views-button",
8861
- "aria-controls": "saved-views-panel"
9026
+ "aria-controls": "saved-views-panel",
9027
+ "aria-label": label
8862
9028
  },
8863
- I18n.t("savedViews.button.title")
8864
- ));
9029
+ /* @__PURE__ */ import_react4.default.createElement(Label, null, label)
9030
+ );
9031
+ return /* @__PURE__ */ import_react4.default.createElement(Container, null, activeName ? /* @__PURE__ */ import_react4.default.createElement(
9032
+ import_core_react2.Tooltip,
9033
+ {
9034
+ showDelay: 500,
9035
+ overlay: /* @__PURE__ */ import_react4.default.createElement(import_core_react2.Tooltip.Content, null, label)
9036
+ },
9037
+ button
9038
+ ) : button);
8865
9039
  };
8866
9040
 
8867
9041
  // src/components/buttons/useSavedViewsPanel.tsx
8868
- var import_react5 = __toESM(require("react"));
9042
+ var import_react6 = __toESM(require("react"));
8869
9043
  var useSavedViewsPanel = (domain, tableName) => {
8870
9044
  const key = (domain2, tableName2) => `savedViewsPanel-${domain2}-${tableName2}`;
8871
- const [isOpen, setIsOpen] = (0, import_react4.useState)(
9045
+ const [isOpen, setIsOpen] = (0, import_react5.useState)(
8872
9046
  localStorage.getItem(key(domain, tableName)) === null || localStorage.getItem(key(domain, tableName)) === "true"
8873
9047
  );
8874
9048
  const handleClick = () => {
8875
9049
  setIsOpen(!isOpen);
8876
9050
  localStorage.setItem(key(domain, tableName), JSON.stringify(!isOpen));
8877
9051
  };
8878
- const Button7 = () => /* @__PURE__ */ import_react5.default.createElement(SavedViewsButton, { handleClick, isOpen });
8879
- return { isOpen, SavedViewsButton: Button7 };
9052
+ const Button7 = () => /* @__PURE__ */ import_react6.default.createElement(SavedViewsButton, { handleClick, isOpen });
9053
+ return {
9054
+ isOpen,
9055
+ SavedViewsButton: Button7,
9056
+ SavedViewsProvider: SavedViewsSelectionProvider
9057
+ };
8880
9058
  };
8881
9059
  var useSavedViewsPanel_default = useSavedViewsPanel;
8882
9060
 
8883
9061
  // src/components/menu-items/SavedViewsCollectionsMenuItem.tsx
8884
9062
  var import_core_react3 = require("@procore/core-react");
8885
- var React15 = __toESM(require("react"));
9063
+ var React16 = __toESM(require("react"));
8886
9064
  var import_toast_alert = require("@procore/toast-alert");
8887
9065
  var RowActionsBox = pt(import_core_react3.Flex)`
8888
9066
  justify-content: center;
@@ -8904,7 +9082,7 @@ var IconWrapper = pt.span`
8904
9082
  justify-content: center;
8905
9083
  `;
8906
9084
  var SavedViewCollectionMenuItem = (props) => {
8907
- const onClick = React15.useCallback(
9085
+ const onClick = React16.useCallback(
8908
9086
  (a2) => {
8909
9087
  var _a, _b;
8910
9088
  if (!props.item) {
@@ -8952,7 +9130,7 @@ var SavedViewCollectionMenuItem = (props) => {
8952
9130
  label: i18n.t("savedViews.actions.delete")
8953
9131
  }
8954
9132
  ];
8955
- const preventEventBubbleToNotTriggerViewSelectEvent = React15.useCallback(
9133
+ const preventEventBubbleToNotTriggerViewSelectEvent = React16.useCallback(
8956
9134
  (e) => {
8957
9135
  e.stopPropagation();
8958
9136
  },
@@ -8963,7 +9141,7 @@ var SavedViewCollectionMenuItem = (props) => {
8963
9141
  const hasClearTemporaryButton = props.item.id === "temporary";
8964
9142
  const hasOverflowMenu = props.item.view_level !== "default" && props.canEditOrDelete;
8965
9143
  const hasActions = hasUpdateButton || hasCopyShareLinkButton || hasClearTemporaryButton || hasOverflowMenu;
8966
- return /* @__PURE__ */ React15.createElement(
9144
+ return /* @__PURE__ */ React16.createElement(
8967
9145
  Container2,
8968
9146
  {
8969
9147
  "aria-selected": Boolean(props.selected),
@@ -8975,7 +9153,7 @@ var SavedViewCollectionMenuItem = (props) => {
8975
9153
  "data-testid": "saved-view-collection-menu-item",
8976
9154
  onKeyDown: preventEventBubbleToNotTriggerViewSelectEvent
8977
9155
  },
8978
- /* @__PURE__ */ React15.createElement(
9156
+ /* @__PURE__ */ React16.createElement(
8979
9157
  "span",
8980
9158
  {
8981
9159
  "data-testid": "saved-view-display-name",
@@ -8983,7 +9161,7 @@ var SavedViewCollectionMenuItem = (props) => {
8983
9161
  },
8984
9162
  props.item.name
8985
9163
  ),
8986
- hasActions && /* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(import_core_react3.Box, { justifyContent: "space-between" }, hasUpdateButton && /* @__PURE__ */ React15.createElement(
9164
+ hasActions && /* @__PURE__ */ React16.createElement(RowActionsBox, null, /* @__PURE__ */ React16.createElement(import_core_react3.Box, { justifyContent: "space-between" }, hasUpdateButton && /* @__PURE__ */ React16.createElement(
8987
9165
  import_core_react3.Button,
8988
9166
  {
8989
9167
  onClick: updateItem,
@@ -8994,7 +9172,7 @@ var SavedViewCollectionMenuItem = (props) => {
8994
9172
  loading: props.isUpdateProcessing
8995
9173
  },
8996
9174
  i18n.t("savedViews.actions.update")
8997
- ), hasCopyShareLinkButton && /* @__PURE__ */ React15.createElement(
9175
+ ), hasCopyShareLinkButton && /* @__PURE__ */ React16.createElement(
8998
9176
  import_core_react3.Button,
8999
9177
  {
9000
9178
  onClick: copyShareLink,
@@ -9003,8 +9181,8 @@ var SavedViewCollectionMenuItem = (props) => {
9003
9181
  "aria-label": i18n.t("savedViews.actions.copyShareLink"),
9004
9182
  "data-testid": "copy-share-link-button"
9005
9183
  },
9006
- /* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Link_default, { size: "sm" }))
9007
- ), hasClearTemporaryButton && /* @__PURE__ */ React15.createElement(
9184
+ /* @__PURE__ */ React16.createElement(IconWrapper, null, /* @__PURE__ */ React16.createElement(Link_default, { size: "sm" }))
9185
+ ), hasClearTemporaryButton && /* @__PURE__ */ React16.createElement(
9008
9186
  import_core_react3.Button,
9009
9187
  {
9010
9188
  onClick: (e) => {
@@ -9018,8 +9196,8 @@ var SavedViewCollectionMenuItem = (props) => {
9018
9196
  title: i18n.t("savedViews.actions.clearTemporary"),
9019
9197
  "data-testid": "clear-temporary-view-button"
9020
9198
  },
9021
- /* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" }))
9022
- )), /* @__PURE__ */ React15.createElement(import_core_react3.Box, null, hasOverflowMenu && /* @__PURE__ */ React15.createElement(
9199
+ /* @__PURE__ */ React16.createElement(IconWrapper, null, /* @__PURE__ */ React16.createElement(Clear_default, { size: "sm" }))
9200
+ )), /* @__PURE__ */ React16.createElement(import_core_react3.Box, null, hasOverflowMenu && /* @__PURE__ */ React16.createElement(
9023
9201
  import_core_react3.DropdownFlyout,
9024
9202
  {
9025
9203
  "data-testid": "saved-view-overflow-button",
@@ -9045,7 +9223,7 @@ var ExpandedPanel = pt(import_core_react4.Panel)`
9045
9223
  // src/components/panels/PanelContent.tsx
9046
9224
  var import_core_react8 = require("@procore/core-react");
9047
9225
  var import_toast_alert2 = require("@procore/toast-alert");
9048
- var import_react9 = __toESM(require("react"));
9226
+ var import_react10 = __toESM(require("react"));
9049
9227
 
9050
9228
  // src/utils/api/queries.ts
9051
9229
  var import_core_http2 = require("@procore/core-http");
@@ -9407,10 +9585,10 @@ var hasPermissionForViewLevel = (viewLevel, permissions) => {
9407
9585
  };
9408
9586
 
9409
9587
  // src/components/panels/useGroups.ts
9410
- var import_react6 = require("react");
9588
+ var import_react7 = require("react");
9411
9589
  var useGroups = (isProjectLevelTool) => {
9412
9590
  const viewLevels = getViewLevels(isProjectLevelTool);
9413
- const [groups, setGroups] = (0, import_react6.useState)(
9591
+ const [groups, setGroups] = (0, import_react7.useState)(
9414
9592
  Object.fromEntries(viewLevels.map((level) => [level, true]))
9415
9593
  );
9416
9594
  const toggleGroup = (group) => {
@@ -9421,15 +9599,15 @@ var useGroups = (isProjectLevelTool) => {
9421
9599
 
9422
9600
  // src/components/panels/ViewLevelHeader.tsx
9423
9601
  var import_core_react6 = require("@procore/core-react");
9424
- var import_react7 = __toESM(require("react"));
9602
+ var import_react8 = __toESM(require("react"));
9425
9603
  var groupIcon = (group) => {
9426
9604
  switch (group) {
9427
9605
  case "personal":
9428
- return /* @__PURE__ */ import_react7.default.createElement(Person_default, null);
9606
+ return /* @__PURE__ */ import_react8.default.createElement(Person_default, null);
9429
9607
  case "project":
9430
- return /* @__PURE__ */ import_react7.default.createElement(Excavator_default, null);
9608
+ return /* @__PURE__ */ import_react8.default.createElement(Excavator_default, null);
9431
9609
  case "company":
9432
- return /* @__PURE__ */ import_react7.default.createElement(Building_default, null);
9610
+ return /* @__PURE__ */ import_react8.default.createElement(Building_default, null);
9433
9611
  }
9434
9612
  };
9435
9613
  var StyledButton = pt(import_core_react6.Button)`
@@ -9439,7 +9617,7 @@ var StyledButton = pt(import_core_react6.Button)`
9439
9617
  `;
9440
9618
  var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
9441
9619
  const I18n = (0, import_core_react6.useI18nContext)();
9442
- return /* @__PURE__ */ import_react7.default.createElement(import_core_react6.Box, { style: { width: "100%" } }, /* @__PURE__ */ import_react7.default.createElement(
9620
+ return /* @__PURE__ */ import_react8.default.createElement(import_core_react6.Box, { style: { width: "100%" } }, /* @__PURE__ */ import_react8.default.createElement(
9443
9621
  StyledButton,
9444
9622
  {
9445
9623
  block: true,
@@ -9452,19 +9630,19 @@ var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
9452
9630
  onClick: () => toggleGroup(group),
9453
9631
  "aria-controls": `saved-views-collections-${group}`,
9454
9632
  "aria-expanded": expanded,
9455
- icon: expanded ? /* @__PURE__ */ import_react7.default.createElement(ChevronDown_default, { size: "sm" }) : /* @__PURE__ */ import_react7.default.createElement(ChevronRight_default, { size: "sm" })
9633
+ icon: expanded ? /* @__PURE__ */ import_react8.default.createElement(ChevronDown_default, { size: "sm" }) : /* @__PURE__ */ import_react8.default.createElement(ChevronRight_default, { size: "sm" })
9456
9634
  },
9457
9635
  groupIcon(group),
9458
- /* @__PURE__ */ import_react7.default.createElement(import_core_react6.Typography, { weight: "semibold" }, I18n.t(`savedViews.viewLevel.${group}`))
9636
+ /* @__PURE__ */ import_react8.default.createElement(import_core_react6.Typography, { weight: "semibold" }, I18n.t(`savedViews.viewLevel.${group}`))
9459
9637
  ));
9460
9638
  };
9461
9639
  var ViewLevelHeader_default = ViewLevelHeader;
9462
9640
 
9463
9641
  // src/utils/hooks/useScrollToRef.ts
9464
- var import_react8 = require("react");
9642
+ var import_react9 = require("react");
9465
9643
  var useScrollToRef = (dependency) => {
9466
- const ref = (0, import_react8.useRef)(null);
9467
- (0, import_react8.useEffect)(() => {
9644
+ const ref = (0, import_react9.useRef)(null);
9645
+ (0, import_react9.useEffect)(() => {
9468
9646
  if (ref.current) {
9469
9647
  ref.current.scrollIntoView({ behavior: "smooth", block: "nearest" });
9470
9648
  }
@@ -9506,8 +9684,8 @@ var PanelContent = (props) => {
9506
9684
  const { mutate: updateSavedView } = updateMutation;
9507
9685
  const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
9508
9686
  const savedViews = props.savedViews ?? savedViewsFromQuery;
9509
- const errorToastRef = import_react9.default.useRef(null);
9510
- import_react9.default.useEffect(() => {
9687
+ const errorToastRef = import_react10.default.useRef(null);
9688
+ import_react10.default.useEffect(() => {
9511
9689
  if (savedViewsError && savedViewsError !== errorToastRef.current) {
9512
9690
  showToast.error(I18n.t("savedViews.errors.fetch"));
9513
9691
  errorToastRef.current = savedViewsError;
@@ -9537,7 +9715,7 @@ var PanelContent = (props) => {
9537
9715
  }
9538
9716
  });
9539
9717
  };
9540
- return /* @__PURE__ */ import_react9.default.createElement(Panel2, { "data-testid": "inner-panel" }, /* @__PURE__ */ import_react9.default.createElement(import_core_react8.Flex, { direction: "column", style: { height: "100%", width: "100%" } }, (temporaryView || presetViews) && /* @__PURE__ */ import_react9.default.createElement(
9718
+ return /* @__PURE__ */ import_react10.default.createElement(Panel2, { "data-testid": "inner-panel" }, /* @__PURE__ */ import_react10.default.createElement(import_core_react8.Flex, { direction: "column", style: { height: "100%", width: "100%" } }, (temporaryView || presetViews) && /* @__PURE__ */ import_react10.default.createElement(
9541
9719
  StyledMenuImperative,
9542
9720
  {
9543
9721
  role: "listbox",
@@ -9547,7 +9725,7 @@ var PanelContent = (props) => {
9547
9725
  }
9548
9726
  }
9549
9727
  },
9550
- /* @__PURE__ */ import_react9.default.createElement(import_core_react8.MenuImperative.Options, null, temporaryView && /* @__PURE__ */ import_react9.default.createElement(
9728
+ /* @__PURE__ */ import_react10.default.createElement(import_core_react8.MenuImperative.Options, null, temporaryView && /* @__PURE__ */ import_react10.default.createElement(
9551
9729
  Row,
9552
9730
  {
9553
9731
  key: temporaryView.id,
@@ -9556,7 +9734,7 @@ var PanelContent = (props) => {
9556
9734
  "aria-current": isTemporarySelected ? "true" : void 0,
9557
9735
  ref: isTemporarySelected ? selectedRowRef : null
9558
9736
  },
9559
- /* @__PURE__ */ import_react9.default.createElement(
9737
+ /* @__PURE__ */ import_react10.default.createElement(
9560
9738
  SavedViewCollectionMenuItem,
9561
9739
  {
9562
9740
  item: temporaryView,
@@ -9566,7 +9744,7 @@ var PanelContent = (props) => {
9566
9744
  )
9567
9745
  ), presetViews.map((presetView) => {
9568
9746
  const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === presetView.id;
9569
- return /* @__PURE__ */ import_react9.default.createElement(
9747
+ return /* @__PURE__ */ import_react10.default.createElement(
9570
9748
  Row,
9571
9749
  {
9572
9750
  key: presetView.id,
@@ -9575,7 +9753,7 @@ var PanelContent = (props) => {
9575
9753
  "aria-current": isSelected ? "true" : void 0,
9576
9754
  ref: isSelected ? selectedRowRef : null
9577
9755
  },
9578
- /* @__PURE__ */ import_react9.default.createElement(
9756
+ /* @__PURE__ */ import_react10.default.createElement(
9579
9757
  SavedViewCollectionMenuItem,
9580
9758
  {
9581
9759
  item: presetView,
@@ -9589,14 +9767,14 @@ var PanelContent = (props) => {
9589
9767
  const views = isExpanded && savedViews ? savedViews.filter(
9590
9768
  (view) => view.view_level === level && view.id !== "temporary"
9591
9769
  ) : [];
9592
- return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, { key: level }, /* @__PURE__ */ import_react9.default.createElement(
9770
+ return /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, { key: level }, /* @__PURE__ */ import_react10.default.createElement(
9593
9771
  ViewLevelHeader_default,
9594
9772
  {
9595
9773
  group: level,
9596
9774
  toggleGroup,
9597
9775
  expanded: isExpanded
9598
9776
  }
9599
- ), isExpanded && views.length > 0 && /* @__PURE__ */ import_react9.default.createElement(
9777
+ ), isExpanded && views.length > 0 && /* @__PURE__ */ import_react10.default.createElement(
9600
9778
  StyledMenuImperative,
9601
9779
  {
9602
9780
  id: `saved-views-collections-${level}`,
@@ -9607,7 +9785,7 @@ var PanelContent = (props) => {
9607
9785
  }
9608
9786
  }
9609
9787
  },
9610
- /* @__PURE__ */ import_react9.default.createElement(import_core_react8.MenuImperative.Options, null, views.map((view) => {
9788
+ /* @__PURE__ */ import_react10.default.createElement(import_core_react8.MenuImperative.Options, null, views.map((view) => {
9611
9789
  const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === view.id;
9612
9790
  const canUpdate = isSelected && hasPermissionForViewLevel(
9613
9791
  view.view_level,
@@ -9619,7 +9797,7 @@ var PanelContent = (props) => {
9619
9797
  props.provider
9620
9798
  );
9621
9799
  const canEditOrDelete = isSelected && hasPermissionForViewLevel(view.view_level, permissions);
9622
- return /* @__PURE__ */ import_react9.default.createElement(
9800
+ return /* @__PURE__ */ import_react10.default.createElement(
9623
9801
  Row,
9624
9802
  {
9625
9803
  key: view.id,
@@ -9628,7 +9806,7 @@ var PanelContent = (props) => {
9628
9806
  "aria-current": isSelected ? "true" : void 0,
9629
9807
  ref: isSelected ? selectedRowRef : null
9630
9808
  },
9631
- /* @__PURE__ */ import_react9.default.createElement(
9809
+ /* @__PURE__ */ import_react10.default.createElement(
9632
9810
  SavedViewCollectionMenuItem,
9633
9811
  {
9634
9812
  item: view,
@@ -9651,20 +9829,20 @@ var PanelContent = (props) => {
9651
9829
 
9652
9830
  // src/components/saved-views/SavedViews.tsx
9653
9831
  var import_core_react15 = require("@procore/core-react");
9654
- var import_react15 = __toESM(require("react"));
9832
+ var import_react16 = __toESM(require("react"));
9655
9833
  var import_react_query3 = require("@tanstack/react-query");
9656
9834
  var import_toast_alert3 = require("@procore/toast-alert");
9657
9835
 
9658
9836
  // src/components/modals/DeleteConfirmationModal.tsx
9659
9837
  var import_core_react9 = require("@procore/core-react");
9660
- var import_react10 = __toESM(require("react"));
9838
+ var import_react11 = __toESM(require("react"));
9661
9839
  var SavedViewsDeleteConfirmationModalShared = ({
9662
9840
  onCancel,
9663
9841
  onDelete,
9664
9842
  open
9665
9843
  }) => {
9666
9844
  const i18n = (0, import_core_react9.useI18nContext)();
9667
- return /* @__PURE__ */ import_react10.default.createElement(
9845
+ return /* @__PURE__ */ import_react11.default.createElement(
9668
9846
  import_core_react9.ConfirmModal,
9669
9847
  {
9670
9848
  "data-testid": "delete-confirmation-modal",
@@ -9674,17 +9852,17 @@ var SavedViewsDeleteConfirmationModalShared = ({
9674
9852
  onClose: onCancel,
9675
9853
  style: { overflowWrap: "anywhere" }
9676
9854
  },
9677
- /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Modal.Body, null, /* @__PURE__ */ import_react10.default.createElement(import_core_react9.P, null, i18n.t("savedViews.modal.delete.description"))),
9678
- /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Modal.Footer, null, /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Modal.FooterButtons, null, /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Button, { variant: "secondary", onClick: onCancel }, i18n.t("savedViews.actions.cancel")), /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Button, { variant: "primary", onClick: onDelete }, i18n.t("savedViews.actions.delete"))))
9855
+ /* @__PURE__ */ import_react11.default.createElement(import_core_react9.Modal.Body, null, /* @__PURE__ */ import_react11.default.createElement(import_core_react9.P, null, i18n.t("savedViews.modal.delete.description"))),
9856
+ /* @__PURE__ */ import_react11.default.createElement(import_core_react9.Modal.Footer, null, /* @__PURE__ */ import_react11.default.createElement(import_core_react9.Modal.FooterButtons, null, /* @__PURE__ */ import_react11.default.createElement(import_core_react9.Button, { variant: "secondary", onClick: onCancel }, i18n.t("savedViews.actions.cancel")), /* @__PURE__ */ import_react11.default.createElement(import_core_react9.Button, { variant: "primary", onClick: onDelete }, i18n.t("savedViews.actions.delete"))))
9679
9857
  );
9680
9858
  };
9681
9859
 
9682
9860
  // src/components/modals/form-modal/FormModal.tsx
9683
- var import_react11 = __toESM(require("react"));
9861
+ var import_react12 = __toESM(require("react"));
9684
9862
 
9685
9863
  // src/components/modals/form-modal/FormModalBase.tsx
9686
9864
  var import_core_react11 = require("@procore/core-react");
9687
- var React20 = __toESM(require("react"));
9865
+ var React21 = __toESM(require("react"));
9688
9866
  var yup = __toESM(require("yup"));
9689
9867
 
9690
9868
  // src/components/modals/form-modal/FormModalBaseUtils.ts
@@ -9721,7 +9899,7 @@ function extractMessage(error, I18n) {
9721
9899
 
9722
9900
  // src/components/modals/form-modal/NameInputField.tsx
9723
9901
  var import_core_react10 = require("@procore/core-react");
9724
- var React19 = __toESM(require("react"));
9902
+ var React20 = __toESM(require("react"));
9725
9903
  var NAME_INPUT_ID = "saved-view-form-name-input";
9726
9904
  var NameInputField = ({
9727
9905
  error,
@@ -9730,13 +9908,13 @@ var NameInputField = ({
9730
9908
  const I18n = (0, import_core_react10.useI18nContext)();
9731
9909
  const label = I18n.t("savedViews.modal.fields.name");
9732
9910
  const { errors: formErrors, submitCount } = (0, import_core_react10.useFormContext)();
9733
- React19.useEffect(() => {
9911
+ React20.useEffect(() => {
9734
9912
  var _a;
9735
9913
  if (submitCount > 0 && (formErrors == null ? void 0 : formErrors.name)) {
9736
9914
  (_a = document.getElementById(NAME_INPUT_ID)) == null ? void 0 : _a.focus();
9737
9915
  }
9738
9916
  }, [formErrors == null ? void 0 : formErrors.name, submitCount]);
9739
- return /* @__PURE__ */ React19.createElement(
9917
+ return /* @__PURE__ */ React20.createElement(
9740
9918
  import_core_react10.Form.Text,
9741
9919
  {
9742
9920
  id: NAME_INPUT_ID,
@@ -9828,7 +10006,7 @@ var FormModalBase = ({
9828
10006
  I18n,
9829
10007
  isProjectLevelTool
9830
10008
  );
9831
- return /* @__PURE__ */ React20.createElement(
10009
+ return /* @__PURE__ */ React21.createElement(
9832
10010
  import_core_react11.Modal,
9833
10011
  {
9834
10012
  howToClose: ["x", "scrim"],
@@ -9837,7 +10015,7 @@ var FormModalBase = ({
9837
10015
  width: "md",
9838
10016
  "data-testid": "create-update-modal"
9839
10017
  },
9840
- /* @__PURE__ */ React20.createElement(ScrollContainer, null, /* @__PURE__ */ React20.createElement(import_core_react11.Modal.Header, { style: { borderBottom: `1px solid ${import_core_react11.colors.gray85}` } }, /* @__PURE__ */ React20.createElement(import_core_react11.Modal.Heading, null, header)), /* @__PURE__ */ React20.createElement(
10018
+ /* @__PURE__ */ React21.createElement(ScrollContainer, null, /* @__PURE__ */ React21.createElement(import_core_react11.Modal.Header, { style: { borderBottom: `1px solid ${import_core_react11.colors.gray85}` } }, /* @__PURE__ */ React21.createElement(import_core_react11.Modal.Heading, null, header)), /* @__PURE__ */ React21.createElement(
9841
10019
  import_core_react11.Form,
9842
10020
  {
9843
10021
  initialValues: {
@@ -9863,25 +10041,25 @@ var FormModalBase = ({
9863
10041
  onReset: onCancel,
9864
10042
  validateOnChange: true
9865
10043
  },
9866
- /* @__PURE__ */ React20.createElement(import_core_react11.Form.Form, { name: header }, /* @__PURE__ */ React20.createElement(
10044
+ /* @__PURE__ */ React21.createElement(import_core_react11.Form.Form, { name: header }, /* @__PURE__ */ React21.createElement(
9867
10045
  import_core_react11.Modal.Body,
9868
10046
  {
9869
10047
  style: { paddingTop: 0, paddingBottom: 0, marginTop: import_core_react11.spacing.lg }
9870
10048
  },
9871
- errors && /* @__PURE__ */ React20.createElement(import_core_react11.ErrorBanner, { style: { marginBottom: import_core_react11.spacing.xl } }, /* @__PURE__ */ React20.createElement(import_core_react11.Banner.Content, null, /* @__PURE__ */ React20.createElement(import_core_react11.Banner.Title, null, I18n.t("savedViews.modal.errors.title", { mode })), /* @__PURE__ */ React20.createElement(import_core_react11.Banner.Body, null, (errors == null ? void 0 : errors.form) || I18n.t(`savedViews.modal.errors.description.${mode}`)))),
9872
- /* @__PURE__ */ React20.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React20.createElement(
10049
+ errors && /* @__PURE__ */ React21.createElement(import_core_react11.ErrorBanner, { style: { marginBottom: import_core_react11.spacing.xl } }, /* @__PURE__ */ React21.createElement(import_core_react11.Banner.Content, null, /* @__PURE__ */ React21.createElement(import_core_react11.Banner.Title, null, I18n.t("savedViews.modal.errors.title", { mode })), /* @__PURE__ */ React21.createElement(import_core_react11.Banner.Body, null, (errors == null ? void 0 : errors.form) || I18n.t(`savedViews.modal.errors.description.${mode}`)))),
10050
+ /* @__PURE__ */ React21.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React21.createElement(
9873
10051
  NameInputField,
9874
10052
  {
9875
10053
  error: errors == null ? void 0 : errors.name,
9876
10054
  onResetMutations: resetMutations
9877
10055
  }
9878
10056
  )),
9879
- /* @__PURE__ */ React20.createElement(
10057
+ /* @__PURE__ */ React21.createElement(
9880
10058
  import_core_react11.Form.Row,
9881
10059
  {
9882
10060
  style: { marginTop: (errors == null ? void 0 : errors.name) ? import_core_react11.spacing.xl : import_core_react11.spacing.none }
9883
10061
  },
9884
- /* @__PURE__ */ React20.createElement(
10062
+ /* @__PURE__ */ React21.createElement(
9885
10063
  import_core_react11.Form.TextArea,
9886
10064
  {
9887
10065
  name: "description",
@@ -9892,7 +10070,7 @@ var FormModalBase = ({
9892
10070
  }
9893
10071
  )
9894
10072
  ),
9895
- viewLevelOptions.length > 1 && mode === "create" /* CREATE */ ? /* @__PURE__ */ React20.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React20.createElement(
10073
+ viewLevelOptions.length > 1 && mode === "create" /* CREATE */ ? /* @__PURE__ */ React21.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React21.createElement(
9896
10074
  import_core_react11.Form.Select,
9897
10075
  {
9898
10076
  name: "view_level",
@@ -9902,8 +10080,8 @@ var FormModalBase = ({
9902
10080
  onSearch: false,
9903
10081
  onClear: false
9904
10082
  }
9905
- )) : /* @__PURE__ */ React20.createElement(React20.Fragment, null)
9906
- ), /* @__PURE__ */ React20.createElement(import_core_react11.Modal.Footer, { style: { borderTop: `1px solid ${import_core_react11.colors.gray85}` } }, /* @__PURE__ */ React20.createElement(import_core_react11.Flex, { grow: "1", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React20.createElement(import_core_react11.Typography, { color: "gray45", italic: true }, /* @__PURE__ */ React20.createElement(import_core_react11.Typography, { color: "red45" }, "*"), " ", I18n.t("savedViews.modal.info.required_fields")), /* @__PURE__ */ React20.createElement(import_core_react11.Modal.FooterButtons, null, /* @__PURE__ */ React20.createElement(import_core_react11.Button, { type: "reset", variant: "tertiary", disabled: isLoading }, I18n.t("savedViews.actions.cancel")), /* @__PURE__ */ React20.createElement(
10083
+ )) : /* @__PURE__ */ React21.createElement(React21.Fragment, null)
10084
+ ), /* @__PURE__ */ React21.createElement(import_core_react11.Modal.Footer, { style: { borderTop: `1px solid ${import_core_react11.colors.gray85}` } }, /* @__PURE__ */ React21.createElement(import_core_react11.Flex, { grow: "1", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React21.createElement(import_core_react11.Typography, { color: "gray45", italic: true }, /* @__PURE__ */ React21.createElement(import_core_react11.Typography, { color: "red45" }, "*"), " ", I18n.t("savedViews.modal.info.required_fields")), /* @__PURE__ */ React21.createElement(import_core_react11.Modal.FooterButtons, null, /* @__PURE__ */ React21.createElement(import_core_react11.Button, { type: "reset", variant: "tertiary", disabled: isLoading }, I18n.t("savedViews.actions.cancel")), /* @__PURE__ */ React21.createElement(
9907
10085
  import_core_react11.Button,
9908
10086
  {
9909
10087
  "data-testid": "create-update-modal-button",
@@ -9933,7 +10111,7 @@ var FormModal = ({
9933
10111
  defaultView
9934
10112
  }) => {
9935
10113
  const i18n = (0, import_core_react12.useI18nContext)();
9936
- return /* @__PURE__ */ import_react11.default.createElement(
10114
+ return /* @__PURE__ */ import_react12.default.createElement(
9937
10115
  FormModalBase,
9938
10116
  {
9939
10117
  open,
@@ -9955,7 +10133,7 @@ var FormModal = ({
9955
10133
 
9956
10134
  // src/components/modals/form-modal/SharedViewFormModal.tsx
9957
10135
  var import_core_react13 = require("@procore/core-react");
9958
- var React22 = __toESM(require("react"));
10136
+ var React23 = __toESM(require("react"));
9959
10137
  var yup2 = __toESM(require("yup"));
9960
10138
  var SharedViewFormModal = ({
9961
10139
  open,
@@ -9978,7 +10156,7 @@ var SharedViewFormModal = ({
9978
10156
  const handleOnSubmit = (data) => {
9979
10157
  onCreateView(data.name, data.description);
9980
10158
  };
9981
- return /* @__PURE__ */ React22.createElement(
10159
+ return /* @__PURE__ */ React23.createElement(
9982
10160
  import_core_react13.Modal,
9983
10161
  {
9984
10162
  "data-testid": "shared-view-form-modal",
@@ -9987,7 +10165,7 @@ var SharedViewFormModal = ({
9987
10165
  onClose,
9988
10166
  style: { width: "540px" }
9989
10167
  },
9990
- /* @__PURE__ */ React22.createElement(
10168
+ /* @__PURE__ */ React23.createElement(
9991
10169
  import_core_react13.Modal.Header,
9992
10170
  {
9993
10171
  onClose,
@@ -9998,9 +10176,9 @@ var SharedViewFormModal = ({
9998
10176
  paddingRight: import_core_react13.spacing.xl
9999
10177
  }
10000
10178
  },
10001
- /* @__PURE__ */ React22.createElement(import_core_react13.Modal.Heading, null, I18n.t("savedViews.modal.create.title"))
10179
+ /* @__PURE__ */ React23.createElement(import_core_react13.Modal.Heading, null, I18n.t("savedViews.modal.create.title"))
10002
10180
  ),
10003
- /* @__PURE__ */ React22.createElement(
10181
+ /* @__PURE__ */ React23.createElement(
10004
10182
  import_core_react13.P,
10005
10183
  {
10006
10184
  style: {
@@ -10015,7 +10193,7 @@ var SharedViewFormModal = ({
10015
10193
  },
10016
10194
  I18n.t("savedViews.modal.copyConfirmation.description")
10017
10195
  ),
10018
- /* @__PURE__ */ React22.createElement(
10196
+ /* @__PURE__ */ React23.createElement(
10019
10197
  import_core_react13.Form,
10020
10198
  {
10021
10199
  initialValues: {
@@ -10034,7 +10212,7 @@ var SharedViewFormModal = ({
10034
10212
  onSubmit: handleOnSubmit,
10035
10213
  validateOnChange: true
10036
10214
  },
10037
- /* @__PURE__ */ React22.createElement(import_core_react13.Form.Form, { name: "share-view-form" }, /* @__PURE__ */ React22.createElement(
10215
+ /* @__PURE__ */ React23.createElement(import_core_react13.Form.Form, { name: "share-view-form" }, /* @__PURE__ */ React23.createElement(
10038
10216
  import_core_react13.Modal.Body,
10039
10217
  {
10040
10218
  style: {
@@ -10043,22 +10221,22 @@ var SharedViewFormModal = ({
10043
10221
  borderTop: `1px solid ${import_core_react13.colors.gray85}`
10044
10222
  }
10045
10223
  },
10046
- errors && /* @__PURE__ */ React22.createElement(import_core_react13.ErrorBanner, { style: { marginBottom: import_core_react13.spacing.xl } }, /* @__PURE__ */ React22.createElement(import_core_react13.Banner.Content, null, /* @__PURE__ */ React22.createElement(import_core_react13.Banner.Title, null, I18n.t("savedViews.modal.errors.title", {
10224
+ errors && /* @__PURE__ */ React23.createElement(import_core_react13.ErrorBanner, { style: { marginBottom: import_core_react13.spacing.xl } }, /* @__PURE__ */ React23.createElement(import_core_react13.Banner.Content, null, /* @__PURE__ */ React23.createElement(import_core_react13.Banner.Title, null, I18n.t("savedViews.modal.errors.title", {
10047
10225
  mode: "create"
10048
- })), /* @__PURE__ */ React22.createElement(import_core_react13.Banner.Body, null, (errors == null ? void 0 : errors.form) || I18n.t("savedViews.modal.errors.description.create")))),
10049
- /* @__PURE__ */ React22.createElement(import_core_react13.Form.Row, null, /* @__PURE__ */ React22.createElement(
10226
+ })), /* @__PURE__ */ React23.createElement(import_core_react13.Banner.Body, null, (errors == null ? void 0 : errors.form) || I18n.t("savedViews.modal.errors.description.create")))),
10227
+ /* @__PURE__ */ React23.createElement(import_core_react13.Form.Row, null, /* @__PURE__ */ React23.createElement(
10050
10228
  NameInputField,
10051
10229
  {
10052
10230
  error: errors == null ? void 0 : errors.name,
10053
10231
  onResetMutations: handleNameChange
10054
10232
  }
10055
10233
  )),
10056
- /* @__PURE__ */ React22.createElement(
10234
+ /* @__PURE__ */ React23.createElement(
10057
10235
  import_core_react13.Form.Row,
10058
10236
  {
10059
10237
  style: { marginTop: (errors == null ? void 0 : errors.name) ? import_core_react13.spacing.xl : import_core_react13.spacing.none }
10060
10238
  },
10061
- /* @__PURE__ */ React22.createElement(
10239
+ /* @__PURE__ */ React23.createElement(
10062
10240
  import_core_react13.Form.TextArea,
10063
10241
  {
10064
10242
  name: "description",
@@ -10069,7 +10247,7 @@ var SharedViewFormModal = ({
10069
10247
  }
10070
10248
  )
10071
10249
  )
10072
- ), /* @__PURE__ */ React22.createElement(import_core_react13.Modal.Footer, { style: { borderTop: `1px solid ${import_core_react13.colors.gray85}` } }, /* @__PURE__ */ React22.createElement(import_core_react13.Flex, { grow: "1", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React22.createElement(import_core_react13.Typography, { color: "gray45", italic: true }, /* @__PURE__ */ React22.createElement(import_core_react13.Typography, { color: "red45" }, "*"), " ", I18n.t("savedViews.modal.info.required_fields")), /* @__PURE__ */ React22.createElement(import_core_react13.Modal.FooterButtons, null, /* @__PURE__ */ React22.createElement(
10250
+ ), /* @__PURE__ */ React23.createElement(import_core_react13.Modal.Footer, { style: { borderTop: `1px solid ${import_core_react13.colors.gray85}` } }, /* @__PURE__ */ React23.createElement(import_core_react13.Flex, { grow: "1", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React23.createElement(import_core_react13.Typography, { color: "gray45", italic: true }, /* @__PURE__ */ React23.createElement(import_core_react13.Typography, { color: "red45" }, "*"), " ", I18n.t("savedViews.modal.info.required_fields")), /* @__PURE__ */ React23.createElement(import_core_react13.Modal.FooterButtons, null, /* @__PURE__ */ React23.createElement(
10073
10251
  import_core_react13.Button,
10074
10252
  {
10075
10253
  variant: "secondary",
@@ -10078,7 +10256,7 @@ var SharedViewFormModal = ({
10078
10256
  disabled: isCreating
10079
10257
  },
10080
10258
  I18n.t("savedViews.actions.viewTemporarily")
10081
- ), /* @__PURE__ */ React22.createElement(
10259
+ ), /* @__PURE__ */ React23.createElement(
10082
10260
  import_core_react13.Button,
10083
10261
  {
10084
10262
  type: "submit",
@@ -10094,7 +10272,7 @@ var SharedViewFormModal = ({
10094
10272
  };
10095
10273
 
10096
10274
  // src/utils/hooks/useViewSelection.ts
10097
- var import_react13 = require("react");
10275
+ var import_react14 = require("react");
10098
10276
  var import_react_router_dom = require("react-router-dom");
10099
10277
  var import_core_react14 = require("@procore/core-react");
10100
10278
 
@@ -10121,13 +10299,13 @@ var ViewStorage = {
10121
10299
  };
10122
10300
 
10123
10301
  // src/utils/hooks/useLatest.ts
10124
- var import_react12 = require("react");
10302
+ var import_react13 = require("react");
10125
10303
  var useLatest = (callback) => {
10126
- const ref = (0, import_react12.useRef)(callback);
10127
- (0, import_react12.useLayoutEffect)(() => {
10304
+ const ref = (0, import_react13.useRef)(callback);
10305
+ (0, import_react13.useLayoutEffect)(() => {
10128
10306
  ref.current = callback;
10129
10307
  });
10130
- return (0, import_react12.useCallback)((...args) => ref.current(...args), []);
10308
+ return (0, import_react13.useCallback)((...args) => ref.current(...args), []);
10131
10309
  };
10132
10310
 
10133
10311
  // src/utils/hooks/useViewSelection.ts
@@ -10140,16 +10318,21 @@ var areRowGroupStatesEqual = (a2, b2) => {
10140
10318
  if (a2.length !== b2.length) return false;
10141
10319
  return a2.every((val, idx) => val === b2[idx]);
10142
10320
  };
10143
- var getUpdatedSearchParams = (currentParams, view) => {
10144
- const updatedParams = new URLSearchParams(currentParams);
10145
- if (view.id === "default") {
10146
- updatedParams.set("saved-view", "default");
10147
- } else if (view.id === "temporary") {
10148
- updatedParams.set("saved-view", "temporary");
10149
- } else {
10150
- updatedParams.set("saved-view", view.share_token);
10321
+ var getViewToken = (view) => {
10322
+ if (view.id === "default" || view.id === "temporary") {
10323
+ return view.id;
10151
10324
  }
10152
- return updatedParams;
10325
+ return view.share_token;
10326
+ };
10327
+ var setSavedViewParam = (token2, setSearchParams) => {
10328
+ setSearchParams(
10329
+ (currentParams) => {
10330
+ const updatedParams = new URLSearchParams(currentParams);
10331
+ updatedParams.set("saved-view", token2);
10332
+ return updatedParams;
10333
+ },
10334
+ { replace: true }
10335
+ );
10153
10336
  };
10154
10337
  var checkIsViewSelected = (selectedView, viewId) => {
10155
10338
  return (selectedView == null ? void 0 : selectedView.share_token) === viewId || (selectedView == null ? void 0 : selectedView.id) === viewId;
@@ -10158,21 +10341,11 @@ var findViewByToken = (views, token2) => {
10158
10341
  return views.find((view) => view.share_token === token2);
10159
10342
  };
10160
10343
  var setViewInUrl = (view, setSearchParams) => {
10161
- setSearchParams(
10162
- (currentParams) => getUpdatedSearchParams(currentParams, view),
10163
- { replace: true }
10164
- );
10344
+ setSavedViewParam(getViewToken(view), setSearchParams);
10165
10345
  };
10166
10346
  var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
10167
10347
  if (previousParam && !currentParam) {
10168
- setSearchParams(
10169
- (currentParams) => {
10170
- const updatedParams = new URLSearchParams(currentParams);
10171
- updatedParams.set("saved-view", previousParam);
10172
- return updatedParams;
10173
- },
10174
- { replace: true }
10175
- );
10348
+ setSavedViewParam(previousParam, setSearchParams);
10176
10349
  }
10177
10350
  };
10178
10351
  var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, tableConfig) => {
@@ -10181,31 +10354,33 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10181
10354
  const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${projectIdSegment}_${config.userId}`;
10182
10355
  const temporaryStorageKey = `${storageKey}-temporary`;
10183
10356
  const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
10184
- const previousSavedViewParamRef = (0, import_react13.useRef)(null);
10185
- const [selectedSavedView, setSelectedSavedView] = (0, import_react13.useState)(() => {
10357
+ const previousSavedViewParamRef = (0, import_react14.useRef)(null);
10358
+ const intendedTokenRef = (0, import_react14.useRef)(null);
10359
+ const [selectedSavedView, setSelectedSavedView] = (0, import_react14.useState)(() => {
10186
10360
  const stored = ViewStorage.load(storageKey, config.defaultView);
10187
10361
  return stored ?? config.defaultView;
10188
10362
  });
10189
- const [temporaryView, setTemporaryView] = (0, import_react13.useState)(() => {
10363
+ const [temporaryView, setTemporaryView] = (0, import_react14.useState)(() => {
10190
10364
  const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
10191
10365
  return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
10192
10366
  });
10193
- const persistViewToStorageAndUrl = (0, import_react13.useCallback)(
10367
+ const persistViewToStorageAndUrl = (0, import_react14.useCallback)(
10194
10368
  (view) => {
10195
10369
  ViewStorage.save(storageKey, view);
10370
+ intendedTokenRef.current = getViewToken(view);
10196
10371
  setViewInUrl(view, setSearchParams);
10197
10372
  },
10198
10373
  [storageKey, setSearchParams]
10199
10374
  );
10200
- const baseViews = (0, import_react13.useMemo)(
10375
+ const baseViews = (0, import_react14.useMemo)(
10201
10376
  () => [...savedViews ?? [], ...presetViews ?? []],
10202
10377
  [savedViews, presetViews]
10203
10378
  );
10204
- const allViews = (0, import_react13.useMemo)(
10379
+ const allViews = (0, import_react14.useMemo)(
10205
10380
  () => temporaryView ? [...baseViews, temporaryView] : baseViews,
10206
10381
  [baseViews, temporaryView]
10207
10382
  );
10208
- const selectView = (0, import_react13.useCallback)(
10383
+ const selectView = (0, import_react14.useCallback)(
10209
10384
  (view) => {
10210
10385
  const viewToSelect = config.onSelect({ item: view });
10211
10386
  setSelectedSavedView(viewToSelect);
@@ -10214,7 +10389,7 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10214
10389
  },
10215
10390
  [config, persistViewToStorageAndUrl]
10216
10391
  );
10217
- const createTemporaryView = (0, import_react13.useCallback)(
10392
+ const createTemporaryView = (0, import_react14.useCallback)(
10218
10393
  (fetchedView) => {
10219
10394
  const tempView = {
10220
10395
  ...fetchedView,
@@ -10229,12 +10404,12 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10229
10404
  },
10230
10405
  [temporaryStorageKey, selectView]
10231
10406
  );
10232
- const clearTemporaryView = (0, import_react13.useCallback)(() => {
10407
+ const clearTemporaryView = (0, import_react14.useCallback)(() => {
10233
10408
  ViewStorage.remove(temporaryStorageKey);
10234
10409
  setTemporaryView(null);
10235
10410
  selectView(config.defaultView);
10236
10411
  }, [temporaryStorageKey, config.defaultView, selectView]);
10237
- const isViewAlreadySelected = (0, import_react13.useCallback)(
10412
+ const isViewAlreadySelected = (0, import_react14.useCallback)(
10238
10413
  (viewId) => checkIsViewSelected(selectedSavedView, viewId),
10239
10414
  [selectedSavedView]
10240
10415
  );
@@ -10249,8 +10424,16 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10249
10424
  openSharedViewModal(viewId);
10250
10425
  }
10251
10426
  });
10252
- (0, import_react13.useEffect)(() => {
10427
+ (0, import_react14.useEffect)(() => {
10253
10428
  const savedViewId = searchParams.get("saved-view");
10429
+ const intendedToken = intendedTokenRef.current;
10430
+ if (intendedToken !== null && savedViewId !== intendedToken) {
10431
+ setSavedViewParam(intendedToken, setSearchParams);
10432
+ return;
10433
+ }
10434
+ if (intendedToken !== null && savedViewId === intendedToken) {
10435
+ intendedTokenRef.current = null;
10436
+ }
10254
10437
  restoreUrlParameter(
10255
10438
  savedViewId,
10256
10439
  previousSavedViewParamRef.current,
@@ -10263,14 +10446,14 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10263
10446
  handleSavedViewFromUrl(savedViewId);
10264
10447
  }
10265
10448
  }, [searchParams, handleSavedViewFromUrl, allViews.length]);
10266
- const previousRowGroupStateRef = (0, import_react13.useRef)(
10449
+ const previousRowGroupStateRef = (0, import_react14.useRef)(
10267
10450
  isSmartGridConfig(tableConfig) ? tableConfig.rowGroupState : void 0
10268
10451
  );
10269
- const selectedViewRef = (0, import_react13.useRef)(selectedSavedView);
10452
+ const selectedViewRef = (0, import_react14.useRef)(selectedSavedView);
10270
10453
  selectedViewRef.current = selectedSavedView;
10271
- const defaultViewRef = (0, import_react13.useRef)(config.defaultView);
10454
+ const defaultViewRef = (0, import_react14.useRef)(config.defaultView);
10272
10455
  defaultViewRef.current = config.defaultView;
10273
- (0, import_react13.useEffect)(() => {
10456
+ (0, import_react14.useEffect)(() => {
10274
10457
  var _a;
10275
10458
  if (!isSmartGridConfig(tableConfig) || !(presetViews == null ? void 0 : presetViews.length)) return;
10276
10459
  const currentView = selectedViewRef.current;
@@ -10312,12 +10495,12 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10312
10495
 
10313
10496
  // src/components/saved-views/FocusScopeToggle.tsx
10314
10497
  var import_focus = require("@react-aria/focus");
10315
- var import_react14 = require("react");
10498
+ var import_react15 = require("react");
10316
10499
  var useFocusScopeToggle = (isOpen) => {
10317
10500
  const focusManager = (0, import_focus.useFocusManager)();
10318
- const triggerRef = (0, import_react14.useRef)(null);
10319
- const firstFocusedElementRef = (0, import_react14.useRef)(null);
10320
- (0, import_react14.useEffect)(() => {
10501
+ const triggerRef = (0, import_react15.useRef)(null);
10502
+ const firstFocusedElementRef = (0, import_react15.useRef)(null);
10503
+ (0, import_react15.useEffect)(() => {
10321
10504
  var _a, _b;
10322
10505
  const handleKeyDown = (event) => {
10323
10506
  var _a2;
@@ -10366,6 +10549,7 @@ var StyledPanel = pt.div`
10366
10549
  `;
10367
10550
  var queryClient = new import_react_query3.QueryClient();
10368
10551
  var SavedViewsContent = (props) => {
10552
+ var _a;
10369
10553
  const { projectId, companyId } = props;
10370
10554
  const queryInput = {
10371
10555
  domain: props.domain,
@@ -10377,13 +10561,13 @@ var SavedViewsContent = (props) => {
10377
10561
  const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
10378
10562
  const { showToast } = (0, import_toast_alert3.useToastAlertContext)();
10379
10563
  const i18n = (0, import_core_react15.useI18nContext)();
10380
- const [activeModal, setActiveModal] = (0, import_react15.useState)(null);
10381
- const [modalData, setModalData] = (0, import_react15.useState)(null);
10564
+ const [activeModal, setActiveModal] = (0, import_react16.useState)(null);
10565
+ const [modalData, setModalData] = (0, import_react16.useState)(null);
10382
10566
  const openModal = (type, data) => {
10383
10567
  setActiveModal(type);
10384
10568
  setModalData(data ?? null);
10385
10569
  };
10386
- const closeModal = (0, import_react15.useCallback)(() => {
10570
+ const closeModal = (0, import_react16.useCallback)(() => {
10387
10571
  setActiveModal(null);
10388
10572
  setModalData(null);
10389
10573
  }, []);
@@ -10423,13 +10607,17 @@ var SavedViewsContent = (props) => {
10423
10607
  error: createError,
10424
10608
  reset: resetCreateError
10425
10609
  } = useCreateSavedView(queryInput);
10426
- (0, import_react15.useEffect)(() => {
10610
+ (0, import_react16.useEffect)(() => {
10427
10611
  if (fetchError) {
10428
10612
  showToast.error(i18n.t("savedViews.errors.notFound"));
10429
10613
  selectView(selectedView ?? props.defaultView);
10430
10614
  closeModal();
10431
10615
  }
10432
10616
  }, [fetchError, selectedView, props.defaultView, selectView, closeModal]);
10617
+ const setSelectedViewInContext = (_a = useSavedViewsSelection()) == null ? void 0 : _a.setSelectedView;
10618
+ (0, import_react16.useEffect)(() => {
10619
+ setSelectedViewInContext == null ? void 0 : setSelectedViewInContext(selectedView ?? null);
10620
+ }, [selectedView, setSelectedViewInContext]);
10433
10621
  const viewSharedViewTemporarily = () => {
10434
10622
  if (fetchedView) {
10435
10623
  createTemporaryView(fetchedView);
@@ -10471,19 +10659,19 @@ var SavedViewsContent = (props) => {
10471
10659
  deleteSelectedView();
10472
10660
  closeModal();
10473
10661
  };
10474
- return /* @__PURE__ */ import_react15.default.createElement(import_focus2.FocusScope, { contain: false }, /* @__PURE__ */ import_react15.default.createElement(StyledPanel, { id: "saved-views-panel", provider: props.provider }, /* @__PURE__ */ import_react15.default.createElement(FocusScopeToggle, { isOpen: props.isPanelOpen ?? true }), /* @__PURE__ */ import_react15.default.createElement(
10662
+ return /* @__PURE__ */ import_react16.default.createElement(import_focus2.FocusScope, { contain: false }, /* @__PURE__ */ import_react16.default.createElement(StyledPanel, { id: "saved-views-panel", provider: props.provider }, /* @__PURE__ */ import_react16.default.createElement(FocusScopeToggle, { isOpen: props.isPanelOpen ?? true }), /* @__PURE__ */ import_react16.default.createElement(
10475
10663
  ExpandedPanel,
10476
10664
  {
10477
10665
  "data-testid": "saved-view-expanded-panel",
10478
10666
  provider: props.provider
10479
10667
  },
10480
- /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Panel.Header, { id: "saved-views-collections-panel-header" }, /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Panel.Title, null, /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Flex, { alignItems: "center" }, /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Box, { paddingRight: "sm" }, i18n.t("savedViews.title")), /* @__PURE__ */ import_react15.default.createElement(
10668
+ /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Panel.Header, { id: "saved-views-collections-panel-header" }, /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Panel.Title, null, /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Flex, { alignItems: "center" }, /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Box, { paddingRight: "sm" }, i18n.t("savedViews.title")), /* @__PURE__ */ import_react16.default.createElement(
10481
10669
  import_core_react15.Tooltip,
10482
10670
  {
10483
10671
  showDelay: 200,
10484
- overlay: /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Tooltip.Content, null, i18n.t("savedViews.tooltip"))
10672
+ overlay: /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Tooltip.Content, null, i18n.t("savedViews.tooltip"))
10485
10673
  },
10486
- /* @__PURE__ */ import_react15.default.createElement(
10674
+ /* @__PURE__ */ import_react16.default.createElement(
10487
10675
  Help_default,
10488
10676
  {
10489
10677
  tabIndex: 0,
@@ -10491,16 +10679,16 @@ var SavedViewsContent = (props) => {
10491
10679
  "aria-label": i18n.t("savedViews.tooltip")
10492
10680
  }
10493
10681
  )
10494
- ))), /* @__PURE__ */ import_react15.default.createElement(
10682
+ ))), /* @__PURE__ */ import_react16.default.createElement(
10495
10683
  import_core_react15.Tooltip,
10496
10684
  {
10497
10685
  overlay: i18n.t("savedViews.actions.create"),
10498
10686
  showDelay: 1e3
10499
10687
  },
10500
- /* @__PURE__ */ import_react15.default.createElement(
10688
+ /* @__PURE__ */ import_react16.default.createElement(
10501
10689
  import_core_react15.Button,
10502
10690
  {
10503
- icon: /* @__PURE__ */ import_react15.default.createElement(Plus_default, null),
10691
+ icon: /* @__PURE__ */ import_react16.default.createElement(Plus_default, null),
10504
10692
  variant: "secondary",
10505
10693
  "data-testid": "expanded-panel-create-button",
10506
10694
  onClick: () => openModal("create" /* CREATE */),
@@ -10509,7 +10697,7 @@ var SavedViewsContent = (props) => {
10509
10697
  i18n.t("savedViews.actions.create")
10510
10698
  )
10511
10699
  )),
10512
- /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react15.default.createElement(
10700
+ /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react16.default.createElement(
10513
10701
  PanelContent,
10514
10702
  {
10515
10703
  onSelect: ({ item }) => selectView(item),
@@ -10526,7 +10714,7 @@ var SavedViewsContent = (props) => {
10526
10714
  onClearTemporary: clearTemporaryView
10527
10715
  }
10528
10716
  ))
10529
- ), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react15.default.createElement(
10717
+ ), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react16.default.createElement(
10530
10718
  FormModal,
10531
10719
  {
10532
10720
  open: true,
@@ -10540,14 +10728,14 @@ var SavedViewsContent = (props) => {
10540
10728
  setOpenEditCreateModal: closeModal,
10541
10729
  defaultView: props.defaultView
10542
10730
  }
10543
- ), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react15.default.createElement(
10731
+ ), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react16.default.createElement(
10544
10732
  SavedViewsDeleteConfirmationModalShared,
10545
10733
  {
10546
10734
  open: true,
10547
10735
  onDelete: confirmDeleteAndCloseModal,
10548
10736
  onCancel: closeModal
10549
10737
  }
10550
- ), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react15.default.createElement(
10738
+ ), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react16.default.createElement(
10551
10739
  SharedViewFormModal,
10552
10740
  {
10553
10741
  open: true,
@@ -10562,14 +10750,14 @@ var SavedViewsContent = (props) => {
10562
10750
  )));
10563
10751
  };
10564
10752
  var SavedViews = (props) => {
10565
- return /* @__PURE__ */ import_react15.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react15.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react15.default.createElement(import_toast_alert3.ToastAlertProvider, null, /* @__PURE__ */ import_react15.default.createElement(SavedViewsContent, { ...props }))));
10753
+ return /* @__PURE__ */ import_react16.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react16.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react16.default.createElement(import_toast_alert3.ToastAlertProvider, null, /* @__PURE__ */ import_react16.default.createElement(SavedViewsContent, { ...props }))));
10566
10754
  };
10567
10755
 
10568
10756
  // src/components/adapters/smart-grid/SmartGridSavedViews.tsx
10569
- var import_react19 = __toESM(require("react"));
10757
+ var import_react20 = __toESM(require("react"));
10570
10758
 
10571
10759
  // src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
10572
- var import_react16 = require("react");
10760
+ var import_react17 = require("react");
10573
10761
  var DEFAULT_COLUMN_STATE = {
10574
10762
  hide: false,
10575
10763
  pinned: null,
@@ -10617,7 +10805,7 @@ var extractDefaultView = (gridApi, receivedConfig) => {
10617
10805
  return result;
10618
10806
  };
10619
10807
  var useNormalizedDefaultViews = (defaultViews, gridApi) => {
10620
- return (0, import_react16.useMemo)(() => {
10808
+ return (0, import_react17.useMemo)(() => {
10621
10809
  if (!gridApi)
10622
10810
  return defaultViews.map((view) => ({ ...view, share_token: view.id }));
10623
10811
  return defaultViews.map((view) => ({
@@ -10629,7 +10817,7 @@ var useNormalizedDefaultViews = (defaultViews, gridApi) => {
10629
10817
  };
10630
10818
 
10631
10819
  // src/components/adapters/smart-grid/useSmartGridConfig.ts
10632
- var import_react17 = require("react");
10820
+ var import_react18 = require("react");
10633
10821
  var GRID_STATE_EVENTS = [
10634
10822
  "sortChanged",
10635
10823
  "filterOpened",
@@ -10645,10 +10833,10 @@ var GRID_STATE_EVENTS = [
10645
10833
  "gridReady"
10646
10834
  ];
10647
10835
  var useSmartGridConfig = (gridApi) => {
10648
- const [config, setConfig] = (0, import_react17.useState)(
10836
+ const [config, setConfig] = (0, import_react18.useState)(
10649
10837
  () => getSmartGridConfig(gridApi)
10650
10838
  );
10651
- (0, import_react17.useEffect)(() => {
10839
+ (0, import_react18.useEffect)(() => {
10652
10840
  if (!gridApi) return;
10653
10841
  const updateConfig = () => {
10654
10842
  setConfig(getSmartGridConfig(gridApi));
@@ -10666,14 +10854,14 @@ var useSmartGridConfig = (gridApi) => {
10666
10854
  };
10667
10855
 
10668
10856
  // src/components/adapters/smart-grid/useSavedViewsPanelOpen.ts
10669
- var import_react18 = require("react");
10857
+ var import_react19 = require("react");
10670
10858
  var SAVED_VIEWS_PANEL_ID = "savedViews";
10671
10859
  var useSavedViewsPanelOpen = (gridApi) => {
10672
10860
  var _a;
10673
- const [isOpen, setIsOpen] = (0, import_react18.useState)(
10861
+ const [isOpen, setIsOpen] = (0, import_react19.useState)(
10674
10862
  ((_a = gridApi.getOpenedToolPanel) == null ? void 0 : _a.call(gridApi)) === SAVED_VIEWS_PANEL_ID
10675
10863
  );
10676
- (0, import_react18.useEffect)(() => {
10864
+ (0, import_react19.useEffect)(() => {
10677
10865
  var _a2;
10678
10866
  const syncOpenState = () => {
10679
10867
  var _a3;
@@ -10696,7 +10884,7 @@ var SmartGridSavedViews = (props) => {
10696
10884
  const isPanelOpen = useSavedViewsPanelOpen(gridApi);
10697
10885
  const presetViews = useNormalizedDefaultViews(props.defaultViews, gridApi);
10698
10886
  const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
10699
- const onSelect = (0, import_react19.useCallback)(
10887
+ const onSelect = (0, import_react20.useCallback)(
10700
10888
  ({ item }) => {
10701
10889
  var _a;
10702
10890
  if (!gridApi) return item;
@@ -10724,7 +10912,7 @@ var SmartGridSavedViews = (props) => {
10724
10912
  },
10725
10913
  [gridApi, tableConfig, setTableConfig]
10726
10914
  );
10727
- return /* @__PURE__ */ import_react19.default.createElement(
10915
+ return /* @__PURE__ */ import_react20.default.createElement(
10728
10916
  SavedViews,
10729
10917
  {
10730
10918
  onSelect,
@@ -10743,10 +10931,10 @@ var SmartGridSavedViews = (props) => {
10743
10931
  };
10744
10932
 
10745
10933
  // src/components/adapters/data-table/DataTableSavedViews.tsx
10746
- var import_react21 = __toESM(require("react"));
10934
+ var import_react22 = __toESM(require("react"));
10747
10935
 
10748
10936
  // src/components/adapters/data-table/DataTableDefaultSavedView.tsx
10749
- var import_react20 = require("react");
10937
+ var import_react21 = require("react");
10750
10938
  var DEFAULT_COLUMN_STATE2 = {
10751
10939
  hidden: false,
10752
10940
  pinned: null,
@@ -10794,7 +10982,7 @@ var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
10794
10982
  return result;
10795
10983
  };
10796
10984
  var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
10797
- return (0, import_react20.useMemo)(
10985
+ return (0, import_react21.useMemo)(
10798
10986
  () => defaultViews.map((view) => ({
10799
10987
  ...view,
10800
10988
  share_token: view.id,
@@ -10805,22 +10993,22 @@ var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
10805
10993
  };
10806
10994
 
10807
10995
  // src/components/adapters/data-table/DataTableSavedViews.tsx
10808
- var DataTableSavedViews = (0, import_react21.forwardRef)((props, ref) => {
10996
+ var DataTableSavedViews = (0, import_react22.forwardRef)((props, ref) => {
10809
10997
  const { tableApi, userId, projectId, companyId } = props;
10810
10998
  const presetViews = useNormalizedDefaultViews2(
10811
10999
  props.defaultViews,
10812
11000
  props.columnDefinitions
10813
11001
  );
10814
11002
  const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
10815
- const [internalTableConfig, setInternalTableConfig] = (0, import_react21.useState)(
11003
+ const [internalTableConfig, setInternalTableConfig] = (0, import_react22.useState)(
10816
11004
  ViewStorage.load(props.stickyViewsKey, defaultView).table_config
10817
11005
  );
10818
- (0, import_react21.useImperativeHandle)(ref, () => ({
11006
+ (0, import_react22.useImperativeHandle)(ref, () => ({
10819
11007
  setTableConfig: (newConfig) => {
10820
11008
  setInternalTableConfig(newConfig);
10821
11009
  }
10822
11010
  }));
10823
- const onSelect = (0, import_react21.useCallback)(
11011
+ const onSelect = (0, import_react22.useCallback)(
10824
11012
  ({ item }) => {
10825
11013
  var _a;
10826
11014
  const isPresetView = item.view_level === "default";
@@ -10844,7 +11032,7 @@ var DataTableSavedViews = (0, import_react21.forwardRef)((props, ref) => {
10844
11032
  if (!internalTableConfig) {
10845
11033
  return null;
10846
11034
  }
10847
- return /* @__PURE__ */ import_react21.default.createElement(
11035
+ return /* @__PURE__ */ import_react22.default.createElement(
10848
11036
  SavedViews,
10849
11037
  {
10850
11038
  onSelect,
@@ -10870,9 +11058,11 @@ DataTableSavedViews.displayName = "DataTableSavedViews";
10870
11058
  SavedViewCollectionMenuItem,
10871
11059
  SavedViews,
10872
11060
  SavedViewsDeleteConfirmationModalShared,
11061
+ SavedViewsSelectionProvider,
10873
11062
  SmartGridSavedViews,
10874
11063
  getTranslations,
10875
- useSavedViewsPanel
11064
+ useSavedViewsPanel,
11065
+ useSavedViewsSelection
10876
11066
  });
10877
11067
  /*! Bundled license information:
10878
11068