@procore/saved-views 5.1.0-alpha.4 → 5.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/legacy/index.d.mts +61 -40
- package/dist/legacy/index.d.ts +61 -40
- package/dist/legacy/index.js +436 -326
- package/dist/legacy/index.mjs +415 -308
- package/dist/modern/index.d.mts +61 -40
- package/dist/modern/index.d.ts +61 -40
- package/dist/modern/index.js +434 -324
- package/dist/modern/index.mjs +413 -306
- package/package.json +1 -1
package/dist/legacy/index.js
CHANGED
|
@@ -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/
|
|
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/
|
|
9667
|
-
var
|
|
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
|
-
|
|
9683
|
-
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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/
|
|
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) => {
|
|
@@ -11286,7 +11380,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11286
11380
|
},
|
|
11287
11381
|
props.item.name
|
|
11288
11382
|
),
|
|
11289
|
-
/* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(import_core_react3.Box, { justifyContent: "space-between" }, props.item.
|
|
11383
|
+
/* @__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(
|
|
11290
11384
|
import_core_react3.Button,
|
|
11291
11385
|
{
|
|
11292
11386
|
onClick: updateItem,
|
|
@@ -11297,7 +11391,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11297
11391
|
loading: props.isUpdateProcessing
|
|
11298
11392
|
},
|
|
11299
11393
|
i18n.t("savedViews.actions.update")
|
|
11300
|
-
)), props.item.
|
|
11394
|
+
)), props.item.view_level !== "default" && props.selected && !props.canUpdate && props.item.id !== "temporary" && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
|
|
11301
11395
|
import_core_react3.Button,
|
|
11302
11396
|
{
|
|
11303
11397
|
onClick: copyShareLink,
|
|
@@ -11306,7 +11400,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11306
11400
|
"aria-label": i18n.t("savedViews.actions.copyShareLink"),
|
|
11307
11401
|
"data-testid": "copy-share-link-button"
|
|
11308
11402
|
},
|
|
11309
|
-
/* @__PURE__ */ React15.createElement(Link_default, { size: "sm" })
|
|
11403
|
+
/* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Link_default, { size: "sm" }))
|
|
11310
11404
|
)), props.item.id === "temporary" && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
|
|
11311
11405
|
import_core_react3.Button,
|
|
11312
11406
|
{
|
|
@@ -11321,8 +11415,8 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11321
11415
|
title: i18n.t("savedViews.actions.clearTemporary"),
|
|
11322
11416
|
"data-testid": "clear-temporary-view-button"
|
|
11323
11417
|
},
|
|
11324
|
-
/* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" })
|
|
11325
|
-
))), /* @__PURE__ */ React15.createElement(import_core_react3.Box, null, props.item.
|
|
11418
|
+
/* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" }))
|
|
11419
|
+
))), /* @__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(
|
|
11326
11420
|
import_core_react3.DropdownFlyout,
|
|
11327
11421
|
{
|
|
11328
11422
|
"data-testid": "saved-view-overflow-button",
|
|
@@ -11337,7 +11431,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11337
11431
|
);
|
|
11338
11432
|
};
|
|
11339
11433
|
|
|
11340
|
-
// src/
|
|
11434
|
+
// src/components/panels/ExpandedPanel.tsx
|
|
11341
11435
|
var import_core_react4 = require("@procore/core-react");
|
|
11342
11436
|
var ExpandedPanel = styled_components_esm_default(import_core_react4.Panel)`
|
|
11343
11437
|
width: ${({ provider }) => provider === "data-table" ? "316px" : "100%"};
|
|
@@ -11345,8 +11439,8 @@ var ExpandedPanel = styled_components_esm_default(import_core_react4.Panel)`
|
|
|
11345
11439
|
border-radius: 4px 0 0 4px;
|
|
11346
11440
|
`;
|
|
11347
11441
|
|
|
11348
|
-
// src/
|
|
11349
|
-
var
|
|
11442
|
+
// src/components/panels/PanelContent.tsx
|
|
11443
|
+
var import_core_react8 = require("@procore/core-react");
|
|
11350
11444
|
var import_toast_alert2 = require("@procore/toast-alert");
|
|
11351
11445
|
var import_react9 = __toESM(require("react"));
|
|
11352
11446
|
|
|
@@ -11392,10 +11486,10 @@ function requestJSON(url, requestParams = {}) {
|
|
|
11392
11486
|
);
|
|
11393
11487
|
}
|
|
11394
11488
|
|
|
11395
|
-
// src/utils/
|
|
11489
|
+
// src/utils/api/queries.ts
|
|
11396
11490
|
var import_react_query2 = require("@tanstack/react-query");
|
|
11397
11491
|
|
|
11398
|
-
// src/utils/
|
|
11492
|
+
// src/utils/api/queriesHandler.ts
|
|
11399
11493
|
var import_react_query = require("@tanstack/react-query");
|
|
11400
11494
|
var import_core_react5 = require("@procore/core-react");
|
|
11401
11495
|
var useApiRequest = (props, method, mutationKey) => {
|
|
@@ -11460,10 +11554,10 @@ var useApiRequest = (props, method, mutationKey) => {
|
|
|
11460
11554
|
});
|
|
11461
11555
|
};
|
|
11462
11556
|
|
|
11463
|
-
// src/utils/
|
|
11557
|
+
// src/utils/constants/viewLevels.ts
|
|
11464
11558
|
var VIEW_LEVELS = ["company", "project", "personal"];
|
|
11465
11559
|
|
|
11466
|
-
// src/utils/
|
|
11560
|
+
// src/utils/api/queries.ts
|
|
11467
11561
|
var PAGE_SIZE = 50 * VIEW_LEVELS.length;
|
|
11468
11562
|
var useSavedViewsQuery = (props) => {
|
|
11469
11563
|
const { projectId, companyId, domain, tableName } = props;
|
|
@@ -11516,24 +11610,23 @@ var useFetchSavedViewById = (savedViewToken, queryInput, enabled = true) => {
|
|
|
11516
11610
|
});
|
|
11517
11611
|
};
|
|
11518
11612
|
|
|
11519
|
-
// src/
|
|
11613
|
+
// src/components/panels/PanelContentUtils.ts
|
|
11520
11614
|
var import_lodash = __toESM(require_lodash());
|
|
11521
11615
|
|
|
11522
|
-
// src/
|
|
11616
|
+
// src/components/adapters/smart-grid/SmartGridUtils.ts
|
|
11523
11617
|
function getSmartGridConfig(api) {
|
|
11524
|
-
const
|
|
11525
|
-
const
|
|
11526
|
-
const
|
|
11527
|
-
const
|
|
11528
|
-
const
|
|
11529
|
-
|
|
11530
|
-
columnState
|
|
11531
|
-
rowHeight
|
|
11532
|
-
columnGroupState
|
|
11533
|
-
rowGroupState
|
|
11534
|
-
filterState
|
|
11618
|
+
const columnState = api.getColumnState();
|
|
11619
|
+
const columnGroupState = api.getColumnGroupState();
|
|
11620
|
+
const rowGroupState = api.getRowGroupColumns().map((col) => col.getColId());
|
|
11621
|
+
const rowHeight = api.getGridOption("rowHeight") ?? api.getSizesForCurrentTheme().rowHeight;
|
|
11622
|
+
const filterState = api.getFilterModel();
|
|
11623
|
+
return {
|
|
11624
|
+
columnState,
|
|
11625
|
+
rowHeight,
|
|
11626
|
+
columnGroupState,
|
|
11627
|
+
rowGroupState,
|
|
11628
|
+
filterState
|
|
11535
11629
|
};
|
|
11536
|
-
return smartGridConfig;
|
|
11537
11630
|
}
|
|
11538
11631
|
function setSmartGridConfig(api, config) {
|
|
11539
11632
|
api.applyColumnState({
|
|
@@ -11548,7 +11641,7 @@ function setSmartGridConfig(api, config) {
|
|
|
11548
11641
|
}
|
|
11549
11642
|
}
|
|
11550
11643
|
|
|
11551
|
-
// src/
|
|
11644
|
+
// src/components/saved-views/SavedViewsUtils.ts
|
|
11552
11645
|
var customAndConfigSync = (viewTableConfig, defaultTableConfig) => {
|
|
11553
11646
|
if (!viewTableConfig && !defaultTableConfig)
|
|
11554
11647
|
return void 0;
|
|
@@ -11607,7 +11700,7 @@ var updateTableConfig = (view, tableApi, provider) => {
|
|
|
11607
11700
|
}
|
|
11608
11701
|
};
|
|
11609
11702
|
|
|
11610
|
-
// src/
|
|
11703
|
+
// src/components/panels/PanelContentUtils.ts
|
|
11611
11704
|
var getOrderedVisibleColumns = (columns, idKey) => {
|
|
11612
11705
|
if (!columns)
|
|
11613
11706
|
return [];
|
|
@@ -11702,7 +11795,7 @@ var hasPermissionForViewLevel = (viewLevel, permissions) => {
|
|
|
11702
11795
|
}
|
|
11703
11796
|
};
|
|
11704
11797
|
|
|
11705
|
-
// src/
|
|
11798
|
+
// src/components/panels/useGroups.ts
|
|
11706
11799
|
var import_react6 = require("react");
|
|
11707
11800
|
var useGroups = () => {
|
|
11708
11801
|
const [groups, setGroups] = (0, import_react6.useState)(
|
|
@@ -11714,7 +11807,7 @@ var useGroups = () => {
|
|
|
11714
11807
|
return { groups, toggleGroup };
|
|
11715
11808
|
};
|
|
11716
11809
|
|
|
11717
|
-
// src/
|
|
11810
|
+
// src/components/panels/ViewLevelHeader.tsx
|
|
11718
11811
|
var import_core_react6 = require("@procore/core-react");
|
|
11719
11812
|
var import_react7 = __toESM(require("react"));
|
|
11720
11813
|
var groupIcon = (group) => {
|
|
@@ -11751,7 +11844,7 @@ var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
|
|
|
11751
11844
|
};
|
|
11752
11845
|
var ViewLevelHeader_default = ViewLevelHeader;
|
|
11753
11846
|
|
|
11754
|
-
// src/utils/
|
|
11847
|
+
// src/utils/hooks/useScrollToRef.ts
|
|
11755
11848
|
var import_react8 = require("react");
|
|
11756
11849
|
var useScrollToRef = (dependency) => {
|
|
11757
11850
|
const ref = (0, import_react8.useRef)(null);
|
|
@@ -11763,7 +11856,8 @@ var useScrollToRef = (dependency) => {
|
|
|
11763
11856
|
return ref;
|
|
11764
11857
|
};
|
|
11765
11858
|
|
|
11766
|
-
// src/
|
|
11859
|
+
// src/components/panels/PanelContent.styles.ts
|
|
11860
|
+
var import_core_react7 = require("@procore/core-react");
|
|
11767
11861
|
var Row = styled_components_esm_default(import_core_react7.UNSAFE_Menu.Item)`
|
|
11768
11862
|
width: 100%;
|
|
11769
11863
|
padding-left: 35px;
|
|
@@ -11780,12 +11874,15 @@ var Panel2 = styled_components_esm_default(import_core_react7.DetailPage.Card)`
|
|
|
11780
11874
|
padding-top: ${import_core_react7.spacing.sm}px;
|
|
11781
11875
|
box-shadow: none;
|
|
11782
11876
|
`;
|
|
11877
|
+
|
|
11878
|
+
// src/components/panels/PanelContent.tsx
|
|
11783
11879
|
var PanelContent = (props) => {
|
|
11784
|
-
|
|
11880
|
+
const { queryInput, selectedSavedView, tableConfig } = props;
|
|
11785
11881
|
const { showToast } = (0, import_toast_alert2.useToastAlertContext)();
|
|
11786
|
-
const I18n = (0,
|
|
11787
|
-
const {
|
|
11788
|
-
const {
|
|
11882
|
+
const I18n = (0, import_core_react8.useI18nContext)();
|
|
11883
|
+
const { data: savedViewsFromQuery, error: savedViewsError } = useSavedViewsQuery(props.queryInput);
|
|
11884
|
+
const { mutate: updateSavedView, isPending: isUpdateLoading } = useUpdateSavedView(queryInput);
|
|
11885
|
+
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11789
11886
|
const errorToastRef = import_react9.default.useRef(null);
|
|
11790
11887
|
import_react9.default.useEffect(() => {
|
|
11791
11888
|
if (savedViewsError && savedViewsError !== errorToastRef.current) {
|
|
@@ -11794,12 +11891,16 @@ var PanelContent = (props) => {
|
|
|
11794
11891
|
}
|
|
11795
11892
|
}, [savedViewsError, showToast, I18n]);
|
|
11796
11893
|
const { data: permissions } = useSavedViewsPermissions(props.queryInput);
|
|
11797
|
-
const selectedRowRef = useScrollToRef(
|
|
11894
|
+
const selectedRowRef = useScrollToRef(savedViews);
|
|
11895
|
+
const { groups, toggleGroup } = useGroups();
|
|
11896
|
+
const isTemporarySelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === "temporary";
|
|
11897
|
+
const temporaryView = savedViews == null ? void 0 : savedViews.find((view) => view.id === "temporary");
|
|
11898
|
+
const presetViews = props.presetViews || [props.defaultView];
|
|
11798
11899
|
const onUpdate = (data) => {
|
|
11799
11900
|
const newSavedView = {
|
|
11800
11901
|
...data,
|
|
11801
|
-
...
|
|
11802
|
-
table_config:
|
|
11902
|
+
...selectedSavedView,
|
|
11903
|
+
table_config: tableConfig
|
|
11803
11904
|
};
|
|
11804
11905
|
updateSavedView(newSavedView, {
|
|
11805
11906
|
onSuccess: () => {
|
|
@@ -11811,13 +11912,7 @@ var PanelContent = (props) => {
|
|
|
11811
11912
|
}
|
|
11812
11913
|
});
|
|
11813
11914
|
};
|
|
11814
|
-
|
|
11815
|
-
const isDefaultSelected = ((_a = props.selectedSavedView) == null ? void 0 : _a.id) === "default";
|
|
11816
|
-
const isTemporarySelected = ((_b = props.selectedSavedView) == null ? void 0 : _b.id) === "temporary";
|
|
11817
|
-
const temporaryView = (_c = props.savedViews) == null ? void 0 : _c.find(
|
|
11818
|
-
(view) => view.id === "temporary"
|
|
11819
|
-
);
|
|
11820
|
-
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(
|
|
11915
|
+
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(
|
|
11821
11916
|
Row,
|
|
11822
11917
|
{
|
|
11823
11918
|
selected: isTemporarySelected,
|
|
@@ -11832,23 +11927,27 @@ var PanelContent = (props) => {
|
|
|
11832
11927
|
onClearTemporary: props.onClearTemporary
|
|
11833
11928
|
}
|
|
11834
11929
|
)
|
|
11835
|
-
),
|
|
11836
|
-
|
|
11837
|
-
|
|
11838
|
-
|
|
11839
|
-
onClick: () => props.onSelect({ item: props.defaultView }),
|
|
11840
|
-
ref: isDefaultSelected ? selectedRowRef : null
|
|
11841
|
-
},
|
|
11842
|
-
/* @__PURE__ */ import_react9.default.createElement(
|
|
11843
|
-
SavedViewCollectionMenuItem,
|
|
11930
|
+
), presetViews.map((presetView) => {
|
|
11931
|
+
const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === presetView.id;
|
|
11932
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
11933
|
+
Row,
|
|
11844
11934
|
{
|
|
11845
|
-
|
|
11846
|
-
selected:
|
|
11847
|
-
|
|
11848
|
-
|
|
11849
|
-
|
|
11935
|
+
key: presetView.id,
|
|
11936
|
+
selected: isSelected,
|
|
11937
|
+
onClick: () => props.onSelect({ item: presetView }),
|
|
11938
|
+
ref: isSelected ? selectedRowRef : null
|
|
11939
|
+
},
|
|
11940
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
11941
|
+
SavedViewCollectionMenuItem,
|
|
11942
|
+
{
|
|
11943
|
+
item: presetView,
|
|
11944
|
+
selected: isSelected
|
|
11945
|
+
}
|
|
11946
|
+
)
|
|
11947
|
+
);
|
|
11948
|
+
}), VIEW_LEVELS.map((level) => {
|
|
11850
11949
|
const isExpanded = groups[level];
|
|
11851
|
-
const views = isExpanded &&
|
|
11950
|
+
const views = isExpanded && savedViews ? savedViews.filter(
|
|
11852
11951
|
(view) => view.view_level === level && view.id !== "temporary"
|
|
11853
11952
|
) : [];
|
|
11854
11953
|
return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, { key: level }, /* @__PURE__ */ import_react9.default.createElement(
|
|
@@ -11859,11 +11958,10 @@ var PanelContent = (props) => {
|
|
|
11859
11958
|
expanded: isExpanded
|
|
11860
11959
|
}
|
|
11861
11960
|
), views.map((view) => {
|
|
11862
|
-
|
|
11863
|
-
const isSelected = ((_a2 = props.selectedSavedView) == null ? void 0 : _a2.id) === view.id;
|
|
11961
|
+
const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === view.id;
|
|
11864
11962
|
const canUpdate = isSelected && hasPermissionForViewLevel(view.view_level, permissions) && !isEqual(
|
|
11865
11963
|
view.table_config,
|
|
11866
|
-
|
|
11964
|
+
tableConfig,
|
|
11867
11965
|
props.defaultView.table_config,
|
|
11868
11966
|
props.provider
|
|
11869
11967
|
);
|
|
@@ -11899,81 +11997,22 @@ var PanelContent = (props) => {
|
|
|
11899
11997
|
})));
|
|
11900
11998
|
};
|
|
11901
11999
|
|
|
11902
|
-
// src/
|
|
11903
|
-
var
|
|
11904
|
-
|
|
11905
|
-
// src/SavedViews/components/SavedViews/SmartGrid/SmartGridDefaultSavedView.tsx
|
|
11906
|
-
var import_core_react8 = require("@procore/core-react");
|
|
11907
|
-
var useDefaultViewName = (domain, defaultViewName) => {
|
|
11908
|
-
const i18n = (0, import_core_react8.useI18nContext)();
|
|
11909
|
-
return defaultViewName || i18n.t(domain, {
|
|
11910
|
-
scope: "savedViews.defaultViewTitle",
|
|
11911
|
-
defaultValue: "Default View"
|
|
11912
|
-
});
|
|
11913
|
-
};
|
|
11914
|
-
var useDefaultView = (props) => {
|
|
11915
|
-
const name = useDefaultViewName(props.domain, props.defaultViewName);
|
|
11916
|
-
return {
|
|
11917
|
-
id: "default",
|
|
11918
|
-
view_level: "default",
|
|
11919
|
-
name,
|
|
11920
|
-
table_config: {}
|
|
11921
|
-
};
|
|
11922
|
-
};
|
|
11923
|
-
|
|
11924
|
-
// src/SavedViews/components/SavedViews/SmartGrid/useSmartGridConfig.ts
|
|
11925
|
-
var import_react10 = require("react");
|
|
11926
|
-
var GRID_STATE_EVENTS = [
|
|
11927
|
-
"sortChanged",
|
|
11928
|
-
"filterOpened",
|
|
11929
|
-
"filterChanged",
|
|
11930
|
-
"columnRowGroupChanged",
|
|
11931
|
-
"dragStopped",
|
|
11932
|
-
"columnResized",
|
|
11933
|
-
"columnVisible",
|
|
11934
|
-
"columnPinned",
|
|
11935
|
-
"columnMoved",
|
|
11936
|
-
"modelUpdated",
|
|
11937
|
-
"gridColumnsChanged",
|
|
11938
|
-
"gridReady"
|
|
11939
|
-
];
|
|
11940
|
-
var useSmartGridConfig = (gridApi) => {
|
|
11941
|
-
const [config, setConfig] = (0, import_react10.useState)(
|
|
11942
|
-
() => getSmartGridConfig(gridApi)
|
|
11943
|
-
);
|
|
11944
|
-
(0, import_react10.useEffect)(() => {
|
|
11945
|
-
if (!gridApi)
|
|
11946
|
-
return;
|
|
11947
|
-
const updateConfig = () => {
|
|
11948
|
-
setConfig(getSmartGridConfig(gridApi));
|
|
11949
|
-
};
|
|
11950
|
-
GRID_STATE_EVENTS.forEach((event) => {
|
|
11951
|
-
gridApi.addEventListener(event, updateConfig);
|
|
11952
|
-
});
|
|
11953
|
-
return () => {
|
|
11954
|
-
GRID_STATE_EVENTS.forEach((event) => {
|
|
11955
|
-
gridApi.removeEventListener(event, updateConfig);
|
|
11956
|
-
});
|
|
11957
|
-
};
|
|
11958
|
-
}, [gridApi]);
|
|
11959
|
-
return { config, setConfig };
|
|
11960
|
-
};
|
|
11961
|
-
|
|
11962
|
-
// src/SavedViews/components/SavedViews/SavedViews.tsx
|
|
11963
|
-
var import_core_react13 = require("@procore/core-react");
|
|
11964
|
-
var import_react14 = __toESM(require("react"));
|
|
12000
|
+
// src/components/saved-views/SavedViews.tsx
|
|
12001
|
+
var import_core_react14 = require("@procore/core-react");
|
|
12002
|
+
var import_react13 = __toESM(require("react"));
|
|
11965
12003
|
var import_react_query3 = require("@tanstack/react-query");
|
|
12004
|
+
var import_toast_alert3 = require("@procore/toast-alert");
|
|
11966
12005
|
|
|
11967
|
-
// src/
|
|
12006
|
+
// src/components/modals/DeleteConfirmationModal.tsx
|
|
11968
12007
|
var import_core_react9 = require("@procore/core-react");
|
|
11969
|
-
var
|
|
12008
|
+
var import_react10 = __toESM(require("react"));
|
|
11970
12009
|
var SavedViewsDeleteConfirmationModalShared = ({
|
|
11971
12010
|
onCancel,
|
|
11972
12011
|
onDelete,
|
|
11973
12012
|
open
|
|
11974
12013
|
}) => {
|
|
11975
12014
|
const i18n = (0, import_core_react9.useI18nContext)();
|
|
11976
|
-
return /* @__PURE__ */
|
|
12015
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
11977
12016
|
import_core_react9.ConfirmModal,
|
|
11978
12017
|
{
|
|
11979
12018
|
"data-testid": "delete-confirmation-modal",
|
|
@@ -11983,15 +12022,15 @@ var SavedViewsDeleteConfirmationModalShared = ({
|
|
|
11983
12022
|
onClose: onCancel,
|
|
11984
12023
|
style: { overflowWrap: "anywhere" }
|
|
11985
12024
|
},
|
|
11986
|
-
/* @__PURE__ */
|
|
11987
|
-
/* @__PURE__ */
|
|
12025
|
+
/* @__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"))),
|
|
12026
|
+
/* @__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"))))
|
|
11988
12027
|
);
|
|
11989
12028
|
};
|
|
11990
12029
|
|
|
11991
|
-
// src/
|
|
11992
|
-
var
|
|
12030
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
12031
|
+
var import_react11 = __toESM(require("react"));
|
|
11993
12032
|
|
|
11994
|
-
// src/
|
|
12033
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
11995
12034
|
var import_core_react10 = require("@procore/core-react");
|
|
11996
12035
|
var React19 = __toESM(require("react"));
|
|
11997
12036
|
|
|
@@ -14287,7 +14326,7 @@ var TupleSchema = class extends Schema {
|
|
|
14287
14326
|
};
|
|
14288
14327
|
create$1.prototype = TupleSchema.prototype;
|
|
14289
14328
|
|
|
14290
|
-
// src/
|
|
14329
|
+
// src/components/modals/form-modal/FormModalBaseUtils.ts
|
|
14291
14330
|
var getViewLevelOptions = (permissions, i18n) => {
|
|
14292
14331
|
const options = ["personal"];
|
|
14293
14332
|
if (permissions == null ? void 0 : permissions.can_create_project_saved_views)
|
|
@@ -14320,11 +14359,11 @@ function extractMessage(error, I18n) {
|
|
|
14320
14359
|
return { form: I18n.t("savedViews.modal.errors.unknown") };
|
|
14321
14360
|
}
|
|
14322
14361
|
|
|
14323
|
-
// src/
|
|
14362
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
14324
14363
|
var ScrollContainer = styled_components_esm_default("div")`
|
|
14325
14364
|
overflow: auto;
|
|
14326
14365
|
`;
|
|
14327
|
-
var
|
|
14366
|
+
var FormModalBase = ({
|
|
14328
14367
|
open,
|
|
14329
14368
|
mode,
|
|
14330
14369
|
onCancel,
|
|
@@ -14494,9 +14533,9 @@ var SavedViewsCreateUpdateModalBase = ({
|
|
|
14494
14533
|
);
|
|
14495
14534
|
};
|
|
14496
14535
|
|
|
14497
|
-
// src/
|
|
14536
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
14498
14537
|
var import_core_react11 = require("@procore/core-react");
|
|
14499
|
-
var
|
|
14538
|
+
var FormModal = ({
|
|
14500
14539
|
open,
|
|
14501
14540
|
mode,
|
|
14502
14541
|
onCancel,
|
|
@@ -14509,8 +14548,8 @@ var SavedViewsFormModal = ({
|
|
|
14509
14548
|
defaultView
|
|
14510
14549
|
}) => {
|
|
14511
14550
|
const i18n = (0, import_core_react11.useI18nContext)();
|
|
14512
|
-
return /* @__PURE__ */
|
|
14513
|
-
|
|
14551
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
14552
|
+
FormModalBase,
|
|
14514
14553
|
{
|
|
14515
14554
|
open,
|
|
14516
14555
|
mode,
|
|
@@ -14529,7 +14568,7 @@ var SavedViewsFormModal = ({
|
|
|
14529
14568
|
);
|
|
14530
14569
|
};
|
|
14531
14570
|
|
|
14532
|
-
// src/
|
|
14571
|
+
// src/components/modals/form-modal/SharedViewFormModal.tsx
|
|
14533
14572
|
var import_core_react12 = require("@procore/core-react");
|
|
14534
14573
|
var React21 = __toESM(require("react"));
|
|
14535
14574
|
var SharedViewFormModal = ({
|
|
@@ -14671,21 +14710,25 @@ var SharedViewFormModal = ({
|
|
|
14671
14710
|
);
|
|
14672
14711
|
};
|
|
14673
14712
|
|
|
14674
|
-
// src/
|
|
14675
|
-
var
|
|
14713
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14714
|
+
var import_toast_alert4 = require("@procore/toast-alert");
|
|
14715
|
+
|
|
14716
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14717
|
+
var import_react12 = require("react");
|
|
14676
14718
|
var import_react_router_dom = require("react-router-dom");
|
|
14719
|
+
var import_core_react13 = require("@procore/core-react");
|
|
14677
14720
|
|
|
14678
14721
|
// src/utils/viewStorage.ts
|
|
14679
14722
|
var ViewStorage = {
|
|
14680
14723
|
save(key, view) {
|
|
14681
14724
|
localStorage.setItem(key, JSON.stringify(view));
|
|
14682
14725
|
},
|
|
14683
|
-
load(key) {
|
|
14726
|
+
load(key, defaultView) {
|
|
14684
14727
|
try {
|
|
14685
14728
|
const stored = localStorage.getItem(key);
|
|
14686
14729
|
return stored ? JSON.parse(stored) : null;
|
|
14687
14730
|
} catch (e2) {
|
|
14688
|
-
return
|
|
14731
|
+
return defaultView;
|
|
14689
14732
|
}
|
|
14690
14733
|
},
|
|
14691
14734
|
remove(key) {
|
|
@@ -14693,7 +14736,7 @@ var ViewStorage = {
|
|
|
14693
14736
|
}
|
|
14694
14737
|
};
|
|
14695
14738
|
|
|
14696
|
-
// src/utils/
|
|
14739
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14697
14740
|
var getUpdatedSearchParams = (currentParams, view) => {
|
|
14698
14741
|
const updatedParams = new URLSearchParams(currentParams);
|
|
14699
14742
|
if (view.id === "default") {
|
|
@@ -14708,55 +14751,68 @@ var getUpdatedSearchParams = (currentParams, view) => {
|
|
|
14708
14751
|
var checkIsViewSelected = (selectedView, viewId) => {
|
|
14709
14752
|
return (selectedView == null ? void 0 : selectedView.share_token) === viewId || (selectedView == null ? void 0 : selectedView.id) === viewId;
|
|
14710
14753
|
};
|
|
14754
|
+
var findViewByToken = (views, token) => {
|
|
14755
|
+
return views.find((view) => view.share_token === token);
|
|
14756
|
+
};
|
|
14757
|
+
var setViewInUrl = (view, setSearchParams) => {
|
|
14758
|
+
setSearchParams(
|
|
14759
|
+
(currentParams) => getUpdatedSearchParams(currentParams, view),
|
|
14760
|
+
{ replace: true }
|
|
14761
|
+
);
|
|
14762
|
+
};
|
|
14763
|
+
var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
14764
|
+
if (previousParam && !currentParam) {
|
|
14765
|
+
setSearchParams(
|
|
14766
|
+
(currentParams) => {
|
|
14767
|
+
const updatedParams = new URLSearchParams(currentParams);
|
|
14768
|
+
updatedParams.set("saved-view", previousParam);
|
|
14769
|
+
return updatedParams;
|
|
14770
|
+
},
|
|
14771
|
+
{ replace: true }
|
|
14772
|
+
);
|
|
14773
|
+
}
|
|
14774
|
+
};
|
|
14711
14775
|
var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
14712
|
-
const
|
|
14713
|
-
const
|
|
14776
|
+
const I18n = (0, import_core_react13.useI18nContext)();
|
|
14777
|
+
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14778
|
+
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
14714
14779
|
const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
|
|
14715
|
-
const previousSavedViewParamRef = (0,
|
|
14716
|
-
const [selectedSavedView, setSelectedSavedView] = (0,
|
|
14717
|
-
const stored = ViewStorage.load(storageKey);
|
|
14780
|
+
const previousSavedViewParamRef = (0, import_react12.useRef)(null);
|
|
14781
|
+
const [selectedSavedView, setSelectedSavedView] = (0, import_react12.useState)(() => {
|
|
14782
|
+
const stored = ViewStorage.load(storageKey, config.defaultView);
|
|
14718
14783
|
return stored ?? config.defaultView;
|
|
14719
14784
|
});
|
|
14720
|
-
const [temporaryView, setTemporaryView] = (0,
|
|
14721
|
-
return ViewStorage.load(temporaryStorageKey);
|
|
14785
|
+
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14786
|
+
return ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14722
14787
|
});
|
|
14723
|
-
const
|
|
14788
|
+
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14724
14789
|
(view) => {
|
|
14725
|
-
|
|
14726
|
-
|
|
14727
|
-
}
|
|
14790
|
+
ViewStorage.save(storageKey, view);
|
|
14791
|
+
setViewInUrl(view, setSearchParams);
|
|
14728
14792
|
},
|
|
14729
|
-
[
|
|
14730
|
-
);
|
|
14731
|
-
const updateUrlForView = (0, import_react13.useCallback)(
|
|
14732
|
-
(view) => {
|
|
14733
|
-
setSearchParams(
|
|
14734
|
-
(currentParams) => {
|
|
14735
|
-
return getUpdatedSearchParams(currentParams, view);
|
|
14736
|
-
},
|
|
14737
|
-
{ replace: true }
|
|
14738
|
-
);
|
|
14739
|
-
},
|
|
14740
|
-
[setSearchParams]
|
|
14793
|
+
[storageKey, setSearchParams]
|
|
14741
14794
|
);
|
|
14742
14795
|
const baseViews = savedViews ?? [];
|
|
14743
|
-
const allViews =
|
|
14744
|
-
|
|
14796
|
+
const allViews = (0, import_react12.useMemo)(
|
|
14797
|
+
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14798
|
+
[baseViews, temporaryView]
|
|
14799
|
+
);
|
|
14800
|
+
const selectView = (0, import_react12.useCallback)(
|
|
14745
14801
|
(view) => {
|
|
14746
14802
|
const viewToSelect = config.onSelect({ item: view });
|
|
14747
14803
|
setSelectedSavedView(viewToSelect);
|
|
14748
|
-
|
|
14749
|
-
updateUrlForView(viewToSelect);
|
|
14804
|
+
persistViewToStorageAndUrl(viewToSelect);
|
|
14750
14805
|
return viewToSelect;
|
|
14751
14806
|
},
|
|
14752
|
-
[config,
|
|
14807
|
+
[config, persistViewToStorageAndUrl, temporaryView, temporaryStorageKey]
|
|
14753
14808
|
);
|
|
14754
|
-
const createTemporaryView = (0,
|
|
14809
|
+
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14755
14810
|
(fetchedView) => {
|
|
14756
14811
|
const tempView = {
|
|
14757
14812
|
...fetchedView,
|
|
14758
14813
|
id: "temporary",
|
|
14759
|
-
name: "
|
|
14814
|
+
name: I18n.t("savedViews.temporaryViewName"),
|
|
14815
|
+
view_level: "temporary"
|
|
14760
14816
|
};
|
|
14761
14817
|
ViewStorage.save(temporaryStorageKey, tempView);
|
|
14762
14818
|
setTemporaryView(tempView);
|
|
@@ -14765,21 +14821,21 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14765
14821
|
},
|
|
14766
14822
|
[temporaryStorageKey, selectView]
|
|
14767
14823
|
);
|
|
14768
|
-
const clearTemporaryView = (0,
|
|
14824
|
+
const clearTemporaryView = (0, import_react12.useCallback)(() => {
|
|
14769
14825
|
ViewStorage.remove(temporaryStorageKey);
|
|
14770
14826
|
setTemporaryView(null);
|
|
14771
14827
|
selectView(config.defaultView);
|
|
14772
14828
|
}, [temporaryStorageKey, config.defaultView, selectView]);
|
|
14773
|
-
const isViewAlreadySelected = (0,
|
|
14829
|
+
const isViewAlreadySelected = (0, import_react12.useCallback)(
|
|
14774
14830
|
(viewId) => checkIsViewSelected(selectedSavedView, viewId),
|
|
14775
14831
|
[selectedSavedView]
|
|
14776
14832
|
);
|
|
14777
|
-
const handleSavedViewFromUrl = (0,
|
|
14833
|
+
const handleSavedViewFromUrl = (0, import_react12.useCallback)(
|
|
14778
14834
|
(viewId) => {
|
|
14779
14835
|
if (isViewAlreadySelected(viewId)) {
|
|
14780
14836
|
return;
|
|
14781
14837
|
}
|
|
14782
|
-
const viewInList = allViews
|
|
14838
|
+
const viewInList = findViewByToken(allViews, viewId);
|
|
14783
14839
|
if (viewInList) {
|
|
14784
14840
|
selectView(viewInList);
|
|
14785
14841
|
} else {
|
|
@@ -14788,36 +14844,27 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14788
14844
|
},
|
|
14789
14845
|
[isViewAlreadySelected, openSharedViewModal, allViews, selectView]
|
|
14790
14846
|
);
|
|
14791
|
-
(0,
|
|
14792
|
-
if (!allViews.length)
|
|
14793
|
-
return;
|
|
14847
|
+
(0, import_react12.useEffect)(() => {
|
|
14794
14848
|
const savedViewId = searchParams.get("saved-view");
|
|
14849
|
+
restoreUrlParameter(
|
|
14850
|
+
savedViewId,
|
|
14851
|
+
previousSavedViewParamRef.current,
|
|
14852
|
+
setSearchParams
|
|
14853
|
+
);
|
|
14795
14854
|
if (savedViewId) {
|
|
14855
|
+
previousSavedViewParamRef.current = savedViewId;
|
|
14856
|
+
}
|
|
14857
|
+
if (savedViewId && allViews.length > 0) {
|
|
14796
14858
|
handleSavedViewFromUrl(savedViewId);
|
|
14797
14859
|
}
|
|
14798
14860
|
}, [
|
|
14799
|
-
searchParams
|
|
14861
|
+
searchParams,
|
|
14800
14862
|
savedViews,
|
|
14801
14863
|
temporaryView,
|
|
14802
14864
|
handleSavedViewFromUrl,
|
|
14865
|
+
setSearchParams,
|
|
14803
14866
|
allViews.length
|
|
14804
14867
|
]);
|
|
14805
|
-
(0, import_react13.useEffect)(() => {
|
|
14806
|
-
const currentSavedViewParam = searchParams.get("saved-view");
|
|
14807
|
-
if (previousSavedViewParamRef.current && !currentSavedViewParam) {
|
|
14808
|
-
setSearchParams(
|
|
14809
|
-
(currentParams) => {
|
|
14810
|
-
const updatedParams = new URLSearchParams(currentParams);
|
|
14811
|
-
updatedParams.set("saved-view", previousSavedViewParamRef.current);
|
|
14812
|
-
return updatedParams;
|
|
14813
|
-
},
|
|
14814
|
-
{ replace: true }
|
|
14815
|
-
);
|
|
14816
|
-
}
|
|
14817
|
-
if (currentSavedViewParam) {
|
|
14818
|
-
previousSavedViewParamRef.current = currentSavedViewParam;
|
|
14819
|
-
}
|
|
14820
|
-
}, [searchParams.get("saved-view"), setSearchParams]);
|
|
14821
14868
|
return {
|
|
14822
14869
|
selectedView: selectedSavedView,
|
|
14823
14870
|
selectView,
|
|
@@ -14828,7 +14875,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14828
14875
|
};
|
|
14829
14876
|
};
|
|
14830
14877
|
|
|
14831
|
-
// src/
|
|
14878
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14832
14879
|
var StyledPanel = styled_components_esm_default.div`
|
|
14833
14880
|
border: ${({ provider }) => provider === "data-table" ? "1px solid #d6dadc" : "none"};
|
|
14834
14881
|
`;
|
|
@@ -14843,13 +14890,15 @@ var SavedViewsContent = (props) => {
|
|
|
14843
14890
|
};
|
|
14844
14891
|
const { data: savedViews } = useSavedViewsQuery(queryInput);
|
|
14845
14892
|
const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
|
|
14846
|
-
const
|
|
14847
|
-
const
|
|
14893
|
+
const { showToast } = (0, import_toast_alert3.useToastAlertContext)();
|
|
14894
|
+
const i18n = (0, import_core_react14.useI18nContext)();
|
|
14895
|
+
const [activeModal, setActiveModal] = (0, import_react13.useState)(null);
|
|
14896
|
+
const [modalData, setModalData] = (0, import_react13.useState)(null);
|
|
14848
14897
|
const openModal = (type, data) => {
|
|
14849
14898
|
setActiveModal(type);
|
|
14850
14899
|
setModalData(data ?? null);
|
|
14851
14900
|
};
|
|
14852
|
-
const closeModal = (0,
|
|
14901
|
+
const closeModal = (0, import_react13.useCallback)(() => {
|
|
14853
14902
|
setActiveModal(null);
|
|
14854
14903
|
setModalData(null);
|
|
14855
14904
|
}, []);
|
|
@@ -14867,9 +14916,9 @@ var SavedViewsContent = (props) => {
|
|
|
14867
14916
|
{
|
|
14868
14917
|
domain: props.domain,
|
|
14869
14918
|
tableName: props.tableName,
|
|
14870
|
-
stickyViewsKey: props.stickyViewsKey,
|
|
14871
14919
|
userId: props.userId,
|
|
14872
14920
|
projectId,
|
|
14921
|
+
companyId,
|
|
14873
14922
|
defaultView: props.defaultView,
|
|
14874
14923
|
onSelect: props.onSelect
|
|
14875
14924
|
},
|
|
@@ -14887,8 +14936,9 @@ var SavedViewsContent = (props) => {
|
|
|
14887
14936
|
error: createError,
|
|
14888
14937
|
reset: resetCreateError
|
|
14889
14938
|
} = useCreateSavedView(queryInput);
|
|
14890
|
-
(0,
|
|
14939
|
+
(0, import_react13.useEffect)(() => {
|
|
14891
14940
|
if (fetchError) {
|
|
14941
|
+
showToast.error(i18n.t("savedViews.errors.notFound"));
|
|
14892
14942
|
selectView(selectedView ?? props.defaultView);
|
|
14893
14943
|
closeModal();
|
|
14894
14944
|
}
|
|
@@ -14912,6 +14962,7 @@ var SavedViewsContent = (props) => {
|
|
|
14912
14962
|
};
|
|
14913
14963
|
createSavedView(viewToCreate, {
|
|
14914
14964
|
onSuccess: (newView) => {
|
|
14965
|
+
showToast.success(i18n.t("savedViews.create.success"));
|
|
14915
14966
|
selectView(newView);
|
|
14916
14967
|
closeModal();
|
|
14917
14968
|
}
|
|
@@ -14933,23 +14984,22 @@ var SavedViewsContent = (props) => {
|
|
|
14933
14984
|
deleteSelectedView();
|
|
14934
14985
|
closeModal();
|
|
14935
14986
|
};
|
|
14936
|
-
|
|
14937
|
-
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(
|
|
14938
14988
|
ExpandedPanel,
|
|
14939
14989
|
{
|
|
14940
14990
|
"data-testid": "saved-view-expanded-panel",
|
|
14941
14991
|
provider: props.provider
|
|
14942
14992
|
},
|
|
14943
|
-
/* @__PURE__ */
|
|
14944
|
-
|
|
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,
|
|
14945
14995
|
{
|
|
14946
14996
|
overlay: i18n.t("savedViews.actions.create"),
|
|
14947
14997
|
showDelay: 1e3
|
|
14948
14998
|
},
|
|
14949
|
-
/* @__PURE__ */
|
|
14950
|
-
|
|
14999
|
+
/* @__PURE__ */ import_react13.default.createElement("span", null, /* @__PURE__ */ import_react13.default.createElement(
|
|
15000
|
+
import_core_react14.Button,
|
|
14951
15001
|
{
|
|
14952
|
-
icon: /* @__PURE__ */
|
|
15002
|
+
icon: /* @__PURE__ */ import_react13.default.createElement(Plus_default, null),
|
|
14953
15003
|
variant: "secondary",
|
|
14954
15004
|
"data-testid": "expanded-panel-create-button",
|
|
14955
15005
|
onClick: () => openModal("create" /* CREATE */),
|
|
@@ -14958,7 +15008,7 @@ var SavedViewsContent = (props) => {
|
|
|
14958
15008
|
i18n.t("savedViews.actions.create")
|
|
14959
15009
|
))
|
|
14960
15010
|
)),
|
|
14961
|
-
/* @__PURE__ */
|
|
15011
|
+
/* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14962
15012
|
PanelContent,
|
|
14963
15013
|
{
|
|
14964
15014
|
onSelect: ({ item }) => selectView(item),
|
|
@@ -14968,15 +15018,15 @@ var SavedViewsContent = (props) => {
|
|
|
14968
15018
|
selectedSavedView: selectedView,
|
|
14969
15019
|
tableConfig: props.tableConfig,
|
|
14970
15020
|
defaultView: props.defaultView,
|
|
14971
|
-
|
|
15021
|
+
presetViews: props.presetViews,
|
|
14972
15022
|
savedViews: allViews,
|
|
14973
15023
|
provider: props.provider,
|
|
14974
15024
|
userId: props.userId,
|
|
14975
15025
|
onClearTemporary: clearTemporaryView
|
|
14976
15026
|
}
|
|
14977
15027
|
))
|
|
14978
|
-
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */
|
|
14979
|
-
|
|
15028
|
+
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15029
|
+
FormModal,
|
|
14980
15030
|
{
|
|
14981
15031
|
open: true,
|
|
14982
15032
|
mode: activeModal,
|
|
@@ -14989,14 +15039,14 @@ var SavedViewsContent = (props) => {
|
|
|
14989
15039
|
setOpenEditCreateModal: closeModal,
|
|
14990
15040
|
defaultView: props.defaultView
|
|
14991
15041
|
}
|
|
14992
|
-
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */
|
|
15042
|
+
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14993
15043
|
SavedViewsDeleteConfirmationModalShared,
|
|
14994
15044
|
{
|
|
14995
15045
|
open: true,
|
|
14996
15046
|
onDelete: confirmDeleteAndCloseModal,
|
|
14997
15047
|
onCancel: closeModal
|
|
14998
15048
|
}
|
|
14999
|
-
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */
|
|
15049
|
+
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15000
15050
|
SharedViewFormModal,
|
|
15001
15051
|
{
|
|
15002
15052
|
open: true,
|
|
@@ -15011,31 +15061,125 @@ var SavedViewsContent = (props) => {
|
|
|
15011
15061
|
));
|
|
15012
15062
|
};
|
|
15013
15063
|
var SavedViews = (props) => {
|
|
15014
|
-
return /* @__PURE__ */
|
|
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_alert4.ToastAlertProvider, null, /* @__PURE__ */ import_react13.default.createElement(SavedViewsContent, { ...props }))));
|
|
15015
15065
|
};
|
|
15016
15066
|
|
|
15017
|
-
// src/
|
|
15018
|
-
var
|
|
15019
|
-
|
|
15020
|
-
|
|
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
|
|
15021
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
|
+
var _a, _b;
|
|
15108
|
+
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15109
|
+
const defaultColumnState = getColumnStateFromDefs(columnDefs);
|
|
15110
|
+
const result = {
|
|
15111
|
+
columnState: ((_a = receivedConfig == null ? void 0 : receivedConfig.columnState) == null ? void 0 : _a.length) ? receivedConfig.columnState : defaultColumnState,
|
|
15112
|
+
columnGroupState: (receivedConfig == null ? void 0 : receivedConfig.columnGroupState) ?? [],
|
|
15113
|
+
rowGroupState: (receivedConfig == null ? void 0 : receivedConfig.rowGroupState) ?? [],
|
|
15114
|
+
filterState: (receivedConfig == null ? void 0 : receivedConfig.filterState) ?? {},
|
|
15115
|
+
rowHeight: (receivedConfig == null ? void 0 : receivedConfig.rowHeight) ?? ((_b = gridApi.getSizesForCurrentTheme()) == null ? void 0 : _b.rowHeight)
|
|
15116
|
+
};
|
|
15117
|
+
return result;
|
|
15118
|
+
};
|
|
15119
|
+
var useNormalizedDefaultViews = (defaultViews, gridApi) => {
|
|
15120
|
+
return (0, import_react14.useMemo)(() => {
|
|
15121
|
+
if (!gridApi)
|
|
15122
|
+
return defaultViews.map((view) => ({ ...view, share_token: view.id }));
|
|
15123
|
+
return defaultViews.map((view) => ({
|
|
15124
|
+
...view,
|
|
15125
|
+
share_token: view.id,
|
|
15126
|
+
table_config: extractDefaultView(gridApi, view.table_config)
|
|
15127
|
+
}));
|
|
15128
|
+
}, [defaultViews, gridApi]);
|
|
15129
|
+
};
|
|
15130
|
+
|
|
15131
|
+
// src/components/adapters/smart-grid/useSmartGridConfig.ts
|
|
15132
|
+
var import_react15 = require("react");
|
|
15133
|
+
var GRID_STATE_EVENTS = [
|
|
15134
|
+
"sortChanged",
|
|
15135
|
+
"filterOpened",
|
|
15136
|
+
"filterChanged",
|
|
15137
|
+
"columnRowGroupChanged",
|
|
15138
|
+
"dragStopped",
|
|
15139
|
+
"columnResized",
|
|
15140
|
+
"columnVisible",
|
|
15141
|
+
"columnPinned",
|
|
15142
|
+
"columnMoved",
|
|
15143
|
+
"modelUpdated",
|
|
15144
|
+
"gridColumnsChanged",
|
|
15145
|
+
"gridReady"
|
|
15146
|
+
];
|
|
15147
|
+
var useSmartGridConfig = (gridApi) => {
|
|
15148
|
+
const [config, setConfig] = (0, import_react15.useState)(
|
|
15149
|
+
() => getSmartGridConfig(gridApi)
|
|
15150
|
+
);
|
|
15151
|
+
(0, import_react15.useEffect)(() => {
|
|
15152
|
+
if (!gridApi)
|
|
15153
|
+
return;
|
|
15154
|
+
const updateConfig = () => {
|
|
15155
|
+
setConfig(getSmartGridConfig(gridApi));
|
|
15156
|
+
};
|
|
15157
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15158
|
+
gridApi.addEventListener(event, updateConfig);
|
|
15159
|
+
});
|
|
15160
|
+
return () => {
|
|
15161
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15162
|
+
gridApi.removeEventListener(event, updateConfig);
|
|
15163
|
+
});
|
|
15164
|
+
};
|
|
15165
|
+
}, [gridApi]);
|
|
15166
|
+
return { config, setConfig };
|
|
15167
|
+
};
|
|
15168
|
+
|
|
15169
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15022
15170
|
var SmartGridSavedViews = (props) => {
|
|
15023
15171
|
const { gridApi, userId, projectId, companyId } = props;
|
|
15024
15172
|
const { config: tableConfig, setConfig: setTableConfig } = useSmartGridConfig(gridApi);
|
|
15025
|
-
const
|
|
15026
|
-
|
|
15027
|
-
|
|
15028
|
-
});
|
|
15029
|
-
const onSelect = (0, import_react15.useCallback)(
|
|
15173
|
+
const presetViews = useNormalizedDefaultViews(props.defaultViews, gridApi);
|
|
15174
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15175
|
+
const onSelect = (0, import_react16.useCallback)(
|
|
15030
15176
|
({ item }) => {
|
|
15031
15177
|
if (!gridApi)
|
|
15032
15178
|
return item;
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
gridApi
|
|
15036
|
-
|
|
15037
|
-
gridApi.setGridOption("rowHeight", props.defaultRowHeight);
|
|
15038
|
-
gridApi.refreshCells();
|
|
15179
|
+
const isPresetView = item.view_level === "default";
|
|
15180
|
+
if (isPresetView) {
|
|
15181
|
+
updateTableConfig(item, gridApi, "smart-grid");
|
|
15182
|
+
setTableConfig(item.table_config);
|
|
15039
15183
|
return item;
|
|
15040
15184
|
}
|
|
15041
15185
|
const updatedView = {
|
|
@@ -15049,22 +15193,9 @@ var SmartGridSavedViews = (props) => {
|
|
|
15049
15193
|
setTableConfig(updatedView.table_config);
|
|
15050
15194
|
return updatedView;
|
|
15051
15195
|
},
|
|
15052
|
-
[
|
|
15053
|
-
gridApi,
|
|
15054
|
-
props.defaultViewFilters,
|
|
15055
|
-
props.defaultRowHeight,
|
|
15056
|
-
tableConfig,
|
|
15057
|
-
setTableConfig
|
|
15058
|
-
]
|
|
15059
|
-
);
|
|
15060
|
-
const stickyViewsKey = generateStickyViewsKey(
|
|
15061
|
-
props.domain,
|
|
15062
|
-
props.tableName,
|
|
15063
|
-
userId,
|
|
15064
|
-
projectId,
|
|
15065
|
-
companyId
|
|
15196
|
+
[gridApi, tableConfig, setTableConfig]
|
|
15066
15197
|
);
|
|
15067
|
-
return /* @__PURE__ */
|
|
15198
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
15068
15199
|
SavedViews,
|
|
15069
15200
|
{
|
|
15070
15201
|
onSelect,
|
|
@@ -15074,20 +15205,19 @@ var SmartGridSavedViews = (props) => {
|
|
|
15074
15205
|
companyId,
|
|
15075
15206
|
provider: "smart-grid",
|
|
15076
15207
|
defaultView,
|
|
15208
|
+
presetViews,
|
|
15077
15209
|
tableName: props.tableName,
|
|
15078
|
-
tableConfig
|
|
15079
|
-
stickyViewsKey
|
|
15210
|
+
tableConfig
|
|
15080
15211
|
}
|
|
15081
|
-
)
|
|
15212
|
+
);
|
|
15082
15213
|
};
|
|
15083
15214
|
|
|
15084
|
-
// src/
|
|
15085
|
-
var
|
|
15215
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15216
|
+
var import_react18 = __toESM(require("react"));
|
|
15086
15217
|
|
|
15087
|
-
// src/
|
|
15088
|
-
var
|
|
15089
|
-
var
|
|
15090
|
-
var DEFAULT_COLUMN_STATE = {
|
|
15218
|
+
// src/components/adapters/data-table/DataTableDefaultSavedView.tsx
|
|
15219
|
+
var import_react17 = require("react");
|
|
15220
|
+
var DEFAULT_COLUMN_STATE2 = {
|
|
15091
15221
|
hidden: false,
|
|
15092
15222
|
pinned: null,
|
|
15093
15223
|
width: 200,
|
|
@@ -15102,7 +15232,7 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15102
15232
|
if (column.field.includes("custom_field")) {
|
|
15103
15233
|
return {
|
|
15104
15234
|
field: column.field,
|
|
15105
|
-
...
|
|
15235
|
+
...DEFAULT_COLUMN_STATE2
|
|
15106
15236
|
};
|
|
15107
15237
|
}
|
|
15108
15238
|
return {
|
|
@@ -15113,11 +15243,11 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15113
15243
|
rowGroupIndex: null,
|
|
15114
15244
|
sort: null,
|
|
15115
15245
|
sortIndex: null,
|
|
15116
|
-
width: (column.minWidth ??
|
|
15246
|
+
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
|
|
15117
15247
|
};
|
|
15118
15248
|
});
|
|
15119
15249
|
};
|
|
15120
|
-
var
|
|
15250
|
+
var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
|
|
15121
15251
|
var _a, _b, _c;
|
|
15122
15252
|
const defaultColumnState = getColumnState(columnDefinitions);
|
|
15123
15253
|
const result = {
|
|
@@ -15133,52 +15263,38 @@ var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
|
|
|
15133
15263
|
};
|
|
15134
15264
|
return result;
|
|
15135
15265
|
};
|
|
15136
|
-
var
|
|
15137
|
-
|
|
15138
|
-
|
|
15139
|
-
|
|
15140
|
-
|
|
15141
|
-
|
|
15142
|
-
}
|
|
15143
|
-
|
|
15144
|
-
const name = useDefaultViewName2(props.domain, props.defaultViewName);
|
|
15145
|
-
const extractedDefaultConfig = (0, import_react16.useMemo)(
|
|
15146
|
-
() => extractDefaultView(props.columnDefinitions, props.receivedConfigFromTool),
|
|
15147
|
-
[props.columnDefinitions, props.receivedConfigFromTool]
|
|
15266
|
+
var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
|
|
15267
|
+
return (0, import_react17.useMemo)(
|
|
15268
|
+
() => defaultViews.map((view) => ({
|
|
15269
|
+
...view,
|
|
15270
|
+
share_token: "",
|
|
15271
|
+
table_config: extractDefaultView2(columnDefinitions, view.table_config)
|
|
15272
|
+
})),
|
|
15273
|
+
[defaultViews, columnDefinitions]
|
|
15148
15274
|
);
|
|
15149
|
-
return {
|
|
15150
|
-
id: "default",
|
|
15151
|
-
view_level: "default",
|
|
15152
|
-
name,
|
|
15153
|
-
table_config: extractedDefaultConfig
|
|
15154
|
-
};
|
|
15155
15275
|
};
|
|
15156
15276
|
|
|
15157
|
-
// src/
|
|
15158
|
-
var
|
|
15159
|
-
var
|
|
15160
|
-
return `savedView-${domain}-${tableName}-${companyId}-${projectId}-${userId}`;
|
|
15161
|
-
};
|
|
15162
|
-
var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
15277
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15278
|
+
var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
|
|
15279
|
+
var _a;
|
|
15163
15280
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15164
|
-
const
|
|
15165
|
-
props.
|
|
15281
|
+
const presetViews = useNormalizedDefaultViews2(
|
|
15282
|
+
props.defaultViews,
|
|
15283
|
+
props.columnDefinitions
|
|
15284
|
+
);
|
|
15285
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15286
|
+
const [internalTableConfig, setInternalTableConfig] = (0, import_react18.useState)(
|
|
15287
|
+
((_a = ViewStorage.load(props.stickyViewsKey, defaultView)) == null ? void 0 : _a.table_config) ?? defaultView.table_config
|
|
15166
15288
|
);
|
|
15167
|
-
(0,
|
|
15289
|
+
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15168
15290
|
setTableConfig: (newConfig) => {
|
|
15169
15291
|
setInternalTableConfig(newConfig);
|
|
15170
15292
|
}
|
|
15171
15293
|
}));
|
|
15172
|
-
const
|
|
15173
|
-
defaultViewName: props.defaultViewName,
|
|
15174
|
-
receivedConfigFromTool: props.defaultViewConfig,
|
|
15175
|
-
domain: props.domain,
|
|
15176
|
-
columnDefinitions: props.columnDefinitions
|
|
15177
|
-
});
|
|
15178
|
-
const onSelect = (0, import_react17.useCallback)(
|
|
15294
|
+
const onSelect = (0, import_react18.useCallback)(
|
|
15179
15295
|
({ item }) => {
|
|
15180
|
-
const
|
|
15181
|
-
const updatedView =
|
|
15296
|
+
const isPresetView = item.view_level === "default";
|
|
15297
|
+
const updatedView = isPresetView ? item : {
|
|
15182
15298
|
...item,
|
|
15183
15299
|
table_config: customAndConfigSync(
|
|
15184
15300
|
item.table_config,
|
|
@@ -15194,14 +15310,7 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15194
15310
|
if (!internalTableConfig) {
|
|
15195
15311
|
return null;
|
|
15196
15312
|
}
|
|
15197
|
-
|
|
15198
|
-
props.domain,
|
|
15199
|
-
props.tableName,
|
|
15200
|
-
userId,
|
|
15201
|
-
projectId,
|
|
15202
|
-
companyId
|
|
15203
|
-
);
|
|
15204
|
-
return /* @__PURE__ */ import_react17.default.createElement(import_toast_alert4.ToastAlertProvider, null, /* @__PURE__ */ import_react17.default.createElement(
|
|
15313
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
15205
15314
|
SavedViews,
|
|
15206
15315
|
{
|
|
15207
15316
|
onSelect,
|
|
@@ -15211,21 +15320,22 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15211
15320
|
companyId,
|
|
15212
15321
|
provider: "data-table",
|
|
15213
15322
|
defaultView,
|
|
15323
|
+
presetViews,
|
|
15214
15324
|
tableName: props.tableName,
|
|
15215
|
-
tableConfig: internalTableConfig
|
|
15216
|
-
stickyViewsKey
|
|
15325
|
+
tableConfig: internalTableConfig
|
|
15217
15326
|
}
|
|
15218
|
-
)
|
|
15327
|
+
);
|
|
15219
15328
|
});
|
|
15220
15329
|
DataTableSavedViews.displayName = "DataTableSavedViews";
|
|
15221
15330
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15222
15331
|
0 && (module.exports = {
|
|
15223
15332
|
DataTableSavedViews,
|
|
15224
15333
|
ExpandedPanel,
|
|
15334
|
+
FormModal,
|
|
15225
15335
|
PanelContent,
|
|
15226
15336
|
SavedViewCollectionMenuItem,
|
|
15337
|
+
SavedViews,
|
|
15227
15338
|
SavedViewsDeleteConfirmationModalShared,
|
|
15228
|
-
SavedViewsFormModal,
|
|
15229
15339
|
SmartGridSavedViews,
|
|
15230
15340
|
getTranslations,
|
|
15231
15341
|
useSavedViewsPanel
|