@churchapps/apphelper-login 0.4.13

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.
Files changed (73) hide show
  1. package/README.md +104 -0
  2. package/dist/LoginPage.d.ts +25 -0
  3. package/dist/LoginPage.d.ts.map +1 -0
  4. package/dist/LoginPage.js +248 -0
  5. package/dist/LoginPage.js.map +1 -0
  6. package/dist/LogoutPage.d.ts +9 -0
  7. package/dist/LogoutPage.d.ts.map +1 -0
  8. package/dist/LogoutPage.js +33 -0
  9. package/dist/LogoutPage.js.map +1 -0
  10. package/dist/components/Forgot.d.ts +8 -0
  11. package/dist/components/Forgot.d.ts.map +1 -0
  12. package/dist/components/Forgot.js +127 -0
  13. package/dist/components/Forgot.js.map +1 -0
  14. package/dist/components/Login.d.ts +15 -0
  15. package/dist/components/Login.d.ts.map +1 -0
  16. package/dist/components/Login.js +126 -0
  17. package/dist/components/Login.js.map +1 -0
  18. package/dist/components/LoginSetPassword.d.ts +13 -0
  19. package/dist/components/LoginSetPassword.d.ts.map +1 -0
  20. package/dist/components/LoginSetPassword.js +167 -0
  21. package/dist/components/LoginSetPassword.js.map +1 -0
  22. package/dist/components/Register.d.ts +12 -0
  23. package/dist/components/Register.d.ts.map +1 -0
  24. package/dist/components/Register.js +217 -0
  25. package/dist/components/Register.js.map +1 -0
  26. package/dist/components/SelectChurchModal.d.ts +14 -0
  27. package/dist/components/SelectChurchModal.d.ts.map +1 -0
  28. package/dist/components/SelectChurchModal.js +39 -0
  29. package/dist/components/SelectChurchModal.js.map +1 -0
  30. package/dist/components/SelectChurchRegister.d.ts +11 -0
  31. package/dist/components/SelectChurchRegister.d.ts.map +1 -0
  32. package/dist/components/SelectChurchRegister.js +83 -0
  33. package/dist/components/SelectChurchRegister.js.map +1 -0
  34. package/dist/components/SelectChurchSearch.d.ts +10 -0
  35. package/dist/components/SelectChurchSearch.d.ts.map +1 -0
  36. package/dist/components/SelectChurchSearch.js +61 -0
  37. package/dist/components/SelectChurchSearch.js.map +1 -0
  38. package/dist/components/SelectableChurch.d.ts +9 -0
  39. package/dist/components/SelectableChurch.d.ts.map +1 -0
  40. package/dist/components/SelectableChurch.js +34 -0
  41. package/dist/components/SelectableChurch.js.map +1 -0
  42. package/dist/helpers/AnalyticsHelper.d.ts +7 -0
  43. package/dist/helpers/AnalyticsHelper.d.ts.map +1 -0
  44. package/dist/helpers/AnalyticsHelper.js +30 -0
  45. package/dist/helpers/AnalyticsHelper.js.map +1 -0
  46. package/dist/helpers/Locale.d.ts +13 -0
  47. package/dist/helpers/Locale.d.ts.map +1 -0
  48. package/dist/helpers/Locale.js +200 -0
  49. package/dist/helpers/Locale.js.map +1 -0
  50. package/dist/helpers/index.d.ts +3 -0
  51. package/dist/helpers/index.d.ts.map +1 -0
  52. package/dist/helpers/index.js +3 -0
  53. package/dist/helpers/index.js.map +1 -0
  54. package/dist/index.d.ts +11 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +11 -0
  57. package/dist/index.js.map +1 -0
  58. package/package.json +57 -0
  59. package/src/LoginPage.tsx +283 -0
  60. package/src/LogoutPage.tsx +43 -0
  61. package/src/components/Forgot.tsx +247 -0
  62. package/src/components/Login.tsx +250 -0
  63. package/src/components/LoginSetPassword.tsx +298 -0
  64. package/src/components/Register.tsx +371 -0
  65. package/src/components/SelectChurchModal.tsx +82 -0
  66. package/src/components/SelectChurchRegister.tsx +88 -0
  67. package/src/components/SelectChurchSearch.tsx +85 -0
  68. package/src/components/SelectableChurch.tsx +72 -0
  69. package/src/helpers/AnalyticsHelper.ts +32 -0
  70. package/src/helpers/Locale.ts +233 -0
  71. package/src/helpers/index.ts +2 -0
  72. package/src/index.ts +10 -0
  73. package/tsconfig.json +30 -0
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import { ChurchInterface, LoginUserChurchInterface } from "@churchapps/helpers";
3
+ interface Props {
4
+ appName: string;
5
+ show: boolean;
6
+ userChurches?: LoginUserChurchInterface[];
7
+ selectChurch: (churchId: string) => void;
8
+ registeredChurchCallback?: (church: ChurchInterface) => void;
9
+ errors?: string[];
10
+ handleRedirect?: (url: string) => void;
11
+ }
12
+ export declare const SelectChurchModal: React.FC<Props>;
13
+ export {};
14
+ //# sourceMappingURL=SelectChurchModal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectChurchModal.d.ts","sourceRoot":"","sources":["../../src/components/SelectChurchModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAQhF,UAAU,KAAK;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC1C,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CACtC;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA4D7C,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { SelectChurchSearch } from "./SelectChurchSearch";
5
+ import { SelectableChurch } from "./SelectableChurch";
6
+ import { ErrorMessages } from "@churchapps/apphelper";
7
+ import { Dialog, DialogContent, DialogTitle, IconButton, Tooltip } from "@mui/material";
8
+ import { Logout } from "@mui/icons-material";
9
+ import { Locale } from "../helpers";
10
+ export const SelectChurchModal = (props) => {
11
+ const [showSearch, setShowSearch] = React.useState(false);
12
+ const handleClose = () => {
13
+ window.location.reload();
14
+ };
15
+ const getContents = () => {
16
+ if (showSearch || props.userChurches?.length === 0)
17
+ return _jsx(SelectChurchSearch, { selectChurch: props.selectChurch, registeredChurchCallback: props.registeredChurchCallback, appName: props.appName });
18
+ else
19
+ return (_jsxs(_Fragment, { children: [props.userChurches?.map(uc => (_jsx(SelectableChurch, { church: uc.church, selectChurch: props.selectChurch }, uc.church.id))), _jsx("button", { type: "button", style: {
20
+ display: "block",
21
+ textAlign: "center",
22
+ background: "none",
23
+ border: "none",
24
+ color: "#3b82f6",
25
+ cursor: "pointer",
26
+ textDecoration: "underline"
27
+ }, onClick: (e) => { e.preventDefault(); setShowSearch(true); }, children: Locale.label("selectChurch.another") })] }));
28
+ };
29
+ return (_jsxs(Dialog, { open: props.show, onClose: handleClose, "aria-labelledby": "select-church-title", "aria-describedby": "select-church-content", children: [_jsx(DialogTitle, { id: "select-church-title", children: Locale.label("selectChurch.selectChurch") }), _jsx(Tooltip, { title: "Logout", arrow: true, children: _jsx(IconButton, { sx: { position: "absolute", right: 8, top: 8 }, color: "error", "aria-label": "Logout", onClick: () => {
30
+ // Use handleRedirect function if available, otherwise fallback to window.location
31
+ if (props.handleRedirect) {
32
+ props.handleRedirect("/logout");
33
+ }
34
+ else {
35
+ window.location.href = "/logout";
36
+ }
37
+ }, children: _jsx(Logout, {}) }) }), _jsxs(DialogContent, { id: "select-church-content", sx: { width: 500, maxWidth: "100%" }, children: [_jsx(ErrorMessages, { errors: props.errors }), getContents()] })] }));
38
+ };
39
+ //# sourceMappingURL=SelectChurchModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectChurchModal.js","sourceRoot":"","sources":["../../src/components/SelectChurchModal.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { ChurchInterface } from "@churchapps/helpers";
3
+ interface Props {
4
+ initialChurchName: string;
5
+ registeredChurchCallback?: (church: ChurchInterface) => void;
6
+ selectChurch: (churchId: string) => void;
7
+ appName: string;
8
+ }
9
+ export declare const SelectChurchRegister: React.FC<Props>;
10
+ export {};
11
+ //# sourceMappingURL=SelectChurchRegister.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectChurchRegister.d.ts","sourceRoot":"","sources":["../../src/components/SelectChurchRegister.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAkC,MAAM,qBAAqB,CAAC;AAItF,UAAU,KAAK;IACb,iBAAiB,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7D,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAsEhD,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import React from "react";
4
+ import { ApiHelper } from "@churchapps/helpers";
5
+ import { Locale } from "../helpers";
6
+ import { ErrorMessages, InputBox } from "@churchapps/apphelper";
7
+ import { Grid, TextField } from "@mui/material";
8
+ export const SelectChurchRegister = (props) => {
9
+ const suggestSubDomain = (name) => {
10
+ let result = name.toLowerCase().replaceAll("christian", "").replaceAll("church", "").replaceAll(" ", "");
11
+ return result;
12
+ };
13
+ const [church, setChurch] = React.useState({ name: props.initialChurchName, appName: props.appName, subDomain: suggestSubDomain(props.initialChurchName) });
14
+ const [errors, setErrors] = React.useState([]);
15
+ const [isSubmitting, setIsSubmitting] = React.useState(false);
16
+ const handleChange = (e) => {
17
+ const c = { ...church };
18
+ switch (e.target.name) {
19
+ case "churchName":
20
+ c.name = e.target.value;
21
+ break;
22
+ case "subDomain":
23
+ c.subDomain = e.target.value;
24
+ break;
25
+ case "address1":
26
+ c.address1 = e.target.value;
27
+ break;
28
+ case "address2":
29
+ c.address2 = e.target.value;
30
+ break;
31
+ case "city":
32
+ c.city = e.target.value;
33
+ break;
34
+ case "state":
35
+ c.state = e.target.value;
36
+ break;
37
+ case "zip":
38
+ c.zip = e.target.value;
39
+ break;
40
+ case "country":
41
+ c.country = e.target.value;
42
+ break;
43
+ }
44
+ setChurch(c);
45
+ };
46
+ const validate = () => {
47
+ let errors = [];
48
+ if (!church.name?.trim())
49
+ errors.push(Locale.label("selectChurch.validate.name"));
50
+ if (!church.address1?.trim())
51
+ errors.push(Locale.label("selectChurch.validate.address"));
52
+ if (!church.city?.trim())
53
+ errors.push(Locale.label("selectChurch.validate.city"));
54
+ if (!church.state?.trim())
55
+ errors.push(Locale.label("selectChurch.validate.state"));
56
+ if (!church.zip?.trim())
57
+ errors.push(Locale.label("selectChurch.validate.zip"));
58
+ if (!church.country?.trim())
59
+ errors.push(Locale.label("selectChurch.validate.country"));
60
+ setErrors(errors);
61
+ return errors.length === 0;
62
+ };
63
+ const handleSave = () => {
64
+ if (validate()) {
65
+ setIsSubmitting(true);
66
+ const c = { ...church };
67
+ if (!c.subDomain)
68
+ c.subDomain = suggestSubDomain(c.name);
69
+ ApiHelper.post("/churches/add", church, "MembershipApi").then(async (resp) => {
70
+ setIsSubmitting(false);
71
+ if (resp.errors !== undefined)
72
+ setErrors(errors);
73
+ else {
74
+ if (props.registeredChurchCallback)
75
+ props.registeredChurchCallback(resp);
76
+ props.selectChurch(resp.id);
77
+ }
78
+ });
79
+ }
80
+ };
81
+ return (_jsxs(InputBox, { id: "churchBox", saveFunction: handleSave, headerText: Locale.label("selectChurch.register"), headerIcon: "church", isSubmitting: isSubmitting, children: [_jsx(ErrorMessages, { errors: errors }), _jsx(TextField, { required: true, fullWidth: true, name: "churchName", label: Locale.label("selectChurch.name"), value: church.name, onChange: handleChange }), _jsx(TextField, { required: true, fullWidth: true, name: "address1", label: Locale.label("selectChurch.address1"), value: church.address1, onChange: handleChange }), _jsxs(Grid, { container: true, spacing: 3, children: [_jsx(Grid, { size: 6, children: _jsx(TextField, { fullWidth: true, name: "address2", label: Locale.label("selectChurch.address2"), value: church.address2, onChange: handleChange }) }), _jsx(Grid, { size: 6, children: _jsx(TextField, { required: true, fullWidth: true, name: "city", label: Locale.label("selectChurch.city"), value: church.city, onChange: handleChange }) })] }), _jsxs(Grid, { container: true, spacing: 3, children: [_jsx(Grid, { size: 6, children: _jsx(TextField, { required: true, fullWidth: true, name: "state", label: Locale.label("selectChurch.state"), value: church.state, onChange: handleChange }) }), _jsx(Grid, { size: 6, children: _jsx(TextField, { required: true, fullWidth: true, name: "zip", label: Locale.label("selectChurch.zip"), value: church.zip, onChange: handleChange }) })] }), _jsx(TextField, { required: true, fullWidth: true, name: "country", label: Locale.label("selectChurch.country"), value: church.country, onChange: handleChange })] }));
82
+ };
83
+ //# sourceMappingURL=SelectChurchRegister.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectChurchRegister.js","sourceRoot":"","sources":["../../src/components/SelectChurchRegister.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ import { ChurchInterface } from "@churchapps/helpers";
3
+ interface Props {
4
+ selectChurch: (churchId: string) => void;
5
+ registeredChurchCallback?: (church: ChurchInterface) => void;
6
+ appName: string;
7
+ }
8
+ export declare const SelectChurchSearch: React.FC<Props>;
9
+ export {};
10
+ //# sourceMappingURL=SelectChurchSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectChurchSearch.d.ts","sourceRoot":"","sources":["../../src/components/SelectChurchSearch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,UAAU,KAAK;IACd,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IAC7D,OAAO,EAAE,MAAM,CAAA;CACf;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAoE9C,CAAC"}
@@ -0,0 +1,61 @@
1
+ "use client";
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Button, TextField } from "@mui/material";
4
+ import React from "react";
5
+ import { ApiHelper } from "@churchapps/helpers";
6
+ import { Locale } from "../helpers";
7
+ import { SelectableChurch } from "./SelectableChurch";
8
+ import { SelectChurchRegister } from "./SelectChurchRegister";
9
+ export const SelectChurchSearch = (props) => {
10
+ const [searchText, setSearchText] = React.useState("");
11
+ const [churches, setChurches] = React.useState(null);
12
+ const [showRegister, setShowRegister] = React.useState(false);
13
+ const handleSubmit = (e) => {
14
+ if (e !== null)
15
+ e.preventDefault();
16
+ let term = searchText.trim();
17
+ ApiHelper.post("/churches/search", { name: term }, "MembershipApi").then(data => setChurches(data));
18
+ };
19
+ const handleChange = (e) => setSearchText(e.currentTarget.value);
20
+ const handleKeyDown = (e) => { if (e.key === "Enter") {
21
+ e.preventDefault();
22
+ handleSubmit(null);
23
+ } };
24
+ const handleRegisterClick = (e) => {
25
+ e.preventDefault();
26
+ if (window.confirm(Locale.label("selectChurch.confirmRegister"))) {
27
+ setShowRegister(true);
28
+ }
29
+ };
30
+ const getRegisterLink = () => (_jsx("div", { children: _jsx("button", { type: "button", style: {
31
+ display: "block",
32
+ textAlign: "center",
33
+ background: "none",
34
+ border: "none",
35
+ color: "#3b82f6",
36
+ cursor: "pointer",
37
+ textDecoration: "underline",
38
+ width: "100%"
39
+ }, onClick: handleRegisterClick, children: Locale.label("selectChurch.register") }) }));
40
+ const getChurches = () => {
41
+ const result = [];
42
+ churches.forEach(church => {
43
+ result.push(_jsx(SelectableChurch, { church: church, selectChurch: props.selectChurch }));
44
+ });
45
+ result.push(getRegisterLink());
46
+ return result;
47
+ };
48
+ const getResults = () => {
49
+ if (churches === null)
50
+ return;
51
+ else if (churches.length === 0)
52
+ return _jsxs(_Fragment, { children: [_jsx("p", { children: Locale.label("selectChurch.noMatches") }), getRegisterLink()] });
53
+ else
54
+ return getChurches();
55
+ };
56
+ if (showRegister)
57
+ return (_jsx(SelectChurchRegister, { selectChurch: props.selectChurch, registeredChurchCallback: props.registeredChurchCallback, appName: props.appName, initialChurchName: searchText }));
58
+ else
59
+ return (_jsxs(_Fragment, { children: [_jsx(TextField, { fullWidth: true, name: "searchText", label: "Name", value: searchText, onChange: handleChange, onKeyDown: handleKeyDown, InputProps: { endAdornment: _jsx(Button, { variant: "contained", id: "searchButton", "data-testid": "search-button", onClick: handleSubmit, children: Locale.label("common.search") }) } }), getResults()] }));
60
+ };
61
+ //# sourceMappingURL=SelectChurchSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectChurchSearch.js","sourceRoot":"","sources":["../../src/components/SelectChurchSearch.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { ChurchInterface } from "@churchapps/helpers";
3
+ interface Props {
4
+ selectChurch: (churchId: string) => void;
5
+ church: ChurchInterface;
6
+ }
7
+ export declare const SelectableChurch: React.FC<Props>;
8
+ export {};
9
+ //# sourceMappingURL=SelectableChurch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectableChurch.d.ts","sourceRoot":"","sources":["../../src/components/SelectableChurch.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,eAAe,EAA2B,MAAM,qBAAqB,CAAC;AAE/E,UAAU,KAAK;IACb,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,MAAM,EAAE,eAAe,CAAA;CACxB;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA2D5C,CAAC"}
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { Grid } from "@mui/material";
4
+ import { ArrayHelper } from "@churchapps/helpers";
5
+ export const SelectableChurch = (props) => {
6
+ let logo = "/images/logo.png";
7
+ if (props.church.settings) {
8
+ let l = ArrayHelper.getOne(props.church.settings, "keyName", "logoLight");
9
+ if (l?.value)
10
+ logo = l.value;
11
+ }
12
+ return (_jsxs(Grid, { container: true, spacing: 3, children: [_jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsx("button", { type: "button", style: {
13
+ fontSize: "1.125rem",
14
+ display: "block",
15
+ marginTop: 15,
16
+ marginBottom: 15,
17
+ background: "none",
18
+ border: "none",
19
+ cursor: "pointer",
20
+ padding: 0,
21
+ width: "100%"
22
+ }, onClick: (e) => { e.preventDefault(); props.selectChurch(props.church.id); }, "aria-label": `Select church: ${props.church.name}`, children: _jsx("img", { src: logo, alt: "church logo", className: "w-100 img-fluid" }) }) }), _jsx(Grid, { size: { xs: 12, md: 6 }, children: _jsxs("div", { children: [_jsx("button", { type: "button", style: {
23
+ fontSize: "1.125rem",
24
+ display: "block",
25
+ background: "none",
26
+ border: "none",
27
+ color: "#3b82f6",
28
+ cursor: "pointer",
29
+ textDecoration: "underline",
30
+ padding: 0,
31
+ textAlign: "left"
32
+ }, onClick: (e) => { e.preventDefault(); props.selectChurch(props.church.id); }, "aria-label": `Select church: ${props.church.name}`, children: props.church.name }), (props.church.address1) && _jsx("div", { children: props.church.address1 }), (props.church.city || props.church.state) && _jsxs("div", { children: [props.church.city && props.church.city + ", ", props.church.state] })] }) }), _jsx("span", { style: { display: "block", width: "100%", borderTop: "1px solid #ccc", margin: "1rem" } })] }));
33
+ };
34
+ //# sourceMappingURL=SelectableChurch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectableChurch.js","sourceRoot":"","sources":["../../src/components/SelectableChurch.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAErC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAQlD,MAAM,CAAC,MAAM,gBAAgB,GAAoB,CAAC,KAAK,EAAE,EAAE;IAEzD,IAAI,IAAI,GAAG,kBAAkB,CAAC;IAC9B,IAAI,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC1B,IAAI,CAAC,GAA4B,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACnG,IAAI,CAAC,EAAE,KAAK;YAAE,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,aACxB,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,YAC3B,iBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;wBACL,QAAQ,EAAE,UAAU;wBACpB,OAAO,EAAE,OAAO;wBAChB,SAAS,EAAE,EAAE;wBACb,YAAY,EAAE,EAAE;wBAChB,UAAU,EAAE,MAAM;wBAClB,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,CAAC;wBACV,KAAK,EAAE,MAAM;qBACd,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,gBAC/D,kBAAkB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,YAEjD,cAAK,GAAG,EAAE,IAAI,EAAE,GAAG,EAAC,aAAa,EAAC,SAAS,EAAC,iBAAiB,GAAG,GACzD,GACJ,EACP,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,YAC3B,0BACE,iBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE;gCACL,QAAQ,EAAE,UAAU;gCACpB,OAAO,EAAE,OAAO;gCAChB,UAAU,EAAE,MAAM;gCAClB,MAAM,EAAE,MAAM;gCACd,KAAK,EAAE,SAAS;gCAChB,MAAM,EAAE,SAAS;gCACjB,cAAc,EAAE,WAAW;gCAC3B,OAAO,EAAE,CAAC;gCACV,SAAS,EAAE,MAAM;6BAClB,EACD,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,gBAC/D,kBAAkB,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,YAEhD,KAAK,CAAC,MAAM,CAAC,IAAI,GACX,EACR,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,wBAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,GAAO,EAC7D,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,0BAC3C,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,EAC7C,KAAK,CAAC,MAAM,CAAC,KAAK,IACf,IACF,GACD,EACP,eAAM,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,EAAE,GAAS,IACjG,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare class AnalyticsHelper {
2
+ static init: () => void;
3
+ static logPageView: () => void;
4
+ static logEvent: (category: string, action: string, label?: string) => void;
5
+ private static setChurchKey;
6
+ }
7
+ //# sourceMappingURL=AnalyticsHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsHelper.d.ts","sourceRoot":"","sources":["../../src/helpers/AnalyticsHelper.ts"],"names":[],"mappings":"AAGA,qBAAa,eAAe;IAE1B,MAAM,CAAC,IAAI,aAKV;IAED,MAAM,CAAC,WAAW,aAKjB;IAED,MAAM,CAAC,QAAQ,GAAI,UAAU,MAAM,EAAE,QAAQ,MAAM,EAAE,QAAO,MAAM,UAKjE;IAED,OAAO,CAAC,MAAM,CAAC,YAAY,CAG1B;CAEF"}
@@ -0,0 +1,30 @@
1
+ var _a;
2
+ import ReactGA from "react-ga4";
3
+ import { CommonEnvironmentHelper, UserHelper } from "@churchapps/helpers";
4
+ export class AnalyticsHelper {
5
+ }
6
+ _a = AnalyticsHelper;
7
+ AnalyticsHelper.init = () => {
8
+ if (CommonEnvironmentHelper.GoogleAnalyticsTag !== "" && typeof (window) !== "undefined") {
9
+ ReactGA.initialize([{ trackingId: CommonEnvironmentHelper.GoogleAnalyticsTag }]);
10
+ _a.logPageView();
11
+ }
12
+ };
13
+ AnalyticsHelper.logPageView = () => {
14
+ if (CommonEnvironmentHelper.GoogleAnalyticsTag !== "" && typeof (window) !== "undefined") {
15
+ _a.setChurchKey();
16
+ ReactGA.send({ hitType: "pageview", page: window.location.pathname + window.location.search });
17
+ }
18
+ };
19
+ AnalyticsHelper.logEvent = (category, action, label) => {
20
+ if (CommonEnvironmentHelper.GoogleAnalyticsTag !== "" && typeof (window) !== "undefined") {
21
+ _a.setChurchKey();
22
+ ReactGA.event({ category, action, label });
23
+ }
24
+ };
25
+ AnalyticsHelper.setChurchKey = () => {
26
+ const churchKey = UserHelper?.currentUserChurch?.church?.subDomain;
27
+ if (churchKey)
28
+ ReactGA.set({ church_key: churchKey });
29
+ };
30
+ //# sourceMappingURL=AnalyticsHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnalyticsHelper.js","sourceRoot":"","sources":["../../src/helpers/AnalyticsHelper.ts"],"names":[],"mappings":";AAAA,OAAO,OAAO,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE1E,MAAM,OAAO,eAAe;;;AAEnB,oBAAI,GAAG,GAAG,EAAE;IACjB,IAAI,uBAAuB,CAAC,kBAAkB,KAAK,EAAE,IAAI,OAAM,CAAC,MAAM,CAAC,KAAG,WAAW,EAAE,CAAC;QACtF,OAAO,CAAC,UAAU,CAAC,CAAC,EAAC,UAAU,EAAE,uBAAuB,CAAC,kBAAkB,EAAC,CAAC,CAAC,CAAC;QAC/E,EAAe,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC;AACH,CAAC,AALU,CAKV;AAEM,2BAAW,GAAG,GAAG,EAAE;IACxB,IAAI,uBAAuB,CAAC,kBAAkB,KAAK,EAAE,IAAI,OAAM,CAAC,MAAM,CAAC,KAAG,WAAW,EAAE,CAAC;QACtF,EAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACjG,CAAC;AACH,CAAC,AALiB,CAKjB;AAEM,wBAAQ,GAAG,CAAC,QAAgB,EAAE,MAAc,EAAE,KAAa,EAAE,EAAE;IACpE,IAAI,uBAAuB,CAAC,kBAAkB,KAAK,EAAE,IAAI,OAAM,CAAC,MAAM,CAAC,KAAG,WAAW,EAAE,CAAC;QACtF,EAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC,AALc,CAKd;AAEc,4BAAY,GAAG,GAAG,EAAE;IACjC,MAAM,SAAS,GAAG,UAAU,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,CAAC;IACnE,IAAI,SAAS;QAAE,OAAO,CAAC,GAAG,CAAC,EAAC,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;AACvD,CAAC,AAH0B,CAG1B"}
@@ -0,0 +1,13 @@
1
+ export declare class Locale {
2
+ private static readonly supportedLanguages;
3
+ private static readonly extraCodes;
4
+ private static readonly fallbacks;
5
+ static init: (backends: string[]) => Promise<void>;
6
+ private static deepMerge;
7
+ private static isObject;
8
+ static t(key: string, options?: Record<string, unknown>): string;
9
+ static label(key: string): string;
10
+ static isInitialized(): boolean;
11
+ static initFallbackMode(): void;
12
+ }
13
+ //# sourceMappingURL=Locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Locale.d.ts","sourceRoot":"","sources":["../../src/helpers/Locale.ts"],"names":[],"mappings":"AAgBA,qBAAa,MAAM;IAClB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAaxC;IACF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAA4C;IAG9E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CA0D/B;IAEF,MAAM,CAAC,IAAI,GAAU,UAAU,MAAM,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC,CAiErD;IAEF,OAAO,CAAC,MAAM,CAAC,SAAS;IAgBxB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAKvB,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAqChE,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAKjC,MAAM,CAAC,aAAa,IAAI,OAAO;IAK/B,MAAM,CAAC,gBAAgB,IAAI,IAAI;CAG/B"}
@@ -0,0 +1,200 @@
1
+ var _a;
2
+ import i18n from "i18next";
3
+ import { initReactI18next } from "react-i18next/initReactI18next";
4
+ import LanguageDetector from "i18next-browser-languagedetector";
5
+ import Backend from "i18next-chained-backend";
6
+ export class Locale {
7
+ static deepMerge(target, source) {
8
+ for (const key in source) {
9
+ if (this.isObject(source[key])) {
10
+ if (!target[key])
11
+ Object.assign(target, { [key]: {} });
12
+ this.deepMerge(target[key], source[key]);
13
+ }
14
+ else
15
+ Object.assign(target, { [key]: source[key] });
16
+ }
17
+ return target;
18
+ }
19
+ static isObject(obj) {
20
+ return obj !== null && typeof obj === "object" && !Array.isArray(obj);
21
+ }
22
+ // New helper method that uses i18n with fallback
23
+ static t(key, options) {
24
+ try {
25
+ // Check if i18n is initialized and has the key
26
+ if (i18n && i18n.isInitialized && i18n.exists(key)) {
27
+ const translation = i18n.t(key, options);
28
+ // If translation is not just the key (which indicates missing translation)
29
+ if (translation !== key) {
30
+ return translation;
31
+ }
32
+ }
33
+ }
34
+ catch (error) {
35
+ console.warn(`Error getting translation for key "${key}":`, error);
36
+ }
37
+ // Fall back to our local fallbacks
38
+ const fallback = this.fallbacks[key];
39
+ if (fallback) {
40
+ // Handle simple string replacement like {} placeholders
41
+ if (options && typeof options === 'object') {
42
+ let result = fallback;
43
+ Object.entries(options).forEach(([placeholder, value]) => {
44
+ if (typeof value === 'string' || typeof value === 'number') {
45
+ result = result.replace(`{${placeholder}}`, String(value));
46
+ result = result.replace('{}', String(value)); // Handle unnamed placeholders
47
+ }
48
+ });
49
+ return result;
50
+ }
51
+ return fallback;
52
+ }
53
+ // Ultimate fallback - return the key itself with a warning
54
+ console.warn(`No translation found for key: ${key}`);
55
+ return key;
56
+ }
57
+ // Keep the old method for backward compatibility
58
+ static label(key) {
59
+ return this.t(key);
60
+ }
61
+ // Helper method to check if translations are available
62
+ static isInitialized() {
63
+ return i18n && i18n.isInitialized;
64
+ }
65
+ // Method to set up basic fallback-only mode (no i18n)
66
+ static initFallbackMode() {
67
+ console.info("Locale: Running in fallback mode with English labels only");
68
+ }
69
+ }
70
+ _a = Locale;
71
+ Locale.supportedLanguages = [
72
+ "de",
73
+ "en",
74
+ "es",
75
+ "fr",
76
+ "hi",
77
+ "it",
78
+ "ko",
79
+ "no",
80
+ "pt",
81
+ "ru",
82
+ "tl",
83
+ "zh",
84
+ ];
85
+ Locale.extraCodes = { no: ["nb", "nn"] };
86
+ // English fallbacks for all login-related labels
87
+ Locale.fallbacks = {
88
+ // Common
89
+ "common.pleaseWait": "Please wait...",
90
+ "common.search": "Search",
91
+ // Login
92
+ "login.createAccount": "Create an Account",
93
+ "login.email": "Email",
94
+ "login.expiredLink": "The current link is expired.",
95
+ "login.forgot": "Forgot Password",
96
+ "login.goLogin": "Go to Login",
97
+ "login.login": "Login",
98
+ "login.password": "Password",
99
+ "login.register": "Register",
100
+ "login.registerThankYou": "Thank you for registering! Please check your email to verify your account.",
101
+ "login.requestLink": "Request a new reset link",
102
+ "login.reset": "Reset",
103
+ "login.resetInstructions": "Enter your email address to request a password reset.",
104
+ "login.resetPassword": "Reset Password",
105
+ "login.resetSent": "Password reset email sent!",
106
+ "login.setPassword": "Set Password",
107
+ "login.signIn": "Sign In",
108
+ "login.signInTitle": "Please Sign In",
109
+ "login.verifyPassword": "Verify Password",
110
+ "login.welcomeName": "Welcome back, {}!",
111
+ "login.welcomeBack": "Welcome back",
112
+ // Login validation
113
+ "login.validate.email": "Please enter a valid email address.",
114
+ "login.validate.firstName": "Please enter your first name.",
115
+ "login.validate.invalid": "Invalid login. Please check your email or password.",
116
+ "login.validate.lastName": "Please enter your last name.",
117
+ "login.validate.password": "Please enter a password.",
118
+ "login.validate.passwordLength": "Password must be at least 8 characters long.",
119
+ "login.validate.passwordMatch": "Passwords do not match.",
120
+ "login.validate.selectingChurch": "Please select a church.",
121
+ // Church selection
122
+ "selectChurch.address1": "Address Line 1",
123
+ "selectChurch.address2": "Address Line 2",
124
+ "selectChurch.another": "Choose another church",
125
+ "selectChurch.city": "City",
126
+ "selectChurch.confirmRegister": "Are you sure you wish to register a new church?",
127
+ "selectChurch.country": "Country",
128
+ "selectChurch.name": "Church Name",
129
+ "selectChurch.noMatches": "No matches found.",
130
+ "selectChurch.register": "Register a New Church",
131
+ "selectChurch.selectChurch": "Select a Church",
132
+ "selectChurch.state": "State / Province",
133
+ "selectChurch.zip": "Zip / Postal Code",
134
+ // Church selection validation
135
+ "selectChurch.validate.address": "Address cannot be blank.",
136
+ "selectChurch.validate.city": "City cannot be blank.",
137
+ "selectChurch.validate.country": "Country cannot be blank.",
138
+ "selectChurch.validate.name": "Church name cannot be blank.",
139
+ "selectChurch.validate.state": "State/Province cannot be blank.",
140
+ "selectChurch.validate.zip": "Zip/Postal code cannot be blank."
141
+ };
142
+ Locale.init = async (backends) => {
143
+ const resources = {};
144
+ let langs = ["en"];
145
+ if (typeof navigator !== "undefined") {
146
+ const browserLang = navigator.language.split("-")[0];
147
+ const mappedLang = Object.keys(_a.extraCodes).find((code) => _a.extraCodes[code].includes(browserLang)) || browserLang;
148
+ const notSupported = _a.supportedLanguages.indexOf(mappedLang) === -1;
149
+ langs = mappedLang === "en" || notSupported ? ["en"] : ["en", mappedLang];
150
+ }
151
+ // Initialize resources with fallbacks
152
+ resources["en"] = { translation: _a.fallbacks };
153
+ // Load translations for each language
154
+ for (const lang of langs) {
155
+ if (!resources[lang]) {
156
+ resources[lang] = { translation: {} };
157
+ }
158
+ try {
159
+ for (const backend of backends) {
160
+ const url = backend.replace("{{lng}}", lang);
161
+ try {
162
+ const response = await fetch(url);
163
+ if (response.ok) {
164
+ const data = await response.json();
165
+ resources[lang].translation = _a.deepMerge(resources[lang].translation, data);
166
+ }
167
+ }
168
+ catch (error) {
169
+ console.warn(`Failed to load translations from ${url}:`, error);
170
+ }
171
+ }
172
+ }
173
+ catch (error) {
174
+ console.warn(`Failed to load translations for language ${lang}:`, error);
175
+ }
176
+ }
177
+ // Initialize i18n
178
+ try {
179
+ await i18n
180
+ .use(Backend)
181
+ .use(LanguageDetector)
182
+ .use(initReactI18next)
183
+ .init({
184
+ resources,
185
+ fallbackLng: "en",
186
+ debug: false,
187
+ interpolation: {
188
+ escapeValue: false,
189
+ },
190
+ detection: {
191
+ order: ["navigator"],
192
+ caches: ["localStorage"],
193
+ },
194
+ });
195
+ }
196
+ catch (error) {
197
+ console.warn("Failed to initialize i18n:", error);
198
+ }
199
+ };
200
+ //# sourceMappingURL=Locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Locale.js","sourceRoot":"","sources":["../../src/helpers/Locale.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { Locale } from "./Locale";
2
+ export { AnalyticsHelper } from "./AnalyticsHelper";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Locale } from "./Locale";
2
+ export { AnalyticsHelper } from "./AnalyticsHelper";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}