@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/modern/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) => {
|
|
@@ -11284,7 +11378,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11284
11378
|
},
|
|
11285
11379
|
props.item.name
|
|
11286
11380
|
),
|
|
11287
|
-
/* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(import_core_react3.Box, { justifyContent: "space-between" }, props.item.
|
|
11381
|
+
/* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(import_core_react3.Box, { justifyContent: "space-between" }, props.item.view_level !== "default" && props.canUpdate && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
|
|
11288
11382
|
import_core_react3.Button,
|
|
11289
11383
|
{
|
|
11290
11384
|
onClick: updateItem,
|
|
@@ -11295,7 +11389,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11295
11389
|
loading: props.isUpdateProcessing
|
|
11296
11390
|
},
|
|
11297
11391
|
i18n.t("savedViews.actions.update")
|
|
11298
|
-
)), props.item.
|
|
11392
|
+
)), props.item.view_level !== "default" && props.selected && !props.canUpdate && props.item.id !== "temporary" && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
|
|
11299
11393
|
import_core_react3.Button,
|
|
11300
11394
|
{
|
|
11301
11395
|
onClick: copyShareLink,
|
|
@@ -11304,7 +11398,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11304
11398
|
"aria-label": i18n.t("savedViews.actions.copyShareLink"),
|
|
11305
11399
|
"data-testid": "copy-share-link-button"
|
|
11306
11400
|
},
|
|
11307
|
-
/* @__PURE__ */ React15.createElement(Link_default, { size: "sm" })
|
|
11401
|
+
/* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Link_default, { size: "sm" }))
|
|
11308
11402
|
)), props.item.id === "temporary" && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement(
|
|
11309
11403
|
import_core_react3.Button,
|
|
11310
11404
|
{
|
|
@@ -11318,8 +11412,8 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11318
11412
|
title: i18n.t("savedViews.actions.clearTemporary"),
|
|
11319
11413
|
"data-testid": "clear-temporary-view-button"
|
|
11320
11414
|
},
|
|
11321
|
-
/* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" })
|
|
11322
|
-
))), /* @__PURE__ */ React15.createElement(import_core_react3.Box, null, props.item.
|
|
11415
|
+
/* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" }))
|
|
11416
|
+
))), /* @__PURE__ */ React15.createElement(import_core_react3.Box, null, props.item.view_level !== "default" && props.canEditOrDelete && /* @__PURE__ */ React15.createElement("div", { onClick: (e2) => e2.stopPropagation() }, /* @__PURE__ */ React15.createElement(
|
|
11323
11417
|
import_core_react3.DropdownFlyout,
|
|
11324
11418
|
{
|
|
11325
11419
|
"data-testid": "saved-view-overflow-button",
|
|
@@ -11334,7 +11428,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
11334
11428
|
);
|
|
11335
11429
|
};
|
|
11336
11430
|
|
|
11337
|
-
// src/
|
|
11431
|
+
// src/components/panels/ExpandedPanel.tsx
|
|
11338
11432
|
var import_core_react4 = require("@procore/core-react");
|
|
11339
11433
|
var ExpandedPanel = styled_components_esm_default(import_core_react4.Panel)`
|
|
11340
11434
|
width: ${({ provider }) => provider === "data-table" ? "316px" : "100%"};
|
|
@@ -11342,8 +11436,8 @@ var ExpandedPanel = styled_components_esm_default(import_core_react4.Panel)`
|
|
|
11342
11436
|
border-radius: 4px 0 0 4px;
|
|
11343
11437
|
`;
|
|
11344
11438
|
|
|
11345
|
-
// src/
|
|
11346
|
-
var
|
|
11439
|
+
// src/components/panels/PanelContent.tsx
|
|
11440
|
+
var import_core_react8 = require("@procore/core-react");
|
|
11347
11441
|
var import_toast_alert2 = require("@procore/toast-alert");
|
|
11348
11442
|
var import_react9 = __toESM(require("react"));
|
|
11349
11443
|
|
|
@@ -11389,10 +11483,10 @@ function requestJSON(url, requestParams = {}) {
|
|
|
11389
11483
|
);
|
|
11390
11484
|
}
|
|
11391
11485
|
|
|
11392
|
-
// src/utils/
|
|
11486
|
+
// src/utils/api/queries.ts
|
|
11393
11487
|
var import_react_query2 = require("@tanstack/react-query");
|
|
11394
11488
|
|
|
11395
|
-
// src/utils/
|
|
11489
|
+
// src/utils/api/queriesHandler.ts
|
|
11396
11490
|
var import_react_query = require("@tanstack/react-query");
|
|
11397
11491
|
var import_core_react5 = require("@procore/core-react");
|
|
11398
11492
|
var useApiRequest = (props, method, mutationKey) => {
|
|
@@ -11457,10 +11551,10 @@ var useApiRequest = (props, method, mutationKey) => {
|
|
|
11457
11551
|
});
|
|
11458
11552
|
};
|
|
11459
11553
|
|
|
11460
|
-
// src/utils/
|
|
11554
|
+
// src/utils/constants/viewLevels.ts
|
|
11461
11555
|
var VIEW_LEVELS = ["company", "project", "personal"];
|
|
11462
11556
|
|
|
11463
|
-
// src/utils/
|
|
11557
|
+
// src/utils/api/queries.ts
|
|
11464
11558
|
var PAGE_SIZE = 50 * VIEW_LEVELS.length;
|
|
11465
11559
|
var useSavedViewsQuery = (props) => {
|
|
11466
11560
|
const { projectId, companyId, domain, tableName } = props;
|
|
@@ -11513,24 +11607,23 @@ var useFetchSavedViewById = (savedViewToken, queryInput, enabled = true) => {
|
|
|
11513
11607
|
});
|
|
11514
11608
|
};
|
|
11515
11609
|
|
|
11516
|
-
// src/
|
|
11610
|
+
// src/components/panels/PanelContentUtils.ts
|
|
11517
11611
|
var import_lodash = __toESM(require_lodash());
|
|
11518
11612
|
|
|
11519
|
-
// src/
|
|
11613
|
+
// src/components/adapters/smart-grid/SmartGridUtils.ts
|
|
11520
11614
|
function getSmartGridConfig(api) {
|
|
11521
|
-
const
|
|
11522
|
-
const
|
|
11523
|
-
const
|
|
11524
|
-
const
|
|
11525
|
-
const
|
|
11526
|
-
|
|
11527
|
-
columnState
|
|
11528
|
-
rowHeight
|
|
11529
|
-
columnGroupState
|
|
11530
|
-
rowGroupState
|
|
11531
|
-
filterState
|
|
11615
|
+
const columnState = api.getColumnState();
|
|
11616
|
+
const columnGroupState = api.getColumnGroupState();
|
|
11617
|
+
const rowGroupState = api.getRowGroupColumns().map((col) => col.getColId());
|
|
11618
|
+
const rowHeight = api.getGridOption("rowHeight") ?? api.getSizesForCurrentTheme().rowHeight;
|
|
11619
|
+
const filterState = api.getFilterModel();
|
|
11620
|
+
return {
|
|
11621
|
+
columnState,
|
|
11622
|
+
rowHeight,
|
|
11623
|
+
columnGroupState,
|
|
11624
|
+
rowGroupState,
|
|
11625
|
+
filterState
|
|
11532
11626
|
};
|
|
11533
|
-
return smartGridConfig;
|
|
11534
11627
|
}
|
|
11535
11628
|
function setSmartGridConfig(api, config) {
|
|
11536
11629
|
api.applyColumnState({
|
|
@@ -11545,7 +11638,7 @@ function setSmartGridConfig(api, config) {
|
|
|
11545
11638
|
}
|
|
11546
11639
|
}
|
|
11547
11640
|
|
|
11548
|
-
// src/
|
|
11641
|
+
// src/components/saved-views/SavedViewsUtils.ts
|
|
11549
11642
|
var customAndConfigSync = (viewTableConfig, defaultTableConfig) => {
|
|
11550
11643
|
if (!viewTableConfig && !defaultTableConfig)
|
|
11551
11644
|
return void 0;
|
|
@@ -11604,7 +11697,7 @@ var updateTableConfig = (view, tableApi, provider) => {
|
|
|
11604
11697
|
}
|
|
11605
11698
|
};
|
|
11606
11699
|
|
|
11607
|
-
// src/
|
|
11700
|
+
// src/components/panels/PanelContentUtils.ts
|
|
11608
11701
|
var getOrderedVisibleColumns = (columns, idKey) => {
|
|
11609
11702
|
if (!columns)
|
|
11610
11703
|
return [];
|
|
@@ -11699,7 +11792,7 @@ var hasPermissionForViewLevel = (viewLevel, permissions) => {
|
|
|
11699
11792
|
}
|
|
11700
11793
|
};
|
|
11701
11794
|
|
|
11702
|
-
// src/
|
|
11795
|
+
// src/components/panels/useGroups.ts
|
|
11703
11796
|
var import_react6 = require("react");
|
|
11704
11797
|
var useGroups = () => {
|
|
11705
11798
|
const [groups, setGroups] = (0, import_react6.useState)(
|
|
@@ -11711,7 +11804,7 @@ var useGroups = () => {
|
|
|
11711
11804
|
return { groups, toggleGroup };
|
|
11712
11805
|
};
|
|
11713
11806
|
|
|
11714
|
-
// src/
|
|
11807
|
+
// src/components/panels/ViewLevelHeader.tsx
|
|
11715
11808
|
var import_core_react6 = require("@procore/core-react");
|
|
11716
11809
|
var import_react7 = __toESM(require("react"));
|
|
11717
11810
|
var groupIcon = (group) => {
|
|
@@ -11748,7 +11841,7 @@ var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
|
|
|
11748
11841
|
};
|
|
11749
11842
|
var ViewLevelHeader_default = ViewLevelHeader;
|
|
11750
11843
|
|
|
11751
|
-
// src/utils/
|
|
11844
|
+
// src/utils/hooks/useScrollToRef.ts
|
|
11752
11845
|
var import_react8 = require("react");
|
|
11753
11846
|
var useScrollToRef = (dependency) => {
|
|
11754
11847
|
const ref = (0, import_react8.useRef)(null);
|
|
@@ -11760,7 +11853,8 @@ var useScrollToRef = (dependency) => {
|
|
|
11760
11853
|
return ref;
|
|
11761
11854
|
};
|
|
11762
11855
|
|
|
11763
|
-
// src/
|
|
11856
|
+
// src/components/panels/PanelContent.styles.ts
|
|
11857
|
+
var import_core_react7 = require("@procore/core-react");
|
|
11764
11858
|
var Row = styled_components_esm_default(import_core_react7.UNSAFE_Menu.Item)`
|
|
11765
11859
|
width: 100%;
|
|
11766
11860
|
padding-left: 35px;
|
|
@@ -11777,11 +11871,17 @@ var Panel2 = styled_components_esm_default(import_core_react7.DetailPage.Card)`
|
|
|
11777
11871
|
padding-top: ${import_core_react7.spacing.sm}px;
|
|
11778
11872
|
box-shadow: none;
|
|
11779
11873
|
`;
|
|
11874
|
+
|
|
11875
|
+
// src/components/panels/PanelContent.tsx
|
|
11780
11876
|
var PanelContent = (props) => {
|
|
11877
|
+
const { queryInput, selectedSavedView, tableConfig } = props;
|
|
11781
11878
|
const { showToast } = (0, import_toast_alert2.useToastAlertContext)();
|
|
11782
|
-
const I18n = (0,
|
|
11783
|
-
const {
|
|
11784
|
-
const
|
|
11879
|
+
const I18n = (0, import_core_react8.useI18nContext)();
|
|
11880
|
+
const { data: savedViewsFromQuery, error: savedViewsError } = useSavedViewsQuery(props.queryInput);
|
|
11881
|
+
const updateMutation = useUpdateSavedView(queryInput);
|
|
11882
|
+
const { mutate: updateSavedView } = updateMutation;
|
|
11883
|
+
const isUpdateLoading = "isPending" in updateMutation ? updateMutation.isPending : updateMutation.isLoading ?? false;
|
|
11884
|
+
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11785
11885
|
const errorToastRef = import_react9.default.useRef(null);
|
|
11786
11886
|
import_react9.default.useEffect(() => {
|
|
11787
11887
|
if (savedViewsError && savedViewsError !== errorToastRef.current) {
|
|
@@ -11790,12 +11890,16 @@ var PanelContent = (props) => {
|
|
|
11790
11890
|
}
|
|
11791
11891
|
}, [savedViewsError, showToast, I18n]);
|
|
11792
11892
|
const { data: permissions } = useSavedViewsPermissions(props.queryInput);
|
|
11793
|
-
const selectedRowRef = useScrollToRef(
|
|
11893
|
+
const selectedRowRef = useScrollToRef(savedViews);
|
|
11894
|
+
const { groups, toggleGroup } = useGroups();
|
|
11895
|
+
const isTemporarySelected = selectedSavedView?.id === "temporary";
|
|
11896
|
+
const temporaryView = savedViews?.find((view) => view.id === "temporary");
|
|
11897
|
+
const presetViews = props.presetViews || [props.defaultView];
|
|
11794
11898
|
const onUpdate = (data) => {
|
|
11795
11899
|
const newSavedView = {
|
|
11796
11900
|
...data,
|
|
11797
|
-
...
|
|
11798
|
-
table_config:
|
|
11901
|
+
...selectedSavedView,
|
|
11902
|
+
table_config: tableConfig
|
|
11799
11903
|
};
|
|
11800
11904
|
updateSavedView(newSavedView, {
|
|
11801
11905
|
onSuccess: () => {
|
|
@@ -11807,13 +11911,7 @@ var PanelContent = (props) => {
|
|
|
11807
11911
|
}
|
|
11808
11912
|
});
|
|
11809
11913
|
};
|
|
11810
|
-
|
|
11811
|
-
const isDefaultSelected = props.selectedSavedView?.id === "default";
|
|
11812
|
-
const isTemporarySelected = props.selectedSavedView?.id === "temporary";
|
|
11813
|
-
const temporaryView = props.savedViews?.find(
|
|
11814
|
-
(view) => view.id === "temporary"
|
|
11815
|
-
);
|
|
11816
|
-
return /* @__PURE__ */ import_react9.default.createElement(Panel2, { "data-testid": "inner-panel" }, /* @__PURE__ */ import_react9.default.createElement(import_core_react7.Flex, { direction: "column", style: { height: "100%", width: "100%" } }, temporaryView && /* @__PURE__ */ import_react9.default.createElement(
|
|
11914
|
+
return /* @__PURE__ */ import_react9.default.createElement(Panel2, { "data-testid": "inner-panel" }, /* @__PURE__ */ import_react9.default.createElement(import_core_react8.Flex, { direction: "column", style: { height: "100%", width: "100%" } }, temporaryView && /* @__PURE__ */ import_react9.default.createElement(
|
|
11817
11915
|
Row,
|
|
11818
11916
|
{
|
|
11819
11917
|
selected: isTemporarySelected,
|
|
@@ -11828,23 +11926,27 @@ var PanelContent = (props) => {
|
|
|
11828
11926
|
onClearTemporary: props.onClearTemporary
|
|
11829
11927
|
}
|
|
11830
11928
|
)
|
|
11831
|
-
),
|
|
11832
|
-
|
|
11833
|
-
|
|
11834
|
-
|
|
11835
|
-
onClick: () => props.onSelect({ item: props.defaultView }),
|
|
11836
|
-
ref: isDefaultSelected ? selectedRowRef : null
|
|
11837
|
-
},
|
|
11838
|
-
/* @__PURE__ */ import_react9.default.createElement(
|
|
11839
|
-
SavedViewCollectionMenuItem,
|
|
11929
|
+
), presetViews.map((presetView) => {
|
|
11930
|
+
const isSelected = selectedSavedView?.id === presetView.id;
|
|
11931
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
11932
|
+
Row,
|
|
11840
11933
|
{
|
|
11841
|
-
|
|
11842
|
-
selected:
|
|
11843
|
-
|
|
11844
|
-
|
|
11845
|
-
|
|
11934
|
+
key: presetView.id,
|
|
11935
|
+
selected: isSelected,
|
|
11936
|
+
onClick: () => props.onSelect({ item: presetView }),
|
|
11937
|
+
ref: isSelected ? selectedRowRef : null
|
|
11938
|
+
},
|
|
11939
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
11940
|
+
SavedViewCollectionMenuItem,
|
|
11941
|
+
{
|
|
11942
|
+
item: presetView,
|
|
11943
|
+
selected: isSelected
|
|
11944
|
+
}
|
|
11945
|
+
)
|
|
11946
|
+
);
|
|
11947
|
+
}), VIEW_LEVELS.map((level) => {
|
|
11846
11948
|
const isExpanded = groups[level];
|
|
11847
|
-
const views = isExpanded &&
|
|
11949
|
+
const views = isExpanded && savedViews ? savedViews.filter(
|
|
11848
11950
|
(view) => view.view_level === level && view.id !== "temporary"
|
|
11849
11951
|
) : [];
|
|
11850
11952
|
return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, { key: level }, /* @__PURE__ */ import_react9.default.createElement(
|
|
@@ -11855,10 +11957,10 @@ var PanelContent = (props) => {
|
|
|
11855
11957
|
expanded: isExpanded
|
|
11856
11958
|
}
|
|
11857
11959
|
), views.map((view) => {
|
|
11858
|
-
const isSelected =
|
|
11960
|
+
const isSelected = selectedSavedView?.id === view.id;
|
|
11859
11961
|
const canUpdate = isSelected && hasPermissionForViewLevel(view.view_level, permissions) && !isEqual(
|
|
11860
11962
|
view.table_config,
|
|
11861
|
-
|
|
11963
|
+
tableConfig,
|
|
11862
11964
|
props.defaultView.table_config,
|
|
11863
11965
|
props.provider
|
|
11864
11966
|
);
|
|
@@ -11894,81 +11996,22 @@ var PanelContent = (props) => {
|
|
|
11894
11996
|
})));
|
|
11895
11997
|
};
|
|
11896
11998
|
|
|
11897
|
-
// src/
|
|
11898
|
-
var
|
|
11899
|
-
|
|
11900
|
-
// src/SavedViews/components/SavedViews/SmartGrid/SmartGridDefaultSavedView.tsx
|
|
11901
|
-
var import_core_react8 = require("@procore/core-react");
|
|
11902
|
-
var useDefaultViewName = (domain, defaultViewName) => {
|
|
11903
|
-
const i18n = (0, import_core_react8.useI18nContext)();
|
|
11904
|
-
return defaultViewName || i18n.t(domain, {
|
|
11905
|
-
scope: "savedViews.defaultViewTitle",
|
|
11906
|
-
defaultValue: "Default View"
|
|
11907
|
-
});
|
|
11908
|
-
};
|
|
11909
|
-
var useDefaultView = (props) => {
|
|
11910
|
-
const name = useDefaultViewName(props.domain, props.defaultViewName);
|
|
11911
|
-
return {
|
|
11912
|
-
id: "default",
|
|
11913
|
-
view_level: "default",
|
|
11914
|
-
name,
|
|
11915
|
-
table_config: {}
|
|
11916
|
-
};
|
|
11917
|
-
};
|
|
11918
|
-
|
|
11919
|
-
// src/SavedViews/components/SavedViews/SmartGrid/useSmartGridConfig.ts
|
|
11920
|
-
var import_react10 = require("react");
|
|
11921
|
-
var GRID_STATE_EVENTS = [
|
|
11922
|
-
"sortChanged",
|
|
11923
|
-
"filterOpened",
|
|
11924
|
-
"filterChanged",
|
|
11925
|
-
"columnRowGroupChanged",
|
|
11926
|
-
"dragStopped",
|
|
11927
|
-
"columnResized",
|
|
11928
|
-
"columnVisible",
|
|
11929
|
-
"columnPinned",
|
|
11930
|
-
"columnMoved",
|
|
11931
|
-
"modelUpdated",
|
|
11932
|
-
"gridColumnsChanged",
|
|
11933
|
-
"gridReady"
|
|
11934
|
-
];
|
|
11935
|
-
var useSmartGridConfig = (gridApi) => {
|
|
11936
|
-
const [config, setConfig] = (0, import_react10.useState)(
|
|
11937
|
-
() => getSmartGridConfig(gridApi)
|
|
11938
|
-
);
|
|
11939
|
-
(0, import_react10.useEffect)(() => {
|
|
11940
|
-
if (!gridApi)
|
|
11941
|
-
return;
|
|
11942
|
-
const updateConfig = () => {
|
|
11943
|
-
setConfig(getSmartGridConfig(gridApi));
|
|
11944
|
-
};
|
|
11945
|
-
GRID_STATE_EVENTS.forEach((event) => {
|
|
11946
|
-
gridApi.addEventListener(event, updateConfig);
|
|
11947
|
-
});
|
|
11948
|
-
return () => {
|
|
11949
|
-
GRID_STATE_EVENTS.forEach((event) => {
|
|
11950
|
-
gridApi.removeEventListener(event, updateConfig);
|
|
11951
|
-
});
|
|
11952
|
-
};
|
|
11953
|
-
}, [gridApi]);
|
|
11954
|
-
return { config, setConfig };
|
|
11955
|
-
};
|
|
11956
|
-
|
|
11957
|
-
// src/SavedViews/components/SavedViews/SavedViews.tsx
|
|
11958
|
-
var import_core_react13 = require("@procore/core-react");
|
|
11959
|
-
var import_react14 = __toESM(require("react"));
|
|
11999
|
+
// src/components/saved-views/SavedViews.tsx
|
|
12000
|
+
var import_core_react14 = require("@procore/core-react");
|
|
12001
|
+
var import_react13 = __toESM(require("react"));
|
|
11960
12002
|
var import_react_query3 = require("@tanstack/react-query");
|
|
12003
|
+
var import_toast_alert3 = require("@procore/toast-alert");
|
|
11961
12004
|
|
|
11962
|
-
// src/
|
|
12005
|
+
// src/components/modals/DeleteConfirmationModal.tsx
|
|
11963
12006
|
var import_core_react9 = require("@procore/core-react");
|
|
11964
|
-
var
|
|
12007
|
+
var import_react10 = __toESM(require("react"));
|
|
11965
12008
|
var SavedViewsDeleteConfirmationModalShared = ({
|
|
11966
12009
|
onCancel,
|
|
11967
12010
|
onDelete,
|
|
11968
12011
|
open
|
|
11969
12012
|
}) => {
|
|
11970
12013
|
const i18n = (0, import_core_react9.useI18nContext)();
|
|
11971
|
-
return /* @__PURE__ */
|
|
12014
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
11972
12015
|
import_core_react9.ConfirmModal,
|
|
11973
12016
|
{
|
|
11974
12017
|
"data-testid": "delete-confirmation-modal",
|
|
@@ -11978,15 +12021,15 @@ var SavedViewsDeleteConfirmationModalShared = ({
|
|
|
11978
12021
|
onClose: onCancel,
|
|
11979
12022
|
style: { overflowWrap: "anywhere" }
|
|
11980
12023
|
},
|
|
11981
|
-
/* @__PURE__ */
|
|
11982
|
-
/* @__PURE__ */
|
|
12024
|
+
/* @__PURE__ */ import_react10.default.createElement(import_core_react9.Modal.Body, null, /* @__PURE__ */ import_react10.default.createElement(import_core_react9.P, null, i18n.t("savedViews.modal.delete.description"))),
|
|
12025
|
+
/* @__PURE__ */ import_react10.default.createElement(import_core_react9.Modal.Footer, null, /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Modal.FooterButtons, null, /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Button, { variant: "secondary", onClick: onCancel }, i18n.t("savedViews.actions.cancel")), /* @__PURE__ */ import_react10.default.createElement(import_core_react9.Button, { variant: "primary", onClick: onDelete }, i18n.t("savedViews.actions.delete"))))
|
|
11983
12026
|
);
|
|
11984
12027
|
};
|
|
11985
12028
|
|
|
11986
|
-
// src/
|
|
11987
|
-
var
|
|
12029
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
12030
|
+
var import_react11 = __toESM(require("react"));
|
|
11988
12031
|
|
|
11989
|
-
// src/
|
|
12032
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
11990
12033
|
var import_core_react10 = require("@procore/core-react");
|
|
11991
12034
|
var React19 = __toESM(require("react"));
|
|
11992
12035
|
|
|
@@ -14282,7 +14325,7 @@ var TupleSchema = class extends Schema {
|
|
|
14282
14325
|
};
|
|
14283
14326
|
create$1.prototype = TupleSchema.prototype;
|
|
14284
14327
|
|
|
14285
|
-
// src/
|
|
14328
|
+
// src/components/modals/form-modal/FormModalBaseUtils.ts
|
|
14286
14329
|
var getViewLevelOptions = (permissions, i18n) => {
|
|
14287
14330
|
const options = ["personal"];
|
|
14288
14331
|
if (permissions?.can_create_project_saved_views)
|
|
@@ -14315,11 +14358,11 @@ function extractMessage(error, I18n) {
|
|
|
14315
14358
|
return { form: I18n.t("savedViews.modal.errors.unknown") };
|
|
14316
14359
|
}
|
|
14317
14360
|
|
|
14318
|
-
// src/
|
|
14361
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
14319
14362
|
var ScrollContainer = styled_components_esm_default("div")`
|
|
14320
14363
|
overflow: auto;
|
|
14321
14364
|
`;
|
|
14322
|
-
var
|
|
14365
|
+
var FormModalBase = ({
|
|
14323
14366
|
open,
|
|
14324
14367
|
mode,
|
|
14325
14368
|
onCancel,
|
|
@@ -14489,9 +14532,9 @@ var SavedViewsCreateUpdateModalBase = ({
|
|
|
14489
14532
|
);
|
|
14490
14533
|
};
|
|
14491
14534
|
|
|
14492
|
-
// src/
|
|
14535
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
14493
14536
|
var import_core_react11 = require("@procore/core-react");
|
|
14494
|
-
var
|
|
14537
|
+
var FormModal = ({
|
|
14495
14538
|
open,
|
|
14496
14539
|
mode,
|
|
14497
14540
|
onCancel,
|
|
@@ -14504,8 +14547,8 @@ var SavedViewsFormModal = ({
|
|
|
14504
14547
|
defaultView
|
|
14505
14548
|
}) => {
|
|
14506
14549
|
const i18n = (0, import_core_react11.useI18nContext)();
|
|
14507
|
-
return /* @__PURE__ */
|
|
14508
|
-
|
|
14550
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
14551
|
+
FormModalBase,
|
|
14509
14552
|
{
|
|
14510
14553
|
open,
|
|
14511
14554
|
mode,
|
|
@@ -14524,7 +14567,7 @@ var SavedViewsFormModal = ({
|
|
|
14524
14567
|
);
|
|
14525
14568
|
};
|
|
14526
14569
|
|
|
14527
|
-
// src/
|
|
14570
|
+
// src/components/modals/form-modal/SharedViewFormModal.tsx
|
|
14528
14571
|
var import_core_react12 = require("@procore/core-react");
|
|
14529
14572
|
var React21 = __toESM(require("react"));
|
|
14530
14573
|
var SharedViewFormModal = ({
|
|
@@ -14666,21 +14709,28 @@ var SharedViewFormModal = ({
|
|
|
14666
14709
|
);
|
|
14667
14710
|
};
|
|
14668
14711
|
|
|
14669
|
-
// src/utils/
|
|
14670
|
-
var
|
|
14712
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14713
|
+
var import_react12 = require("react");
|
|
14671
14714
|
var import_react_router_dom = require("react-router-dom");
|
|
14715
|
+
var import_core_react13 = require("@procore/core-react");
|
|
14672
14716
|
|
|
14673
14717
|
// src/utils/viewStorage.ts
|
|
14674
14718
|
var ViewStorage = {
|
|
14675
14719
|
save(key, view) {
|
|
14676
14720
|
localStorage.setItem(key, JSON.stringify(view));
|
|
14677
14721
|
},
|
|
14678
|
-
load(key) {
|
|
14722
|
+
load(key, defaultView) {
|
|
14679
14723
|
try {
|
|
14680
14724
|
const stored = localStorage.getItem(key);
|
|
14681
|
-
|
|
14682
|
-
|
|
14683
|
-
|
|
14725
|
+
if (!stored)
|
|
14726
|
+
return defaultView;
|
|
14727
|
+
const parsed = JSON.parse(stored);
|
|
14728
|
+
if (!parsed)
|
|
14729
|
+
return defaultView;
|
|
14730
|
+
const isTableConfigOnly = !parsed.id && !parsed.share_token;
|
|
14731
|
+
return isTableConfigOnly ? { ...defaultView, table_config: parsed } : parsed;
|
|
14732
|
+
} catch {
|
|
14733
|
+
return defaultView;
|
|
14684
14734
|
}
|
|
14685
14735
|
},
|
|
14686
14736
|
remove(key) {
|
|
@@ -14688,7 +14738,7 @@ var ViewStorage = {
|
|
|
14688
14738
|
}
|
|
14689
14739
|
};
|
|
14690
14740
|
|
|
14691
|
-
// src/utils/
|
|
14741
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14692
14742
|
var getUpdatedSearchParams = (currentParams, view) => {
|
|
14693
14743
|
const updatedParams = new URLSearchParams(currentParams);
|
|
14694
14744
|
if (view.id === "default") {
|
|
@@ -14703,55 +14753,72 @@ var getUpdatedSearchParams = (currentParams, view) => {
|
|
|
14703
14753
|
var checkIsViewSelected = (selectedView, viewId) => {
|
|
14704
14754
|
return selectedView?.share_token === viewId || selectedView?.id === viewId;
|
|
14705
14755
|
};
|
|
14706
|
-
var
|
|
14707
|
-
|
|
14708
|
-
|
|
14756
|
+
var findViewByToken = (views, token) => {
|
|
14757
|
+
return views.find((view) => view.share_token === token);
|
|
14758
|
+
};
|
|
14759
|
+
var setViewInUrl = (view, setSearchParams) => {
|
|
14760
|
+
setSearchParams(
|
|
14761
|
+
(currentParams) => getUpdatedSearchParams(currentParams, view),
|
|
14762
|
+
{ replace: true }
|
|
14763
|
+
);
|
|
14764
|
+
};
|
|
14765
|
+
var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
14766
|
+
if (previousParam && !currentParam) {
|
|
14767
|
+
setSearchParams(
|
|
14768
|
+
(currentParams) => {
|
|
14769
|
+
const updatedParams = new URLSearchParams(currentParams);
|
|
14770
|
+
updatedParams.set("saved-view", previousParam);
|
|
14771
|
+
return updatedParams;
|
|
14772
|
+
},
|
|
14773
|
+
{ replace: true }
|
|
14774
|
+
);
|
|
14775
|
+
}
|
|
14776
|
+
};
|
|
14777
|
+
var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
|
|
14778
|
+
const I18n = (0, import_core_react13.useI18nContext)();
|
|
14779
|
+
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14780
|
+
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
14709
14781
|
const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
|
|
14710
|
-
const previousSavedViewParamRef = (0,
|
|
14711
|
-
const [selectedSavedView, setSelectedSavedView] = (0,
|
|
14712
|
-
const stored = ViewStorage.load(storageKey);
|
|
14782
|
+
const previousSavedViewParamRef = (0, import_react12.useRef)(null);
|
|
14783
|
+
const [selectedSavedView, setSelectedSavedView] = (0, import_react12.useState)(() => {
|
|
14784
|
+
const stored = ViewStorage.load(storageKey, config.defaultView);
|
|
14713
14785
|
return stored ?? config.defaultView;
|
|
14714
14786
|
});
|
|
14715
|
-
const [temporaryView, setTemporaryView] = (0,
|
|
14716
|
-
|
|
14787
|
+
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14788
|
+
const loaded = ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14789
|
+
return loaded && (loaded.id === "temporary" || loaded.view_level === "temporary") ? loaded : null;
|
|
14717
14790
|
});
|
|
14718
|
-
const
|
|
14791
|
+
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14719
14792
|
(view) => {
|
|
14720
|
-
|
|
14721
|
-
|
|
14722
|
-
}
|
|
14793
|
+
ViewStorage.save(storageKey, view);
|
|
14794
|
+
setViewInUrl(view, setSearchParams);
|
|
14723
14795
|
},
|
|
14724
|
-
[
|
|
14796
|
+
[storageKey, setSearchParams]
|
|
14725
14797
|
);
|
|
14726
|
-
const
|
|
14727
|
-
(
|
|
14728
|
-
|
|
14729
|
-
|
|
14730
|
-
|
|
14731
|
-
|
|
14732
|
-
|
|
14733
|
-
);
|
|
14734
|
-
},
|
|
14735
|
-
[setSearchParams]
|
|
14798
|
+
const baseViews = (0, import_react12.useMemo)(
|
|
14799
|
+
() => [...savedViews ?? [], ...presetViews ?? []],
|
|
14800
|
+
[savedViews, presetViews]
|
|
14801
|
+
);
|
|
14802
|
+
const allViews = (0, import_react12.useMemo)(
|
|
14803
|
+
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14804
|
+
[baseViews, temporaryView]
|
|
14736
14805
|
);
|
|
14737
|
-
const
|
|
14738
|
-
const allViews = temporaryView ? [...baseViews, temporaryView] : baseViews;
|
|
14739
|
-
const selectView = (0, import_react13.useCallback)(
|
|
14806
|
+
const selectView = (0, import_react12.useCallback)(
|
|
14740
14807
|
(view) => {
|
|
14741
14808
|
const viewToSelect = config.onSelect({ item: view });
|
|
14742
14809
|
setSelectedSavedView(viewToSelect);
|
|
14743
|
-
|
|
14744
|
-
updateUrlForView(viewToSelect);
|
|
14810
|
+
persistViewToStorageAndUrl(viewToSelect);
|
|
14745
14811
|
return viewToSelect;
|
|
14746
14812
|
},
|
|
14747
|
-
[config,
|
|
14813
|
+
[config, persistViewToStorageAndUrl]
|
|
14748
14814
|
);
|
|
14749
|
-
const createTemporaryView = (0,
|
|
14815
|
+
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14750
14816
|
(fetchedView) => {
|
|
14751
14817
|
const tempView = {
|
|
14752
14818
|
...fetchedView,
|
|
14753
14819
|
id: "temporary",
|
|
14754
|
-
name: "
|
|
14820
|
+
name: I18n.t("savedViews.temporaryViewName"),
|
|
14821
|
+
view_level: "temporary"
|
|
14755
14822
|
};
|
|
14756
14823
|
ViewStorage.save(temporaryStorageKey, tempView);
|
|
14757
14824
|
setTemporaryView(tempView);
|
|
@@ -14760,21 +14827,21 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14760
14827
|
},
|
|
14761
14828
|
[temporaryStorageKey, selectView]
|
|
14762
14829
|
);
|
|
14763
|
-
const clearTemporaryView = (0,
|
|
14830
|
+
const clearTemporaryView = (0, import_react12.useCallback)(() => {
|
|
14764
14831
|
ViewStorage.remove(temporaryStorageKey);
|
|
14765
14832
|
setTemporaryView(null);
|
|
14766
14833
|
selectView(config.defaultView);
|
|
14767
14834
|
}, [temporaryStorageKey, config.defaultView, selectView]);
|
|
14768
|
-
const isViewAlreadySelected = (0,
|
|
14835
|
+
const isViewAlreadySelected = (0, import_react12.useCallback)(
|
|
14769
14836
|
(viewId) => checkIsViewSelected(selectedSavedView, viewId),
|
|
14770
14837
|
[selectedSavedView]
|
|
14771
14838
|
);
|
|
14772
|
-
const handleSavedViewFromUrl = (0,
|
|
14839
|
+
const handleSavedViewFromUrl = (0, import_react12.useCallback)(
|
|
14773
14840
|
(viewId) => {
|
|
14774
14841
|
if (isViewAlreadySelected(viewId)) {
|
|
14775
14842
|
return;
|
|
14776
14843
|
}
|
|
14777
|
-
const viewInList = allViews
|
|
14844
|
+
const viewInList = findViewByToken(allViews, viewId);
|
|
14778
14845
|
if (viewInList) {
|
|
14779
14846
|
selectView(viewInList);
|
|
14780
14847
|
} else {
|
|
@@ -14783,36 +14850,20 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14783
14850
|
},
|
|
14784
14851
|
[isViewAlreadySelected, openSharedViewModal, allViews, selectView]
|
|
14785
14852
|
);
|
|
14786
|
-
(0,
|
|
14787
|
-
if (!allViews.length)
|
|
14788
|
-
return;
|
|
14853
|
+
(0, import_react12.useEffect)(() => {
|
|
14789
14854
|
const savedViewId = searchParams.get("saved-view");
|
|
14855
|
+
restoreUrlParameter(
|
|
14856
|
+
savedViewId,
|
|
14857
|
+
previousSavedViewParamRef.current,
|
|
14858
|
+
setSearchParams
|
|
14859
|
+
);
|
|
14790
14860
|
if (savedViewId) {
|
|
14791
|
-
|
|
14792
|
-
}
|
|
14793
|
-
}, [
|
|
14794
|
-
searchParams.get("saved-view"),
|
|
14795
|
-
savedViews,
|
|
14796
|
-
temporaryView,
|
|
14797
|
-
handleSavedViewFromUrl,
|
|
14798
|
-
allViews.length
|
|
14799
|
-
]);
|
|
14800
|
-
(0, import_react13.useEffect)(() => {
|
|
14801
|
-
const currentSavedViewParam = searchParams.get("saved-view");
|
|
14802
|
-
if (previousSavedViewParamRef.current && !currentSavedViewParam) {
|
|
14803
|
-
setSearchParams(
|
|
14804
|
-
(currentParams) => {
|
|
14805
|
-
const updatedParams = new URLSearchParams(currentParams);
|
|
14806
|
-
updatedParams.set("saved-view", previousSavedViewParamRef.current);
|
|
14807
|
-
return updatedParams;
|
|
14808
|
-
},
|
|
14809
|
-
{ replace: true }
|
|
14810
|
-
);
|
|
14861
|
+
previousSavedViewParamRef.current = savedViewId;
|
|
14811
14862
|
}
|
|
14812
|
-
if (
|
|
14813
|
-
|
|
14863
|
+
if (savedViewId && allViews.length > 0) {
|
|
14864
|
+
handleSavedViewFromUrl(savedViewId);
|
|
14814
14865
|
}
|
|
14815
|
-
}, [searchParams
|
|
14866
|
+
}, [searchParams, handleSavedViewFromUrl, allViews.length]);
|
|
14816
14867
|
return {
|
|
14817
14868
|
selectedView: selectedSavedView,
|
|
14818
14869
|
selectView,
|
|
@@ -14823,7 +14874,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14823
14874
|
};
|
|
14824
14875
|
};
|
|
14825
14876
|
|
|
14826
|
-
// src/
|
|
14877
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14827
14878
|
var StyledPanel = styled_components_esm_default.div`
|
|
14828
14879
|
border: ${({ provider }) => provider === "data-table" ? "1px solid #d6dadc" : "none"};
|
|
14829
14880
|
`;
|
|
@@ -14838,13 +14889,15 @@ var SavedViewsContent = (props) => {
|
|
|
14838
14889
|
};
|
|
14839
14890
|
const { data: savedViews } = useSavedViewsQuery(queryInput);
|
|
14840
14891
|
const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
|
|
14841
|
-
const
|
|
14842
|
-
const
|
|
14892
|
+
const { showToast } = (0, import_toast_alert3.useToastAlertContext)();
|
|
14893
|
+
const i18n = (0, import_core_react14.useI18nContext)();
|
|
14894
|
+
const [activeModal, setActiveModal] = (0, import_react13.useState)(null);
|
|
14895
|
+
const [modalData, setModalData] = (0, import_react13.useState)(null);
|
|
14843
14896
|
const openModal = (type, data) => {
|
|
14844
14897
|
setActiveModal(type);
|
|
14845
14898
|
setModalData(data ?? null);
|
|
14846
14899
|
};
|
|
14847
|
-
const closeModal = (0,
|
|
14900
|
+
const closeModal = (0, import_react13.useCallback)(() => {
|
|
14848
14901
|
setActiveModal(null);
|
|
14849
14902
|
setModalData(null);
|
|
14850
14903
|
}, []);
|
|
@@ -14862,13 +14915,14 @@ var SavedViewsContent = (props) => {
|
|
|
14862
14915
|
{
|
|
14863
14916
|
domain: props.domain,
|
|
14864
14917
|
tableName: props.tableName,
|
|
14865
|
-
stickyViewsKey: props.stickyViewsKey,
|
|
14866
14918
|
userId: props.userId,
|
|
14867
14919
|
projectId,
|
|
14920
|
+
companyId,
|
|
14868
14921
|
defaultView: props.defaultView,
|
|
14869
14922
|
onSelect: props.onSelect
|
|
14870
14923
|
},
|
|
14871
14924
|
savedViews,
|
|
14925
|
+
props.presetViews,
|
|
14872
14926
|
openSharedViewModal
|
|
14873
14927
|
);
|
|
14874
14928
|
const { data: fetchedView, isError: fetchError } = useFetchSavedViewById(
|
|
@@ -14882,8 +14936,9 @@ var SavedViewsContent = (props) => {
|
|
|
14882
14936
|
error: createError,
|
|
14883
14937
|
reset: resetCreateError
|
|
14884
14938
|
} = useCreateSavedView(queryInput);
|
|
14885
|
-
(0,
|
|
14939
|
+
(0, import_react13.useEffect)(() => {
|
|
14886
14940
|
if (fetchError) {
|
|
14941
|
+
showToast.error(i18n.t("savedViews.errors.notFound"));
|
|
14887
14942
|
selectView(selectedView ?? props.defaultView);
|
|
14888
14943
|
closeModal();
|
|
14889
14944
|
}
|
|
@@ -14907,6 +14962,7 @@ var SavedViewsContent = (props) => {
|
|
|
14907
14962
|
};
|
|
14908
14963
|
createSavedView(viewToCreate, {
|
|
14909
14964
|
onSuccess: (newView) => {
|
|
14965
|
+
showToast.success(i18n.t("savedViews.create.success"));
|
|
14910
14966
|
selectView(newView);
|
|
14911
14967
|
closeModal();
|
|
14912
14968
|
}
|
|
@@ -14928,23 +14984,22 @@ var SavedViewsContent = (props) => {
|
|
|
14928
14984
|
deleteSelectedView();
|
|
14929
14985
|
closeModal();
|
|
14930
14986
|
};
|
|
14931
|
-
|
|
14932
|
-
return /* @__PURE__ */ import_react14.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react14.default.createElement(
|
|
14987
|
+
return /* @__PURE__ */ import_react13.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14933
14988
|
ExpandedPanel,
|
|
14934
14989
|
{
|
|
14935
14990
|
"data-testid": "saved-view-expanded-panel",
|
|
14936
14991
|
provider: props.provider
|
|
14937
14992
|
},
|
|
14938
|
-
/* @__PURE__ */
|
|
14939
|
-
|
|
14993
|
+
/* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Header, { id: "saved-views-collections-panel-header" }, /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Title, null, /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Flex, { alignItems: "center" }, /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Box, { paddingRight: "sm" }, i18n.t("savedViews.title")), /* @__PURE__ */ import_react13.default.createElement(import_core_react14.Tooltip, { showDelay: 200, overlay: i18n.t("savedViews.tooltip") }, /* @__PURE__ */ import_react13.default.createElement(Help_default, { size: "sm" })))), /* @__PURE__ */ import_react13.default.createElement(
|
|
14994
|
+
import_core_react14.Tooltip,
|
|
14940
14995
|
{
|
|
14941
14996
|
overlay: i18n.t("savedViews.actions.create"),
|
|
14942
14997
|
showDelay: 1e3
|
|
14943
14998
|
},
|
|
14944
|
-
/* @__PURE__ */
|
|
14945
|
-
|
|
14999
|
+
/* @__PURE__ */ import_react13.default.createElement("span", null, /* @__PURE__ */ import_react13.default.createElement(
|
|
15000
|
+
import_core_react14.Button,
|
|
14946
15001
|
{
|
|
14947
|
-
icon: /* @__PURE__ */
|
|
15002
|
+
icon: /* @__PURE__ */ import_react13.default.createElement(Plus_default, null),
|
|
14948
15003
|
variant: "secondary",
|
|
14949
15004
|
"data-testid": "expanded-panel-create-button",
|
|
14950
15005
|
onClick: () => openModal("create" /* CREATE */),
|
|
@@ -14953,7 +15008,7 @@ var SavedViewsContent = (props) => {
|
|
|
14953
15008
|
i18n.t("savedViews.actions.create")
|
|
14954
15009
|
))
|
|
14955
15010
|
)),
|
|
14956
|
-
/* @__PURE__ */
|
|
15011
|
+
/* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14957
15012
|
PanelContent,
|
|
14958
15013
|
{
|
|
14959
15014
|
onSelect: ({ item }) => selectView(item),
|
|
@@ -14963,15 +15018,15 @@ var SavedViewsContent = (props) => {
|
|
|
14963
15018
|
selectedSavedView: selectedView,
|
|
14964
15019
|
tableConfig: props.tableConfig,
|
|
14965
15020
|
defaultView: props.defaultView,
|
|
14966
|
-
|
|
15021
|
+
presetViews: props.presetViews,
|
|
14967
15022
|
savedViews: allViews,
|
|
14968
15023
|
provider: props.provider,
|
|
14969
15024
|
userId: props.userId,
|
|
14970
15025
|
onClearTemporary: clearTemporaryView
|
|
14971
15026
|
}
|
|
14972
15027
|
))
|
|
14973
|
-
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */
|
|
14974
|
-
|
|
15028
|
+
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15029
|
+
FormModal,
|
|
14975
15030
|
{
|
|
14976
15031
|
open: true,
|
|
14977
15032
|
mode: activeModal,
|
|
@@ -14984,14 +15039,14 @@ var SavedViewsContent = (props) => {
|
|
|
14984
15039
|
setOpenEditCreateModal: closeModal,
|
|
14985
15040
|
defaultView: props.defaultView
|
|
14986
15041
|
}
|
|
14987
|
-
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */
|
|
15042
|
+
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14988
15043
|
SavedViewsDeleteConfirmationModalShared,
|
|
14989
15044
|
{
|
|
14990
15045
|
open: true,
|
|
14991
15046
|
onDelete: confirmDeleteAndCloseModal,
|
|
14992
15047
|
onCancel: closeModal
|
|
14993
15048
|
}
|
|
14994
|
-
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */
|
|
15049
|
+
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14995
15050
|
SharedViewFormModal,
|
|
14996
15051
|
{
|
|
14997
15052
|
open: true,
|
|
@@ -15006,31 +15061,124 @@ var SavedViewsContent = (props) => {
|
|
|
15006
15061
|
));
|
|
15007
15062
|
};
|
|
15008
15063
|
var SavedViews = (props) => {
|
|
15009
|
-
return /* @__PURE__ */
|
|
15064
|
+
return /* @__PURE__ */ import_react13.default.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ import_react13.default.createElement(import_react_query3.QueryClientProvider, { client: queryClient }, /* @__PURE__ */ import_react13.default.createElement(import_toast_alert3.ToastAlertProvider, null, /* @__PURE__ */ import_react13.default.createElement(SavedViewsContent, { ...props }))));
|
|
15010
15065
|
};
|
|
15011
15066
|
|
|
15012
|
-
// src/
|
|
15013
|
-
var
|
|
15014
|
-
|
|
15015
|
-
|
|
15067
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15068
|
+
var import_react16 = __toESM(require("react"));
|
|
15069
|
+
|
|
15070
|
+
// src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
|
|
15071
|
+
var import_react14 = require("react");
|
|
15072
|
+
var DEFAULT_COLUMN_STATE = {
|
|
15073
|
+
hide: false,
|
|
15074
|
+
pinned: null,
|
|
15075
|
+
width: 200,
|
|
15076
|
+
sort: null,
|
|
15077
|
+
sortIndex: null,
|
|
15078
|
+
pivot: false,
|
|
15079
|
+
pivotIndex: null,
|
|
15080
|
+
aggFunc: null,
|
|
15081
|
+
rowGroup: false,
|
|
15082
|
+
rowGroupIndex: null,
|
|
15083
|
+
flex: null
|
|
15084
|
+
};
|
|
15085
|
+
var getColumnStateFromDefs = (columnDefs) => {
|
|
15086
|
+
return columnDefs.map((colDef) => {
|
|
15087
|
+
const field = colDef.field ?? colDef.colId;
|
|
15088
|
+
if (!field)
|
|
15089
|
+
return null;
|
|
15090
|
+
return {
|
|
15091
|
+
colId: field,
|
|
15092
|
+
hide: colDef.hide ?? false,
|
|
15093
|
+
pinned: colDef.pinned ?? null,
|
|
15094
|
+
width: colDef.width ?? colDef.minWidth ?? DEFAULT_COLUMN_STATE.width,
|
|
15095
|
+
sort: null,
|
|
15096
|
+
sortIndex: null,
|
|
15097
|
+
pivot: false,
|
|
15098
|
+
pivotIndex: null,
|
|
15099
|
+
aggFunc: null,
|
|
15100
|
+
rowGroup: false,
|
|
15101
|
+
rowGroupIndex: null,
|
|
15102
|
+
flex: colDef.flex ?? null
|
|
15103
|
+
};
|
|
15104
|
+
}).filter((col) => col !== null);
|
|
15105
|
+
};
|
|
15106
|
+
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15107
|
+
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15108
|
+
const defaultColumnState = receivedConfig?.columnState?.length ? receivedConfig.columnState : getColumnStateFromDefs(columnDefs);
|
|
15109
|
+
const result = {
|
|
15110
|
+
columnState: defaultColumnState,
|
|
15111
|
+
columnGroupState: receivedConfig?.columnGroupState ?? [],
|
|
15112
|
+
rowGroupState: receivedConfig?.rowGroupState ?? [],
|
|
15113
|
+
filterState: receivedConfig?.filterState ?? {},
|
|
15114
|
+
rowHeight: receivedConfig?.rowHeight ?? gridApi.getSizesForCurrentTheme()?.rowHeight
|
|
15115
|
+
};
|
|
15116
|
+
return result;
|
|
15117
|
+
};
|
|
15118
|
+
var useNormalizedDefaultViews = (defaultViews, gridApi) => {
|
|
15119
|
+
return (0, import_react14.useMemo)(() => {
|
|
15120
|
+
if (!gridApi)
|
|
15121
|
+
return defaultViews.map((view) => ({ ...view, share_token: view.id }));
|
|
15122
|
+
return defaultViews.map((view) => ({
|
|
15123
|
+
...view,
|
|
15124
|
+
share_token: view.id,
|
|
15125
|
+
table_config: extractDefaultView(gridApi, view.table_config)
|
|
15126
|
+
}));
|
|
15127
|
+
}, [defaultViews, gridApi]);
|
|
15016
15128
|
};
|
|
15129
|
+
|
|
15130
|
+
// src/components/adapters/smart-grid/useSmartGridConfig.ts
|
|
15131
|
+
var import_react15 = require("react");
|
|
15132
|
+
var GRID_STATE_EVENTS = [
|
|
15133
|
+
"sortChanged",
|
|
15134
|
+
"filterOpened",
|
|
15135
|
+
"filterChanged",
|
|
15136
|
+
"columnRowGroupChanged",
|
|
15137
|
+
"dragStopped",
|
|
15138
|
+
"columnResized",
|
|
15139
|
+
"columnVisible",
|
|
15140
|
+
"columnPinned",
|
|
15141
|
+
"columnMoved",
|
|
15142
|
+
"modelUpdated",
|
|
15143
|
+
"gridColumnsChanged",
|
|
15144
|
+
"gridReady"
|
|
15145
|
+
];
|
|
15146
|
+
var useSmartGridConfig = (gridApi) => {
|
|
15147
|
+
const [config, setConfig] = (0, import_react15.useState)(
|
|
15148
|
+
() => getSmartGridConfig(gridApi)
|
|
15149
|
+
);
|
|
15150
|
+
(0, import_react15.useEffect)(() => {
|
|
15151
|
+
if (!gridApi)
|
|
15152
|
+
return;
|
|
15153
|
+
const updateConfig = () => {
|
|
15154
|
+
setConfig(getSmartGridConfig(gridApi));
|
|
15155
|
+
};
|
|
15156
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15157
|
+
gridApi.addEventListener(event, updateConfig);
|
|
15158
|
+
});
|
|
15159
|
+
return () => {
|
|
15160
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15161
|
+
gridApi.removeEventListener(event, updateConfig);
|
|
15162
|
+
});
|
|
15163
|
+
};
|
|
15164
|
+
}, [gridApi]);
|
|
15165
|
+
return { config, setConfig };
|
|
15166
|
+
};
|
|
15167
|
+
|
|
15168
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15017
15169
|
var SmartGridSavedViews = (props) => {
|
|
15018
15170
|
const { gridApi, userId, projectId, companyId } = props;
|
|
15019
15171
|
const { config: tableConfig, setConfig: setTableConfig } = useSmartGridConfig(gridApi);
|
|
15020
|
-
const
|
|
15021
|
-
|
|
15022
|
-
|
|
15023
|
-
});
|
|
15024
|
-
const onSelect = (0, import_react15.useCallback)(
|
|
15172
|
+
const presetViews = useNormalizedDefaultViews(props.defaultViews, gridApi);
|
|
15173
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15174
|
+
const onSelect = (0, import_react16.useCallback)(
|
|
15025
15175
|
({ item }) => {
|
|
15026
15176
|
if (!gridApi)
|
|
15027
15177
|
return item;
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
gridApi
|
|
15031
|
-
|
|
15032
|
-
gridApi.setGridOption("rowHeight", props.defaultRowHeight);
|
|
15033
|
-
gridApi.refreshCells();
|
|
15178
|
+
const isPresetView = item.view_level === "default";
|
|
15179
|
+
if (isPresetView) {
|
|
15180
|
+
updateTableConfig(item, gridApi, "smart-grid");
|
|
15181
|
+
setTableConfig(item.table_config);
|
|
15034
15182
|
return item;
|
|
15035
15183
|
}
|
|
15036
15184
|
const updatedView = {
|
|
@@ -15044,22 +15192,9 @@ var SmartGridSavedViews = (props) => {
|
|
|
15044
15192
|
setTableConfig(updatedView.table_config);
|
|
15045
15193
|
return updatedView;
|
|
15046
15194
|
},
|
|
15047
|
-
[
|
|
15048
|
-
gridApi,
|
|
15049
|
-
props.defaultViewFilters,
|
|
15050
|
-
props.defaultRowHeight,
|
|
15051
|
-
tableConfig,
|
|
15052
|
-
setTableConfig
|
|
15053
|
-
]
|
|
15054
|
-
);
|
|
15055
|
-
const stickyViewsKey = generateStickyViewsKey(
|
|
15056
|
-
props.domain,
|
|
15057
|
-
props.tableName,
|
|
15058
|
-
userId,
|
|
15059
|
-
projectId,
|
|
15060
|
-
companyId
|
|
15195
|
+
[gridApi, tableConfig, setTableConfig]
|
|
15061
15196
|
);
|
|
15062
|
-
return /* @__PURE__ */
|
|
15197
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
15063
15198
|
SavedViews,
|
|
15064
15199
|
{
|
|
15065
15200
|
onSelect,
|
|
@@ -15069,20 +15204,19 @@ var SmartGridSavedViews = (props) => {
|
|
|
15069
15204
|
companyId,
|
|
15070
15205
|
provider: "smart-grid",
|
|
15071
15206
|
defaultView,
|
|
15207
|
+
presetViews,
|
|
15072
15208
|
tableName: props.tableName,
|
|
15073
|
-
tableConfig
|
|
15074
|
-
stickyViewsKey
|
|
15209
|
+
tableConfig
|
|
15075
15210
|
}
|
|
15076
|
-
)
|
|
15211
|
+
);
|
|
15077
15212
|
};
|
|
15078
15213
|
|
|
15079
|
-
// src/
|
|
15080
|
-
var
|
|
15214
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15215
|
+
var import_react18 = __toESM(require("react"));
|
|
15081
15216
|
|
|
15082
|
-
// src/
|
|
15083
|
-
var
|
|
15084
|
-
var
|
|
15085
|
-
var DEFAULT_COLUMN_STATE = {
|
|
15217
|
+
// src/components/adapters/data-table/DataTableDefaultSavedView.tsx
|
|
15218
|
+
var import_react17 = require("react");
|
|
15219
|
+
var DEFAULT_COLUMN_STATE2 = {
|
|
15086
15220
|
hidden: false,
|
|
15087
15221
|
pinned: null,
|
|
15088
15222
|
width: 200,
|
|
@@ -15097,7 +15231,7 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15097
15231
|
if (column.field.includes("custom_field")) {
|
|
15098
15232
|
return {
|
|
15099
15233
|
field: column.field,
|
|
15100
|
-
...
|
|
15234
|
+
...DEFAULT_COLUMN_STATE2
|
|
15101
15235
|
};
|
|
15102
15236
|
}
|
|
15103
15237
|
return {
|
|
@@ -15108,11 +15242,11 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15108
15242
|
rowGroupIndex: null,
|
|
15109
15243
|
sort: null,
|
|
15110
15244
|
sortIndex: null,
|
|
15111
|
-
width: (column.minWidth ??
|
|
15245
|
+
width: (column.minWidth ?? DEFAULT_COLUMN_STATE2.width) > DEFAULT_COLUMN_STATE2.width ? column.minWidth ?? DEFAULT_COLUMN_STATE2.width : (column.maxWidth ?? DEFAULT_COLUMN_STATE2.width) < DEFAULT_COLUMN_STATE2.width ? column.maxWidth ?? DEFAULT_COLUMN_STATE2.width : DEFAULT_COLUMN_STATE2.width
|
|
15112
15246
|
};
|
|
15113
15247
|
});
|
|
15114
15248
|
};
|
|
15115
|
-
var
|
|
15249
|
+
var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
|
|
15116
15250
|
const defaultColumnState = getColumnState(columnDefinitions);
|
|
15117
15251
|
const result = {
|
|
15118
15252
|
columnState: receivedConfigFromTool?.columnState?.length ? receivedConfigFromTool.columnState : defaultColumnState,
|
|
@@ -15127,52 +15261,37 @@ var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
|
|
|
15127
15261
|
};
|
|
15128
15262
|
return result;
|
|
15129
15263
|
};
|
|
15130
|
-
var
|
|
15131
|
-
|
|
15132
|
-
|
|
15133
|
-
|
|
15134
|
-
|
|
15135
|
-
|
|
15136
|
-
}
|
|
15137
|
-
|
|
15138
|
-
const name = useDefaultViewName2(props.domain, props.defaultViewName);
|
|
15139
|
-
const extractedDefaultConfig = (0, import_react16.useMemo)(
|
|
15140
|
-
() => extractDefaultView(props.columnDefinitions, props.receivedConfigFromTool),
|
|
15141
|
-
[props.columnDefinitions, props.receivedConfigFromTool]
|
|
15264
|
+
var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
|
|
15265
|
+
return (0, import_react17.useMemo)(
|
|
15266
|
+
() => defaultViews.map((view) => ({
|
|
15267
|
+
...view,
|
|
15268
|
+
share_token: "",
|
|
15269
|
+
table_config: extractDefaultView2(columnDefinitions, view.table_config)
|
|
15270
|
+
})),
|
|
15271
|
+
[defaultViews, columnDefinitions]
|
|
15142
15272
|
);
|
|
15143
|
-
return {
|
|
15144
|
-
id: "default",
|
|
15145
|
-
view_level: "default",
|
|
15146
|
-
name,
|
|
15147
|
-
table_config: extractedDefaultConfig
|
|
15148
|
-
};
|
|
15149
15273
|
};
|
|
15150
15274
|
|
|
15151
|
-
// src/
|
|
15152
|
-
var
|
|
15153
|
-
var generateStickyViewsKey2 = (domain, tableName, userId, projectId, companyId) => {
|
|
15154
|
-
return `savedView-${domain}-${tableName}-${companyId}-${projectId}-${userId}`;
|
|
15155
|
-
};
|
|
15156
|
-
var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
15275
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15276
|
+
var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
|
|
15157
15277
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15158
|
-
const
|
|
15159
|
-
props.
|
|
15278
|
+
const presetViews = useNormalizedDefaultViews2(
|
|
15279
|
+
props.defaultViews,
|
|
15280
|
+
props.columnDefinitions
|
|
15281
|
+
);
|
|
15282
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15283
|
+
const [internalTableConfig, setInternalTableConfig] = (0, import_react18.useState)(
|
|
15284
|
+
ViewStorage.load(props.stickyViewsKey, defaultView).table_config
|
|
15160
15285
|
);
|
|
15161
|
-
(0,
|
|
15286
|
+
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15162
15287
|
setTableConfig: (newConfig) => {
|
|
15163
15288
|
setInternalTableConfig(newConfig);
|
|
15164
15289
|
}
|
|
15165
15290
|
}));
|
|
15166
|
-
const
|
|
15167
|
-
defaultViewName: props.defaultViewName,
|
|
15168
|
-
receivedConfigFromTool: props.defaultViewConfig,
|
|
15169
|
-
domain: props.domain,
|
|
15170
|
-
columnDefinitions: props.columnDefinitions
|
|
15171
|
-
});
|
|
15172
|
-
const onSelect = (0, import_react17.useCallback)(
|
|
15291
|
+
const onSelect = (0, import_react18.useCallback)(
|
|
15173
15292
|
({ item }) => {
|
|
15174
|
-
const
|
|
15175
|
-
const updatedView =
|
|
15293
|
+
const isPresetView = item.view_level === "default";
|
|
15294
|
+
const updatedView = isPresetView ? item : {
|
|
15176
15295
|
...item,
|
|
15177
15296
|
table_config: customAndConfigSync(
|
|
15178
15297
|
item.table_config,
|
|
@@ -15188,14 +15307,7 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15188
15307
|
if (!internalTableConfig) {
|
|
15189
15308
|
return null;
|
|
15190
15309
|
}
|
|
15191
|
-
|
|
15192
|
-
props.domain,
|
|
15193
|
-
props.tableName,
|
|
15194
|
-
userId,
|
|
15195
|
-
projectId,
|
|
15196
|
-
companyId
|
|
15197
|
-
);
|
|
15198
|
-
return /* @__PURE__ */ import_react17.default.createElement(import_toast_alert4.ToastAlertProvider, null, /* @__PURE__ */ import_react17.default.createElement(
|
|
15310
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
15199
15311
|
SavedViews,
|
|
15200
15312
|
{
|
|
15201
15313
|
onSelect,
|
|
@@ -15205,21 +15317,22 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15205
15317
|
companyId,
|
|
15206
15318
|
provider: "data-table",
|
|
15207
15319
|
defaultView,
|
|
15320
|
+
presetViews,
|
|
15208
15321
|
tableName: props.tableName,
|
|
15209
|
-
tableConfig: internalTableConfig
|
|
15210
|
-
stickyViewsKey
|
|
15322
|
+
tableConfig: internalTableConfig
|
|
15211
15323
|
}
|
|
15212
|
-
)
|
|
15324
|
+
);
|
|
15213
15325
|
});
|
|
15214
15326
|
DataTableSavedViews.displayName = "DataTableSavedViews";
|
|
15215
15327
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15216
15328
|
0 && (module.exports = {
|
|
15217
15329
|
DataTableSavedViews,
|
|
15218
15330
|
ExpandedPanel,
|
|
15331
|
+
FormModal,
|
|
15219
15332
|
PanelContent,
|
|
15220
15333
|
SavedViewCollectionMenuItem,
|
|
15334
|
+
SavedViews,
|
|
15221
15335
|
SavedViewsDeleteConfirmationModalShared,
|
|
15222
|
-
SavedViewsFormModal,
|
|
15223
15336
|
SmartGridSavedViews,
|
|
15224
15337
|
getTranslations,
|
|
15225
15338
|
useSavedViewsPanel
|