gsintegrations 0.0.486 → 0.0.488
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/bundle.cjs.js +719 -482
- package/dist/bundle.cjs.js.map +2 -2
- package/dist/bundle.esm.js +717 -483
- package/dist/bundle.esm.js.map +2 -2
- package/dist/index.d.ts +106 -26
- package/dist/types/components/FormChatAssistant/FormChatAssistant.types.d.ts +2 -0
- package/dist/types/components/molecules/FinanceMobilePeriodBar/FinanceMobilePeriodBar.d.ts +13 -0
- package/dist/types/components/molecules/FinanceMobilePeriodBar/index.d.ts +2 -0
- package/dist/types/components/molecules/index.d.ts +1 -0
- package/dist/types/components/shared/CompactListRow/CompactListRow.d.ts +19 -0
- package/dist/types/components/shared/CompactListRow/index.d.ts +3 -0
- package/dist/types/components/shared/index.d.ts +2 -0
- package/dist/types/pages/ActivityDetailPage/ActivityDetailPage.d.ts +1 -0
- package/dist/types/pages/ActivityDetailPage/ActivityDetailPage.types.d.ts +8 -0
- package/dist/types/pages/ActivityDetailPage/useActivityDetailPage.d.ts +1 -0
- package/dist/types/pages/ActivityListPage/ActivityListPage.types.d.ts +11 -3
- package/dist/types/pages/ActivityListPage/useActivityListPage.d.ts +1 -0
- package/dist/types/pages/ActivityOnboardingPage/ActivityOnboarding.types.d.ts +8 -0
- package/dist/types/pages/EventDetailPage/EventDetailPage.d.ts +2 -0
- package/dist/types/pages/EventDetailPage/EventDetailPage.types.d.ts +27 -0
- package/dist/types/pages/EventDetailPage/useEventDetailPage.d.ts +2 -0
- package/dist/types/pages/EventOnboardingPage/EventOnboarding.types.d.ts +22 -0
- package/dist/types/pages/EventOnboardingPage/components/EventActivitySelectionStep.d.ts +1 -0
- package/dist/types/pages/EventsPage/EventsPage.types.d.ts +12 -4
- package/dist/types/pages/EventsPage/useEventsPage.d.ts +1 -0
- package/dist/types/pages/FinancialAccountsList/FinancialAccountsList.d.ts +3 -3
- package/dist/types/pages/FinancialAccountsList/FinancialAccountsList.types.d.ts +6 -6
- package/dist/types/pages/HomePage/HomePage.types.d.ts +12 -0
- package/dist/types/pages/IncomeListPage/IncomeListPage.d.ts +4 -4
- package/dist/types/pages/IncomeListPage/IncomeListPage.types.d.ts +8 -8
- package/dist/types/pages/OutcomeListPage/OutcomeListPage.d.ts +4 -4
- package/dist/types/pages/OutcomeListPage/OutcomeListPage.types.d.ts +8 -8
- package/dist/types/theme/spacing.d.ts +17 -0
- package/package.json +1 -1
package/dist/bundle.esm.js
CHANGED
|
@@ -58373,6 +58373,14 @@ const LIST_CARD_CONTENT_ROOT_SX = {
|
|
|
58373
58373
|
};
|
|
58374
58374
|
/** Scroll clearance above FAB / fixed bottom actions on list pages. */
|
|
58375
58375
|
const LIST_CONTENT_BOTTOM_PADDING = { xs: 11, sm: 10 };
|
|
58376
|
+
/** Fixed create button, clear of the home indicator. Hidden from `sm` up. */
|
|
58377
|
+
const LIST_FAB_BOTTOM = "calc(16px + env(safe-area-inset-bottom, 0px))";
|
|
58378
|
+
const LIST_FAB_POSITION_SX = {
|
|
58379
|
+
position: "fixed",
|
|
58380
|
+
display: { xs: "flex", sm: "none" },
|
|
58381
|
+
bottom: { xs: LIST_FAB_BOTTOM, sm: 24 },
|
|
58382
|
+
right: { xs: 16, sm: 24 },
|
|
58383
|
+
};
|
|
58376
58384
|
/** Vertical gap between form fields / sections. */
|
|
58377
58385
|
const SECTION_GAP = { xs: 2, sm: 3 };
|
|
58378
58386
|
/** Grid gap for card grids and form layouts. */
|
|
@@ -59284,6 +59292,10 @@ var TrendingUp$1 = createSvgIcon( /*#__PURE__*/jsx$1("path", {
|
|
|
59284
59292
|
d: "m16 6 2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z"
|
|
59285
59293
|
}), 'TrendingUp');
|
|
59286
59294
|
|
|
59295
|
+
var UndoIcon = createSvgIcon( /*#__PURE__*/jsx$1("path", {
|
|
59296
|
+
d: "M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8"
|
|
59297
|
+
}), 'Undo');
|
|
59298
|
+
|
|
59287
59299
|
var UpgradeIcon = createSvgIcon( /*#__PURE__*/jsx$1("path", {
|
|
59288
59300
|
d: "M16 18v2H8v-2zM11 7.99V16h2V7.99h3L12 4 8 7.99z"
|
|
59289
59301
|
}), 'Upgrade');
|
|
@@ -90513,6 +90525,145 @@ const AttendanceCheckinCta = ({ contextLabel, isSubmitting = false, onOpen, }) =
|
|
|
90513
90525
|
};
|
|
90514
90526
|
var AttendanceCheckinCta$1 = React__default.memo(AttendanceCheckinCta);
|
|
90515
90527
|
|
|
90528
|
+
const DATE_ONLY_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
90529
|
+
const UTC_MIDNIGHT_ISO_PATTERN = /^(\d{4}-\d{2}-\d{2})T00:00:00(?:\.\d{1,3})?Z$/;
|
|
90530
|
+
const isDateOnlyString = (value) => typeof value === "string" && DATE_ONLY_PATTERN.test(value);
|
|
90531
|
+
const parseDateOnlyToLocalDate = (dateOnly) => {
|
|
90532
|
+
if (!isDateOnlyString(dateOnly)) {
|
|
90533
|
+
throw new Error(`Invalid date-only value: "${dateOnly}". Expected format YYYY-MM-DD`);
|
|
90534
|
+
}
|
|
90535
|
+
const [year, month, day] = dateOnly.split("-").map(Number);
|
|
90536
|
+
return new Date(year, month - 1, day);
|
|
90537
|
+
};
|
|
90538
|
+
const parseUtcMidnightIsoToLocalDate = (value) => {
|
|
90539
|
+
const match = value.match(UTC_MIDNIGHT_ISO_PATTERN);
|
|
90540
|
+
if (!match) {
|
|
90541
|
+
return null;
|
|
90542
|
+
}
|
|
90543
|
+
return parseDateOnlyToLocalDate(match[1]);
|
|
90544
|
+
};
|
|
90545
|
+
const normalizeDateInputToLocalDate = (value) => {
|
|
90546
|
+
if (value instanceof Date) {
|
|
90547
|
+
return value;
|
|
90548
|
+
}
|
|
90549
|
+
if (isDateOnlyString(value)) {
|
|
90550
|
+
return parseDateOnlyToLocalDate(value);
|
|
90551
|
+
}
|
|
90552
|
+
const parsedUtcMidnight = parseUtcMidnightIsoToLocalDate(value);
|
|
90553
|
+
if (parsedUtcMidnight) {
|
|
90554
|
+
return parsedUtcMidnight;
|
|
90555
|
+
}
|
|
90556
|
+
const parsed = new Date(value);
|
|
90557
|
+
return parsed;
|
|
90558
|
+
};
|
|
90559
|
+
const toValidDateOrNull = (value) => {
|
|
90560
|
+
if (!value) {
|
|
90561
|
+
return null;
|
|
90562
|
+
}
|
|
90563
|
+
const parsed = normalizeDateInputToLocalDate(value);
|
|
90564
|
+
return Number.isNaN(parsed.getTime()) ? null : parsed;
|
|
90565
|
+
};
|
|
90566
|
+
const formatDateInputToDateOnly = (value) => {
|
|
90567
|
+
if (typeof value === "string" && isDateOnlyString(value)) {
|
|
90568
|
+
return value;
|
|
90569
|
+
}
|
|
90570
|
+
const date = normalizeDateInputToLocalDate(value);
|
|
90571
|
+
if (Number.isNaN(date.getTime())) {
|
|
90572
|
+
throw new Error(`Invalid date input: "${value}"`);
|
|
90573
|
+
}
|
|
90574
|
+
const year = date.getFullYear();
|
|
90575
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
90576
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
90577
|
+
return `${year}-${month}-${day}`;
|
|
90578
|
+
};
|
|
90579
|
+
const formatDateForDisplay = (value, locale = "pt-BR", options = {
|
|
90580
|
+
day: "2-digit",
|
|
90581
|
+
month: "long",
|
|
90582
|
+
year: "numeric",
|
|
90583
|
+
}) => {
|
|
90584
|
+
const date = value instanceof Date
|
|
90585
|
+
? value
|
|
90586
|
+
: normalizeDateInputToLocalDate(value);
|
|
90587
|
+
if (isNaN(date.getTime())) {
|
|
90588
|
+
return String(value);
|
|
90589
|
+
}
|
|
90590
|
+
return date.toLocaleDateString(locale, options);
|
|
90591
|
+
};
|
|
90592
|
+
|
|
90593
|
+
const compactListDateParts = (value) => {
|
|
90594
|
+
const date = toValidDateOrNull(value);
|
|
90595
|
+
if (!date)
|
|
90596
|
+
return null;
|
|
90597
|
+
const month = date
|
|
90598
|
+
.toLocaleDateString("pt-BR", { month: "short" })
|
|
90599
|
+
.replace(".", "");
|
|
90600
|
+
return {
|
|
90601
|
+
day: String(date.getDate()).padStart(2, "0"),
|
|
90602
|
+
month,
|
|
90603
|
+
};
|
|
90604
|
+
};
|
|
90605
|
+
const CompactListDateBlock = ({ day, month, }) => (React__default.createElement(Box$1, { "aria-hidden": true, sx: {
|
|
90606
|
+
width: 44,
|
|
90607
|
+
flexShrink: 0,
|
|
90608
|
+
textAlign: "center",
|
|
90609
|
+
lineHeight: 1.1,
|
|
90610
|
+
} },
|
|
90611
|
+
React__default.createElement(Typography$1, { component: "span", sx: { display: "block", fontWeight: 700, fontSize: "1rem" } }, day),
|
|
90612
|
+
React__default.createElement(Typography$1, { component: "span", sx: {
|
|
90613
|
+
display: "block",
|
|
90614
|
+
fontSize: "0.7rem",
|
|
90615
|
+
textTransform: "lowercase",
|
|
90616
|
+
color: "text.secondary",
|
|
90617
|
+
} }, month)));
|
|
90618
|
+
const CompactListRow = ({ title, meta, leading, trailing, onClick, isLast = false, ariaLabel, testId, }) => {
|
|
90619
|
+
const interactive = Boolean(onClick);
|
|
90620
|
+
return (React__default.createElement(Box$1, { "data-testid": testId, role: interactive ? "button" : undefined, tabIndex: interactive ? 0 : undefined, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : (interactive ? title : undefined), onClick: onClick, onKeyDown: (event) => {
|
|
90621
|
+
if (!onClick)
|
|
90622
|
+
return;
|
|
90623
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
90624
|
+
event.preventDefault();
|
|
90625
|
+
onClick();
|
|
90626
|
+
}
|
|
90627
|
+
}, sx: {
|
|
90628
|
+
display: "flex",
|
|
90629
|
+
alignItems: "center",
|
|
90630
|
+
gap: 1.5,
|
|
90631
|
+
width: "100%",
|
|
90632
|
+
textAlign: "left",
|
|
90633
|
+
py: 1.25,
|
|
90634
|
+
px: 1.5,
|
|
90635
|
+
minHeight: 64,
|
|
90636
|
+
cursor: interactive ? "pointer" : "default",
|
|
90637
|
+
border: 0,
|
|
90638
|
+
borderBottom: isLast ? "none" : 1,
|
|
90639
|
+
borderColor: "divider",
|
|
90640
|
+
bgcolor: "transparent",
|
|
90641
|
+
"&:focus-visible": {
|
|
90642
|
+
outline: (theme) => `2px solid ${theme.palette.primary.main}`,
|
|
90643
|
+
outlineOffset: -2,
|
|
90644
|
+
},
|
|
90645
|
+
} },
|
|
90646
|
+
leading,
|
|
90647
|
+
React__default.createElement(Box$1, { sx: { flex: 1, minWidth: 0 } },
|
|
90648
|
+
React__default.createElement(Typography$1, { component: "span", title: title, sx: {
|
|
90649
|
+
display: "-webkit-box",
|
|
90650
|
+
WebkitLineClamp: 2,
|
|
90651
|
+
WebkitBoxOrient: "vertical",
|
|
90652
|
+
overflow: "hidden",
|
|
90653
|
+
fontWeight: 600,
|
|
90654
|
+
fontSize: "0.95rem",
|
|
90655
|
+
lineHeight: 1.3,
|
|
90656
|
+
} }, title),
|
|
90657
|
+
meta ? (React__default.createElement(Typography$1, { component: "span", variant: "body2", color: "text.secondary", sx: {
|
|
90658
|
+
display: "block",
|
|
90659
|
+
mt: 0.25,
|
|
90660
|
+
overflow: "hidden",
|
|
90661
|
+
textOverflow: "ellipsis",
|
|
90662
|
+
whiteSpace: "nowrap",
|
|
90663
|
+
} }, meta)) : null),
|
|
90664
|
+
trailing ? (React__default.createElement(Box$1, { onClick: (event) => event.stopPropagation(), onKeyDown: (event) => event.stopPropagation(), sx: { flexShrink: 0, display: "flex", alignItems: "center" } }, trailing)) : null));
|
|
90665
|
+
};
|
|
90666
|
+
|
|
90516
90667
|
/**
|
|
90517
90668
|
* @module constants
|
|
90518
90669
|
* @summary Useful constants
|
|
@@ -116392,6 +116543,210 @@ const FinanceMetricCard$1 = memo(({ title, value, month, year, periodLabel, colo
|
|
|
116392
116543
|
});
|
|
116393
116544
|
FinanceMetricCard$1.displayName = "FinanceMetricCard";
|
|
116394
116545
|
|
|
116546
|
+
const GenericDrawer = ({ open, onClose, onOpen, anchor = "bottom", zIndex, fullHeight = false, disableEnforceFocus = false, "aria-label": ariaLabel, children, }) => {
|
|
116547
|
+
const theme = useTheme$1();
|
|
116548
|
+
const isVerticalAnchor = anchor === "bottom" || anchor === "top";
|
|
116549
|
+
const isSideAnchor = anchor === "left" || anchor === "right";
|
|
116550
|
+
const showHandle = anchor === "bottom";
|
|
116551
|
+
const verticalMaxHeight = fullHeight ? "100dvh" : "70dvh";
|
|
116552
|
+
return (React__default.createElement(SwipeableDrawer$1, { anchor: anchor, open: open, onClose: onClose, onOpen: onOpen !== null && onOpen !== void 0 ? onOpen : (() => {
|
|
116553
|
+
/* no-op */
|
|
116554
|
+
}), disableEnforceFocus: disableEnforceFocus, "aria-label": ariaLabel, PaperProps: {
|
|
116555
|
+
role: ariaLabel ? "dialog" : undefined,
|
|
116556
|
+
"aria-label": ariaLabel,
|
|
116557
|
+
"aria-modal": ariaLabel ? true : undefined,
|
|
116558
|
+
sx: Object.assign(Object.assign({ display: "flex", flexDirection: "column", borderRadius: drawerSheetRadius(anchor, theme), backgroundColor: theme.palette.mode === "dark"
|
|
116559
|
+
? "rgba(0,0,0,0.95)"
|
|
116560
|
+
: "rgba(255,255,255,0.95)", backdropFilter: "blur(20px)", border: `1px solid ${theme.palette.divider}`, width: "100%", maxWidth: `${theme.breakpoints.values.md}px`, marginX: "auto", left: isVerticalAnchor ? 0 : undefined, right: isVerticalAnchor ? 0 : undefined }, (isVerticalAnchor
|
|
116561
|
+
? Object.assign({ maxHeight: verticalMaxHeight }, (fullHeight ? { height: "100dvh" } : {})) : { maxHeight: "100dvh" })), (isSideAnchor
|
|
116562
|
+
? {
|
|
116563
|
+
top: 0,
|
|
116564
|
+
bottom: 0,
|
|
116565
|
+
["@media (min-width:600px)"]: {
|
|
116566
|
+
top: 0,
|
|
116567
|
+
bottom: 0,
|
|
116568
|
+
height: "min(90dvh, 900px)",
|
|
116569
|
+
marginY: "auto",
|
|
116570
|
+
},
|
|
116571
|
+
}
|
|
116572
|
+
: {})),
|
|
116573
|
+
}, sx: Object.assign({}, (zIndex !== undefined ? { zIndex } : {})) },
|
|
116574
|
+
showHandle && (React__default.createElement(Box$1, { component: "button", type: "button", "aria-label": "Fechar", "data-testid": "generic-drawer-handle", onClick: onClose, sx: {
|
|
116575
|
+
display: "flex",
|
|
116576
|
+
alignItems: "center",
|
|
116577
|
+
justifyContent: "center",
|
|
116578
|
+
flexShrink: 0,
|
|
116579
|
+
width: "100%",
|
|
116580
|
+
minHeight: 44,
|
|
116581
|
+
pt: 1,
|
|
116582
|
+
pb: 0.5,
|
|
116583
|
+
px: 2,
|
|
116584
|
+
border: "none",
|
|
116585
|
+
background: "transparent",
|
|
116586
|
+
cursor: "pointer",
|
|
116587
|
+
WebkitTapHighlightColor: "transparent",
|
|
116588
|
+
"&:focus-visible": {
|
|
116589
|
+
outline: `2px solid ${theme.palette.primary.main}`,
|
|
116590
|
+
outlineOffset: -2,
|
|
116591
|
+
},
|
|
116592
|
+
} },
|
|
116593
|
+
React__default.createElement(Box$1, { "aria-hidden": true, sx: {
|
|
116594
|
+
width: 36,
|
|
116595
|
+
height: 4,
|
|
116596
|
+
borderRadius: RADIUS.pill,
|
|
116597
|
+
bgcolor: alpha(theme.palette.text.primary, 0.28),
|
|
116598
|
+
} }))),
|
|
116599
|
+
children));
|
|
116600
|
+
};
|
|
116601
|
+
|
|
116602
|
+
const COMPETENCE_MONTH_REGEX = /^(\d{4})-(0[1-9]|1[0-2])$/;
|
|
116603
|
+
const isValidCompetenceMonth = (value) => typeof value === "string" && COMPETENCE_MONTH_REGEX.test(value);
|
|
116604
|
+
const parseCompetenceMonth = (value) => {
|
|
116605
|
+
if (!isValidCompetenceMonth(value)) {
|
|
116606
|
+
return null;
|
|
116607
|
+
}
|
|
116608
|
+
const [yearText, monthText] = value.split("-");
|
|
116609
|
+
const year = Number(yearText);
|
|
116610
|
+
const month = Number(monthText);
|
|
116611
|
+
return new Date(year, month - 1, 1);
|
|
116612
|
+
};
|
|
116613
|
+
const toCompetenceMonth = (date) => {
|
|
116614
|
+
if (!date || Number.isNaN(date.getTime())) {
|
|
116615
|
+
return "";
|
|
116616
|
+
}
|
|
116617
|
+
const year = date.getFullYear();
|
|
116618
|
+
const month = `${date.getMonth() + 1}`.padStart(2, "0");
|
|
116619
|
+
return `${year}-${month}`;
|
|
116620
|
+
};
|
|
116621
|
+
const formatCompetenceMonthPtBr = (value, options) => {
|
|
116622
|
+
var _a, _b;
|
|
116623
|
+
if (!value)
|
|
116624
|
+
return "-";
|
|
116625
|
+
const date = parseCompetenceMonth(value);
|
|
116626
|
+
if (!date)
|
|
116627
|
+
return value;
|
|
116628
|
+
const monthFormat = (_a = options === null || options === void 0 ? void 0 : options.monthFormat) !== null && _a !== void 0 ? _a : "long";
|
|
116629
|
+
const capitalize = (_b = options === null || options === void 0 ? void 0 : options.capitalize) !== null && _b !== void 0 ? _b : true;
|
|
116630
|
+
const formatted = date.toLocaleDateString("pt-BR", {
|
|
116631
|
+
month: monthFormat,
|
|
116632
|
+
year: "numeric",
|
|
116633
|
+
});
|
|
116634
|
+
if (!capitalize || formatted.length === 0) {
|
|
116635
|
+
return formatted;
|
|
116636
|
+
}
|
|
116637
|
+
return formatted.charAt(0).toUpperCase() + formatted.slice(1);
|
|
116638
|
+
};
|
|
116639
|
+
|
|
116640
|
+
const useLabeledMonthPicker = (props) => {
|
|
116641
|
+
const { value, onChange, minMonth, maxMonth, disabled } = props;
|
|
116642
|
+
const parsedValue = useMemo(() => parseCompetenceMonth(value), [value]);
|
|
116643
|
+
const parsedMinMonth = useMemo(() => parseCompetenceMonth(minMonth), [minMonth]);
|
|
116644
|
+
const parsedMaxMonth = useMemo(() => parseCompetenceMonth(maxMonth), [maxMonth]);
|
|
116645
|
+
const isOutOfRange = useMemo(() => {
|
|
116646
|
+
if (!parsedValue)
|
|
116647
|
+
return false;
|
|
116648
|
+
if (parsedMinMonth && parsedValue < parsedMinMonth)
|
|
116649
|
+
return true;
|
|
116650
|
+
if (parsedMaxMonth && parsedValue > parsedMaxMonth)
|
|
116651
|
+
return true;
|
|
116652
|
+
return false;
|
|
116653
|
+
}, [parsedValue, parsedMinMonth, parsedMaxMonth]);
|
|
116654
|
+
const hasInvalidValue = useMemo(() => value.length > 0 && !isValidCompetenceMonth(value), [value]);
|
|
116655
|
+
const handleMonthChange = useCallback((nextDate) => {
|
|
116656
|
+
if (disabled)
|
|
116657
|
+
return;
|
|
116658
|
+
onChange(toCompetenceMonth(nextDate));
|
|
116659
|
+
}, [disabled, onChange]);
|
|
116660
|
+
const data = useMemo(() => ({
|
|
116661
|
+
parsedValue,
|
|
116662
|
+
parsedMinMonth,
|
|
116663
|
+
parsedMaxMonth,
|
|
116664
|
+
isOutOfRange,
|
|
116665
|
+
hasInvalidValue,
|
|
116666
|
+
}), [
|
|
116667
|
+
parsedValue,
|
|
116668
|
+
parsedMinMonth,
|
|
116669
|
+
parsedMaxMonth,
|
|
116670
|
+
isOutOfRange,
|
|
116671
|
+
hasInvalidValue,
|
|
116672
|
+
]);
|
|
116673
|
+
const fns = useMemo(() => ({
|
|
116674
|
+
handleMonthChange,
|
|
116675
|
+
}), [handleMonthChange]);
|
|
116676
|
+
return { data, fns };
|
|
116677
|
+
};
|
|
116678
|
+
|
|
116679
|
+
const LabeledMonthPicker = (props) => {
|
|
116680
|
+
var _a, _b;
|
|
116681
|
+
const { label, error, helperText, disabled, required, "data-testid": dataTestId, } = props;
|
|
116682
|
+
const { data, fns } = useLabeledMonthPicker(props);
|
|
116683
|
+
return (React__default.createElement(LocalizationProvider, { dateAdapter: AdapterDateFns, adapterLocale: ptBR },
|
|
116684
|
+
React__default.createElement(Box$1, null,
|
|
116685
|
+
React__default.createElement(DatePicker, { value: data.parsedValue, onChange: fns.handleMonthChange, views: ["year", "month"], openTo: "month", minDate: (_a = data.parsedMinMonth) !== null && _a !== void 0 ? _a : undefined, maxDate: (_b = data.parsedMaxMonth) !== null && _b !== void 0 ? _b : undefined, disabled: disabled, format: "MMMM 'de' yyyy", slotProps: {
|
|
116686
|
+
textField: {
|
|
116687
|
+
label,
|
|
116688
|
+
required,
|
|
116689
|
+
fullWidth: true,
|
|
116690
|
+
error: !!error || data.isOutOfRange || data.hasInvalidValue,
|
|
116691
|
+
helperText: error ||
|
|
116692
|
+
(data.hasInvalidValue
|
|
116693
|
+
? "Mês de referência inválido."
|
|
116694
|
+
: data.isOutOfRange
|
|
116695
|
+
? "Mês de referência fora do intervalo permitido"
|
|
116696
|
+
: helperText),
|
|
116697
|
+
InputProps: {
|
|
116698
|
+
readOnly: true,
|
|
116699
|
+
},
|
|
116700
|
+
InputLabelProps: {
|
|
116701
|
+
shrink: true,
|
|
116702
|
+
},
|
|
116703
|
+
inputProps: {
|
|
116704
|
+
"data-testid": dataTestId,
|
|
116705
|
+
},
|
|
116706
|
+
},
|
|
116707
|
+
} }))));
|
|
116708
|
+
};
|
|
116709
|
+
|
|
116710
|
+
const LabeledMonthPickerPropsSchema = objectType({
|
|
116711
|
+
label: stringType(),
|
|
116712
|
+
value: stringType(),
|
|
116713
|
+
onChange: functionType(tupleType([stringType()]), voidType()),
|
|
116714
|
+
error: stringType().optional(),
|
|
116715
|
+
helperText: stringType().optional(),
|
|
116716
|
+
disabled: booleanType().optional(),
|
|
116717
|
+
required: booleanType().optional(),
|
|
116718
|
+
minMonth: stringType().optional(),
|
|
116719
|
+
maxMonth: stringType().optional(),
|
|
116720
|
+
"data-testid": stringType().optional(),
|
|
116721
|
+
});
|
|
116722
|
+
|
|
116723
|
+
const FinanceMobilePeriodBar = ({ periodLabel, amountLabel, periodInputValue, periodInputMin, periodInputMax, onPeriodInputChange, onResetToCurrentPeriod, testIdPrefix, }) => {
|
|
116724
|
+
const [open, setOpen] = useState(false);
|
|
116725
|
+
const summary = `${periodLabel || "-"} · ${amountLabel}`;
|
|
116726
|
+
return (React__default.createElement(React__default.Fragment, null,
|
|
116727
|
+
React__default.createElement(Button$1, { fullWidth: true, variant: "text", color: "inherit", onClick: () => setOpen(true), "aria-label": `Alterar competência, ${summary}`, "data-testid": `${testIdPrefix}-period-summary`, sx: {
|
|
116728
|
+
justifyContent: "flex-start",
|
|
116729
|
+
minHeight: 44,
|
|
116730
|
+
px: 1.5,
|
|
116731
|
+
py: 1,
|
|
116732
|
+
mb: 1,
|
|
116733
|
+
textTransform: "none",
|
|
116734
|
+
bgcolor: "background.paper",
|
|
116735
|
+
border: 1,
|
|
116736
|
+
borderColor: "divider",
|
|
116737
|
+
borderRadius: 1,
|
|
116738
|
+
} },
|
|
116739
|
+
React__default.createElement(Typography$1, { component: "span", fontWeight: 600, noWrap: true }, summary)),
|
|
116740
|
+
React__default.createElement(GenericDrawer, { anchor: "bottom", open: open, onClose: () => setOpen(false), "aria-label": "Compet\u00EAncia" },
|
|
116741
|
+
React__default.createElement(Stack$1, { spacing: 2, sx: { px: 2, pt: 1, pb: 3 } },
|
|
116742
|
+
React__default.createElement(Typography$1, { fontWeight: 700 }, "Compet\u00EAncia"),
|
|
116743
|
+
React__default.createElement(LabeledMonthPicker, { label: "Selecionar m\u00EAs", value: periodInputValue || "", onChange: (value) => onPeriodInputChange === null || onPeriodInputChange === void 0 ? void 0 : onPeriodInputChange(value), minMonth: periodInputMin || "2000-01", maxMonth: periodInputMax || "2100-12", "data-testid": `${testIdPrefix}-period-input` }),
|
|
116744
|
+
React__default.createElement(Button$1, { variant: "text", onClick: () => {
|
|
116745
|
+
onResetToCurrentPeriod === null || onResetToCurrentPeriod === void 0 ? void 0 : onResetToCurrentPeriod();
|
|
116746
|
+
setOpen(false);
|
|
116747
|
+
}, "data-testid": `${testIdPrefix}-period-current-month-button`, sx: { alignSelf: "flex-start", minHeight: 44 } }, "M\u00EAs atual")))));
|
|
116748
|
+
};
|
|
116749
|
+
|
|
116395
116750
|
const DEFAULT_MIN = 0;
|
|
116396
116751
|
const DEFAULT_MAX = 120;
|
|
116397
116752
|
const formatMinuteValue = (value, fallbackValue) => String(value !== null && value !== void 0 ? value : fallbackValue);
|
|
@@ -116474,20 +116829,35 @@ const InfoSectionCard = ({ icon, title, count, action, children, }) => (React__d
|
|
|
116474
116829
|
|
|
116475
116830
|
const PageHeaderStatusTabs = ({ tabs, selectedTab, onTabChange, }) => {
|
|
116476
116831
|
const theme = useTheme$1();
|
|
116477
|
-
|
|
116832
|
+
const selectedRef = useRef(null);
|
|
116833
|
+
useEffect(() => {
|
|
116834
|
+
var _a, _b;
|
|
116835
|
+
(_b = (_a = selectedRef.current) === null || _a === void 0 ? void 0 : _a.scrollIntoView) === null || _b === void 0 ? void 0 : _b.call(_a, {
|
|
116836
|
+
inline: "nearest",
|
|
116837
|
+
block: "nearest",
|
|
116838
|
+
});
|
|
116839
|
+
}, [selectedTab]);
|
|
116840
|
+
return (React__default.createElement(Box$1, { role: "tablist", sx: {
|
|
116841
|
+
display: "flex",
|
|
116842
|
+
flexWrap: "nowrap",
|
|
116843
|
+
gap: 0.75,
|
|
116844
|
+
width: "100%",
|
|
116845
|
+
overflowX: "auto",
|
|
116846
|
+
WebkitOverflowScrolling: "touch",
|
|
116847
|
+
scrollbarWidth: "none",
|
|
116848
|
+
"&::-webkit-scrollbar": { display: "none" },
|
|
116849
|
+
} }, tabs.map((tab) => {
|
|
116478
116850
|
const isSelected = selectedTab === tab.value;
|
|
116479
|
-
return (React__default.createElement(
|
|
116480
|
-
|
|
116481
|
-
|
|
116482
|
-
|
|
116483
|
-
|
|
116484
|
-
|
|
116485
|
-
|
|
116486
|
-
|
|
116487
|
-
|
|
116488
|
-
|
|
116489
|
-
backgroundColor: theme.palette.background.paper,
|
|
116490
|
-
})) }));
|
|
116851
|
+
return (React__default.createElement(Box$1, { key: tab.value, ref: isSelected ? selectedRef : undefined, sx: { flexShrink: 0 } },
|
|
116852
|
+
React__default.createElement(Chip$1, { component: "button", type: "button", role: "tab", "aria-selected": isSelected, tabIndex: isSelected ? 0 : -1, "data-testid": tab.testId, label: tab.label, onClick: () => onTabChange(tab.value), color: isSelected ? "primary" : "default", variant: isSelected ? "filled" : "outlined", sx: Object.assign({ height: 44, minHeight: 44, borderRadius: RADIUS.default, fontWeight: isSelected ? 600 : 500, fontSize: { xs: "0.8rem", sm: "0.875rem" }, "& .MuiChip-label": {
|
|
116853
|
+
whiteSpace: "nowrap",
|
|
116854
|
+
px: 1.25,
|
|
116855
|
+
} }, (isSelected
|
|
116856
|
+
? {}
|
|
116857
|
+
: {
|
|
116858
|
+
borderColor: theme.palette.divider,
|
|
116859
|
+
backgroundColor: theme.palette.background.paper,
|
|
116860
|
+
})) })));
|
|
116491
116861
|
})));
|
|
116492
116862
|
};
|
|
116493
116863
|
const PageHeader$2 = ({ title, onBack, onAdd, addLabel = "Adicionar", showAddButton = true, hideAddButtonOnMobile = false, tabs, selectedTab, onTabChange, startAdornment, endAction, }) => {
|
|
@@ -117662,62 +118032,6 @@ const overlayZIndex = {
|
|
|
117662
118032
|
nestedMenu: (theme) => theme.zIndex.modal + 3,
|
|
117663
118033
|
};
|
|
117664
118034
|
|
|
117665
|
-
const GenericDrawer = ({ open, onClose, onOpen, anchor = "bottom", zIndex, fullHeight = false, disableEnforceFocus = false, "aria-label": ariaLabel, children, }) => {
|
|
117666
|
-
const theme = useTheme$1();
|
|
117667
|
-
const isVerticalAnchor = anchor === "bottom" || anchor === "top";
|
|
117668
|
-
const isSideAnchor = anchor === "left" || anchor === "right";
|
|
117669
|
-
const showHandle = anchor === "bottom";
|
|
117670
|
-
const verticalMaxHeight = fullHeight ? "100dvh" : "70dvh";
|
|
117671
|
-
return (React__default.createElement(SwipeableDrawer$1, { anchor: anchor, open: open, onClose: onClose, onOpen: onOpen !== null && onOpen !== void 0 ? onOpen : (() => {
|
|
117672
|
-
/* no-op */
|
|
117673
|
-
}), disableEnforceFocus: disableEnforceFocus, "aria-label": ariaLabel, PaperProps: {
|
|
117674
|
-
role: ariaLabel ? "dialog" : undefined,
|
|
117675
|
-
"aria-label": ariaLabel,
|
|
117676
|
-
"aria-modal": ariaLabel ? true : undefined,
|
|
117677
|
-
sx: Object.assign(Object.assign({ display: "flex", flexDirection: "column", borderRadius: drawerSheetRadius(anchor, theme), backgroundColor: theme.palette.mode === "dark"
|
|
117678
|
-
? "rgba(0,0,0,0.95)"
|
|
117679
|
-
: "rgba(255,255,255,0.95)", backdropFilter: "blur(20px)", border: `1px solid ${theme.palette.divider}`, width: "100%", maxWidth: `${theme.breakpoints.values.md}px`, marginX: "auto", left: isVerticalAnchor ? 0 : undefined, right: isVerticalAnchor ? 0 : undefined }, (isVerticalAnchor
|
|
117680
|
-
? Object.assign({ maxHeight: verticalMaxHeight }, (fullHeight ? { height: "100dvh" } : {})) : { maxHeight: "100dvh" })), (isSideAnchor
|
|
117681
|
-
? {
|
|
117682
|
-
top: 0,
|
|
117683
|
-
bottom: 0,
|
|
117684
|
-
["@media (min-width:600px)"]: {
|
|
117685
|
-
top: 0,
|
|
117686
|
-
bottom: 0,
|
|
117687
|
-
height: "min(90dvh, 900px)",
|
|
117688
|
-
marginY: "auto",
|
|
117689
|
-
},
|
|
117690
|
-
}
|
|
117691
|
-
: {})),
|
|
117692
|
-
}, sx: Object.assign({}, (zIndex !== undefined ? { zIndex } : {})) },
|
|
117693
|
-
showHandle && (React__default.createElement(Box$1, { component: "button", type: "button", "aria-label": "Fechar", "data-testid": "generic-drawer-handle", onClick: onClose, sx: {
|
|
117694
|
-
display: "flex",
|
|
117695
|
-
alignItems: "center",
|
|
117696
|
-
justifyContent: "center",
|
|
117697
|
-
flexShrink: 0,
|
|
117698
|
-
width: "100%",
|
|
117699
|
-
minHeight: 44,
|
|
117700
|
-
pt: 1,
|
|
117701
|
-
pb: 0.5,
|
|
117702
|
-
px: 2,
|
|
117703
|
-
border: "none",
|
|
117704
|
-
background: "transparent",
|
|
117705
|
-
cursor: "pointer",
|
|
117706
|
-
WebkitTapHighlightColor: "transparent",
|
|
117707
|
-
"&:focus-visible": {
|
|
117708
|
-
outline: `2px solid ${theme.palette.primary.main}`,
|
|
117709
|
-
outlineOffset: -2,
|
|
117710
|
-
},
|
|
117711
|
-
} },
|
|
117712
|
-
React__default.createElement(Box$1, { "aria-hidden": true, sx: {
|
|
117713
|
-
width: 36,
|
|
117714
|
-
height: 4,
|
|
117715
|
-
borderRadius: RADIUS.pill,
|
|
117716
|
-
bgcolor: alpha(theme.palette.text.primary, 0.28),
|
|
117717
|
-
} }))),
|
|
117718
|
-
children));
|
|
117719
|
-
};
|
|
117720
|
-
|
|
117721
118035
|
const cloneFilters = (value) => {
|
|
117722
118036
|
return JSON.parse(JSON.stringify(value));
|
|
117723
118037
|
};
|
|
@@ -117946,127 +118260,6 @@ const LabeledBrazilianStateSelect = (props) => {
|
|
|
117946
118260
|
React__default.createElement(FormHelperText$1, null, error || helperText)));
|
|
117947
118261
|
};
|
|
117948
118262
|
|
|
117949
|
-
const COMPETENCE_MONTH_REGEX = /^(\d{4})-(0[1-9]|1[0-2])$/;
|
|
117950
|
-
const isValidCompetenceMonth = (value) => typeof value === "string" && COMPETENCE_MONTH_REGEX.test(value);
|
|
117951
|
-
const parseCompetenceMonth = (value) => {
|
|
117952
|
-
if (!isValidCompetenceMonth(value)) {
|
|
117953
|
-
return null;
|
|
117954
|
-
}
|
|
117955
|
-
const [yearText, monthText] = value.split("-");
|
|
117956
|
-
const year = Number(yearText);
|
|
117957
|
-
const month = Number(monthText);
|
|
117958
|
-
return new Date(year, month - 1, 1);
|
|
117959
|
-
};
|
|
117960
|
-
const toCompetenceMonth = (date) => {
|
|
117961
|
-
if (!date || Number.isNaN(date.getTime())) {
|
|
117962
|
-
return "";
|
|
117963
|
-
}
|
|
117964
|
-
const year = date.getFullYear();
|
|
117965
|
-
const month = `${date.getMonth() + 1}`.padStart(2, "0");
|
|
117966
|
-
return `${year}-${month}`;
|
|
117967
|
-
};
|
|
117968
|
-
const formatCompetenceMonthPtBr = (value, options) => {
|
|
117969
|
-
var _a, _b;
|
|
117970
|
-
if (!value)
|
|
117971
|
-
return "-";
|
|
117972
|
-
const date = parseCompetenceMonth(value);
|
|
117973
|
-
if (!date)
|
|
117974
|
-
return value;
|
|
117975
|
-
const monthFormat = (_a = options === null || options === void 0 ? void 0 : options.monthFormat) !== null && _a !== void 0 ? _a : "long";
|
|
117976
|
-
const capitalize = (_b = options === null || options === void 0 ? void 0 : options.capitalize) !== null && _b !== void 0 ? _b : true;
|
|
117977
|
-
const formatted = date.toLocaleDateString("pt-BR", {
|
|
117978
|
-
month: monthFormat,
|
|
117979
|
-
year: "numeric",
|
|
117980
|
-
});
|
|
117981
|
-
if (!capitalize || formatted.length === 0) {
|
|
117982
|
-
return formatted;
|
|
117983
|
-
}
|
|
117984
|
-
return formatted.charAt(0).toUpperCase() + formatted.slice(1);
|
|
117985
|
-
};
|
|
117986
|
-
|
|
117987
|
-
const useLabeledMonthPicker = (props) => {
|
|
117988
|
-
const { value, onChange, minMonth, maxMonth, disabled } = props;
|
|
117989
|
-
const parsedValue = useMemo(() => parseCompetenceMonth(value), [value]);
|
|
117990
|
-
const parsedMinMonth = useMemo(() => parseCompetenceMonth(minMonth), [minMonth]);
|
|
117991
|
-
const parsedMaxMonth = useMemo(() => parseCompetenceMonth(maxMonth), [maxMonth]);
|
|
117992
|
-
const isOutOfRange = useMemo(() => {
|
|
117993
|
-
if (!parsedValue)
|
|
117994
|
-
return false;
|
|
117995
|
-
if (parsedMinMonth && parsedValue < parsedMinMonth)
|
|
117996
|
-
return true;
|
|
117997
|
-
if (parsedMaxMonth && parsedValue > parsedMaxMonth)
|
|
117998
|
-
return true;
|
|
117999
|
-
return false;
|
|
118000
|
-
}, [parsedValue, parsedMinMonth, parsedMaxMonth]);
|
|
118001
|
-
const hasInvalidValue = useMemo(() => value.length > 0 && !isValidCompetenceMonth(value), [value]);
|
|
118002
|
-
const handleMonthChange = useCallback((nextDate) => {
|
|
118003
|
-
if (disabled)
|
|
118004
|
-
return;
|
|
118005
|
-
onChange(toCompetenceMonth(nextDate));
|
|
118006
|
-
}, [disabled, onChange]);
|
|
118007
|
-
const data = useMemo(() => ({
|
|
118008
|
-
parsedValue,
|
|
118009
|
-
parsedMinMonth,
|
|
118010
|
-
parsedMaxMonth,
|
|
118011
|
-
isOutOfRange,
|
|
118012
|
-
hasInvalidValue,
|
|
118013
|
-
}), [
|
|
118014
|
-
parsedValue,
|
|
118015
|
-
parsedMinMonth,
|
|
118016
|
-
parsedMaxMonth,
|
|
118017
|
-
isOutOfRange,
|
|
118018
|
-
hasInvalidValue,
|
|
118019
|
-
]);
|
|
118020
|
-
const fns = useMemo(() => ({
|
|
118021
|
-
handleMonthChange,
|
|
118022
|
-
}), [handleMonthChange]);
|
|
118023
|
-
return { data, fns };
|
|
118024
|
-
};
|
|
118025
|
-
|
|
118026
|
-
const LabeledMonthPicker = (props) => {
|
|
118027
|
-
var _a, _b;
|
|
118028
|
-
const { label, error, helperText, disabled, required, "data-testid": dataTestId, } = props;
|
|
118029
|
-
const { data, fns } = useLabeledMonthPicker(props);
|
|
118030
|
-
return (React__default.createElement(LocalizationProvider, { dateAdapter: AdapterDateFns, adapterLocale: ptBR },
|
|
118031
|
-
React__default.createElement(Box$1, null,
|
|
118032
|
-
React__default.createElement(DatePicker, { value: data.parsedValue, onChange: fns.handleMonthChange, views: ["year", "month"], openTo: "month", minDate: (_a = data.parsedMinMonth) !== null && _a !== void 0 ? _a : undefined, maxDate: (_b = data.parsedMaxMonth) !== null && _b !== void 0 ? _b : undefined, disabled: disabled, format: "MMMM 'de' yyyy", slotProps: {
|
|
118033
|
-
textField: {
|
|
118034
|
-
label,
|
|
118035
|
-
required,
|
|
118036
|
-
fullWidth: true,
|
|
118037
|
-
error: !!error || data.isOutOfRange || data.hasInvalidValue,
|
|
118038
|
-
helperText: error ||
|
|
118039
|
-
(data.hasInvalidValue
|
|
118040
|
-
? "Mês de referência inválido."
|
|
118041
|
-
: data.isOutOfRange
|
|
118042
|
-
? "Mês de referência fora do intervalo permitido"
|
|
118043
|
-
: helperText),
|
|
118044
|
-
InputProps: {
|
|
118045
|
-
readOnly: true,
|
|
118046
|
-
},
|
|
118047
|
-
InputLabelProps: {
|
|
118048
|
-
shrink: true,
|
|
118049
|
-
},
|
|
118050
|
-
inputProps: {
|
|
118051
|
-
"data-testid": dataTestId,
|
|
118052
|
-
},
|
|
118053
|
-
},
|
|
118054
|
-
} }))));
|
|
118055
|
-
};
|
|
118056
|
-
|
|
118057
|
-
const LabeledMonthPickerPropsSchema = objectType({
|
|
118058
|
-
label: stringType(),
|
|
118059
|
-
value: stringType(),
|
|
118060
|
-
onChange: functionType(tupleType([stringType()]), voidType()),
|
|
118061
|
-
error: stringType().optional(),
|
|
118062
|
-
helperText: stringType().optional(),
|
|
118063
|
-
disabled: booleanType().optional(),
|
|
118064
|
-
required: booleanType().optional(),
|
|
118065
|
-
minMonth: stringType().optional(),
|
|
118066
|
-
maxMonth: stringType().optional(),
|
|
118067
|
-
"data-testid": stringType().optional(),
|
|
118068
|
-
});
|
|
118069
|
-
|
|
118070
118263
|
const LabeledFieldHeaderPropsSchema = objectType({
|
|
118071
118264
|
label: stringType(),
|
|
118072
118265
|
required: booleanType().optional(),
|
|
@@ -126868,7 +127061,7 @@ const ActivityFormChatSummaryCard = ({ summary, confirmLabel = "Criar atividade"
|
|
|
126868
127061
|
React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Hor\u00E1rio", value: summary.isAllDay
|
|
126869
127062
|
? "Dia inteiro"
|
|
126870
127063
|
: `${formatTime$2(summary.startTime)} – ${formatTime$2(summary.endTime)}` }))) : null,
|
|
126871
|
-
summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_e = summary.checkinEndWindowMinutes) !== null && _e !== void 0 ? _e : 15} min depois` })) : null,
|
|
127064
|
+
summary.qrCheckinEnabled === false ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: "Desativado" })) : summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_e = summary.checkinEndWindowMinutes) !== null && _e !== void 0 ? _e : 15} min depois` })) : null,
|
|
126872
127065
|
React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$Z, { fontSize: "small" }), label: "Participantes", value: members }),
|
|
126873
127066
|
summary.minConfirmedMembers !== undefined ? (React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$Z, { fontSize: "small" }), label: "Qu\u00F3rum m\u00EDnimo", value: String(summary.minConfirmedMembers) })) : null,
|
|
126874
127067
|
React__default.createElement(SummaryRow$4, { icon: React__default.createElement(default_1$Y, { fontSize: "small" }), label: "Materiais", value: insumos })),
|
|
@@ -127016,7 +127209,7 @@ const EventFormChatSummaryCard = ({ summary, confirmLabel = "Criar evento", edit
|
|
|
127016
127209
|
React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Hor\u00E1rio", value: summary.isAllDay
|
|
127017
127210
|
? "Dia inteiro"
|
|
127018
127211
|
: `${formatTime$1(summary.startTime)} – ${formatTime$1(summary.endTime)}` }))) : null,
|
|
127019
|
-
summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_g = summary.checkinEndWindowMinutes) !== null && _g !== void 0 ? _g : 15} min depois` })) : null,
|
|
127212
|
+
summary.qrCheckinEnabled === false ? (React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: "Desativado" })) : summary.checkinStartWindowMinutes !== undefined ? (React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$X, { fontSize: "small" }), label: "Check-in", value: `${summary.checkinStartWindowMinutes} min antes / ${(_g = summary.checkinEndWindowMinutes) !== null && _g !== void 0 ? _g : 15} min depois` })) : null,
|
|
127020
127213
|
React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$14, { fontSize: "small" }), label: "Local", value: formatLocation(summary) }),
|
|
127021
127214
|
React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$W, { fontSize: "small" }), label: "Atividades", value: activities }),
|
|
127022
127215
|
React__default.createElement(SummaryRow$3, { icon: React__default.createElement(default_1$Z, { fontSize: "small" }), label: "Participantes", value: members }),
|
|
@@ -129809,71 +130002,6 @@ const QuestionAnswersSheet = ({ open, answers = [], answerCount, isLoading = fal
|
|
|
129809
130002
|
onSubmitAnswer ? (React__default.createElement(SocialMessageComposer, { variant: "drawer", value: draft, onChange: setDraft, onSend: (message) => void handleSend(message), placeholder: "Escreva uma resposta\u2026", disabled: composerDisabled, isSending: isSubmitting })) : null)));
|
|
129810
130003
|
};
|
|
129811
130004
|
|
|
129812
|
-
const DATE_ONLY_PATTERN = /^\d{4}-\d{2}-\d{2}$/;
|
|
129813
|
-
const UTC_MIDNIGHT_ISO_PATTERN = /^(\d{4}-\d{2}-\d{2})T00:00:00(?:\.\d{1,3})?Z$/;
|
|
129814
|
-
const isDateOnlyString = (value) => typeof value === "string" && DATE_ONLY_PATTERN.test(value);
|
|
129815
|
-
const parseDateOnlyToLocalDate = (dateOnly) => {
|
|
129816
|
-
if (!isDateOnlyString(dateOnly)) {
|
|
129817
|
-
throw new Error(`Invalid date-only value: "${dateOnly}". Expected format YYYY-MM-DD`);
|
|
129818
|
-
}
|
|
129819
|
-
const [year, month, day] = dateOnly.split("-").map(Number);
|
|
129820
|
-
return new Date(year, month - 1, day);
|
|
129821
|
-
};
|
|
129822
|
-
const parseUtcMidnightIsoToLocalDate = (value) => {
|
|
129823
|
-
const match = value.match(UTC_MIDNIGHT_ISO_PATTERN);
|
|
129824
|
-
if (!match) {
|
|
129825
|
-
return null;
|
|
129826
|
-
}
|
|
129827
|
-
return parseDateOnlyToLocalDate(match[1]);
|
|
129828
|
-
};
|
|
129829
|
-
const normalizeDateInputToLocalDate = (value) => {
|
|
129830
|
-
if (value instanceof Date) {
|
|
129831
|
-
return value;
|
|
129832
|
-
}
|
|
129833
|
-
if (isDateOnlyString(value)) {
|
|
129834
|
-
return parseDateOnlyToLocalDate(value);
|
|
129835
|
-
}
|
|
129836
|
-
const parsedUtcMidnight = parseUtcMidnightIsoToLocalDate(value);
|
|
129837
|
-
if (parsedUtcMidnight) {
|
|
129838
|
-
return parsedUtcMidnight;
|
|
129839
|
-
}
|
|
129840
|
-
const parsed = new Date(value);
|
|
129841
|
-
return parsed;
|
|
129842
|
-
};
|
|
129843
|
-
const toValidDateOrNull = (value) => {
|
|
129844
|
-
if (!value) {
|
|
129845
|
-
return null;
|
|
129846
|
-
}
|
|
129847
|
-
const parsed = normalizeDateInputToLocalDate(value);
|
|
129848
|
-
return Number.isNaN(parsed.getTime()) ? null : parsed;
|
|
129849
|
-
};
|
|
129850
|
-
const formatDateInputToDateOnly = (value) => {
|
|
129851
|
-
if (typeof value === "string" && isDateOnlyString(value)) {
|
|
129852
|
-
return value;
|
|
129853
|
-
}
|
|
129854
|
-
const date = normalizeDateInputToLocalDate(value);
|
|
129855
|
-
if (Number.isNaN(date.getTime())) {
|
|
129856
|
-
throw new Error(`Invalid date input: "${value}"`);
|
|
129857
|
-
}
|
|
129858
|
-
const year = date.getFullYear();
|
|
129859
|
-
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
129860
|
-
const day = String(date.getDate()).padStart(2, "0");
|
|
129861
|
-
return `${year}-${month}-${day}`;
|
|
129862
|
-
};
|
|
129863
|
-
const formatDateForDisplay = (value, locale = "pt-BR", options = {
|
|
129864
|
-
day: "2-digit",
|
|
129865
|
-
month: "long",
|
|
129866
|
-
year: "numeric",
|
|
129867
|
-
}) => {
|
|
129868
|
-
const date = value instanceof Date
|
|
129869
|
-
? value
|
|
129870
|
-
: normalizeDateInputToLocalDate(value);
|
|
129871
|
-
if (isNaN(date.getTime())) {
|
|
129872
|
-
return String(value);
|
|
129873
|
-
}
|
|
129874
|
-
return date.toLocaleDateString(locale, options);
|
|
129875
|
-
};
|
|
129876
|
-
|
|
129877
130005
|
const AVATAR_SIZE$1 = 84;
|
|
129878
130006
|
const overlayIconSx = {
|
|
129879
130007
|
color: "common.white",
|
|
@@ -133232,27 +133360,31 @@ const ActivityCheckinWindowStep = ({ formState, validationErrors, onChange, setF
|
|
|
133232
133360
|
});
|
|
133233
133361
|
}
|
|
133234
133362
|
}, [setFieldValue, onChange]);
|
|
133363
|
+
const checkinEnabled = formState.qrCheckinEnabled !== false;
|
|
133235
133364
|
return (React__default.createElement(Box$1, { sx: { p: { xs: 0.5, sm: 1 } } },
|
|
133236
|
-
React__default.createElement(
|
|
133237
|
-
|
|
133238
|
-
|
|
133239
|
-
|
|
133240
|
-
|
|
133241
|
-
|
|
133242
|
-
|
|
133243
|
-
|
|
133244
|
-
|
|
133245
|
-
|
|
133246
|
-
|
|
133247
|
-
|
|
133248
|
-
"
|
|
133249
|
-
|
|
133250
|
-
|
|
133251
|
-
|
|
133252
|
-
|
|
133253
|
-
|
|
133254
|
-
|
|
133255
|
-
|
|
133365
|
+
React__default.createElement(FormControlLabel$1, { control: React__default.createElement(Switch$1, { checked: checkinEnabled, onChange: (_, checked) => updateField("qrCheckinEnabled", checked), inputProps: { "aria-label": "Habilitar check-in" }, "data-testid": "activity-checkin-enabled-switch" }), label: "Habilitar check-in", sx: { mb: 2, ml: 0 } }),
|
|
133366
|
+
!checkinEnabled ? (React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Esta atividade n\u00E3o ter\u00E1 check-in na porta. A janela e o QR ficam ocultos.")) : null,
|
|
133367
|
+
checkinEnabled ? (React__default.createElement(React__default.Fragment, null,
|
|
133368
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: { xs: 2, sm: 3 } } },
|
|
133369
|
+
"Configure o intervalo de tempo permitido para check-in. O check-in estar\u00E1 dispon\u00EDvel a partir de X minutos ",
|
|
133370
|
+
React__default.createElement("strong", null, "antes"),
|
|
133371
|
+
" da atividade at\u00E9 Y minutos",
|
|
133372
|
+
React__default.createElement("strong", null, " ap\u00F3s"),
|
|
133373
|
+
" o in\u00EDcio."),
|
|
133374
|
+
React__default.createElement(Alert$1, { severity: "info", icon: React__default.createElement(Info$1, null), sx: { mb: { xs: 2, sm: 3 } } },
|
|
133375
|
+
React__default.createElement(Typography$1, { variant: "body2" },
|
|
133376
|
+
React__default.createElement("strong", null, "Exemplo:"),
|
|
133377
|
+
" Com os valores padr\u00E3o (10 e 15), se a atividade come\u00E7a \u00E0s 19h, o check-in abrir\u00E1 \u00E0s 18h50 e fechar\u00E1 \u00E0s 19h15.")),
|
|
133378
|
+
React__default.createElement(Box$1, { sx: { mb: { xs: 2, sm: 3 } } },
|
|
133379
|
+
React__default.createElement(LabeledMinuteInput, { name: "checkinStartWindowMinutes", label: "Abrir check-in (minutos antes)", value: formState.checkinStartWindowMinutes, onChange: (value) => updateField("checkinStartWindowMinutes", value), error: validationErrors.checkinStartWindowMinutes, helperText: validationErrors.checkinStartWindowMinutes ||
|
|
133380
|
+
"Quantos minutos antes da atividade checar entrada (0-120)", fallbackValue: 10, presets: [10, 20, 30], min: 0, max: 120, "data-testid": "activity-checkin-start-window-input" })),
|
|
133381
|
+
React__default.createElement(Box$1, { sx: { mb: { xs: 2, sm: 3 } } },
|
|
133382
|
+
React__default.createElement(LabeledMinuteInput, { name: "checkinEndWindowMinutes", label: "Fechar check-in (minutos ap\u00F3s)", value: formState.checkinEndWindowMinutes, onChange: (value) => updateField("checkinEndWindowMinutes", value), error: validationErrors.checkinEndWindowMinutes, helperText: validationErrors.checkinEndWindowMinutes ||
|
|
133383
|
+
"Quantos minutos após o início da atividade checar entrada (0-120)", fallbackValue: 15, presets: [10, 20, 30], min: 0, max: 120, "data-testid": "activity-checkin-end-window-input" })),
|
|
133384
|
+
React__default.createElement(Box$1, { sx: { p: { xs: 1.5, sm: 2 }, bgcolor: "action.hover", borderRadius: RADIUS.default } },
|
|
133385
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
|
|
133386
|
+
React__default.createElement("strong", null, "Dica:"),
|
|
133387
|
+
" Para atividades ritualisticas, manter a precis\u00E3o \u00E9 importante. Use 10 minutos de abertura e 15 minutos de fechamento como padr\u00E3o para manter a disciplina energ\u00E9tica.")))) : null));
|
|
133256
133388
|
};
|
|
133257
133389
|
|
|
133258
133390
|
const MembersSelectionStep = ({ formState, validationErrors, onChange, availableMembers = [], }) => {
|
|
@@ -134054,6 +134186,7 @@ const TemplateSchema = objectType({
|
|
|
134054
134186
|
isTemplate: booleanType(),
|
|
134055
134187
|
});
|
|
134056
134188
|
const ActivityCheckinWindowSchema = objectType({
|
|
134189
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
134057
134190
|
checkinStartWindowMinutes: numberType()
|
|
134058
134191
|
.int()
|
|
134059
134192
|
.min(0, "Deve ser 0 ou maior")
|
|
@@ -134081,6 +134214,7 @@ objectType({
|
|
|
134081
134214
|
.int("Quórum mínimo deve ser um número inteiro")
|
|
134082
134215
|
.min(1, "Quórum mínimo deve ser pelo menos 1")
|
|
134083
134216
|
.optional(),
|
|
134217
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
134084
134218
|
checkinStartWindowMinutes: numberType()
|
|
134085
134219
|
.int()
|
|
134086
134220
|
.min(0)
|
|
@@ -134173,13 +134307,18 @@ const DEFAULT_FORM_STATE$4 = {
|
|
|
134173
134307
|
insumos: [],
|
|
134174
134308
|
isTemplate: false,
|
|
134175
134309
|
minConfirmedMembers: undefined,
|
|
134310
|
+
qrCheckinEnabled: true,
|
|
134176
134311
|
};
|
|
134177
134312
|
const useActivityOnboarding = (props) => {
|
|
134178
134313
|
const [isLoading, setIsLoading] = useState(false);
|
|
134179
134314
|
const [error, setError] = useState();
|
|
134180
134315
|
const formState = useMemo(() => {
|
|
134181
|
-
|
|
134182
|
-
|
|
134316
|
+
const base = props.initialData || DEFAULT_FORM_STATE$4;
|
|
134317
|
+
if (props.isPersonalProfile) {
|
|
134318
|
+
return Object.assign(Object.assign({}, base), { qrCheckinEnabled: false });
|
|
134319
|
+
}
|
|
134320
|
+
return base;
|
|
134321
|
+
}, [props.initialData, props.isPersonalProfile]);
|
|
134183
134322
|
const steps = useMemo(() => {
|
|
134184
134323
|
return [
|
|
134185
134324
|
{
|
|
@@ -134212,7 +134351,7 @@ const useActivityOnboarding = (props) => {
|
|
|
134212
134351
|
id: "checkin-window",
|
|
134213
134352
|
label: "Check-in",
|
|
134214
134353
|
title: "Configurar Check-in",
|
|
134215
|
-
description: "
|
|
134354
|
+
description: "Escolha se haverá check-in e, se houver, o período permitido",
|
|
134216
134355
|
component: ActivityCheckinWindowStep,
|
|
134217
134356
|
},
|
|
134218
134357
|
]),
|
|
@@ -134953,6 +135092,8 @@ const formatMinutesToHHMM$3 = (totalMinutes) => {
|
|
|
134953
135092
|
};
|
|
134954
135093
|
const getConfiguredCheckinWindow$1 = (activity) => {
|
|
134955
135094
|
var _a, _b, _c, _d;
|
|
135095
|
+
if (activity.qrCheckinEnabled === false)
|
|
135096
|
+
return null;
|
|
134956
135097
|
const startTime = (_b = (_a = activity.occurrences) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.startTime;
|
|
134957
135098
|
const startMinutes = parseTimeToMinutes$3(startTime);
|
|
134958
135099
|
if (startMinutes === null)
|
|
@@ -135091,9 +135232,30 @@ const ActivityCard = ({ activity, isLast, isPersonalProfile = false, onSelect, o
|
|
|
135091
135232
|
return (React__default.createElement(Avatar$1, { key: idx, src: (_a = item.imageUrl) !== null && _a !== void 0 ? _a : undefined, alt: item.name }, ((_c = (_b = item.name) === null || _b === void 0 ? void 0 : _b.charAt(0)) !== null && _c !== void 0 ? _c : "").toUpperCase()));
|
|
135092
135233
|
})))))));
|
|
135093
135234
|
};
|
|
135235
|
+
const ActivityCompactRow = ({ activity, isLast, isPersonalProfile = false, onSelect, onEdit }) => {
|
|
135236
|
+
var _a;
|
|
135237
|
+
const occurrence = (_a = activity.occurrences) === null || _a === void 0 ? void 0 : _a[0];
|
|
135238
|
+
const dateParts = compactListDateParts(occurrence === null || occurrence === void 0 ? void 0 : occurrence.date);
|
|
135239
|
+
const dateTime = formatActivityDateTime(activity);
|
|
135240
|
+
const configuredCheckinWindow = getConfiguredCheckinWindow$1(activity);
|
|
135241
|
+
const meta = [
|
|
135242
|
+
dateTime.time,
|
|
135243
|
+
configuredCheckinWindow && !isPersonalProfile
|
|
135244
|
+
? `Check-in ${configuredCheckinWindow}`
|
|
135245
|
+
: null,
|
|
135246
|
+
activity.members && activity.members.count > 0
|
|
135247
|
+
? `${activity.members.count} médiuns`
|
|
135248
|
+
: null,
|
|
135249
|
+
]
|
|
135250
|
+
.filter(Boolean)
|
|
135251
|
+
.join(" · ");
|
|
135252
|
+
return (React__default.createElement(CompactListRow, { title: activity.title, meta: meta, isLast: isLast, onClick: () => onSelect(activity.id), leading: dateParts ? (React__default.createElement(CompactListDateBlock, { day: dateParts.day, month: dateParts.month })) : (React__default.createElement(CalendarToday, { fontSize: "small", color: "action" })), trailing: onEdit ? (React__default.createElement(IconButton$1, { "aria-label": `Editar ${activity.title}`, onClick: () => onEdit(activity.id), sx: { width: 44, height: 44 } },
|
|
135253
|
+
React__default.createElement(ArrowForwardIos, { sx: { width: 16 } }))) : undefined }));
|
|
135254
|
+
};
|
|
135094
135255
|
const ActivityListPage = (props) => {
|
|
135095
135256
|
var _a;
|
|
135096
135257
|
const theme = useTheme$1();
|
|
135258
|
+
const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
|
|
135097
135259
|
const { data, fns } = useActivityListPage(props);
|
|
135098
135260
|
const canCreate = props.canCreate || props.isAdmin;
|
|
135099
135261
|
const periodInputValue = (_a = props.periodInputValue) !== null && _a !== void 0 ? _a : `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, "0")}`;
|
|
@@ -135142,7 +135304,9 @@ const ActivityListPage = (props) => {
|
|
|
135142
135304
|
backgroundColor: theme.palette.background.default,
|
|
135143
135305
|
position: "relative",
|
|
135144
135306
|
} },
|
|
135145
|
-
React__default.createElement(PageHeader$2, { title: "Atividades", onBack: fns.handleClose, onAdd: fns.handleActivityAdd, addLabel: "Adicionar", showAddButton: canCreate,
|
|
135307
|
+
React__default.createElement(PageHeader$2, { title: "Atividades", onBack: fns.handleClose, onAdd: fns.handleActivityAdd, addLabel: "Adicionar", showAddButton: canCreate, hideAddButtonOnMobile: true, endAction: props.canExportParticipationReport &&
|
|
135308
|
+
props.onExportParticipationReport ? (React__default.createElement(IconButton$1, { "aria-label": "Exportar Participa\u00E7\u00E3o", onClick: props.onExportParticipationReport, disabled: props.isExportingParticipationReport, "data-testid": "activities-export-participation-icon", sx: { display: { xs: "inline-flex", sm: "none" }, width: 44, height: 44 } },
|
|
135309
|
+
React__default.createElement(Download, null))) : undefined, tabs: tabs.map((status) => ({
|
|
135146
135310
|
value: status,
|
|
135147
135311
|
label: data.getStatusLabel(status),
|
|
135148
135312
|
})), selectedTab: safeSelectedTab, onTabChange: (value) => fns.handleTabChange(value) }),
|
|
@@ -135158,7 +135322,7 @@ const ActivityListPage = (props) => {
|
|
|
135158
135322
|
React__default.createElement(Box$1, { sx: { width: { xs: "100%", sm: 260 } } },
|
|
135159
135323
|
React__default.createElement(LabeledMonthPicker, { label: "Per\u00EDodo", value: periodInputValue, onChange: (nextValue) => { var _a; return (_a = props.onPeriodInputChange) === null || _a === void 0 ? void 0 : _a.call(props, nextValue); }, "data-testid": "activities-period-input" })),
|
|
135160
135324
|
props.canExportParticipationReport &&
|
|
135161
|
-
props.onExportParticipationReport && (React__default.createElement(Button$1, { variant: "outlined", startIcon: React__default.createElement(Download, null), onClick: props.onExportParticipationReport, disabled: props.isExportingParticipationReport, "data-testid": "activities-export-participation-button" }, props.isExportingParticipationReport
|
|
135325
|
+
props.onExportParticipationReport && (React__default.createElement(Button$1, { variant: "outlined", startIcon: React__default.createElement(Download, null), onClick: props.onExportParticipationReport, disabled: props.isExportingParticipationReport, "data-testid": "activities-export-participation-button", sx: { display: { xs: "none", sm: "inline-flex" } } }, props.isExportingParticipationReport
|
|
135162
135326
|
? "Exportando..."
|
|
135163
135327
|
: "Exportar Participação"))),
|
|
135164
135328
|
React__default.createElement(Box$1, { sx: Object.assign({ flex: 1, pb: LIST_CONTENT_BOTTOM_PADDING }, LIST_CARD_CONTENT_ROOT_SX) }, data.activities.length === 0 ? (React__default.createElement(Box$1, { sx: {
|
|
@@ -135175,18 +135339,19 @@ const ActivityListPage = (props) => {
|
|
|
135175
135339
|
canCreate && (React__default.createElement(React__default.Fragment, null,
|
|
135176
135340
|
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: SECTION_GAP } }, "Toque no bot\u00E3o + para criar uma nova atividade"),
|
|
135177
135341
|
React__default.createElement(QuotaGuard, { feature: "activities", behavior: "disable" },
|
|
135178
|
-
React__default.createElement(Button$1, { variant: "contained", startIcon: React__default.createElement(Add$1, null), onClick: fns.handleActivityAdd }, "Criar atividade")))))) : (React__default.createElement(
|
|
135342
|
+
React__default.createElement(Button$1, { variant: "contained", startIcon: React__default.createElement(Add$1, null), onClick: fns.handleActivityAdd }, "Criar atividade")))))) : (isMobile ? (React__default.createElement(Box$1, { sx: {
|
|
135343
|
+
bgcolor: "background.paper",
|
|
135344
|
+
borderRadius: RADIUS.default,
|
|
135345
|
+
border: 1,
|
|
135346
|
+
borderColor: "divider",
|
|
135347
|
+
overflow: "hidden",
|
|
135348
|
+
} }, data.activities.map((activity, index) => (React__default.createElement(ActivityCompactRow, { key: activity.id, activity: activity, isLast: index === data.activities.length - 1, isPersonalProfile: props.isPersonalProfile, onSelect: fns.handleActivitySelect, onEdit: props.onActivityEdit ? fns.handleActivityEdit : undefined }))))) : (React__default.createElement(Stack$1, { spacing: LIST_GAP }, data.activities.map((activity, index) => (React__default.createElement(ActivityCard, { key: activity.id, activity: activity, isLast: index === data.activities.length - 1, isPersonalProfile: props.isPersonalProfile, onSelect: fns.handleActivitySelect, onEdit: fns.handleActivityEdit, theme: theme, getStatusLabel: data.getStatusLabel }))))))),
|
|
135179
135349
|
React__default.createElement(Menu$2, { anchorEl: filterAnchorEl, open: Boolean(filterAnchorEl), onClose: handleFilterClose },
|
|
135180
135350
|
React__default.createElement(MenuItem$1, { onClick: () => handleTemplateFilter(null) }, "Todas as atividades"),
|
|
135181
135351
|
React__default.createElement(MenuItem$1, { onClick: () => handleTemplateFilter(true) }, "Apenas modelos"),
|
|
135182
135352
|
React__default.createElement(MenuItem$1, { onClick: () => handleTemplateFilter(false) }, "Apenas atividades")),
|
|
135183
|
-
canCreate && !props.hideAddFab && (React__default.createElement(QuotaGuard, { feature: "activities", behavior: "hide" },
|
|
135184
|
-
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar", onClick: fns.handleActivityAdd, sx: {
|
|
135185
|
-
position: "fixed",
|
|
135186
|
-
bottom: { xs: 16, sm: 24 },
|
|
135187
|
-
right: { xs: 16, sm: 24 },
|
|
135188
|
-
zIndex: theme.zIndex.speedDial,
|
|
135189
|
-
} },
|
|
135353
|
+
canCreate && !props.hideAddFab && data.activities.length > 0 && (React__default.createElement(QuotaGuard, { feature: "activities", behavior: "hide" },
|
|
135354
|
+
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar", onClick: fns.handleActivityAdd, sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.speedDial }) },
|
|
135190
135355
|
React__default.createElement(Add$1, null)))))));
|
|
135191
135356
|
};
|
|
135192
135357
|
|
|
@@ -135257,26 +135422,27 @@ const ActivityDateTime = ({ activity, checkinWindow, formatDate, formatTime, the
|
|
|
135257
135422
|
? formatTime(occurrence.endTime)
|
|
135258
135423
|
: "Não definido"))))))) : (React__default.createElement(Box$1, { sx: { textAlign: "center", py: 2 } },
|
|
135259
135424
|
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Nenhuma data definida"))),
|
|
135260
|
-
|
|
135261
|
-
React__default.createElement(
|
|
135262
|
-
|
|
135263
|
-
"
|
|
135264
|
-
|
|
135265
|
-
|
|
135266
|
-
React__default.createElement(
|
|
135267
|
-
|
|
135268
|
-
|
|
135269
|
-
|
|
135270
|
-
|
|
135271
|
-
|
|
135272
|
-
|
|
135273
|
-
|
|
135274
|
-
|
|
135275
|
-
|
|
135276
|
-
|
|
135277
|
-
|
|
135278
|
-
|
|
135279
|
-
|
|
135425
|
+
activity.qrCheckinEnabled !== false ? (React__default.createElement(React__default.Fragment, null,
|
|
135426
|
+
React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", mt: 1 } },
|
|
135427
|
+
React__default.createElement(AccessTime, { sx: { mr: 1.5, color: "text.secondary" } }),
|
|
135428
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mr: 1 } },
|
|
135429
|
+
"Check-in v\u00E1lido: ",
|
|
135430
|
+
getCheckinSummary()),
|
|
135431
|
+
checkinWindow ? (React__default.createElement(Box$1, { component: "span" },
|
|
135432
|
+
React__default.createElement(Typography$1, { component: "span", variant: "caption", sx: {
|
|
135433
|
+
px: 1,
|
|
135434
|
+
py: 0.25,
|
|
135435
|
+
borderRadius: RADIUS.default,
|
|
135436
|
+
border: `1px solid ${theme.palette.divider}`,
|
|
135437
|
+
color: checkinWindow.state === "active"
|
|
135438
|
+
? theme.palette.success.main
|
|
135439
|
+
: checkinWindow.state === "scheduled"
|
|
135440
|
+
? theme.palette.warning.main
|
|
135441
|
+
: checkinWindow.state === "closed"
|
|
135442
|
+
? theme.palette.error.main
|
|
135443
|
+
: theme.palette.text.secondary,
|
|
135444
|
+
} }, stateLabel[checkinWindow.state]))) : null),
|
|
135445
|
+
getCheckinExplanation() ? (React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary", sx: { mt: 0.5 } }, getCheckinExplanation())) : null)) : null)));
|
|
135280
135446
|
};
|
|
135281
135447
|
var ActivityDateTime$1 = React__default.memo(ActivityDateTime);
|
|
135282
135448
|
|
|
@@ -135862,6 +136028,7 @@ const ActivitySchema$3 = objectType({
|
|
|
135862
136028
|
title: stringType(),
|
|
135863
136029
|
description: stringType(),
|
|
135864
136030
|
isTemplate: booleanType(),
|
|
136031
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
135865
136032
|
qrReleaseOffsetMinutes: numberType().nullable().optional(),
|
|
135866
136033
|
qrCheckinGraceMinutes: numberType().nullable().optional(),
|
|
135867
136034
|
checkinStartWindowMinutes: numberType().nullable().optional(),
|
|
@@ -135977,6 +136144,7 @@ const ActivityDetailSchema = objectType({
|
|
|
135977
136144
|
title: stringType(),
|
|
135978
136145
|
description: stringType(),
|
|
135979
136146
|
isTemplate: booleanType(),
|
|
136147
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
135980
136148
|
qrReleaseOffsetMinutes: numberType().nullable().optional(),
|
|
135981
136149
|
qrCheckinGraceMinutes: numberType().nullable().optional(),
|
|
135982
136150
|
checkinStartWindowMinutes: numberType().nullable().optional(),
|
|
@@ -136385,7 +136553,9 @@ const ActivityDetailPage = (props) => {
|
|
|
136385
136553
|
const bTime = b.confirmedAt ? new Date(b.confirmedAt).getTime() : 0;
|
|
136386
136554
|
return bTime - aTime;
|
|
136387
136555
|
});
|
|
136388
|
-
const
|
|
136556
|
+
const checkinEnabled = data.activity.qrCheckinEnabled !== false;
|
|
136557
|
+
const canShowCheckinCta = checkinEnabled &&
|
|
136558
|
+
props.canScanCheckin &&
|
|
136389
136559
|
((_a = props.checkinWindow) === null || _a === void 0 ? void 0 : _a.state) === "active" &&
|
|
136390
136560
|
!(currentMember === null || currentMember === void 0 ? void 0 : currentMember.confirmedAt) &&
|
|
136391
136561
|
!props.isPersonalProfile;
|
|
@@ -136410,7 +136580,7 @@ const ActivityDetailPage = (props) => {
|
|
|
136410
136580
|
React__default.createElement(Stack$1, { spacing: LIST_GAP },
|
|
136411
136581
|
React__default.createElement(ActivityInfo$1, { activity: data.activity, canChangeStatus: props.canChangeStatus || false, canUseModel: props.canUseModel || false, statusOptions: statusOptions, onStatusChange: fns.handleChangeStatus, onUseModel: fns.handleUseModel, theme: theme }),
|
|
136412
136582
|
React__default.createElement(ActivityDateTime$1, { activity: data.activity, checkinWindow: props.checkinWindow, formatDate: data.formatDate, formatTime: data.formatTime, theme: theme }),
|
|
136413
|
-
props.canManageQr && !props.isPersonalProfile && (React__default.createElement(ActivityAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState })),
|
|
136583
|
+
checkinEnabled && props.canManageQr && !props.isPersonalProfile && (React__default.createElement(ActivityAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState })),
|
|
136414
136584
|
React__default.createElement(ActivityMediums$1, { activity: data.activity, onAddMedium: fns.handleAddMedium, isAdmin: data.isAdmin, theme: theme, currentMemberId: data.currentMemberId, onConfirmParticipation: fns.handleConfirmParticipation, onDeclineParticipation: fns.handleDeclineParticipation }),
|
|
136415
136585
|
attendanceMembers.length > 0 && (React__default.createElement(ConfirmedAttendanceCard$3, { attendanceMembers: attendanceMembers, theme: theme, formatConfirmedAt: formatConfirmedAt })),
|
|
136416
136586
|
React__default.createElement(ActivitySupplies$1, { activity: data.activity, onAddSupply: fns.handleAddSupply, theme: theme })))),
|
|
@@ -137259,6 +137429,7 @@ const EventSchema = objectType({
|
|
|
137259
137429
|
name: stringType().optional(),
|
|
137260
137430
|
description: stringType().optional(),
|
|
137261
137431
|
isTemplate: booleanType().optional(),
|
|
137432
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
137262
137433
|
qrReleaseOffsetMinutes: numberType().nullable().optional(),
|
|
137263
137434
|
qrCheckinGraceMinutes: numberType().nullable().optional(),
|
|
137264
137435
|
checkinStartWindowMinutes: numberType().nullable().optional(),
|
|
@@ -137507,27 +137678,31 @@ const EventCheckinWindowStep = ({ formState, validationErrors, onChange, setFiel
|
|
|
137507
137678
|
onChange(createFieldEvent(name, value));
|
|
137508
137679
|
}
|
|
137509
137680
|
}, [setFieldValue, onChange]);
|
|
137681
|
+
const checkinEnabled = formState.qrCheckinEnabled !== false;
|
|
137510
137682
|
return (React__default.createElement(Box$1, { sx: { p: { xs: 0.5, sm: 1 } } },
|
|
137511
|
-
React__default.createElement(
|
|
137512
|
-
|
|
137513
|
-
|
|
137514
|
-
|
|
137515
|
-
|
|
137516
|
-
|
|
137517
|
-
|
|
137518
|
-
|
|
137519
|
-
|
|
137520
|
-
|
|
137521
|
-
|
|
137522
|
-
|
|
137523
|
-
"
|
|
137524
|
-
|
|
137525
|
-
|
|
137526
|
-
|
|
137527
|
-
|
|
137528
|
-
|
|
137529
|
-
|
|
137530
|
-
|
|
137683
|
+
React__default.createElement(FormControlLabel$1, { control: React__default.createElement(Switch$1, { checked: checkinEnabled, onChange: (_, checked) => updateField("qrCheckinEnabled", checked), inputProps: { "aria-label": "Habilitar check-in" }, "data-testid": "event-checkin-enabled-switch" }), label: "Habilitar check-in", sx: { mb: 2, ml: 0 } }),
|
|
137684
|
+
!checkinEnabled ? (React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Este evento n\u00E3o ter\u00E1 check-in na porta. A janela e o QR ficam ocultos.")) : null,
|
|
137685
|
+
checkinEnabled ? (React__default.createElement(React__default.Fragment, null,
|
|
137686
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: 2.5 } },
|
|
137687
|
+
"Configure o intervalo de tempo permitido para check-in. O check-in estar\u00E1 dispon\u00EDvel a partir de X minutos ",
|
|
137688
|
+
React__default.createElement("strong", null, "antes"),
|
|
137689
|
+
" do evento at\u00E9 Y minutos",
|
|
137690
|
+
React__default.createElement("strong", null, " ap\u00F3s"),
|
|
137691
|
+
" o in\u00EDcio."),
|
|
137692
|
+
React__default.createElement(Alert$1, { severity: "info", icon: React__default.createElement(Info$1, null), sx: { mb: 2.5 } },
|
|
137693
|
+
React__default.createElement(Typography$1, { variant: "body2" },
|
|
137694
|
+
React__default.createElement("strong", null, "Exemplo:"),
|
|
137695
|
+
" Com os valores padr\u00E3o (10 e 15), se o evento come\u00E7a \u00E0s 19h, o check-in abrir\u00E1 \u00E0s 18h50 e fechar\u00E1 \u00E0s 19h15.")),
|
|
137696
|
+
React__default.createElement(Box$1, { sx: { mb: 2.5 } },
|
|
137697
|
+
React__default.createElement(LabeledMinuteInput, { name: "checkinStartWindowMinutes", label: "Abrir check-in (minutos antes)", value: formState.checkinStartWindowMinutes, onChange: (value) => updateField("checkinStartWindowMinutes", value), error: validationErrors.checkinStartWindowMinutes, helperText: validationErrors.checkinStartWindowMinutes ||
|
|
137698
|
+
"Quantos minutos antes do evento checar entrada (0-120)", fallbackValue: 10, min: 0, max: 120, "data-testid": "event-checkin-start-window-input" })),
|
|
137699
|
+
React__default.createElement(Box$1, { sx: { mb: 2.5 } },
|
|
137700
|
+
React__default.createElement(LabeledMinuteInput, { name: "checkinEndWindowMinutes", label: "Fechar check-in (minutos ap\u00F3s)", value: formState.checkinEndWindowMinutes, onChange: (value) => updateField("checkinEndWindowMinutes", value), error: validationErrors.checkinEndWindowMinutes, helperText: validationErrors.checkinEndWindowMinutes ||
|
|
137701
|
+
"Quantos minutos após o início do evento checar entrada (0-120)", fallbackValue: 15, min: 0, max: 120, "data-testid": "event-checkin-end-window-input" })),
|
|
137702
|
+
React__default.createElement(Box$1, { sx: { p: { xs: 1.5, sm: 2 }, bgcolor: "action.hover", borderRadius: RADIUS.default } },
|
|
137703
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
|
|
137704
|
+
React__default.createElement("strong", null, "Dica:"),
|
|
137705
|
+
" Para eventos grandes, aumentar o intervalo de abertura (e.g. 20 minutos antes) permite que mais pessoas cheguem a tempo. Para eventos pequenos, 10 e 15 minutos geralmente \u00E9 o ideal.")))) : null));
|
|
137531
137706
|
};
|
|
137532
137707
|
|
|
137533
137708
|
let googleMapsScriptPromise = null;
|
|
@@ -138572,7 +138747,7 @@ const EventReviewStep = ({ formState, availableActivities, }) => {
|
|
|
138572
138747
|
React__default.createElement(Typography$1, { variant: "h6", sx: { mb: 2, display: "flex", alignItems: "center" } },
|
|
138573
138748
|
React__default.createElement(AccessTime, { sx: { mr: 1 } }),
|
|
138574
138749
|
" Janela de Check-in"),
|
|
138575
|
-
!formState.isAllDay ? (React__default.createElement(React__default.Fragment, null,
|
|
138750
|
+
formState.qrCheckinEnabled === false ? (React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" }, "Check-in desativado para este evento.")) : !formState.isAllDay ? (React__default.createElement(React__default.Fragment, null,
|
|
138576
138751
|
React__default.createElement(Typography$1, { variant: "body2", sx: { mb: 1 } },
|
|
138577
138752
|
React__default.createElement("strong", null, "Evento:"),
|
|
138578
138753
|
" ",
|
|
@@ -139431,7 +139606,7 @@ const EventActivitySelectionStep = ({ formState, validationErrors, onChange, ava
|
|
|
139431
139606
|
"):"),
|
|
139432
139607
|
React__default.createElement(Button$1, { variant: "text", size: "small", startIcon: React__default.createElement(Clear$1, null), onClick: handleClear, sx: { alignSelf: { xs: "stretch", sm: "flex-start" } } }, "Limpar todas")),
|
|
139433
139608
|
selectedActivities.map((activity) => {
|
|
139434
|
-
var _a, _b, _c, _d, _e, _f;
|
|
139609
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
139435
139610
|
return (React__default.createElement(Box$1, { key: activity.id, sx: {
|
|
139436
139611
|
mb: 1.5,
|
|
139437
139612
|
p: { xs: 1.25, sm: 1.5 },
|
|
@@ -139475,8 +139650,9 @@ const EventActivitySelectionStep = ({ formState, validationErrors, onChange, ava
|
|
|
139475
139650
|
} },
|
|
139476
139651
|
React__default.createElement(LabeledTimePicker, { label: "In\u00EDcio", value: activity.startTime || "", error: (_a = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _a === void 0 ? void 0 : _a.startTime, helperText: ((_b = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _b === void 0 ? void 0 : _b.startTime) || " ", onChange: (value) => handleActivityTimeChange(activity.id, "startTime", value), "data-testid": `event-activity-start-time-${activity.id}` }),
|
|
139477
139652
|
React__default.createElement(LabeledTimePicker, { label: "T\u00E9rmino", value: activity.endTime || "", error: (_c = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _c === void 0 ? void 0 : _c.endTime, helperText: ((_d = activityTimeValidation.errorsByActivityId[String(activity.id)]) === null || _d === void 0 ? void 0 : _d.endTime) || " ", onChange: (value) => handleActivityTimeChange(activity.id, "endTime", value), "data-testid": `event-activity-end-time-${activity.id}` }),
|
|
139478
|
-
|
|
139479
|
-
|
|
139653
|
+
((_e = availableActivities.find((item) => String(item.id) === String(activity.id))) === null || _e === void 0 ? void 0 : _e.qrCheckinEnabled) !== false ? (React__default.createElement(React__default.Fragment, null,
|
|
139654
|
+
React__default.createElement(TextField$1, { fullWidth: true, label: checkinOpenLabel, type: "number", size: "small", value: (_f = activity.checkinStartWindowMinutes) !== null && _f !== void 0 ? _f : 10, onChange: (e) => handleActivityCheckinWindowChange(activity.id, "checkinStartWindowMinutes", e.target.value), InputLabelProps: { shrink: true }, inputProps: { min: 0, max: 120 }, helperText: isMobile ? "Antes do início" : "Minutos antes do início" }),
|
|
139655
|
+
React__default.createElement(TextField$1, { fullWidth: true, label: checkinCloseLabel, type: "number", size: "small", value: (_g = activity.checkinEndWindowMinutes) !== null && _g !== void 0 ? _g : 15, onChange: (e) => handleActivityCheckinWindowChange(activity.id, "checkinEndWindowMinutes", e.target.value), InputLabelProps: { shrink: true }, inputProps: { min: 0, max: 120 }, helperText: isMobile ? "Após o início" : "Minutos após o início" }))) : null),
|
|
139480
139656
|
React__default.createElement(Box$1, { sx: {
|
|
139481
139657
|
display: "flex",
|
|
139482
139658
|
alignItems: { xs: "flex-start", sm: "center" },
|
|
@@ -139716,6 +139892,7 @@ const EventLocationSchema = objectType({
|
|
|
139716
139892
|
}
|
|
139717
139893
|
});
|
|
139718
139894
|
const EventCheckinWindowSchema = objectType({
|
|
139895
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
139719
139896
|
checkinStartWindowMinutes: numberType()
|
|
139720
139897
|
.int()
|
|
139721
139898
|
.min(0, "Deve ser 0 ou maior")
|
|
@@ -139768,6 +139945,7 @@ const ActivitySchema$1 = objectType({
|
|
|
139768
139945
|
durationMinutes: numberType().optional(),
|
|
139769
139946
|
startTime: stringType().optional(), // HH:MM — per-activity start time for the event
|
|
139770
139947
|
endTime: stringType().optional(), // HH:MM — per-activity end time for the event
|
|
139948
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
139771
139949
|
checkinStartWindowMinutes: numberType().int().min(0).max(120).optional(),
|
|
139772
139950
|
checkinEndWindowMinutes: numberType().int().min(0).max(120).optional(),
|
|
139773
139951
|
qrReleaseOffsetMinutes: numberType().int().min(0).max(180).optional(),
|
|
@@ -139827,6 +140005,7 @@ const EventFormValuesSchema = objectType({
|
|
|
139827
140005
|
insumos: arrayType(anyType()).optional(),
|
|
139828
140006
|
activities: arrayType(ActivitySchema$1).optional(), // Changed from activity to activities
|
|
139829
140007
|
requiredActivityIds: arrayType(stringType()).optional(),
|
|
140008
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
139830
140009
|
checkinStartWindowMinutes: numberType()
|
|
139831
140010
|
.int()
|
|
139832
140011
|
.min(0)
|
|
@@ -139944,6 +140123,7 @@ const DEFAULT_FORM_STATE$3 = {
|
|
|
139944
140123
|
isAllDay: false,
|
|
139945
140124
|
startTime: "",
|
|
139946
140125
|
endTime: "",
|
|
140126
|
+
qrCheckinEnabled: true,
|
|
139947
140127
|
checkinStartWindowMinutes: 10,
|
|
139948
140128
|
checkinEndWindowMinutes: 15,
|
|
139949
140129
|
location: {
|
|
@@ -139984,24 +140164,26 @@ const EMPTY_SCHEMA = objectType({});
|
|
|
139984
140164
|
* Computes the initial form state from props, applying terreiro address
|
|
139985
140165
|
* defaults when the location type is "in terreiro".
|
|
139986
140166
|
*/
|
|
139987
|
-
const buildInitialFormState = (initialData, isTerreiroAddressEmpty, knownLocations) => {
|
|
140167
|
+
const buildInitialFormState = (initialData, isTerreiroAddressEmpty, knownLocations, isPersonalProfile = false) => {
|
|
139988
140168
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
139989
140169
|
const baseState = initialData !== null && initialData !== void 0 ? initialData : DEFAULT_FORM_STATE$3;
|
|
139990
|
-
const
|
|
140170
|
+
const withCheckin = isPersonalProfile
|
|
140171
|
+
? Object.assign(Object.assign({}, baseState), { qrCheckinEnabled: false }) : baseState;
|
|
140172
|
+
const isCreateFlow = !withCheckin.id;
|
|
139991
140173
|
if (isCreateFlow) {
|
|
139992
140174
|
const fallback = (knownLocations && knownLocations[0]) || "Endereço do Terreiro";
|
|
139993
|
-
const existingKnownLocation = ((_c = (_b = (_a =
|
|
139994
|
-
return Object.assign(Object.assign({},
|
|
140175
|
+
const existingKnownLocation = ((_c = (_b = (_a = withCheckin.location) === null || _a === void 0 ? void 0 : _a.knownLocation) === null || _b === void 0 ? void 0 : _b.trim) === null || _c === void 0 ? void 0 : _c.call(_b)) || "";
|
|
140176
|
+
return Object.assign(Object.assign({}, withCheckin), { location: Object.assign(Object.assign({}, withCheckin.location), { isInTerreiro: !isTerreiroAddressEmpty, knownLocation: !isTerreiroAddressEmpty
|
|
139995
140177
|
? existingKnownLocation || fallback
|
|
139996
|
-
: (_e = (_d =
|
|
140178
|
+
: (_e = (_d = withCheckin.location) === null || _d === void 0 ? void 0 : _d.knownLocation) !== null && _e !== void 0 ? _e : "" }) });
|
|
139997
140179
|
}
|
|
139998
|
-
const shouldDefaultToTerreiro = (_g = (_f =
|
|
140180
|
+
const shouldDefaultToTerreiro = (_g = (_f = withCheckin.location) === null || _f === void 0 ? void 0 : _f.isInTerreiro) !== null && _g !== void 0 ? _g : true;
|
|
139999
140181
|
if (shouldDefaultToTerreiro && !isTerreiroAddressEmpty) {
|
|
140000
|
-
const existing = ((_k = (_j = (_h =
|
|
140182
|
+
const existing = ((_k = (_j = (_h = withCheckin.location) === null || _h === void 0 ? void 0 : _h.knownLocation) === null || _j === void 0 ? void 0 : _j.trim) === null || _k === void 0 ? void 0 : _k.call(_j)) || "";
|
|
140001
140183
|
const fallback = (knownLocations && knownLocations[0]) || "Endereço do Terreiro";
|
|
140002
|
-
return Object.assign(Object.assign({},
|
|
140184
|
+
return Object.assign(Object.assign({}, withCheckin), { location: Object.assign(Object.assign({}, withCheckin.location), { isInTerreiro: true, knownLocation: existing || fallback }) });
|
|
140003
140185
|
}
|
|
140004
|
-
return
|
|
140186
|
+
return withCheckin;
|
|
140005
140187
|
};
|
|
140006
140188
|
// ---------------------------------------------------------------------------
|
|
140007
140189
|
// Hook
|
|
@@ -140011,7 +140193,7 @@ const useEventOnboarding = (props) => {
|
|
|
140011
140193
|
const { initialData, isTerreiroAddressEmpty, knownLocations, createFromModel, availableActivities, canAddActivities = true, activityQuotaMessage, canCreateTemplates = true, templateQuotaMessage, availableMembers, availableInsumos, onComplete, onCancel, onStepChange: onStepChangeProp, onRequestAISuggestions, isAISuggestionsLoading = false, isPersonalProfile = false, enableGoogleAddress = false, googleMapsApiKey, googleCountryCode = "br", googleLanguage = "pt-BR", } = props;
|
|
140012
140194
|
const [isLoading, setIsLoading] = useState(false);
|
|
140013
140195
|
const [error, setError] = useState();
|
|
140014
|
-
const initialFormState = useMemo(() => buildInitialFormState(initialData, isTerreiroAddressEmpty, knownLocations), [initialData, isTerreiroAddressEmpty, knownLocations]);
|
|
140196
|
+
const initialFormState = useMemo(() => buildInitialFormState(initialData, isTerreiroAddressEmpty, knownLocations, isPersonalProfile), [initialData, isTerreiroAddressEmpty, knownLocations, isPersonalProfile]);
|
|
140015
140197
|
// -----------------------------------------------------------------------
|
|
140016
140198
|
// Step definitions — pure data, no inline wrapper components
|
|
140017
140199
|
// -----------------------------------------------------------------------
|
|
@@ -140054,7 +140236,7 @@ const useEventOnboarding = (props) => {
|
|
|
140054
140236
|
id: "checkin-window",
|
|
140055
140237
|
label: "Check-in",
|
|
140056
140238
|
title: "Configurar Check-in",
|
|
140057
|
-
description: "
|
|
140239
|
+
description: "Escolha se haverá check-in e, se houver, o período permitido",
|
|
140058
140240
|
component: EventCheckinWindowStep,
|
|
140059
140241
|
},
|
|
140060
140242
|
]),
|
|
@@ -140371,17 +140553,18 @@ const EventDateTime = ({ event, checkinWindow, formatDate, formatTime, theme, })
|
|
|
140371
140553
|
? formatTime(firstOccurrence.endTime)
|
|
140372
140554
|
: "Não definido"))),
|
|
140373
140555
|
isAllDay && (React__default.createElement(Chip$1, { label: "Dia inteiro", size: "small", color: "primary", variant: "outlined", sx: { mb: 1.5 } })),
|
|
140374
|
-
|
|
140375
|
-
React__default.createElement(
|
|
140376
|
-
|
|
140377
|
-
|
|
140378
|
-
|
|
140379
|
-
|
|
140380
|
-
|
|
140381
|
-
"
|
|
140382
|
-
|
|
140383
|
-
|
|
140384
|
-
|
|
140556
|
+
event.qrCheckinEnabled !== false ? (React__default.createElement(React__default.Fragment, null,
|
|
140557
|
+
React__default.createElement(Box$1, { sx: { display: "flex", alignItems: "center", mb: 0.75 } },
|
|
140558
|
+
React__default.createElement(AccessTime, { sx: {
|
|
140559
|
+
mr: 1.5,
|
|
140560
|
+
color: "text.secondary",
|
|
140561
|
+
fontSize: { xs: 18, sm: 20 },
|
|
140562
|
+
} }),
|
|
140563
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mr: 1 } },
|
|
140564
|
+
"Check-in v\u00E1lido: ",
|
|
140565
|
+
getCheckinSummary()),
|
|
140566
|
+
checkinWindow ? (React__default.createElement(Chip$1, { label: stateLabel[checkinWindow.state], size: "small", color: stateColor[checkinWindow.state], variant: "outlined" })) : null),
|
|
140567
|
+
getCheckinExplanation() ? (React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary" }, getCheckinExplanation())) : null)) : null)));
|
|
140385
140568
|
};
|
|
140386
140569
|
var EventDateTime$1 = React__default.memo(EventDateTime);
|
|
140387
140570
|
|
|
@@ -140912,7 +141095,9 @@ const EventActivities = ({ event, theme, formatDate, formatTime, canChangeActivi
|
|
|
140912
141095
|
} },
|
|
140913
141096
|
React__default.createElement(Typography$1, { variant: "h6", fontWeight: "medium" }, activity.title),
|
|
140914
141097
|
React__default.createElement(Box$1, { sx: { display: "flex", gap: 1, alignItems: "flex-start" } },
|
|
140915
|
-
!isModelEvent &&
|
|
141098
|
+
!isModelEvent &&
|
|
141099
|
+
onActivityQrOpen &&
|
|
141100
|
+
activity.qrCheckinEnabled !== false && (React__default.createElement(Box$1, { sx: {
|
|
140916
141101
|
display: "flex",
|
|
140917
141102
|
flexDirection: "column",
|
|
140918
141103
|
alignItems: "flex-end",
|
|
@@ -140969,6 +141154,7 @@ const EventActivities = ({ event, theme, formatDate, formatTime, canChangeActivi
|
|
|
140969
141154
|
? formatTime(activity.occurrences[0].endTime)
|
|
140970
141155
|
: "Não definido")))),
|
|
140971
141156
|
!isModelEvent &&
|
|
141157
|
+
activity.qrCheckinEnabled !== false &&
|
|
140972
141158
|
(() => {
|
|
140973
141159
|
var _a, _b, _c, _d;
|
|
140974
141160
|
const startMinutes = parseTimeToMinutes$2((_b = (_a = activity.occurrences) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.startTime);
|
|
@@ -141445,6 +141631,7 @@ const TerreiroSchema = objectType({
|
|
|
141445
141631
|
const ActivitySchema = objectType({
|
|
141446
141632
|
id: stringType(),
|
|
141447
141633
|
requiredForConfirmation: booleanType().optional(),
|
|
141634
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
141448
141635
|
qrReleaseOffsetMinutes: numberType().nullable().optional(),
|
|
141449
141636
|
qrCheckinGraceMinutes: numberType().nullable().optional(),
|
|
141450
141637
|
checkinStartWindowMinutes: numberType().nullable().optional(),
|
|
@@ -141471,6 +141658,7 @@ const EventDetailSchema = objectType({
|
|
|
141471
141658
|
name: stringType().optional(),
|
|
141472
141659
|
description: stringType().optional(),
|
|
141473
141660
|
isTemplate: booleanType().optional(),
|
|
141661
|
+
qrCheckinEnabled: booleanType().optional(),
|
|
141474
141662
|
qrReleaseOffsetMinutes: numberType().nullable().optional(),
|
|
141475
141663
|
qrCheckinGraceMinutes: numberType().nullable().optional(),
|
|
141476
141664
|
checkinStartWindowMinutes: numberType().nullable().optional(),
|
|
@@ -141998,7 +142186,9 @@ const EventDetailPage = (props) => {
|
|
|
141998
142186
|
}
|
|
141999
142187
|
const statusOptions = data.getStatusMenuOptions(data.event);
|
|
142000
142188
|
const currentMember = (_c = data.event.members) === null || _c === void 0 ? void 0 : _c.list.find((m) => m.id === data.currentMemberId);
|
|
142001
|
-
const
|
|
142189
|
+
const checkinEnabled = data.event.qrCheckinEnabled !== false;
|
|
142190
|
+
const canShowCheckinCta = checkinEnabled &&
|
|
142191
|
+
props.canScanCheckin &&
|
|
142002
142192
|
((_d = props.checkinWindow) === null || _d === void 0 ? void 0 : _d.state) === "active" &&
|
|
142003
142193
|
!(currentMember === null || currentMember === void 0 ? void 0 : currentMember.confirmedAt) &&
|
|
142004
142194
|
!props.isPersonalProfile;
|
|
@@ -142033,7 +142223,7 @@ const EventDetailPage = (props) => {
|
|
|
142033
142223
|
React__default.createElement(Stack$1, { spacing: LIST_GAP },
|
|
142034
142224
|
React__default.createElement(EventInfo$1, { event: data.event, canChangeStatus: props.canChangeStatus || false, canUseModel: props.canUseModel || false, statusOptions: statusOptions, onStatusChange: (status) => fns.handleChangeStatus(status), onUseModel: fns.handleUseModel, theme: theme }),
|
|
142035
142225
|
React__default.createElement(EventDateTime$1, { event: data.event, checkinWindow: props.checkinWindow, formatDate: data.formatDate, formatTime: data.formatTime, theme: theme }),
|
|
142036
|
-
props.canManageQr && (React__default.createElement(EventAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState, onCopyCode: fns.handleCopyCode })),
|
|
142226
|
+
props.canManageQr && checkinEnabled && (React__default.createElement(EventAttendanceQr, { attendanceQr: props.attendanceQr, onRefreshQrState: props.onRefreshQrState, onCopyCode: fns.handleCopyCode })),
|
|
142037
142227
|
props.canManageTickets && (React__default.createElement(EventPublicTickets$1, { onManageTickets: props.onManageTickets, theme: theme })),
|
|
142038
142228
|
data.event.address && (React__default.createElement(EventAddress$1, { event: data.event, theme: theme })),
|
|
142039
142229
|
data.event.activities && data.event.activities.count > 0 && (React__default.createElement(EventActivities$1, { event: data.event, theme: theme, formatDate: data.formatDate, formatTime: data.formatTime, activityAttendanceQrById: props.activityAttendanceQrById, canChangeActivityStatus: props.canChangeActivityStatus || false, getStatusMenuOptions: data.getActivityStatusMenuOptions, onChangeActivityStatus: fns.handleChangeActivityStatus, onBulkChangeActivityStatus: fns.handleBulkChangeActivityStatus, onActivityQrOpen: props.canManageQr ? setSelectedActivityQrId : undefined })),
|
|
@@ -142214,6 +142404,8 @@ const TicketVoucherPage = ({ isLoading, errorMessage, code, eventTitle, terreiro
|
|
|
142214
142404
|
|
|
142215
142405
|
const EventTicketingManagementPage = ({ eventName, shareUrl, terreiroShareUrl, published = false, publicTitle = "", maxTicketsPerEmail = 2, batches = [], holders = [], isSaving, saveError, checkInMessage, onSave, onExportCsv, onCheckIn, useChat = false, chat, canCheckIn = false, isCheckingIn = false, parseTicketQr, }) => {
|
|
142216
142406
|
var _a;
|
|
142407
|
+
const theme = useTheme$1();
|
|
142408
|
+
const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
|
|
142217
142409
|
const [title, setTitle] = useState(publicTitle);
|
|
142218
142410
|
const [isPublished, setIsPublished] = useState(published);
|
|
142219
142411
|
const [emailLimit, setEmailLimit] = useState(maxTicketsPerEmail);
|
|
@@ -142288,17 +142480,24 @@ const EventTicketingManagementPage = ({ eventName, shareUrl, terreiroShareUrl, p
|
|
|
142288
142480
|
React__default.createElement(CardContent$1, null,
|
|
142289
142481
|
React__default.createElement(Stack$1, { spacing: 2 },
|
|
142290
142482
|
React__default.createElement(Typography$1, { variant: "h6" }, "Check-in na porta"),
|
|
142291
|
-
React__default.createElement(Stack$1, { direction: "row", spacing: 1 },
|
|
142483
|
+
React__default.createElement(Stack$1, { direction: isMobile ? "column" : "row", spacing: 1, alignItems: isMobile ? "stretch" : "center" },
|
|
142292
142484
|
React__default.createElement(TextField$1, { label: "Codigo do ingresso", value: checkInCode, onChange: (event) => setCheckInCode(event.target.value), inputProps: { "data-testid": "ticketing-checkin-code" } }),
|
|
142293
142485
|
React__default.createElement(Button$1, { variant: "contained", onClick: () => onCheckIn === null || onCheckIn === void 0 ? void 0 : onCheckIn(checkInCode), "data-testid": "ticketing-checkin-submit" }, "Validar"),
|
|
142294
142486
|
canCheckIn ? (React__default.createElement(Button$1, { variant: "outlined", onClick: () => setIsScannerOpen(true), "data-testid": "ticketing-checkin-scan" }, "Escanear QR")) : null),
|
|
142295
142487
|
checkInMessage ? React__default.createElement(Alert$1, { severity: "success" }, checkInMessage) : null))),
|
|
142296
142488
|
React__default.createElement(Card$1, null,
|
|
142297
142489
|
React__default.createElement(CardContent$1, null,
|
|
142298
|
-
React__default.createElement(Stack$1, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { mb: 2 } },
|
|
142490
|
+
React__default.createElement(Stack$1, { direction: isMobile ? "column" : "row", justifyContent: "space-between", alignItems: isMobile ? "flex-start" : "center", spacing: 1, sx: { mb: 2 } },
|
|
142299
142491
|
React__default.createElement(Typography$1, { variant: "h6" }, "Titulares"),
|
|
142300
142492
|
React__default.createElement(Button$1, { onClick: onExportCsv, "data-testid": "ticketing-export-csv" }, "Exportar CSV")),
|
|
142301
|
-
React__default.createElement(
|
|
142493
|
+
isMobile ? (React__default.createElement(Stack$1, { divider: React__default.createElement(Box$1, { sx: { borderBottom: 1, borderColor: "divider" } }) }, holders.map((holder) => (React__default.createElement(Box$1, { key: holder.code, sx: { py: 1.25 } },
|
|
142494
|
+
React__default.createElement(Typography$1, { fontWeight: 600 }, holder.holderName),
|
|
142495
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
|
|
142496
|
+
holder.status,
|
|
142497
|
+
holder.holderEmail ? ` · ${holder.holderEmail}` : ""),
|
|
142498
|
+
React__default.createElement(Typography$1, { variant: "caption", color: "text.secondary" },
|
|
142499
|
+
holder.code,
|
|
142500
|
+
holder.batchName ? ` · ${holder.batchName}` : "")))))) : (React__default.createElement(Table$1, { size: "small" },
|
|
142302
142501
|
React__default.createElement(TableHead$1, null,
|
|
142303
142502
|
React__default.createElement(TableRow$1, null,
|
|
142304
142503
|
React__default.createElement(TableCell$1, null, "Codigo"),
|
|
@@ -142311,7 +142510,7 @@ const EventTicketingManagementPage = ({ eventName, shareUrl, terreiroShareUrl, p
|
|
|
142311
142510
|
React__default.createElement(TableCell$1, null, holder.holderName),
|
|
142312
142511
|
React__default.createElement(TableCell$1, null, holder.holderEmail),
|
|
142313
142512
|
React__default.createElement(TableCell$1, null, holder.batchName),
|
|
142314
|
-
React__default.createElement(TableCell$1, null, holder.status)))))))),
|
|
142513
|
+
React__default.createElement(TableCell$1, null, holder.status))))))))),
|
|
142315
142514
|
React__default.createElement(Dialog$1, { open: isScannerOpen, onClose: () => setIsScannerOpen(false), fullWidth: true, maxWidth: "sm" },
|
|
142316
142515
|
React__default.createElement(DialogTitle$1, null, "Escanear ingresso"),
|
|
142317
142516
|
React__default.createElement(DialogContent$1, { dividers: true },
|
|
@@ -143053,6 +143252,8 @@ const formatMinutesToHHMM$1 = (totalMinutes) => {
|
|
|
143053
143252
|
};
|
|
143054
143253
|
const getConfiguredCheckinWindow = (event) => {
|
|
143055
143254
|
var _a, _b, _c, _d, _e;
|
|
143255
|
+
if (event.qrCheckinEnabled === false)
|
|
143256
|
+
return null;
|
|
143056
143257
|
const startTime = (_c = (_b = (_a = event.occurrences) === null || _a === void 0 ? void 0 : _a.list) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.startTime;
|
|
143057
143258
|
const startMinutes = parseTimeToMinutes$1(startTime);
|
|
143058
143259
|
if (startMinutes === null)
|
|
@@ -143182,9 +143383,25 @@ const EventCard = ({ event, isLast, onSelect, onEdit, getEventTypeLabel, theme }
|
|
|
143182
143383
|
event.insumos.count,
|
|
143183
143384
|
")"))))));
|
|
143184
143385
|
};
|
|
143386
|
+
const EventCompactRow = ({ event, isLast, onSelect, onEdit, getEventTypeLabel }) => {
|
|
143387
|
+
var _a, _b;
|
|
143388
|
+
const occurrence = (_b = (_a = event.occurrences) === null || _a === void 0 ? void 0 : _a.list) === null || _b === void 0 ? void 0 : _b[0];
|
|
143389
|
+
const dateParts = compactListDateParts(occurrence === null || occurrence === void 0 ? void 0 : occurrence.date);
|
|
143390
|
+
const dateTime = formatEventDateTime(event);
|
|
143391
|
+
const rawTitle = event.title || event.name || "Sem título";
|
|
143392
|
+
const meta = [
|
|
143393
|
+
dateTime.time,
|
|
143394
|
+
event.type ? getEventTypeLabel(event.type) : null,
|
|
143395
|
+
]
|
|
143396
|
+
.filter(Boolean)
|
|
143397
|
+
.join(" · ");
|
|
143398
|
+
return (React__default.createElement(CompactListRow, { title: rawTitle, meta: meta, isLast: isLast, onClick: () => onSelect(event.id), leading: dateParts ? (React__default.createElement(CompactListDateBlock, { day: dateParts.day, month: dateParts.month })) : (React__default.createElement(CalendarToday, { fontSize: "small", color: "action" })), trailing: onEdit ? (React__default.createElement(IconButton$1, { "aria-label": `Editar ${rawTitle}`, onClick: () => onEdit(event.id), sx: { width: 44, height: 44 } },
|
|
143399
|
+
React__default.createElement(ArrowForwardIos, { sx: { width: 16 } }))) : undefined }));
|
|
143400
|
+
};
|
|
143185
143401
|
const EventsPage = (props) => {
|
|
143186
143402
|
var _a;
|
|
143187
143403
|
const theme = useTheme$1();
|
|
143404
|
+
const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
|
|
143188
143405
|
const { data, fns } = useEventsPage(props);
|
|
143189
143406
|
const periodInputValue = (_a = props.periodInputValue) !== null && _a !== void 0 ? _a : `${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, "0")}`;
|
|
143190
143407
|
// Memoized tab list for maintainability
|
|
@@ -143233,7 +143450,13 @@ const EventsPage = (props) => {
|
|
|
143233
143450
|
backgroundColor: theme.palette.background.default,
|
|
143234
143451
|
position: "relative",
|
|
143235
143452
|
} },
|
|
143236
|
-
React__default.createElement(PageHeader$2, { title: "Eventos", onBack: fns.handleBack, onAdd: fns.handleAddEvent, addLabel: "Adicionar", showAddButton: props.isAdmin,
|
|
143453
|
+
React__default.createElement(PageHeader$2, { title: "Eventos", onBack: fns.handleBack, onAdd: fns.handleAddEvent, addLabel: "Adicionar", showAddButton: props.isAdmin, hideAddButtonOnMobile: true, endAction: props.canExportParticipationReport &&
|
|
143454
|
+
props.onExportParticipationReport ? (React__default.createElement(IconButton$1, { "aria-label": "Exportar Participa\u00E7\u00E3o", onClick: props.onExportParticipationReport, disabled: props.isExportingParticipationReport, "data-testid": "events-export-participation-icon", sx: {
|
|
143455
|
+
display: { xs: "inline-flex", sm: "none" },
|
|
143456
|
+
width: 44,
|
|
143457
|
+
height: 44,
|
|
143458
|
+
} },
|
|
143459
|
+
React__default.createElement(Download, null))) : undefined, tabs: tabs.map((status) => ({
|
|
143237
143460
|
value: status,
|
|
143238
143461
|
label: data.getStatusLabel(status),
|
|
143239
143462
|
})), selectedTab: safeSelectedTab, onTabChange: (value) => fns.handleTabChange(value) }),
|
|
@@ -143249,7 +143472,7 @@ const EventsPage = (props) => {
|
|
|
143249
143472
|
React__default.createElement(Box$1, { sx: { width: { xs: "100%", sm: 260 } } },
|
|
143250
143473
|
React__default.createElement(LabeledMonthPicker, { label: "Per\u00EDodo", value: periodInputValue, onChange: (nextValue) => { var _a; return (_a = props.onPeriodInputChange) === null || _a === void 0 ? void 0 : _a.call(props, nextValue); }, "data-testid": "events-period-input" })),
|
|
143251
143474
|
props.canExportParticipationReport &&
|
|
143252
|
-
props.onExportParticipationReport && (React__default.createElement(Button$1, { variant: "outlined", startIcon: React__default.createElement(Download, null), onClick: props.onExportParticipationReport, disabled: props.isExportingParticipationReport, "data-testid": "events-export-participation-button" }, props.isExportingParticipationReport
|
|
143475
|
+
props.onExportParticipationReport && (React__default.createElement(Button$1, { variant: "outlined", startIcon: React__default.createElement(Download, null), onClick: props.onExportParticipationReport, disabled: props.isExportingParticipationReport, "data-testid": "events-export-participation-button", sx: { display: { xs: "none", sm: "inline-flex" } } }, props.isExportingParticipationReport
|
|
143253
143476
|
? "Exportando..."
|
|
143254
143477
|
: "Exportar Participação"))),
|
|
143255
143478
|
React__default.createElement(Box$1, { sx: Object.assign({ flex: 1, pb: LIST_CONTENT_BOTTOM_PADDING }, LIST_CARD_CONTENT_ROOT_SX) }, data.events.length === 0 ? (React__default.createElement(Box$1, { sx: {
|
|
@@ -143266,14 +143489,15 @@ const EventsPage = (props) => {
|
|
|
143266
143489
|
props.isAdmin && (React__default.createElement(React__default.Fragment, null,
|
|
143267
143490
|
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { mb: SECTION_GAP } }, "Toque no bot\u00E3o + para criar um novo evento"),
|
|
143268
143491
|
React__default.createElement(QuotaGuard, { feature: "events", behavior: "disable" },
|
|
143269
|
-
React__default.createElement(Button$1, { variant: "contained", startIcon: React__default.createElement(Add$1, null), onClick: fns.handleAddEvent }, "Criar evento")))))) : (React__default.createElement(
|
|
143270
|
-
|
|
143271
|
-
|
|
143272
|
-
|
|
143273
|
-
|
|
143274
|
-
|
|
143275
|
-
|
|
143276
|
-
|
|
143492
|
+
React__default.createElement(Button$1, { variant: "contained", startIcon: React__default.createElement(Add$1, null), onClick: fns.handleAddEvent }, "Criar evento")))))) : (isMobile ? (React__default.createElement(Box$1, { sx: {
|
|
143493
|
+
bgcolor: "background.paper",
|
|
143494
|
+
borderRadius: RADIUS.default,
|
|
143495
|
+
border: 1,
|
|
143496
|
+
borderColor: "divider",
|
|
143497
|
+
overflow: "hidden",
|
|
143498
|
+
} }, data.events.map((event, index) => (React__default.createElement(EventCompactRow, { key: event.id, event: event, isLast: index === data.events.length - 1, onSelect: fns.handleEventSelect, onEdit: props.onEventEdit ? fns.handleEventEdit : undefined, getEventTypeLabel: data.getEventTypeLabel }))))) : (React__default.createElement(Stack$1, { spacing: LIST_GAP }, data.events.map((event, index) => (React__default.createElement(EventCard, { key: event.id, event: event, isLast: index === data.events.length - 1, onSelect: fns.handleEventSelect, onEdit: fns.handleEventEdit, getEventTypeLabel: data.getEventTypeLabel, getStatusLabel: data.getStatusLabel, theme: theme }))))))),
|
|
143499
|
+
props.isAdmin && !props.hideAddFab && data.events.length > 0 && (React__default.createElement(QuotaGuard, { feature: "events", behavior: "hide" },
|
|
143500
|
+
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar evento", onClick: fns.handleAddEvent, sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.speedDial }) },
|
|
143277
143501
|
React__default.createElement(Add$1, null)))))));
|
|
143278
143502
|
};
|
|
143279
143503
|
|
|
@@ -144322,9 +144546,9 @@ const FinancialAccountsList = (props) => {
|
|
|
144322
144546
|
minHeight: "100vh",
|
|
144323
144547
|
backgroundColor: theme.palette.background.default,
|
|
144324
144548
|
position: "relative",
|
|
144325
|
-
pb:
|
|
144549
|
+
pb: 0,
|
|
144326
144550
|
} },
|
|
144327
|
-
React__default.createElement(PageHeader$2, { title: "Financeiro", onBack: props.onBack, onAdd: props.onAddAccount, addLabel: "Adicionar", showAddButton: true }),
|
|
144551
|
+
React__default.createElement(PageHeader$2, { title: "Financeiro", onBack: props.onBack, onAdd: props.onAddAccount, addLabel: "Adicionar", showAddButton: true, hideAddButtonOnMobile: true }),
|
|
144328
144552
|
React__default.createElement(Container$1, { maxWidth: "md", sx: PAGE_LIST_CONTAINER_SPACING },
|
|
144329
144553
|
showPeriodFilter && (React__default.createElement(Stack$1, { direction: { xs: "column", sm: "row" }, spacing: SECTION_GAP, alignItems: { xs: "flex-start", sm: "center" }, justifyContent: "space-between", sx: { pb: LIST_CONTROLS_MARGIN_BOTTOM } },
|
|
144330
144554
|
React__default.createElement(Stack$1, { spacing: 0.5 },
|
|
@@ -144366,12 +144590,7 @@ const FinancialAccountsList = (props) => {
|
|
|
144366
144590
|
} },
|
|
144367
144591
|
isEmpty && (React__default.createElement(EmptyState$2, { onAddAccount: props.onAddAccount, theme: theme })),
|
|
144368
144592
|
!isEmpty && accountsList)),
|
|
144369
|
-
isMobile && (React__default.createElement(Fab$1, { "data-testid": "financial-account-fab-add", color: "primary", "aria-label": "Adicionar Conta", onClick: props.onAddAccount, sx: {
|
|
144370
|
-
position: "fixed",
|
|
144371
|
-
bottom: 16,
|
|
144372
|
-
right: 16,
|
|
144373
|
-
zIndex: theme.zIndex.fab,
|
|
144374
|
-
} },
|
|
144593
|
+
isMobile && !isEmpty && (React__default.createElement(Fab$1, { "data-testid": "financial-account-fab-add", color: "primary", "aria-label": "Adicionar Conta", onClick: props.onAddAccount, sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.fab }) },
|
|
144375
144594
|
React__default.createElement(Add$1, null))))));
|
|
144376
144595
|
};
|
|
144377
144596
|
var FinancialAccountsList$1 = React__default.memo(FinancialAccountsList);
|
|
@@ -146013,11 +146232,11 @@ const IncomeListItem = React__default.memo(function IncomeListItem({ item, idx,
|
|
|
146013
146232
|
React__default.createElement(ListItemSecondaryAction$1, null,
|
|
146014
146233
|
React__default.createElement(Stack$1, { spacing: 1, alignItems: "flex-end" },
|
|
146015
146234
|
React__default.createElement(Typography$1, { variant: "subtitle1", sx: { fontWeight: 600 } }, formattedAmount),
|
|
146016
|
-
canConfirmTransactions && item.id && onToggleSettlementStatus ? (React__default.createElement(
|
|
146235
|
+
canConfirmTransactions && item.id && onToggleSettlementStatus ? (React__default.createElement(IconButton$1, { "aria-label": settlementActionLabel, disabled: Boolean(isUpdatingSettlementStatus), onClick: (event) => {
|
|
146017
146236
|
event.stopPropagation();
|
|
146018
146237
|
item.id &&
|
|
146019
146238
|
onToggleSettlementStatus(item.id, nextSettlementStatus);
|
|
146020
|
-
} },
|
|
146239
|
+
}, sx: { width: 44, height: 44 } }, settlementStatus === "PROJECTED" ? React__default.createElement(Check$1, null) : React__default.createElement(UndoIcon, null))) : null))),
|
|
146021
146240
|
!isLastItem && React__default.createElement(Divider$1, { component: "li", variant: "inset" })));
|
|
146022
146241
|
});
|
|
146023
146242
|
const IncomeListPage = ({ onBack, onAdd, onSelect, periodLabel, periodInputValue, periodInputMin, periodInputMax, showPeriodFilter, onPeriodInputChange, onResetToCurrentPeriod, canConfirmTransactions, isUpdatingSettlementStatus, onToggleSettlementStatus, data, }) => {
|
|
@@ -146054,14 +146273,18 @@ const IncomeListPage = ({ onBack, onAdd, onSelect, periodLabel, periodInputValue
|
|
|
146054
146273
|
*
|
|
146055
146274
|
* These numbers are numeric pixel values used for paddingTop on the scrollable container.
|
|
146056
146275
|
*/
|
|
146057
|
-
const headerHeight =
|
|
146276
|
+
const headerHeight = 80;
|
|
146058
146277
|
const shouldShowPeriodFilter = showPeriodFilter !== null && showPeriodFilter !== void 0 ? showPeriodFilter : Boolean(periodLabel ||
|
|
146059
146278
|
periodInputValue ||
|
|
146060
146279
|
onPeriodInputChange ||
|
|
146061
146280
|
onResetToCurrentPeriod);
|
|
146062
|
-
const filterHeight = shouldShowPeriodFilter ?
|
|
146063
|
-
const cardHeight =
|
|
146064
|
-
const contentOffset = filterHeight + cardHeight + 16;
|
|
146281
|
+
const filterHeight = shouldShowPeriodFilter ? 72 : 0;
|
|
146282
|
+
const cardHeight = 96;
|
|
146283
|
+
const contentOffset = isMobile ? 0 : filterHeight + cardHeight + 16;
|
|
146284
|
+
const amountLabel = totalAmountNumber.toLocaleString("pt-BR", {
|
|
146285
|
+
style: "currency",
|
|
146286
|
+
currency: "BRL",
|
|
146287
|
+
});
|
|
146065
146288
|
const incomes = useMemo(() => (Array.isArray(dataSource.incomes) ? dataSource.incomes : []), [dataSource.incomes]);
|
|
146066
146289
|
return (React__default.createElement(Box$1, { sx: {
|
|
146067
146290
|
display: "flex",
|
|
@@ -146071,8 +146294,10 @@ const IncomeListPage = ({ onBack, onAdd, onSelect, periodLabel, periodInputValue
|
|
|
146071
146294
|
position: "relative",
|
|
146072
146295
|
//pb: isMobile ? 2 : 0,
|
|
146073
146296
|
} },
|
|
146074
|
-
React__default.createElement(PageHeader$2, { title: "Entradas", onBack: onBack, onAdd: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), addLabel: "Adicionar", showAddButton: true }),
|
|
146075
|
-
React__default.createElement(
|
|
146297
|
+
React__default.createElement(PageHeader$2, { title: "Entradas", onBack: onBack, onAdd: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), addLabel: "Adicionar", showAddButton: true, hideAddButtonOnMobile: true }),
|
|
146298
|
+
isMobile && shouldShowPeriodFilter ? (React__default.createElement(Container$1, { maxWidth: "md", sx: { px: PAGE_LIST_CONTAINER_SPACING.px, pt: 1 } },
|
|
146299
|
+
React__default.createElement(FinanceMobilePeriodBar, { periodLabel: periodLabel || metricPeriodLabel, amountLabel: amountLabel, periodInputValue: periodInputValue, periodInputMin: periodInputMin, periodInputMax: periodInputMax, onPeriodInputChange: onPeriodInputChange, onResetToCurrentPeriod: onResetToCurrentPeriod, testIdPrefix: "income" }))) : null,
|
|
146300
|
+
!isMobile && (React__default.createElement(Box$1, { component: "section", "aria-hidden": true, sx: {
|
|
146076
146301
|
position: "fixed",
|
|
146077
146302
|
left: 0,
|
|
146078
146303
|
right: 0,
|
|
@@ -146109,10 +146334,10 @@ const IncomeListPage = ({ onBack, onAdd, onSelect, periodLabel, periodInputValue
|
|
|
146109
146334
|
style: "currency",
|
|
146110
146335
|
currency: "BRL",
|
|
146111
146336
|
})
|
|
146112
|
-
: `R$: ${amount}` })))),
|
|
146337
|
+
: `R$: ${amount}` }))))),
|
|
146113
146338
|
React__default.createElement(Container$1, { maxWidth: "md", sx: Object.assign(Object.assign({}, PAGE_LIST_CONTAINER_SPACING), {
|
|
146114
146339
|
// push content below the fixed header + card
|
|
146115
|
-
paddingTop: `${contentOffset}px`,
|
|
146340
|
+
paddingTop: isMobile ? undefined : `${contentOffset}px`, pb: LIST_CONTENT_BOTTOM_PADDING,
|
|
146116
146341
|
// ensure content can scroll beneath fixed card
|
|
146117
146342
|
position: "relative", zIndex: 0 }) },
|
|
146118
146343
|
incomes.length === 0 ? (React__default.createElement(Box$1, { sx: {
|
|
@@ -146136,13 +146361,8 @@ const IncomeListPage = ({ onBack, onAdd, onSelect, periodLabel, periodInputValue
|
|
|
146136
146361
|
var _a, _b;
|
|
146137
146362
|
return (React__default.createElement(IncomeListItem, { key: `${(_a = inc.date) !== null && _a !== void 0 ? _a : ""}-${idx}-${(_b = inc.amount) !== null && _b !== void 0 ? _b : ""}`, item: inc, idx: idx, isLastItem: idx === incomes.length - 1, formatCurrency: formatCurrency, formatDate: formatDate, getAccountName: getAccountName, onSelect: onSelect, canConfirmTransactions: canConfirmTransactions, isUpdatingSettlementStatus: isUpdatingSettlementStatus, onToggleSettlementStatus: onToggleSettlementStatus }));
|
|
146138
146363
|
}))),
|
|
146139
|
-
isMobile && (React__default.createElement(QuotaGuard, { feature: "incomes", behavior: "hide" },
|
|
146140
|
-
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar Entrada", title: "Adicionar Entrada", onClick: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), sx: {
|
|
146141
|
-
position: "fixed",
|
|
146142
|
-
bottom: 16,
|
|
146143
|
-
right: 16,
|
|
146144
|
-
zIndex: theme.zIndex.fab,
|
|
146145
|
-
} },
|
|
146364
|
+
isMobile && incomes.length > 0 && (React__default.createElement(QuotaGuard, { feature: "incomes", behavior: "hide" },
|
|
146365
|
+
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar Entrada", title: "Adicionar Entrada", onClick: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.fab }) },
|
|
146146
146366
|
React__default.createElement(Add$1, null)))))));
|
|
146147
146367
|
};
|
|
146148
146368
|
var IncomeListPage$1 = React__default.memo(IncomeListPage);
|
|
@@ -146637,12 +146857,12 @@ const OutcomeListItem = React__default.memo(function OutcomeListItem({ item, idx
|
|
|
146637
146857
|
React__default.createElement(ListItemSecondaryAction$1, null,
|
|
146638
146858
|
React__default.createElement(Stack$1, { spacing: 1, alignItems: "flex-end" },
|
|
146639
146859
|
React__default.createElement(Typography$1, { variant: "subtitle1", sx: { fontWeight: 600 } }, formattedAmount),
|
|
146640
|
-
canConfirmTransactions && item.id && onToggleSettlementStatus ? (React__default.createElement(
|
|
146860
|
+
canConfirmTransactions && item.id && onToggleSettlementStatus ? (React__default.createElement(IconButton$1, { "aria-label": settlementActionLabel, disabled: Boolean(isUpdatingSettlementStatus), onClick: (event) => {
|
|
146641
146861
|
event.stopPropagation();
|
|
146642
146862
|
if (!item.id)
|
|
146643
146863
|
return;
|
|
146644
146864
|
onToggleSettlementStatus(item.id, nextSettlementStatus);
|
|
146645
|
-
} },
|
|
146865
|
+
}, sx: { width: 44, height: 44 } }, settlementStatus === "PROJECTED" ? React__default.createElement(Check$1, null) : React__default.createElement(UndoIcon, null))) : null))),
|
|
146646
146866
|
!isLastItem && React__default.createElement(Divider$1, { component: "li" })));
|
|
146647
146867
|
});
|
|
146648
146868
|
const OutcomeListPage = ({ onSelect, onBack, onAdd, periodLabel, periodInputValue, periodInputMin, periodInputMax, showPeriodFilter, onPeriodInputChange, onResetToCurrentPeriod, canConfirmTransactions, isUpdatingSettlementStatus, onToggleSettlementStatus, data, }) => {
|
|
@@ -146665,14 +146885,18 @@ const OutcomeListPage = ({ onSelect, onBack, onAdd, periodLabel, periodInputValu
|
|
|
146665
146885
|
*
|
|
146666
146886
|
* These numbers are numeric pixel values used for paddingTop on the scrollable container.
|
|
146667
146887
|
*/
|
|
146668
|
-
const headerHeight =
|
|
146888
|
+
const headerHeight = 64;
|
|
146669
146889
|
const shouldShowPeriodFilter = showPeriodFilter !== null && showPeriodFilter !== void 0 ? showPeriodFilter : Boolean(periodLabel ||
|
|
146670
146890
|
periodInputValue ||
|
|
146671
146891
|
onPeriodInputChange ||
|
|
146672
146892
|
onResetToCurrentPeriod);
|
|
146673
|
-
const filterHeight = shouldShowPeriodFilter ?
|
|
146674
|
-
const cardHeight =
|
|
146675
|
-
const contentOffset = filterHeight + cardHeight + 16;
|
|
146893
|
+
const filterHeight = shouldShowPeriodFilter ? 72 : 0;
|
|
146894
|
+
const cardHeight = 96;
|
|
146895
|
+
const contentOffset = isMobile ? 0 : filterHeight + cardHeight + 16;
|
|
146896
|
+
const amountLabel = totalAmount.toLocaleString("pt-BR", {
|
|
146897
|
+
style: "currency",
|
|
146898
|
+
currency: "BRL",
|
|
146899
|
+
});
|
|
146676
146900
|
const outcomes = useMemo(() => (Array.isArray(dataSource.outcomes) ? dataSource.outcomes : []), [dataSource.outcomes]);
|
|
146677
146901
|
return (React__default.createElement(Box$1, { sx: {
|
|
146678
146902
|
display: "flex",
|
|
@@ -146680,10 +146904,12 @@ const OutcomeListPage = ({ onSelect, onBack, onAdd, periodLabel, periodInputValu
|
|
|
146680
146904
|
minHeight: "100vh",
|
|
146681
146905
|
backgroundColor: theme.palette.background.default,
|
|
146682
146906
|
position: "relative",
|
|
146683
|
-
pb:
|
|
146907
|
+
pb: 0,
|
|
146684
146908
|
} },
|
|
146685
|
-
React__default.createElement(PageHeader$2, { title: "Sa\u00EDdas", onBack: onBack, onAdd: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), addLabel: "Adicionar", showAddButton: true }),
|
|
146686
|
-
React__default.createElement(
|
|
146909
|
+
React__default.createElement(PageHeader$2, { title: "Sa\u00EDdas", onBack: onBack, onAdd: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), addLabel: "Adicionar", showAddButton: true, hideAddButtonOnMobile: true }),
|
|
146910
|
+
isMobile && shouldShowPeriodFilter ? (React__default.createElement(Container$1, { maxWidth: "md", sx: { px: PAGE_LIST_CONTAINER_SPACING.px, pt: 1 } },
|
|
146911
|
+
React__default.createElement(FinanceMobilePeriodBar, { periodLabel: periodLabel || "-", amountLabel: amountLabel, periodInputValue: periodInputValue, periodInputMin: periodInputMin, periodInputMax: periodInputMax, onPeriodInputChange: onPeriodInputChange, onResetToCurrentPeriod: onResetToCurrentPeriod, testIdPrefix: "outcome" }))) : null,
|
|
146912
|
+
!isMobile && (React__default.createElement(Box$1, { component: "section", "aria-hidden": true, sx: {
|
|
146687
146913
|
position: "fixed",
|
|
146688
146914
|
left: 0,
|
|
146689
146915
|
right: 0,
|
|
@@ -146719,10 +146945,10 @@ const OutcomeListPage = ({ onSelect, onBack, onAdd, periodLabel, periodInputValu
|
|
|
146719
146945
|
style: "currency",
|
|
146720
146946
|
currency: "BRL",
|
|
146721
146947
|
})
|
|
146722
|
-
: `R$: ${amount}` })))),
|
|
146948
|
+
: `R$: ${amount}` }))))),
|
|
146723
146949
|
React__default.createElement(Container$1, { maxWidth: "md", sx: Object.assign(Object.assign({}, PAGE_LIST_CONTAINER_SPACING), {
|
|
146724
146950
|
// push content below the fixed header + card
|
|
146725
|
-
paddingTop: `${contentOffset}px`,
|
|
146951
|
+
paddingTop: isMobile ? undefined : `${contentOffset}px`, pb: LIST_CONTENT_BOTTOM_PADDING,
|
|
146726
146952
|
// ensure content can scroll beneath fixed card
|
|
146727
146953
|
position: "relative", zIndex: 0 }) },
|
|
146728
146954
|
outcomes.length === 0 ? (React__default.createElement(Box$1, { sx: {
|
|
@@ -146746,13 +146972,8 @@ const OutcomeListPage = ({ onSelect, onBack, onAdd, periodLabel, periodInputValu
|
|
|
146746
146972
|
var _a, _b;
|
|
146747
146973
|
return (React__default.createElement(OutcomeListItem, { key: `${(_a = out.date) !== null && _a !== void 0 ? _a : ""}-${idx}-${(_b = out.amount) !== null && _b !== void 0 ? _b : ""}`, item: out, idx: idx, isLastItem: idx === outcomes.length - 1, formatCurrency: formatCurrency, formatDate: formatDate, getAccountName: getAccountName, onSelect: onSelect, canConfirmTransactions: canConfirmTransactions, isUpdatingSettlementStatus: isUpdatingSettlementStatus, onToggleSettlementStatus: onToggleSettlementStatus }));
|
|
146748
146974
|
}))),
|
|
146749
|
-
isMobile && (React__default.createElement(QuotaGuard, { feature: "outcomes", behavior: "hide" },
|
|
146750
|
-
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar Sa\u00EDda", title: "Adicionar Sa\u00EDda", onClick: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), sx: {
|
|
146751
|
-
position: "fixed",
|
|
146752
|
-
bottom: 16,
|
|
146753
|
-
right: 16,
|
|
146754
|
-
zIndex: theme.zIndex.fab,
|
|
146755
|
-
} },
|
|
146975
|
+
isMobile && outcomes.length > 0 && (React__default.createElement(QuotaGuard, { feature: "outcomes", behavior: "hide" },
|
|
146976
|
+
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar Sa\u00EDda", title: "Adicionar Sa\u00EDda", onClick: onAdd !== null && onAdd !== void 0 ? onAdd : (() => { }), sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.fab }) },
|
|
146756
146977
|
React__default.createElement(Add$1, null)))))));
|
|
146757
146978
|
};
|
|
146758
146979
|
var OutcomeListPage$1 = React__default.memo(OutcomeListPage);
|
|
@@ -153249,6 +153470,8 @@ const formatMinutesToHHMM = (totalMinutes) => {
|
|
|
153249
153470
|
};
|
|
153250
153471
|
const getCheckinWindowRange = (event) => {
|
|
153251
153472
|
var _a, _b;
|
|
153473
|
+
if (event.qrCheckinEnabled === false)
|
|
153474
|
+
return null;
|
|
153252
153475
|
const startMinutes = parseTimeToMinutes(event.time);
|
|
153253
153476
|
if (startMinutes === null)
|
|
153254
153477
|
return null;
|
|
@@ -156824,24 +157047,23 @@ const AttendanceInsightsMobileList = ({ mediums }) => {
|
|
|
156824
157047
|
return (React__default.createElement(Stack$1, { spacing: LIST_GAP }, mediums.map((medium) => {
|
|
156825
157048
|
var _a;
|
|
156826
157049
|
return (React__default.createElement(Paper$1, { key: medium.mediumId, variant: "outlined", sx: LIST_CARD_CONTENT_SX },
|
|
156827
|
-
React__default.createElement(Stack$1, { spacing: LIST_GAP },
|
|
156828
|
-
React__default.createElement(
|
|
156829
|
-
|
|
156830
|
-
React__default.createElement(Typography$1, { fontWeight: 600, noWrap: true }, medium.mediumName)
|
|
156831
|
-
|
|
156832
|
-
|
|
156833
|
-
|
|
156834
|
-
|
|
156835
|
-
|
|
156836
|
-
|
|
156837
|
-
|
|
156838
|
-
"
|
|
156839
|
-
medium.
|
|
156840
|
-
"
|
|
157050
|
+
React__default.createElement(Stack$1, { direction: "row", spacing: LIST_GAP, alignItems: "center" },
|
|
157051
|
+
React__default.createElement(Avatar$1, { src: (_a = medium.mediumAvatarUrl) !== null && _a !== void 0 ? _a : undefined, alt: medium.mediumName, sx: { width: 32, height: 32 } }, medium.mediumName.charAt(0).toUpperCase()),
|
|
157052
|
+
React__default.createElement(Stack$1, { sx: { minWidth: 0 } },
|
|
157053
|
+
React__default.createElement(Typography$1, { fontWeight: 600, noWrap: true }, medium.mediumName),
|
|
157054
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
|
|
157055
|
+
medium.invites,
|
|
157056
|
+
" conv. \u00B7 ",
|
|
157057
|
+
medium.confirmed,
|
|
157058
|
+
" conf."),
|
|
157059
|
+
React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary" },
|
|
157060
|
+
medium.present,
|
|
157061
|
+
" pres. \u00B7 ",
|
|
157062
|
+
medium.absent,
|
|
157063
|
+
" aus. \u00B7",
|
|
156841
157064
|
" ",
|
|
156842
157065
|
medium.presenceRate,
|
|
156843
|
-
"%
|
|
156844
|
-
medium.absenceGap)))));
|
|
157066
|
+
"%")))));
|
|
156845
157067
|
})));
|
|
156846
157068
|
};
|
|
156847
157069
|
|
|
@@ -158395,9 +158617,19 @@ const sortOptions = [
|
|
|
158395
158617
|
{ value: "createdAt_desc", label: "Mais recentes" },
|
|
158396
158618
|
{ value: "createdAt_asc", label: "Mais antigos" },
|
|
158397
158619
|
];
|
|
158620
|
+
const InventoryCompactRow = ({ item, isLast, onSelect }) => {
|
|
158621
|
+
var _a, _b, _c, _d;
|
|
158622
|
+
const statusLabel = (_a = statusMap[item.status]) === null || _a === void 0 ? void 0 : _a.label;
|
|
158623
|
+
const meta = [item.location, statusLabel].filter(Boolean).join(" · ");
|
|
158624
|
+
return (React__default.createElement(CompactListRow, { title: item.name, meta: meta || undefined, isLast: isLast, testId: `inventory-item-${item.id}`, onClick: () => onSelect(item.id), leading: React__default.createElement(Avatar$1, { src: (_b = item.imageUrl) !== null && _b !== void 0 ? _b : undefined, alt: "", sx: { width: 40, height: 40 } }, ((_d = (_c = item.name) === null || _c === void 0 ? void 0 : _c.charAt(0)) !== null && _d !== void 0 ? _d : "").toUpperCase()), trailing: React__default.createElement(Typography$1, { variant: "body2", fontWeight: 600, sx: { whiteSpace: "nowrap" } },
|
|
158625
|
+
item.quantity,
|
|
158626
|
+
" ",
|
|
158627
|
+
item.unit) }));
|
|
158628
|
+
};
|
|
158398
158629
|
// --- Main Inventory List Page ---
|
|
158399
158630
|
const InventoryListPage = (props) => {
|
|
158400
158631
|
const theme = useTheme$1();
|
|
158632
|
+
const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
|
|
158401
158633
|
const { data, fns } = useInventoryListPage(props);
|
|
158402
158634
|
const drawerValue = {
|
|
158403
158635
|
status: data.selectedStatus,
|
|
@@ -158421,7 +158653,7 @@ const InventoryListPage = (props) => {
|
|
|
158421
158653
|
backgroundColor: theme.palette.background.default,
|
|
158422
158654
|
position: "relative",
|
|
158423
158655
|
}, "data-testid": "inventory-list-page", "data-cy": "inventory-list-page" },
|
|
158424
|
-
React__default.createElement(PageHeader$2, { title: "Invent\u00E1rio", onBack: fns.handleBack, showAddButton: data.canAdd, onAdd: data.canAdd ? fns.handleAddItem : undefined, addLabel: "Adicionar" }),
|
|
158656
|
+
React__default.createElement(PageHeader$2, { title: "Invent\u00E1rio", onBack: fns.handleBack, showAddButton: data.canAdd, hideAddButtonOnMobile: true, onAdd: data.canAdd ? fns.handleAddItem : undefined, addLabel: "Adicionar" }),
|
|
158425
158657
|
React__default.createElement(Container$1, { maxWidth: "md", sx: PAGE_LIST_CONTAINER_SPACING },
|
|
158426
158658
|
React__default.createElement(Box$1, { sx: {
|
|
158427
158659
|
display: "flex",
|
|
@@ -158463,8 +158695,13 @@ const InventoryListPage = (props) => {
|
|
|
158463
158695
|
pb: LIST_CONTENT_BOTTOM_PADDING,
|
|
158464
158696
|
}, "data-testid": "inventory-list-content", "data-cy": "inventory-list-content" }, data.items.length === 0 ? (React__default.createElement(InventoryEmptyState, { hasActiveFilters: data.hasActiveFilters, onClearFilters: data.hasActiveFilters ? fns.handleClearFilters : undefined, onAdd: data.canAdd && !data.hasActiveFilters
|
|
158465
158697
|
? fns.handleAddItem
|
|
158466
|
-
: undefined })) : (React__default.createElement(Fade$1, { in: true },
|
|
158467
|
-
|
|
158698
|
+
: undefined })) : (React__default.createElement(Fade$1, { in: true }, isMobile ? (React__default.createElement(Box$1, { sx: {
|
|
158699
|
+
bgcolor: "background.paper",
|
|
158700
|
+
borderRadius: RADIUS.default,
|
|
158701
|
+
border: 1,
|
|
158702
|
+
borderColor: "divider",
|
|
158703
|
+
overflow: "hidden",
|
|
158704
|
+
} }, data.items.map((item, index) => (React__default.createElement(InventoryCompactRow, { key: item.id, item: item, isLast: index === data.items.length - 1, onSelect: fns.handleItemSelect }))))) : (React__default.createElement(Stack$1, { spacing: LIST_GAP }, data.items.map((item, index) => (React__default.createElement(InventoryItemCard, { key: item.id, item: item, isLast: index === data.items.length - 1, onSelect: fns.handleItemSelect, onEdit: fns.handleItemEdit }))))))))),
|
|
158468
158705
|
React__default.createElement(FilterDrawer, { open: data.isFilterDrawerOpen, onClose: fns.handleCloseFilterDrawer, onOpen: fns.handleToggleFilterDrawer, value: drawerValue, emptyValue: {
|
|
158469
158706
|
status: "all",
|
|
158470
158707
|
createdAtSort: data.createdAtSort,
|
|
@@ -158478,7 +158715,9 @@ const InventoryListPage = (props) => {
|
|
|
158478
158715
|
React__default.createElement(FormControl$1, { fullWidth: true, size: "small" },
|
|
158479
158716
|
React__default.createElement(InputLabel$1, { id: "inventory-filter-sort-label" }, "Ordena\u00E7\u00E3o"),
|
|
158480
158717
|
React__default.createElement(Select$1, { labelId: "inventory-filter-sort-label", value: draft.createdAtSort, label: "Ordena\u00E7\u00E3o", onChange: (event) => setDraft(Object.assign(Object.assign({}, draft), { createdAtSort: event.target
|
|
158481
|
-
.value })), inputProps: { "data-testid": "inventory-created-at-sort" } }, sortOptions.map((option) => (React__default.createElement(MenuItem$1, { key: option.value, value: option.value }, option.label))))))))
|
|
158718
|
+
.value })), inputProps: { "data-testid": "inventory-created-at-sort" } }, sortOptions.map((option) => (React__default.createElement(MenuItem$1, { key: option.value, value: option.value }, option.label)))))))),
|
|
158719
|
+
data.canAdd && data.items.length > 0 && (React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar item", onClick: fns.handleAddItem, sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.speedDial }) },
|
|
158720
|
+
React__default.createElement(Add$1, null)))));
|
|
158482
158721
|
};
|
|
158483
158722
|
|
|
158484
158723
|
const DetailSectionCard = ({ icon, title, children, theme, }) => {
|
|
@@ -161956,7 +162195,7 @@ objectType({
|
|
|
161956
162195
|
const STATUS_TAB_LABELS = {
|
|
161957
162196
|
ALL: "Todos",
|
|
161958
162197
|
ACTIVE: "Ativos",
|
|
161959
|
-
WAITING_APPROVAL: "Aguardando",
|
|
162198
|
+
WAITING_APPROVAL: "Aguardando aprovação",
|
|
161960
162199
|
INACTIVE: "Inativos",
|
|
161961
162200
|
OTHER: "Outros",
|
|
161962
162201
|
};
|
|
@@ -162296,7 +162535,6 @@ const MediumListItem = ({ medium, onSelect, theme }) => {
|
|
|
162296
162535
|
const MediumListPage = (props) => {
|
|
162297
162536
|
var _a;
|
|
162298
162537
|
const theme = useTheme$1();
|
|
162299
|
-
const isCompactScreen = useMediaQuery(theme.breakpoints.down("sm"));
|
|
162300
162538
|
const { data, fns } = useMediumListPage(props);
|
|
162301
162539
|
// Sort menu state
|
|
162302
162540
|
const [sortAnchorEl, setSortAnchorEl] = useState(null);
|
|
@@ -162313,17 +162551,12 @@ const MediumListPage = (props) => {
|
|
|
162313
162551
|
};
|
|
162314
162552
|
// Status tabs for PageHeader
|
|
162315
162553
|
const statusTabs = data.showStatusTabs
|
|
162316
|
-
? data.statusTabs.map((tab) => {
|
|
162317
|
-
|
|
162318
|
-
|
|
162319
|
-
|
|
162320
|
-
|
|
162321
|
-
|
|
162322
|
-
label: tab.value === "WAITING_APPROVAL" && tab.count > 0
|
|
162323
|
-
? `${compactLabel} (${tab.count})`
|
|
162324
|
-
: compactLabel,
|
|
162325
|
-
};
|
|
162326
|
-
})
|
|
162554
|
+
? data.statusTabs.map((tab) => ({
|
|
162555
|
+
value: tab.value,
|
|
162556
|
+
label: tab.value === "WAITING_APPROVAL" && tab.count > 0
|
|
162557
|
+
? `${tab.label} (${tab.count})`
|
|
162558
|
+
: tab.label,
|
|
162559
|
+
}))
|
|
162327
162560
|
: undefined;
|
|
162328
162561
|
// Guard clause for loading state - show skeleton
|
|
162329
162562
|
if (data.isLoading) {
|
|
@@ -162333,7 +162566,7 @@ const MediumListPage = (props) => {
|
|
|
162333
162566
|
minHeight: "100vh",
|
|
162334
162567
|
backgroundColor: theme.palette.background.default,
|
|
162335
162568
|
} },
|
|
162336
|
-
React__default.createElement(PageHeader$2, { title: "M\u00E9diuns", onBack: fns.handleBack, onAdd: fns.handleAddMedium, addLabel: "Adicionar", showAddButton: true }),
|
|
162569
|
+
React__default.createElement(PageHeader$2, { title: "M\u00E9diuns", onBack: fns.handleBack, onAdd: fns.handleAddMedium, addLabel: "Adicionar", showAddButton: true, hideAddButtonOnMobile: true }),
|
|
162337
162570
|
React__default.createElement(MediumListSkeleton, { count: 6 })));
|
|
162338
162571
|
}
|
|
162339
162572
|
return (React__default.createElement(Box$1, { sx: {
|
|
@@ -162342,12 +162575,12 @@ const MediumListPage = (props) => {
|
|
|
162342
162575
|
minHeight: "100vh",
|
|
162343
162576
|
backgroundColor: theme.palette.background.default,
|
|
162344
162577
|
} },
|
|
162345
|
-
React__default.createElement(PageHeader$2, { title: "M\u00E9diuns", onBack: fns.handleBack, onAdd: fns.handleAddMedium, addLabel: "Adicionar", showAddButton: true, tabs: statusTabs, selectedTab: data.selectedStatusTab, onTabChange: (value) => fns.handleStatusTabChange(value) }),
|
|
162578
|
+
React__default.createElement(PageHeader$2, { title: "M\u00E9diuns", onBack: fns.handleBack, onAdd: fns.handleAddMedium, addLabel: "Adicionar", showAddButton: true, hideAddButtonOnMobile: true, tabs: statusTabs, selectedTab: data.selectedStatusTab, onTabChange: (value) => fns.handleStatusTabChange(value) }),
|
|
162346
162579
|
React__default.createElement(Container$1, { maxWidth: "md", sx: PAGE_LIST_CONTAINER_SPACING },
|
|
162347
162580
|
data.showSearch && (React__default.createElement(Box$1, { sx: {
|
|
162348
162581
|
display: "flex",
|
|
162349
|
-
flexDirection:
|
|
162350
|
-
alignItems: "
|
|
162582
|
+
flexDirection: "row",
|
|
162583
|
+
alignItems: "center",
|
|
162351
162584
|
gap: 1,
|
|
162352
162585
|
mb: 2,
|
|
162353
162586
|
} },
|
|
@@ -162360,7 +162593,7 @@ const MediumListPage = (props) => {
|
|
|
162360
162593
|
"aria-label": "Buscar médium",
|
|
162361
162594
|
sx: {
|
|
162362
162595
|
borderRadius: RADIUS.default,
|
|
162363
|
-
minHeight:
|
|
162596
|
+
minHeight: 44,
|
|
162364
162597
|
backgroundColor: theme.palette.background.paper,
|
|
162365
162598
|
"& .MuiInputBase-input": {
|
|
162366
162599
|
fontSize: { xs: "0.9rem", sm: "1rem" },
|
|
@@ -162371,9 +162604,9 @@ const MediumListPage = (props) => {
|
|
|
162371
162604
|
},
|
|
162372
162605
|
} }),
|
|
162373
162606
|
data.showSort && (React__default.createElement(IconButton$1, { onClick: handleSortMenuOpen, sx: {
|
|
162374
|
-
|
|
162375
|
-
width:
|
|
162376
|
-
height:
|
|
162607
|
+
flexShrink: 0,
|
|
162608
|
+
width: 44,
|
|
162609
|
+
height: 44,
|
|
162377
162610
|
backgroundColor: theme.palette.background.paper,
|
|
162378
162611
|
borderRadius: RADIUS.default,
|
|
162379
162612
|
border: `1px solid ${theme.palette.divider}`,
|
|
@@ -162448,19 +162681,9 @@ const MediumListPage = (props) => {
|
|
|
162448
162681
|
vertical: "top",
|
|
162449
162682
|
horizontal: "right",
|
|
162450
162683
|
} }, data.sortOptions.map((option) => (React__default.createElement(MenuItem$1, { key: option.value, onClick: () => handleSortSelect(option.value), selected: option.value === data.sortOption }, option.label)))),
|
|
162451
|
-
React__default.createElement(QuotaGuard, { feature: "mediums", behavior: "hide" },
|
|
162452
|
-
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar", onClick: fns.handleAddMedium, sx: {
|
|
162453
|
-
|
|
162454
|
-
position: "fixed",
|
|
162455
|
-
bottom: {
|
|
162456
|
-
xs: "calc(16px + env(safe-area-inset-bottom, 0px))",
|
|
162457
|
-
sm: 24,
|
|
162458
|
-
md: 32,
|
|
162459
|
-
},
|
|
162460
|
-
right: { xs: 16, sm: 24, md: 32 },
|
|
162461
|
-
boxShadow: 6,
|
|
162462
|
-
} },
|
|
162463
|
-
React__default.createElement(BarcodeIcon, null))))));
|
|
162684
|
+
data.filteredMediums.length > 0 && (React__default.createElement(QuotaGuard, { feature: "mediums", behavior: "hide" },
|
|
162685
|
+
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Adicionar", onClick: fns.handleAddMedium, sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.speedDial }) },
|
|
162686
|
+
React__default.createElement(BarcodeIcon, null)))))));
|
|
162464
162687
|
};
|
|
162465
162688
|
|
|
162466
162689
|
const sanitizeBirthDate = (date) => {
|
|
@@ -173742,9 +173965,19 @@ const transformToRitual = (bath, originLabel, statusLabel) => {
|
|
|
173742
173965
|
scheduledCount: (_d = bath.scheduledCount) !== null && _d !== void 0 ? _d : 0,
|
|
173743
173966
|
};
|
|
173744
173967
|
};
|
|
173968
|
+
const RitualBathCompactRow = ({ bath, isLast, originLabel, statusLabel, onSelect, onSchedule }) => {
|
|
173969
|
+
var _a, _b;
|
|
173970
|
+
const meta = [(_a = bath.category) === null || _a === void 0 ? void 0 : _a.name, originLabel, statusLabel]
|
|
173971
|
+
.filter(Boolean)
|
|
173972
|
+
.join(" · ");
|
|
173973
|
+
return (React__default.createElement(CompactListRow, { title: bath.title, meta: meta, isLast: isLast, onClick: () => onSelect(bath.id), leading: React__default.createElement(Avatar$1, { src: (_b = bath.imageUrl) !== null && _b !== void 0 ? _b : undefined, alt: "", sx: { width: 40, height: 40 } },
|
|
173974
|
+
React__default.createElement(Spa, { fontSize: "small" })), trailing: onSchedule ? (React__default.createElement(IconButton$1, { "aria-label": `Agendar ${bath.title}`, onClick: () => onSchedule(bath.id), sx: { width: 44, height: 44 } },
|
|
173975
|
+
React__default.createElement(CalendarMonth$1, null))) : undefined }));
|
|
173976
|
+
};
|
|
173745
173977
|
const RitualBathListPage = (props) => {
|
|
173746
173978
|
var _a, _b, _c;
|
|
173747
173979
|
const theme = useTheme$1();
|
|
173980
|
+
const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
|
|
173748
173981
|
const { data, fns } = useRitualBathListPage(props);
|
|
173749
173982
|
const showOriginFilter = data.activeTab === "all" && !data.isTerreiro;
|
|
173750
173983
|
const drawerValue = Object.assign(Object.assign({}, (data.filters.categoryId !== undefined
|
|
@@ -173774,7 +174007,7 @@ const RitualBathListPage = (props) => {
|
|
|
173774
174007
|
backgroundColor: theme.palette.background.default,
|
|
173775
174008
|
position: "relative",
|
|
173776
174009
|
} },
|
|
173777
|
-
React__default.createElement(PageHeader$2, { title: "Banhos Rituais", onBack: fns.handleBack, onAdd: fns.handleBathCreate, addLabel: "Adicionar", showAddButton: data.isAdmin, tabs: tabs, selectedTab: data.activeTab, onTabChange: (value) => fns.handleTabChange(value) }),
|
|
174010
|
+
React__default.createElement(PageHeader$2, { title: "Banhos Rituais", onBack: fns.handleBack, onAdd: fns.handleBathCreate, addLabel: "Adicionar", showAddButton: data.isAdmin, hideAddButtonOnMobile: true, tabs: tabs, selectedTab: data.activeTab, onTabChange: (value) => fns.handleTabChange(value) }),
|
|
173778
174011
|
React__default.createElement(Container$1, { maxWidth: "md", sx: Object.assign(Object.assign({}, PAGE_LIST_CONTAINER_SPACING), { flex: 1 }) },
|
|
173779
174012
|
React__default.createElement(Box$1, { sx: {
|
|
173780
174013
|
display: "flex",
|
|
@@ -173843,8 +174076,14 @@ const RitualBathListPage = (props) => {
|
|
|
173843
174076
|
data.hasActiveFilters ? (React__default.createElement(Button$1, { variant: "outlined", onClick: fns.handleClearFilters, startIcon: React__default.createElement(Clear$1, null) }, "Limpar filtros")) : (data.isAdmin && (React__default.createElement(Button$1, { variant: "contained", startIcon: React__default.createElement(Add$1, null), onClick: fns.handleBathCreate }, "Criar banho ritual"))))),
|
|
173844
174077
|
!data.isLoading && !data.error && data.ritualBaths.length > 0 && (React__default.createElement(Box$1, { sx: { pb: LIST_CONTENT_BOTTOM_PADDING } },
|
|
173845
174078
|
React__default.createElement(InfiniteScroll, { hasNextPage: data.hasNextPage, isFetchingNextPage: data.isFetchingNextPage, onLoadMore: fns.handleLoadMore, threshold: 200 },
|
|
173846
|
-
|
|
173847
|
-
|
|
174079
|
+
isMobile ? (React__default.createElement(Box$1, { sx: {
|
|
174080
|
+
bgcolor: "background.paper",
|
|
174081
|
+
borderRadius: RADIUS.default,
|
|
174082
|
+
border: 1,
|
|
174083
|
+
borderColor: "divider",
|
|
174084
|
+
overflow: "hidden",
|
|
174085
|
+
} }, data.ritualBaths.map((bath, index) => (React__default.createElement(RitualBathCompactRow, { key: bath.id, bath: bath, isLast: index === data.ritualBaths.length - 1, originLabel: fns.getOriginLabel(bath.origin), statusLabel: fns.getStatusLabel(bath.status), onSelect: fns.handleBathSelect, onSchedule: fns.handleScheduleBath }))))) : (React__default.createElement(Grid$1, { container: true, spacing: LIST_GAP }, data.ritualBaths.map((bath) => (React__default.createElement(Grid$1, { item: true, xs: 12, key: bath.id },
|
|
174086
|
+
React__default.createElement(RitualCard, { ritual: transformToRitual(bath, fns.getOriginLabel(bath.origin), fns.getStatusLabel(bath.status)), onClick: () => fns.handleBathSelect(bath.id), onSchedule: fns.handleScheduleBath })))))),
|
|
173848
174087
|
data.isFetchingNextPage && (React__default.createElement(Box$1, { sx: {
|
|
173849
174088
|
display: "flex",
|
|
173850
174089
|
justifyContent: "center",
|
|
@@ -173853,13 +174092,8 @@ const RitualBathListPage = (props) => {
|
|
|
173853
174092
|
} },
|
|
173854
174093
|
React__default.createElement(CircularProgress$1, { size: 28 }))),
|
|
173855
174094
|
!data.hasNextPage && data.ritualBaths.length > 0 && (React__default.createElement(Typography$1, { variant: "body2", color: "text.secondary", sx: { textAlign: "center", py: 2 } }, "Todos os banhos foram carregados")))))),
|
|
173856
|
-
data.isAdmin && (React__default.createElement(QuotaGuard, { feature: "baths", behavior: "hide" },
|
|
173857
|
-
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Criar banho ritual", onClick: fns.handleBathCreate, sx: {
|
|
173858
|
-
position: "fixed",
|
|
173859
|
-
bottom: { xs: 16, sm: 24 },
|
|
173860
|
-
right: { xs: 16, sm: 24 },
|
|
173861
|
-
zIndex: theme.zIndex.speedDial,
|
|
173862
|
-
} },
|
|
174095
|
+
data.isAdmin && data.ritualBaths.length > 0 && (React__default.createElement(QuotaGuard, { feature: "baths", behavior: "hide" },
|
|
174096
|
+
React__default.createElement(Fab$1, { color: "primary", "aria-label": "Criar banho ritual", onClick: fns.handleBathCreate, sx: Object.assign(Object.assign({}, LIST_FAB_POSITION_SX), { zIndex: theme.zIndex.speedDial }) },
|
|
173863
174097
|
React__default.createElement(Add$1, null)))),
|
|
173864
174098
|
React__default.createElement(FilterDrawer, { open: data.isFilterDrawerOpen, onClose: fns.handleCloseFilterDrawer, onOpen: fns.handleToggleFilterDrawer, value: drawerValue, emptyValue: {}, countActiveFilters: countRitualBathDrawerFilters, "data-testid": "ritual-bath-filter-drawer", onFilter: (filters) => {
|
|
173865
174099
|
fns.handleCategoryFilter(filters.categoryId);
|
|
@@ -195571,5 +195805,5 @@ var index_es = /*#__PURE__*/Object.freeze({
|
|
|
195571
195805
|
vectorsRatio: vectorsRatio
|
|
195572
195806
|
});
|
|
195573
195807
|
|
|
195574
|
-
export { ACTIVITY_STEP_ORDER, ALSO_EXPERIENCED_LABEL, AVATAR_SIZE_CONFIG, AcademyCertificatePreview, AcademyModulePage, AcademyPage, AccessBlockedPage, AccountOptionSchema, BasicInfoSchema as ActivityBasicInfoSchema, ActivityChatInsumosPicker, ActivityChatMembersPicker, ActivityCheckinWindowSchema, ActivityDetailPage$1 as ActivityDetailPage, ActivityEditPage, ActivityFormChatSummaryCard, InsumosSelectionSchema$1 as ActivityInsumosSelectionSchema, ActivityListPage, MembersSelectionSchema as ActivityMembersSelectionSchema, ActivityOnboardingPage, TemplateSchema as ActivityTemplateSchema, TimeSelectionSchema as ActivityTimeSelectionSchema, AddMediumByQRCodePage, AddressInfoSchema, AddressPage, AffiliateProgramPage, AlsoExperiencedButton, AttendanceCheckinCta$1 as AttendanceCheckinCta, AttendanceCheckinDialog, AttendanceCheckinEntryPage, AttendanceInsightsPage, AvatarWithBadge, BADGE_SIZE_CONFIG, BADGE_TIER_COLORS, BADGE_TIER_CONFIG, BADGE_TIER_LABELS, BADGE_TYPE_LABELS, BANK_OPTIONS, BANNER_GRADIENT_KEYS, BANNER_GRADIENT_PRESETS, BRAZILIAN_STATES$1 as BRAZILIAN_STATES, BadgeProgressSchema, BadgeTierSchema$2 as BadgeTierSchema, BadgesPage, BadgeInfoSchema as BadgesPageBadgeInfoSchema, BadgeTierSchema as BadgesPageBadgeTierSchema, BadgeTypeSchema as BadgesPageBadgeTypeSchema, BadgesPagePropsSchema, BathCategorySchema$2 as BathCategorySchema, BlockDialog, BrazilianStateUFSchema, CARD_CONTENT_STYLES, CATEGORY_CONFIG, CATEGORY_LABELS, CREATE_EXPERIENCE_STEP_LABELS, CREATE_EXPERIENCE_STEP_ORDER, CREATE_QUESTION_STEP_LABELS, CREATE_QUESTION_STEP_ORDER, CellphoneInput, CellphoneInputPropsSchema, CompletenessCard, ConnectionButton, ContactArraySchema, ContactPage, ContactPagePropsSchema, ContactSchema, ContactSectionCardPropsSchema, ContributionImpactCard, CopyTargetSchema, CreateExperiencePage, CreateExperienceValuesSchema, CreateIngressoPage, CreateQuestionPage, CreateQuestionValuesSchema, CredentialsApiErrorSchema, CredentialsDataSchema, CredentialsFormStateSchema, CredentialsPage, CredentialsPagePropsSchema, CredentialsValidationErrorsSchema, CustomBannerGradientPresetSchema, DAILY_MESSAGE_POOL, DEFAULT_BANNER_GRADIENT_KEY, DEFAULT_HOME_WIDGET_ORDER, DEFAULT_HOME_WIDGET_VISIBILITY, DailyRitualCard, DescriptionBox$3 as DescriptionBox, DetailedPermissionSchema, EMPTY_ELEMENT_SIZE, EMPTY_ELEMENT_SIZE as EMPTY_SLOT_SIZE, EVENT_STEP_ORDER, EditEventPage, EditJourneyPage, EventAISuggestionsPage, EventBasicInfoSchema, EventChatActivitiesPicker, EventChatInsumosPicker, EventChatLocationPicker, EventChatMembersPicker, EventChatTypePicker, EventCheckinWindowSchema, EventDateTimeSchema, EventDetailPage$1 as EventDetailPage, EventFormChatSummaryCard, EventFormValuesSchema, InsumosSelectionSchema as EventInsumosSelectionSchema, EventLocationSchema, EventOnboardingPage, EventParticipantsSchema, EventProfileBlockedPage, EventPublicationFormChatSummaryCard, EventTicketingManagementPage, EventsPage, ExperienceCard, ExperienceCategoryBadge, ExperienceCategorySchema, ExperienceCommentRow, ExperienceCommentSchema, ExperienceCommentsSheet, ExperienceComposer, ExperienceDetailPage, ExperienceDetailView, ExperienceEngageMenu, ExperiencePostTypeBadge, ExperiencePostTypeSchema, ExperienceReactionBar, ExperienceReactionTypeSchema, ExperienceSchema, ExpiredLinkPage, FORM_CONFIG, FacebookAuthButton, FilterDrawerShellPropsSchema, FinanceMetricCard$1 as FinanceMetricCard, FinancialAccountPage, FinancialAccountsList$1 as FinancialAccountsList, FinancialOverviewCard, FinancialRegisterPage, FinancialTransparencyPage, ForbiddenPage, ForgotPasswordPage, FormChatAssistant, FormChatListSelect, FormChatPickerDrawer, FormChatSelectionBar, GLOW_EFFECT, GamificationBadgeSchema, GamificationBadgeTierEnum, GamificationBadgeTypeEnum, GamificationCard, GamificationCardPropsSchema, GamificationHelpPage, GamificationHelpPagePropsSchema, GamificationHelpTopicSchema, GamificationSummarySchema, GoogleAuthButton, HOME_BELL_NOTIFICATION_LIMIT, HOME_MEASURE_SLOTS, HOME_WIDGETS_CATALOG, HomePage, Image$1 as Image, ImageButton, IncomeListPage$1 as IncomeListPage, IncomingFinancialPage, InfiniteScroll, InfiniteScrollPropsSchema, InstallPrompt, InsumosAvatarGroup, InventoryItemDetail$1 as InventoryItemDetailPage, InventoryItemOnboardingPage, InventoryListItemPage, InventoryListPage, InviteCard$1 as InviteCard, InviteLandingPage, InviteLandingPagePropsSchema, InviteLandingViewStateSchema, InviteTerreiroInfoSchema, JoinTerreiroPage, JourneyProfile, JourneyProfilePage, LAYOUT, LabeledBrazilianStateSelect, LabeledBrazilianStateSelectPropsSchema, LabeledDatePickerPropsSchema, LabeledFieldHeaderPropsSchema, LabeledMinuteInput, LabeledMonthPickerPropsSchema, LabeledTextField$1 as LabeledTextField, LabeledTimePicker, LeaderboardPage, LeaderboardPagePropsSchema, LoadMoreResultSchema, Loading, LunarEclipseSchema, MeasuredLayoutProvider, MediumBadgeSchema, MediumFinancialTransparencyPage, MediumHubPage, MediumListPage, MediumPage, MediumPointsSchema, MediumProfilePage, MediumProfileViewPage$1 as MediumProfileViewPage, MediumStatus$1 as MediumStatus, MemberListItem$1 as MemberListItem, MonthlyFeeInfoSchema, MonthlyFeePage, MonthlyFeePaymentsManagementPage, MoonApiResponseSchema, MoonCard, MoonCardContent, MoonCardPropsSchema, MoonCardSkeleton, MoonDataSchema, MoonDetailedSchema, MoonEventsSchema, MoonPositionSchema, MoonZodiacSchema, MyPermissionsDetailedSchema, MyPermissionsPage, MyPermissionsPagePropsSchema, NearbyTerreiroSearchPage, NotFoundPage, NotificationSettingsPage, NotificationSettingsPagePropsSchema, NotificationsPage, ONBOARDING_TERREIRO_STEPS, ORIGIN_LABELS, OnboardingFormChatPanel, OnboardingFormChatSummaryCard, OnboardingIntroModal, OnboardingMediumPage, OnboardingPage, OnboardingTerreiroPage$1 as OnboardingTerreiroPage, OnboardingTerreiroPagePropsSchema, OutcomeListPage$1 as OutcomeListPage, OutgoingFinancialPage, PAYMENT_METHOD_OPTIONS$1 as PAYMENT_METHOD_OPTIONS, PIX_KEY_TYPE_OPTIONS, POST_TYPE_LABELS, PROFILE_SECTION_CONFIG, PROFILE_SECTION_WEIGHTS, PWAUpdatePromptUI, PageHeader$2 as PageHeader, PaginationInfoSchema, ParticipationResponseButtons$1 as ParticipationResponseButtons, ParticipationStatusBadge$1 as ParticipationStatusBadge, ParticipationStatusLabels, PasskeyCredentialSchema, PasskeyEnrollmentPrompt, PasskeyLoginDialog, PasswordInfoSchemaWithConfirmation, PasswordVisibilitySchema, PaymentStatusBanner, PeerMessageList, PendingApprovalBlockedPage, PermissionSelector, PermissionStatsSchema, PersonalInfoSchema, PhaseEventSchema, PlanChangePayloadSchema, PlanManagementPage, PlanManagementPagePropsSchema, PointsSummarySchema, PositionInfoSchema, PostGiraPrompt, PrivacySelector, ProfileCompletenessCard, ProfileDetailsPage, PublicEventTicketPage, PublicExperiencePreviewSchema, PublicProfilePreviewSchema, PublicQuestionPreviewSchema, PublicSocialPreviewDataSchema, PublicSocialPreviewPage, PublicTerreiroAgendaPage, QUESTION_SOURCE_LABELS, QUICK_ONBOARDING_TERREIRO_STEPS, QUICK_TERREIRO_ONBOARDING_FIELDS_BY_STEP, QrAnalyticsEventNameSchema, QrLandingPage, QrLandingPagePropsSchema, QrScannerSurface$1 as QrScannerSurface, QrTrackingEventSchema, QrTrackingPayloadSchema, QrVariantSchema, QuestionAnswerCard, QuestionAnswerSchema, QuestionAnswersSheet, QuestionCard, QuestionComposer, QuestionDetailPage, QuestionSchema, QuestionSourceBadge, QuestionSourceSchema, QuestionsPage, QuickActionSchema$1 as QuickActionSchema, QuickActions, QuickActionsPropsSchema, QuickMediumOnboardingFormStateSchema, QuickPersonalInfoSchema, QuickPersonalInfoStep, QuickTerreiroOnboardingFormStateSchema, QuickTerreiroPersonalInfoSchema, QuickTerreiroStepValidationSchemas, QuotaBehaviorSchema, QuotaGuard, QuotaGuardPropsSchema, QuotaStatusSchema, QuotaSummaryCard, QuotaSummaryCardPropsSchema, RADIUS, RANKING_PERIOD_LABELS, RANKING_SCOPE_LABELS, REACTION_LABELS, REPORT_REASON_LABELS, RankingEntrySchema, RankingPeriodEnum, RankingResultSchema, RankingScopeEnum, ReasonDialog$1 as ReasonDialog, ReasonDialogPropsSchema, ReligionSchema, ReportDialog, ResetPasswordPage, BasicInfoStepSchema as RitualBathBasicInfoStepSchema, RitualBathDetailPage$1 as RitualBathDetailPage, RitualBathDetailPagePropsSchema, RitualBathDetailSchema, RitualBathFilterSchema, RitualBathFormValuesSchema, RitualBathIngredientSchema$2 as RitualBathIngredientSchema, IngredientsStepSchema as RitualBathIngredientsStepSchema, RitualBathItemSchema, BathCategorySchema$1 as RitualBathListCategorySchema, RitualBathListPage, RitualBathOccurrenceSchema, RitualBathOnboardingPage, RitualBathOriginSchema, OriginStepSchema as RitualBathOriginStepSchema, RitualBathScheduleFormSchema, RitualBathSchedulePage, RitualBathSchedulePagePropsSchema, RitualBathScheduleSummarySchema, RitualBathStatusSchema, RitualBathStepSchema$2 as RitualBathStepSchema, RitualBathStepTypeSchema, StepsStepSchema as RitualBathStepsStepSchema, RitualCard, RoleFormPage, RoleFormValuesSchema, RoleInfoSchema, RoleManagementPage, RoleSchema, SKELETON_SIZES, SOCIAL_BIO_MAX_LENGTH, SOCIAL_DISPLAY_NAME_MAX_LENGTH, SOCIAL_HOME_BOTTOM_NAV_CLEARANCE, SOCIAL_HOME_BOTTOM_NAV_FLOAT_MB, SOCIAL_HOME_BOTTOM_NAV_HEIGHT, SOCIAL_HOME_HEADER_HEIGHT, SOCIAL_ONBOARDING_INTRO_STEPS, SOCIAL_ONBOARDING_STEP_LABELS, SOCIAL_ONBOARDING_STEP_ORDER, SOCIAL_TRADITION_MAX_LENGTH, SOCIAL_USERNAME_MAX_LENGTH, STATUS_COLORS, STATUS_LABELS, STEP_ORDER, STEP_TYPE_ICONS, STEP_TYPE_LABELS, ScheduleDateTimeFields$1 as ScheduleDateTimeFields, SelectField$2 as SelectField, ShareDrawerPropsSchema, SharePlatformSchema, ShareSheet, SharedExpensesCard, SigninPage, SignupPage, SimilarExperienceCard, SimilarPage, SimilarPeopleCard, SimilarPersonSchema, SingleContactSchema, SocialAccountDrawer, SocialAuthorSchema, SocialConnectionsPage, SocialConversationPage, SocialConversationPeerSchema, SocialConversationRow, SocialConversationSchema, SocialCreateActionsSheet, SocialDeleteConfirmDialog, SocialDiscoverPage, SocialEditTextDialog, SocialEmptyState, SocialErrorState, SocialFeedItemSchema, SocialHomeBottomNav, SocialHomeCurrentUserSchema, SocialHomeHeader, SocialHomePage, SocialInboxPage, SocialMessageBubble, SocialMessageComposer, SocialMessageDeliveryStatusSchema, SocialMessageSchema, SocialNotificationsPage, SocialOnboardingIntro, SocialOnboardingPage, SocialOnboardingValuesSchema, SocialPrivacySettingsPage, SocialProfileFieldsSchema, SocialProfileSchema, SocialReadOnlyNotice, SocialReportReasonSchema, SocialSavedPage, SocialSkeleton, SocialUnreadIndicator, SocialUsernameSchema, SocialVerificationEarnedCelebration, SocialVerificationProgressSheet, SocialVisibilitySchema, SpiritualFormChatSummaryCard, SpiritualProfilePage, StreakInfoSchema, SubscriptionGuard, SubscriptionProvider, SubscriptionRequiredForMediumPage, SuggestionsCarousel, SupplyPlanBlockerSchema, SupplyPlanCostsSchema, SupplyPlanItemSchema, SupplyPlanMissionSchema, SupplyPlanPage, SupplyPlanPagePropsSchema, SupplyPlanReadinessSchema, SupplyPlanSchema, SupplyPlanSourceActivitySchema, SupplyPlanSourceEventSchema, SupplyPlanSummarySchema, SystemSettingsPage, TERREIRO_COMPLETION_MESSAGES, TERREIRO_ONBOARDING_FIELDS_BY_STEP, TERREIRO_SECTION_CONFIG, TERREIRO_SECTION_WEIGHTS, TOP_BAR_HEIGHTS, TYPOGRAPHY_SCALE, TerreiroFinancialInfoSchema, TerreiroOnboardingApiErrorSchema, TerreiroOnboardingFormStateSchema, TerreiroOnboardingValidationErrorsSchema, TerreiroPersonalInfoSchema, TerreiroPolicyPage, TerreiroPolicyPagePropsSchema, TerreiroProfileDataPage$1 as TerreiroProfileDataPage, TerreiroProfilePage, TerreiroReadonlyProfilePage, TerreiroRegistrationSchema, TerreiroRegistrationWithoutPasswordSchema, TerreiroSchema$2 as TerreiroSchema, TerreiroSearchPage, TerreiroSectionCard, TerreiroSectionCardPropsSchema, TerreiroStatusSchema, TerreiroStepValidationSchemas, TerreiroSubscriptionInfoSchema, ThemeButton, ThemeProvider, TicketVoucherPage, TicketingClaimFormChatSummaryCard, TraditionBadge, UnitCostMetaSchema, UpcomingPhasesSchema, UpgradePrompt, UsageBar, UsageBarPropsSchema, UsageProvider, UsageQuotaPage, UsageQuotaPagePropsSchema, UseInfiniteScrollReturnSchema, VISIBILITY_HELPERS, VISIBILITY_LABELS, ValidationErrorsSchema, VerificationBadge, WhatsAppShareButton, WhatsNewModal, authorDisplayName, brand, buildAcademyCertificatePreviewNode, buildItemReasonText, buildMergedInsumos$1 as buildMergedInsumos, buildMergedMediums$1 as buildMergedMediums, defaultDisplayProps, defaultInputProps, drawerSheetRadius, filterSupplyPlanMissions, formatRelativeTime, formatScheduleDate, formatSecondsAsMinutesLabel, formatCurrency$1 as formatTerreiroCurrency, formatPhone as formatTerreiroPhone, generateAcademyCertificatePdf, getBannerGradient, getCardBaseStyles, getContentMarginTop, getContentPaddingTop, getCustomBannerGradient, getDateString, getDefaultHomeWidgetOrder, getHomeWidgetsForProfile, getReorderableHomeWidgetsForProfile, getSocialBannerSx, getSocialUsernameError, getTopBarExpandedHeight, getTopBarHeight, getTopBarStackHeight, installPromptPropsSchema, isDefaultHomeWidgetOrder, isPasskeySupported, isValidEmail, isValidPassword, mapPasskeyError, mapRawMemberToActivityChatOption, mediumStatusLabelsPtBr, mergeHomeWidgetOrder, mergeHomeWidgetVisibility, mockCalendarActivities, mockCalendarEvents, mockCalendarRitualBaths, mockHomePageProps, mockLoadingHomePageProps, mockMediumHomePageProps, mockMoonData, mockPendingMediumHomePageProps, mockQuickActions, mockRituals, mockSupplyPlanEmpty, mockSupplyPlanSufficientWithDemand, mockSupplyPlanWithCosts, mockSupplyPlanWithoutCosts, mockTerreiros, mockUpcomingEvents, mockUser, moveHomeWidgetInOrder, onboardingIntroModalPropsSchema, onboardingIntroModeSchema, onboardingIntroProfileContextSchema, overlayZIndex, parseScheduleDate, radiusPx, reorderHomeWidgetOrder, resolveExperiencePostType, secondsToRoundedMinutes, startPasskeyAuthentication, startPasskeyRegistration, useAcademyModulePage, useAcademyPage, useAccessBlockedPage, useActivityOnboarding, useAddressSectionCard, useAffiliateProgramPage, useAttendanceCheckinEntryPage, useAttendanceInsightsPage, useAvatarWithBadge, useBadgesPage, useCellphoneInput, useCompletenessCard, useContactPage, useContentClearance, useCredentialsPage, useElementSize, useEventAISuggestionsPage, useFilterDrawer, useFinancialRegister, useFinancialTransparencyPage, useFormChatAssistant, useGamificationCard, useGamificationHelpPage, useHideOnScroll, useHomePage, useInfiniteScroll, useInstallPrompt, useInventoryListItemPage, useInventoryListPage, useInviteLandingPage, useJoinTerreiroPage, useLabeledBrazilianStateSelect, useLeaderboardPage, useMeasureSlot, useMeasuredLayoutContext, useMeasuredSlot, useMediumFinancialTransparencyPage, useMediumHubPage, useMemberListItem, useMonthlyFeePaymentsManagementPage, useMoonCard, useMyPermissionsPage, useNotFoundPage, useNotificationSettingsPage, useOnboardingIntroModal, useOnboardingMedium, useOnboardingPage, useOnboardingTerreiro, useOptionalMeasuredLayoutContext, useOptionalUsageContext, usePWAUpdatePromptUI, usePermissionSelector, usePlanManagementPage, useProfileCompletenessCard, useQrLandingPage, useQuotaGuard, useRitualBathDetailPage, useRitualBathListPage, useRitualBathOnboarding, useRoleFormPage, useRoleManagementPage, useSelectMediumsPage, useSpiritualProfilePage, useSubscription, useSubscriptionContext, useSubscriptionGuard, useSupplyPlanPage, useTerreiroPolicyPage, useTerreiroProfileDataPage, useTerreiroProfilePage$1 as useTerreiroProfilePage, useTerreiroSectionCard, useThemeProvider, useUpgradePrompt, useUsageContext, useUsageQuota, useUsageQuotaPage, useVerificationBadge, useWhatsNewModal, validateEmail$1 as validateEmail, validatePassword$1 as validatePassword, validatePhoneNumber, validateCurrency as validateTerreiroCurrency, validateDueDay as validateTerreiroDueDay, validatePassword as validateTerreiroPassword, validatePasswordConfirmation as validateTerreiroPasswordConfirmation, validatePhone as validateTerreiroPhone, whatsNewAnnouncementSchema, whatsNewModalPropsSchema, whatsNewSlideSchema };
|
|
195808
|
+
export { ACTIVITY_STEP_ORDER, ALSO_EXPERIENCED_LABEL, AVATAR_SIZE_CONFIG, AcademyCertificatePreview, AcademyModulePage, AcademyPage, AccessBlockedPage, AccountOptionSchema, BasicInfoSchema as ActivityBasicInfoSchema, ActivityChatInsumosPicker, ActivityChatMembersPicker, ActivityCheckinWindowSchema, ActivityDetailPage$1 as ActivityDetailPage, ActivityEditPage, ActivityFormChatSummaryCard, InsumosSelectionSchema$1 as ActivityInsumosSelectionSchema, ActivityListPage, MembersSelectionSchema as ActivityMembersSelectionSchema, ActivityOnboardingPage, TemplateSchema as ActivityTemplateSchema, TimeSelectionSchema as ActivityTimeSelectionSchema, AddMediumByQRCodePage, AddressInfoSchema, AddressPage, AffiliateProgramPage, AlsoExperiencedButton, AttendanceCheckinCta$1 as AttendanceCheckinCta, AttendanceCheckinDialog, AttendanceCheckinEntryPage, AttendanceInsightsPage, AvatarWithBadge, BADGE_SIZE_CONFIG, BADGE_TIER_COLORS, BADGE_TIER_CONFIG, BADGE_TIER_LABELS, BADGE_TYPE_LABELS, BANK_OPTIONS, BANNER_GRADIENT_KEYS, BANNER_GRADIENT_PRESETS, BRAZILIAN_STATES$1 as BRAZILIAN_STATES, BadgeProgressSchema, BadgeTierSchema$2 as BadgeTierSchema, BadgesPage, BadgeInfoSchema as BadgesPageBadgeInfoSchema, BadgeTierSchema as BadgesPageBadgeTierSchema, BadgeTypeSchema as BadgesPageBadgeTypeSchema, BadgesPagePropsSchema, BathCategorySchema$2 as BathCategorySchema, BlockDialog, BrazilianStateUFSchema, CARD_CONTENT_STYLES, CATEGORY_CONFIG, CATEGORY_LABELS, CREATE_EXPERIENCE_STEP_LABELS, CREATE_EXPERIENCE_STEP_ORDER, CREATE_QUESTION_STEP_LABELS, CREATE_QUESTION_STEP_ORDER, CellphoneInput, CellphoneInputPropsSchema, CompactListDateBlock, CompactListRow, CompletenessCard, ConnectionButton, ContactArraySchema, ContactPage, ContactPagePropsSchema, ContactSchema, ContactSectionCardPropsSchema, ContributionImpactCard, CopyTargetSchema, CreateExperiencePage, CreateExperienceValuesSchema, CreateIngressoPage, CreateQuestionPage, CreateQuestionValuesSchema, CredentialsApiErrorSchema, CredentialsDataSchema, CredentialsFormStateSchema, CredentialsPage, CredentialsPagePropsSchema, CredentialsValidationErrorsSchema, CustomBannerGradientPresetSchema, DAILY_MESSAGE_POOL, DEFAULT_BANNER_GRADIENT_KEY, DEFAULT_HOME_WIDGET_ORDER, DEFAULT_HOME_WIDGET_VISIBILITY, DailyRitualCard, DescriptionBox$3 as DescriptionBox, DetailedPermissionSchema, EMPTY_ELEMENT_SIZE, EMPTY_ELEMENT_SIZE as EMPTY_SLOT_SIZE, EVENT_STEP_ORDER, EditEventPage, EditJourneyPage, EventAISuggestionsPage, EventBasicInfoSchema, EventChatActivitiesPicker, EventChatInsumosPicker, EventChatLocationPicker, EventChatMembersPicker, EventChatTypePicker, EventCheckinWindowSchema, EventDateTimeSchema, EventDetailPage$1 as EventDetailPage, EventFormChatSummaryCard, EventFormValuesSchema, InsumosSelectionSchema as EventInsumosSelectionSchema, EventLocationSchema, EventOnboardingPage, EventParticipantsSchema, EventProfileBlockedPage, EventPublicationFormChatSummaryCard, EventTicketingManagementPage, EventsPage, ExperienceCard, ExperienceCategoryBadge, ExperienceCategorySchema, ExperienceCommentRow, ExperienceCommentSchema, ExperienceCommentsSheet, ExperienceComposer, ExperienceDetailPage, ExperienceDetailView, ExperienceEngageMenu, ExperiencePostTypeBadge, ExperiencePostTypeSchema, ExperienceReactionBar, ExperienceReactionTypeSchema, ExperienceSchema, ExpiredLinkPage, FORM_CONFIG, FacebookAuthButton, FilterDrawerShellPropsSchema, FinanceMetricCard$1 as FinanceMetricCard, FinancialAccountPage, FinancialAccountsList$1 as FinancialAccountsList, FinancialOverviewCard, FinancialRegisterPage, FinancialTransparencyPage, ForbiddenPage, ForgotPasswordPage, FormChatAssistant, FormChatListSelect, FormChatPickerDrawer, FormChatSelectionBar, GLOW_EFFECT, GamificationBadgeSchema, GamificationBadgeTierEnum, GamificationBadgeTypeEnum, GamificationCard, GamificationCardPropsSchema, GamificationHelpPage, GamificationHelpPagePropsSchema, GamificationHelpTopicSchema, GamificationSummarySchema, GoogleAuthButton, HOME_BELL_NOTIFICATION_LIMIT, HOME_MEASURE_SLOTS, HOME_WIDGETS_CATALOG, HomePage, Image$1 as Image, ImageButton, IncomeListPage$1 as IncomeListPage, IncomingFinancialPage, InfiniteScroll, InfiniteScrollPropsSchema, InstallPrompt, InsumosAvatarGroup, InventoryItemDetail$1 as InventoryItemDetailPage, InventoryItemOnboardingPage, InventoryListItemPage, InventoryListPage, InviteCard$1 as InviteCard, InviteLandingPage, InviteLandingPagePropsSchema, InviteLandingViewStateSchema, InviteTerreiroInfoSchema, JoinTerreiroPage, JourneyProfile, JourneyProfilePage, LAYOUT, LabeledBrazilianStateSelect, LabeledBrazilianStateSelectPropsSchema, LabeledDatePickerPropsSchema, LabeledFieldHeaderPropsSchema, LabeledMinuteInput, LabeledMonthPickerPropsSchema, LabeledTextField$1 as LabeledTextField, LabeledTimePicker, LeaderboardPage, LeaderboardPagePropsSchema, LoadMoreResultSchema, Loading, LunarEclipseSchema, MeasuredLayoutProvider, MediumBadgeSchema, MediumFinancialTransparencyPage, MediumHubPage, MediumListPage, MediumPage, MediumPointsSchema, MediumProfilePage, MediumProfileViewPage$1 as MediumProfileViewPage, MediumStatus$1 as MediumStatus, MemberListItem$1 as MemberListItem, MonthlyFeeInfoSchema, MonthlyFeePage, MonthlyFeePaymentsManagementPage, MoonApiResponseSchema, MoonCard, MoonCardContent, MoonCardPropsSchema, MoonCardSkeleton, MoonDataSchema, MoonDetailedSchema, MoonEventsSchema, MoonPositionSchema, MoonZodiacSchema, MyPermissionsDetailedSchema, MyPermissionsPage, MyPermissionsPagePropsSchema, NearbyTerreiroSearchPage, NotFoundPage, NotificationSettingsPage, NotificationSettingsPagePropsSchema, NotificationsPage, ONBOARDING_TERREIRO_STEPS, ORIGIN_LABELS, OnboardingFormChatPanel, OnboardingFormChatSummaryCard, OnboardingIntroModal, OnboardingMediumPage, OnboardingPage, OnboardingTerreiroPage$1 as OnboardingTerreiroPage, OnboardingTerreiroPagePropsSchema, OutcomeListPage$1 as OutcomeListPage, OutgoingFinancialPage, PAYMENT_METHOD_OPTIONS$1 as PAYMENT_METHOD_OPTIONS, PIX_KEY_TYPE_OPTIONS, POST_TYPE_LABELS, PROFILE_SECTION_CONFIG, PROFILE_SECTION_WEIGHTS, PWAUpdatePromptUI, PageHeader$2 as PageHeader, PaginationInfoSchema, ParticipationResponseButtons$1 as ParticipationResponseButtons, ParticipationStatusBadge$1 as ParticipationStatusBadge, ParticipationStatusLabels, PasskeyCredentialSchema, PasskeyEnrollmentPrompt, PasskeyLoginDialog, PasswordInfoSchemaWithConfirmation, PasswordVisibilitySchema, PaymentStatusBanner, PeerMessageList, PendingApprovalBlockedPage, PermissionSelector, PermissionStatsSchema, PersonalInfoSchema, PhaseEventSchema, PlanChangePayloadSchema, PlanManagementPage, PlanManagementPagePropsSchema, PointsSummarySchema, PositionInfoSchema, PostGiraPrompt, PrivacySelector, ProfileCompletenessCard, ProfileDetailsPage, PublicEventTicketPage, PublicExperiencePreviewSchema, PublicProfilePreviewSchema, PublicQuestionPreviewSchema, PublicSocialPreviewDataSchema, PublicSocialPreviewPage, PublicTerreiroAgendaPage, QUESTION_SOURCE_LABELS, QUICK_ONBOARDING_TERREIRO_STEPS, QUICK_TERREIRO_ONBOARDING_FIELDS_BY_STEP, QrAnalyticsEventNameSchema, QrLandingPage, QrLandingPagePropsSchema, QrScannerSurface$1 as QrScannerSurface, QrTrackingEventSchema, QrTrackingPayloadSchema, QrVariantSchema, QuestionAnswerCard, QuestionAnswerSchema, QuestionAnswersSheet, QuestionCard, QuestionComposer, QuestionDetailPage, QuestionSchema, QuestionSourceBadge, QuestionSourceSchema, QuestionsPage, QuickActionSchema$1 as QuickActionSchema, QuickActions, QuickActionsPropsSchema, QuickMediumOnboardingFormStateSchema, QuickPersonalInfoSchema, QuickPersonalInfoStep, QuickTerreiroOnboardingFormStateSchema, QuickTerreiroPersonalInfoSchema, QuickTerreiroStepValidationSchemas, QuotaBehaviorSchema, QuotaGuard, QuotaGuardPropsSchema, QuotaStatusSchema, QuotaSummaryCard, QuotaSummaryCardPropsSchema, RADIUS, RANKING_PERIOD_LABELS, RANKING_SCOPE_LABELS, REACTION_LABELS, REPORT_REASON_LABELS, RankingEntrySchema, RankingPeriodEnum, RankingResultSchema, RankingScopeEnum, ReasonDialog$1 as ReasonDialog, ReasonDialogPropsSchema, ReligionSchema, ReportDialog, ResetPasswordPage, BasicInfoStepSchema as RitualBathBasicInfoStepSchema, RitualBathDetailPage$1 as RitualBathDetailPage, RitualBathDetailPagePropsSchema, RitualBathDetailSchema, RitualBathFilterSchema, RitualBathFormValuesSchema, RitualBathIngredientSchema$2 as RitualBathIngredientSchema, IngredientsStepSchema as RitualBathIngredientsStepSchema, RitualBathItemSchema, BathCategorySchema$1 as RitualBathListCategorySchema, RitualBathListPage, RitualBathOccurrenceSchema, RitualBathOnboardingPage, RitualBathOriginSchema, OriginStepSchema as RitualBathOriginStepSchema, RitualBathScheduleFormSchema, RitualBathSchedulePage, RitualBathSchedulePagePropsSchema, RitualBathScheduleSummarySchema, RitualBathStatusSchema, RitualBathStepSchema$2 as RitualBathStepSchema, RitualBathStepTypeSchema, StepsStepSchema as RitualBathStepsStepSchema, RitualCard, RoleFormPage, RoleFormValuesSchema, RoleInfoSchema, RoleManagementPage, RoleSchema, SKELETON_SIZES, SOCIAL_BIO_MAX_LENGTH, SOCIAL_DISPLAY_NAME_MAX_LENGTH, SOCIAL_HOME_BOTTOM_NAV_CLEARANCE, SOCIAL_HOME_BOTTOM_NAV_FLOAT_MB, SOCIAL_HOME_BOTTOM_NAV_HEIGHT, SOCIAL_HOME_HEADER_HEIGHT, SOCIAL_ONBOARDING_INTRO_STEPS, SOCIAL_ONBOARDING_STEP_LABELS, SOCIAL_ONBOARDING_STEP_ORDER, SOCIAL_TRADITION_MAX_LENGTH, SOCIAL_USERNAME_MAX_LENGTH, STATUS_COLORS, STATUS_LABELS, STEP_ORDER, STEP_TYPE_ICONS, STEP_TYPE_LABELS, ScheduleDateTimeFields$1 as ScheduleDateTimeFields, SelectField$2 as SelectField, ShareDrawerPropsSchema, SharePlatformSchema, ShareSheet, SharedExpensesCard, SigninPage, SignupPage, SimilarExperienceCard, SimilarPage, SimilarPeopleCard, SimilarPersonSchema, SingleContactSchema, SocialAccountDrawer, SocialAuthorSchema, SocialConnectionsPage, SocialConversationPage, SocialConversationPeerSchema, SocialConversationRow, SocialConversationSchema, SocialCreateActionsSheet, SocialDeleteConfirmDialog, SocialDiscoverPage, SocialEditTextDialog, SocialEmptyState, SocialErrorState, SocialFeedItemSchema, SocialHomeBottomNav, SocialHomeCurrentUserSchema, SocialHomeHeader, SocialHomePage, SocialInboxPage, SocialMessageBubble, SocialMessageComposer, SocialMessageDeliveryStatusSchema, SocialMessageSchema, SocialNotificationsPage, SocialOnboardingIntro, SocialOnboardingPage, SocialOnboardingValuesSchema, SocialPrivacySettingsPage, SocialProfileFieldsSchema, SocialProfileSchema, SocialReadOnlyNotice, SocialReportReasonSchema, SocialSavedPage, SocialSkeleton, SocialUnreadIndicator, SocialUsernameSchema, SocialVerificationEarnedCelebration, SocialVerificationProgressSheet, SocialVisibilitySchema, SpiritualFormChatSummaryCard, SpiritualProfilePage, StreakInfoSchema, SubscriptionGuard, SubscriptionProvider, SubscriptionRequiredForMediumPage, SuggestionsCarousel, SupplyPlanBlockerSchema, SupplyPlanCostsSchema, SupplyPlanItemSchema, SupplyPlanMissionSchema, SupplyPlanPage, SupplyPlanPagePropsSchema, SupplyPlanReadinessSchema, SupplyPlanSchema, SupplyPlanSourceActivitySchema, SupplyPlanSourceEventSchema, SupplyPlanSummarySchema, SystemSettingsPage, TERREIRO_COMPLETION_MESSAGES, TERREIRO_ONBOARDING_FIELDS_BY_STEP, TERREIRO_SECTION_CONFIG, TERREIRO_SECTION_WEIGHTS, TOP_BAR_HEIGHTS, TYPOGRAPHY_SCALE, TerreiroFinancialInfoSchema, TerreiroOnboardingApiErrorSchema, TerreiroOnboardingFormStateSchema, TerreiroOnboardingValidationErrorsSchema, TerreiroPersonalInfoSchema, TerreiroPolicyPage, TerreiroPolicyPagePropsSchema, TerreiroProfileDataPage$1 as TerreiroProfileDataPage, TerreiroProfilePage, TerreiroReadonlyProfilePage, TerreiroRegistrationSchema, TerreiroRegistrationWithoutPasswordSchema, TerreiroSchema$2 as TerreiroSchema, TerreiroSearchPage, TerreiroSectionCard, TerreiroSectionCardPropsSchema, TerreiroStatusSchema, TerreiroStepValidationSchemas, TerreiroSubscriptionInfoSchema, ThemeButton, ThemeProvider, TicketVoucherPage, TicketingClaimFormChatSummaryCard, TraditionBadge, UnitCostMetaSchema, UpcomingPhasesSchema, UpgradePrompt, UsageBar, UsageBarPropsSchema, UsageProvider, UsageQuotaPage, UsageQuotaPagePropsSchema, UseInfiniteScrollReturnSchema, VISIBILITY_HELPERS, VISIBILITY_LABELS, ValidationErrorsSchema, VerificationBadge, WhatsAppShareButton, WhatsNewModal, authorDisplayName, brand, buildAcademyCertificatePreviewNode, buildItemReasonText, buildMergedInsumos$1 as buildMergedInsumos, buildMergedMediums$1 as buildMergedMediums, compactListDateParts, defaultDisplayProps, defaultInputProps, drawerSheetRadius, filterSupplyPlanMissions, formatRelativeTime, formatScheduleDate, formatSecondsAsMinutesLabel, formatCurrency$1 as formatTerreiroCurrency, formatPhone as formatTerreiroPhone, generateAcademyCertificatePdf, getBannerGradient, getCardBaseStyles, getContentMarginTop, getContentPaddingTop, getCustomBannerGradient, getDateString, getDefaultHomeWidgetOrder, getHomeWidgetsForProfile, getReorderableHomeWidgetsForProfile, getSocialBannerSx, getSocialUsernameError, getTopBarExpandedHeight, getTopBarHeight, getTopBarStackHeight, installPromptPropsSchema, isDefaultHomeWidgetOrder, isPasskeySupported, isValidEmail, isValidPassword, mapPasskeyError, mapRawMemberToActivityChatOption, mediumStatusLabelsPtBr, mergeHomeWidgetOrder, mergeHomeWidgetVisibility, mockCalendarActivities, mockCalendarEvents, mockCalendarRitualBaths, mockHomePageProps, mockLoadingHomePageProps, mockMediumHomePageProps, mockMoonData, mockPendingMediumHomePageProps, mockQuickActions, mockRituals, mockSupplyPlanEmpty, mockSupplyPlanSufficientWithDemand, mockSupplyPlanWithCosts, mockSupplyPlanWithoutCosts, mockTerreiros, mockUpcomingEvents, mockUser, moveHomeWidgetInOrder, onboardingIntroModalPropsSchema, onboardingIntroModeSchema, onboardingIntroProfileContextSchema, overlayZIndex, parseScheduleDate, radiusPx, reorderHomeWidgetOrder, resolveExperiencePostType, secondsToRoundedMinutes, startPasskeyAuthentication, startPasskeyRegistration, useAcademyModulePage, useAcademyPage, useAccessBlockedPage, useActivityOnboarding, useAddressSectionCard, useAffiliateProgramPage, useAttendanceCheckinEntryPage, useAttendanceInsightsPage, useAvatarWithBadge, useBadgesPage, useCellphoneInput, useCompletenessCard, useContactPage, useContentClearance, useCredentialsPage, useElementSize, useEventAISuggestionsPage, useFilterDrawer, useFinancialRegister, useFinancialTransparencyPage, useFormChatAssistant, useGamificationCard, useGamificationHelpPage, useHideOnScroll, useHomePage, useInfiniteScroll, useInstallPrompt, useInventoryListItemPage, useInventoryListPage, useInviteLandingPage, useJoinTerreiroPage, useLabeledBrazilianStateSelect, useLeaderboardPage, useMeasureSlot, useMeasuredLayoutContext, useMeasuredSlot, useMediumFinancialTransparencyPage, useMediumHubPage, useMemberListItem, useMonthlyFeePaymentsManagementPage, useMoonCard, useMyPermissionsPage, useNotFoundPage, useNotificationSettingsPage, useOnboardingIntroModal, useOnboardingMedium, useOnboardingPage, useOnboardingTerreiro, useOptionalMeasuredLayoutContext, useOptionalUsageContext, usePWAUpdatePromptUI, usePermissionSelector, usePlanManagementPage, useProfileCompletenessCard, useQrLandingPage, useQuotaGuard, useRitualBathDetailPage, useRitualBathListPage, useRitualBathOnboarding, useRoleFormPage, useRoleManagementPage, useSelectMediumsPage, useSpiritualProfilePage, useSubscription, useSubscriptionContext, useSubscriptionGuard, useSupplyPlanPage, useTerreiroPolicyPage, useTerreiroProfileDataPage, useTerreiroProfilePage$1 as useTerreiroProfilePage, useTerreiroSectionCard, useThemeProvider, useUpgradePrompt, useUsageContext, useUsageQuota, useUsageQuotaPage, useVerificationBadge, useWhatsNewModal, validateEmail$1 as validateEmail, validatePassword$1 as validatePassword, validatePhoneNumber, validateCurrency as validateTerreiroCurrency, validateDueDay as validateTerreiroDueDay, validatePassword as validateTerreiroPassword, validatePasswordConfirmation as validateTerreiroPasswordConfirmation, validatePhone as validateTerreiroPhone, whatsNewAnnouncementSchema, whatsNewModalPropsSchema, whatsNewSlideSchema };
|
|
195575
195809
|
//# sourceMappingURL=bundle.esm.js.map
|