@procore/saved-views 5.1.0-alpha.4 → 5.1.0-alpha.6

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.
@@ -8467,17 +8467,18 @@ var src_exports = {};
8467
8467
  __export(src_exports, {
8468
8468
  DataTableSavedViews: () => DataTableSavedViews,
8469
8469
  ExpandedPanel: () => ExpandedPanel,
8470
+ FormModal: () => FormModal,
8470
8471
  PanelContent: () => PanelContent,
8471
8472
  SavedViewCollectionMenuItem: () => SavedViewCollectionMenuItem,
8473
+ SavedViews: () => SavedViews,
8472
8474
  SavedViewsDeleteConfirmationModalShared: () => SavedViewsDeleteConfirmationModalShared,
8473
- SavedViewsFormModal: () => SavedViewsFormModal,
8474
8475
  SmartGridSavedViews: () => SmartGridSavedViews,
8475
8476
  getTranslations: () => getTranslations,
8476
8477
  useSavedViewsPanel: () => useSavedViewsPanel_default
8477
8478
  });
8478
8479
  module.exports = __toCommonJS(src_exports);
8479
8480
 
8480
- // src/utils/Translations/translations.ts
8481
+ // src/utils/translations/translations.ts
8481
8482
  var import_globalization_toolkit = __toESM(require_dist());
8482
8483
 
8483
8484
  // src/locales/de-DE.json
@@ -8860,6 +8861,9 @@ var en_default = {
8860
8861
  update: {
8861
8862
  success: "The saved view was successfully updated."
8862
8863
  },
8864
+ create: {
8865
+ success: "The saved view was successfully created."
8866
+ },
8863
8867
  copy: {
8864
8868
  success: "The link was successfully created and copied to the clipboard."
8865
8869
  },
@@ -8868,7 +8872,8 @@ var en_default = {
8868
8872
  create: "Sorry, the saved view couldn't be created. Try again.",
8869
8873
  update: "Sorry, the saved view couldn't be updated. Try again.",
8870
8874
  delete: "Sorry, the saved view couldn't be deleted. Try again.",
8871
- copyFailed: "Failed to copy share link to clipboard"
8875
+ copyFailed: "Failed to copy share link to clipboard",
8876
+ notFound: "Sorry, the saved view could not be found. Please try again."
8872
8877
  },
8873
8878
  defaultViewTitle: {
8874
8879
  rfi: "All RFIs",
@@ -9273,6 +9278,84 @@ var is_IS_default = {
9273
9278
  }
9274
9279
  };
9275
9280
 
9281
+ // src/locales/it-IT.json
9282
+ var it_IT_default = {
9283
+ savedViews: {
9284
+ name: "Vista salvata",
9285
+ title: "Viste salvate",
9286
+ tooltip: "Creare e salvare qualsiasi layout di tabella personalizzato per tornare rapidamente alla vista preferita.",
9287
+ button: {
9288
+ title: "Viste"
9289
+ },
9290
+ actions: {
9291
+ update: "Aggiorna",
9292
+ delete: "Elimina",
9293
+ create: "Crea",
9294
+ edit: "Modifica",
9295
+ cancel: "Annulla",
9296
+ close: "Chiudi"
9297
+ },
9298
+ modal: {
9299
+ edit: {
9300
+ title: "Aggiorna vista salvata"
9301
+ },
9302
+ create: {
9303
+ title: "Crea vista salvata"
9304
+ },
9305
+ delete: {
9306
+ headline: "Elimina vista salvata",
9307
+ description: "Una volta eliminata, non sar\xE0 pi\xF9 possibile ripristinare la vista."
9308
+ },
9309
+ fields: {
9310
+ name: "Nome",
9311
+ description: "Descrizione",
9312
+ viewLevel: "Livello vista",
9313
+ viewLevels: {
9314
+ company: "Vista dell'azienda",
9315
+ project: "Vista del progetto",
9316
+ personal: "Vista personale"
9317
+ }
9318
+ },
9319
+ errors: {
9320
+ maxLengthName: "Non pu\xF2 contenere pi\xF9 di {{maxLength}} caratteri.",
9321
+ required: "Il campo non pu\xF2 essere vuoto.",
9322
+ duplicateName: "Esiste gi\xE0 una vista salvata con questo nome. Rinominarla e riprovare.",
9323
+ unknown: "Si \xE8 verificato un errore. Riprovare.",
9324
+ title: "Impossibile {{mode}} questa vista salvata",
9325
+ description: {
9326
+ create: "Correggere gli errori di seguito e provare a creare di nuovo",
9327
+ update: "Correggere gli errori di seguito e provare ad aggiornare di nuovo"
9328
+ }
9329
+ },
9330
+ info: {
9331
+ required_fields: "campi obbligatori"
9332
+ }
9333
+ },
9334
+ ariaLabels: {
9335
+ menuItem: "Voce di menu Viste salvate {{name}}",
9336
+ modal: "Finestra modale per creare/aggiornare viste salvate"
9337
+ },
9338
+ update: {
9339
+ success: "Vista salvata aggiornata correttamente."
9340
+ },
9341
+ errors: {
9342
+ fetch: "Impossibile recuperare le viste salvate. Riprovare.",
9343
+ create: "Impossibile creare la vista salvata. Riprovare.",
9344
+ update: "Impossibile aggiornare la vista salvata. Riprovare.",
9345
+ delete: "Impossibile eliminare la vista salvata. Riprovare."
9346
+ },
9347
+ defaultViewTitle: {
9348
+ rfi: "Tutte le RDI",
9349
+ submittal_log: "Tutti gli elementi da inoltrare"
9350
+ },
9351
+ viewLevel: {
9352
+ company: "Viste dell'azienda",
9353
+ project: "Viste del progetto",
9354
+ personal: "Viste personali"
9355
+ }
9356
+ }
9357
+ };
9358
+
9276
9359
  // src/locales/ja-JP.json
9277
9360
  var ja_JP_default = {
9278
9361
  savedViews: {
@@ -9663,8 +9746,8 @@ var zh_SG_default = {
9663
9746
  }
9664
9747
  };
9665
9748
 
9666
- // src/utils/Translations/translations.ts
9667
- var supportedLocales = {
9749
+ // src/locales/index.ts
9750
+ var locales_default = {
9668
9751
  "de-DE": de_DE_default,
9669
9752
  "en-AU": en_AU_default,
9670
9753
  "en-CA": en_CA_default,
@@ -9675,12 +9758,18 @@ var supportedLocales = {
9675
9758
  "fr-CA": fr_CA_default,
9676
9759
  "fr-FR": fr_FR_default,
9677
9760
  "is-IS": is_IS_default,
9761
+ "it-IT": it_IT_default,
9678
9762
  "ja-JP": ja_JP_default,
9763
+ "pl-PL": pl_PL_default,
9679
9764
  "pt-BR": pt_BR_default,
9680
9765
  "th-TH": th_TH_default,
9681
- "zh-SG": zh_SG_default,
9682
- "pl-PL": pl_PL_default,
9683
- pseudo: en_default
9766
+ "zh-SG": zh_SG_default
9767
+ };
9768
+
9769
+ // src/utils/translations/translations.ts
9770
+ var supportedLocales = {
9771
+ ...locales_default,
9772
+ pseudo: locales_default.en
9684
9773
  };
9685
9774
  function getTranslations(envLocale) {
9686
9775
  return Object.fromEntries(
@@ -9691,7 +9780,7 @@ function getTranslations(envLocale) {
9691
9780
  );
9692
9781
  }
9693
9782
 
9694
- // src/SavedViews/components/Buttons/useSavedViewsPanel.tsx
9783
+ // src/components/buttons/useSavedViewsPanel.tsx
9695
9784
  var import_react4 = require("react");
9696
9785
 
9697
9786
  // ../../node_modules/tslib/tslib.es6.mjs
@@ -9903,7 +9992,7 @@ var Plus = React11.forwardRef(function Plus2(props, ref) {
9903
9992
  Plus.displayName = "Plus";
9904
9993
  var Plus_default = Plus;
9905
9994
 
9906
- // src/SavedViews/components/Buttons/SavedViewsButton.tsx
9995
+ // src/components/buttons/SavedViewsButton.tsx
9907
9996
  var import_core_react2 = require("@procore/core-react");
9908
9997
  var import_react3 = __toESM(require("react"));
9909
9998
 
@@ -11118,7 +11207,7 @@ var Ue = function() {
11118
11207
  "production" !== process.env.NODE_ENV && "undefined" != typeof navigator && "ReactNative" === navigator.product && console.warn("It looks like you've imported 'styled-components' on React Native.\nPerhaps you're looking to import 'styled-components/native'?\nRead more about this at https://www.styled-components.com/docs/basics#react-native"), "production" !== process.env.NODE_ENV && "test" !== process.env.NODE_ENV && "undefined" != typeof window && (window["__styled-components-init__"] = window["__styled-components-init__"] || 0, 1 === window["__styled-components-init__"] && console.warn("It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\n\nSee https://s-c.sh/2BAXzed for more info."), window["__styled-components-init__"] += 1);
11119
11208
  var styled_components_esm_default = Ye;
11120
11209
 
11121
- // src/SavedViews/components/EnvironmentI18nProvider.tsx
11210
+ // src/components/EnvironmentI18nProvider.tsx
11122
11211
  var import_react2 = __toESM(require("react"));
11123
11212
  var import_core_react = require("@procore/core-react");
11124
11213
  var import_cdn_translations = require("@procore/cdn-translations");
@@ -11148,7 +11237,7 @@ var EnvironmentI18nProvider = ({ children }) => {
11148
11237
  return /* @__PURE__ */ import_react2.default.createElement(import_core_react.I18nContext.Provider, { value: i18n }, children);
11149
11238
  };
11150
11239
 
11151
- // src/SavedViews/components/Buttons/SavedViewsButton.tsx
11240
+ // src/components/buttons/SavedViewsButton.tsx
11152
11241
  var StyledButton = styled_components_esm_default(import_core_react2.Button)`
11153
11242
  background-color: hsl(218, 75%, 96%);
11154
11243
  color: hsl(218, 75%, 45%);
@@ -11184,7 +11273,7 @@ var SavedViewsButton = ({
11184
11273
  ));
11185
11274
  };
11186
11275
 
11187
- // src/SavedViews/components/Buttons/useSavedViewsPanel.tsx
11276
+ // src/components/buttons/useSavedViewsPanel.tsx
11188
11277
  var import_react5 = __toESM(require("react"));
11189
11278
  var useSavedViewsPanel = (domain, tableName) => {
11190
11279
  const key = (domain2, tableName2) => `savedViewsPanel-${domain2}-${tableName2}`;
@@ -11200,7 +11289,7 @@ var useSavedViewsPanel = (domain, tableName) => {
11200
11289
  };
11201
11290
  var useSavedViewsPanel_default = useSavedViewsPanel;
11202
11291
 
11203
- // src/SavedViews/components/MenuItems/SavedViewsCollectionsMenuItem.tsx
11292
+ // src/components/menu-items/SavedViewsCollectionsMenuItem.tsx
11204
11293
  var import_core_react3 = require("@procore/core-react");
11205
11294
  var React15 = __toESM(require("react"));
11206
11295
  var import_toast_alert = require("@procore/toast-alert");
@@ -11218,6 +11307,11 @@ var Container2 = styled_components_esm_default(import_core_react3.Flex)`
11218
11307
 
11219
11308
  ${({ "aria-selected": selected }) => selected ? "color: hsl(218, 75%, 45%);" : ""}
11220
11309
  `;
11310
+ var IconWrapper = styled_components_esm_default.span`
11311
+ display: flex;
11312
+ align-items: center;
11313
+ justify-content: center;
11314
+ `;
11221
11315
  var SavedViewCollectionMenuItem = (props) => {
11222
11316
  const onClick = React15.useCallback(
11223
11317
  (a2) => {
@@ -11284,7 +11378,7 @@ var SavedViewCollectionMenuItem = (props) => {
11284
11378
  },
11285
11379
  props.item.name
11286
11380
  ),
11287
- /* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(import_core_react3.Box, { justifyContent: "space-between" }, props.item.id !== "default" && props.canUpdate && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
11381
+ /* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(import_core_react3.Box, { justifyContent: "space-between" }, props.item.view_level !== "default" && props.canUpdate && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
11288
11382
  import_core_react3.Button,
11289
11383
  {
11290
11384
  onClick: updateItem,
@@ -11295,7 +11389,7 @@ var SavedViewCollectionMenuItem = (props) => {
11295
11389
  loading: props.isUpdateProcessing
11296
11390
  },
11297
11391
  i18n.t("savedViews.actions.update")
11298
- )), props.item.id !== "default" && props.selected && !props.canUpdate && props.item.id !== "temporary" && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
11392
+ )), props.item.view_level !== "default" && props.selected && !props.canUpdate && props.item.id !== "temporary" && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
11299
11393
  import_core_react3.Button,
11300
11394
  {
11301
11395
  onClick: copyShareLink,
@@ -11304,7 +11398,7 @@ var SavedViewCollectionMenuItem = (props) => {
11304
11398
  "aria-label": i18n.t("savedViews.actions.copyShareLink"),
11305
11399
  "data-testid": "copy-share-link-button"
11306
11400
  },
11307
- /* @__PURE__ */ React15.createElement(Link_default, { size: "sm" })
11401
+ /* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Link_default, { size: "sm" }))
11308
11402
  )), props.item.id === "temporary" && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
11309
11403
  import_core_react3.Button,
11310
11404
  {
@@ -11318,8 +11412,8 @@ var SavedViewCollectionMenuItem = (props) => {
11318
11412
  title: i18n.t("savedViews.actions.clearTemporary"),
11319
11413
  "data-testid": "clear-temporary-view-button"
11320
11414
  },
11321
- /* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" })
11322
- ))), /* @__PURE__ */ React15.createElement(import_core_react3.Box, null, props.item.id !== "default" && props.canEditOrDelete && /* @__PURE__ */ React15.createElement("div", { onClick: (e2) => e2.stopPropagation() }, /* @__PURE__ */ React15.createElement(
11415
+ /* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" }))
11416
+ ))), /* @__PURE__ */ React15.createElement(import_core_react3.Box, null, props.item.view_level !== "default" && props.canEditOrDelete && /* @__PURE__ */ React15.createElement("div", { onClick: (e2) => e2.stopPropagation() }, /* @__PURE__ */ React15.createElement(
11323
11417
  import_core_react3.DropdownFlyout,
11324
11418
  {
11325
11419
  "data-testid": "saved-view-overflow-button",
@@ -11334,7 +11428,7 @@ var SavedViewCollectionMenuItem = (props) => {
11334
11428
  );
11335
11429
  };
11336
11430
 
11337
- // src/SavedViews/components/Panels/ExpandedPanel.tsx
11431
+ // src/components/panels/ExpandedPanel.tsx
11338
11432
  var import_core_react4 = require("@procore/core-react");
11339
11433
  var ExpandedPanel = styled_components_esm_default(import_core_react4.Panel)`
11340
11434
  width: ${({ provider }) => provider === "data-table" ? "316px" : "100%"};
@@ -11342,8 +11436,8 @@ var ExpandedPanel = styled_components_esm_default(import_core_react4.Panel)`
11342
11436
  border-radius: 4px 0 0 4px;
11343
11437
  `;
11344
11438
 
11345
- // src/SavedViews/components/Panels/PanelContent.tsx
11346
- var import_core_react7 = require("@procore/core-react");
11439
+ // src/components/panels/PanelContent.tsx
11440
+ var import_core_react8 = require("@procore/core-react");
11347
11441
  var import_toast_alert2 = require("@procore/toast-alert");
11348
11442
  var import_react9 = __toESM(require("react"));
11349
11443
 
@@ -11389,10 +11483,10 @@ function requestJSON(url, requestParams = {}) {
11389
11483
  );
11390
11484
  }
11391
11485
 
11392
- // src/utils/Api/queries.ts
11486
+ // src/utils/api/queries.ts
11393
11487
  var import_react_query2 = require("@tanstack/react-query");
11394
11488
 
11395
- // src/utils/Api/queriesHandler.ts
11489
+ // src/utils/api/queriesHandler.ts
11396
11490
  var import_react_query = require("@tanstack/react-query");
11397
11491
  var import_core_react5 = require("@procore/core-react");
11398
11492
  var useApiRequest = (props, method, mutationKey) => {
@@ -11457,10 +11551,10 @@ var useApiRequest = (props, method, mutationKey) => {
11457
11551
  });
11458
11552
  };
11459
11553
 
11460
- // src/utils/Constants/viewLevels.ts
11554
+ // src/utils/constants/viewLevels.ts
11461
11555
  var VIEW_LEVELS = ["company", "project", "personal"];
11462
11556
 
11463
- // src/utils/Api/queries.ts
11557
+ // src/utils/api/queries.ts
11464
11558
  var PAGE_SIZE = 50 * VIEW_LEVELS.length;
11465
11559
  var useSavedViewsQuery = (props) => {
11466
11560
  const { projectId, companyId, domain, tableName } = props;
@@ -11513,24 +11607,23 @@ var useFetchSavedViewById = (savedViewToken, queryInput, enabled = true) => {
11513
11607
  });
11514
11608
  };
11515
11609
 
11516
- // src/SavedViews/components/Panels/PanelContentUtils.ts
11610
+ // src/components/panels/PanelContentUtils.ts
11517
11611
  var import_lodash = __toESM(require_lodash());
11518
11612
 
11519
- // src/SavedViews/components/SavedViews/SmartGrid/SmartGridUtils.ts
11613
+ // src/components/adapters/smart-grid/SmartGridUtils.ts
11520
11614
  function getSmartGridConfig(api) {
11521
- const columnStateResult = api.getColumnState();
11522
- const columnGroupStateResult = api.getColumnGroupState();
11523
- const rowGroupStateResult = api.getRowGroupColumns();
11524
- const rowHeightResult = api.getGridOption("rowHeight") || api.getSizesForCurrentTheme().rowHeight;
11525
- const serverFiltersResult = api.getFilterModel();
11526
- const smartGridConfig = {
11527
- columnState: columnStateResult,
11528
- rowHeight: rowHeightResult,
11529
- columnGroupState: columnGroupStateResult,
11530
- rowGroupState: rowGroupStateResult,
11531
- filterState: serverFiltersResult
11615
+ const columnState = api.getColumnState();
11616
+ const columnGroupState = api.getColumnGroupState();
11617
+ const rowGroupState = api.getRowGroupColumns().map((col) => col.getColId());
11618
+ const rowHeight = api.getGridOption("rowHeight") ?? api.getSizesForCurrentTheme().rowHeight;
11619
+ const filterState = api.getFilterModel();
11620
+ return {
11621
+ columnState,
11622
+ rowHeight,
11623
+ columnGroupState,
11624
+ rowGroupState,
11625
+ filterState
11532
11626
  };
11533
- return smartGridConfig;
11534
11627
  }
11535
11628
  function setSmartGridConfig(api, config) {
11536
11629
  api.applyColumnState({
@@ -11545,7 +11638,7 @@ function setSmartGridConfig(api, config) {
11545
11638
  }
11546
11639
  }
11547
11640
 
11548
- // src/SavedViews/components/SavedViews/SavedViewsUtils.ts
11641
+ // src/components/saved-views/SavedViewsUtils.ts
11549
11642
  var customAndConfigSync = (viewTableConfig, defaultTableConfig) => {
11550
11643
  if (!viewTableConfig && !defaultTableConfig)
11551
11644
  return void 0;
@@ -11604,7 +11697,7 @@ var updateTableConfig = (view, tableApi, provider) => {
11604
11697
  }
11605
11698
  };
11606
11699
 
11607
- // src/SavedViews/components/Panels/PanelContentUtils.ts
11700
+ // src/components/panels/PanelContentUtils.ts
11608
11701
  var getOrderedVisibleColumns = (columns, idKey) => {
11609
11702
  if (!columns)
11610
11703
  return [];
@@ -11699,7 +11792,7 @@ var hasPermissionForViewLevel = (viewLevel, permissions) => {
11699
11792
  }
11700
11793
  };
11701
11794
 
11702
- // src/SavedViews/components/Panels/useGroups.ts
11795
+ // src/components/panels/useGroups.ts
11703
11796
  var import_react6 = require("react");
11704
11797
  var useGroups = () => {
11705
11798
  const [groups, setGroups] = (0, import_react6.useState)(
@@ -11711,7 +11804,7 @@ var useGroups = () => {
11711
11804
  return { groups, toggleGroup };
11712
11805
  };
11713
11806
 
11714
- // src/SavedViews/components/Panels/ViewLevelHeader.tsx
11807
+ // src/components/panels/ViewLevelHeader.tsx
11715
11808
  var import_core_react6 = require("@procore/core-react");
11716
11809
  var import_react7 = __toESM(require("react"));
11717
11810
  var groupIcon = (group) => {
@@ -11748,7 +11841,7 @@ var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
11748
11841
  };
11749
11842
  var ViewLevelHeader_default = ViewLevelHeader;
11750
11843
 
11751
- // src/utils/Hooks/useScrollToRef.ts
11844
+ // src/utils/hooks/useScrollToRef.ts
11752
11845
  var import_react8 = require("react");
11753
11846
  var useScrollToRef = (dependency) => {
11754
11847
  const ref = (0, import_react8.useRef)(null);
@@ -11760,7 +11853,8 @@ var useScrollToRef = (dependency) => {
11760
11853
  return ref;
11761
11854
  };
11762
11855
 
11763
- // src/SavedViews/components/Panels/PanelContent.tsx
11856
+ // src/components/panels/PanelContent.styles.ts
11857
+ var import_core_react7 = require("@procore/core-react");
11764
11858
  var Row = styled_components_esm_default(import_core_react7.UNSAFE_Menu.Item)`
11765
11859
  width: 100%;
11766
11860
  padding-left: 35px;
@@ -11777,11 +11871,17 @@ var Panel2 = styled_components_esm_default(import_core_react7.DetailPage.Card)`
11777
11871
  padding-top: ${import_core_react7.spacing.sm}px;
11778
11872
  box-shadow: none;
11779
11873
  `;
11874
+
11875
+ // src/components/panels/PanelContent.tsx
11780
11876
  var PanelContent = (props) => {
11877
+ const { queryInput, selectedSavedView, tableConfig } = props;
11781
11878
  const { showToast } = (0, import_toast_alert2.useToastAlertContext)();
11782
- const I18n = (0, import_core_react7.useI18nContext)();
11783
- const { mutate: updateSavedView, isPending: isUpdateLoading } = useUpdateSavedView(props.queryInput);
11784
- const { error: savedViewsError } = useSavedViewsQuery(props.queryInput);
11879
+ const I18n = (0, import_core_react8.useI18nContext)();
11880
+ const { data: savedViewsFromQuery, error: savedViewsError } = useSavedViewsQuery(props.queryInput);
11881
+ const updateMutation = useUpdateSavedView(queryInput);
11882
+ const { mutate: updateSavedView } = updateMutation;
11883
+ const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
11884
+ const savedViews = props.savedViews ?? savedViewsFromQuery;
11785
11885
  const errorToastRef = import_react9.default.useRef(null);
11786
11886
  import_react9.default.useEffect(() => {
11787
11887
  if (savedViewsError && savedViewsError !== errorToastRef.current) {
@@ -11790,12 +11890,16 @@ var PanelContent = (props) => {
11790
11890
  }
11791
11891
  }, [savedViewsError, showToast, I18n]);
11792
11892
  const { data: permissions } = useSavedViewsPermissions(props.queryInput);
11793
- const selectedRowRef = useScrollToRef(props.savedViews);
11893
+ const selectedRowRef = useScrollToRef(savedViews);
11894
+ const { groups, toggleGroup } = useGroups();
11895
+ const isTemporarySelected = selectedSavedView?.id === "temporary";
11896
+ const temporaryView = savedViews?.find((view) => view.id === "temporary");
11897
+ const presetViews = props.presetViews || [props.defaultView];
11794
11898
  const onUpdate = (data) => {
11795
11899
  const newSavedView = {
11796
11900
  ...data,
11797
- ...props.selectedSavedView,
11798
- table_config: props.tableConfig
11901
+ ...selectedSavedView,
11902
+ table_config: tableConfig
11799
11903
  };
11800
11904
  updateSavedView(newSavedView, {
11801
11905
  onSuccess: () => {
@@ -11807,13 +11911,7 @@ var PanelContent = (props) => {
11807
11911
  }
11808
11912
  });
11809
11913
  };
11810
- const { groups, toggleGroup } = useGroups();
11811
- const isDefaultSelected = props.selectedSavedView?.id === "default";
11812
- const isTemporarySelected = props.selectedSavedView?.id === "temporary";
11813
- const temporaryView = props.savedViews?.find(
11814
- (view) => view.id === "temporary"
11815
- );
11816
- return /* @__PURE__ */ import_react9.default.createElement(Panel2, { "data-testid": "inner-panel" }, /* @__PURE__ */ import_react9.default.createElement(import_core_react7.Flex, { direction: "column", style: { height: "100%", width: "100%" } }, temporaryView && /* @__PURE__ */ import_react9.default.createElement(
11914
+ 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 && /* @__PURE__ */ import_react9.default.createElement(
11817
11915
  Row,
11818
11916
  {
11819
11917
  selected: isTemporarySelected,
@@ -11828,23 +11926,27 @@ var PanelContent = (props) => {
11828
11926
  onClearTemporary: props.onClearTemporary
11829
11927
  }
11830
11928
  )
11831
- ), /* @__PURE__ */ import_react9.default.createElement(
11832
- Row,
11833
- {
11834
- selected: isDefaultSelected,
11835
- onClick: () => props.onSelect({ item: props.defaultView }),
11836
- ref: isDefaultSelected ? selectedRowRef : null
11837
- },
11838
- /* @__PURE__ */ import_react9.default.createElement(
11839
- SavedViewCollectionMenuItem,
11929
+ ), presetViews.map((presetView) => {
11930
+ const isSelected = selectedSavedView?.id === presetView.id;
11931
+ return /* @__PURE__ */ import_react9.default.createElement(
11932
+ Row,
11840
11933
  {
11841
- item: props.defaultView,
11842
- selected: isDefaultSelected
11843
- }
11844
- )
11845
- ), VIEW_LEVELS.map((level) => {
11934
+ key: presetView.id,
11935
+ selected: isSelected,
11936
+ onClick: () => props.onSelect({ item: presetView }),
11937
+ ref: isSelected ? selectedRowRef : null
11938
+ },
11939
+ /* @__PURE__ */ import_react9.default.createElement(
11940
+ SavedViewCollectionMenuItem,
11941
+ {
11942
+ item: presetView,
11943
+ selected: isSelected
11944
+ }
11945
+ )
11946
+ );
11947
+ }), VIEW_LEVELS.map((level) => {
11846
11948
  const isExpanded = groups[level];
11847
- const views = isExpanded && props.savedViews ? props.savedViews.filter(
11949
+ const views = isExpanded && savedViews ? savedViews.filter(
11848
11950
  (view) => view.view_level === level && view.id !== "temporary"
11849
11951
  ) : [];
11850
11952
  return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, { key: level }, /* @__PURE__ */ import_react9.default.createElement(
@@ -11855,10 +11957,10 @@ var PanelContent = (props) => {
11855
11957
  expanded: isExpanded
11856
11958
  }
11857
11959
  ), views.map((view) => {
11858
- const isSelected = props.selectedSavedView?.id === view.id;
11960
+ const isSelected = selectedSavedView?.id === view.id;
11859
11961
  const canUpdate = isSelected && hasPermissionForViewLevel(view.view_level, permissions) && !isEqual(
11860
11962
  view.table_config,
11861
- props.tableConfig,
11963
+ tableConfig,
11862
11964
  props.defaultView.table_config,
11863
11965
  props.provider
11864
11966
  );
@@ -11894,81 +11996,22 @@ var PanelContent = (props) => {
11894
11996
  })));
11895
11997
  };
11896
11998
 
11897
- // src/SavedViews/components/SavedViews/SmartGrid/SmartGridSavedViews.tsx
11898
- var import_react15 = __toESM(require("react"));
11899
-
11900
- // src/SavedViews/components/SavedViews/SmartGrid/SmartGridDefaultSavedView.tsx
11901
- var import_core_react8 = require("@procore/core-react");
11902
- var useDefaultViewName = (domain, defaultViewName) => {
11903
- const i18n = (0, import_core_react8.useI18nContext)();
11904
- return defaultViewName || i18n.t(domain, {
11905
- scope: "savedViews.defaultViewTitle",
11906
- defaultValue: "Default View"
11907
- });
11908
- };
11909
- var useDefaultView = (props) => {
11910
- const name = useDefaultViewName(props.domain, props.defaultViewName);
11911
- return {
11912
- id: "default",
11913
- view_level: "default",
11914
- name,
11915
- table_config: {}
11916
- };
11917
- };
11918
-
11919
- // src/SavedViews/components/SavedViews/SmartGrid/useSmartGridConfig.ts
11920
- var import_react10 = require("react");
11921
- var GRID_STATE_EVENTS = [
11922
- "sortChanged",
11923
- "filterOpened",
11924
- "filterChanged",
11925
- "columnRowGroupChanged",
11926
- "dragStopped",
11927
- "columnResized",
11928
- "columnVisible",
11929
- "columnPinned",
11930
- "columnMoved",
11931
- "modelUpdated",
11932
- "gridColumnsChanged",
11933
- "gridReady"
11934
- ];
11935
- var useSmartGridConfig = (gridApi) => {
11936
- const [config, setConfig] = (0, import_react10.useState)(
11937
- () => getSmartGridConfig(gridApi)
11938
- );
11939
- (0, import_react10.useEffect)(() => {
11940
- if (!gridApi)
11941
- return;
11942
- const updateConfig = () => {
11943
- setConfig(getSmartGridConfig(gridApi));
11944
- };
11945
- GRID_STATE_EVENTS.forEach((event) => {
11946
- gridApi.addEventListener(event, updateConfig);
11947
- });
11948
- return () => {
11949
- GRID_STATE_EVENTS.forEach((event) => {
11950
- gridApi.removeEventListener(event, updateConfig);
11951
- });
11952
- };
11953
- }, [gridApi]);
11954
- return { config, setConfig };
11955
- };
11956
-
11957
- // src/SavedViews/components/SavedViews/SavedViews.tsx
11958
- var import_core_react13 = require("@procore/core-react");
11959
- var import_react14 = __toESM(require("react"));
11999
+ // src/components/saved-views/SavedViews.tsx
12000
+ var import_core_react14 = require("@procore/core-react");
12001
+ var import_react13 = __toESM(require("react"));
11960
12002
  var import_react_query3 = require("@tanstack/react-query");
12003
+ var import_toast_alert3 = require("@procore/toast-alert");
11961
12004
 
11962
- // src/SavedViews/components/SavedViewsModals/SavedViewsDeleteConfirmationModalShared.tsx
12005
+ // src/components/modals/DeleteConfirmationModal.tsx
11963
12006
  var import_core_react9 = require("@procore/core-react");
11964
- var import_react11 = __toESM(require("react"));
12007
+ var import_react10 = __toESM(require("react"));
11965
12008
  var SavedViewsDeleteConfirmationModalShared = ({
11966
12009
  onCancel,
11967
12010
  onDelete,
11968
12011
  open
11969
12012
  }) => {
11970
12013
  const i18n = (0, import_core_react9.useI18nContext)();
11971
- return /* @__PURE__ */ import_react11.default.createElement(
12014
+ return /* @__PURE__ */ import_react10.default.createElement(
11972
12015
  import_core_react9.ConfirmModal,
11973
12016
  {
11974
12017
  "data-testid": "delete-confirmation-modal",
@@ -11978,15 +12021,15 @@ var SavedViewsDeleteConfirmationModalShared = ({
11978
12021
  onClose: onCancel,
11979
12022
  style: { overflowWrap: "anywhere" }
11980
12023
  },
11981
- /* @__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"))),
11982
- /* @__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"))))
12024
+ /* @__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"))),
12025
+ /* @__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"))))
11983
12026
  );
11984
12027
  };
11985
12028
 
11986
- // src/SavedViews/components/SavedViewsModals/SavedViewsFormModal.tsx
11987
- var import_react12 = __toESM(require("react"));
12029
+ // src/components/modals/form-modal/FormModal.tsx
12030
+ var import_react11 = __toESM(require("react"));
11988
12031
 
11989
- // src/SavedViews/components/SavedViewsModals/SavedViewsCreateUpdateModalBase.tsx
12032
+ // src/components/modals/form-modal/FormModalBase.tsx
11990
12033
  var import_core_react10 = require("@procore/core-react");
11991
12034
  var React19 = __toESM(require("react"));
11992
12035
 
@@ -14282,7 +14325,7 @@ var TupleSchema = class extends Schema {
14282
14325
  };
14283
14326
  create$1.prototype = TupleSchema.prototype;
14284
14327
 
14285
- // src/SavedViews/components/SavedViewsModals/CreateUpdateModalBaseUtils.ts
14328
+ // src/components/modals/form-modal/FormModalBaseUtils.ts
14286
14329
  var getViewLevelOptions = (permissions, i18n) => {
14287
14330
  const options = ["personal"];
14288
14331
  if (permissions?.can_create_project_saved_views)
@@ -14315,11 +14358,11 @@ function extractMessage(error, I18n) {
14315
14358
  return { form: I18n.t("savedViews.modal.errors.unknown") };
14316
14359
  }
14317
14360
 
14318
- // src/SavedViews/components/SavedViewsModals/SavedViewsCreateUpdateModalBase.tsx
14361
+ // src/components/modals/form-modal/FormModalBase.tsx
14319
14362
  var ScrollContainer = styled_components_esm_default("div")`
14320
14363
  overflow: auto;
14321
14364
  `;
14322
- var SavedViewsCreateUpdateModalBase = ({
14365
+ var FormModalBase = ({
14323
14366
  open,
14324
14367
  mode,
14325
14368
  onCancel,
@@ -14489,9 +14532,9 @@ var SavedViewsCreateUpdateModalBase = ({
14489
14532
  );
14490
14533
  };
14491
14534
 
14492
- // src/SavedViews/components/SavedViewsModals/SavedViewsFormModal.tsx
14535
+ // src/components/modals/form-modal/FormModal.tsx
14493
14536
  var import_core_react11 = require("@procore/core-react");
14494
- var SavedViewsFormModal = ({
14537
+ var FormModal = ({
14495
14538
  open,
14496
14539
  mode,
14497
14540
  onCancel,
@@ -14504,8 +14547,8 @@ var SavedViewsFormModal = ({
14504
14547
  defaultView
14505
14548
  }) => {
14506
14549
  const i18n = (0, import_core_react11.useI18nContext)();
14507
- return /* @__PURE__ */ import_react12.default.createElement(
14508
- SavedViewsCreateUpdateModalBase,
14550
+ return /* @__PURE__ */ import_react11.default.createElement(
14551
+ FormModalBase,
14509
14552
  {
14510
14553
  open,
14511
14554
  mode,
@@ -14524,7 +14567,7 @@ var SavedViewsFormModal = ({
14524
14567
  );
14525
14568
  };
14526
14569
 
14527
- // src/SavedViews/components/SavedViewsModals/SharedViewFormModal.tsx
14570
+ // src/components/modals/form-modal/SharedViewFormModal.tsx
14528
14571
  var import_core_react12 = require("@procore/core-react");
14529
14572
  var React21 = __toESM(require("react"));
14530
14573
  var SharedViewFormModal = ({
@@ -14666,21 +14709,28 @@ var SharedViewFormModal = ({
14666
14709
  );
14667
14710
  };
14668
14711
 
14669
- // src/utils/Hooks/useViewSelection.ts
14670
- var import_react13 = require("react");
14712
+ // src/utils/hooks/useViewSelection.ts
14713
+ var import_react12 = require("react");
14671
14714
  var import_react_router_dom = require("react-router-dom");
14715
+ var import_core_react13 = require("@procore/core-react");
14672
14716
 
14673
14717
  // src/utils/viewStorage.ts
14674
14718
  var ViewStorage = {
14675
14719
  save(key, view) {
14676
14720
  localStorage.setItem(key, JSON.stringify(view));
14677
14721
  },
14678
- load(key) {
14722
+ load(key, defaultView) {
14679
14723
  try {
14680
14724
  const stored = localStorage.getItem(key);
14681
- return stored ? JSON.parse(stored) : null;
14682
- } catch (e2) {
14683
- return null;
14725
+ if (!stored)
14726
+ return defaultView;
14727
+ const parsed = JSON.parse(stored);
14728
+ if (!parsed)
14729
+ return defaultView;
14730
+ const isTableConfigOnly = !parsed.id && !parsed.share_token;
14731
+ return isTableConfigOnly ? { ...defaultView, table_config: parsed } : parsed;
14732
+ } catch {
14733
+ return defaultView;
14684
14734
  }
14685
14735
  },
14686
14736
  remove(key) {
@@ -14688,7 +14738,7 @@ var ViewStorage = {
14688
14738
  }
14689
14739
  };
14690
14740
 
14691
- // src/utils/Hooks/useViewSelection.ts
14741
+ // src/utils/hooks/useViewSelection.ts
14692
14742
  var getUpdatedSearchParams = (currentParams, view) => {
14693
14743
  const updatedParams = new URLSearchParams(currentParams);
14694
14744
  if (view.id === "default") {
@@ -14703,55 +14753,72 @@ var getUpdatedSearchParams = (currentParams, view) => {
14703
14753
  var checkIsViewSelected = (selectedView, viewId) => {
14704
14754
  return selectedView?.share_token === viewId || selectedView?.id === viewId;
14705
14755
  };
14706
- var useViewSelection = (config, savedViews, openSharedViewModal) => {
14707
- const storageKey = `${config.domain}_${config.tableName}_${config.stickyViewsKey}_${config.projectId}_${config.userId}`;
14708
- const temporaryStorageKey = `${storageKey}_temporary`;
14756
+ var findViewByToken = (views, token) => {
14757
+ return views.find((view) => view.share_token === token);
14758
+ };
14759
+ var setViewInUrl = (view, setSearchParams) => {
14760
+ setSearchParams(
14761
+ (currentParams) => getUpdatedSearchParams(currentParams, view),
14762
+ { replace: true }
14763
+ );
14764
+ };
14765
+ var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
14766
+ if (previousParam && !currentParam) {
14767
+ setSearchParams(
14768
+ (currentParams) => {
14769
+ const updatedParams = new URLSearchParams(currentParams);
14770
+ updatedParams.set("saved-view", previousParam);
14771
+ return updatedParams;
14772
+ },
14773
+ { replace: true }
14774
+ );
14775
+ }
14776
+ };
14777
+ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
14778
+ const I18n = (0, import_core_react13.useI18nContext)();
14779
+ const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
14780
+ const temporaryStorageKey = `${storageKey}-temporary`;
14709
14781
  const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
14710
- const previousSavedViewParamRef = (0, import_react13.useRef)(null);
14711
- const [selectedSavedView, setSelectedSavedView] = (0, import_react13.useState)(() => {
14712
- const stored = ViewStorage.load(storageKey);
14782
+ const previousSavedViewParamRef = (0, import_react12.useRef)(null);
14783
+ const [selectedSavedView, setSelectedSavedView] = (0, import_react12.useState)(() => {
14784
+ const stored = ViewStorage.load(storageKey, config.defaultView);
14713
14785
  return stored ?? config.defaultView;
14714
14786
  });
14715
- const [temporaryView, setTemporaryView] = (0, import_react13.useState)(() => {
14716
- return ViewStorage.load(temporaryStorageKey);
14787
+ const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
14788
+ const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
14789
+ return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
14717
14790
  });
14718
- const updateLocalStorage = (0, import_react13.useCallback)(
14791
+ const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
14719
14792
  (view) => {
14720
- if (config.stickyViewsKey) {
14721
- ViewStorage.save(storageKey, view);
14722
- }
14793
+ ViewStorage.save(storageKey, view);
14794
+ setViewInUrl(view, setSearchParams);
14723
14795
  },
14724
- [config.stickyViewsKey, storageKey]
14796
+ [storageKey, setSearchParams]
14725
14797
  );
14726
- const updateUrlForView = (0, import_react13.useCallback)(
14727
- (view) => {
14728
- setSearchParams(
14729
- (currentParams) => {
14730
- return getUpdatedSearchParams(currentParams, view);
14731
- },
14732
- { replace: true }
14733
- );
14734
- },
14735
- [setSearchParams]
14798
+ const baseViews = (0, import_react12.useMemo)(
14799
+ () => [...savedViews ?? [], ...presetViews ?? []],
14800
+ [savedViews, presetViews]
14801
+ );
14802
+ const allViews = (0, import_react12.useMemo)(
14803
+ () => temporaryView ? [...baseViews, temporaryView] : baseViews,
14804
+ [baseViews, temporaryView]
14736
14805
  );
14737
- const baseViews = savedViews ?? [];
14738
- const allViews = temporaryView ? [...baseViews, temporaryView] : baseViews;
14739
- const selectView = (0, import_react13.useCallback)(
14806
+ const selectView = (0, import_react12.useCallback)(
14740
14807
  (view) => {
14741
14808
  const viewToSelect = config.onSelect({ item: view });
14742
14809
  setSelectedSavedView(viewToSelect);
14743
- updateLocalStorage(viewToSelect);
14744
- updateUrlForView(viewToSelect);
14810
+ persistViewToStorageAndUrl(viewToSelect);
14745
14811
  return viewToSelect;
14746
14812
  },
14747
- [config, updateLocalStorage, updateUrlForView]
14813
+ [config, persistViewToStorageAndUrl]
14748
14814
  );
14749
- const createTemporaryView = (0, import_react13.useCallback)(
14815
+ const createTemporaryView = (0, import_react12.useCallback)(
14750
14816
  (fetchedView) => {
14751
14817
  const tempView = {
14752
14818
  ...fetchedView,
14753
14819
  id: "temporary",
14754
- name: "Temporary View"
14820
+ name: I18n.t("savedViews.temporaryViewName"),
14821
+ view_level: "temporary"
14755
14822
  };
14756
14823
  ViewStorage.save(temporaryStorageKey, tempView);
14757
14824
  setTemporaryView(tempView);
@@ -14760,21 +14827,21 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14760
14827
  },
14761
14828
  [temporaryStorageKey, selectView]
14762
14829
  );
14763
- const clearTemporaryView = (0, import_react13.useCallback)(() => {
14830
+ const clearTemporaryView = (0, import_react12.useCallback)(() => {
14764
14831
  ViewStorage.remove(temporaryStorageKey);
14765
14832
  setTemporaryView(null);
14766
14833
  selectView(config.defaultView);
14767
14834
  }, [temporaryStorageKey, config.defaultView, selectView]);
14768
- const isViewAlreadySelected = (0, import_react13.useCallback)(
14835
+ const isViewAlreadySelected = (0, import_react12.useCallback)(
14769
14836
  (viewId) => checkIsViewSelected(selectedSavedView, viewId),
14770
14837
  [selectedSavedView]
14771
14838
  );
14772
- const handleSavedViewFromUrl = (0, import_react13.useCallback)(
14839
+ const handleSavedViewFromUrl = (0, import_react12.useCallback)(
14773
14840
  (viewId) => {
14774
14841
  if (isViewAlreadySelected(viewId)) {
14775
14842
  return;
14776
14843
  }
14777
- const viewInList = allViews.find((view) => view.share_token === viewId);
14844
+ const viewInList = findViewByToken(allViews, viewId);
14778
14845
  if (viewInList) {
14779
14846
  selectView(viewInList);
14780
14847
  } else {
@@ -14783,36 +14850,20 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14783
14850
  },
14784
14851
  [isViewAlreadySelected, openSharedViewModal, allViews, selectView]
14785
14852
  );
14786
- (0, import_react13.useEffect)(() => {
14787
- if (!allViews.length)
14788
- return;
14853
+ (0, import_react12.useEffect)(() => {
14789
14854
  const savedViewId = searchParams.get("saved-view");
14855
+ restoreUrlParameter(
14856
+ savedViewId,
14857
+ previousSavedViewParamRef.current,
14858
+ setSearchParams
14859
+ );
14790
14860
  if (savedViewId) {
14791
- handleSavedViewFromUrl(savedViewId);
14792
- }
14793
- }, [
14794
- searchParams.get("saved-view"),
14795
- savedViews,
14796
- temporaryView,
14797
- handleSavedViewFromUrl,
14798
- allViews.length
14799
- ]);
14800
- (0, import_react13.useEffect)(() => {
14801
- const currentSavedViewParam = searchParams.get("saved-view");
14802
- if (previousSavedViewParamRef.current && !currentSavedViewParam) {
14803
- setSearchParams(
14804
- (currentParams) => {
14805
- const updatedParams = new URLSearchParams(currentParams);
14806
- updatedParams.set("saved-view", previousSavedViewParamRef.current);
14807
- return updatedParams;
14808
- },
14809
- { replace: true }
14810
- );
14861
+ previousSavedViewParamRef.current = savedViewId;
14811
14862
  }
14812
- if (currentSavedViewParam) {
14813
- previousSavedViewParamRef.current = currentSavedViewParam;
14863
+ if (savedViewId && allViews.length > 0) {
14864
+ handleSavedViewFromUrl(savedViewId);
14814
14865
  }
14815
- }, [searchParams.get("saved-view"), setSearchParams]);
14866
+ }, [searchParams, handleSavedViewFromUrl, allViews.length]);
14816
14867
  return {
14817
14868
  selectedView: selectedSavedView,
14818
14869
  selectView,
@@ -14823,7 +14874,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
14823
14874
  };
14824
14875
  };
14825
14876
 
14826
- // src/SavedViews/components/SavedViews/SavedViews.tsx
14877
+ // src/components/saved-views/SavedViews.tsx
14827
14878
  var StyledPanel = styled_components_esm_default.div`
14828
14879
  border: ${({ provider }) => provider === "data-table" ? "1px solid #d6dadc" : "none"};
14829
14880
  `;
@@ -14838,13 +14889,15 @@ var SavedViewsContent = (props) => {
14838
14889
  };
14839
14890
  const { data: savedViews } = useSavedViewsQuery(queryInput);
14840
14891
  const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
14841
- const [activeModal, setActiveModal] = (0, import_react14.useState)(null);
14842
- const [modalData, setModalData] = (0, import_react14.useState)(null);
14892
+ const { showToast } = (0, import_toast_alert3.useToastAlertContext)();
14893
+ const i18n = (0, import_core_react14.useI18nContext)();
14894
+ const [activeModal, setActiveModal] = (0, import_react13.useState)(null);
14895
+ const [modalData, setModalData] = (0, import_react13.useState)(null);
14843
14896
  const openModal = (type, data) => {
14844
14897
  setActiveModal(type);
14845
14898
  setModalData(data ?? null);
14846
14899
  };
14847
- const closeModal = (0, import_react14.useCallback)(() => {
14900
+ const closeModal = (0, import_react13.useCallback)(() => {
14848
14901
  setActiveModal(null);
14849
14902
  setModalData(null);
14850
14903
  }, []);
@@ -14862,13 +14915,14 @@ var SavedViewsContent = (props) => {
14862
14915
  {
14863
14916
  domain: props.domain,
14864
14917
  tableName: props.tableName,
14865
- stickyViewsKey: props.stickyViewsKey,
14866
14918
  userId: props.userId,
14867
14919
  projectId,
14920
+ companyId,
14868
14921
  defaultView: props.defaultView,
14869
14922
  onSelect: props.onSelect
14870
14923
  },
14871
14924
  savedViews,
14925
+ props.presetViews,
14872
14926
  openSharedViewModal
14873
14927
  );
14874
14928
  const { data: fetchedView, isError: fetchError } = useFetchSavedViewById(
@@ -14882,8 +14936,9 @@ var SavedViewsContent = (props) => {
14882
14936
  error: createError,
14883
14937
  reset: resetCreateError
14884
14938
  } = useCreateSavedView(queryInput);
14885
- (0, import_react14.useEffect)(() => {
14939
+ (0, import_react13.useEffect)(() => {
14886
14940
  if (fetchError) {
14941
+ showToast.error(i18n.t("savedViews.errors.notFound"));
14887
14942
  selectView(selectedView ?? props.defaultView);
14888
14943
  closeModal();
14889
14944
  }
@@ -14907,6 +14962,7 @@ var SavedViewsContent = (props) => {
14907
14962
  };
14908
14963
  createSavedView(viewToCreate, {
14909
14964
  onSuccess: (newView) => {
14965
+ showToast.success(i18n.t("savedViews.create.success"));
14910
14966
  selectView(newView);
14911
14967
  closeModal();
14912
14968
  }
@@ -14928,23 +14984,22 @@ var SavedViewsContent = (props) => {
14928
14984
  deleteSelectedView();
14929
14985
  closeModal();
14930
14986
  };
14931
- const i18n = (0, import_core_react13.useI18nContext)();
14932
- return /* @__PURE__ */ import_react14.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react14.default.createElement(
14987
+ return /* @__PURE__ */ import_react13.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react13.default.createElement(
14933
14988
  ExpandedPanel,
14934
14989
  {
14935
14990
  "data-testid": "saved-view-expanded-panel",
14936
14991
  provider: props.provider
14937
14992
  },
14938
- /* @__PURE__ */ import_react14.default.createElement(import_core_react13.Panel.Header, { id: "saved-views-collections-panel-header" }, /* @__PURE__ */ import_react14.default.createElement(import_core_react13.Panel.Title, null, /* @__PURE__ */ import_react14.default.createElement(import_core_react13.Flex, { alignItems: "center" }, /* @__PURE__ */ import_react14.default.createElement(import_core_react13.Box, { paddingRight: "sm" }, i18n.t("savedViews.title")), /* @__PURE__ */ import_react14.default.createElement(import_core_react13.Tooltip, { showDelay: 200, overlay: i18n.t("savedViews.tooltip") }, /* @__PURE__ */ import_react14.default.createElement(Help_default, { size: "sm" })))), /* @__PURE__ */ import_react14.default.createElement(
14939
- import_core_react13.Tooltip,
14993
+ /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Header, { id: "saved-views-collections-panel-header" }, /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Title, null, /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Flex, { alignItems: "center" }, /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Box, { paddingRight: "sm" }, i18n.t("savedViews.title")), /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Tooltip, { showDelay: 200, overlay: i18n.t("savedViews.tooltip") }, /* @__PURE__ */ import_react13.default.createElement(Help_default, { size: "sm" })))), /* @__PURE__ */ import_react13.default.createElement(
14994
+ import_core_react14.Tooltip,
14940
14995
  {
14941
14996
  overlay: i18n.t("savedViews.actions.create"),
14942
14997
  showDelay: 1e3
14943
14998
  },
14944
- /* @__PURE__ */ import_react14.default.createElement("span", null, /* @__PURE__ */ import_react14.default.createElement(
14945
- import_core_react13.Button,
14999
+ /* @__PURE__ */ import_react13.default.createElement("span", null, /* @__PURE__ */ import_react13.default.createElement(
15000
+ import_core_react14.Button,
14946
15001
  {
14947
- icon: /* @__PURE__ */ import_react14.default.createElement(Plus_default, null),
15002
+ icon: /* @__PURE__ */ import_react13.default.createElement(Plus_default, null),
14948
15003
  variant: "secondary",
14949
15004
  "data-testid": "expanded-panel-create-button",
14950
15005
  onClick: () => openModal("create" /* CREATE */),
@@ -14953,7 +15008,7 @@ var SavedViewsContent = (props) => {
14953
15008
  i18n.t("savedViews.actions.create")
14954
15009
  ))
14955
15010
  )),
14956
- /* @__PURE__ */ import_react14.default.createElement(import_core_react13.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react14.default.createElement(
15011
+ /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react13.default.createElement(
14957
15012
  PanelContent,
14958
15013
  {
14959
15014
  onSelect: ({ item }) => selectView(item),
@@ -14963,15 +15018,15 @@ var SavedViewsContent = (props) => {
14963
15018
  selectedSavedView: selectedView,
14964
15019
  tableConfig: props.tableConfig,
14965
15020
  defaultView: props.defaultView,
14966
- stickyViewsKey: props.stickyViewsKey,
15021
+ presetViews: props.presetViews,
14967
15022
  savedViews: allViews,
14968
15023
  provider: props.provider,
14969
15024
  userId: props.userId,
14970
15025
  onClearTemporary: clearTemporaryView
14971
15026
  }
14972
15027
  ))
14973
- ), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react14.default.createElement(
14974
- SavedViewsFormModal,
15028
+ ), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react13.default.createElement(
15029
+ FormModal,
14975
15030
  {
14976
15031
  open: true,
14977
15032
  mode: activeModal,
@@ -14984,14 +15039,14 @@ var SavedViewsContent = (props) => {
14984
15039
  setOpenEditCreateModal: closeModal,
14985
15040
  defaultView: props.defaultView
14986
15041
  }
14987
- ), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react14.default.createElement(
15042
+ ), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react13.default.createElement(
14988
15043
  SavedViewsDeleteConfirmationModalShared,
14989
15044
  {
14990
15045
  open: true,
14991
15046
  onDelete: confirmDeleteAndCloseModal,
14992
15047
  onCancel: closeModal
14993
15048
  }
14994
- ), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react14.default.createElement(
15049
+ ), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react13.default.createElement(
14995
15050
  SharedViewFormModal,
14996
15051
  {
14997
15052
  open: true,
@@ -15006,31 +15061,124 @@ var SavedViewsContent = (props) => {
15006
15061
  ));
15007
15062
  };
15008
15063
  var SavedViews = (props) => {
15009
- return /* @__PURE__ */ import_react14.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react14.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react14.default.createElement(SavedViewsContent, { ...props })));
15064
+ return /* @__PURE__ */ import_react13.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react13.default.createElement(import_toast_alert3.ToastAlertProvider, null, /* @__PURE__ */ import_react13.default.createElement(SavedViewsContent, { ...props }))));
15010
15065
  };
15011
15066
 
15012
- // src/SavedViews/components/SavedViews/SmartGrid/SmartGridSavedViews.tsx
15013
- var import_toast_alert3 = require("@procore/toast-alert");
15014
- var generateStickyViewsKey = (domain, tableName, userId, projectId, companyId) => {
15015
- return `savedView-${domain}-${tableName}-${companyId}-${projectId}-${userId}`;
15067
+ // src/components/adapters/smart-grid/SmartGridSavedViews.tsx
15068
+ var import_react16 = __toESM(require("react"));
15069
+
15070
+ // src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
15071
+ var import_react14 = require("react");
15072
+ var DEFAULT_COLUMN_STATE = {
15073
+ hide: false,
15074
+ pinned: null,
15075
+ width: 200,
15076
+ sort: null,
15077
+ sortIndex: null,
15078
+ pivot: false,
15079
+ pivotIndex: null,
15080
+ aggFunc: null,
15081
+ rowGroup: false,
15082
+ rowGroupIndex: null,
15083
+ flex: null
15084
+ };
15085
+ var getColumnStateFromDefs = (columnDefs) => {
15086
+ return columnDefs.map((colDef) => {
15087
+ const field = colDef.field ?? colDef.colId;
15088
+ if (!field)
15089
+ return null;
15090
+ return {
15091
+ colId: field,
15092
+ hide: colDef.hide ?? false,
15093
+ pinned: colDef.pinned ?? null,
15094
+ width: colDef.width ?? colDef.minWidth ?? DEFAULT_COLUMN_STATE.width,
15095
+ sort: null,
15096
+ sortIndex: null,
15097
+ pivot: false,
15098
+ pivotIndex: null,
15099
+ aggFunc: null,
15100
+ rowGroup: false,
15101
+ rowGroupIndex: null,
15102
+ flex: colDef.flex ?? null
15103
+ };
15104
+ }).filter((col) => col !== null);
15105
+ };
15106
+ var extractDefaultView = (gridApi, receivedConfig) => {
15107
+ const columnDefs = gridApi.getColumnDefs() ?? [];
15108
+ const defaultColumnState = receivedConfig?.columnState?.length ? receivedConfig.columnState : getColumnStateFromDefs(columnDefs);
15109
+ const result = {
15110
+ columnState: defaultColumnState,
15111
+ columnGroupState: receivedConfig?.columnGroupState ?? [],
15112
+ rowGroupState: receivedConfig?.rowGroupState ?? [],
15113
+ filterState: receivedConfig?.filterState ?? {},
15114
+ rowHeight: receivedConfig?.rowHeight ?? gridApi.getSizesForCurrentTheme()?.rowHeight
15115
+ };
15116
+ return result;
15117
+ };
15118
+ var useNormalizedDefaultViews = (defaultViews, gridApi) => {
15119
+ return (0, import_react14.useMemo)(() => {
15120
+ if (!gridApi)
15121
+ return defaultViews.map((view) => ({ ...view, share_token: view.id }));
15122
+ return defaultViews.map((view) => ({
15123
+ ...view,
15124
+ share_token: view.id,
15125
+ table_config: extractDefaultView(gridApi, view.table_config)
15126
+ }));
15127
+ }, [defaultViews, gridApi]);
15016
15128
  };
15129
+
15130
+ // src/components/adapters/smart-grid/useSmartGridConfig.ts
15131
+ var import_react15 = require("react");
15132
+ var GRID_STATE_EVENTS = [
15133
+ "sortChanged",
15134
+ "filterOpened",
15135
+ "filterChanged",
15136
+ "columnRowGroupChanged",
15137
+ "dragStopped",
15138
+ "columnResized",
15139
+ "columnVisible",
15140
+ "columnPinned",
15141
+ "columnMoved",
15142
+ "modelUpdated",
15143
+ "gridColumnsChanged",
15144
+ "gridReady"
15145
+ ];
15146
+ var useSmartGridConfig = (gridApi) => {
15147
+ const [config, setConfig] = (0, import_react15.useState)(
15148
+ () => getSmartGridConfig(gridApi)
15149
+ );
15150
+ (0, import_react15.useEffect)(() => {
15151
+ if (!gridApi)
15152
+ return;
15153
+ const updateConfig = () => {
15154
+ setConfig(getSmartGridConfig(gridApi));
15155
+ };
15156
+ GRID_STATE_EVENTS.forEach((event) => {
15157
+ gridApi.addEventListener(event, updateConfig);
15158
+ });
15159
+ return () => {
15160
+ GRID_STATE_EVENTS.forEach((event) => {
15161
+ gridApi.removeEventListener(event, updateConfig);
15162
+ });
15163
+ };
15164
+ }, [gridApi]);
15165
+ return { config, setConfig };
15166
+ };
15167
+
15168
+ // src/components/adapters/smart-grid/SmartGridSavedViews.tsx
15017
15169
  var SmartGridSavedViews = (props) => {
15018
15170
  const { gridApi, userId, projectId, companyId } = props;
15019
15171
  const { config: tableConfig, setConfig: setTableConfig } = useSmartGridConfig(gridApi);
15020
- const defaultView = useDefaultView({
15021
- defaultViewName: props.defaultViewName,
15022
- domain: props.domain
15023
- });
15024
- const onSelect = (0, import_react15.useCallback)(
15172
+ const presetViews = useNormalizedDefaultViews(props.defaultViews, gridApi);
15173
+ const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
15174
+ const onSelect = (0, import_react16.useCallback)(
15025
15175
  ({ item }) => {
15026
15176
  if (!gridApi)
15027
15177
  return item;
15028
- if (item.id === "default") {
15029
- gridApi.autoSizeAllColumns();
15030
- gridApi.resetColumnState();
15031
- gridApi.setFilterModel(props.defaultViewFilters);
15032
- gridApi.setGridOption("rowHeight", props.defaultRowHeight);
15033
- gridApi.refreshCells();
15178
+ const isPresetView = item.view_level === "default";
15179
+ if (isPresetView) {
15180
+ updateTableConfig(item, gridApi, "smart-grid");
15181
+ setTableConfig(item.table_config);
15034
15182
  return item;
15035
15183
  }
15036
15184
  const updatedView = {
@@ -15044,22 +15192,9 @@ var SmartGridSavedViews = (props) => {
15044
15192
  setTableConfig(updatedView.table_config);
15045
15193
  return updatedView;
15046
15194
  },
15047
- [
15048
- gridApi,
15049
- props.defaultViewFilters,
15050
- props.defaultRowHeight,
15051
- tableConfig,
15052
- setTableConfig
15053
- ]
15054
- );
15055
- const stickyViewsKey = generateStickyViewsKey(
15056
- props.domain,
15057
- props.tableName,
15058
- userId,
15059
- projectId,
15060
- companyId
15195
+ [gridApi, tableConfig, setTableConfig]
15061
15196
  );
15062
- return /* @__PURE__ */ import_react15.default.createElement(import_toast_alert3.ToastAlertProvider, null, /* @__PURE__ */ import_react15.default.createElement(
15197
+ return /* @__PURE__ */ import_react16.default.createElement(
15063
15198
  SavedViews,
15064
15199
  {
15065
15200
  onSelect,
@@ -15069,20 +15204,19 @@ var SmartGridSavedViews = (props) => {
15069
15204
  companyId,
15070
15205
  provider: "smart-grid",
15071
15206
  defaultView,
15207
+ presetViews,
15072
15208
  tableName: props.tableName,
15073
- tableConfig,
15074
- stickyViewsKey
15209
+ tableConfig
15075
15210
  }
15076
- ));
15211
+ );
15077
15212
  };
15078
15213
 
15079
- // src/SavedViews/components/SavedViews/DataTable/DataTableSavedViews.tsx
15080
- var import_react17 = __toESM(require("react"));
15214
+ // src/components/adapters/data-table/DataTableSavedViews.tsx
15215
+ var import_react18 = __toESM(require("react"));
15081
15216
 
15082
- // src/SavedViews/components/SavedViews/DataTable/DataTableDefaultSavedView.tsx
15083
- var import_react16 = require("react");
15084
- var import_core_react14 = require("@procore/core-react");
15085
- var DEFAULT_COLUMN_STATE = {
15217
+ // src/components/adapters/data-table/DataTableDefaultSavedView.tsx
15218
+ var import_react17 = require("react");
15219
+ var DEFAULT_COLUMN_STATE2 = {
15086
15220
  hidden: false,
15087
15221
  pinned: null,
15088
15222
  width: 200,
@@ -15097,7 +15231,7 @@ var getColumnState = (columnDefinitions) => {
15097
15231
  if (column.field.includes("custom_field")) {
15098
15232
  return {
15099
15233
  field: column.field,
15100
- ...DEFAULT_COLUMN_STATE
15234
+ ...DEFAULT_COLUMN_STATE2
15101
15235
  };
15102
15236
  }
15103
15237
  return {
@@ -15108,11 +15242,11 @@ var getColumnState = (columnDefinitions) => {
15108
15242
  rowGroupIndex: null,
15109
15243
  sort: null,
15110
15244
  sortIndex: null,
15111
- width: (column.minWidth ?? DEFAULT_COLUMN_STATE.width) > DEFAULT_COLUMN_STATE.width ? column.minWidth ?? DEFAULT_COLUMN_STATE.width : (column.maxWidth ?? DEFAULT_COLUMN_STATE.width) < DEFAULT_COLUMN_STATE.width ? column.maxWidth ?? DEFAULT_COLUMN_STATE.width : DEFAULT_COLUMN_STATE.width
15245
+ width: (column.minWidth ?? DEFAULT_COLUMN_STATE2.width) > DEFAULT_COLUMN_STATE2.width ? column.minWidth ?? DEFAULT_COLUMN_STATE2.width : (column.maxWidth ?? DEFAULT_COLUMN_STATE2.width) < DEFAULT_COLUMN_STATE2.width ? column.maxWidth ?? DEFAULT_COLUMN_STATE2.width : DEFAULT_COLUMN_STATE2.width
15112
15246
  };
15113
15247
  });
15114
15248
  };
15115
- var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
15249
+ var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
15116
15250
  const defaultColumnState = getColumnState(columnDefinitions);
15117
15251
  const result = {
15118
15252
  columnState: receivedConfigFromTool?.columnState?.length ? receivedConfigFromTool.columnState : defaultColumnState,
@@ -15127,52 +15261,37 @@ var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
15127
15261
  };
15128
15262
  return result;
15129
15263
  };
15130
- var useDefaultViewName2 = (domain, defaultViewName) => {
15131
- const i18n = (0, import_core_react14.useI18nContext)();
15132
- return defaultViewName || i18n.t(domain, {
15133
- scope: "savedViews.defaultViewTitle",
15134
- defaultValue: "Default View"
15135
- });
15136
- };
15137
- var useDefaultView2 = (props) => {
15138
- const name = useDefaultViewName2(props.domain, props.defaultViewName);
15139
- const extractedDefaultConfig = (0, import_react16.useMemo)(
15140
- () => extractDefaultView(props.columnDefinitions, props.receivedConfigFromTool),
15141
- [props.columnDefinitions, props.receivedConfigFromTool]
15264
+ var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
15265
+ return (0, import_react17.useMemo)(
15266
+ () => defaultViews.map((view) => ({
15267
+ ...view,
15268
+ share_token: "",
15269
+ table_config: extractDefaultView2(columnDefinitions, view.table_config)
15270
+ })),
15271
+ [defaultViews, columnDefinitions]
15142
15272
  );
15143
- return {
15144
- id: "default",
15145
- view_level: "default",
15146
- name,
15147
- table_config: extractedDefaultConfig
15148
- };
15149
15273
  };
15150
15274
 
15151
- // src/SavedViews/components/SavedViews/DataTable/DataTableSavedViews.tsx
15152
- var import_toast_alert4 = require("@procore/toast-alert");
15153
- var generateStickyViewsKey2 = (domain, tableName, userId, projectId, companyId) => {
15154
- return `savedView-${domain}-${tableName}-${companyId}-${projectId}-${userId}`;
15155
- };
15156
- var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
15275
+ // src/components/adapters/data-table/DataTableSavedViews.tsx
15276
+ var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
15157
15277
  const { tableApi, userId, projectId, companyId } = props;
15158
- const [internalTableConfig, setInternalTableConfig] = (0, import_react17.useState)(
15159
- props.defaultViewConfig
15278
+ const presetViews = useNormalizedDefaultViews2(
15279
+ props.defaultViews,
15280
+ props.columnDefinitions
15281
+ );
15282
+ const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
15283
+ const [internalTableConfig, setInternalTableConfig] = (0, import_react18.useState)(
15284
+ ViewStorage.load(props.stickyViewsKey, defaultView).table_config
15160
15285
  );
15161
- (0, import_react17.useImperativeHandle)(ref, () => ({
15286
+ (0, import_react18.useImperativeHandle)(ref, () => ({
15162
15287
  setTableConfig: (newConfig) => {
15163
15288
  setInternalTableConfig(newConfig);
15164
15289
  }
15165
15290
  }));
15166
- const defaultView = useDefaultView2({
15167
- defaultViewName: props.defaultViewName,
15168
- receivedConfigFromTool: props.defaultViewConfig,
15169
- domain: props.domain,
15170
- columnDefinitions: props.columnDefinitions
15171
- });
15172
- const onSelect = (0, import_react17.useCallback)(
15291
+ const onSelect = (0, import_react18.useCallback)(
15173
15292
  ({ item }) => {
15174
- const isDefaultView = item.id === "default";
15175
- const updatedView = isDefaultView ? defaultView : {
15293
+ const isPresetView = item.view_level === "default";
15294
+ const updatedView = isPresetView ? item : {
15176
15295
  ...item,
15177
15296
  table_config: customAndConfigSync(
15178
15297
  item.table_config,
@@ -15188,14 +15307,7 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
15188
15307
  if (!internalTableConfig) {
15189
15308
  return null;
15190
15309
  }
15191
- const stickyViewsKey = generateStickyViewsKey2(
15192
- props.domain,
15193
- props.tableName,
15194
- userId,
15195
- projectId,
15196
- companyId
15197
- );
15198
- return /* @__PURE__ */ import_react17.default.createElement(import_toast_alert4.ToastAlertProvider, null, /* @__PURE__ */ import_react17.default.createElement(
15310
+ return /* @__PURE__ */ import_react18.default.createElement(
15199
15311
  SavedViews,
15200
15312
  {
15201
15313
  onSelect,
@@ -15205,21 +15317,22 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
15205
15317
  companyId,
15206
15318
  provider: "data-table",
15207
15319
  defaultView,
15320
+ presetViews,
15208
15321
  tableName: props.tableName,
15209
- tableConfig: internalTableConfig,
15210
- stickyViewsKey
15322
+ tableConfig: internalTableConfig
15211
15323
  }
15212
- ));
15324
+ );
15213
15325
  });
15214
15326
  DataTableSavedViews.displayName = "DataTableSavedViews";
15215
15327
  // Annotate the CommonJS export names for ESM import in node:
15216
15328
  0 && (module.exports = {
15217
15329
  DataTableSavedViews,
15218
15330
  ExpandedPanel,
15331
+ FormModal,
15219
15332
  PanelContent,
15220
15333
  SavedViewCollectionMenuItem,
15334
+ SavedViews,
15221
15335
  SavedViewsDeleteConfirmationModalShared,
15222
- SavedViewsFormModal,
15223
15336
  SmartGridSavedViews,
15224
15337
  getTranslations,
15225
15338
  useSavedViewsPanel