@procore/saved-views 1.0.1-estimatingFork.5 → 1.0.1-estimatingFork.6.1
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 +4 -1
- package/dist/legacy/index.d.ts +4 -1
- package/dist/legacy/index.js +281 -202
- package/dist/legacy/index.mjs +306 -228
- package/dist/modern/index.d.mts +4 -1
- package/dist/modern/index.d.ts +4 -1
- package/dist/modern/index.js +280 -202
- package/dist/modern/index.mjs +305 -228
- package/package.json +3 -2
package/dist/legacy/index.mjs
CHANGED
|
@@ -110,7 +110,7 @@ var require_react_is_production_min = __commonJS({
|
|
|
110
110
|
var E2 = n2;
|
|
111
111
|
var F2 = c2;
|
|
112
112
|
var G2 = f2;
|
|
113
|
-
var
|
|
113
|
+
var H2 = e2;
|
|
114
114
|
var I = l2;
|
|
115
115
|
exports.ContextConsumer = h;
|
|
116
116
|
exports.ContextProvider = z2;
|
|
@@ -121,7 +121,7 @@ var require_react_is_production_min = __commonJS({
|
|
|
121
121
|
exports.Memo = E2;
|
|
122
122
|
exports.Portal = F2;
|
|
123
123
|
exports.Profiler = G2;
|
|
124
|
-
exports.StrictMode =
|
|
124
|
+
exports.StrictMode = H2;
|
|
125
125
|
exports.Suspense = I;
|
|
126
126
|
exports.isAsyncMode = function() {
|
|
127
127
|
return false;
|
|
@@ -7868,7 +7868,7 @@ function __rest(s2, e2) {
|
|
|
7868
7868
|
return t2;
|
|
7869
7869
|
}
|
|
7870
7870
|
|
|
7871
|
-
//
|
|
7871
|
+
// node_modules/@procore/core-icons/dist/Icon.js
|
|
7872
7872
|
import * as React from "react";
|
|
7873
7873
|
function getSize(size) {
|
|
7874
7874
|
if (size === "sm") {
|
|
@@ -7887,7 +7887,7 @@ function Icon(_a) {
|
|
|
7887
7887
|
return React.isValidElement(children) ? React.cloneElement(children, __assign(__assign({ "aria-hidden": true, "data-qa": "ci-".concat(props.name) }, props), { width: getSize(props.size), height: getSize(props.size), focusable: false, style: __assign(__assign({}, props.style), { flex: "0 0 auto" }) })) : null;
|
|
7888
7888
|
}
|
|
7889
7889
|
|
|
7890
|
-
//
|
|
7890
|
+
// node_modules/@procore/core-icons/dist/icons/Building.js
|
|
7891
7891
|
import * as React2 from "react";
|
|
7892
7892
|
var Building = React2.forwardRef(function Building2(props, ref) {
|
|
7893
7893
|
return React2.createElement(
|
|
@@ -7903,7 +7903,7 @@ var Building = React2.forwardRef(function Building2(props, ref) {
|
|
|
7903
7903
|
Building.displayName = "Building";
|
|
7904
7904
|
var Building_default = Building;
|
|
7905
7905
|
|
|
7906
|
-
//
|
|
7906
|
+
// node_modules/@procore/core-icons/dist/icons/ChevronDown.js
|
|
7907
7907
|
import * as React3 from "react";
|
|
7908
7908
|
var ChevronDown = React3.forwardRef(function ChevronDown2(props, ref) {
|
|
7909
7909
|
return React3.createElement(
|
|
@@ -7919,7 +7919,7 @@ var ChevronDown = React3.forwardRef(function ChevronDown2(props, ref) {
|
|
|
7919
7919
|
ChevronDown.displayName = "ChevronDown";
|
|
7920
7920
|
var ChevronDown_default = ChevronDown;
|
|
7921
7921
|
|
|
7922
|
-
//
|
|
7922
|
+
// node_modules/@procore/core-icons/dist/icons/ChevronRight.js
|
|
7923
7923
|
import * as React4 from "react";
|
|
7924
7924
|
var ChevronRight = React4.forwardRef(function ChevronRight2(props, ref) {
|
|
7925
7925
|
return React4.createElement(
|
|
@@ -7935,7 +7935,7 @@ var ChevronRight = React4.forwardRef(function ChevronRight2(props, ref) {
|
|
|
7935
7935
|
ChevronRight.displayName = "ChevronRight";
|
|
7936
7936
|
var ChevronRight_default = ChevronRight;
|
|
7937
7937
|
|
|
7938
|
-
//
|
|
7938
|
+
// node_modules/@procore/core-icons/dist/icons/Clear.js
|
|
7939
7939
|
import * as React5 from "react";
|
|
7940
7940
|
var Clear = React5.forwardRef(function Clear2(props, ref) {
|
|
7941
7941
|
return React5.createElement(
|
|
@@ -7951,7 +7951,7 @@ var Clear = React5.forwardRef(function Clear2(props, ref) {
|
|
|
7951
7951
|
Clear.displayName = "Clear";
|
|
7952
7952
|
var Clear_default = Clear;
|
|
7953
7953
|
|
|
7954
|
-
//
|
|
7954
|
+
// node_modules/@procore/core-icons/dist/icons/Excavator.js
|
|
7955
7955
|
import * as React6 from "react";
|
|
7956
7956
|
var Excavator = React6.forwardRef(function Excavator2(props, ref) {
|
|
7957
7957
|
return React6.createElement(
|
|
@@ -7968,7 +7968,7 @@ var Excavator = React6.forwardRef(function Excavator2(props, ref) {
|
|
|
7968
7968
|
Excavator.displayName = "Excavator";
|
|
7969
7969
|
var Excavator_default = Excavator;
|
|
7970
7970
|
|
|
7971
|
-
//
|
|
7971
|
+
// node_modules/@procore/core-icons/dist/icons/ExpandSidebar.js
|
|
7972
7972
|
import * as React7 from "react";
|
|
7973
7973
|
var ExpandSidebar = React7.forwardRef(function ExpandSidebar2(props, ref) {
|
|
7974
7974
|
return React7.createElement(
|
|
@@ -7986,7 +7986,7 @@ var ExpandSidebar = React7.forwardRef(function ExpandSidebar2(props, ref) {
|
|
|
7986
7986
|
ExpandSidebar.displayName = "ExpandSidebar";
|
|
7987
7987
|
var ExpandSidebar_default = ExpandSidebar;
|
|
7988
7988
|
|
|
7989
|
-
//
|
|
7989
|
+
// node_modules/@procore/core-icons/dist/icons/Help.js
|
|
7990
7990
|
import * as React8 from "react";
|
|
7991
7991
|
var Help = React8.forwardRef(function Help2(props, ref) {
|
|
7992
7992
|
return React8.createElement(
|
|
@@ -8002,7 +8002,7 @@ var Help = React8.forwardRef(function Help2(props, ref) {
|
|
|
8002
8002
|
Help.displayName = "Help";
|
|
8003
8003
|
var Help_default = Help;
|
|
8004
8004
|
|
|
8005
|
-
//
|
|
8005
|
+
// node_modules/@procore/core-icons/dist/icons/Link.js
|
|
8006
8006
|
import * as React9 from "react";
|
|
8007
8007
|
var Link = React9.forwardRef(function Link2(props, ref) {
|
|
8008
8008
|
return React9.createElement(
|
|
@@ -8019,7 +8019,7 @@ var Link = React9.forwardRef(function Link2(props, ref) {
|
|
|
8019
8019
|
Link.displayName = "Link";
|
|
8020
8020
|
var Link_default = Link;
|
|
8021
8021
|
|
|
8022
|
-
//
|
|
8022
|
+
// node_modules/@procore/core-icons/dist/icons/Person.js
|
|
8023
8023
|
import * as React10 from "react";
|
|
8024
8024
|
var Person = React10.forwardRef(function Person2(props, ref) {
|
|
8025
8025
|
return React10.createElement(
|
|
@@ -8035,7 +8035,7 @@ var Person = React10.forwardRef(function Person2(props, ref) {
|
|
|
8035
8035
|
Person.displayName = "Person";
|
|
8036
8036
|
var Person_default = Person;
|
|
8037
8037
|
|
|
8038
|
-
//
|
|
8038
|
+
// node_modules/@procore/core-icons/dist/icons/Plus.js
|
|
8039
8039
|
import * as React11 from "react";
|
|
8040
8040
|
var Plus = React11.forwardRef(function Plus2(props, ref) {
|
|
8041
8041
|
return React11.createElement(
|
|
@@ -8148,7 +8148,7 @@ function stylis_min(W2) {
|
|
|
8148
8148
|
}
|
|
8149
8149
|
k2 = M2(c2, r2, k2, g2, a2 + 1);
|
|
8150
8150
|
t2 = k2.length;
|
|
8151
|
-
0 < A2 && (r2 = X2(O2, f2, I), C2 =
|
|
8151
|
+
0 < A2 && (r2 = X2(O2, f2, I), C2 = H2(3, k2, r2, c2, D2, z2, t2, g2, a2, h), f2 = r2.join(""), void 0 !== C2 && 0 === (t2 = (k2 = C2.trim()).length) && (g2 = 0, k2 = ""));
|
|
8152
8152
|
if (0 < t2)
|
|
8153
8153
|
switch (g2) {
|
|
8154
8154
|
case 115:
|
|
@@ -8181,7 +8181,7 @@ function stylis_min(W2) {
|
|
|
8181
8181
|
case 59:
|
|
8182
8182
|
f2 = (0 < r2 ? f2.replace(N, "") : f2).trim();
|
|
8183
8183
|
if (1 < (t2 = f2.length))
|
|
8184
|
-
switch (0 === u2 && (q2 = f2.charCodeAt(0), 45 === q2 || 96 < q2 && 123 > q2) && (t2 = (f2 = f2.replace(" ", ":")).length), 0 < A2 && void 0 !== (C2 =
|
|
8184
|
+
switch (0 === u2 && (q2 = f2.charCodeAt(0), 45 === q2 || 96 < q2 && 123 > q2) && (t2 = (f2 = f2.replace(" ", ":")).length), 0 < A2 && void 0 !== (C2 = H2(1, f2, c2, d, D2, z2, p.length, h, a2, h)) && 0 === (t2 = (f2 = C2.trim()).length) && (f2 = "\0\0"), q2 = f2.charCodeAt(0), g2 = f2.charCodeAt(1), q2) {
|
|
8185
8185
|
case 0:
|
|
8186
8186
|
break;
|
|
8187
8187
|
case 64:
|
|
@@ -8201,7 +8201,7 @@ function stylis_min(W2) {
|
|
|
8201
8201
|
case 13:
|
|
8202
8202
|
case 10:
|
|
8203
8203
|
47 === b2 ? b2 = 0 : 0 === 1 + q2 && 107 !== h && 0 < f2.length && (r2 = 1, f2 += "\0");
|
|
8204
|
-
0 < A2 * Y2 &&
|
|
8204
|
+
0 < A2 * Y2 && H2(0, f2, c2, d, D2, z2, p.length, h, a2, h);
|
|
8205
8205
|
z2 = 1;
|
|
8206
8206
|
D2++;
|
|
8207
8207
|
break;
|
|
@@ -8310,7 +8310,7 @@ function stylis_min(W2) {
|
|
|
8310
8310
|
t2 = p.length;
|
|
8311
8311
|
if (0 < t2) {
|
|
8312
8312
|
r2 = c2;
|
|
8313
|
-
if (0 < A2 && (C2 =
|
|
8313
|
+
if (0 < A2 && (C2 = H2(2, p, r2, d, D2, z2, t2, h, a2, h), void 0 !== C2 && 0 === (p = C2).length))
|
|
8314
8314
|
return G3 + p + F3;
|
|
8315
8315
|
p = r2.join(",") + "{" + p + "}";
|
|
8316
8316
|
if (0 !== w2 * E2) {
|
|
@@ -8487,7 +8487,7 @@ function stylis_min(W2) {
|
|
|
8487
8487
|
var e2 = P4(c2, c2.charCodeAt(0), c2.charCodeAt(1), c2.charCodeAt(2));
|
|
8488
8488
|
return e2 !== c2 + ";" ? e2.replace(oa, " or ($1)").substring(4) : "(" + c2 + ")";
|
|
8489
8489
|
}
|
|
8490
|
-
function
|
|
8490
|
+
function H2(d, c2, e2, h, a2, m2, b2, v2, n2, q2) {
|
|
8491
8491
|
for (var g2 = 0, x2 = c2, w3; g2 < A2; ++g2) {
|
|
8492
8492
|
switch (w3 = S2[g2].call(B2, d, x2, e2, h, a2, m2, b2, v2, n2, q2)) {
|
|
8493
8493
|
case void 0:
|
|
@@ -8531,11 +8531,11 @@ function stylis_min(W2) {
|
|
|
8531
8531
|
V2 = e2;
|
|
8532
8532
|
e2 = [V2];
|
|
8533
8533
|
if (0 < A2) {
|
|
8534
|
-
var h =
|
|
8534
|
+
var h = H2(-1, c2, e2, e2, D2, z2, 0, 0, 0, 0);
|
|
8535
8535
|
void 0 !== h && "string" === typeof h && (c2 = h);
|
|
8536
8536
|
}
|
|
8537
8537
|
var a2 = M2(O2, e2, c2, 0, 0);
|
|
8538
|
-
0 < A2 && (h =
|
|
8538
|
+
0 < A2 && (h = H2(-2, a2, e2, e2, D2, z2, a2.length, 0, 0, 0), void 0 !== h && (a2 = h));
|
|
8539
8539
|
V2 = "";
|
|
8540
8540
|
E2 = 0;
|
|
8541
8541
|
z2 = D2 = 1;
|
|
@@ -9343,8 +9343,8 @@ var useSavedViewsPanel = (domain, tableName) => {
|
|
|
9343
9343
|
setIsOpen(!isOpen);
|
|
9344
9344
|
localStorage.setItem(key(domain, tableName), JSON.stringify(!isOpen));
|
|
9345
9345
|
};
|
|
9346
|
-
const
|
|
9347
|
-
return { isOpen, SavedViewsButton:
|
|
9346
|
+
const Button8 = () => /* @__PURE__ */ React14.createElement(SavedViewsButton, { handleClick, isOpen });
|
|
9347
|
+
return { isOpen, SavedViewsButton: Button8 };
|
|
9348
9348
|
};
|
|
9349
9349
|
var useSavedViewsPanel_default = useSavedViewsPanel;
|
|
9350
9350
|
|
|
@@ -9426,6 +9426,17 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
9426
9426
|
label: i18n.t("savedViews.actions.delete")
|
|
9427
9427
|
}
|
|
9428
9428
|
];
|
|
9429
|
+
const preventEventBubbleToNotTriggerViewSelectEvent = React15.useCallback(
|
|
9430
|
+
(e2) => {
|
|
9431
|
+
e2.stopPropagation();
|
|
9432
|
+
},
|
|
9433
|
+
[]
|
|
9434
|
+
);
|
|
9435
|
+
const hasUpdateButton = props.item.view_level !== "default" && props.canUpdate;
|
|
9436
|
+
const hasCopyShareLinkButton = props.enableSharingViews !== false && props.item.view_level !== "default" && props.selected && !props.canUpdate && props.item.id !== "temporary";
|
|
9437
|
+
const hasClearTemporaryButton = props.item.id === "temporary";
|
|
9438
|
+
const hasOverflowMenu = props.item.view_level !== "default" && props.canEditOrDelete;
|
|
9439
|
+
const hasActions = hasUpdateButton || hasCopyShareLinkButton || hasClearTemporaryButton || hasOverflowMenu;
|
|
9429
9440
|
return /* @__PURE__ */ React15.createElement(
|
|
9430
9441
|
Container2,
|
|
9431
9442
|
{
|
|
@@ -9435,7 +9446,8 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
9435
9446
|
"aria-label": i18n.t("savedViews.ariaLabels.menuItem", {
|
|
9436
9447
|
name: props.item.name
|
|
9437
9448
|
}),
|
|
9438
|
-
"data-testid": "saved-view-collection-menu-item"
|
|
9449
|
+
"data-testid": "saved-view-collection-menu-item",
|
|
9450
|
+
onKeyDown: preventEventBubbleToNotTriggerViewSelectEvent
|
|
9439
9451
|
},
|
|
9440
9452
|
/* @__PURE__ */ React15.createElement(
|
|
9441
9453
|
"span",
|
|
@@ -9445,7 +9457,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
9445
9457
|
},
|
|
9446
9458
|
props.item.name
|
|
9447
9459
|
),
|
|
9448
|
-
/* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(Box, { justifyContent: "space-between" },
|
|
9460
|
+
hasActions && /* @__PURE__ */ React15.createElement(RowActionsBox, null, /* @__PURE__ */ React15.createElement(Box, { justifyContent: "space-between" }, hasUpdateButton && /* @__PURE__ */ React15.createElement(
|
|
9449
9461
|
Button2,
|
|
9450
9462
|
{
|
|
9451
9463
|
onClick: updateItem,
|
|
@@ -9456,7 +9468,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
9456
9468
|
loading: props.isUpdateProcessing
|
|
9457
9469
|
},
|
|
9458
9470
|
i18n.t("savedViews.actions.update")
|
|
9459
|
-
)
|
|
9471
|
+
), hasCopyShareLinkButton && /* @__PURE__ */ React15.createElement(
|
|
9460
9472
|
Button2,
|
|
9461
9473
|
{
|
|
9462
9474
|
onClick: copyShareLink,
|
|
@@ -9466,7 +9478,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
9466
9478
|
"data-testid": "copy-share-link-button"
|
|
9467
9479
|
},
|
|
9468
9480
|
/* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Link_default, { size: "sm" }))
|
|
9469
|
-
)
|
|
9481
|
+
), hasClearTemporaryButton && /* @__PURE__ */ React15.createElement(
|
|
9470
9482
|
Button2,
|
|
9471
9483
|
{
|
|
9472
9484
|
onClick: (e2) => {
|
|
@@ -9481,7 +9493,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
9481
9493
|
"data-testid": "clear-temporary-view-button"
|
|
9482
9494
|
},
|
|
9483
9495
|
/* @__PURE__ */ React15.createElement(IconWrapper, null, /* @__PURE__ */ React15.createElement(Clear_default, { size: "sm" }))
|
|
9484
|
-
))
|
|
9496
|
+
)), /* @__PURE__ */ React15.createElement(Box, null, hasOverflowMenu && /* @__PURE__ */ React15.createElement(
|
|
9485
9497
|
DropdownFlyout,
|
|
9486
9498
|
{
|
|
9487
9499
|
"data-testid": "saved-view-overflow-button",
|
|
@@ -9492,7 +9504,7 @@ var SavedViewCollectionMenuItem = (props) => {
|
|
|
9492
9504
|
variant: "tertiary",
|
|
9493
9505
|
disabled: props.isUpdateProcessing
|
|
9494
9506
|
}
|
|
9495
|
-
)))
|
|
9507
|
+
)))
|
|
9496
9508
|
);
|
|
9497
9509
|
};
|
|
9498
9510
|
|
|
@@ -9526,7 +9538,7 @@ var useScrollToRef = (dependency) => {
|
|
|
9526
9538
|
};
|
|
9527
9539
|
|
|
9528
9540
|
// src/components/panels/PanelContent.tsx
|
|
9529
|
-
import { Flex as
|
|
9541
|
+
import { Flex as Flex2, MenuImperative as MenuImperative2, useI18nContext as useI18nContext4 } from "@procore/core-react";
|
|
9530
9542
|
import { useToastAlertContext as useToastAlertContext2 } from "@procore/toast-alert";
|
|
9531
9543
|
import React17 from "react";
|
|
9532
9544
|
|
|
@@ -9534,7 +9546,7 @@ import React17 from "react";
|
|
|
9534
9546
|
import {
|
|
9535
9547
|
colors,
|
|
9536
9548
|
DetailPage,
|
|
9537
|
-
|
|
9549
|
+
MenuImperative,
|
|
9538
9550
|
spacing
|
|
9539
9551
|
} from "@procore/core-react";
|
|
9540
9552
|
var Row = styled_components_esm_default(MenuImperative.Item)`
|
|
@@ -9798,9 +9810,9 @@ var useGroups = (isProjectLevelTool) => {
|
|
|
9798
9810
|
|
|
9799
9811
|
// src/components/panels/ViewLevelHeader.tsx
|
|
9800
9812
|
import {
|
|
9813
|
+
Box as Box2,
|
|
9814
|
+
Button as Button3,
|
|
9801
9815
|
colors as colors2,
|
|
9802
|
-
Flex as Flex2,
|
|
9803
|
-
spacing as spacing2,
|
|
9804
9816
|
Typography,
|
|
9805
9817
|
useI18nContext as useI18nContext3
|
|
9806
9818
|
} from "@procore/core-react";
|
|
@@ -9815,31 +9827,40 @@ var groupIcon = (group) => {
|
|
|
9815
9827
|
return /* @__PURE__ */ React16.createElement(Building_default, null);
|
|
9816
9828
|
}
|
|
9817
9829
|
};
|
|
9818
|
-
var
|
|
9819
|
-
width: 100%;
|
|
9830
|
+
var StyledButton2 = styled_components_esm_default(Button3)`
|
|
9820
9831
|
&:hover {
|
|
9821
9832
|
background-color: ${colors2.gray98};
|
|
9822
9833
|
}
|
|
9823
9834
|
`;
|
|
9824
9835
|
var ViewLevelHeader = ({ expanded, toggleGroup, group }) => {
|
|
9825
9836
|
const I18n = useI18nContext3();
|
|
9826
|
-
return /* @__PURE__ */ React16.createElement(
|
|
9827
|
-
|
|
9837
|
+
return /* @__PURE__ */ React16.createElement(Box2, { style: { width: "100%" } }, /* @__PURE__ */ React16.createElement(
|
|
9838
|
+
StyledButton2,
|
|
9828
9839
|
{
|
|
9829
|
-
|
|
9830
|
-
|
|
9831
|
-
|
|
9832
|
-
|
|
9833
|
-
|
|
9840
|
+
block: true,
|
|
9841
|
+
style: {
|
|
9842
|
+
justifyContent: "start",
|
|
9843
|
+
height: "40px"
|
|
9844
|
+
},
|
|
9845
|
+
variant: "tertiary",
|
|
9846
|
+
size: "sm",
|
|
9847
|
+
onClick: () => toggleGroup(group),
|
|
9848
|
+
"aria-controls": `saved-views-collections-${group}`,
|
|
9849
|
+
"aria-expanded": expanded,
|
|
9850
|
+
icon: expanded ? /* @__PURE__ */ React16.createElement(ChevronDown_default, { size: "sm" }) : /* @__PURE__ */ React16.createElement(ChevronRight_default, { size: "sm" })
|
|
9834
9851
|
},
|
|
9835
|
-
expanded ? /* @__PURE__ */ React16.createElement(ChevronDown_default, { size: "sm" }) : /* @__PURE__ */ React16.createElement(ChevronRight_default, { size: "sm" }),
|
|
9836
9852
|
groupIcon(group),
|
|
9837
9853
|
/* @__PURE__ */ React16.createElement(Typography, { weight: "semibold" }, I18n.t(`savedViews.viewLevel.${group}`))
|
|
9838
|
-
);
|
|
9854
|
+
));
|
|
9839
9855
|
};
|
|
9840
9856
|
var ViewLevelHeader_default = ViewLevelHeader;
|
|
9841
9857
|
|
|
9842
9858
|
// src/components/panels/PanelContent.tsx
|
|
9859
|
+
var StyledMenuImperative = styled_components_esm_default(MenuImperative2)`
|
|
9860
|
+
div[role='listbox'] {
|
|
9861
|
+
padding: 0;
|
|
9862
|
+
}
|
|
9863
|
+
`;
|
|
9843
9864
|
var PanelContent = (props) => {
|
|
9844
9865
|
const { queryInput, selectedSavedView, tableConfig } = props;
|
|
9845
9866
|
const { showToast } = useToastAlertContext2();
|
|
@@ -9882,42 +9903,54 @@ var PanelContent = (props) => {
|
|
|
9882
9903
|
}
|
|
9883
9904
|
});
|
|
9884
9905
|
};
|
|
9885
|
-
return /* @__PURE__ */ React17.createElement(Panel2, { "data-testid": "inner-panel" }, /* @__PURE__ */ React17.createElement(
|
|
9886
|
-
|
|
9906
|
+
return /* @__PURE__ */ React17.createElement(Panel2, { "data-testid": "inner-panel" }, /* @__PURE__ */ React17.createElement(Flex2, { direction: "column", style: { height: "100%", width: "100%" } }, (temporaryView || presetViews) && /* @__PURE__ */ React17.createElement(
|
|
9907
|
+
StyledMenuImperative,
|
|
9887
9908
|
{
|
|
9888
|
-
|
|
9889
|
-
|
|
9890
|
-
|
|
9909
|
+
role: "listbox",
|
|
9910
|
+
onSelect: (selection) => {
|
|
9911
|
+
if ((selectedSavedView == null ? void 0 : selectedSavedView.id) !== selection.item.id) {
|
|
9912
|
+
props.onSelect({ item: selection.item });
|
|
9913
|
+
}
|
|
9914
|
+
}
|
|
9891
9915
|
},
|
|
9892
|
-
/* @__PURE__ */ React17.createElement(
|
|
9893
|
-
|
|
9916
|
+
/* @__PURE__ */ React17.createElement(MenuImperative2.Options, null, temporaryView && /* @__PURE__ */ React17.createElement(
|
|
9917
|
+
Row,
|
|
9894
9918
|
{
|
|
9919
|
+
key: temporaryView.id,
|
|
9895
9920
|
item: temporaryView,
|
|
9896
9921
|
selected: isTemporarySelected,
|
|
9897
|
-
|
|
9898
|
-
enableSharingViews: false
|
|
9899
|
-
}
|
|
9900
|
-
)
|
|
9901
|
-
), presetViews.map((presetView) => {
|
|
9902
|
-
const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === presetView.id;
|
|
9903
|
-
return /* @__PURE__ */ React17.createElement(
|
|
9904
|
-
Row,
|
|
9905
|
-
{
|
|
9906
|
-
key: presetView.id,
|
|
9907
|
-
selected: isSelected,
|
|
9908
|
-
onClick: () => props.onSelect({ item: presetView }),
|
|
9909
|
-
ref: isSelected ? selectedRowRef : null
|
|
9922
|
+
ref: isTemporarySelected ? selectedRowRef : null
|
|
9910
9923
|
},
|
|
9911
9924
|
/* @__PURE__ */ React17.createElement(
|
|
9912
9925
|
SavedViewCollectionMenuItem,
|
|
9913
9926
|
{
|
|
9914
|
-
item:
|
|
9915
|
-
selected:
|
|
9916
|
-
|
|
9927
|
+
item: temporaryView,
|
|
9928
|
+
selected: isTemporarySelected,
|
|
9929
|
+
onClearTemporary: props.onClearTemporary,
|
|
9930
|
+
enableSharingViews: props.enableSharingViews
|
|
9917
9931
|
}
|
|
9918
9932
|
)
|
|
9919
|
-
)
|
|
9920
|
-
|
|
9933
|
+
), presetViews.map((presetView) => {
|
|
9934
|
+
const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === presetView.id;
|
|
9935
|
+
return /* @__PURE__ */ React17.createElement(
|
|
9936
|
+
Row,
|
|
9937
|
+
{
|
|
9938
|
+
key: presetView.id,
|
|
9939
|
+
item: presetView,
|
|
9940
|
+
selected: isSelected,
|
|
9941
|
+
ref: isSelected ? selectedRowRef : null
|
|
9942
|
+
},
|
|
9943
|
+
/* @__PURE__ */ React17.createElement(
|
|
9944
|
+
SavedViewCollectionMenuItem,
|
|
9945
|
+
{
|
|
9946
|
+
item: presetView,
|
|
9947
|
+
selected: isSelected,
|
|
9948
|
+
enableSharingViews: props.enableSharingViews
|
|
9949
|
+
}
|
|
9950
|
+
)
|
|
9951
|
+
);
|
|
9952
|
+
}))
|
|
9953
|
+
), viewLevels.map((level) => {
|
|
9921
9954
|
const isExpanded = groups[level];
|
|
9922
9955
|
const views = isExpanded && savedViews ? savedViews.filter(
|
|
9923
9956
|
(view) => view.view_level === level && view.id !== "temporary"
|
|
@@ -9929,63 +9962,75 @@ var PanelContent = (props) => {
|
|
|
9929
9962
|
toggleGroup,
|
|
9930
9963
|
expanded: isExpanded
|
|
9931
9964
|
}
|
|
9932
|
-
), views.
|
|
9933
|
-
|
|
9934
|
-
|
|
9935
|
-
|
|
9936
|
-
|
|
9937
|
-
|
|
9938
|
-
|
|
9939
|
-
|
|
9940
|
-
|
|
9941
|
-
|
|
9942
|
-
|
|
9943
|
-
|
|
9944
|
-
|
|
9945
|
-
|
|
9946
|
-
|
|
9947
|
-
|
|
9948
|
-
|
|
9949
|
-
|
|
9950
|
-
|
|
9951
|
-
|
|
9952
|
-
|
|
9953
|
-
|
|
9965
|
+
), isExpanded && views.length > 0 && /* @__PURE__ */ React17.createElement(
|
|
9966
|
+
StyledMenuImperative,
|
|
9967
|
+
{
|
|
9968
|
+
id: `saved-views-collections-${level}`,
|
|
9969
|
+
role: "listbox",
|
|
9970
|
+
onSelect: (selection) => {
|
|
9971
|
+
if ((selectedSavedView == null ? void 0 : selectedSavedView.id) !== selection.item.id) {
|
|
9972
|
+
props.onSelect({ item: selection.item });
|
|
9973
|
+
}
|
|
9974
|
+
}
|
|
9975
|
+
},
|
|
9976
|
+
/* @__PURE__ */ React17.createElement(MenuImperative2.Options, null, views.map((view) => {
|
|
9977
|
+
const isSelected = (selectedSavedView == null ? void 0 : selectedSavedView.id) === view.id;
|
|
9978
|
+
const canUpdate = isSelected && hasPermissionForViewLevel(
|
|
9979
|
+
view.view_level,
|
|
9980
|
+
permissions
|
|
9981
|
+
) && !isEqual(
|
|
9982
|
+
view.table_config,
|
|
9983
|
+
tableConfig,
|
|
9984
|
+
props.defaultView.table_config,
|
|
9985
|
+
props.provider
|
|
9986
|
+
);
|
|
9987
|
+
const canEditOrDelete = isSelected && hasPermissionForViewLevel(view.view_level, permissions);
|
|
9988
|
+
return /* @__PURE__ */ React17.createElement(
|
|
9989
|
+
Row,
|
|
9954
9990
|
{
|
|
9955
|
-
item: view,
|
|
9956
9991
|
key: view.id,
|
|
9992
|
+
item: view,
|
|
9957
9993
|
selected: isSelected,
|
|
9958
|
-
|
|
9959
|
-
|
|
9960
|
-
|
|
9961
|
-
|
|
9962
|
-
|
|
9963
|
-
|
|
9964
|
-
|
|
9965
|
-
|
|
9966
|
-
|
|
9967
|
-
|
|
9968
|
-
|
|
9969
|
-
|
|
9994
|
+
ref: isSelected ? selectedRowRef : null
|
|
9995
|
+
},
|
|
9996
|
+
/* @__PURE__ */ React17.createElement(
|
|
9997
|
+
SavedViewCollectionMenuItem,
|
|
9998
|
+
{
|
|
9999
|
+
item: view,
|
|
10000
|
+
key: view.id,
|
|
10001
|
+
selected: isSelected,
|
|
10002
|
+
canUpdate,
|
|
10003
|
+
canEditOrDelete,
|
|
10004
|
+
onUpdate: (data) => onUpdate(data),
|
|
10005
|
+
isUpdateProcessing: isUpdateLoading,
|
|
10006
|
+
onEdit: () => props.openModal("update" /* UPDATE */),
|
|
10007
|
+
onDelete: props.onDelete,
|
|
10008
|
+
permissions,
|
|
10009
|
+
enableSharingViews: props.enableSharingViews
|
|
10010
|
+
}
|
|
10011
|
+
)
|
|
10012
|
+
);
|
|
10013
|
+
}))
|
|
10014
|
+
));
|
|
9970
10015
|
})));
|
|
9971
10016
|
};
|
|
9972
10017
|
|
|
9973
10018
|
// src/components/saved-views/SavedViews.tsx
|
|
9974
10019
|
import {
|
|
9975
|
-
Box as
|
|
9976
|
-
Button as
|
|
9977
|
-
Flex as
|
|
10020
|
+
Box as Box3,
|
|
10021
|
+
Button as Button7,
|
|
10022
|
+
Flex as Flex5,
|
|
9978
10023
|
Panel as Panel3,
|
|
9979
10024
|
Tooltip,
|
|
9980
|
-
useI18nContext as
|
|
10025
|
+
useI18nContext as useI18nContext12
|
|
9981
10026
|
} from "@procore/core-react";
|
|
9982
|
-
import
|
|
10027
|
+
import React23, { useState as useState4, useEffect as useEffect5, useCallback as useCallback3 } from "react";
|
|
9983
10028
|
import { QueryClient, QueryClientProvider } from "@tanstack/react-query";
|
|
9984
10029
|
import { useToastAlertContext as useToastAlertContext3, ToastAlertProvider } from "@procore/toast-alert";
|
|
9985
10030
|
|
|
9986
10031
|
// src/components/modals/DeleteConfirmationModal.tsx
|
|
9987
10032
|
import {
|
|
9988
|
-
Button as
|
|
10033
|
+
Button as Button4,
|
|
9989
10034
|
ConfirmModal,
|
|
9990
10035
|
Modal,
|
|
9991
10036
|
P as P2,
|
|
@@ -10009,28 +10054,27 @@ var SavedViewsDeleteConfirmationModalShared = ({
|
|
|
10009
10054
|
style: { overflowWrap: "anywhere" }
|
|
10010
10055
|
},
|
|
10011
10056
|
/* @__PURE__ */ React18.createElement(Modal.Body, null, /* @__PURE__ */ React18.createElement(P2, null, i18n.t("savedViews.modal.delete.description"))),
|
|
10012
|
-
/* @__PURE__ */ React18.createElement(Modal.Footer, null, /* @__PURE__ */ React18.createElement(Modal.FooterButtons, null, /* @__PURE__ */ React18.createElement(
|
|
10057
|
+
/* @__PURE__ */ React18.createElement(Modal.Footer, null, /* @__PURE__ */ React18.createElement(Modal.FooterButtons, null, /* @__PURE__ */ React18.createElement(Button4, { variant: "secondary", onClick: onCancel }, i18n.t("savedViews.actions.cancel")), /* @__PURE__ */ React18.createElement(Button4, { variant: "primary", onClick: onDelete }, i18n.t("savedViews.actions.delete"))))
|
|
10013
10058
|
);
|
|
10014
10059
|
};
|
|
10015
10060
|
|
|
10016
10061
|
// src/components/modals/form-modal/FormModal.tsx
|
|
10017
|
-
import
|
|
10062
|
+
import React21 from "react";
|
|
10018
10063
|
|
|
10019
10064
|
// src/components/modals/form-modal/FormModalBase.tsx
|
|
10020
10065
|
import {
|
|
10021
10066
|
Banner,
|
|
10022
|
-
Button as
|
|
10067
|
+
Button as Button5,
|
|
10023
10068
|
colors as colors3,
|
|
10024
10069
|
ErrorBanner,
|
|
10025
|
-
Flex as
|
|
10026
|
-
Form,
|
|
10027
|
-
H2,
|
|
10070
|
+
Flex as Flex3,
|
|
10071
|
+
Form as Form2,
|
|
10028
10072
|
Modal as Modal2,
|
|
10029
|
-
spacing as
|
|
10073
|
+
spacing as spacing2,
|
|
10030
10074
|
Typography as Typography2,
|
|
10031
|
-
useI18nContext as
|
|
10075
|
+
useI18nContext as useI18nContext7
|
|
10032
10076
|
} from "@procore/core-react";
|
|
10033
|
-
import * as
|
|
10077
|
+
import * as React20 from "react";
|
|
10034
10078
|
import * as yup from "yup";
|
|
10035
10079
|
|
|
10036
10080
|
// src/components/modals/form-modal/FormModalBaseUtils.ts
|
|
@@ -10067,8 +10111,39 @@ function extractMessage(error, I18n) {
|
|
|
10067
10111
|
return { form: I18n.t("savedViews.modal.errors.unknown") };
|
|
10068
10112
|
}
|
|
10069
10113
|
|
|
10114
|
+
// src/components/modals/form-modal/NameInputField.tsx
|
|
10115
|
+
import { Form, useFormContext, useI18nContext as useI18nContext6 } from "@procore/core-react";
|
|
10116
|
+
import * as React19 from "react";
|
|
10117
|
+
var NAME_INPUT_ID = "saved-view-form-name-input";
|
|
10118
|
+
var NameInputField = ({
|
|
10119
|
+
error,
|
|
10120
|
+
onResetMutations
|
|
10121
|
+
}) => {
|
|
10122
|
+
const I18n = useI18nContext6();
|
|
10123
|
+
const label = I18n.t("savedViews.modal.fields.name");
|
|
10124
|
+
const { errors: formErrors, submitCount } = useFormContext();
|
|
10125
|
+
React19.useEffect(() => {
|
|
10126
|
+
var _a;
|
|
10127
|
+
if (submitCount > 0 && (formErrors == null ? void 0 : formErrors.name)) {
|
|
10128
|
+
(_a = document.getElementById(NAME_INPUT_ID)) == null ? void 0 : _a.focus();
|
|
10129
|
+
}
|
|
10130
|
+
}, [formErrors == null ? void 0 : formErrors.name, submitCount]);
|
|
10131
|
+
return /* @__PURE__ */ React19.createElement(
|
|
10132
|
+
Form.Text,
|
|
10133
|
+
{
|
|
10134
|
+
id: NAME_INPUT_ID,
|
|
10135
|
+
name: "name",
|
|
10136
|
+
error,
|
|
10137
|
+
placeholder: label,
|
|
10138
|
+
label,
|
|
10139
|
+
colWidth: 12,
|
|
10140
|
+
onChange: onResetMutations
|
|
10141
|
+
}
|
|
10142
|
+
);
|
|
10143
|
+
};
|
|
10144
|
+
|
|
10070
10145
|
// src/components/modals/form-modal/FormModalBase.tsx
|
|
10071
|
-
var { useEffect:
|
|
10146
|
+
var { useEffect: useEffect3, useRef: useRef2 } = React20;
|
|
10072
10147
|
var ScrollContainer = styled_components_esm_default("div")`
|
|
10073
10148
|
overflow: auto;
|
|
10074
10149
|
`;
|
|
@@ -10088,10 +10163,10 @@ var FormModalBase = ({
|
|
|
10088
10163
|
onSelect,
|
|
10089
10164
|
backend
|
|
10090
10165
|
}) => {
|
|
10091
|
-
const I18n =
|
|
10166
|
+
const I18n = useI18nContext7();
|
|
10092
10167
|
const NAME_MAX_LENGTH = 150;
|
|
10093
10168
|
const originalBodyWidth = useRef2("");
|
|
10094
|
-
|
|
10169
|
+
useEffect3(() => {
|
|
10095
10170
|
if (open) {
|
|
10096
10171
|
originalBodyWidth.current = document.body.style.width || "";
|
|
10097
10172
|
document.body.style.width = "100%";
|
|
@@ -10162,24 +10237,17 @@ var FormModalBase = ({
|
|
|
10162
10237
|
I18n,
|
|
10163
10238
|
isProjectLevelTool
|
|
10164
10239
|
);
|
|
10165
|
-
return /* @__PURE__ */
|
|
10240
|
+
return /* @__PURE__ */ React20.createElement(
|
|
10166
10241
|
Modal2,
|
|
10167
10242
|
{
|
|
10168
|
-
"
|
|
10169
|
-
|
|
10243
|
+
howToClose: ["x", "scrim"],
|
|
10244
|
+
onClose,
|
|
10170
10245
|
open,
|
|
10171
|
-
|
|
10246
|
+
width: "md",
|
|
10172
10247
|
"data-testid": "create-update-modal"
|
|
10173
10248
|
},
|
|
10174
|
-
/* @__PURE__ */
|
|
10175
|
-
|
|
10176
|
-
{
|
|
10177
|
-
onClose,
|
|
10178
|
-
style: { borderBottom: `1px solid ${colors3.gray85}` }
|
|
10179
|
-
},
|
|
10180
|
-
/* @__PURE__ */ React19.createElement(H2, null, header)
|
|
10181
|
-
), /* @__PURE__ */ React19.createElement(
|
|
10182
|
-
Form,
|
|
10249
|
+
/* @__PURE__ */ React20.createElement(ScrollContainer, null, /* @__PURE__ */ React20.createElement(Modal2.Header, { style: { borderBottom: `1px solid ${colors3.gray85}` } }, /* @__PURE__ */ React20.createElement(Modal2.Heading, null, header)), /* @__PURE__ */ React20.createElement(
|
|
10250
|
+
Form2,
|
|
10183
10251
|
{
|
|
10184
10252
|
initialValues: {
|
|
10185
10253
|
name: initialName,
|
|
@@ -10204,30 +10272,26 @@ var FormModalBase = ({
|
|
|
10204
10272
|
onReset: onCancel,
|
|
10205
10273
|
validateOnChange: true
|
|
10206
10274
|
},
|
|
10207
|
-
/* @__PURE__ */
|
|
10275
|
+
/* @__PURE__ */ React20.createElement(Form2.Form, { name: header }, /* @__PURE__ */ React20.createElement(
|
|
10208
10276
|
Modal2.Body,
|
|
10209
10277
|
{
|
|
10210
|
-
style: { paddingTop: 0, paddingBottom: 0, marginTop:
|
|
10278
|
+
style: { paddingTop: 0, paddingBottom: 0, marginTop: spacing2.lg }
|
|
10211
10279
|
},
|
|
10212
|
-
errors && /* @__PURE__ */
|
|
10213
|
-
/* @__PURE__ */
|
|
10214
|
-
|
|
10280
|
+
errors && /* @__PURE__ */ React20.createElement(ErrorBanner, { style: { marginBottom: spacing2.xl } }, /* @__PURE__ */ React20.createElement(Banner.Content, null, /* @__PURE__ */ React20.createElement(Banner.Title, null, I18n.t("savedViews.modal.errors.title", { mode })), /* @__PURE__ */ React20.createElement(Banner.Body, null, (errors == null ? void 0 : errors.form) || I18n.t(`savedViews.modal.errors.description.${mode}`)))),
|
|
10281
|
+
/* @__PURE__ */ React20.createElement(Form2.Row, null, /* @__PURE__ */ React20.createElement(
|
|
10282
|
+
NameInputField,
|
|
10215
10283
|
{
|
|
10216
|
-
name: "name",
|
|
10217
10284
|
error: errors == null ? void 0 : errors.name,
|
|
10218
|
-
|
|
10219
|
-
label: I18n.t("savedViews.modal.fields.name"),
|
|
10220
|
-
colWidth: 12,
|
|
10221
|
-
onChange: () => resetMutations()
|
|
10285
|
+
onResetMutations: resetMutations
|
|
10222
10286
|
}
|
|
10223
10287
|
)),
|
|
10224
|
-
/* @__PURE__ */
|
|
10225
|
-
|
|
10288
|
+
/* @__PURE__ */ React20.createElement(
|
|
10289
|
+
Form2.Row,
|
|
10226
10290
|
{
|
|
10227
|
-
style: { marginTop: (errors == null ? void 0 : errors.name) ?
|
|
10291
|
+
style: { marginTop: (errors == null ? void 0 : errors.name) ? spacing2.xl : spacing2.none }
|
|
10228
10292
|
},
|
|
10229
|
-
/* @__PURE__ */
|
|
10230
|
-
|
|
10293
|
+
/* @__PURE__ */ React20.createElement(
|
|
10294
|
+
Form2.TextArea,
|
|
10231
10295
|
{
|
|
10232
10296
|
name: "description",
|
|
10233
10297
|
placeholder: I18n.t("savedViews.modal.fields.description"),
|
|
@@ -10237,8 +10301,8 @@ var FormModalBase = ({
|
|
|
10237
10301
|
}
|
|
10238
10302
|
)
|
|
10239
10303
|
),
|
|
10240
|
-
viewLevelOptions.length > 1 && mode === "create" /* CREATE */ ? /* @__PURE__ */
|
|
10241
|
-
|
|
10304
|
+
viewLevelOptions.length > 1 && mode === "create" /* CREATE */ ? /* @__PURE__ */ React20.createElement(Form2.Row, null, /* @__PURE__ */ React20.createElement(
|
|
10305
|
+
Form2.Select,
|
|
10242
10306
|
{
|
|
10243
10307
|
name: "view_level",
|
|
10244
10308
|
qa: { label: "view-level" },
|
|
@@ -10248,9 +10312,9 @@ var FormModalBase = ({
|
|
|
10248
10312
|
onSearch: false,
|
|
10249
10313
|
onClear: false
|
|
10250
10314
|
}
|
|
10251
|
-
)) : /* @__PURE__ */
|
|
10252
|
-
), /* @__PURE__ */
|
|
10253
|
-
|
|
10315
|
+
)) : /* @__PURE__ */ React20.createElement(React20.Fragment, null)
|
|
10316
|
+
), /* @__PURE__ */ React20.createElement(Modal2.Footer, { style: { borderTop: `1px solid ${colors3.gray85}` } }, /* @__PURE__ */ React20.createElement(Flex3, { grow: "1", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React20.createElement(Typography2, { color: "gray45", italic: true }, /* @__PURE__ */ React20.createElement(Typography2, { color: "red45" }, "*"), " ", I18n.t("savedViews.modal.info.required_fields")), /* @__PURE__ */ React20.createElement(Modal2.FooterButtons, null, /* @__PURE__ */ React20.createElement(Button5, { type: "reset", variant: "tertiary", disabled: isLoading }, I18n.t("savedViews.actions.cancel")), /* @__PURE__ */ React20.createElement(
|
|
10317
|
+
Button5,
|
|
10254
10318
|
{
|
|
10255
10319
|
"data-testid": "create-update-modal-button",
|
|
10256
10320
|
type: "submit",
|
|
@@ -10265,7 +10329,7 @@ var FormModalBase = ({
|
|
|
10265
10329
|
};
|
|
10266
10330
|
|
|
10267
10331
|
// src/components/modals/form-modal/FormModal.tsx
|
|
10268
|
-
import { useI18nContext as
|
|
10332
|
+
import { useI18nContext as useI18nContext8 } from "@procore/core-react";
|
|
10269
10333
|
var FormModal = ({
|
|
10270
10334
|
open,
|
|
10271
10335
|
mode,
|
|
@@ -10279,8 +10343,8 @@ var FormModal = ({
|
|
|
10279
10343
|
defaultView,
|
|
10280
10344
|
backend
|
|
10281
10345
|
}) => {
|
|
10282
|
-
const i18n =
|
|
10283
|
-
return /* @__PURE__ */
|
|
10346
|
+
const i18n = useI18nContext8();
|
|
10347
|
+
return /* @__PURE__ */ React21.createElement(
|
|
10284
10348
|
FormModalBase,
|
|
10285
10349
|
{
|
|
10286
10350
|
open,
|
|
@@ -10304,18 +10368,18 @@ var FormModal = ({
|
|
|
10304
10368
|
// src/components/modals/form-modal/SharedViewFormModal.tsx
|
|
10305
10369
|
import {
|
|
10306
10370
|
Banner as Banner2,
|
|
10307
|
-
Button as
|
|
10371
|
+
Button as Button6,
|
|
10308
10372
|
colors as colors4,
|
|
10309
10373
|
ErrorBanner as ErrorBanner2,
|
|
10310
|
-
Flex as
|
|
10311
|
-
Form as
|
|
10374
|
+
Flex as Flex4,
|
|
10375
|
+
Form as Form3,
|
|
10312
10376
|
Modal as Modal3,
|
|
10313
10377
|
P as P3,
|
|
10314
|
-
spacing as
|
|
10378
|
+
spacing as spacing3,
|
|
10315
10379
|
Typography as Typography3,
|
|
10316
|
-
useI18nContext as
|
|
10380
|
+
useI18nContext as useI18nContext9
|
|
10317
10381
|
} from "@procore/core-react";
|
|
10318
|
-
import * as
|
|
10382
|
+
import * as React22 from "react";
|
|
10319
10383
|
import * as yup2 from "yup";
|
|
10320
10384
|
var SharedViewFormModal = ({
|
|
10321
10385
|
open,
|
|
@@ -10327,7 +10391,7 @@ var SharedViewFormModal = ({
|
|
|
10327
10391
|
isCreating,
|
|
10328
10392
|
resetCreateError
|
|
10329
10393
|
}) => {
|
|
10330
|
-
const I18n =
|
|
10394
|
+
const I18n = useI18nContext9();
|
|
10331
10395
|
const NAME_MAX_LENGTH = 150;
|
|
10332
10396
|
const errors = extractMessage(createError, I18n);
|
|
10333
10397
|
const handleNameChange = () => {
|
|
@@ -10338,35 +10402,36 @@ var SharedViewFormModal = ({
|
|
|
10338
10402
|
const handleOnSubmit = (data) => {
|
|
10339
10403
|
onCreateView(data.name, data.description);
|
|
10340
10404
|
};
|
|
10341
|
-
return /* @__PURE__ */
|
|
10405
|
+
return /* @__PURE__ */ React22.createElement(
|
|
10342
10406
|
Modal3,
|
|
10343
10407
|
{
|
|
10344
10408
|
"data-testid": "shared-view-form-modal",
|
|
10345
10409
|
open,
|
|
10346
|
-
|
|
10410
|
+
howToClose: ["x", "scrim"],
|
|
10411
|
+
onClose,
|
|
10347
10412
|
style: { width: "540px" }
|
|
10348
10413
|
},
|
|
10349
|
-
/* @__PURE__ */
|
|
10414
|
+
/* @__PURE__ */ React22.createElement(
|
|
10350
10415
|
Modal3.Header,
|
|
10351
10416
|
{
|
|
10352
10417
|
onClose,
|
|
10353
10418
|
style: {
|
|
10354
|
-
paddingTop:
|
|
10355
|
-
paddingBottom:
|
|
10356
|
-
paddingLeft:
|
|
10357
|
-
paddingRight:
|
|
10419
|
+
paddingTop: spacing3.lg,
|
|
10420
|
+
paddingBottom: spacing3.xs,
|
|
10421
|
+
paddingLeft: spacing3.xl,
|
|
10422
|
+
paddingRight: spacing3.xl
|
|
10358
10423
|
}
|
|
10359
10424
|
},
|
|
10360
|
-
I18n.t("savedViews.modal.create.title")
|
|
10425
|
+
/* @__PURE__ */ React22.createElement(Modal3.Heading, null, I18n.t("savedViews.modal.create.title"))
|
|
10361
10426
|
),
|
|
10362
|
-
/* @__PURE__ */
|
|
10427
|
+
/* @__PURE__ */ React22.createElement(
|
|
10363
10428
|
P3,
|
|
10364
10429
|
{
|
|
10365
10430
|
style: {
|
|
10366
|
-
paddingLeft:
|
|
10367
|
-
paddingRight:
|
|
10368
|
-
paddingBottom:
|
|
10369
|
-
paddingTop:
|
|
10431
|
+
paddingLeft: spacing3.xl,
|
|
10432
|
+
paddingRight: spacing3.xl,
|
|
10433
|
+
paddingBottom: spacing3.lg,
|
|
10434
|
+
paddingTop: spacing3.none,
|
|
10370
10435
|
margin: 0,
|
|
10371
10436
|
color: colors4.gray45,
|
|
10372
10437
|
whiteSpace: "pre-line"
|
|
@@ -10374,8 +10439,8 @@ var SharedViewFormModal = ({
|
|
|
10374
10439
|
},
|
|
10375
10440
|
I18n.t("savedViews.modal.copyConfirmation.description")
|
|
10376
10441
|
),
|
|
10377
|
-
/* @__PURE__ */
|
|
10378
|
-
|
|
10442
|
+
/* @__PURE__ */ React22.createElement(
|
|
10443
|
+
Form3,
|
|
10379
10444
|
{
|
|
10380
10445
|
initialValues: {
|
|
10381
10446
|
name: fetchedView.name,
|
|
@@ -10393,36 +10458,32 @@ var SharedViewFormModal = ({
|
|
|
10393
10458
|
onSubmit: handleOnSubmit,
|
|
10394
10459
|
validateOnChange: true
|
|
10395
10460
|
},
|
|
10396
|
-
/* @__PURE__ */
|
|
10461
|
+
/* @__PURE__ */ React22.createElement(Form3.Form, { name: "share-view-form" }, /* @__PURE__ */ React22.createElement(
|
|
10397
10462
|
Modal3.Body,
|
|
10398
10463
|
{
|
|
10399
10464
|
style: {
|
|
10400
|
-
paddingTop:
|
|
10465
|
+
paddingTop: spacing3.lg,
|
|
10401
10466
|
paddingBottom: 0,
|
|
10402
10467
|
borderTop: `1px solid ${colors4.gray85}`
|
|
10403
10468
|
}
|
|
10404
10469
|
},
|
|
10405
|
-
errors && /* @__PURE__ */
|
|
10470
|
+
errors && /* @__PURE__ */ React22.createElement(ErrorBanner2, { style: { marginBottom: spacing3.xl } }, /* @__PURE__ */ React22.createElement(Banner2.Content, null, /* @__PURE__ */ React22.createElement(Banner2.Title, null, I18n.t("savedViews.modal.errors.title", {
|
|
10406
10471
|
mode: "create"
|
|
10407
|
-
})), /* @__PURE__ */
|
|
10408
|
-
/* @__PURE__ */
|
|
10409
|
-
|
|
10472
|
+
})), /* @__PURE__ */ React22.createElement(Banner2.Body, null, (errors == null ? void 0 : errors.form) || I18n.t("savedViews.modal.errors.description.create")))),
|
|
10473
|
+
/* @__PURE__ */ React22.createElement(Form3.Row, null, /* @__PURE__ */ React22.createElement(
|
|
10474
|
+
NameInputField,
|
|
10410
10475
|
{
|
|
10411
|
-
name: "name",
|
|
10412
10476
|
error: errors == null ? void 0 : errors.name,
|
|
10413
|
-
|
|
10414
|
-
label: I18n.t("savedViews.modal.fields.name"),
|
|
10415
|
-
colWidth: 12,
|
|
10416
|
-
onChange: handleNameChange
|
|
10477
|
+
onResetMutations: handleNameChange
|
|
10417
10478
|
}
|
|
10418
10479
|
)),
|
|
10419
|
-
/* @__PURE__ */
|
|
10420
|
-
|
|
10480
|
+
/* @__PURE__ */ React22.createElement(
|
|
10481
|
+
Form3.Row,
|
|
10421
10482
|
{
|
|
10422
|
-
style: { marginTop: (errors == null ? void 0 : errors.name) ?
|
|
10483
|
+
style: { marginTop: (errors == null ? void 0 : errors.name) ? spacing3.xl : spacing3.none }
|
|
10423
10484
|
},
|
|
10424
|
-
/* @__PURE__ */
|
|
10425
|
-
|
|
10485
|
+
/* @__PURE__ */ React22.createElement(
|
|
10486
|
+
Form3.TextArea,
|
|
10426
10487
|
{
|
|
10427
10488
|
name: "description",
|
|
10428
10489
|
placeholder: I18n.t("savedViews.modal.fields.description"),
|
|
@@ -10432,8 +10493,8 @@ var SharedViewFormModal = ({
|
|
|
10432
10493
|
}
|
|
10433
10494
|
)
|
|
10434
10495
|
)
|
|
10435
|
-
), /* @__PURE__ */
|
|
10436
|
-
|
|
10496
|
+
), /* @__PURE__ */ React22.createElement(Modal3.Footer, { style: { borderTop: `1px solid ${colors4.gray85}` } }, /* @__PURE__ */ React22.createElement(Flex4, { grow: "1", justifyContent: "space-between", alignItems: "center" }, /* @__PURE__ */ React22.createElement(Typography3, { color: "gray45", italic: true }, /* @__PURE__ */ React22.createElement(Typography3, { color: "red45" }, "*"), " ", I18n.t("savedViews.modal.info.required_fields")), /* @__PURE__ */ React22.createElement(Modal3.FooterButtons, null, /* @__PURE__ */ React22.createElement(
|
|
10497
|
+
Button6,
|
|
10437
10498
|
{
|
|
10438
10499
|
variant: "secondary",
|
|
10439
10500
|
onClick: onCreateTemporaryView,
|
|
@@ -10441,8 +10502,8 @@ var SharedViewFormModal = ({
|
|
|
10441
10502
|
disabled: isCreating
|
|
10442
10503
|
},
|
|
10443
10504
|
I18n.t("savedViews.actions.viewTemporarily")
|
|
10444
|
-
), /* @__PURE__ */
|
|
10445
|
-
|
|
10505
|
+
), /* @__PURE__ */ React22.createElement(
|
|
10506
|
+
Button6,
|
|
10446
10507
|
{
|
|
10447
10508
|
type: "submit",
|
|
10448
10509
|
variant: "primary",
|
|
@@ -10457,9 +10518,9 @@ var SharedViewFormModal = ({
|
|
|
10457
10518
|
};
|
|
10458
10519
|
|
|
10459
10520
|
// src/utils/hooks/useViewSelection.ts
|
|
10460
|
-
import { useState as useState3, useCallback as useCallback2, useEffect as
|
|
10521
|
+
import { useState as useState3, useCallback as useCallback2, useEffect as useEffect4, useRef as useRef3, useMemo } from "react";
|
|
10461
10522
|
import { useSearchParams } from "react-router-dom";
|
|
10462
|
-
import { useI18nContext as
|
|
10523
|
+
import { useI18nContext as useI18nContext10 } from "@procore/core-react";
|
|
10463
10524
|
|
|
10464
10525
|
// src/utils/viewStorage.ts
|
|
10465
10526
|
var ViewStorage = {
|
|
@@ -10522,7 +10583,7 @@ var restoreUrlParameter = (currentParam, previousParam, setSearchParams) => {
|
|
|
10522
10583
|
}
|
|
10523
10584
|
};
|
|
10524
10585
|
var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) => {
|
|
10525
|
-
const I18n =
|
|
10586
|
+
const I18n = useI18nContext10();
|
|
10526
10587
|
const projectIdSegment = config.projectId ?? "company";
|
|
10527
10588
|
const storageKey = `savedView_${config.domain}_${config.tableName}_${config.companyId}_${projectIdSegment}_${config.userId}`;
|
|
10528
10589
|
const temporaryStorageKey = `${storageKey}-temporary`;
|
|
@@ -10598,7 +10659,7 @@ var useViewSelection = (config, savedViews, presetViews, openSharedViewModal) =>
|
|
|
10598
10659
|
},
|
|
10599
10660
|
[isViewAlreadySelected, openSharedViewModal, allViews, selectView]
|
|
10600
10661
|
);
|
|
10601
|
-
|
|
10662
|
+
useEffect4(() => {
|
|
10602
10663
|
const savedViewId = searchParams.get("saved-view");
|
|
10603
10664
|
restoreUrlParameter(
|
|
10604
10665
|
savedViewId,
|
|
@@ -10629,7 +10690,7 @@ import { useQuery } from "@tanstack/react-query";
|
|
|
10629
10690
|
// src/utils/api/queriesHandler.ts
|
|
10630
10691
|
import { requestJSON } from "@procore/core-http";
|
|
10631
10692
|
import { useMutation, useQueryClient } from "@tanstack/react-query";
|
|
10632
|
-
import { useI18nContext as
|
|
10693
|
+
import { useI18nContext as useI18nContext11 } from "@procore/core-react";
|
|
10633
10694
|
var getBasePath = (companyId, projectId) => {
|
|
10634
10695
|
if (projectId) {
|
|
10635
10696
|
return `/rest/v2.0/companies/${companyId}/projects/${projectId}/saved_views`;
|
|
@@ -10639,7 +10700,7 @@ var getBasePath = (companyId, projectId) => {
|
|
|
10639
10700
|
var useApiRequest = (props, method, mutationKey) => {
|
|
10640
10701
|
const { projectId, companyId, domain, tableName } = props;
|
|
10641
10702
|
const queryClient2 = useQueryClient();
|
|
10642
|
-
const { locale } =
|
|
10703
|
+
const { locale } = useI18nContext11();
|
|
10643
10704
|
const basePath = getBasePath(companyId, projectId);
|
|
10644
10705
|
const queryKey = ["savedViews", domain, tableName, companyId, projectId];
|
|
10645
10706
|
return useMutation({
|
|
@@ -10786,7 +10847,7 @@ var SavedViewsContent = (props) => {
|
|
|
10786
10847
|
const { data: savedViews } = backend.useSavedViewsQuery(queryInput);
|
|
10787
10848
|
const { mutate: deleteSavedView } = backend.useDeleteSavedView(queryInput);
|
|
10788
10849
|
const { showToast } = useToastAlertContext3();
|
|
10789
|
-
const i18n =
|
|
10850
|
+
const i18n = useI18nContext12();
|
|
10790
10851
|
const [activeModal, setActiveModal] = useState4(null);
|
|
10791
10852
|
const [modalData, setModalData] = useState4(null);
|
|
10792
10853
|
const openModal = (type, data) => {
|
|
@@ -10832,7 +10893,7 @@ var SavedViewsContent = (props) => {
|
|
|
10832
10893
|
error: createError,
|
|
10833
10894
|
reset: resetCreateError
|
|
10834
10895
|
} = backend.useCreateSavedView(queryInput);
|
|
10835
|
-
|
|
10896
|
+
useEffect5(() => {
|
|
10836
10897
|
if (fetchError) {
|
|
10837
10898
|
showToast.error(i18n.t("savedViews.errors.notFound"));
|
|
10838
10899
|
selectView(selectedView ?? props.defaultView);
|
|
@@ -10880,31 +10941,45 @@ var SavedViewsContent = (props) => {
|
|
|
10880
10941
|
deleteSelectedView();
|
|
10881
10942
|
closeModal();
|
|
10882
10943
|
};
|
|
10883
|
-
return /* @__PURE__ */
|
|
10944
|
+
return /* @__PURE__ */ React23.createElement(StyledPanel, { provider: props.provider }, /* @__PURE__ */ React23.createElement(
|
|
10884
10945
|
ExpandedPanel,
|
|
10885
10946
|
{
|
|
10886
10947
|
"data-testid": "saved-view-expanded-panel",
|
|
10887
10948
|
provider: props.provider
|
|
10888
10949
|
},
|
|
10889
|
-
/* @__PURE__ */
|
|
10950
|
+
/* @__PURE__ */ React23.createElement(Panel3.Header, { id: "saved-views-collections-panel-header" }, /* @__PURE__ */ React23.createElement(Panel3.Title, null, /* @__PURE__ */ React23.createElement(Flex5, { alignItems: "center" }, /* @__PURE__ */ React23.createElement(Box3, { paddingRight: "sm" }, i18n.t("savedViews.title")), /* @__PURE__ */ React23.createElement(
|
|
10951
|
+
Tooltip,
|
|
10952
|
+
{
|
|
10953
|
+
showDelay: 200,
|
|
10954
|
+
overlay: /* @__PURE__ */ React23.createElement(Tooltip.Content, null, i18n.t("savedViews.tooltip"))
|
|
10955
|
+
},
|
|
10956
|
+
/* @__PURE__ */ React23.createElement(
|
|
10957
|
+
Help_default,
|
|
10958
|
+
{
|
|
10959
|
+
tabIndex: 0,
|
|
10960
|
+
size: "sm",
|
|
10961
|
+
"aria-label": i18n.t("savedViews.tooltip")
|
|
10962
|
+
}
|
|
10963
|
+
)
|
|
10964
|
+
))), /* @__PURE__ */ React23.createElement(
|
|
10890
10965
|
Tooltip,
|
|
10891
10966
|
{
|
|
10892
10967
|
overlay: i18n.t("savedViews.actions.create"),
|
|
10893
10968
|
showDelay: 1e3
|
|
10894
10969
|
},
|
|
10895
|
-
/* @__PURE__ */
|
|
10896
|
-
|
|
10970
|
+
/* @__PURE__ */ React23.createElement(
|
|
10971
|
+
Button7,
|
|
10897
10972
|
{
|
|
10898
|
-
icon: /* @__PURE__ */
|
|
10973
|
+
icon: /* @__PURE__ */ React23.createElement(Plus_default, null),
|
|
10899
10974
|
variant: "secondary",
|
|
10900
10975
|
"data-testid": "expanded-panel-create-button",
|
|
10901
10976
|
onClick: () => openModal("create" /* CREATE */),
|
|
10902
10977
|
"aria-label": i18n.t("savedViews.actions.create")
|
|
10903
10978
|
},
|
|
10904
10979
|
i18n.t("savedViews.actions.create")
|
|
10905
|
-
)
|
|
10980
|
+
)
|
|
10906
10981
|
)),
|
|
10907
|
-
/* @__PURE__ */
|
|
10982
|
+
/* @__PURE__ */ React23.createElement(Panel3.Body, { style: { display: "flex", flexFlow: "column" } }, /* @__PURE__ */ React23.createElement(
|
|
10908
10983
|
PanelContent,
|
|
10909
10984
|
{
|
|
10910
10985
|
onSelect: ({ item }) => selectView(item),
|
|
@@ -10917,12 +10992,13 @@ var SavedViewsContent = (props) => {
|
|
|
10917
10992
|
presetViews: props.presetViews,
|
|
10918
10993
|
savedViews: allViews,
|
|
10919
10994
|
provider: props.provider,
|
|
10920
|
-
userId: props.userId
|
|
10995
|
+
userId: props.userId,
|
|
10921
10996
|
onClearTemporary: clearTemporaryView,
|
|
10922
|
-
backend
|
|
10997
|
+
backend,
|
|
10998
|
+
enableSharingViews: props.enableSharingViews
|
|
10923
10999
|
}
|
|
10924
11000
|
))
|
|
10925
|
-
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */
|
|
11001
|
+
), (isModalOpen("create" /* CREATE */) || isModalOpen("update" /* UPDATE */)) && /* @__PURE__ */ React23.createElement(
|
|
10926
11002
|
FormModal,
|
|
10927
11003
|
{
|
|
10928
11004
|
open: true,
|
|
@@ -10937,14 +11013,14 @@ var SavedViewsContent = (props) => {
|
|
|
10937
11013
|
defaultView: props.defaultView,
|
|
10938
11014
|
backend
|
|
10939
11015
|
}
|
|
10940
|
-
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */
|
|
11016
|
+
), selectedView && isModalOpen("delete" /* DELETE */) && /* @__PURE__ */ React23.createElement(
|
|
10941
11017
|
SavedViewsDeleteConfirmationModalShared,
|
|
10942
11018
|
{
|
|
10943
11019
|
open: true,
|
|
10944
11020
|
onDelete: confirmDeleteAndCloseModal,
|
|
10945
11021
|
onCancel: closeModal
|
|
10946
11022
|
}
|
|
10947
|
-
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */
|
|
11023
|
+
), fetchedView && isModalOpen("sharedView" /* SHARED_VIEW */) && /* @__PURE__ */ React23.createElement(
|
|
10948
11024
|
SharedViewFormModal,
|
|
10949
11025
|
{
|
|
10950
11026
|
open: true,
|
|
@@ -10959,11 +11035,11 @@ var SavedViewsContent = (props) => {
|
|
|
10959
11035
|
));
|
|
10960
11036
|
};
|
|
10961
11037
|
var SavedViews = (props) => {
|
|
10962
|
-
return /* @__PURE__ */
|
|
11038
|
+
return /* @__PURE__ */ React23.createElement(EnvironmentI18nProvider, null, /* @__PURE__ */ React23.createElement(QueryClientProvider, { client: queryClient }, /* @__PURE__ */ React23.createElement(ToastAlertProvider, null, /* @__PURE__ */ React23.createElement(SavedViewsContent, { ...props }))));
|
|
10963
11039
|
};
|
|
10964
11040
|
|
|
10965
11041
|
// src/components/adapters/smart-grid/SmartGridSavedViews.tsx
|
|
10966
|
-
import
|
|
11042
|
+
import React24, { useCallback as useCallback4 } from "react";
|
|
10967
11043
|
|
|
10968
11044
|
// src/components/adapters/smart-grid/SmartGridDefaultSavedView.tsx
|
|
10969
11045
|
import { useMemo as useMemo2 } from "react";
|
|
@@ -11038,7 +11114,7 @@ var useNormalizedDefaultViews = (defaultViews, gridApi) => {
|
|
|
11038
11114
|
};
|
|
11039
11115
|
|
|
11040
11116
|
// src/components/adapters/smart-grid/useSmartGridConfig.ts
|
|
11041
|
-
import { useState as useState5, useEffect as
|
|
11117
|
+
import { useState as useState5, useEffect as useEffect6, useRef as useRef4 } from "react";
|
|
11042
11118
|
var GRID_STATE_EVENTS = [
|
|
11043
11119
|
"sortChanged",
|
|
11044
11120
|
"filterOpened",
|
|
@@ -11058,7 +11134,7 @@ var useSmartGridConfig = (gridApi) => {
|
|
|
11058
11134
|
() => getSmartGridConfig(gridApi)
|
|
11059
11135
|
);
|
|
11060
11136
|
const eventListenersDisabledRef = useRef4(false);
|
|
11061
|
-
|
|
11137
|
+
useEffect6(() => {
|
|
11062
11138
|
if (!gridApi)
|
|
11063
11139
|
return;
|
|
11064
11140
|
const updateConfig = () => {
|
|
@@ -11129,7 +11205,7 @@ var SmartGridSavedViews = (props) => {
|
|
|
11129
11205
|
},
|
|
11130
11206
|
[gridApi, tableConfig, setTableConfig]
|
|
11131
11207
|
);
|
|
11132
|
-
return /* @__PURE__ */
|
|
11208
|
+
return /* @__PURE__ */ React24.createElement(
|
|
11133
11209
|
SavedViews,
|
|
11134
11210
|
{
|
|
11135
11211
|
onSelect,
|
|
@@ -11142,13 +11218,14 @@ var SmartGridSavedViews = (props) => {
|
|
|
11142
11218
|
presetViews,
|
|
11143
11219
|
tableName: props.tableName,
|
|
11144
11220
|
tableConfig,
|
|
11145
|
-
backend: props.backend
|
|
11221
|
+
backend: props.backend,
|
|
11222
|
+
enableSharingViews: props.enableSharingViews
|
|
11146
11223
|
}
|
|
11147
11224
|
);
|
|
11148
11225
|
};
|
|
11149
11226
|
|
|
11150
11227
|
// src/components/adapters/data-table/DataTableSavedViews.tsx
|
|
11151
|
-
import
|
|
11228
|
+
import React25, {
|
|
11152
11229
|
forwardRef as forwardRef11,
|
|
11153
11230
|
useImperativeHandle,
|
|
11154
11231
|
useState as useState6,
|
|
@@ -11249,7 +11326,7 @@ var DataTableSavedViews = forwardRef11((props, ref) => {
|
|
|
11249
11326
|
if (!internalTableConfig) {
|
|
11250
11327
|
return null;
|
|
11251
11328
|
}
|
|
11252
|
-
return /* @__PURE__ */
|
|
11329
|
+
return /* @__PURE__ */ React25.createElement(
|
|
11253
11330
|
SavedViews,
|
|
11254
11331
|
{
|
|
11255
11332
|
onSelect,
|
|
@@ -11261,7 +11338,8 @@ var DataTableSavedViews = forwardRef11((props, ref) => {
|
|
|
11261
11338
|
defaultView,
|
|
11262
11339
|
presetViews,
|
|
11263
11340
|
tableName: props.tableName,
|
|
11264
|
-
tableConfig: internalTableConfig
|
|
11341
|
+
tableConfig: internalTableConfig,
|
|
11342
|
+
enableSharingViews: props.enableSharingViews
|
|
11265
11343
|
}
|
|
11266
11344
|
);
|
|
11267
11345
|
});
|