@procore/saved-views 5.1.0-alpha.3 → 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 +439 -312
- package/dist/legacy/index.mjs +419 -295
- package/dist/modern/index.d.mts +61 -40
- package/dist/modern/index.d.ts +61 -40
- package/dist/modern/index.js +437 -310
- package/dist/modern/index.mjs +417 -293
- 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,11 +14736,11 @@ 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") {
|
|
14700
|
-
updatedParams.
|
|
14743
|
+
updatedParams.set("saved-view", "default");
|
|
14701
14744
|
} else if (view.id === "temporary") {
|
|
14702
14745
|
updatedParams.set("saved-view", "temporary");
|
|
14703
14746
|
} else {
|
|
@@ -14708,54 +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
|
|
14716
|
-
|
|
14780
|
+
const previousSavedViewParamRef = (0, import_react12.useRef)(null);
|
|
14781
|
+
const [selectedSavedView, setSelectedSavedView] = (0, import_react12.useState)(() => {
|
|
14782
|
+
const stored = ViewStorage.load(storageKey, config.defaultView);
|
|
14717
14783
|
return stored ?? config.defaultView;
|
|
14718
14784
|
});
|
|
14719
|
-
const [temporaryView, setTemporaryView] = (0,
|
|
14720
|
-
return ViewStorage.load(temporaryStorageKey);
|
|
14785
|
+
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14786
|
+
return ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14721
14787
|
});
|
|
14722
|
-
const
|
|
14788
|
+
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14723
14789
|
(view) => {
|
|
14724
|
-
|
|
14725
|
-
|
|
14726
|
-
}
|
|
14790
|
+
ViewStorage.save(storageKey, view);
|
|
14791
|
+
setViewInUrl(view, setSearchParams);
|
|
14727
14792
|
},
|
|
14728
|
-
[
|
|
14729
|
-
);
|
|
14730
|
-
const updateUrlForView = (0, import_react13.useCallback)(
|
|
14731
|
-
(view) => {
|
|
14732
|
-
setSearchParams(
|
|
14733
|
-
(currentParams) => {
|
|
14734
|
-
return getUpdatedSearchParams(currentParams, view);
|
|
14735
|
-
},
|
|
14736
|
-
{ replace: true }
|
|
14737
|
-
);
|
|
14738
|
-
},
|
|
14739
|
-
[setSearchParams]
|
|
14793
|
+
[storageKey, setSearchParams]
|
|
14740
14794
|
);
|
|
14741
14795
|
const baseViews = savedViews ?? [];
|
|
14742
|
-
const allViews =
|
|
14743
|
-
|
|
14796
|
+
const allViews = (0, import_react12.useMemo)(
|
|
14797
|
+
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14798
|
+
[baseViews, temporaryView]
|
|
14799
|
+
);
|
|
14800
|
+
const selectView = (0, import_react12.useCallback)(
|
|
14744
14801
|
(view) => {
|
|
14745
14802
|
const viewToSelect = config.onSelect({ item: view });
|
|
14746
14803
|
setSelectedSavedView(viewToSelect);
|
|
14747
|
-
|
|
14748
|
-
updateUrlForView(viewToSelect);
|
|
14804
|
+
persistViewToStorageAndUrl(viewToSelect);
|
|
14749
14805
|
return viewToSelect;
|
|
14750
14806
|
},
|
|
14751
|
-
[config,
|
|
14807
|
+
[config, persistViewToStorageAndUrl, temporaryView, temporaryStorageKey]
|
|
14752
14808
|
);
|
|
14753
|
-
const createTemporaryView = (0,
|
|
14809
|
+
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14754
14810
|
(fetchedView) => {
|
|
14755
14811
|
const tempView = {
|
|
14756
14812
|
...fetchedView,
|
|
14757
14813
|
id: "temporary",
|
|
14758
|
-
name: "
|
|
14814
|
+
name: I18n.t("savedViews.temporaryViewName"),
|
|
14815
|
+
view_level: "temporary"
|
|
14759
14816
|
};
|
|
14760
14817
|
ViewStorage.save(temporaryStorageKey, tempView);
|
|
14761
14818
|
setTemporaryView(tempView);
|
|
@@ -14764,40 +14821,48 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14764
14821
|
},
|
|
14765
14822
|
[temporaryStorageKey, selectView]
|
|
14766
14823
|
);
|
|
14767
|
-
const clearTemporaryView = (0,
|
|
14824
|
+
const clearTemporaryView = (0, import_react12.useCallback)(() => {
|
|
14768
14825
|
ViewStorage.remove(temporaryStorageKey);
|
|
14769
14826
|
setTemporaryView(null);
|
|
14770
14827
|
selectView(config.defaultView);
|
|
14771
14828
|
}, [temporaryStorageKey, config.defaultView, selectView]);
|
|
14772
|
-
const isViewAlreadySelected = (0,
|
|
14829
|
+
const isViewAlreadySelected = (0, import_react12.useCallback)(
|
|
14773
14830
|
(viewId) => checkIsViewSelected(selectedSavedView, viewId),
|
|
14774
14831
|
[selectedSavedView]
|
|
14775
14832
|
);
|
|
14776
|
-
const handleSavedViewFromUrl = (0,
|
|
14833
|
+
const handleSavedViewFromUrl = (0, import_react12.useCallback)(
|
|
14777
14834
|
(viewId) => {
|
|
14778
14835
|
if (isViewAlreadySelected(viewId)) {
|
|
14779
14836
|
return;
|
|
14780
14837
|
}
|
|
14781
|
-
const viewInList = allViews
|
|
14838
|
+
const viewInList = findViewByToken(allViews, viewId);
|
|
14782
14839
|
if (viewInList) {
|
|
14783
14840
|
selectView(viewInList);
|
|
14841
|
+
} else {
|
|
14842
|
+
openSharedViewModal(viewId);
|
|
14784
14843
|
}
|
|
14785
|
-
openSharedViewModal(viewId);
|
|
14786
14844
|
},
|
|
14787
14845
|
[isViewAlreadySelected, openSharedViewModal, allViews, selectView]
|
|
14788
14846
|
);
|
|
14789
|
-
(0,
|
|
14790
|
-
if (!allViews.length)
|
|
14791
|
-
return;
|
|
14847
|
+
(0, import_react12.useEffect)(() => {
|
|
14792
14848
|
const savedViewId = searchParams.get("saved-view");
|
|
14849
|
+
restoreUrlParameter(
|
|
14850
|
+
savedViewId,
|
|
14851
|
+
previousSavedViewParamRef.current,
|
|
14852
|
+
setSearchParams
|
|
14853
|
+
);
|
|
14793
14854
|
if (savedViewId) {
|
|
14855
|
+
previousSavedViewParamRef.current = savedViewId;
|
|
14856
|
+
}
|
|
14857
|
+
if (savedViewId && allViews.length > 0) {
|
|
14794
14858
|
handleSavedViewFromUrl(savedViewId);
|
|
14795
14859
|
}
|
|
14796
14860
|
}, [
|
|
14797
|
-
searchParams
|
|
14861
|
+
searchParams,
|
|
14798
14862
|
savedViews,
|
|
14799
14863
|
temporaryView,
|
|
14800
14864
|
handleSavedViewFromUrl,
|
|
14865
|
+
setSearchParams,
|
|
14801
14866
|
allViews.length
|
|
14802
14867
|
]);
|
|
14803
14868
|
return {
|
|
@@ -14810,7 +14875,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14810
14875
|
};
|
|
14811
14876
|
};
|
|
14812
14877
|
|
|
14813
|
-
// src/
|
|
14878
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14814
14879
|
var StyledPanel = styled_components_esm_default.div`
|
|
14815
14880
|
border: ${({ provider }) => provider === "data-table" ? "1px solid #d6dadc" : "none"};
|
|
14816
14881
|
`;
|
|
@@ -14820,19 +14885,20 @@ var SavedViewsContent = (props) => {
|
|
|
14820
14885
|
const queryInput = {
|
|
14821
14886
|
domain: props.domain,
|
|
14822
14887
|
tableName: props.tableName,
|
|
14823
|
-
enableSavedViews: props.enableSavedViews,
|
|
14824
14888
|
projectId,
|
|
14825
14889
|
companyId
|
|
14826
14890
|
};
|
|
14827
14891
|
const { data: savedViews } = useSavedViewsQuery(queryInput);
|
|
14828
14892
|
const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
|
|
14829
|
-
const
|
|
14830
|
-
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);
|
|
14831
14897
|
const openModal = (type, data) => {
|
|
14832
14898
|
setActiveModal(type);
|
|
14833
14899
|
setModalData(data ?? null);
|
|
14834
14900
|
};
|
|
14835
|
-
const closeModal = (0,
|
|
14901
|
+
const closeModal = (0, import_react13.useCallback)(() => {
|
|
14836
14902
|
setActiveModal(null);
|
|
14837
14903
|
setModalData(null);
|
|
14838
14904
|
}, []);
|
|
@@ -14850,9 +14916,9 @@ var SavedViewsContent = (props) => {
|
|
|
14850
14916
|
{
|
|
14851
14917
|
domain: props.domain,
|
|
14852
14918
|
tableName: props.tableName,
|
|
14853
|
-
stickyViewsKey: props.stickyViewsKey,
|
|
14854
14919
|
userId: props.userId,
|
|
14855
14920
|
projectId,
|
|
14921
|
+
companyId,
|
|
14856
14922
|
defaultView: props.defaultView,
|
|
14857
14923
|
onSelect: props.onSelect
|
|
14858
14924
|
},
|
|
@@ -14870,8 +14936,9 @@ var SavedViewsContent = (props) => {
|
|
|
14870
14936
|
error: createError,
|
|
14871
14937
|
reset: resetCreateError
|
|
14872
14938
|
} = useCreateSavedView(queryInput);
|
|
14873
|
-
(0,
|
|
14939
|
+
(0, import_react13.useEffect)(() => {
|
|
14874
14940
|
if (fetchError) {
|
|
14941
|
+
showToast.error(i18n.t("savedViews.errors.notFound"));
|
|
14875
14942
|
selectView(selectedView ?? props.defaultView);
|
|
14876
14943
|
closeModal();
|
|
14877
14944
|
}
|
|
@@ -14895,6 +14962,7 @@ var SavedViewsContent = (props) => {
|
|
|
14895
14962
|
};
|
|
14896
14963
|
createSavedView(viewToCreate, {
|
|
14897
14964
|
onSuccess: (newView) => {
|
|
14965
|
+
showToast.success(i18n.t("savedViews.create.success"));
|
|
14898
14966
|
selectView(newView);
|
|
14899
14967
|
closeModal();
|
|
14900
14968
|
}
|
|
@@ -14916,23 +14984,22 @@ var SavedViewsContent = (props) => {
|
|
|
14916
14984
|
deleteSelectedView();
|
|
14917
14985
|
closeModal();
|
|
14918
14986
|
};
|
|
14919
|
-
|
|
14920
|
-
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(
|
|
14921
14988
|
ExpandedPanel,
|
|
14922
14989
|
{
|
|
14923
14990
|
"data-testid": "saved-view-expanded-panel",
|
|
14924
14991
|
provider: props.provider
|
|
14925
14992
|
},
|
|
14926
|
-
/* @__PURE__ */
|
|
14927
|
-
|
|
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,
|
|
14928
14995
|
{
|
|
14929
14996
|
overlay: i18n.t("savedViews.actions.create"),
|
|
14930
14997
|
showDelay: 1e3
|
|
14931
14998
|
},
|
|
14932
|
-
/* @__PURE__ */
|
|
14933
|
-
|
|
14999
|
+
/* @__PURE__ */ import_react13.default.createElement("span", null, /* @__PURE__ */ import_react13.default.createElement(
|
|
15000
|
+
import_core_react14.Button,
|
|
14934
15001
|
{
|
|
14935
|
-
icon: /* @__PURE__ */
|
|
15002
|
+
icon: /* @__PURE__ */ import_react13.default.createElement(Plus_default, null),
|
|
14936
15003
|
variant: "secondary",
|
|
14937
15004
|
"data-testid": "expanded-panel-create-button",
|
|
14938
15005
|
onClick: () => openModal("create" /* CREATE */),
|
|
@@ -14941,7 +15008,7 @@ var SavedViewsContent = (props) => {
|
|
|
14941
15008
|
i18n.t("savedViews.actions.create")
|
|
14942
15009
|
))
|
|
14943
15010
|
)),
|
|
14944
|
-
/* @__PURE__ */
|
|
15011
|
+
/* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14945
15012
|
PanelContent,
|
|
14946
15013
|
{
|
|
14947
15014
|
onSelect: ({ item }) => selectView(item),
|
|
@@ -14951,15 +15018,15 @@ var SavedViewsContent = (props) => {
|
|
|
14951
15018
|
selectedSavedView: selectedView,
|
|
14952
15019
|
tableConfig: props.tableConfig,
|
|
14953
15020
|
defaultView: props.defaultView,
|
|
14954
|
-
|
|
15021
|
+
presetViews: props.presetViews,
|
|
14955
15022
|
savedViews: allViews,
|
|
14956
15023
|
provider: props.provider,
|
|
14957
15024
|
userId: props.userId,
|
|
14958
15025
|
onClearTemporary: clearTemporaryView
|
|
14959
15026
|
}
|
|
14960
15027
|
))
|
|
14961
|
-
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */
|
|
14962
|
-
|
|
15028
|
+
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15029
|
+
FormModal,
|
|
14963
15030
|
{
|
|
14964
15031
|
open: true,
|
|
14965
15032
|
mode: activeModal,
|
|
@@ -14972,14 +15039,14 @@ var SavedViewsContent = (props) => {
|
|
|
14972
15039
|
setOpenEditCreateModal: closeModal,
|
|
14973
15040
|
defaultView: props.defaultView
|
|
14974
15041
|
}
|
|
14975
|
-
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */
|
|
15042
|
+
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14976
15043
|
SavedViewsDeleteConfirmationModalShared,
|
|
14977
15044
|
{
|
|
14978
15045
|
open: true,
|
|
14979
15046
|
onDelete: confirmDeleteAndCloseModal,
|
|
14980
15047
|
onCancel: closeModal
|
|
14981
15048
|
}
|
|
14982
|
-
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */
|
|
15049
|
+
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14983
15050
|
SharedViewFormModal,
|
|
14984
15051
|
{
|
|
14985
15052
|
open: true,
|
|
@@ -14994,31 +15061,125 @@ var SavedViewsContent = (props) => {
|
|
|
14994
15061
|
));
|
|
14995
15062
|
};
|
|
14996
15063
|
var SavedViews = (props) => {
|
|
14997
|
-
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 }))));
|
|
14998
15065
|
};
|
|
14999
15066
|
|
|
15000
|
-
// src/
|
|
15001
|
-
var
|
|
15002
|
-
|
|
15003
|
-
|
|
15067
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15068
|
+
var import_react16 = __toESM(require("react"));
|
|
15069
|
+
|
|
15070
|
+
// src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
|
|
15071
|
+
var import_react14 = require("react");
|
|
15072
|
+
var DEFAULT_COLUMN_STATE = {
|
|
15073
|
+
hide: false,
|
|
15074
|
+
pinned: null,
|
|
15075
|
+
width: 200,
|
|
15076
|
+
sort: null,
|
|
15077
|
+
sortIndex: null,
|
|
15078
|
+
pivot: false,
|
|
15079
|
+
pivotIndex: null,
|
|
15080
|
+
aggFunc: null,
|
|
15081
|
+
rowGroup: false,
|
|
15082
|
+
rowGroupIndex: null,
|
|
15083
|
+
flex: null
|
|
15084
|
+
};
|
|
15085
|
+
var getColumnStateFromDefs = (columnDefs) => {
|
|
15086
|
+
return columnDefs.map((colDef) => {
|
|
15087
|
+
const field = colDef.field ?? colDef.colId;
|
|
15088
|
+
if (!field)
|
|
15089
|
+
return null;
|
|
15090
|
+
return {
|
|
15091
|
+
colId: field,
|
|
15092
|
+
hide: colDef.hide ?? false,
|
|
15093
|
+
pinned: colDef.pinned ?? null,
|
|
15094
|
+
width: colDef.width ?? colDef.minWidth ?? DEFAULT_COLUMN_STATE.width,
|
|
15095
|
+
sort: null,
|
|
15096
|
+
sortIndex: null,
|
|
15097
|
+
pivot: false,
|
|
15098
|
+
pivotIndex: null,
|
|
15099
|
+
aggFunc: null,
|
|
15100
|
+
rowGroup: false,
|
|
15101
|
+
rowGroupIndex: null,
|
|
15102
|
+
flex: colDef.flex ?? null
|
|
15103
|
+
};
|
|
15104
|
+
}).filter((col) => col !== null);
|
|
15105
|
+
};
|
|
15106
|
+
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15107
|
+
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;
|
|
15004
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
|
|
15005
15170
|
var SmartGridSavedViews = (props) => {
|
|
15006
15171
|
const { gridApi, userId, projectId, companyId } = props;
|
|
15007
15172
|
const { config: tableConfig, setConfig: setTableConfig } = useSmartGridConfig(gridApi);
|
|
15008
|
-
const
|
|
15009
|
-
|
|
15010
|
-
|
|
15011
|
-
});
|
|
15012
|
-
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)(
|
|
15013
15176
|
({ item }) => {
|
|
15014
15177
|
if (!gridApi)
|
|
15015
15178
|
return item;
|
|
15016
|
-
|
|
15017
|
-
|
|
15018
|
-
gridApi
|
|
15019
|
-
|
|
15020
|
-
gridApi.setGridOption("rowHeight", props.defaultRowHeight);
|
|
15021
|
-
gridApi.refreshCells();
|
|
15179
|
+
const isPresetView = item.view_level === "default";
|
|
15180
|
+
if (isPresetView) {
|
|
15181
|
+
updateTableConfig(item, gridApi, "smart-grid");
|
|
15182
|
+
setTableConfig(item.table_config);
|
|
15022
15183
|
return item;
|
|
15023
15184
|
}
|
|
15024
15185
|
const updatedView = {
|
|
@@ -15032,22 +15193,9 @@ var SmartGridSavedViews = (props) => {
|
|
|
15032
15193
|
setTableConfig(updatedView.table_config);
|
|
15033
15194
|
return updatedView;
|
|
15034
15195
|
},
|
|
15035
|
-
[
|
|
15036
|
-
gridApi,
|
|
15037
|
-
props.defaultViewFilters,
|
|
15038
|
-
props.defaultRowHeight,
|
|
15039
|
-
tableConfig,
|
|
15040
|
-
setTableConfig
|
|
15041
|
-
]
|
|
15042
|
-
);
|
|
15043
|
-
const stickyViewsKey = generateStickyViewsKey(
|
|
15044
|
-
props.domain,
|
|
15045
|
-
props.tableName,
|
|
15046
|
-
userId,
|
|
15047
|
-
projectId,
|
|
15048
|
-
companyId
|
|
15196
|
+
[gridApi, tableConfig, setTableConfig]
|
|
15049
15197
|
);
|
|
15050
|
-
return /* @__PURE__ */
|
|
15198
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
15051
15199
|
SavedViews,
|
|
15052
15200
|
{
|
|
15053
15201
|
onSelect,
|
|
@@ -15057,20 +15205,19 @@ var SmartGridSavedViews = (props) => {
|
|
|
15057
15205
|
companyId,
|
|
15058
15206
|
provider: "smart-grid",
|
|
15059
15207
|
defaultView,
|
|
15208
|
+
presetViews,
|
|
15060
15209
|
tableName: props.tableName,
|
|
15061
|
-
tableConfig
|
|
15062
|
-
stickyViewsKey
|
|
15210
|
+
tableConfig
|
|
15063
15211
|
}
|
|
15064
|
-
)
|
|
15212
|
+
);
|
|
15065
15213
|
};
|
|
15066
15214
|
|
|
15067
|
-
// src/
|
|
15068
|
-
var
|
|
15215
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15216
|
+
var import_react18 = __toESM(require("react"));
|
|
15069
15217
|
|
|
15070
|
-
// src/
|
|
15071
|
-
var
|
|
15072
|
-
var
|
|
15073
|
-
var DEFAULT_COLUMN_STATE = {
|
|
15218
|
+
// src/components/adapters/data-table/DataTableDefaultSavedView.tsx
|
|
15219
|
+
var import_react17 = require("react");
|
|
15220
|
+
var DEFAULT_COLUMN_STATE2 = {
|
|
15074
15221
|
hidden: false,
|
|
15075
15222
|
pinned: null,
|
|
15076
15223
|
width: 200,
|
|
@@ -15085,7 +15232,7 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15085
15232
|
if (column.field.includes("custom_field")) {
|
|
15086
15233
|
return {
|
|
15087
15234
|
field: column.field,
|
|
15088
|
-
...
|
|
15235
|
+
...DEFAULT_COLUMN_STATE2
|
|
15089
15236
|
};
|
|
15090
15237
|
}
|
|
15091
15238
|
return {
|
|
@@ -15096,11 +15243,11 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15096
15243
|
rowGroupIndex: null,
|
|
15097
15244
|
sort: null,
|
|
15098
15245
|
sortIndex: null,
|
|
15099
|
-
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
|
|
15100
15247
|
};
|
|
15101
15248
|
});
|
|
15102
15249
|
};
|
|
15103
|
-
var
|
|
15250
|
+
var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
|
|
15104
15251
|
var _a, _b, _c;
|
|
15105
15252
|
const defaultColumnState = getColumnState(columnDefinitions);
|
|
15106
15253
|
const result = {
|
|
@@ -15116,52 +15263,38 @@ var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
|
|
|
15116
15263
|
};
|
|
15117
15264
|
return result;
|
|
15118
15265
|
};
|
|
15119
|
-
var
|
|
15120
|
-
|
|
15121
|
-
|
|
15122
|
-
|
|
15123
|
-
|
|
15124
|
-
|
|
15125
|
-
}
|
|
15126
|
-
|
|
15127
|
-
const name = useDefaultViewName2(props.domain, props.defaultViewName);
|
|
15128
|
-
const extractedDefaultConfig = (0, import_react16.useMemo)(
|
|
15129
|
-
() => extractDefaultView(props.columnDefinitions, props.receivedConfigFromTool),
|
|
15130
|
-
[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]
|
|
15131
15274
|
);
|
|
15132
|
-
return {
|
|
15133
|
-
id: "default",
|
|
15134
|
-
view_level: "default",
|
|
15135
|
-
name,
|
|
15136
|
-
table_config: extractedDefaultConfig
|
|
15137
|
-
};
|
|
15138
15275
|
};
|
|
15139
15276
|
|
|
15140
|
-
// src/
|
|
15141
|
-
var
|
|
15142
|
-
var
|
|
15143
|
-
return `savedView-${domain}-${tableName}-${companyId}-${projectId}-${userId}`;
|
|
15144
|
-
};
|
|
15145
|
-
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;
|
|
15146
15280
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15147
|
-
const
|
|
15148
|
-
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
|
|
15149
15288
|
);
|
|
15150
|
-
(0,
|
|
15289
|
+
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15151
15290
|
setTableConfig: (newConfig) => {
|
|
15152
15291
|
setInternalTableConfig(newConfig);
|
|
15153
15292
|
}
|
|
15154
15293
|
}));
|
|
15155
|
-
const
|
|
15156
|
-
defaultViewName: props.defaultViewName,
|
|
15157
|
-
receivedConfigFromTool: props.defaultViewConfig,
|
|
15158
|
-
domain: props.domain,
|
|
15159
|
-
columnDefinitions: props.columnDefinitions
|
|
15160
|
-
});
|
|
15161
|
-
const onSelect = (0, import_react17.useCallback)(
|
|
15294
|
+
const onSelect = (0, import_react18.useCallback)(
|
|
15162
15295
|
({ item }) => {
|
|
15163
|
-
const
|
|
15164
|
-
const updatedView =
|
|
15296
|
+
const isPresetView = item.view_level === "default";
|
|
15297
|
+
const updatedView = isPresetView ? item : {
|
|
15165
15298
|
...item,
|
|
15166
15299
|
table_config: customAndConfigSync(
|
|
15167
15300
|
item.table_config,
|
|
@@ -15177,14 +15310,7 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15177
15310
|
if (!internalTableConfig) {
|
|
15178
15311
|
return null;
|
|
15179
15312
|
}
|
|
15180
|
-
|
|
15181
|
-
props.domain,
|
|
15182
|
-
props.tableName,
|
|
15183
|
-
userId,
|
|
15184
|
-
projectId,
|
|
15185
|
-
companyId
|
|
15186
|
-
);
|
|
15187
|
-
return /* @__PURE__ */ import_react17.default.createElement(import_toast_alert4.ToastAlertProvider, null, /* @__PURE__ */ import_react17.default.createElement(
|
|
15313
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
15188
15314
|
SavedViews,
|
|
15189
15315
|
{
|
|
15190
15316
|
onSelect,
|
|
@@ -15194,21 +15320,22 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15194
15320
|
companyId,
|
|
15195
15321
|
provider: "data-table",
|
|
15196
15322
|
defaultView,
|
|
15323
|
+
presetViews,
|
|
15197
15324
|
tableName: props.tableName,
|
|
15198
|
-
tableConfig: internalTableConfig
|
|
15199
|
-
stickyViewsKey
|
|
15325
|
+
tableConfig: internalTableConfig
|
|
15200
15326
|
}
|
|
15201
|
-
)
|
|
15327
|
+
);
|
|
15202
15328
|
});
|
|
15203
15329
|
DataTableSavedViews.displayName = "DataTableSavedViews";
|
|
15204
15330
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15205
15331
|
0 && (module.exports = {
|
|
15206
15332
|
DataTableSavedViews,
|
|
15207
15333
|
ExpandedPanel,
|
|
15334
|
+
FormModal,
|
|
15208
15335
|
PanelContent,
|
|
15209
15336
|
SavedViewCollectionMenuItem,
|
|
15337
|
+
SavedViews,
|
|
15210
15338
|
SavedViewsDeleteConfirmationModalShared,
|
|
15211
|
-
SavedViewsFormModal,
|
|
15212
15339
|
SmartGridSavedViews,
|
|
15213
15340
|
getTranslations,
|
|
15214
15341
|
useSavedViewsPanel
|