@procore/saved-views 6.0.2 → 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?.selectedView;
9013
+ const activeName = activeView?.name;
9014
+ const activeType = 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
  if (!props.item) {
8910
9088
  return;
@@ -8950,7 +9128,7 @@ var SavedViewCollectionMenuItem = (props) => {
8950
9128
  label: i18n.t("savedViews.actions.delete")
8951
9129
  }
8952
9130
  ];
8953
- const preventEventBubbleToNotTriggerViewSelectEvent = React15.useCallback(
9131
+ const preventEventBubbleToNotTriggerViewSelectEvent = React16.useCallback(
8954
9132
  (e) => {
8955
9133
  e.stopPropagation();
8956
9134
  },
@@ -8961,7 +9139,7 @@ var SavedViewCollectionMenuItem = (props) => {
8961
9139
  const hasClearTemporaryButton = props.item.id === "temporary";
8962
9140
  const hasOverflowMenu = props.item.view_level !== "default" && props.canEditOrDelete;
8963
9141
  const hasActions = hasUpdateButton || hasCopyShareLinkButton || hasClearTemporaryButton || hasOverflowMenu;
8964
- return /* @__PURE__ */ React15.createElement(
9142
+ return /* @__PURE__ */ React16.createElement(
8965
9143
  Container2,
8966
9144
  {
8967
9145
  "aria-selected": Boolean(props.selected),
@@ -8973,7 +9151,7 @@ var SavedViewCollectionMenuItem = (props) => {
8973
9151
  "data-testid": "saved-view-collection-menu-item",
8974
9152
  onKeyDown: preventEventBubbleToNotTriggerViewSelectEvent
8975
9153
  },
8976
- /* @__PURE__ */ React15.createElement(
9154
+ /* @__PURE__ */ React16.createElement(
8977
9155
  "span",
8978
9156
  {
8979
9157
  "data-testid": "saved-view-display-name",
@@ -8981,7 +9159,7 @@ var SavedViewCollectionMenuItem = (props) => {
8981
9159
  },
8982
9160
  props.item.name
8983
9161
  ),
8984
- hasActions && /* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(import_core_react3.Box, { justifyContent: "space-between" }, hasUpdateButton && /* @__PURE__ */ React15.createElement(
9162
+ hasActions && /* @__PURE__ */ React16.createElement(RowActionsBox, null, /* @__PURE__ */ React16.createElement(import_core_react3.Box, { justifyContent: "space-between" }, hasUpdateButton && /* @__PURE__ */ React16.createElement(
8985
9163
  import_core_react3.Button,
8986
9164
  {
8987
9165
  onClick: updateItem,
@@ -8992,7 +9170,7 @@ var SavedViewCollectionMenuItem = (props) => {
8992
9170
  loading: props.isUpdateProcessing
8993
9171
  },
8994
9172
  i18n.t("savedViews.actions.update")
8995
- ), hasCopyShareLinkButton && /* @__PURE__ */ React15.createElement(
9173
+ ), hasCopyShareLinkButton && /* @__PURE__ */ React16.createElement(
8996
9174
  import_core_react3.Button,
8997
9175
  {
8998
9176
  onClick: copyShareLink,
@@ -9001,8 +9179,8 @@ var SavedViewCollectionMenuItem = (props) => {
9001
9179
  "aria-label": i18n.t("savedViews.actions.copyShareLink"),
9002
9180
  "data-testid": "copy-share-link-button"
9003
9181
  },
9004
- /* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Link_default, { size: "sm" }))
9005
- ), hasClearTemporaryButton && /* @__PURE__ */ React15.createElement(
9182
+ /* @__PURE__ */ React16.createElement(IconWrapper, null, /* @__PURE__ */ React16.createElement(Link_default, { size: "sm" }))
9183
+ ), hasClearTemporaryButton && /* @__PURE__ */ React16.createElement(
9006
9184
  import_core_react3.Button,
9007
9185
  {
9008
9186
  onClick: (e) => {
@@ -9015,8 +9193,8 @@ var SavedViewCollectionMenuItem = (props) => {
9015
9193
  title: i18n.t("savedViews.actions.clearTemporary"),
9016
9194
  "data-testid": "clear-temporary-view-button"
9017
9195
  },
9018
- /* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" }))
9019
- )), /* @__PURE__ */ React15.createElement(import_core_react3.Box, null, hasOverflowMenu && /* @__PURE__ */ React15.createElement(
9196
+ /* @__PURE__ */ React16.createElement(IconWrapper, null, /* @__PURE__ */ React16.createElement(Clear_default, { size: "sm" }))
9197
+ )), /* @__PURE__ */ React16.createElement(import_core_react3.Box, null, hasOverflowMenu && /* @__PURE__ */ React16.createElement(
9020
9198
  import_core_react3.DropdownFlyout,
9021
9199
  {
9022
9200
  "data-testid": "saved-view-overflow-button",
@@ -9042,7 +9220,7 @@ var ExpandedPanel = pt(import_core_react4.Panel)`
9042
9220
  // src/components/panels/PanelContent.tsx
9043
9221
  var import_core_react8 = require("@procore/core-react");
9044
9222
  var import_toast_alert2 = require("@procore/toast-alert");
9045
- var import_react9 = __toESM(require("react"));
9223
+ var import_react10 = __toESM(require("react"));
9046
9224
 
9047
9225
  // src/utils/api/queries.ts
9048
9226
  var import_core_http2 = require("@procore/core-http");
@@ -9403,10 +9581,10 @@ var hasPermissionForViewLevel = (viewLevel, permissions) => {
9403
9581
  };
9404
9582
 
9405
9583
  // src/components/panels/useGroups.ts
9406
- var import_react6 = require("react");
9584
+ var import_react7 = require("react");
9407
9585
  var useGroups = (isProjectLevelTool) => {
9408
9586
  const viewLevels = getViewLevels(isProjectLevelTool);
9409
- const [groups, setGroups] = (0, import_react6.useState)(
9587
+ const [groups, setGroups] = (0, import_react7.useState)(
9410
9588
  Object.fromEntries(viewLevels.map((level) => [level, true]))
9411
9589
  );
9412
9590
  const toggleGroup = (group) => {
@@ -9417,15 +9595,15 @@ var useGroups = (isProjectLevelTool) => {
9417
9595
 
9418
9596
  // src/components/panels/ViewLevelHeader.tsx
9419
9597
  var import_core_react6 = require("@procore/core-react");
9420
- var import_react7 = __toESM(require("react"));
9598
+ var import_react8 = __toESM(require("react"));
9421
9599
  var groupIcon = (group) => {
9422
9600
  switch (group) {
9423
9601
  case "personal":
9424
- return /* @__PURE__ */ import_react7.default.createElement(Person_default, null);
9602
+ return /* @__PURE__ */ import_react8.default.createElement(Person_default, null);
9425
9603
  case "project":
9426
- return /* @__PURE__ */ import_react7.default.createElement(Excavator_default, null);
9604
+ return /* @__PURE__ */ import_react8.default.createElement(Excavator_default, null);
9427
9605
  case "company":
9428
- return /* @__PURE__ */ import_react7.default.createElement(Building_default, null);
9606
+ return /* @__PURE__ */ import_react8.default.createElement(Building_default, null);
9429
9607
  }
9430
9608
  };
9431
9609
  var StyledButton = pt(import_core_react6.Button)`
@@ -9435,7 +9613,7 @@ var StyledButton = pt(import_core_react6.Button)`
9435
9613
  `;
9436
9614
  var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
9437
9615
  const I18n = (0, import_core_react6.useI18nContext)();
9438
- return /* @__PURE__ */ import_react7.default.createElement(import_core_react6.Box, { style: { width: "100%" } }, /* @__PURE__ */ import_react7.default.createElement(
9616
+ return /* @__PURE__ */ import_react8.default.createElement(import_core_react6.Box, { style: { width: "100%" } }, /* @__PURE__ */ import_react8.default.createElement(
9439
9617
  StyledButton,
9440
9618
  {
9441
9619
  block: true,
@@ -9448,19 +9626,19 @@ var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
9448
9626
  onClick: () => toggleGroup(group),
9449
9627
  "aria-controls": `saved-views-collections-${group}`,
9450
9628
  "aria-expanded": expanded,
9451
- icon: expanded ? /* @__PURE__ */ import_react7.default.createElement(ChevronDown_default, { size: "sm" }) : /* @__PURE__ */ import_react7.default.createElement(ChevronRight_default, { size: "sm" })
9629
+ icon: expanded ? /* @__PURE__ */ import_react8.default.createElement(ChevronDown_default, { size: "sm" }) : /* @__PURE__ */ import_react8.default.createElement(ChevronRight_default, { size: "sm" })
9452
9630
  },
9453
9631
  groupIcon(group),
9454
- /* @__PURE__ */ import_react7.default.createElement(import_core_react6.Typography, { weight: "semibold" }, I18n.t(`savedViews.viewLevel.${group}`))
9632
+ /* @__PURE__ */ import_react8.default.createElement(import_core_react6.Typography, { weight: "semibold" }, I18n.t(`savedViews.viewLevel.${group}`))
9455
9633
  ));
9456
9634
  };
9457
9635
  var ViewLevelHeader_default = ViewLevelHeader;
9458
9636
 
9459
9637
  // src/utils/hooks/useScrollToRef.ts
9460
- var import_react8 = require("react");
9638
+ var import_react9 = require("react");
9461
9639
  var useScrollToRef = (dependency) => {
9462
- const ref = (0, import_react8.useRef)(null);
9463
- (0, import_react8.useEffect)(() => {
9640
+ const ref = (0, import_react9.useRef)(null);
9641
+ (0, import_react9.useEffect)(() => {
9464
9642
  if (ref.current) {
9465
9643
  ref.current.scrollIntoView({ behavior: "smooth", block: "nearest" });
9466
9644
  }
@@ -9502,8 +9680,8 @@ var PanelContent = (props) => {
9502
9680
  const { mutate: updateSavedView } = updateMutation;
9503
9681
  const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
9504
9682
  const savedViews = props.savedViews ?? savedViewsFromQuery;
9505
- const errorToastRef = import_react9.default.useRef(null);
9506
- import_react9.default.useEffect(() => {
9683
+ const errorToastRef = import_react10.default.useRef(null);
9684
+ import_react10.default.useEffect(() => {
9507
9685
  if (savedViewsError && savedViewsError !== errorToastRef.current) {
9508
9686
  showToast.error(I18n.t("savedViews.errors.fetch"));
9509
9687
  errorToastRef.current = savedViewsError;
@@ -9533,7 +9711,7 @@ var PanelContent = (props) => {
9533
9711
  }
9534
9712
  });
9535
9713
  };
9536
- 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(
9714
+ 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(
9537
9715
  StyledMenuImperative,
9538
9716
  {
9539
9717
  role: "listbox",
@@ -9543,7 +9721,7 @@ var PanelContent = (props) => {
9543
9721
  }
9544
9722
  }
9545
9723
  },
9546
- /* @__PURE__ */ import_react9.default.createElement(import_core_react8.MenuImperative.Options, null, temporaryView && /* @__PURE__ */ import_react9.default.createElement(
9724
+ /* @__PURE__ */ import_react10.default.createElement(import_core_react8.MenuImperative.Options, null, temporaryView && /* @__PURE__ */ import_react10.default.createElement(
9547
9725
  Row,
9548
9726
  {
9549
9727
  key: temporaryView.id,
@@ -9552,7 +9730,7 @@ var PanelContent = (props) => {
9552
9730
  "aria-current": isTemporarySelected ? "true" : void 0,
9553
9731
  ref: isTemporarySelected ? selectedRowRef : null
9554
9732
  },
9555
- /* @__PURE__ */ import_react9.default.createElement(
9733
+ /* @__PURE__ */ import_react10.default.createElement(
9556
9734
  SavedViewCollectionMenuItem,
9557
9735
  {
9558
9736
  item: temporaryView,
@@ -9562,7 +9740,7 @@ var PanelContent = (props) => {
9562
9740
  )
9563
9741
  ), presetViews.map((presetView) => {
9564
9742
  const isSelected = selectedSavedView?.id === presetView.id;
9565
- return /* @__PURE__ */ import_react9.default.createElement(
9743
+ return /* @__PURE__ */ import_react10.default.createElement(
9566
9744
  Row,
9567
9745
  {
9568
9746
  key: presetView.id,
@@ -9571,7 +9749,7 @@ var PanelContent = (props) => {
9571
9749
  "aria-current": isSelected ? "true" : void 0,
9572
9750
  ref: isSelected ? selectedRowRef : null
9573
9751
  },
9574
- /* @__PURE__ */ import_react9.default.createElement(
9752
+ /* @__PURE__ */ import_react10.default.createElement(
9575
9753
  SavedViewCollectionMenuItem,
9576
9754
  {
9577
9755
  item: presetView,
@@ -9585,14 +9763,14 @@ var PanelContent = (props) => {
9585
9763
  const views = isExpanded && savedViews ? savedViews.filter(
9586
9764
  (view) => view.view_level === level && view.id !== "temporary"
9587
9765
  ) : [];
9588
- return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, { key: level }, /* @__PURE__ */ import_react9.default.createElement(
9766
+ return /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, { key: level }, /* @__PURE__ */ import_react10.default.createElement(
9589
9767
  ViewLevelHeader_default,
9590
9768
  {
9591
9769
  group: level,
9592
9770
  toggleGroup,
9593
9771
  expanded: isExpanded
9594
9772
  }
9595
- ), isExpanded && views.length > 0 && /* @__PURE__ */ import_react9.default.createElement(
9773
+ ), isExpanded && views.length > 0 && /* @__PURE__ */ import_react10.default.createElement(
9596
9774
  StyledMenuImperative,
9597
9775
  {
9598
9776
  id: `saved-views-collections-${level}`,
@@ -9603,7 +9781,7 @@ var PanelContent = (props) => {
9603
9781
  }
9604
9782
  }
9605
9783
  },
9606
- /* @__PURE__ */ import_react9.default.createElement(import_core_react8.MenuImperative.Options, null, views.map((view) => {
9784
+ /* @__PURE__ */ import_react10.default.createElement(import_core_react8.MenuImperative.Options, null, views.map((view) => {
9607
9785
  const isSelected = selectedSavedView?.id === view.id;
9608
9786
  const canUpdate = isSelected && hasPermissionForViewLevel(
9609
9787
  view.view_level,
@@ -9615,7 +9793,7 @@ var PanelContent = (props) => {
9615
9793
  props.provider
9616
9794
  );
9617
9795
  const canEditOrDelete = isSelected && hasPermissionForViewLevel(view.view_level, permissions);
9618
- return /* @__PURE__ */ import_react9.default.createElement(
9796
+ return /* @__PURE__ */ import_react10.default.createElement(
9619
9797
  Row,
9620
9798
  {
9621
9799
  key: view.id,
@@ -9624,7 +9802,7 @@ var PanelContent = (props) => {
9624
9802
  "aria-current": isSelected ? "true" : void 0,
9625
9803
  ref: isSelected ? selectedRowRef : null
9626
9804
  },
9627
- /* @__PURE__ */ import_react9.default.createElement(
9805
+ /* @__PURE__ */ import_react10.default.createElement(
9628
9806
  SavedViewCollectionMenuItem,
9629
9807
  {
9630
9808
  item: view,
@@ -9647,20 +9825,20 @@ var PanelContent = (props) => {
9647
9825
 
9648
9826
  // src/components/saved-views/SavedViews.tsx
9649
9827
  var import_core_react15 = require("@procore/core-react");
9650
- var import_react15 = __toESM(require("react"));
9828
+ var import_react16 = __toESM(require("react"));
9651
9829
  var import_react_query3 = require("@tanstack/react-query");
9652
9830
  var import_toast_alert3 = require("@procore/toast-alert");
9653
9831
 
9654
9832
  // src/components/modals/DeleteConfirmationModal.tsx
9655
9833
  var import_core_react9 = require("@procore/core-react");
9656
- var import_react10 = __toESM(require("react"));
9834
+ var import_react11 = __toESM(require("react"));
9657
9835
  var SavedViewsDeleteConfirmationModalShared = ({
9658
9836
  onCancel,
9659
9837
  onDelete,
9660
9838
  open
9661
9839
  }) => {
9662
9840
  const i18n = (0, import_core_react9.useI18nContext)();
9663
- return /* @__PURE__ */ import_react10.default.createElement(
9841
+ return /* @__PURE__ */ import_react11.default.createElement(
9664
9842
  import_core_react9.ConfirmModal,
9665
9843
  {
9666
9844
  "data-testid": "delete-confirmation-modal",
@@ -9670,17 +9848,17 @@ var SavedViewsDeleteConfirmationModalShared = ({
9670
9848
  onClose: onCancel,
9671
9849
  style: { overflowWrap: "anywhere" }
9672
9850
  },
9673
- /* @__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"))),
9674
- /* @__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"))))
9851
+ /* @__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"))),
9852
+ /* @__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"))))
9675
9853
  );
9676
9854
  };
9677
9855
 
9678
9856
  // src/components/modals/form-modal/FormModal.tsx
9679
- var import_react11 = __toESM(require("react"));
9857
+ var import_react12 = __toESM(require("react"));
9680
9858
 
9681
9859
  // src/components/modals/form-modal/FormModalBase.tsx
9682
9860
  var import_core_react11 = require("@procore/core-react");
9683
- var React20 = __toESM(require("react"));
9861
+ var React21 = __toESM(require("react"));
9684
9862
  var yup = __toESM(require("yup"));
9685
9863
 
9686
9864
  // src/components/modals/form-modal/FormModalBaseUtils.ts
@@ -9717,7 +9895,7 @@ function extractMessage(error, I18n) {
9717
9895
 
9718
9896
  // src/components/modals/form-modal/NameInputField.tsx
9719
9897
  var import_core_react10 = require("@procore/core-react");
9720
- var React19 = __toESM(require("react"));
9898
+ var React20 = __toESM(require("react"));
9721
9899
  var NAME_INPUT_ID = "saved-view-form-name-input";
9722
9900
  var NameInputField = ({
9723
9901
  error,
@@ -9726,12 +9904,12 @@ var NameInputField = ({
9726
9904
  const I18n = (0, import_core_react10.useI18nContext)();
9727
9905
  const label = I18n.t("savedViews.modal.fields.name");
9728
9906
  const { errors: formErrors, submitCount } = (0, import_core_react10.useFormContext)();
9729
- React19.useEffect(() => {
9907
+ React20.useEffect(() => {
9730
9908
  if (submitCount > 0 && formErrors?.name) {
9731
9909
  document.getElementById(NAME_INPUT_ID)?.focus();
9732
9910
  }
9733
9911
  }, [formErrors?.name, submitCount]);
9734
- return /* @__PURE__ */ React19.createElement(
9912
+ return /* @__PURE__ */ React20.createElement(
9735
9913
  import_core_react10.Form.Text,
9736
9914
  {
9737
9915
  id: NAME_INPUT_ID,
@@ -9823,7 +10001,7 @@ var FormModalBase = ({
9823
10001
  I18n,
9824
10002
  isProjectLevelTool
9825
10003
  );
9826
- return /* @__PURE__ */ React20.createElement(
10004
+ return /* @__PURE__ */ React21.createElement(
9827
10005
  import_core_react11.Modal,
9828
10006
  {
9829
10007
  howToClose: ["x", "scrim"],
@@ -9832,7 +10010,7 @@ var FormModalBase = ({
9832
10010
  width: "md",
9833
10011
  "data-testid": "create-update-modal"
9834
10012
  },
9835
- /* @__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(
10013
+ /* @__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(
9836
10014
  import_core_react11.Form,
9837
10015
  {
9838
10016
  initialValues: {
@@ -9858,25 +10036,25 @@ var FormModalBase = ({
9858
10036
  onReset: onCancel,
9859
10037
  validateOnChange: true
9860
10038
  },
9861
- /* @__PURE__ */ React20.createElement(import_core_react11.Form.Form, { name: header }, /* @__PURE__ */ React20.createElement(
10039
+ /* @__PURE__ */ React21.createElement(import_core_react11.Form.Form, { name: header }, /* @__PURE__ */ React21.createElement(
9862
10040
  import_core_react11.Modal.Body,
9863
10041
  {
9864
10042
  style: { paddingTop: 0, paddingBottom: 0, marginTop: import_core_react11.spacing.lg }
9865
10043
  },
9866
- 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?.form || I18n.t(`savedViews.modal.errors.description.${mode}`)))),
9867
- /* @__PURE__ */ React20.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React20.createElement(
10044
+ 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?.form || I18n.t(`savedViews.modal.errors.description.${mode}`)))),
10045
+ /* @__PURE__ */ React21.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React21.createElement(
9868
10046
  NameInputField,
9869
10047
  {
9870
10048
  error: errors?.name,
9871
10049
  onResetMutations: resetMutations
9872
10050
  }
9873
10051
  )),
9874
- /* @__PURE__ */ React20.createElement(
10052
+ /* @__PURE__ */ React21.createElement(
9875
10053
  import_core_react11.Form.Row,
9876
10054
  {
9877
10055
  style: { marginTop: errors?.name ? import_core_react11.spacing.xl : import_core_react11.spacing.none }
9878
10056
  },
9879
- /* @__PURE__ */ React20.createElement(
10057
+ /* @__PURE__ */ React21.createElement(
9880
10058
  import_core_react11.Form.TextArea,
9881
10059
  {
9882
10060
  name: "description",
@@ -9887,7 +10065,7 @@ var FormModalBase = ({
9887
10065
  }
9888
10066
  )
9889
10067
  ),
9890
- viewLevelOptions.length > 1 && mode === "create" /* CREATE */ ? /* @__PURE__ */ React20.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React20.createElement(
10068
+ viewLevelOptions.length > 1 && mode === "create" /* CREATE */ ? /* @__PURE__ */ React21.createElement(import_core_react11.Form.Row, null, /* @__PURE__ */ React21.createElement(
9891
10069
  import_core_react11.Form.Select,
9892
10070
  {
9893
10071
  name: "view_level",
@@ -9897,8 +10075,8 @@ var FormModalBase = ({
9897
10075
  onSearch: false,
9898
10076
  onClear: false
9899
10077
  }
9900
- )) : /* @__PURE__ */ React20.createElement(React20.Fragment, null)
9901
- ), /* @__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(
10078
+ )) : /* @__PURE__ */ React21.createElement(React21.Fragment, null)
10079
+ ), /* @__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(
9902
10080
  import_core_react11.Button,
9903
10081
  {
9904
10082
  "data-testid": "create-update-modal-button",
@@ -9928,7 +10106,7 @@ var FormModal = ({
9928
10106
  defaultView
9929
10107
  }) => {
9930
10108
  const i18n = (0, import_core_react12.useI18nContext)();
9931
- return /* @__PURE__ */ import_react11.default.createElement(
10109
+ return /* @__PURE__ */ import_react12.default.createElement(
9932
10110
  FormModalBase,
9933
10111
  {
9934
10112
  open,
@@ -9950,7 +10128,7 @@ var FormModal = ({
9950
10128
 
9951
10129
  // src/components/modals/form-modal/SharedViewFormModal.tsx
9952
10130
  var import_core_react13 = require("@procore/core-react");
9953
- var React22 = __toESM(require("react"));
10131
+ var React23 = __toESM(require("react"));
9954
10132
  var yup2 = __toESM(require("yup"));
9955
10133
  var SharedViewFormModal = ({
9956
10134
  open,
@@ -9973,7 +10151,7 @@ var SharedViewFormModal = ({
9973
10151
  const handleOnSubmit = (data) => {
9974
10152
  onCreateView(data.name, data.description);
9975
10153
  };
9976
- return /* @__PURE__ */ React22.createElement(
10154
+ return /* @__PURE__ */ React23.createElement(
9977
10155
  import_core_react13.Modal,
9978
10156
  {
9979
10157
  "data-testid": "shared-view-form-modal",
@@ -9982,7 +10160,7 @@ var SharedViewFormModal = ({
9982
10160
  onClose,
9983
10161
  style: { width: "540px" }
9984
10162
  },
9985
- /* @__PURE__ */ React22.createElement(
10163
+ /* @__PURE__ */ React23.createElement(
9986
10164
  import_core_react13.Modal.Header,
9987
10165
  {
9988
10166
  onClose,
@@ -9993,9 +10171,9 @@ var SharedViewFormModal = ({
9993
10171
  paddingRight: import_core_react13.spacing.xl
9994
10172
  }
9995
10173
  },
9996
- /* @__PURE__ */ React22.createElement(import_core_react13.Modal.Heading, null, I18n.t("savedViews.modal.create.title"))
10174
+ /* @__PURE__ */ React23.createElement(import_core_react13.Modal.Heading, null, I18n.t("savedViews.modal.create.title"))
9997
10175
  ),
9998
- /* @__PURE__ */ React22.createElement(
10176
+ /* @__PURE__ */ React23.createElement(
9999
10177
  import_core_react13.P,
10000
10178
  {
10001
10179
  style: {
@@ -10010,7 +10188,7 @@ var SharedViewFormModal = ({
10010
10188
  },
10011
10189
  I18n.t("savedViews.modal.copyConfirmation.description")
10012
10190
  ),
10013
- /* @__PURE__ */ React22.createElement(
10191
+ /* @__PURE__ */ React23.createElement(
10014
10192
  import_core_react13.Form,
10015
10193
  {
10016
10194
  initialValues: {
@@ -10029,7 +10207,7 @@ var SharedViewFormModal = ({
10029
10207
  onSubmit: handleOnSubmit,
10030
10208
  validateOnChange: true
10031
10209
  },
10032
- /* @__PURE__ */ React22.createElement(import_core_react13.Form.Form, { name: "share-view-form" }, /* @__PURE__ */ React22.createElement(
10210
+ /* @__PURE__ */ React23.createElement(import_core_react13.Form.Form, { name: "share-view-form" }, /* @__PURE__ */ React23.createElement(
10033
10211
  import_core_react13.Modal.Body,
10034
10212
  {
10035
10213
  style: {
@@ -10038,22 +10216,22 @@ var SharedViewFormModal = ({
10038
10216
  borderTop: `1px solid ${import_core_react13.colors.gray85}`
10039
10217
  }
10040
10218
  },
10041
- 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", {
10219
+ 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", {
10042
10220
  mode: "create"
10043
- })), /* @__PURE__ */ React22.createElement(import_core_react13.Banner.Body, null, errors?.form || I18n.t("savedViews.modal.errors.description.create")))),
10044
- /* @__PURE__ */ React22.createElement(import_core_react13.Form.Row, null, /* @__PURE__ */ React22.createElement(
10221
+ })), /* @__PURE__ */ React23.createElement(import_core_react13.Banner.Body, null, errors?.form || I18n.t("savedViews.modal.errors.description.create")))),
10222
+ /* @__PURE__ */ React23.createElement(import_core_react13.Form.Row, null, /* @__PURE__ */ React23.createElement(
10045
10223
  NameInputField,
10046
10224
  {
10047
10225
  error: errors?.name,
10048
10226
  onResetMutations: handleNameChange
10049
10227
  }
10050
10228
  )),
10051
- /* @__PURE__ */ React22.createElement(
10229
+ /* @__PURE__ */ React23.createElement(
10052
10230
  import_core_react13.Form.Row,
10053
10231
  {
10054
10232
  style: { marginTop: errors?.name ? import_core_react13.spacing.xl : import_core_react13.spacing.none }
10055
10233
  },
10056
- /* @__PURE__ */ React22.createElement(
10234
+ /* @__PURE__ */ React23.createElement(
10057
10235
  import_core_react13.Form.TextArea,
10058
10236
  {
10059
10237
  name: "description",
@@ -10064,7 +10242,7 @@ var SharedViewFormModal = ({
10064
10242
  }
10065
10243
  )
10066
10244
  )
10067
- ), /* @__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(
10245
+ ), /* @__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(
10068
10246
  import_core_react13.Button,
10069
10247
  {
10070
10248
  variant: "secondary",
@@ -10073,7 +10251,7 @@ var SharedViewFormModal = ({
10073
10251
  disabled: isCreating
10074
10252
  },
10075
10253
  I18n.t("savedViews.actions.viewTemporarily")
10076
- ), /* @__PURE__ */ React22.createElement(
10254
+ ), /* @__PURE__ */ React23.createElement(
10077
10255
  import_core_react13.Button,
10078
10256
  {
10079
10257
  type: "submit",
@@ -10089,7 +10267,7 @@ var SharedViewFormModal = ({
10089
10267
  };
10090
10268
 
10091
10269
  // src/utils/hooks/useViewSelection.ts
10092
- var import_react13 = require("react");
10270
+ var import_react14 = require("react");
10093
10271
  var import_react_router_dom = require("react-router-dom");
10094
10272
  var import_core_react14 = require("@procore/core-react");
10095
10273
 
@@ -10116,13 +10294,13 @@ var ViewStorage = {
10116
10294
  };
10117
10295
 
10118
10296
  // src/utils/hooks/useLatest.ts
10119
- var import_react12 = require("react");
10297
+ var import_react13 = require("react");
10120
10298
  var useLatest = (callback) => {
10121
- const ref = (0, import_react12.useRef)(callback);
10122
- (0, import_react12.useLayoutEffect)(() => {
10299
+ const ref = (0, import_react13.useRef)(callback);
10300
+ (0, import_react13.useLayoutEffect)(() => {
10123
10301
  ref.current = callback;
10124
10302
  });
10125
- return (0, import_react12.useCallback)((...args) => ref.current(...args), []);
10303
+ return (0, import_react13.useCallback)((...args) => ref.current(...args), []);
10126
10304
  };
10127
10305
 
10128
10306
  // src/utils/hooks/useViewSelection.ts
@@ -10135,16 +10313,21 @@ var areRowGroupStatesEqual = (a2, b2) => {
10135
10313
  if (a2.length !== b2.length) return false;
10136
10314
  return a2.every((val, idx) => val === b2[idx]);
10137
10315
  };
10138
- var getUpdatedSearchParams = (currentParams, view) => {
10139
- const updatedParams = new URLSearchParams(currentParams);
10140
- if (view.id === "default") {
10141
- updatedParams.set("saved-view", "default");
10142
- } else if (view.id === "temporary") {
10143
- updatedParams.set("saved-view", "temporary");
10144
- } else {
10145
- updatedParams.set("saved-view", view.share_token);
10316
+ var getViewToken = (view) => {
10317
+ if (view.id === "default" || view.id === "temporary") {
10318
+ return view.id;
10146
10319
  }
10147
- return updatedParams;
10320
+ return view.share_token;
10321
+ };
10322
+ var setSavedViewParam = (token2, setSearchParams) => {
10323
+ setSearchParams(
10324
+ (currentParams) => {
10325
+ const updatedParams = new URLSearchParams(currentParams);
10326
+ updatedParams.set("saved-view", token2);
10327
+ return updatedParams;
10328
+ },
10329
+ { replace: true }
10330
+ );
10148
10331
  };
10149
10332
  var checkIsViewSelected = (selectedView, viewId) => {
10150
10333
  return selectedView?.share_token === viewId || selectedView?.id === viewId;
@@ -10153,21 +10336,11 @@ var findViewByToken = (views, token2) => {
10153
10336
  return views.find((view) => view.share_token === token2);
10154
10337
  };
10155
10338
  var setViewInUrl = (view, setSearchParams) => {
10156
- setSearchParams(
10157
- (currentParams) => getUpdatedSearchParams(currentParams, view),
10158
- { replace: true }
10159
- );
10339
+ setSavedViewParam(getViewToken(view), setSearchParams);
10160
10340
  };
10161
10341
  var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
10162
10342
  if (previousParam && !currentParam) {
10163
- setSearchParams(
10164
- (currentParams) => {
10165
- const updatedParams = new URLSearchParams(currentParams);
10166
- updatedParams.set("saved-view", previousParam);
10167
- return updatedParams;
10168
- },
10169
- { replace: true }
10170
- );
10343
+ setSavedViewParam(previousParam, setSearchParams);
10171
10344
  }
10172
10345
  };
10173
10346
  var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, tableConfig) => {
@@ -10176,31 +10349,33 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10176
10349
  const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${projectIdSegment}_${config.userId}`;
10177
10350
  const temporaryStorageKey = `${storageKey}-temporary`;
10178
10351
  const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
10179
- const previousSavedViewParamRef = (0, import_react13.useRef)(null);
10180
- const [selectedSavedView, setSelectedSavedView] = (0, import_react13.useState)(() => {
10352
+ const previousSavedViewParamRef = (0, import_react14.useRef)(null);
10353
+ const intendedTokenRef = (0, import_react14.useRef)(null);
10354
+ const [selectedSavedView, setSelectedSavedView] = (0, import_react14.useState)(() => {
10181
10355
  const stored = ViewStorage.load(storageKey, config.defaultView);
10182
10356
  return stored ?? config.defaultView;
10183
10357
  });
10184
- const [temporaryView, setTemporaryView] = (0, import_react13.useState)(() => {
10358
+ const [temporaryView, setTemporaryView] = (0, import_react14.useState)(() => {
10185
10359
  const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
10186
10360
  return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
10187
10361
  });
10188
- const persistViewToStorageAndUrl = (0, import_react13.useCallback)(
10362
+ const persistViewToStorageAndUrl = (0, import_react14.useCallback)(
10189
10363
  (view) => {
10190
10364
  ViewStorage.save(storageKey, view);
10365
+ intendedTokenRef.current = getViewToken(view);
10191
10366
  setViewInUrl(view, setSearchParams);
10192
10367
  },
10193
10368
  [storageKey, setSearchParams]
10194
10369
  );
10195
- const baseViews = (0, import_react13.useMemo)(
10370
+ const baseViews = (0, import_react14.useMemo)(
10196
10371
  () => [...savedViews ?? [], ...presetViews ?? []],
10197
10372
  [savedViews, presetViews]
10198
10373
  );
10199
- const allViews = (0, import_react13.useMemo)(
10374
+ const allViews = (0, import_react14.useMemo)(
10200
10375
  () => temporaryView ? [...baseViews, temporaryView] : baseViews,
10201
10376
  [baseViews, temporaryView]
10202
10377
  );
10203
- const selectView = (0, import_react13.useCallback)(
10378
+ const selectView = (0, import_react14.useCallback)(
10204
10379
  (view) => {
10205
10380
  const viewToSelect = config.onSelect({ item: view });
10206
10381
  setSelectedSavedView(viewToSelect);
@@ -10209,7 +10384,7 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10209
10384
  },
10210
10385
  [config, persistViewToStorageAndUrl]
10211
10386
  );
10212
- const createTemporaryView = (0, import_react13.useCallback)(
10387
+ const createTemporaryView = (0, import_react14.useCallback)(
10213
10388
  (fetchedView) => {
10214
10389
  const tempView = {
10215
10390
  ...fetchedView,
@@ -10224,12 +10399,12 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10224
10399
  },
10225
10400
  [temporaryStorageKey, selectView]
10226
10401
  );
10227
- const clearTemporaryView = (0, import_react13.useCallback)(() => {
10402
+ const clearTemporaryView = (0, import_react14.useCallback)(() => {
10228
10403
  ViewStorage.remove(temporaryStorageKey);
10229
10404
  setTemporaryView(null);
10230
10405
  selectView(config.defaultView);
10231
10406
  }, [temporaryStorageKey, config.defaultView, selectView]);
10232
- const isViewAlreadySelected = (0, import_react13.useCallback)(
10407
+ const isViewAlreadySelected = (0, import_react14.useCallback)(
10233
10408
  (viewId) => checkIsViewSelected(selectedSavedView, viewId),
10234
10409
  [selectedSavedView]
10235
10410
  );
@@ -10244,8 +10419,16 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10244
10419
  openSharedViewModal(viewId);
10245
10420
  }
10246
10421
  });
10247
- (0, import_react13.useEffect)(() => {
10422
+ (0, import_react14.useEffect)(() => {
10248
10423
  const savedViewId = searchParams.get("saved-view");
10424
+ const intendedToken = intendedTokenRef.current;
10425
+ if (intendedToken !== null && savedViewId !== intendedToken) {
10426
+ setSavedViewParam(intendedToken, setSearchParams);
10427
+ return;
10428
+ }
10429
+ if (intendedToken !== null && savedViewId === intendedToken) {
10430
+ intendedTokenRef.current = null;
10431
+ }
10249
10432
  restoreUrlParameter(
10250
10433
  savedViewId,
10251
10434
  previousSavedViewParamRef.current,
@@ -10258,14 +10441,14 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10258
10441
  handleSavedViewFromUrl(savedViewId);
10259
10442
  }
10260
10443
  }, [searchParams, handleSavedViewFromUrl, allViews.length]);
10261
- const previousRowGroupStateRef = (0, import_react13.useRef)(
10444
+ const previousRowGroupStateRef = (0, import_react14.useRef)(
10262
10445
  isSmartGridConfig(tableConfig) ? tableConfig.rowGroupState : void 0
10263
10446
  );
10264
- const selectedViewRef = (0, import_react13.useRef)(selectedSavedView);
10447
+ const selectedViewRef = (0, import_react14.useRef)(selectedSavedView);
10265
10448
  selectedViewRef.current = selectedSavedView;
10266
- const defaultViewRef = (0, import_react13.useRef)(config.defaultView);
10449
+ const defaultViewRef = (0, import_react14.useRef)(config.defaultView);
10267
10450
  defaultViewRef.current = config.defaultView;
10268
- (0, import_react13.useEffect)(() => {
10451
+ (0, import_react14.useEffect)(() => {
10269
10452
  if (!isSmartGridConfig(tableConfig) || !presetViews?.length) return;
10270
10453
  const currentView = selectedViewRef.current;
10271
10454
  const isPresetSelected = !currentView || currentView.view_level === "default";
@@ -10306,12 +10489,12 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal, ta
10306
10489
 
10307
10490
  // src/components/saved-views/FocusScopeToggle.tsx
10308
10491
  var import_focus = require("@react-aria/focus");
10309
- var import_react14 = require("react");
10492
+ var import_react15 = require("react");
10310
10493
  var useFocusScopeToggle = (isOpen) => {
10311
10494
  const focusManager = (0, import_focus.useFocusManager)();
10312
- const triggerRef = (0, import_react14.useRef)(null);
10313
- const firstFocusedElementRef = (0, import_react14.useRef)(null);
10314
- (0, import_react14.useEffect)(() => {
10495
+ const triggerRef = (0, import_react15.useRef)(null);
10496
+ const firstFocusedElementRef = (0, import_react15.useRef)(null);
10497
+ (0, import_react15.useEffect)(() => {
10315
10498
  const handleKeyDown = (event) => {
10316
10499
  if (!event.shiftKey || event.key !== "Tab") {
10317
10500
  return;
@@ -10368,13 +10551,13 @@ var SavedViewsContent = (props) => {
10368
10551
  const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
10369
10552
  const { showToast } = (0, import_toast_alert3.useToastAlertContext)();
10370
10553
  const i18n = (0, import_core_react15.useI18nContext)();
10371
- const [activeModal, setActiveModal] = (0, import_react15.useState)(null);
10372
- const [modalData, setModalData] = (0, import_react15.useState)(null);
10554
+ const [activeModal, setActiveModal] = (0, import_react16.useState)(null);
10555
+ const [modalData, setModalData] = (0, import_react16.useState)(null);
10373
10556
  const openModal = (type, data) => {
10374
10557
  setActiveModal(type);
10375
10558
  setModalData(data ?? null);
10376
10559
  };
10377
- const closeModal = (0, import_react15.useCallback)(() => {
10560
+ const closeModal = (0, import_react16.useCallback)(() => {
10378
10561
  setActiveModal(null);
10379
10562
  setModalData(null);
10380
10563
  }, []);
@@ -10414,13 +10597,17 @@ var SavedViewsContent = (props) => {
10414
10597
  error: createError,
10415
10598
  reset: resetCreateError
10416
10599
  } = useCreateSavedView(queryInput);
10417
- (0, import_react15.useEffect)(() => {
10600
+ (0, import_react16.useEffect)(() => {
10418
10601
  if (fetchError) {
10419
10602
  showToast.error(i18n.t("savedViews.errors.notFound"));
10420
10603
  selectView(selectedView ?? props.defaultView);
10421
10604
  closeModal();
10422
10605
  }
10423
10606
  }, [fetchError, selectedView, props.defaultView, selectView, closeModal]);
10607
+ const setSelectedViewInContext = useSavedViewsSelection()?.setSelectedView;
10608
+ (0, import_react16.useEffect)(() => {
10609
+ setSelectedViewInContext?.(selectedView ?? null);
10610
+ }, [selectedView, setSelectedViewInContext]);
10424
10611
  const viewSharedViewTemporarily = () => {
10425
10612
  if (fetchedView) {
10426
10613
  createTemporaryView(fetchedView);
@@ -10462,19 +10649,19 @@ var SavedViewsContent = (props) => {
10462
10649
  deleteSelectedView();
10463
10650
  closeModal();
10464
10651
  };
10465
- 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(
10652
+ 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(
10466
10653
  ExpandedPanel,
10467
10654
  {
10468
10655
  "data-testid": "saved-view-expanded-panel",
10469
10656
  provider: props.provider
10470
10657
  },
10471
- /* @__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(
10658
+ /* @__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(
10472
10659
  import_core_react15.Tooltip,
10473
10660
  {
10474
10661
  showDelay: 200,
10475
- overlay: /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Tooltip.Content, null, i18n.t("savedViews.tooltip"))
10662
+ overlay: /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Tooltip.Content, null, i18n.t("savedViews.tooltip"))
10476
10663
  },
10477
- /* @__PURE__ */ import_react15.default.createElement(
10664
+ /* @__PURE__ */ import_react16.default.createElement(
10478
10665
  Help_default,
10479
10666
  {
10480
10667
  tabIndex: 0,
@@ -10482,16 +10669,16 @@ var SavedViewsContent = (props) => {
10482
10669
  "aria-label": i18n.t("savedViews.tooltip")
10483
10670
  }
10484
10671
  )
10485
- ))), /* @__PURE__ */ import_react15.default.createElement(
10672
+ ))), /* @__PURE__ */ import_react16.default.createElement(
10486
10673
  import_core_react15.Tooltip,
10487
10674
  {
10488
10675
  overlay: i18n.t("savedViews.actions.create"),
10489
10676
  showDelay: 1e3
10490
10677
  },
10491
- /* @__PURE__ */ import_react15.default.createElement(
10678
+ /* @__PURE__ */ import_react16.default.createElement(
10492
10679
  import_core_react15.Button,
10493
10680
  {
10494
- icon: /* @__PURE__ */ import_react15.default.createElement(Plus_default, null),
10681
+ icon: /* @__PURE__ */ import_react16.default.createElement(Plus_default, null),
10495
10682
  variant: "secondary",
10496
10683
  "data-testid": "expanded-panel-create-button",
10497
10684
  onClick: () => openModal("create" /* CREATE */),
@@ -10500,7 +10687,7 @@ var SavedViewsContent = (props) => {
10500
10687
  i18n.t("savedViews.actions.create")
10501
10688
  )
10502
10689
  )),
10503
- /* @__PURE__ */ import_react15.default.createElement(import_core_react15.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react15.default.createElement(
10690
+ /* @__PURE__ */ import_react16.default.createElement(import_core_react15.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react16.default.createElement(
10504
10691
  PanelContent,
10505
10692
  {
10506
10693
  onSelect: ({ item }) => selectView(item),
@@ -10517,7 +10704,7 @@ var SavedViewsContent = (props) => {
10517
10704
  onClearTemporary: clearTemporaryView
10518
10705
  }
10519
10706
  ))
10520
- ), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react15.default.createElement(
10707
+ ), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react16.default.createElement(
10521
10708
  FormModal,
10522
10709
  {
10523
10710
  open: true,
@@ -10531,14 +10718,14 @@ var SavedViewsContent = (props) => {
10531
10718
  setOpenEditCreateModal: closeModal,
10532
10719
  defaultView: props.defaultView
10533
10720
  }
10534
- ), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react15.default.createElement(
10721
+ ), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react16.default.createElement(
10535
10722
  SavedViewsDeleteConfirmationModalShared,
10536
10723
  {
10537
10724
  open: true,
10538
10725
  onDelete: confirmDeleteAndCloseModal,
10539
10726
  onCancel: closeModal
10540
10727
  }
10541
- ), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react15.default.createElement(
10728
+ ), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react16.default.createElement(
10542
10729
  SharedViewFormModal,
10543
10730
  {
10544
10731
  open: true,
@@ -10553,14 +10740,14 @@ var SavedViewsContent = (props) => {
10553
10740
  )));
10554
10741
  };
10555
10742
  var SavedViews = (props) => {
10556
- 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 }))));
10743
+ 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 }))));
10557
10744
  };
10558
10745
 
10559
10746
  // src/components/adapters/smart-grid/SmartGridSavedViews.tsx
10560
- var import_react19 = __toESM(require("react"));
10747
+ var import_react20 = __toESM(require("react"));
10561
10748
 
10562
10749
  // src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
10563
- var import_react16 = require("react");
10750
+ var import_react17 = require("react");
10564
10751
  var DEFAULT_COLUMN_STATE = {
10565
10752
  hide: false,
10566
10753
  pinned: null,
@@ -10607,7 +10794,7 @@ var extractDefaultView = (gridApi, receivedConfig) => {
10607
10794
  return result;
10608
10795
  };
10609
10796
  var useNormalizedDefaultViews = (defaultViews, gridApi) => {
10610
- return (0, import_react16.useMemo)(() => {
10797
+ return (0, import_react17.useMemo)(() => {
10611
10798
  if (!gridApi)
10612
10799
  return defaultViews.map((view) => ({ ...view, share_token: view.id }));
10613
10800
  return defaultViews.map((view) => ({
@@ -10619,7 +10806,7 @@ var useNormalizedDefaultViews = (defaultViews, gridApi) => {
10619
10806
  };
10620
10807
 
10621
10808
  // src/components/adapters/smart-grid/useSmartGridConfig.ts
10622
- var import_react17 = require("react");
10809
+ var import_react18 = require("react");
10623
10810
  var GRID_STATE_EVENTS = [
10624
10811
  "sortChanged",
10625
10812
  "filterOpened",
@@ -10635,10 +10822,10 @@ var GRID_STATE_EVENTS = [
10635
10822
  "gridReady"
10636
10823
  ];
10637
10824
  var useSmartGridConfig = (gridApi) => {
10638
- const [config, setConfig] = (0, import_react17.useState)(
10825
+ const [config, setConfig] = (0, import_react18.useState)(
10639
10826
  () => getSmartGridConfig(gridApi)
10640
10827
  );
10641
- (0, import_react17.useEffect)(() => {
10828
+ (0, import_react18.useEffect)(() => {
10642
10829
  if (!gridApi) return;
10643
10830
  const updateConfig = () => {
10644
10831
  setConfig(getSmartGridConfig(gridApi));
@@ -10656,13 +10843,13 @@ var useSmartGridConfig = (gridApi) => {
10656
10843
  };
10657
10844
 
10658
10845
  // src/components/adapters/smart-grid/useSavedViewsPanelOpen.ts
10659
- var import_react18 = require("react");
10846
+ var import_react19 = require("react");
10660
10847
  var SAVED_VIEWS_PANEL_ID = "savedViews";
10661
10848
  var useSavedViewsPanelOpen = (gridApi) => {
10662
- const [isOpen, setIsOpen] = (0, import_react18.useState)(
10849
+ const [isOpen, setIsOpen] = (0, import_react19.useState)(
10663
10850
  gridApi.getOpenedToolPanel?.() === SAVED_VIEWS_PANEL_ID
10664
10851
  );
10665
- (0, import_react18.useEffect)(() => {
10852
+ (0, import_react19.useEffect)(() => {
10666
10853
  const syncOpenState = () => {
10667
10854
  setIsOpen(gridApi.getOpenedToolPanel?.() === SAVED_VIEWS_PANEL_ID);
10668
10855
  };
@@ -10682,7 +10869,7 @@ var SmartGridSavedViews = (props) => {
10682
10869
  const isPanelOpen = useSavedViewsPanelOpen(gridApi);
10683
10870
  const presetViews = useNormalizedDefaultViews(props.defaultViews, gridApi);
10684
10871
  const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
10685
- const onSelect = (0, import_react19.useCallback)(
10872
+ const onSelect = (0, import_react20.useCallback)(
10686
10873
  ({ item }) => {
10687
10874
  if (!gridApi) return item;
10688
10875
  const isPresetView = item.view_level === "default";
@@ -10709,7 +10896,7 @@ var SmartGridSavedViews = (props) => {
10709
10896
  },
10710
10897
  [gridApi, tableConfig, setTableConfig]
10711
10898
  );
10712
- return /* @__PURE__ */ import_react19.default.createElement(
10899
+ return /* @__PURE__ */ import_react20.default.createElement(
10713
10900
  SavedViews,
10714
10901
  {
10715
10902
  onSelect,
@@ -10728,10 +10915,10 @@ var SmartGridSavedViews = (props) => {
10728
10915
  };
10729
10916
 
10730
10917
  // src/components/adapters/data-table/DataTableSavedViews.tsx
10731
- var import_react21 = __toESM(require("react"));
10918
+ var import_react22 = __toESM(require("react"));
10732
10919
 
10733
10920
  // src/components/adapters/data-table/DataTableDefaultSavedView.tsx
10734
- var import_react20 = require("react");
10921
+ var import_react21 = require("react");
10735
10922
  var DEFAULT_COLUMN_STATE2 = {
10736
10923
  hidden: false,
10737
10924
  pinned: null,
@@ -10778,7 +10965,7 @@ var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
10778
10965
  return result;
10779
10966
  };
10780
10967
  var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
10781
- return (0, import_react20.useMemo)(
10968
+ return (0, import_react21.useMemo)(
10782
10969
  () => defaultViews.map((view) => ({
10783
10970
  ...view,
10784
10971
  share_token: view.id,
@@ -10789,22 +10976,22 @@ var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
10789
10976
  };
10790
10977
 
10791
10978
  // src/components/adapters/data-table/DataTableSavedViews.tsx
10792
- var DataTableSavedViews = (0, import_react21.forwardRef)((props, ref) => {
10979
+ var DataTableSavedViews = (0, import_react22.forwardRef)((props, ref) => {
10793
10980
  const { tableApi, userId, projectId, companyId } = props;
10794
10981
  const presetViews = useNormalizedDefaultViews2(
10795
10982
  props.defaultViews,
10796
10983
  props.columnDefinitions
10797
10984
  );
10798
10985
  const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
10799
- const [internalTableConfig, setInternalTableConfig] = (0, import_react21.useState)(
10986
+ const [internalTableConfig, setInternalTableConfig] = (0, import_react22.useState)(
10800
10987
  ViewStorage.load(props.stickyViewsKey, defaultView).table_config
10801
10988
  );
10802
- (0, import_react21.useImperativeHandle)(ref, () => ({
10989
+ (0, import_react22.useImperativeHandle)(ref, () => ({
10803
10990
  setTableConfig: (newConfig) => {
10804
10991
  setInternalTableConfig(newConfig);
10805
10992
  }
10806
10993
  }));
10807
- const onSelect = (0, import_react21.useCallback)(
10994
+ const onSelect = (0, import_react22.useCallback)(
10808
10995
  ({ item }) => {
10809
10996
  const isPresetView = item.view_level === "default";
10810
10997
  const syncReferenceConfig = tableApi?.getTableConfiguration?.() ?? defaultView.table_config;
@@ -10827,7 +11014,7 @@ var DataTableSavedViews = (0, import_react21.forwardRef)((props, ref) => {
10827
11014
  if (!internalTableConfig) {
10828
11015
  return null;
10829
11016
  }
10830
- return /* @__PURE__ */ import_react21.default.createElement(
11017
+ return /* @__PURE__ */ import_react22.default.createElement(
10831
11018
  SavedViews,
10832
11019
  {
10833
11020
  onSelect,
@@ -10853,9 +11040,11 @@ DataTableSavedViews.displayName = "DataTableSavedViews";
10853
11040
  SavedViewCollectionMenuItem,
10854
11041
  SavedViews,
10855
11042
  SavedViewsDeleteConfirmationModalShared,
11043
+ SavedViewsSelectionProvider,
10856
11044
  SmartGridSavedViews,
10857
11045
  getTranslations,
10858
- useSavedViewsPanel
11046
+ useSavedViewsPanel,
11047
+ useSavedViewsSelection
10859
11048
  });
10860
11049
  /*! Bundled license information:
10861
11050