@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.
- package/dist/legacy/index.d.mts +61 -40
- package/dist/legacy/index.d.ts +61 -40
- package/dist/legacy/index.js +447 -335
- package/dist/legacy/index.mjs +426 -317
- package/dist/modern/index.d.mts +61 -40
- package/dist/modern/index.d.ts +61 -40
- package/dist/modern/index.js +446 -333
- package/dist/modern/index.mjs +425 -315
- 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,17 @@ 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 updateMutation = useUpdateSavedView(queryInput);
|
|
11885
|
+
const { mutate: updateSavedView } = updateMutation;
|
|
11886
|
+
const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
|
|
11887
|
+
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11789
11888
|
const errorToastRef = import_react9.default.useRef(null);
|
|
11790
11889
|
import_react9.default.useEffect(() => {
|
|
11791
11890
|
if (savedViewsError && savedViewsError !== errorToastRef.current) {
|
|
@@ -11794,12 +11893,16 @@ var PanelContent = (props) => {
|
|
|
11794
11893
|
}
|
|
11795
11894
|
}, [savedViewsError, showToast, I18n]);
|
|
11796
11895
|
const { data: permissions } = useSavedViewsPermissions(props.queryInput);
|
|
11797
|
-
const selectedRowRef = useScrollToRef(
|
|
11896
|
+
const selectedRowRef = useScrollToRef(savedViews);
|
|
11897
|
+
const { groups, toggleGroup } = useGroups();
|
|
11898
|
+
const isTemporarySelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === "temporary";
|
|
11899
|
+
const temporaryView = savedViews == null ? void 0 : savedViews.find((view) => view.id === "temporary");
|
|
11900
|
+
const presetViews = props.presetViews || [props.defaultView];
|
|
11798
11901
|
const onUpdate = (data) => {
|
|
11799
11902
|
const newSavedView = {
|
|
11800
11903
|
...data,
|
|
11801
|
-
...
|
|
11802
|
-
table_config:
|
|
11904
|
+
...selectedSavedView,
|
|
11905
|
+
table_config: tableConfig
|
|
11803
11906
|
};
|
|
11804
11907
|
updateSavedView(newSavedView, {
|
|
11805
11908
|
onSuccess: () => {
|
|
@@ -11811,13 +11914,7 @@ var PanelContent = (props) => {
|
|
|
11811
11914
|
}
|
|
11812
11915
|
});
|
|
11813
11916
|
};
|
|
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(
|
|
11917
|
+
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
11918
|
Row,
|
|
11822
11919
|
{
|
|
11823
11920
|
selected: isTemporarySelected,
|
|
@@ -11832,23 +11929,27 @@ var PanelContent = (props) => {
|
|
|
11832
11929
|
onClearTemporary: props.onClearTemporary
|
|
11833
11930
|
}
|
|
11834
11931
|
)
|
|
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,
|
|
11932
|
+
), presetViews.map((presetView) => {
|
|
11933
|
+
const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === presetView.id;
|
|
11934
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
11935
|
+
Row,
|
|
11844
11936
|
{
|
|
11845
|
-
|
|
11846
|
-
selected:
|
|
11847
|
-
|
|
11848
|
-
|
|
11849
|
-
|
|
11937
|
+
key: presetView.id,
|
|
11938
|
+
selected: isSelected,
|
|
11939
|
+
onClick: () => props.onSelect({ item: presetView }),
|
|
11940
|
+
ref: isSelected ? selectedRowRef : null
|
|
11941
|
+
},
|
|
11942
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
11943
|
+
SavedViewCollectionMenuItem,
|
|
11944
|
+
{
|
|
11945
|
+
item: presetView,
|
|
11946
|
+
selected: isSelected
|
|
11947
|
+
}
|
|
11948
|
+
)
|
|
11949
|
+
);
|
|
11950
|
+
}), VIEW_LEVELS.map((level) => {
|
|
11850
11951
|
const isExpanded = groups[level];
|
|
11851
|
-
const views = isExpanded &&
|
|
11952
|
+
const views = isExpanded && savedViews ? savedViews.filter(
|
|
11852
11953
|
(view) => view.view_level === level && view.id !== "temporary"
|
|
11853
11954
|
) : [];
|
|
11854
11955
|
return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, { key: level }, /* @__PURE__ */ import_react9.default.createElement(
|
|
@@ -11859,11 +11960,10 @@ var PanelContent = (props) => {
|
|
|
11859
11960
|
expanded: isExpanded
|
|
11860
11961
|
}
|
|
11861
11962
|
), views.map((view) => {
|
|
11862
|
-
|
|
11863
|
-
const isSelected = ((_a2 = props.selectedSavedView) == null ? void 0 : _a2.id) === view.id;
|
|
11963
|
+
const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === view.id;
|
|
11864
11964
|
const canUpdate = isSelected && hasPermissionForViewLevel(view.view_level, permissions) && !isEqual(
|
|
11865
11965
|
view.table_config,
|
|
11866
|
-
|
|
11966
|
+
tableConfig,
|
|
11867
11967
|
props.defaultView.table_config,
|
|
11868
11968
|
props.provider
|
|
11869
11969
|
);
|
|
@@ -11899,81 +11999,22 @@ var PanelContent = (props) => {
|
|
|
11899
11999
|
})));
|
|
11900
12000
|
};
|
|
11901
12001
|
|
|
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"));
|
|
12002
|
+
// src/components/saved-views/SavedViews.tsx
|
|
12003
|
+
var import_core_react14 = require("@procore/core-react");
|
|
12004
|
+
var import_react13 = __toESM(require("react"));
|
|
11965
12005
|
var import_react_query3 = require("@tanstack/react-query");
|
|
12006
|
+
var import_toast_alert3 = require("@procore/toast-alert");
|
|
11966
12007
|
|
|
11967
|
-
// src/
|
|
12008
|
+
// src/components/modals/DeleteConfirmationModal.tsx
|
|
11968
12009
|
var import_core_react9 = require("@procore/core-react");
|
|
11969
|
-
var
|
|
12010
|
+
var import_react10 = __toESM(require("react"));
|
|
11970
12011
|
var SavedViewsDeleteConfirmationModalShared = ({
|
|
11971
12012
|
onCancel,
|
|
11972
12013
|
onDelete,
|
|
11973
12014
|
open
|
|
11974
12015
|
}) => {
|
|
11975
12016
|
const i18n = (0, import_core_react9.useI18nContext)();
|
|
11976
|
-
return /* @__PURE__ */
|
|
12017
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
11977
12018
|
import_core_react9.ConfirmModal,
|
|
11978
12019
|
{
|
|
11979
12020
|
"data-testid": "delete-confirmation-modal",
|
|
@@ -11983,15 +12024,15 @@ var SavedViewsDeleteConfirmationModalShared = ({
|
|
|
11983
12024
|
onClose: onCancel,
|
|
11984
12025
|
style: { overflowWrap: "anywhere" }
|
|
11985
12026
|
},
|
|
11986
|
-
/* @__PURE__ */
|
|
11987
|
-
/* @__PURE__ */
|
|
12027
|
+
/* @__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"))),
|
|
12028
|
+
/* @__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
12029
|
);
|
|
11989
12030
|
};
|
|
11990
12031
|
|
|
11991
|
-
// src/
|
|
11992
|
-
var
|
|
12032
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
12033
|
+
var import_react11 = __toESM(require("react"));
|
|
11993
12034
|
|
|
11994
|
-
// src/
|
|
12035
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
11995
12036
|
var import_core_react10 = require("@procore/core-react");
|
|
11996
12037
|
var React19 = __toESM(require("react"));
|
|
11997
12038
|
|
|
@@ -14287,7 +14328,7 @@ var TupleSchema = class extends Schema {
|
|
|
14287
14328
|
};
|
|
14288
14329
|
create$1.prototype = TupleSchema.prototype;
|
|
14289
14330
|
|
|
14290
|
-
// src/
|
|
14331
|
+
// src/components/modals/form-modal/FormModalBaseUtils.ts
|
|
14291
14332
|
var getViewLevelOptions = (permissions, i18n) => {
|
|
14292
14333
|
const options = ["personal"];
|
|
14293
14334
|
if (permissions == null ? void 0 : permissions.can_create_project_saved_views)
|
|
@@ -14320,11 +14361,11 @@ function extractMessage(error, I18n) {
|
|
|
14320
14361
|
return { form: I18n.t("savedViews.modal.errors.unknown") };
|
|
14321
14362
|
}
|
|
14322
14363
|
|
|
14323
|
-
// src/
|
|
14364
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
14324
14365
|
var ScrollContainer = styled_components_esm_default("div")`
|
|
14325
14366
|
overflow: auto;
|
|
14326
14367
|
`;
|
|
14327
|
-
var
|
|
14368
|
+
var FormModalBase = ({
|
|
14328
14369
|
open,
|
|
14329
14370
|
mode,
|
|
14330
14371
|
onCancel,
|
|
@@ -14494,9 +14535,9 @@ var SavedViewsCreateUpdateModalBase = ({
|
|
|
14494
14535
|
);
|
|
14495
14536
|
};
|
|
14496
14537
|
|
|
14497
|
-
// src/
|
|
14538
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
14498
14539
|
var import_core_react11 = require("@procore/core-react");
|
|
14499
|
-
var
|
|
14540
|
+
var FormModal = ({
|
|
14500
14541
|
open,
|
|
14501
14542
|
mode,
|
|
14502
14543
|
onCancel,
|
|
@@ -14509,8 +14550,8 @@ var SavedViewsFormModal = ({
|
|
|
14509
14550
|
defaultView
|
|
14510
14551
|
}) => {
|
|
14511
14552
|
const i18n = (0, import_core_react11.useI18nContext)();
|
|
14512
|
-
return /* @__PURE__ */
|
|
14513
|
-
|
|
14553
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
14554
|
+
FormModalBase,
|
|
14514
14555
|
{
|
|
14515
14556
|
open,
|
|
14516
14557
|
mode,
|
|
@@ -14529,7 +14570,7 @@ var SavedViewsFormModal = ({
|
|
|
14529
14570
|
);
|
|
14530
14571
|
};
|
|
14531
14572
|
|
|
14532
|
-
// src/
|
|
14573
|
+
// src/components/modals/form-modal/SharedViewFormModal.tsx
|
|
14533
14574
|
var import_core_react12 = require("@procore/core-react");
|
|
14534
14575
|
var React21 = __toESM(require("react"));
|
|
14535
14576
|
var SharedViewFormModal = ({
|
|
@@ -14671,21 +14712,28 @@ var SharedViewFormModal = ({
|
|
|
14671
14712
|
);
|
|
14672
14713
|
};
|
|
14673
14714
|
|
|
14674
|
-
// src/utils/
|
|
14675
|
-
var
|
|
14715
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14716
|
+
var import_react12 = require("react");
|
|
14676
14717
|
var import_react_router_dom = require("react-router-dom");
|
|
14718
|
+
var import_core_react13 = require("@procore/core-react");
|
|
14677
14719
|
|
|
14678
14720
|
// src/utils/viewStorage.ts
|
|
14679
14721
|
var ViewStorage = {
|
|
14680
14722
|
save(key, view) {
|
|
14681
14723
|
localStorage.setItem(key, JSON.stringify(view));
|
|
14682
14724
|
},
|
|
14683
|
-
load(key) {
|
|
14725
|
+
load(key, defaultView) {
|
|
14684
14726
|
try {
|
|
14685
14727
|
const stored = localStorage.getItem(key);
|
|
14686
|
-
|
|
14687
|
-
|
|
14688
|
-
|
|
14728
|
+
if (!stored)
|
|
14729
|
+
return defaultView;
|
|
14730
|
+
const parsed = JSON.parse(stored);
|
|
14731
|
+
if (!parsed)
|
|
14732
|
+
return defaultView;
|
|
14733
|
+
const isTableConfigOnly = !parsed.id && !parsed.share_token;
|
|
14734
|
+
return isTableConfigOnly ? { ...defaultView, table_config: parsed } : parsed;
|
|
14735
|
+
} catch {
|
|
14736
|
+
return defaultView;
|
|
14689
14737
|
}
|
|
14690
14738
|
},
|
|
14691
14739
|
remove(key) {
|
|
@@ -14693,7 +14741,7 @@ var ViewStorage = {
|
|
|
14693
14741
|
}
|
|
14694
14742
|
};
|
|
14695
14743
|
|
|
14696
|
-
// src/utils/
|
|
14744
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14697
14745
|
var getUpdatedSearchParams = (currentParams, view) => {
|
|
14698
14746
|
const updatedParams = new URLSearchParams(currentParams);
|
|
14699
14747
|
if (view.id === "default") {
|
|
@@ -14708,55 +14756,72 @@ var getUpdatedSearchParams = (currentParams, view) => {
|
|
|
14708
14756
|
var checkIsViewSelected = (selectedView, viewId) => {
|
|
14709
14757
|
return (selectedView == null ? void 0 : selectedView.share_token) === viewId || (selectedView == null ? void 0 : selectedView.id) === viewId;
|
|
14710
14758
|
};
|
|
14711
|
-
var
|
|
14712
|
-
|
|
14713
|
-
|
|
14759
|
+
var findViewByToken = (views, token) => {
|
|
14760
|
+
return views.find((view) => view.share_token === token);
|
|
14761
|
+
};
|
|
14762
|
+
var setViewInUrl = (view, setSearchParams) => {
|
|
14763
|
+
setSearchParams(
|
|
14764
|
+
(currentParams) => getUpdatedSearchParams(currentParams, view),
|
|
14765
|
+
{ replace: true }
|
|
14766
|
+
);
|
|
14767
|
+
};
|
|
14768
|
+
var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
14769
|
+
if (previousParam && !currentParam) {
|
|
14770
|
+
setSearchParams(
|
|
14771
|
+
(currentParams) => {
|
|
14772
|
+
const updatedParams = new URLSearchParams(currentParams);
|
|
14773
|
+
updatedParams.set("saved-view", previousParam);
|
|
14774
|
+
return updatedParams;
|
|
14775
|
+
},
|
|
14776
|
+
{ replace: true }
|
|
14777
|
+
);
|
|
14778
|
+
}
|
|
14779
|
+
};
|
|
14780
|
+
var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
|
|
14781
|
+
const I18n = (0, import_core_react13.useI18nContext)();
|
|
14782
|
+
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14783
|
+
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
14714
14784
|
const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
|
|
14715
|
-
const previousSavedViewParamRef = (0,
|
|
14716
|
-
const [selectedSavedView, setSelectedSavedView] = (0,
|
|
14717
|
-
const stored = ViewStorage.load(storageKey);
|
|
14785
|
+
const previousSavedViewParamRef = (0, import_react12.useRef)(null);
|
|
14786
|
+
const [selectedSavedView, setSelectedSavedView] = (0, import_react12.useState)(() => {
|
|
14787
|
+
const stored = ViewStorage.load(storageKey, config.defaultView);
|
|
14718
14788
|
return stored ?? config.defaultView;
|
|
14719
14789
|
});
|
|
14720
|
-
const [temporaryView, setTemporaryView] = (0,
|
|
14721
|
-
|
|
14790
|
+
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14791
|
+
const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14792
|
+
return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
|
|
14722
14793
|
});
|
|
14723
|
-
const
|
|
14794
|
+
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14724
14795
|
(view) => {
|
|
14725
|
-
|
|
14726
|
-
|
|
14727
|
-
}
|
|
14796
|
+
ViewStorage.save(storageKey, view);
|
|
14797
|
+
setViewInUrl(view, setSearchParams);
|
|
14728
14798
|
},
|
|
14729
|
-
[
|
|
14799
|
+
[storageKey, setSearchParams]
|
|
14730
14800
|
);
|
|
14731
|
-
const
|
|
14732
|
-
(
|
|
14733
|
-
|
|
14734
|
-
(currentParams) => {
|
|
14735
|
-
return getUpdatedSearchParams(currentParams, view);
|
|
14736
|
-
},
|
|
14737
|
-
{ replace: true }
|
|
14738
|
-
);
|
|
14739
|
-
},
|
|
14740
|
-
[setSearchParams]
|
|
14801
|
+
const baseViews = (0, import_react12.useMemo)(
|
|
14802
|
+
() => [...savedViews ?? [], ...presetViews ?? []],
|
|
14803
|
+
[savedViews, presetViews]
|
|
14741
14804
|
);
|
|
14742
|
-
const
|
|
14743
|
-
|
|
14744
|
-
|
|
14805
|
+
const allViews = (0, import_react12.useMemo)(
|
|
14806
|
+
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14807
|
+
[baseViews, temporaryView]
|
|
14808
|
+
);
|
|
14809
|
+
const selectView = (0, import_react12.useCallback)(
|
|
14745
14810
|
(view) => {
|
|
14746
14811
|
const viewToSelect = config.onSelect({ item: view });
|
|
14747
14812
|
setSelectedSavedView(viewToSelect);
|
|
14748
|
-
|
|
14749
|
-
updateUrlForView(viewToSelect);
|
|
14813
|
+
persistViewToStorageAndUrl(viewToSelect);
|
|
14750
14814
|
return viewToSelect;
|
|
14751
14815
|
},
|
|
14752
|
-
[config,
|
|
14816
|
+
[config, persistViewToStorageAndUrl]
|
|
14753
14817
|
);
|
|
14754
|
-
const createTemporaryView = (0,
|
|
14818
|
+
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14755
14819
|
(fetchedView) => {
|
|
14756
14820
|
const tempView = {
|
|
14757
14821
|
...fetchedView,
|
|
14758
14822
|
id: "temporary",
|
|
14759
|
-
name: "
|
|
14823
|
+
name: I18n.t("savedViews.temporaryViewName"),
|
|
14824
|
+
view_level: "temporary"
|
|
14760
14825
|
};
|
|
14761
14826
|
ViewStorage.save(temporaryStorageKey, tempView);
|
|
14762
14827
|
setTemporaryView(tempView);
|
|
@@ -14765,21 +14830,21 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14765
14830
|
},
|
|
14766
14831
|
[temporaryStorageKey, selectView]
|
|
14767
14832
|
);
|
|
14768
|
-
const clearTemporaryView = (0,
|
|
14833
|
+
const clearTemporaryView = (0, import_react12.useCallback)(() => {
|
|
14769
14834
|
ViewStorage.remove(temporaryStorageKey);
|
|
14770
14835
|
setTemporaryView(null);
|
|
14771
14836
|
selectView(config.defaultView);
|
|
14772
14837
|
}, [temporaryStorageKey, config.defaultView, selectView]);
|
|
14773
|
-
const isViewAlreadySelected = (0,
|
|
14838
|
+
const isViewAlreadySelected = (0, import_react12.useCallback)(
|
|
14774
14839
|
(viewId) => checkIsViewSelected(selectedSavedView, viewId),
|
|
14775
14840
|
[selectedSavedView]
|
|
14776
14841
|
);
|
|
14777
|
-
const handleSavedViewFromUrl = (0,
|
|
14842
|
+
const handleSavedViewFromUrl = (0, import_react12.useCallback)(
|
|
14778
14843
|
(viewId) => {
|
|
14779
14844
|
if (isViewAlreadySelected(viewId)) {
|
|
14780
14845
|
return;
|
|
14781
14846
|
}
|
|
14782
|
-
const viewInList = allViews
|
|
14847
|
+
const viewInList = findViewByToken(allViews, viewId);
|
|
14783
14848
|
if (viewInList) {
|
|
14784
14849
|
selectView(viewInList);
|
|
14785
14850
|
} else {
|
|
@@ -14788,36 +14853,20 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14788
14853
|
},
|
|
14789
14854
|
[isViewAlreadySelected, openSharedViewModal, allViews, selectView]
|
|
14790
14855
|
);
|
|
14791
|
-
(0,
|
|
14792
|
-
if (!allViews.length)
|
|
14793
|
-
return;
|
|
14856
|
+
(0, import_react12.useEffect)(() => {
|
|
14794
14857
|
const savedViewId = searchParams.get("saved-view");
|
|
14858
|
+
restoreUrlParameter(
|
|
14859
|
+
savedViewId,
|
|
14860
|
+
previousSavedViewParamRef.current,
|
|
14861
|
+
setSearchParams
|
|
14862
|
+
);
|
|
14795
14863
|
if (savedViewId) {
|
|
14796
|
-
|
|
14864
|
+
previousSavedViewParamRef.current = savedViewId;
|
|
14797
14865
|
}
|
|
14798
|
-
|
|
14799
|
-
|
|
14800
|
-
savedViews,
|
|
14801
|
-
temporaryView,
|
|
14802
|
-
handleSavedViewFromUrl,
|
|
14803
|
-
allViews.length
|
|
14804
|
-
]);
|
|
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;
|
|
14866
|
+
if (savedViewId && allViews.length > 0) {
|
|
14867
|
+
handleSavedViewFromUrl(savedViewId);
|
|
14819
14868
|
}
|
|
14820
|
-
}, [searchParams
|
|
14869
|
+
}, [searchParams, handleSavedViewFromUrl, allViews.length]);
|
|
14821
14870
|
return {
|
|
14822
14871
|
selectedView: selectedSavedView,
|
|
14823
14872
|
selectView,
|
|
@@ -14828,7 +14877,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14828
14877
|
};
|
|
14829
14878
|
};
|
|
14830
14879
|
|
|
14831
|
-
// src/
|
|
14880
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14832
14881
|
var StyledPanel = styled_components_esm_default.div`
|
|
14833
14882
|
border: ${({ provider }) => provider === "data-table" ? "1px solid #d6dadc" : "none"};
|
|
14834
14883
|
`;
|
|
@@ -14843,13 +14892,15 @@ var SavedViewsContent = (props) => {
|
|
|
14843
14892
|
};
|
|
14844
14893
|
const { data: savedViews } = useSavedViewsQuery(queryInput);
|
|
14845
14894
|
const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
|
|
14846
|
-
const
|
|
14847
|
-
const
|
|
14895
|
+
const { showToast } = (0, import_toast_alert3.useToastAlertContext)();
|
|
14896
|
+
const i18n = (0, import_core_react14.useI18nContext)();
|
|
14897
|
+
const [activeModal, setActiveModal] = (0, import_react13.useState)(null);
|
|
14898
|
+
const [modalData, setModalData] = (0, import_react13.useState)(null);
|
|
14848
14899
|
const openModal = (type, data) => {
|
|
14849
14900
|
setActiveModal(type);
|
|
14850
14901
|
setModalData(data ?? null);
|
|
14851
14902
|
};
|
|
14852
|
-
const closeModal = (0,
|
|
14903
|
+
const closeModal = (0, import_react13.useCallback)(() => {
|
|
14853
14904
|
setActiveModal(null);
|
|
14854
14905
|
setModalData(null);
|
|
14855
14906
|
}, []);
|
|
@@ -14867,13 +14918,14 @@ var SavedViewsContent = (props) => {
|
|
|
14867
14918
|
{
|
|
14868
14919
|
domain: props.domain,
|
|
14869
14920
|
tableName: props.tableName,
|
|
14870
|
-
stickyViewsKey: props.stickyViewsKey,
|
|
14871
14921
|
userId: props.userId,
|
|
14872
14922
|
projectId,
|
|
14923
|
+
companyId,
|
|
14873
14924
|
defaultView: props.defaultView,
|
|
14874
14925
|
onSelect: props.onSelect
|
|
14875
14926
|
},
|
|
14876
14927
|
savedViews,
|
|
14928
|
+
props.presetViews,
|
|
14877
14929
|
openSharedViewModal
|
|
14878
14930
|
);
|
|
14879
14931
|
const { data: fetchedView, isError: fetchError } = useFetchSavedViewById(
|
|
@@ -14887,8 +14939,9 @@ var SavedViewsContent = (props) => {
|
|
|
14887
14939
|
error: createError,
|
|
14888
14940
|
reset: resetCreateError
|
|
14889
14941
|
} = useCreateSavedView(queryInput);
|
|
14890
|
-
(0,
|
|
14942
|
+
(0, import_react13.useEffect)(() => {
|
|
14891
14943
|
if (fetchError) {
|
|
14944
|
+
showToast.error(i18n.t("savedViews.errors.notFound"));
|
|
14892
14945
|
selectView(selectedView ?? props.defaultView);
|
|
14893
14946
|
closeModal();
|
|
14894
14947
|
}
|
|
@@ -14912,6 +14965,7 @@ var SavedViewsContent = (props) => {
|
|
|
14912
14965
|
};
|
|
14913
14966
|
createSavedView(viewToCreate, {
|
|
14914
14967
|
onSuccess: (newView) => {
|
|
14968
|
+
showToast.success(i18n.t("savedViews.create.success"));
|
|
14915
14969
|
selectView(newView);
|
|
14916
14970
|
closeModal();
|
|
14917
14971
|
}
|
|
@@ -14933,23 +14987,22 @@ var SavedViewsContent = (props) => {
|
|
|
14933
14987
|
deleteSelectedView();
|
|
14934
14988
|
closeModal();
|
|
14935
14989
|
};
|
|
14936
|
-
|
|
14937
|
-
return /* @__PURE__ */ import_react14.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react14.default.createElement(
|
|
14990
|
+
return /* @__PURE__ */ import_react13.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14938
14991
|
ExpandedPanel,
|
|
14939
14992
|
{
|
|
14940
14993
|
"data-testid": "saved-view-expanded-panel",
|
|
14941
14994
|
provider: props.provider
|
|
14942
14995
|
},
|
|
14943
|
-
/* @__PURE__ */
|
|
14944
|
-
|
|
14996
|
+
/* @__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(
|
|
14997
|
+
import_core_react14.Tooltip,
|
|
14945
14998
|
{
|
|
14946
14999
|
overlay: i18n.t("savedViews.actions.create"),
|
|
14947
15000
|
showDelay: 1e3
|
|
14948
15001
|
},
|
|
14949
|
-
/* @__PURE__ */
|
|
14950
|
-
|
|
15002
|
+
/* @__PURE__ */ import_react13.default.createElement("span", null, /* @__PURE__ */ import_react13.default.createElement(
|
|
15003
|
+
import_core_react14.Button,
|
|
14951
15004
|
{
|
|
14952
|
-
icon: /* @__PURE__ */
|
|
15005
|
+
icon: /* @__PURE__ */ import_react13.default.createElement(Plus_default, null),
|
|
14953
15006
|
variant: "secondary",
|
|
14954
15007
|
"data-testid": "expanded-panel-create-button",
|
|
14955
15008
|
onClick: () => openModal("create" /* CREATE */),
|
|
@@ -14958,7 +15011,7 @@ var SavedViewsContent = (props) => {
|
|
|
14958
15011
|
i18n.t("savedViews.actions.create")
|
|
14959
15012
|
))
|
|
14960
15013
|
)),
|
|
14961
|
-
/* @__PURE__ */
|
|
15014
|
+
/* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14962
15015
|
PanelContent,
|
|
14963
15016
|
{
|
|
14964
15017
|
onSelect: ({ item }) => selectView(item),
|
|
@@ -14968,15 +15021,15 @@ var SavedViewsContent = (props) => {
|
|
|
14968
15021
|
selectedSavedView: selectedView,
|
|
14969
15022
|
tableConfig: props.tableConfig,
|
|
14970
15023
|
defaultView: props.defaultView,
|
|
14971
|
-
|
|
15024
|
+
presetViews: props.presetViews,
|
|
14972
15025
|
savedViews: allViews,
|
|
14973
15026
|
provider: props.provider,
|
|
14974
15027
|
userId: props.userId,
|
|
14975
15028
|
onClearTemporary: clearTemporaryView
|
|
14976
15029
|
}
|
|
14977
15030
|
))
|
|
14978
|
-
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */
|
|
14979
|
-
|
|
15031
|
+
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15032
|
+
FormModal,
|
|
14980
15033
|
{
|
|
14981
15034
|
open: true,
|
|
14982
15035
|
mode: activeModal,
|
|
@@ -14989,14 +15042,14 @@ var SavedViewsContent = (props) => {
|
|
|
14989
15042
|
setOpenEditCreateModal: closeModal,
|
|
14990
15043
|
defaultView: props.defaultView
|
|
14991
15044
|
}
|
|
14992
|
-
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */
|
|
15045
|
+
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14993
15046
|
SavedViewsDeleteConfirmationModalShared,
|
|
14994
15047
|
{
|
|
14995
15048
|
open: true,
|
|
14996
15049
|
onDelete: confirmDeleteAndCloseModal,
|
|
14997
15050
|
onCancel: closeModal
|
|
14998
15051
|
}
|
|
14999
|
-
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */
|
|
15052
|
+
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15000
15053
|
SharedViewFormModal,
|
|
15001
15054
|
{
|
|
15002
15055
|
open: true,
|
|
@@ -15011,31 +15064,125 @@ var SavedViewsContent = (props) => {
|
|
|
15011
15064
|
));
|
|
15012
15065
|
};
|
|
15013
15066
|
var SavedViews = (props) => {
|
|
15014
|
-
return /* @__PURE__ */
|
|
15067
|
+
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 }))));
|
|
15015
15068
|
};
|
|
15016
15069
|
|
|
15017
|
-
// src/
|
|
15018
|
-
var
|
|
15019
|
-
|
|
15020
|
-
|
|
15070
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15071
|
+
var import_react16 = __toESM(require("react"));
|
|
15072
|
+
|
|
15073
|
+
// src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
|
|
15074
|
+
var import_react14 = require("react");
|
|
15075
|
+
var DEFAULT_COLUMN_STATE = {
|
|
15076
|
+
hide: false,
|
|
15077
|
+
pinned: null,
|
|
15078
|
+
width: 200,
|
|
15079
|
+
sort: null,
|
|
15080
|
+
sortIndex: null,
|
|
15081
|
+
pivot: false,
|
|
15082
|
+
pivotIndex: null,
|
|
15083
|
+
aggFunc: null,
|
|
15084
|
+
rowGroup: false,
|
|
15085
|
+
rowGroupIndex: null,
|
|
15086
|
+
flex: null
|
|
15087
|
+
};
|
|
15088
|
+
var getColumnStateFromDefs = (columnDefs) => {
|
|
15089
|
+
return columnDefs.map((colDef) => {
|
|
15090
|
+
const field = colDef.field ?? colDef.colId;
|
|
15091
|
+
if (!field)
|
|
15092
|
+
return null;
|
|
15093
|
+
return {
|
|
15094
|
+
colId: field,
|
|
15095
|
+
hide: colDef.hide ?? false,
|
|
15096
|
+
pinned: colDef.pinned ?? null,
|
|
15097
|
+
width: colDef.width ?? colDef.minWidth ?? DEFAULT_COLUMN_STATE.width,
|
|
15098
|
+
sort: null,
|
|
15099
|
+
sortIndex: null,
|
|
15100
|
+
pivot: false,
|
|
15101
|
+
pivotIndex: null,
|
|
15102
|
+
aggFunc: null,
|
|
15103
|
+
rowGroup: false,
|
|
15104
|
+
rowGroupIndex: null,
|
|
15105
|
+
flex: colDef.flex ?? null
|
|
15106
|
+
};
|
|
15107
|
+
}).filter((col) => col !== null);
|
|
15108
|
+
};
|
|
15109
|
+
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15110
|
+
var _a, _b;
|
|
15111
|
+
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15112
|
+
const defaultColumnState = ((_a = receivedConfig == null ? void 0 : receivedConfig.columnState) == null ? void 0 : _a.length) ? receivedConfig.columnState : getColumnStateFromDefs(columnDefs);
|
|
15113
|
+
const result = {
|
|
15114
|
+
columnState: defaultColumnState,
|
|
15115
|
+
columnGroupState: (receivedConfig == null ? void 0 : receivedConfig.columnGroupState) ?? [],
|
|
15116
|
+
rowGroupState: (receivedConfig == null ? void 0 : receivedConfig.rowGroupState) ?? [],
|
|
15117
|
+
filterState: (receivedConfig == null ? void 0 : receivedConfig.filterState) ?? {},
|
|
15118
|
+
rowHeight: (receivedConfig == null ? void 0 : receivedConfig.rowHeight) ?? ((_b = gridApi.getSizesForCurrentTheme()) == null ? void 0 : _b.rowHeight)
|
|
15119
|
+
};
|
|
15120
|
+
return result;
|
|
15121
|
+
};
|
|
15122
|
+
var useNormalizedDefaultViews = (defaultViews, gridApi) => {
|
|
15123
|
+
return (0, import_react14.useMemo)(() => {
|
|
15124
|
+
if (!gridApi)
|
|
15125
|
+
return defaultViews.map((view) => ({ ...view, share_token: view.id }));
|
|
15126
|
+
return defaultViews.map((view) => ({
|
|
15127
|
+
...view,
|
|
15128
|
+
share_token: view.id,
|
|
15129
|
+
table_config: extractDefaultView(gridApi, view.table_config)
|
|
15130
|
+
}));
|
|
15131
|
+
}, [defaultViews, gridApi]);
|
|
15132
|
+
};
|
|
15133
|
+
|
|
15134
|
+
// src/components/adapters/smart-grid/useSmartGridConfig.ts
|
|
15135
|
+
var import_react15 = require("react");
|
|
15136
|
+
var GRID_STATE_EVENTS = [
|
|
15137
|
+
"sortChanged",
|
|
15138
|
+
"filterOpened",
|
|
15139
|
+
"filterChanged",
|
|
15140
|
+
"columnRowGroupChanged",
|
|
15141
|
+
"dragStopped",
|
|
15142
|
+
"columnResized",
|
|
15143
|
+
"columnVisible",
|
|
15144
|
+
"columnPinned",
|
|
15145
|
+
"columnMoved",
|
|
15146
|
+
"modelUpdated",
|
|
15147
|
+
"gridColumnsChanged",
|
|
15148
|
+
"gridReady"
|
|
15149
|
+
];
|
|
15150
|
+
var useSmartGridConfig = (gridApi) => {
|
|
15151
|
+
const [config, setConfig] = (0, import_react15.useState)(
|
|
15152
|
+
() => getSmartGridConfig(gridApi)
|
|
15153
|
+
);
|
|
15154
|
+
(0, import_react15.useEffect)(() => {
|
|
15155
|
+
if (!gridApi)
|
|
15156
|
+
return;
|
|
15157
|
+
const updateConfig = () => {
|
|
15158
|
+
setConfig(getSmartGridConfig(gridApi));
|
|
15159
|
+
};
|
|
15160
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15161
|
+
gridApi.addEventListener(event, updateConfig);
|
|
15162
|
+
});
|
|
15163
|
+
return () => {
|
|
15164
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15165
|
+
gridApi.removeEventListener(event, updateConfig);
|
|
15166
|
+
});
|
|
15167
|
+
};
|
|
15168
|
+
}, [gridApi]);
|
|
15169
|
+
return { config, setConfig };
|
|
15021
15170
|
};
|
|
15171
|
+
|
|
15172
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15022
15173
|
var SmartGridSavedViews = (props) => {
|
|
15023
15174
|
const { gridApi, userId, projectId, companyId } = props;
|
|
15024
15175
|
const { config: tableConfig, setConfig: setTableConfig } = useSmartGridConfig(gridApi);
|
|
15025
|
-
const
|
|
15026
|
-
|
|
15027
|
-
|
|
15028
|
-
});
|
|
15029
|
-
const onSelect = (0, import_react15.useCallback)(
|
|
15176
|
+
const presetViews = useNormalizedDefaultViews(props.defaultViews, gridApi);
|
|
15177
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15178
|
+
const onSelect = (0, import_react16.useCallback)(
|
|
15030
15179
|
({ item }) => {
|
|
15031
15180
|
if (!gridApi)
|
|
15032
15181
|
return item;
|
|
15033
|
-
|
|
15034
|
-
|
|
15035
|
-
gridApi
|
|
15036
|
-
|
|
15037
|
-
gridApi.setGridOption("rowHeight", props.defaultRowHeight);
|
|
15038
|
-
gridApi.refreshCells();
|
|
15182
|
+
const isPresetView = item.view_level === "default";
|
|
15183
|
+
if (isPresetView) {
|
|
15184
|
+
updateTableConfig(item, gridApi, "smart-grid");
|
|
15185
|
+
setTableConfig(item.table_config);
|
|
15039
15186
|
return item;
|
|
15040
15187
|
}
|
|
15041
15188
|
const updatedView = {
|
|
@@ -15049,22 +15196,9 @@ var SmartGridSavedViews = (props) => {
|
|
|
15049
15196
|
setTableConfig(updatedView.table_config);
|
|
15050
15197
|
return updatedView;
|
|
15051
15198
|
},
|
|
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
|
|
15199
|
+
[gridApi, tableConfig, setTableConfig]
|
|
15066
15200
|
);
|
|
15067
|
-
return /* @__PURE__ */
|
|
15201
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
15068
15202
|
SavedViews,
|
|
15069
15203
|
{
|
|
15070
15204
|
onSelect,
|
|
@@ -15074,20 +15208,19 @@ var SmartGridSavedViews = (props) => {
|
|
|
15074
15208
|
companyId,
|
|
15075
15209
|
provider: "smart-grid",
|
|
15076
15210
|
defaultView,
|
|
15211
|
+
presetViews,
|
|
15077
15212
|
tableName: props.tableName,
|
|
15078
|
-
tableConfig
|
|
15079
|
-
stickyViewsKey
|
|
15213
|
+
tableConfig
|
|
15080
15214
|
}
|
|
15081
|
-
)
|
|
15215
|
+
);
|
|
15082
15216
|
};
|
|
15083
15217
|
|
|
15084
|
-
// src/
|
|
15085
|
-
var
|
|
15218
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15219
|
+
var import_react18 = __toESM(require("react"));
|
|
15086
15220
|
|
|
15087
|
-
// src/
|
|
15088
|
-
var
|
|
15089
|
-
var
|
|
15090
|
-
var DEFAULT_COLUMN_STATE = {
|
|
15221
|
+
// src/components/adapters/data-table/DataTableDefaultSavedView.tsx
|
|
15222
|
+
var import_react17 = require("react");
|
|
15223
|
+
var DEFAULT_COLUMN_STATE2 = {
|
|
15091
15224
|
hidden: false,
|
|
15092
15225
|
pinned: null,
|
|
15093
15226
|
width: 200,
|
|
@@ -15102,7 +15235,7 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15102
15235
|
if (column.field.includes("custom_field")) {
|
|
15103
15236
|
return {
|
|
15104
15237
|
field: column.field,
|
|
15105
|
-
...
|
|
15238
|
+
...DEFAULT_COLUMN_STATE2
|
|
15106
15239
|
};
|
|
15107
15240
|
}
|
|
15108
15241
|
return {
|
|
@@ -15113,11 +15246,11 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15113
15246
|
rowGroupIndex: null,
|
|
15114
15247
|
sort: null,
|
|
15115
15248
|
sortIndex: null,
|
|
15116
|
-
width: (column.minWidth ??
|
|
15249
|
+
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
15250
|
};
|
|
15118
15251
|
});
|
|
15119
15252
|
};
|
|
15120
|
-
var
|
|
15253
|
+
var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
|
|
15121
15254
|
var _a, _b, _c;
|
|
15122
15255
|
const defaultColumnState = getColumnState(columnDefinitions);
|
|
15123
15256
|
const result = {
|
|
@@ -15133,52 +15266,37 @@ var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
|
|
|
15133
15266
|
};
|
|
15134
15267
|
return result;
|
|
15135
15268
|
};
|
|
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]
|
|
15269
|
+
var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
|
|
15270
|
+
return (0, import_react17.useMemo)(
|
|
15271
|
+
() => defaultViews.map((view) => ({
|
|
15272
|
+
...view,
|
|
15273
|
+
share_token: "",
|
|
15274
|
+
table_config: extractDefaultView2(columnDefinitions, view.table_config)
|
|
15275
|
+
})),
|
|
15276
|
+
[defaultViews, columnDefinitions]
|
|
15148
15277
|
);
|
|
15149
|
-
return {
|
|
15150
|
-
id: "default",
|
|
15151
|
-
view_level: "default",
|
|
15152
|
-
name,
|
|
15153
|
-
table_config: extractedDefaultConfig
|
|
15154
|
-
};
|
|
15155
15278
|
};
|
|
15156
15279
|
|
|
15157
|
-
// src/
|
|
15158
|
-
var
|
|
15159
|
-
var generateStickyViewsKey2 = (domain, tableName, userId, projectId, companyId) => {
|
|
15160
|
-
return `savedView-${domain}-${tableName}-${companyId}-${projectId}-${userId}`;
|
|
15161
|
-
};
|
|
15162
|
-
var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
15280
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15281
|
+
var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
|
|
15163
15282
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15164
|
-
const
|
|
15165
|
-
props.
|
|
15283
|
+
const presetViews = useNormalizedDefaultViews2(
|
|
15284
|
+
props.defaultViews,
|
|
15285
|
+
props.columnDefinitions
|
|
15286
|
+
);
|
|
15287
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15288
|
+
const [internalTableConfig, setInternalTableConfig] = (0, import_react18.useState)(
|
|
15289
|
+
ViewStorage.load(props.stickyViewsKey, defaultView).table_config
|
|
15166
15290
|
);
|
|
15167
|
-
(0,
|
|
15291
|
+
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15168
15292
|
setTableConfig: (newConfig) => {
|
|
15169
15293
|
setInternalTableConfig(newConfig);
|
|
15170
15294
|
}
|
|
15171
15295
|
}));
|
|
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)(
|
|
15296
|
+
const onSelect = (0, import_react18.useCallback)(
|
|
15179
15297
|
({ item }) => {
|
|
15180
|
-
const
|
|
15181
|
-
const updatedView =
|
|
15298
|
+
const isPresetView = item.view_level === "default";
|
|
15299
|
+
const updatedView = isPresetView ? item : {
|
|
15182
15300
|
...item,
|
|
15183
15301
|
table_config: customAndConfigSync(
|
|
15184
15302
|
item.table_config,
|
|
@@ -15194,14 +15312,7 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15194
15312
|
if (!internalTableConfig) {
|
|
15195
15313
|
return null;
|
|
15196
15314
|
}
|
|
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(
|
|
15315
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
15205
15316
|
SavedViews,
|
|
15206
15317
|
{
|
|
15207
15318
|
onSelect,
|
|
@@ -15211,21 +15322,22 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15211
15322
|
companyId,
|
|
15212
15323
|
provider: "data-table",
|
|
15213
15324
|
defaultView,
|
|
15325
|
+
presetViews,
|
|
15214
15326
|
tableName: props.tableName,
|
|
15215
|
-
tableConfig: internalTableConfig
|
|
15216
|
-
stickyViewsKey
|
|
15327
|
+
tableConfig: internalTableConfig
|
|
15217
15328
|
}
|
|
15218
|
-
)
|
|
15329
|
+
);
|
|
15219
15330
|
});
|
|
15220
15331
|
DataTableSavedViews.displayName = "DataTableSavedViews";
|
|
15221
15332
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15222
15333
|
0 && (module.exports = {
|
|
15223
15334
|
DataTableSavedViews,
|
|
15224
15335
|
ExpandedPanel,
|
|
15336
|
+
FormModal,
|
|
15225
15337
|
PanelContent,
|
|
15226
15338
|
SavedViewCollectionMenuItem,
|
|
15339
|
+
SavedViews,
|
|
15227
15340
|
SavedViewsDeleteConfirmationModalShared,
|
|
15228
|
-
SavedViewsFormModal,
|
|
15229
15341
|
SmartGridSavedViews,
|
|
15230
15342
|
getTranslations,
|
|
15231
15343
|
useSavedViewsPanel
|