@procore/saved-views 5.1.0-alpha.4 → 5.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/legacy/index.d.mts +61 -40
- package/dist/legacy/index.d.ts +61 -40
- package/dist/legacy/index.js +436 -326
- package/dist/legacy/index.mjs +415 -308
- package/dist/modern/index.d.mts +61 -40
- package/dist/modern/index.d.ts +61 -40
- package/dist/modern/index.js +434 -324
- package/dist/modern/index.mjs +413 -306
- package/package.json +1 -1
package/dist/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,15 @@ 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 { mutate: updateSavedView, isPending: isUpdateLoading } = useUpdateSavedView(queryInput);
|
|
11882
|
+
const savedViews = props.savedViews ?? savedViewsFromQuery;
|
|
11785
11883
|
const errorToastRef = import_react9.default.useRef(null);
|
|
11786
11884
|
import_react9.default.useEffect(() => {
|
|
11787
11885
|
if (savedViewsError && savedViewsError !== errorToastRef.current) {
|
|
@@ -11790,12 +11888,16 @@ var PanelContent = (props) => {
|
|
|
11790
11888
|
}
|
|
11791
11889
|
}, [savedViewsError, showToast, I18n]);
|
|
11792
11890
|
const { data: permissions } = useSavedViewsPermissions(props.queryInput);
|
|
11793
|
-
const selectedRowRef = useScrollToRef(
|
|
11891
|
+
const selectedRowRef = useScrollToRef(savedViews);
|
|
11892
|
+
const { groups, toggleGroup } = useGroups();
|
|
11893
|
+
const isTemporarySelected = selectedSavedView?.id === "temporary";
|
|
11894
|
+
const temporaryView = savedViews?.find((view) => view.id === "temporary");
|
|
11895
|
+
const presetViews = props.presetViews || [props.defaultView];
|
|
11794
11896
|
const onUpdate = (data) => {
|
|
11795
11897
|
const newSavedView = {
|
|
11796
11898
|
...data,
|
|
11797
|
-
...
|
|
11798
|
-
table_config:
|
|
11899
|
+
...selectedSavedView,
|
|
11900
|
+
table_config: tableConfig
|
|
11799
11901
|
};
|
|
11800
11902
|
updateSavedView(newSavedView, {
|
|
11801
11903
|
onSuccess: () => {
|
|
@@ -11807,13 +11909,7 @@ var PanelContent = (props) => {
|
|
|
11807
11909
|
}
|
|
11808
11910
|
});
|
|
11809
11911
|
};
|
|
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(
|
|
11912
|
+
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
11913
|
Row,
|
|
11818
11914
|
{
|
|
11819
11915
|
selected: isTemporarySelected,
|
|
@@ -11828,23 +11924,27 @@ var PanelContent = (props) => {
|
|
|
11828
11924
|
onClearTemporary: props.onClearTemporary
|
|
11829
11925
|
}
|
|
11830
11926
|
)
|
|
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,
|
|
11927
|
+
), presetViews.map((presetView) => {
|
|
11928
|
+
const isSelected = selectedSavedView?.id === presetView.id;
|
|
11929
|
+
return /* @__PURE__ */ import_react9.default.createElement(
|
|
11930
|
+
Row,
|
|
11840
11931
|
{
|
|
11841
|
-
|
|
11842
|
-
selected:
|
|
11843
|
-
|
|
11844
|
-
|
|
11845
|
-
|
|
11932
|
+
key: presetView.id,
|
|
11933
|
+
selected: isSelected,
|
|
11934
|
+
onClick: () => props.onSelect({ item: presetView }),
|
|
11935
|
+
ref: isSelected ? selectedRowRef : null
|
|
11936
|
+
},
|
|
11937
|
+
/* @__PURE__ */ import_react9.default.createElement(
|
|
11938
|
+
SavedViewCollectionMenuItem,
|
|
11939
|
+
{
|
|
11940
|
+
item: presetView,
|
|
11941
|
+
selected: isSelected
|
|
11942
|
+
}
|
|
11943
|
+
)
|
|
11944
|
+
);
|
|
11945
|
+
}), VIEW_LEVELS.map((level) => {
|
|
11846
11946
|
const isExpanded = groups[level];
|
|
11847
|
-
const views = isExpanded &&
|
|
11947
|
+
const views = isExpanded && savedViews ? savedViews.filter(
|
|
11848
11948
|
(view) => view.view_level === level && view.id !== "temporary"
|
|
11849
11949
|
) : [];
|
|
11850
11950
|
return /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, { key: level }, /* @__PURE__ */ import_react9.default.createElement(
|
|
@@ -11855,10 +11955,10 @@ var PanelContent = (props) => {
|
|
|
11855
11955
|
expanded: isExpanded
|
|
11856
11956
|
}
|
|
11857
11957
|
), views.map((view) => {
|
|
11858
|
-
const isSelected =
|
|
11958
|
+
const isSelected = selectedSavedView?.id === view.id;
|
|
11859
11959
|
const canUpdate = isSelected && hasPermissionForViewLevel(view.view_level, permissions) && !isEqual(
|
|
11860
11960
|
view.table_config,
|
|
11861
|
-
|
|
11961
|
+
tableConfig,
|
|
11862
11962
|
props.defaultView.table_config,
|
|
11863
11963
|
props.provider
|
|
11864
11964
|
);
|
|
@@ -11894,81 +11994,22 @@ var PanelContent = (props) => {
|
|
|
11894
11994
|
})));
|
|
11895
11995
|
};
|
|
11896
11996
|
|
|
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"));
|
|
11997
|
+
// src/components/saved-views/SavedViews.tsx
|
|
11998
|
+
var import_core_react14 = require("@procore/core-react");
|
|
11999
|
+
var import_react13 = __toESM(require("react"));
|
|
11960
12000
|
var import_react_query3 = require("@tanstack/react-query");
|
|
12001
|
+
var import_toast_alert3 = require("@procore/toast-alert");
|
|
11961
12002
|
|
|
11962
|
-
// src/
|
|
12003
|
+
// src/components/modals/DeleteConfirmationModal.tsx
|
|
11963
12004
|
var import_core_react9 = require("@procore/core-react");
|
|
11964
|
-
var
|
|
12005
|
+
var import_react10 = __toESM(require("react"));
|
|
11965
12006
|
var SavedViewsDeleteConfirmationModalShared = ({
|
|
11966
12007
|
onCancel,
|
|
11967
12008
|
onDelete,
|
|
11968
12009
|
open
|
|
11969
12010
|
}) => {
|
|
11970
12011
|
const i18n = (0, import_core_react9.useI18nContext)();
|
|
11971
|
-
return /* @__PURE__ */
|
|
12012
|
+
return /* @__PURE__ */ import_react10.default.createElement(
|
|
11972
12013
|
import_core_react9.ConfirmModal,
|
|
11973
12014
|
{
|
|
11974
12015
|
"data-testid": "delete-confirmation-modal",
|
|
@@ -11978,15 +12019,15 @@ var SavedViewsDeleteConfirmationModalShared = ({
|
|
|
11978
12019
|
onClose: onCancel,
|
|
11979
12020
|
style: { overflowWrap: "anywhere" }
|
|
11980
12021
|
},
|
|
11981
|
-
/* @__PURE__ */
|
|
11982
|
-
/* @__PURE__ */
|
|
12022
|
+
/* @__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"))),
|
|
12023
|
+
/* @__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
12024
|
);
|
|
11984
12025
|
};
|
|
11985
12026
|
|
|
11986
|
-
// src/
|
|
11987
|
-
var
|
|
12027
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
12028
|
+
var import_react11 = __toESM(require("react"));
|
|
11988
12029
|
|
|
11989
|
-
// src/
|
|
12030
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
11990
12031
|
var import_core_react10 = require("@procore/core-react");
|
|
11991
12032
|
var React19 = __toESM(require("react"));
|
|
11992
12033
|
|
|
@@ -14282,7 +14323,7 @@ var TupleSchema = class extends Schema {
|
|
|
14282
14323
|
};
|
|
14283
14324
|
create$1.prototype = TupleSchema.prototype;
|
|
14284
14325
|
|
|
14285
|
-
// src/
|
|
14326
|
+
// src/components/modals/form-modal/FormModalBaseUtils.ts
|
|
14286
14327
|
var getViewLevelOptions = (permissions, i18n) => {
|
|
14287
14328
|
const options = ["personal"];
|
|
14288
14329
|
if (permissions?.can_create_project_saved_views)
|
|
@@ -14315,11 +14356,11 @@ function extractMessage(error, I18n) {
|
|
|
14315
14356
|
return { form: I18n.t("savedViews.modal.errors.unknown") };
|
|
14316
14357
|
}
|
|
14317
14358
|
|
|
14318
|
-
// src/
|
|
14359
|
+
// src/components/modals/form-modal/FormModalBase.tsx
|
|
14319
14360
|
var ScrollContainer = styled_components_esm_default("div")`
|
|
14320
14361
|
overflow: auto;
|
|
14321
14362
|
`;
|
|
14322
|
-
var
|
|
14363
|
+
var FormModalBase = ({
|
|
14323
14364
|
open,
|
|
14324
14365
|
mode,
|
|
14325
14366
|
onCancel,
|
|
@@ -14489,9 +14530,9 @@ var SavedViewsCreateUpdateModalBase = ({
|
|
|
14489
14530
|
);
|
|
14490
14531
|
};
|
|
14491
14532
|
|
|
14492
|
-
// src/
|
|
14533
|
+
// src/components/modals/form-modal/FormModal.tsx
|
|
14493
14534
|
var import_core_react11 = require("@procore/core-react");
|
|
14494
|
-
var
|
|
14535
|
+
var FormModal = ({
|
|
14495
14536
|
open,
|
|
14496
14537
|
mode,
|
|
14497
14538
|
onCancel,
|
|
@@ -14504,8 +14545,8 @@ var SavedViewsFormModal = ({
|
|
|
14504
14545
|
defaultView
|
|
14505
14546
|
}) => {
|
|
14506
14547
|
const i18n = (0, import_core_react11.useI18nContext)();
|
|
14507
|
-
return /* @__PURE__ */
|
|
14508
|
-
|
|
14548
|
+
return /* @__PURE__ */ import_react11.default.createElement(
|
|
14549
|
+
FormModalBase,
|
|
14509
14550
|
{
|
|
14510
14551
|
open,
|
|
14511
14552
|
mode,
|
|
@@ -14524,7 +14565,7 @@ var SavedViewsFormModal = ({
|
|
|
14524
14565
|
);
|
|
14525
14566
|
};
|
|
14526
14567
|
|
|
14527
|
-
// src/
|
|
14568
|
+
// src/components/modals/form-modal/SharedViewFormModal.tsx
|
|
14528
14569
|
var import_core_react12 = require("@procore/core-react");
|
|
14529
14570
|
var React21 = __toESM(require("react"));
|
|
14530
14571
|
var SharedViewFormModal = ({
|
|
@@ -14666,21 +14707,25 @@ var SharedViewFormModal = ({
|
|
|
14666
14707
|
);
|
|
14667
14708
|
};
|
|
14668
14709
|
|
|
14669
|
-
// src/
|
|
14670
|
-
var
|
|
14710
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14711
|
+
var import_toast_alert4 = require("@procore/toast-alert");
|
|
14712
|
+
|
|
14713
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14714
|
+
var import_react12 = require("react");
|
|
14671
14715
|
var import_react_router_dom = require("react-router-dom");
|
|
14716
|
+
var import_core_react13 = require("@procore/core-react");
|
|
14672
14717
|
|
|
14673
14718
|
// src/utils/viewStorage.ts
|
|
14674
14719
|
var ViewStorage = {
|
|
14675
14720
|
save(key, view) {
|
|
14676
14721
|
localStorage.setItem(key, JSON.stringify(view));
|
|
14677
14722
|
},
|
|
14678
|
-
load(key) {
|
|
14723
|
+
load(key, defaultView) {
|
|
14679
14724
|
try {
|
|
14680
14725
|
const stored = localStorage.getItem(key);
|
|
14681
14726
|
return stored ? JSON.parse(stored) : null;
|
|
14682
14727
|
} catch (e2) {
|
|
14683
|
-
return
|
|
14728
|
+
return defaultView;
|
|
14684
14729
|
}
|
|
14685
14730
|
},
|
|
14686
14731
|
remove(key) {
|
|
@@ -14688,7 +14733,7 @@ var ViewStorage = {
|
|
|
14688
14733
|
}
|
|
14689
14734
|
};
|
|
14690
14735
|
|
|
14691
|
-
// src/utils/
|
|
14736
|
+
// src/utils/hooks/useViewSelection.ts
|
|
14692
14737
|
var getUpdatedSearchParams = (currentParams, view) => {
|
|
14693
14738
|
const updatedParams = new URLSearchParams(currentParams);
|
|
14694
14739
|
if (view.id === "default") {
|
|
@@ -14703,55 +14748,68 @@ var getUpdatedSearchParams = (currentParams, view) => {
|
|
|
14703
14748
|
var checkIsViewSelected = (selectedView, viewId) => {
|
|
14704
14749
|
return selectedView?.share_token === viewId || selectedView?.id === viewId;
|
|
14705
14750
|
};
|
|
14751
|
+
var findViewByToken = (views, token) => {
|
|
14752
|
+
return views.find((view) => view.share_token === token);
|
|
14753
|
+
};
|
|
14754
|
+
var setViewInUrl = (view, setSearchParams) => {
|
|
14755
|
+
setSearchParams(
|
|
14756
|
+
(currentParams) => getUpdatedSearchParams(currentParams, view),
|
|
14757
|
+
{ replace: true }
|
|
14758
|
+
);
|
|
14759
|
+
};
|
|
14760
|
+
var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
14761
|
+
if (previousParam && !currentParam) {
|
|
14762
|
+
setSearchParams(
|
|
14763
|
+
(currentParams) => {
|
|
14764
|
+
const updatedParams = new URLSearchParams(currentParams);
|
|
14765
|
+
updatedParams.set("saved-view", previousParam);
|
|
14766
|
+
return updatedParams;
|
|
14767
|
+
},
|
|
14768
|
+
{ replace: true }
|
|
14769
|
+
);
|
|
14770
|
+
}
|
|
14771
|
+
};
|
|
14706
14772
|
var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
14707
|
-
const
|
|
14708
|
-
const
|
|
14773
|
+
const I18n = (0, import_core_react13.useI18nContext)();
|
|
14774
|
+
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${config.projectId}_${config.userId}`;
|
|
14775
|
+
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
14709
14776
|
const [searchParams, setSearchParams] = (0, import_react_router_dom.useSearchParams)();
|
|
14710
|
-
const previousSavedViewParamRef = (0,
|
|
14711
|
-
const [selectedSavedView, setSelectedSavedView] = (0,
|
|
14712
|
-
const stored = ViewStorage.load(storageKey);
|
|
14777
|
+
const previousSavedViewParamRef = (0, import_react12.useRef)(null);
|
|
14778
|
+
const [selectedSavedView, setSelectedSavedView] = (0, import_react12.useState)(() => {
|
|
14779
|
+
const stored = ViewStorage.load(storageKey, config.defaultView);
|
|
14713
14780
|
return stored ?? config.defaultView;
|
|
14714
14781
|
});
|
|
14715
|
-
const [temporaryView, setTemporaryView] = (0,
|
|
14716
|
-
return ViewStorage.load(temporaryStorageKey);
|
|
14782
|
+
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14783
|
+
return ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14717
14784
|
});
|
|
14718
|
-
const
|
|
14785
|
+
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14719
14786
|
(view) => {
|
|
14720
|
-
|
|
14721
|
-
|
|
14722
|
-
}
|
|
14787
|
+
ViewStorage.save(storageKey, view);
|
|
14788
|
+
setViewInUrl(view, setSearchParams);
|
|
14723
14789
|
},
|
|
14724
|
-
[
|
|
14725
|
-
);
|
|
14726
|
-
const updateUrlForView = (0, import_react13.useCallback)(
|
|
14727
|
-
(view) => {
|
|
14728
|
-
setSearchParams(
|
|
14729
|
-
(currentParams) => {
|
|
14730
|
-
return getUpdatedSearchParams(currentParams, view);
|
|
14731
|
-
},
|
|
14732
|
-
{ replace: true }
|
|
14733
|
-
);
|
|
14734
|
-
},
|
|
14735
|
-
[setSearchParams]
|
|
14790
|
+
[storageKey, setSearchParams]
|
|
14736
14791
|
);
|
|
14737
14792
|
const baseViews = savedViews ?? [];
|
|
14738
|
-
const allViews =
|
|
14739
|
-
|
|
14793
|
+
const allViews = (0, import_react12.useMemo)(
|
|
14794
|
+
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14795
|
+
[baseViews, temporaryView]
|
|
14796
|
+
);
|
|
14797
|
+
const selectView = (0, import_react12.useCallback)(
|
|
14740
14798
|
(view) => {
|
|
14741
14799
|
const viewToSelect = config.onSelect({ item: view });
|
|
14742
14800
|
setSelectedSavedView(viewToSelect);
|
|
14743
|
-
|
|
14744
|
-
updateUrlForView(viewToSelect);
|
|
14801
|
+
persistViewToStorageAndUrl(viewToSelect);
|
|
14745
14802
|
return viewToSelect;
|
|
14746
14803
|
},
|
|
14747
|
-
[config,
|
|
14804
|
+
[config, persistViewToStorageAndUrl, temporaryView, temporaryStorageKey]
|
|
14748
14805
|
);
|
|
14749
|
-
const createTemporaryView = (0,
|
|
14806
|
+
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14750
14807
|
(fetchedView) => {
|
|
14751
14808
|
const tempView = {
|
|
14752
14809
|
...fetchedView,
|
|
14753
14810
|
id: "temporary",
|
|
14754
|
-
name: "
|
|
14811
|
+
name: I18n.t("savedViews.temporaryViewName"),
|
|
14812
|
+
view_level: "temporary"
|
|
14755
14813
|
};
|
|
14756
14814
|
ViewStorage.save(temporaryStorageKey, tempView);
|
|
14757
14815
|
setTemporaryView(tempView);
|
|
@@ -14760,21 +14818,21 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14760
14818
|
},
|
|
14761
14819
|
[temporaryStorageKey, selectView]
|
|
14762
14820
|
);
|
|
14763
|
-
const clearTemporaryView = (0,
|
|
14821
|
+
const clearTemporaryView = (0, import_react12.useCallback)(() => {
|
|
14764
14822
|
ViewStorage.remove(temporaryStorageKey);
|
|
14765
14823
|
setTemporaryView(null);
|
|
14766
14824
|
selectView(config.defaultView);
|
|
14767
14825
|
}, [temporaryStorageKey, config.defaultView, selectView]);
|
|
14768
|
-
const isViewAlreadySelected = (0,
|
|
14826
|
+
const isViewAlreadySelected = (0, import_react12.useCallback)(
|
|
14769
14827
|
(viewId) => checkIsViewSelected(selectedSavedView, viewId),
|
|
14770
14828
|
[selectedSavedView]
|
|
14771
14829
|
);
|
|
14772
|
-
const handleSavedViewFromUrl = (0,
|
|
14830
|
+
const handleSavedViewFromUrl = (0, import_react12.useCallback)(
|
|
14773
14831
|
(viewId) => {
|
|
14774
14832
|
if (isViewAlreadySelected(viewId)) {
|
|
14775
14833
|
return;
|
|
14776
14834
|
}
|
|
14777
|
-
const viewInList = allViews
|
|
14835
|
+
const viewInList = findViewByToken(allViews, viewId);
|
|
14778
14836
|
if (viewInList) {
|
|
14779
14837
|
selectView(viewInList);
|
|
14780
14838
|
} else {
|
|
@@ -14783,36 +14841,27 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14783
14841
|
},
|
|
14784
14842
|
[isViewAlreadySelected, openSharedViewModal, allViews, selectView]
|
|
14785
14843
|
);
|
|
14786
|
-
(0,
|
|
14787
|
-
if (!allViews.length)
|
|
14788
|
-
return;
|
|
14844
|
+
(0, import_react12.useEffect)(() => {
|
|
14789
14845
|
const savedViewId = searchParams.get("saved-view");
|
|
14846
|
+
restoreUrlParameter(
|
|
14847
|
+
savedViewId,
|
|
14848
|
+
previousSavedViewParamRef.current,
|
|
14849
|
+
setSearchParams
|
|
14850
|
+
);
|
|
14790
14851
|
if (savedViewId) {
|
|
14852
|
+
previousSavedViewParamRef.current = savedViewId;
|
|
14853
|
+
}
|
|
14854
|
+
if (savedViewId && allViews.length > 0) {
|
|
14791
14855
|
handleSavedViewFromUrl(savedViewId);
|
|
14792
14856
|
}
|
|
14793
14857
|
}, [
|
|
14794
|
-
searchParams
|
|
14858
|
+
searchParams,
|
|
14795
14859
|
savedViews,
|
|
14796
14860
|
temporaryView,
|
|
14797
14861
|
handleSavedViewFromUrl,
|
|
14862
|
+
setSearchParams,
|
|
14798
14863
|
allViews.length
|
|
14799
14864
|
]);
|
|
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
|
-
);
|
|
14811
|
-
}
|
|
14812
|
-
if (currentSavedViewParam) {
|
|
14813
|
-
previousSavedViewParamRef.current = currentSavedViewParam;
|
|
14814
|
-
}
|
|
14815
|
-
}, [searchParams.get("saved-view"), setSearchParams]);
|
|
14816
14865
|
return {
|
|
14817
14866
|
selectedView: selectedSavedView,
|
|
14818
14867
|
selectView,
|
|
@@ -14823,7 +14872,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14823
14872
|
};
|
|
14824
14873
|
};
|
|
14825
14874
|
|
|
14826
|
-
// src/
|
|
14875
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14827
14876
|
var StyledPanel = styled_components_esm_default.div`
|
|
14828
14877
|
border: ${({ provider }) => provider === "data-table" ? "1px solid #d6dadc" : "none"};
|
|
14829
14878
|
`;
|
|
@@ -14838,13 +14887,15 @@ var SavedViewsContent = (props) => {
|
|
|
14838
14887
|
};
|
|
14839
14888
|
const { data: savedViews } = useSavedViewsQuery(queryInput);
|
|
14840
14889
|
const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
|
|
14841
|
-
const
|
|
14842
|
-
const
|
|
14890
|
+
const { showToast } = (0, import_toast_alert3.useToastAlertContext)();
|
|
14891
|
+
const i18n = (0, import_core_react14.useI18nContext)();
|
|
14892
|
+
const [activeModal, setActiveModal] = (0, import_react13.useState)(null);
|
|
14893
|
+
const [modalData, setModalData] = (0, import_react13.useState)(null);
|
|
14843
14894
|
const openModal = (type, data) => {
|
|
14844
14895
|
setActiveModal(type);
|
|
14845
14896
|
setModalData(data ?? null);
|
|
14846
14897
|
};
|
|
14847
|
-
const closeModal = (0,
|
|
14898
|
+
const closeModal = (0, import_react13.useCallback)(() => {
|
|
14848
14899
|
setActiveModal(null);
|
|
14849
14900
|
setModalData(null);
|
|
14850
14901
|
}, []);
|
|
@@ -14862,9 +14913,9 @@ var SavedViewsContent = (props) => {
|
|
|
14862
14913
|
{
|
|
14863
14914
|
domain: props.domain,
|
|
14864
14915
|
tableName: props.tableName,
|
|
14865
|
-
stickyViewsKey: props.stickyViewsKey,
|
|
14866
14916
|
userId: props.userId,
|
|
14867
14917
|
projectId,
|
|
14918
|
+
companyId,
|
|
14868
14919
|
defaultView: props.defaultView,
|
|
14869
14920
|
onSelect: props.onSelect
|
|
14870
14921
|
},
|
|
@@ -14882,8 +14933,9 @@ var SavedViewsContent = (props) => {
|
|
|
14882
14933
|
error: createError,
|
|
14883
14934
|
reset: resetCreateError
|
|
14884
14935
|
} = useCreateSavedView(queryInput);
|
|
14885
|
-
(0,
|
|
14936
|
+
(0, import_react13.useEffect)(() => {
|
|
14886
14937
|
if (fetchError) {
|
|
14938
|
+
showToast.error(i18n.t("savedViews.errors.notFound"));
|
|
14887
14939
|
selectView(selectedView ?? props.defaultView);
|
|
14888
14940
|
closeModal();
|
|
14889
14941
|
}
|
|
@@ -14907,6 +14959,7 @@ var SavedViewsContent = (props) => {
|
|
|
14907
14959
|
};
|
|
14908
14960
|
createSavedView(viewToCreate, {
|
|
14909
14961
|
onSuccess: (newView) => {
|
|
14962
|
+
showToast.success(i18n.t("savedViews.create.success"));
|
|
14910
14963
|
selectView(newView);
|
|
14911
14964
|
closeModal();
|
|
14912
14965
|
}
|
|
@@ -14928,23 +14981,22 @@ var SavedViewsContent = (props) => {
|
|
|
14928
14981
|
deleteSelectedView();
|
|
14929
14982
|
closeModal();
|
|
14930
14983
|
};
|
|
14931
|
-
|
|
14932
|
-
return /* @__PURE__ */ import_react14.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react14.default.createElement(
|
|
14984
|
+
return /* @__PURE__ */ import_react13.default.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14933
14985
|
ExpandedPanel,
|
|
14934
14986
|
{
|
|
14935
14987
|
"data-testid": "saved-view-expanded-panel",
|
|
14936
14988
|
provider: props.provider
|
|
14937
14989
|
},
|
|
14938
|
-
/* @__PURE__ */
|
|
14939
|
-
|
|
14990
|
+
/* @__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(
|
|
14991
|
+
import_core_react14.Tooltip,
|
|
14940
14992
|
{
|
|
14941
14993
|
overlay: i18n.t("savedViews.actions.create"),
|
|
14942
14994
|
showDelay: 1e3
|
|
14943
14995
|
},
|
|
14944
|
-
/* @__PURE__ */
|
|
14945
|
-
|
|
14996
|
+
/* @__PURE__ */ import_react13.default.createElement("span", null, /* @__PURE__ */ import_react13.default.createElement(
|
|
14997
|
+
import_core_react14.Button,
|
|
14946
14998
|
{
|
|
14947
|
-
icon: /* @__PURE__ */
|
|
14999
|
+
icon: /* @__PURE__ */ import_react13.default.createElement(Plus_default, null),
|
|
14948
15000
|
variant: "secondary",
|
|
14949
15001
|
"data-testid": "expanded-panel-create-button",
|
|
14950
15002
|
onClick: () => openModal("create" /* CREATE */),
|
|
@@ -14953,7 +15005,7 @@ var SavedViewsContent = (props) => {
|
|
|
14953
15005
|
i18n.t("savedViews.actions.create")
|
|
14954
15006
|
))
|
|
14955
15007
|
)),
|
|
14956
|
-
/* @__PURE__ */
|
|
15008
|
+
/* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14957
15009
|
PanelContent,
|
|
14958
15010
|
{
|
|
14959
15011
|
onSelect: ({ item }) => selectView(item),
|
|
@@ -14963,15 +15015,15 @@ var SavedViewsContent = (props) => {
|
|
|
14963
15015
|
selectedSavedView: selectedView,
|
|
14964
15016
|
tableConfig: props.tableConfig,
|
|
14965
15017
|
defaultView: props.defaultView,
|
|
14966
|
-
|
|
15018
|
+
presetViews: props.presetViews,
|
|
14967
15019
|
savedViews: allViews,
|
|
14968
15020
|
provider: props.provider,
|
|
14969
15021
|
userId: props.userId,
|
|
14970
15022
|
onClearTemporary: clearTemporaryView
|
|
14971
15023
|
}
|
|
14972
15024
|
))
|
|
14973
|
-
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */
|
|
14974
|
-
|
|
15025
|
+
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15026
|
+
FormModal,
|
|
14975
15027
|
{
|
|
14976
15028
|
open: true,
|
|
14977
15029
|
mode: activeModal,
|
|
@@ -14984,14 +15036,14 @@ var SavedViewsContent = (props) => {
|
|
|
14984
15036
|
setOpenEditCreateModal: closeModal,
|
|
14985
15037
|
defaultView: props.defaultView
|
|
14986
15038
|
}
|
|
14987
|
-
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */
|
|
15039
|
+
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14988
15040
|
SavedViewsDeleteConfirmationModalShared,
|
|
14989
15041
|
{
|
|
14990
15042
|
open: true,
|
|
14991
15043
|
onDelete: confirmDeleteAndCloseModal,
|
|
14992
15044
|
onCancel: closeModal
|
|
14993
15045
|
}
|
|
14994
|
-
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */
|
|
15046
|
+
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14995
15047
|
SharedViewFormModal,
|
|
14996
15048
|
{
|
|
14997
15049
|
open: true,
|
|
@@ -15006,31 +15058,124 @@ var SavedViewsContent = (props) => {
|
|
|
15006
15058
|
));
|
|
15007
15059
|
};
|
|
15008
15060
|
var SavedViews = (props) => {
|
|
15009
|
-
return /* @__PURE__ */
|
|
15061
|
+
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 }))));
|
|
15010
15062
|
};
|
|
15011
15063
|
|
|
15012
|
-
// src/
|
|
15013
|
-
var
|
|
15014
|
-
|
|
15015
|
-
|
|
15064
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15065
|
+
var import_react16 = __toESM(require("react"));
|
|
15066
|
+
|
|
15067
|
+
// src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
|
|
15068
|
+
var import_react14 = require("react");
|
|
15069
|
+
var DEFAULT_COLUMN_STATE = {
|
|
15070
|
+
hide: false,
|
|
15071
|
+
pinned: null,
|
|
15072
|
+
width: 200,
|
|
15073
|
+
sort: null,
|
|
15074
|
+
sortIndex: null,
|
|
15075
|
+
pivot: false,
|
|
15076
|
+
pivotIndex: null,
|
|
15077
|
+
aggFunc: null,
|
|
15078
|
+
rowGroup: false,
|
|
15079
|
+
rowGroupIndex: null,
|
|
15080
|
+
flex: null
|
|
15081
|
+
};
|
|
15082
|
+
var getColumnStateFromDefs = (columnDefs) => {
|
|
15083
|
+
return columnDefs.map((colDef) => {
|
|
15084
|
+
const field = colDef.field ?? colDef.colId;
|
|
15085
|
+
if (!field)
|
|
15086
|
+
return null;
|
|
15087
|
+
return {
|
|
15088
|
+
colId: field,
|
|
15089
|
+
hide: colDef.hide ?? false,
|
|
15090
|
+
pinned: colDef.pinned ?? null,
|
|
15091
|
+
width: colDef.width ?? colDef.minWidth ?? DEFAULT_COLUMN_STATE.width,
|
|
15092
|
+
sort: null,
|
|
15093
|
+
sortIndex: null,
|
|
15094
|
+
pivot: false,
|
|
15095
|
+
pivotIndex: null,
|
|
15096
|
+
aggFunc: null,
|
|
15097
|
+
rowGroup: false,
|
|
15098
|
+
rowGroupIndex: null,
|
|
15099
|
+
flex: colDef.flex ?? null
|
|
15100
|
+
};
|
|
15101
|
+
}).filter((col) => col !== null);
|
|
15102
|
+
};
|
|
15103
|
+
var extractDefaultView = (gridApi, receivedConfig) => {
|
|
15104
|
+
const columnDefs = gridApi.getColumnDefs() ?? [];
|
|
15105
|
+
const defaultColumnState = getColumnStateFromDefs(columnDefs);
|
|
15106
|
+
const result = {
|
|
15107
|
+
columnState: receivedConfig?.columnState?.length ? receivedConfig.columnState : defaultColumnState,
|
|
15108
|
+
columnGroupState: receivedConfig?.columnGroupState ?? [],
|
|
15109
|
+
rowGroupState: receivedConfig?.rowGroupState ?? [],
|
|
15110
|
+
filterState: receivedConfig?.filterState ?? {},
|
|
15111
|
+
rowHeight: receivedConfig?.rowHeight ?? gridApi.getSizesForCurrentTheme()?.rowHeight
|
|
15112
|
+
};
|
|
15113
|
+
return result;
|
|
15114
|
+
};
|
|
15115
|
+
var useNormalizedDefaultViews = (defaultViews, gridApi) => {
|
|
15116
|
+
return (0, import_react14.useMemo)(() => {
|
|
15117
|
+
if (!gridApi)
|
|
15118
|
+
return defaultViews.map((view) => ({ ...view, share_token: view.id }));
|
|
15119
|
+
return defaultViews.map((view) => ({
|
|
15120
|
+
...view,
|
|
15121
|
+
share_token: view.id,
|
|
15122
|
+
table_config: extractDefaultView(gridApi, view.table_config)
|
|
15123
|
+
}));
|
|
15124
|
+
}, [defaultViews, gridApi]);
|
|
15125
|
+
};
|
|
15126
|
+
|
|
15127
|
+
// src/components/adapters/smart-grid/useSmartGridConfig.ts
|
|
15128
|
+
var import_react15 = require("react");
|
|
15129
|
+
var GRID_STATE_EVENTS = [
|
|
15130
|
+
"sortChanged",
|
|
15131
|
+
"filterOpened",
|
|
15132
|
+
"filterChanged",
|
|
15133
|
+
"columnRowGroupChanged",
|
|
15134
|
+
"dragStopped",
|
|
15135
|
+
"columnResized",
|
|
15136
|
+
"columnVisible",
|
|
15137
|
+
"columnPinned",
|
|
15138
|
+
"columnMoved",
|
|
15139
|
+
"modelUpdated",
|
|
15140
|
+
"gridColumnsChanged",
|
|
15141
|
+
"gridReady"
|
|
15142
|
+
];
|
|
15143
|
+
var useSmartGridConfig = (gridApi) => {
|
|
15144
|
+
const [config, setConfig] = (0, import_react15.useState)(
|
|
15145
|
+
() => getSmartGridConfig(gridApi)
|
|
15146
|
+
);
|
|
15147
|
+
(0, import_react15.useEffect)(() => {
|
|
15148
|
+
if (!gridApi)
|
|
15149
|
+
return;
|
|
15150
|
+
const updateConfig = () => {
|
|
15151
|
+
setConfig(getSmartGridConfig(gridApi));
|
|
15152
|
+
};
|
|
15153
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15154
|
+
gridApi.addEventListener(event, updateConfig);
|
|
15155
|
+
});
|
|
15156
|
+
return () => {
|
|
15157
|
+
GRID_STATE_EVENTS.forEach((event) => {
|
|
15158
|
+
gridApi.removeEventListener(event, updateConfig);
|
|
15159
|
+
});
|
|
15160
|
+
};
|
|
15161
|
+
}, [gridApi]);
|
|
15162
|
+
return { config, setConfig };
|
|
15016
15163
|
};
|
|
15164
|
+
|
|
15165
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15017
15166
|
var SmartGridSavedViews = (props) => {
|
|
15018
15167
|
const { gridApi, userId, projectId, companyId } = props;
|
|
15019
15168
|
const { config: tableConfig, setConfig: setTableConfig } = useSmartGridConfig(gridApi);
|
|
15020
|
-
const
|
|
15021
|
-
|
|
15022
|
-
|
|
15023
|
-
});
|
|
15024
|
-
const onSelect = (0, import_react15.useCallback)(
|
|
15169
|
+
const presetViews = useNormalizedDefaultViews(props.defaultViews, gridApi);
|
|
15170
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15171
|
+
const onSelect = (0, import_react16.useCallback)(
|
|
15025
15172
|
({ item }) => {
|
|
15026
15173
|
if (!gridApi)
|
|
15027
15174
|
return item;
|
|
15028
|
-
|
|
15029
|
-
|
|
15030
|
-
gridApi
|
|
15031
|
-
|
|
15032
|
-
gridApi.setGridOption("rowHeight", props.defaultRowHeight);
|
|
15033
|
-
gridApi.refreshCells();
|
|
15175
|
+
const isPresetView = item.view_level === "default";
|
|
15176
|
+
if (isPresetView) {
|
|
15177
|
+
updateTableConfig(item, gridApi, "smart-grid");
|
|
15178
|
+
setTableConfig(item.table_config);
|
|
15034
15179
|
return item;
|
|
15035
15180
|
}
|
|
15036
15181
|
const updatedView = {
|
|
@@ -15044,22 +15189,9 @@ var SmartGridSavedViews = (props) => {
|
|
|
15044
15189
|
setTableConfig(updatedView.table_config);
|
|
15045
15190
|
return updatedView;
|
|
15046
15191
|
},
|
|
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
|
|
15192
|
+
[gridApi, tableConfig, setTableConfig]
|
|
15061
15193
|
);
|
|
15062
|
-
return /* @__PURE__ */
|
|
15194
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
15063
15195
|
SavedViews,
|
|
15064
15196
|
{
|
|
15065
15197
|
onSelect,
|
|
@@ -15069,20 +15201,19 @@ var SmartGridSavedViews = (props) => {
|
|
|
15069
15201
|
companyId,
|
|
15070
15202
|
provider: "smart-grid",
|
|
15071
15203
|
defaultView,
|
|
15204
|
+
presetViews,
|
|
15072
15205
|
tableName: props.tableName,
|
|
15073
|
-
tableConfig
|
|
15074
|
-
stickyViewsKey
|
|
15206
|
+
tableConfig
|
|
15075
15207
|
}
|
|
15076
|
-
)
|
|
15208
|
+
);
|
|
15077
15209
|
};
|
|
15078
15210
|
|
|
15079
|
-
// src/
|
|
15080
|
-
var
|
|
15211
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15212
|
+
var import_react18 = __toESM(require("react"));
|
|
15081
15213
|
|
|
15082
|
-
// src/
|
|
15083
|
-
var
|
|
15084
|
-
var
|
|
15085
|
-
var DEFAULT_COLUMN_STATE = {
|
|
15214
|
+
// src/components/adapters/data-table/DataTableDefaultSavedView.tsx
|
|
15215
|
+
var import_react17 = require("react");
|
|
15216
|
+
var DEFAULT_COLUMN_STATE2 = {
|
|
15086
15217
|
hidden: false,
|
|
15087
15218
|
pinned: null,
|
|
15088
15219
|
width: 200,
|
|
@@ -15097,7 +15228,7 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15097
15228
|
if (column.field.includes("custom_field")) {
|
|
15098
15229
|
return {
|
|
15099
15230
|
field: column.field,
|
|
15100
|
-
...
|
|
15231
|
+
...DEFAULT_COLUMN_STATE2
|
|
15101
15232
|
};
|
|
15102
15233
|
}
|
|
15103
15234
|
return {
|
|
@@ -15108,11 +15239,11 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15108
15239
|
rowGroupIndex: null,
|
|
15109
15240
|
sort: null,
|
|
15110
15241
|
sortIndex: null,
|
|
15111
|
-
width: (column.minWidth ??
|
|
15242
|
+
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
15243
|
};
|
|
15113
15244
|
});
|
|
15114
15245
|
};
|
|
15115
|
-
var
|
|
15246
|
+
var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
|
|
15116
15247
|
const defaultColumnState = getColumnState(columnDefinitions);
|
|
15117
15248
|
const result = {
|
|
15118
15249
|
columnState: receivedConfigFromTool?.columnState?.length ? receivedConfigFromTool.columnState : defaultColumnState,
|
|
@@ -15127,52 +15258,37 @@ var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
|
|
|
15127
15258
|
};
|
|
15128
15259
|
return result;
|
|
15129
15260
|
};
|
|
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]
|
|
15261
|
+
var useNormalizedDefaultViews2 = (defaultViews, columnDefinitions) => {
|
|
15262
|
+
return (0, import_react17.useMemo)(
|
|
15263
|
+
() => defaultViews.map((view) => ({
|
|
15264
|
+
...view,
|
|
15265
|
+
share_token: "",
|
|
15266
|
+
table_config: extractDefaultView2(columnDefinitions, view.table_config)
|
|
15267
|
+
})),
|
|
15268
|
+
[defaultViews, columnDefinitions]
|
|
15142
15269
|
);
|
|
15143
|
-
return {
|
|
15144
|
-
id: "default",
|
|
15145
|
-
view_level: "default",
|
|
15146
|
-
name,
|
|
15147
|
-
table_config: extractedDefaultConfig
|
|
15148
|
-
};
|
|
15149
15270
|
};
|
|
15150
15271
|
|
|
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) => {
|
|
15272
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15273
|
+
var DataTableSavedViews = (0, import_react18.forwardRef)((props, ref) => {
|
|
15157
15274
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15158
|
-
const
|
|
15159
|
-
props.
|
|
15275
|
+
const presetViews = useNormalizedDefaultViews2(
|
|
15276
|
+
props.defaultViews,
|
|
15277
|
+
props.columnDefinitions
|
|
15278
|
+
);
|
|
15279
|
+
const defaultView = presetViews.find((view) => view.id === "default") ?? presetViews[0];
|
|
15280
|
+
const [internalTableConfig, setInternalTableConfig] = (0, import_react18.useState)(
|
|
15281
|
+
ViewStorage.load(props.stickyViewsKey, defaultView)?.table_config ?? defaultView.table_config
|
|
15160
15282
|
);
|
|
15161
|
-
(0,
|
|
15283
|
+
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15162
15284
|
setTableConfig: (newConfig) => {
|
|
15163
15285
|
setInternalTableConfig(newConfig);
|
|
15164
15286
|
}
|
|
15165
15287
|
}));
|
|
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)(
|
|
15288
|
+
const onSelect = (0, import_react18.useCallback)(
|
|
15173
15289
|
({ item }) => {
|
|
15174
|
-
const
|
|
15175
|
-
const updatedView =
|
|
15290
|
+
const isPresetView = item.view_level === "default";
|
|
15291
|
+
const updatedView = isPresetView ? item : {
|
|
15176
15292
|
...item,
|
|
15177
15293
|
table_config: customAndConfigSync(
|
|
15178
15294
|
item.table_config,
|
|
@@ -15188,14 +15304,7 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15188
15304
|
if (!internalTableConfig) {
|
|
15189
15305
|
return null;
|
|
15190
15306
|
}
|
|
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(
|
|
15307
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
15199
15308
|
SavedViews,
|
|
15200
15309
|
{
|
|
15201
15310
|
onSelect,
|
|
@@ -15205,21 +15314,22 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15205
15314
|
companyId,
|
|
15206
15315
|
provider: "data-table",
|
|
15207
15316
|
defaultView,
|
|
15317
|
+
presetViews,
|
|
15208
15318
|
tableName: props.tableName,
|
|
15209
|
-
tableConfig: internalTableConfig
|
|
15210
|
-
stickyViewsKey
|
|
15319
|
+
tableConfig: internalTableConfig
|
|
15211
15320
|
}
|
|
15212
|
-
)
|
|
15321
|
+
);
|
|
15213
15322
|
});
|
|
15214
15323
|
DataTableSavedViews.displayName = "DataTableSavedViews";
|
|
15215
15324
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15216
15325
|
0 && (module.exports = {
|
|
15217
15326
|
DataTableSavedViews,
|
|
15218
15327
|
ExpandedPanel,
|
|
15328
|
+
FormModal,
|
|
15219
15329
|
PanelContent,
|
|
15220
15330
|
SavedViewCollectionMenuItem,
|
|
15331
|
+
SavedViews,
|
|
15221
15332
|
SavedViewsDeleteConfirmationModalShared,
|
|
15222
|
-
SavedViewsFormModal,
|
|
15223
15333
|
SmartGridSavedViews,
|
|
15224
15334
|
getTranslations,
|
|
15225
15335
|
useSavedViewsPanel
|