@procore/saved-views 5.1.0-alpha.3 → 5.1.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/legacy/index.d.mts +61 -40
- package/dist/legacy/index.d.ts +61 -40
- package/dist/legacy/index.js +439 -312
- package/dist/legacy/index.mjs +419 -295
- package/dist/modern/index.d.mts +61 -40
- package/dist/modern/index.d.ts +61 -40
- package/dist/modern/index.js +437 -310
- package/dist/modern/index.mjs +417 -293
- package/package.json +1 -1
package/dist/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,11 +14733,11 @@ 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") {
|
|
14695
|
-
updatedParams.
|
|
14740
|
+
updatedParams.set("saved-view", "default");
|
|
14696
14741
|
} else if (view.id === "temporary") {
|
|
14697
14742
|
updatedParams.set("saved-view", "temporary");
|
|
14698
14743
|
} else {
|
|
@@ -14703,54 +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
|
|
14711
|
-
|
|
14777
|
+
const previousSavedViewParamRef = (0, import_react12.useRef)(null);
|
|
14778
|
+
const [selectedSavedView, setSelectedSavedView] = (0, import_react12.useState)(() => {
|
|
14779
|
+
const stored = ViewStorage.load(storageKey, config.defaultView);
|
|
14712
14780
|
return stored ?? config.defaultView;
|
|
14713
14781
|
});
|
|
14714
|
-
const [temporaryView, setTemporaryView] = (0,
|
|
14715
|
-
return ViewStorage.load(temporaryStorageKey);
|
|
14782
|
+
const [temporaryView, setTemporaryView] = (0, import_react12.useState)(() => {
|
|
14783
|
+
return ViewStorage.load(temporaryStorageKey, config.defaultView);
|
|
14716
14784
|
});
|
|
14717
|
-
const
|
|
14785
|
+
const persistViewToStorageAndUrl = (0, import_react12.useCallback)(
|
|
14718
14786
|
(view) => {
|
|
14719
|
-
|
|
14720
|
-
|
|
14721
|
-
}
|
|
14787
|
+
ViewStorage.save(storageKey, view);
|
|
14788
|
+
setViewInUrl(view, setSearchParams);
|
|
14722
14789
|
},
|
|
14723
|
-
[
|
|
14724
|
-
);
|
|
14725
|
-
const updateUrlForView = (0, import_react13.useCallback)(
|
|
14726
|
-
(view) => {
|
|
14727
|
-
setSearchParams(
|
|
14728
|
-
(currentParams) => {
|
|
14729
|
-
return getUpdatedSearchParams(currentParams, view);
|
|
14730
|
-
},
|
|
14731
|
-
{ replace: true }
|
|
14732
|
-
);
|
|
14733
|
-
},
|
|
14734
|
-
[setSearchParams]
|
|
14790
|
+
[storageKey, setSearchParams]
|
|
14735
14791
|
);
|
|
14736
14792
|
const baseViews = savedViews ?? [];
|
|
14737
|
-
const allViews =
|
|
14738
|
-
|
|
14793
|
+
const allViews = (0, import_react12.useMemo)(
|
|
14794
|
+
() => temporaryView ? [...baseViews, temporaryView] : baseViews,
|
|
14795
|
+
[baseViews, temporaryView]
|
|
14796
|
+
);
|
|
14797
|
+
const selectView = (0, import_react12.useCallback)(
|
|
14739
14798
|
(view) => {
|
|
14740
14799
|
const viewToSelect = config.onSelect({ item: view });
|
|
14741
14800
|
setSelectedSavedView(viewToSelect);
|
|
14742
|
-
|
|
14743
|
-
updateUrlForView(viewToSelect);
|
|
14801
|
+
persistViewToStorageAndUrl(viewToSelect);
|
|
14744
14802
|
return viewToSelect;
|
|
14745
14803
|
},
|
|
14746
|
-
[config,
|
|
14804
|
+
[config, persistViewToStorageAndUrl, temporaryView, temporaryStorageKey]
|
|
14747
14805
|
);
|
|
14748
|
-
const createTemporaryView = (0,
|
|
14806
|
+
const createTemporaryView = (0, import_react12.useCallback)(
|
|
14749
14807
|
(fetchedView) => {
|
|
14750
14808
|
const tempView = {
|
|
14751
14809
|
...fetchedView,
|
|
14752
14810
|
id: "temporary",
|
|
14753
|
-
name: "
|
|
14811
|
+
name: I18n.t("savedViews.temporaryViewName"),
|
|
14812
|
+
view_level: "temporary"
|
|
14754
14813
|
};
|
|
14755
14814
|
ViewStorage.save(temporaryStorageKey, tempView);
|
|
14756
14815
|
setTemporaryView(tempView);
|
|
@@ -14759,40 +14818,48 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14759
14818
|
},
|
|
14760
14819
|
[temporaryStorageKey, selectView]
|
|
14761
14820
|
);
|
|
14762
|
-
const clearTemporaryView = (0,
|
|
14821
|
+
const clearTemporaryView = (0, import_react12.useCallback)(() => {
|
|
14763
14822
|
ViewStorage.remove(temporaryStorageKey);
|
|
14764
14823
|
setTemporaryView(null);
|
|
14765
14824
|
selectView(config.defaultView);
|
|
14766
14825
|
}, [temporaryStorageKey, config.defaultView, selectView]);
|
|
14767
|
-
const isViewAlreadySelected = (0,
|
|
14826
|
+
const isViewAlreadySelected = (0, import_react12.useCallback)(
|
|
14768
14827
|
(viewId) => checkIsViewSelected(selectedSavedView, viewId),
|
|
14769
14828
|
[selectedSavedView]
|
|
14770
14829
|
);
|
|
14771
|
-
const handleSavedViewFromUrl = (0,
|
|
14830
|
+
const handleSavedViewFromUrl = (0, import_react12.useCallback)(
|
|
14772
14831
|
(viewId) => {
|
|
14773
14832
|
if (isViewAlreadySelected(viewId)) {
|
|
14774
14833
|
return;
|
|
14775
14834
|
}
|
|
14776
|
-
const viewInList = allViews
|
|
14835
|
+
const viewInList = findViewByToken(allViews, viewId);
|
|
14777
14836
|
if (viewInList) {
|
|
14778
14837
|
selectView(viewInList);
|
|
14838
|
+
} else {
|
|
14839
|
+
openSharedViewModal(viewId);
|
|
14779
14840
|
}
|
|
14780
|
-
openSharedViewModal(viewId);
|
|
14781
14841
|
},
|
|
14782
14842
|
[isViewAlreadySelected, openSharedViewModal, allViews, selectView]
|
|
14783
14843
|
);
|
|
14784
|
-
(0,
|
|
14785
|
-
if (!allViews.length)
|
|
14786
|
-
return;
|
|
14844
|
+
(0, import_react12.useEffect)(() => {
|
|
14787
14845
|
const savedViewId = searchParams.get("saved-view");
|
|
14846
|
+
restoreUrlParameter(
|
|
14847
|
+
savedViewId,
|
|
14848
|
+
previousSavedViewParamRef.current,
|
|
14849
|
+
setSearchParams
|
|
14850
|
+
);
|
|
14788
14851
|
if (savedViewId) {
|
|
14852
|
+
previousSavedViewParamRef.current = savedViewId;
|
|
14853
|
+
}
|
|
14854
|
+
if (savedViewId && allViews.length > 0) {
|
|
14789
14855
|
handleSavedViewFromUrl(savedViewId);
|
|
14790
14856
|
}
|
|
14791
14857
|
}, [
|
|
14792
|
-
searchParams
|
|
14858
|
+
searchParams,
|
|
14793
14859
|
savedViews,
|
|
14794
14860
|
temporaryView,
|
|
14795
14861
|
handleSavedViewFromUrl,
|
|
14862
|
+
setSearchParams,
|
|
14796
14863
|
allViews.length
|
|
14797
14864
|
]);
|
|
14798
14865
|
return {
|
|
@@ -14805,7 +14872,7 @@ var useViewSelection = (config, savedViews, openSharedViewModal) => {
|
|
|
14805
14872
|
};
|
|
14806
14873
|
};
|
|
14807
14874
|
|
|
14808
|
-
// src/
|
|
14875
|
+
// src/components/saved-views/SavedViews.tsx
|
|
14809
14876
|
var StyledPanel = styled_components_esm_default.div`
|
|
14810
14877
|
border: ${({ provider }) => provider === "data-table" ? "1px solid #d6dadc" : "none"};
|
|
14811
14878
|
`;
|
|
@@ -14815,19 +14882,20 @@ var SavedViewsContent = (props) => {
|
|
|
14815
14882
|
const queryInput = {
|
|
14816
14883
|
domain: props.domain,
|
|
14817
14884
|
tableName: props.tableName,
|
|
14818
|
-
enableSavedViews: props.enableSavedViews,
|
|
14819
14885
|
projectId,
|
|
14820
14886
|
companyId
|
|
14821
14887
|
};
|
|
14822
14888
|
const { data: savedViews } = useSavedViewsQuery(queryInput);
|
|
14823
14889
|
const { mutate: deleteSavedView } = useDeleteSavedView(queryInput);
|
|
14824
|
-
const
|
|
14825
|
-
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);
|
|
14826
14894
|
const openModal = (type, data) => {
|
|
14827
14895
|
setActiveModal(type);
|
|
14828
14896
|
setModalData(data ?? null);
|
|
14829
14897
|
};
|
|
14830
|
-
const closeModal = (0,
|
|
14898
|
+
const closeModal = (0, import_react13.useCallback)(() => {
|
|
14831
14899
|
setActiveModal(null);
|
|
14832
14900
|
setModalData(null);
|
|
14833
14901
|
}, []);
|
|
@@ -14845,9 +14913,9 @@ var SavedViewsContent = (props) => {
|
|
|
14845
14913
|
{
|
|
14846
14914
|
domain: props.domain,
|
|
14847
14915
|
tableName: props.tableName,
|
|
14848
|
-
stickyViewsKey: props.stickyViewsKey,
|
|
14849
14916
|
userId: props.userId,
|
|
14850
14917
|
projectId,
|
|
14918
|
+
companyId,
|
|
14851
14919
|
defaultView: props.defaultView,
|
|
14852
14920
|
onSelect: props.onSelect
|
|
14853
14921
|
},
|
|
@@ -14865,8 +14933,9 @@ var SavedViewsContent = (props) => {
|
|
|
14865
14933
|
error: createError,
|
|
14866
14934
|
reset: resetCreateError
|
|
14867
14935
|
} = useCreateSavedView(queryInput);
|
|
14868
|
-
(0,
|
|
14936
|
+
(0, import_react13.useEffect)(() => {
|
|
14869
14937
|
if (fetchError) {
|
|
14938
|
+
showToast.error(i18n.t("savedViews.errors.notFound"));
|
|
14870
14939
|
selectView(selectedView ?? props.defaultView);
|
|
14871
14940
|
closeModal();
|
|
14872
14941
|
}
|
|
@@ -14890,6 +14959,7 @@ var SavedViewsContent = (props) => {
|
|
|
14890
14959
|
};
|
|
14891
14960
|
createSavedView(viewToCreate, {
|
|
14892
14961
|
onSuccess: (newView) => {
|
|
14962
|
+
showToast.success(i18n.t("savedViews.create.success"));
|
|
14893
14963
|
selectView(newView);
|
|
14894
14964
|
closeModal();
|
|
14895
14965
|
}
|
|
@@ -14911,23 +14981,22 @@ var SavedViewsContent = (props) => {
|
|
|
14911
14981
|
deleteSelectedView();
|
|
14912
14982
|
closeModal();
|
|
14913
14983
|
};
|
|
14914
|
-
|
|
14915
|
-
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(
|
|
14916
14985
|
ExpandedPanel,
|
|
14917
14986
|
{
|
|
14918
14987
|
"data-testid": "saved-view-expanded-panel",
|
|
14919
14988
|
provider: props.provider
|
|
14920
14989
|
},
|
|
14921
|
-
/* @__PURE__ */
|
|
14922
|
-
|
|
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,
|
|
14923
14992
|
{
|
|
14924
14993
|
overlay: i18n.t("savedViews.actions.create"),
|
|
14925
14994
|
showDelay: 1e3
|
|
14926
14995
|
},
|
|
14927
|
-
/* @__PURE__ */
|
|
14928
|
-
|
|
14996
|
+
/* @__PURE__ */ import_react13.default.createElement("span", null, /* @__PURE__ */ import_react13.default.createElement(
|
|
14997
|
+
import_core_react14.Button,
|
|
14929
14998
|
{
|
|
14930
|
-
icon: /* @__PURE__ */
|
|
14999
|
+
icon: /* @__PURE__ */ import_react13.default.createElement(Plus_default, null),
|
|
14931
15000
|
variant: "secondary",
|
|
14932
15001
|
"data-testid": "expanded-panel-create-button",
|
|
14933
15002
|
onClick: () => openModal("create" /* CREATE */),
|
|
@@ -14936,7 +15005,7 @@ var SavedViewsContent = (props) => {
|
|
|
14936
15005
|
i18n.t("savedViews.actions.create")
|
|
14937
15006
|
))
|
|
14938
15007
|
)),
|
|
14939
|
-
/* @__PURE__ */
|
|
15008
|
+
/* @__PURE__ */ import_react13.default.createElement(import_core_react14.Panel.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ import_react13.default.createElement(
|
|
14940
15009
|
PanelContent,
|
|
14941
15010
|
{
|
|
14942
15011
|
onSelect: ({ item }) => selectView(item),
|
|
@@ -14946,15 +15015,15 @@ var SavedViewsContent = (props) => {
|
|
|
14946
15015
|
selectedSavedView: selectedView,
|
|
14947
15016
|
tableConfig: props.tableConfig,
|
|
14948
15017
|
defaultView: props.defaultView,
|
|
14949
|
-
|
|
15018
|
+
presetViews: props.presetViews,
|
|
14950
15019
|
savedViews: allViews,
|
|
14951
15020
|
provider: props.provider,
|
|
14952
15021
|
userId: props.userId,
|
|
14953
15022
|
onClearTemporary: clearTemporaryView
|
|
14954
15023
|
}
|
|
14955
15024
|
))
|
|
14956
|
-
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */
|
|
14957
|
-
|
|
15025
|
+
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ import_react13.default.createElement(
|
|
15026
|
+
FormModal,
|
|
14958
15027
|
{
|
|
14959
15028
|
open: true,
|
|
14960
15029
|
mode: activeModal,
|
|
@@ -14967,14 +15036,14 @@ var SavedViewsContent = (props) => {
|
|
|
14967
15036
|
setOpenEditCreateModal: closeModal,
|
|
14968
15037
|
defaultView: props.defaultView
|
|
14969
15038
|
}
|
|
14970
|
-
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */
|
|
15039
|
+
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14971
15040
|
SavedViewsDeleteConfirmationModalShared,
|
|
14972
15041
|
{
|
|
14973
15042
|
open: true,
|
|
14974
15043
|
onDelete: confirmDeleteAndCloseModal,
|
|
14975
15044
|
onCancel: closeModal
|
|
14976
15045
|
}
|
|
14977
|
-
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */
|
|
15046
|
+
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ import_react13.default.createElement(
|
|
14978
15047
|
SharedViewFormModal,
|
|
14979
15048
|
{
|
|
14980
15049
|
open: true,
|
|
@@ -14989,31 +15058,124 @@ var SavedViewsContent = (props) => {
|
|
|
14989
15058
|
));
|
|
14990
15059
|
};
|
|
14991
15060
|
var SavedViews = (props) => {
|
|
14992
|
-
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 }))));
|
|
14993
15062
|
};
|
|
14994
15063
|
|
|
14995
|
-
// src/
|
|
14996
|
-
var
|
|
14997
|
-
|
|
14998
|
-
|
|
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 };
|
|
14999
15163
|
};
|
|
15164
|
+
|
|
15165
|
+
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
15000
15166
|
var SmartGridSavedViews = (props) => {
|
|
15001
15167
|
const { gridApi, userId, projectId, companyId } = props;
|
|
15002
15168
|
const { config: tableConfig, setConfig: setTableConfig } = useSmartGridConfig(gridApi);
|
|
15003
|
-
const
|
|
15004
|
-
|
|
15005
|
-
|
|
15006
|
-
});
|
|
15007
|
-
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)(
|
|
15008
15172
|
({ item }) => {
|
|
15009
15173
|
if (!gridApi)
|
|
15010
15174
|
return item;
|
|
15011
|
-
|
|
15012
|
-
|
|
15013
|
-
gridApi
|
|
15014
|
-
|
|
15015
|
-
gridApi.setGridOption("rowHeight", props.defaultRowHeight);
|
|
15016
|
-
gridApi.refreshCells();
|
|
15175
|
+
const isPresetView = item.view_level === "default";
|
|
15176
|
+
if (isPresetView) {
|
|
15177
|
+
updateTableConfig(item, gridApi, "smart-grid");
|
|
15178
|
+
setTableConfig(item.table_config);
|
|
15017
15179
|
return item;
|
|
15018
15180
|
}
|
|
15019
15181
|
const updatedView = {
|
|
@@ -15027,22 +15189,9 @@ var SmartGridSavedViews = (props) => {
|
|
|
15027
15189
|
setTableConfig(updatedView.table_config);
|
|
15028
15190
|
return updatedView;
|
|
15029
15191
|
},
|
|
15030
|
-
[
|
|
15031
|
-
gridApi,
|
|
15032
|
-
props.defaultViewFilters,
|
|
15033
|
-
props.defaultRowHeight,
|
|
15034
|
-
tableConfig,
|
|
15035
|
-
setTableConfig
|
|
15036
|
-
]
|
|
15037
|
-
);
|
|
15038
|
-
const stickyViewsKey = generateStickyViewsKey(
|
|
15039
|
-
props.domain,
|
|
15040
|
-
props.tableName,
|
|
15041
|
-
userId,
|
|
15042
|
-
projectId,
|
|
15043
|
-
companyId
|
|
15192
|
+
[gridApi, tableConfig, setTableConfig]
|
|
15044
15193
|
);
|
|
15045
|
-
return /* @__PURE__ */
|
|
15194
|
+
return /* @__PURE__ */ import_react16.default.createElement(
|
|
15046
15195
|
SavedViews,
|
|
15047
15196
|
{
|
|
15048
15197
|
onSelect,
|
|
@@ -15052,20 +15201,19 @@ var SmartGridSavedViews = (props) => {
|
|
|
15052
15201
|
companyId,
|
|
15053
15202
|
provider: "smart-grid",
|
|
15054
15203
|
defaultView,
|
|
15204
|
+
presetViews,
|
|
15055
15205
|
tableName: props.tableName,
|
|
15056
|
-
tableConfig
|
|
15057
|
-
stickyViewsKey
|
|
15206
|
+
tableConfig
|
|
15058
15207
|
}
|
|
15059
|
-
)
|
|
15208
|
+
);
|
|
15060
15209
|
};
|
|
15061
15210
|
|
|
15062
|
-
// src/
|
|
15063
|
-
var
|
|
15211
|
+
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
15212
|
+
var import_react18 = __toESM(require("react"));
|
|
15064
15213
|
|
|
15065
|
-
// src/
|
|
15066
|
-
var
|
|
15067
|
-
var
|
|
15068
|
-
var DEFAULT_COLUMN_STATE = {
|
|
15214
|
+
// src/components/adapters/data-table/DataTableDefaultSavedView.tsx
|
|
15215
|
+
var import_react17 = require("react");
|
|
15216
|
+
var DEFAULT_COLUMN_STATE2 = {
|
|
15069
15217
|
hidden: false,
|
|
15070
15218
|
pinned: null,
|
|
15071
15219
|
width: 200,
|
|
@@ -15080,7 +15228,7 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15080
15228
|
if (column.field.includes("custom_field")) {
|
|
15081
15229
|
return {
|
|
15082
15230
|
field: column.field,
|
|
15083
|
-
...
|
|
15231
|
+
...DEFAULT_COLUMN_STATE2
|
|
15084
15232
|
};
|
|
15085
15233
|
}
|
|
15086
15234
|
return {
|
|
@@ -15091,11 +15239,11 @@ var getColumnState = (columnDefinitions) => {
|
|
|
15091
15239
|
rowGroupIndex: null,
|
|
15092
15240
|
sort: null,
|
|
15093
15241
|
sortIndex: null,
|
|
15094
|
-
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
|
|
15095
15243
|
};
|
|
15096
15244
|
});
|
|
15097
15245
|
};
|
|
15098
|
-
var
|
|
15246
|
+
var extractDefaultView2 = (columnDefinitions, receivedConfigFromTool) => {
|
|
15099
15247
|
const defaultColumnState = getColumnState(columnDefinitions);
|
|
15100
15248
|
const result = {
|
|
15101
15249
|
columnState: receivedConfigFromTool?.columnState?.length ? receivedConfigFromTool.columnState : defaultColumnState,
|
|
@@ -15110,52 +15258,37 @@ var extractDefaultView = (columnDefinitions, receivedConfigFromTool) => {
|
|
|
15110
15258
|
};
|
|
15111
15259
|
return result;
|
|
15112
15260
|
};
|
|
15113
|
-
var
|
|
15114
|
-
|
|
15115
|
-
|
|
15116
|
-
|
|
15117
|
-
|
|
15118
|
-
|
|
15119
|
-
}
|
|
15120
|
-
|
|
15121
|
-
const name = useDefaultViewName2(props.domain, props.defaultViewName);
|
|
15122
|
-
const extractedDefaultConfig = (0, import_react16.useMemo)(
|
|
15123
|
-
() => extractDefaultView(props.columnDefinitions, props.receivedConfigFromTool),
|
|
15124
|
-
[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]
|
|
15125
15269
|
);
|
|
15126
|
-
return {
|
|
15127
|
-
id: "default",
|
|
15128
|
-
view_level: "default",
|
|
15129
|
-
name,
|
|
15130
|
-
table_config: extractedDefaultConfig
|
|
15131
|
-
};
|
|
15132
15270
|
};
|
|
15133
15271
|
|
|
15134
|
-
// src/
|
|
15135
|
-
var
|
|
15136
|
-
var generateStickyViewsKey2 = (domain, tableName, userId, projectId, companyId) => {
|
|
15137
|
-
return `savedView-${domain}-${tableName}-${companyId}-${projectId}-${userId}`;
|
|
15138
|
-
};
|
|
15139
|
-
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) => {
|
|
15140
15274
|
const { tableApi, userId, projectId, companyId } = props;
|
|
15141
|
-
const
|
|
15142
|
-
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
|
|
15143
15282
|
);
|
|
15144
|
-
(0,
|
|
15283
|
+
(0, import_react18.useImperativeHandle)(ref, () => ({
|
|
15145
15284
|
setTableConfig: (newConfig) => {
|
|
15146
15285
|
setInternalTableConfig(newConfig);
|
|
15147
15286
|
}
|
|
15148
15287
|
}));
|
|
15149
|
-
const
|
|
15150
|
-
defaultViewName: props.defaultViewName,
|
|
15151
|
-
receivedConfigFromTool: props.defaultViewConfig,
|
|
15152
|
-
domain: props.domain,
|
|
15153
|
-
columnDefinitions: props.columnDefinitions
|
|
15154
|
-
});
|
|
15155
|
-
const onSelect = (0, import_react17.useCallback)(
|
|
15288
|
+
const onSelect = (0, import_react18.useCallback)(
|
|
15156
15289
|
({ item }) => {
|
|
15157
|
-
const
|
|
15158
|
-
const updatedView =
|
|
15290
|
+
const isPresetView = item.view_level === "default";
|
|
15291
|
+
const updatedView = isPresetView ? item : {
|
|
15159
15292
|
...item,
|
|
15160
15293
|
table_config: customAndConfigSync(
|
|
15161
15294
|
item.table_config,
|
|
@@ -15171,14 +15304,7 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15171
15304
|
if (!internalTableConfig) {
|
|
15172
15305
|
return null;
|
|
15173
15306
|
}
|
|
15174
|
-
|
|
15175
|
-
props.domain,
|
|
15176
|
-
props.tableName,
|
|
15177
|
-
userId,
|
|
15178
|
-
projectId,
|
|
15179
|
-
companyId
|
|
15180
|
-
);
|
|
15181
|
-
return /* @__PURE__ */ import_react17.default.createElement(import_toast_alert4.ToastAlertProvider, null, /* @__PURE__ */ import_react17.default.createElement(
|
|
15307
|
+
return /* @__PURE__ */ import_react18.default.createElement(
|
|
15182
15308
|
SavedViews,
|
|
15183
15309
|
{
|
|
15184
15310
|
onSelect,
|
|
@@ -15188,21 +15314,22 @@ var DataTableSavedViews = (0, import_react17.forwardRef)((props, ref) => {
|
|
|
15188
15314
|
companyId,
|
|
15189
15315
|
provider: "data-table",
|
|
15190
15316
|
defaultView,
|
|
15317
|
+
presetViews,
|
|
15191
15318
|
tableName: props.tableName,
|
|
15192
|
-
tableConfig: internalTableConfig
|
|
15193
|
-
stickyViewsKey
|
|
15319
|
+
tableConfig: internalTableConfig
|
|
15194
15320
|
}
|
|
15195
|
-
)
|
|
15321
|
+
);
|
|
15196
15322
|
});
|
|
15197
15323
|
DataTableSavedViews.displayName = "DataTableSavedViews";
|
|
15198
15324
|
// Annotate the CommonJS export names for ESM import in node:
|
|
15199
15325
|
0 && (module.exports = {
|
|
15200
15326
|
DataTableSavedViews,
|
|
15201
15327
|
ExpandedPanel,
|
|
15328
|
+
FormModal,
|
|
15202
15329
|
PanelContent,
|
|
15203
15330
|
SavedViewCollectionMenuItem,
|
|
15331
|
+
SavedViews,
|
|
15204
15332
|
SavedViewsDeleteConfirmationModalShared,
|
|
15205
|
-
SavedViewsFormModal,
|
|
15206
15333
|
SmartGridSavedViews,
|
|
15207
15334
|
getTranslations,
|
|
15208
15335
|
useSavedViewsPanel
|