dce-reactkit 2.0.10 → 3.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/dist/cjs/index.js +36424 -0
  2. package/dist/cjs/index.js.map +1 -0
  3. package/dist/cjs/types/components/AppWrapper.d.ts +40 -0
  4. package/{lib → dist/cjs/types}/components/ErrorBox.d.ts +0 -0
  5. package/{lib → dist/cjs/types}/components/LoadingSpinner.d.ts +1 -0
  6. package/dist/cjs/types/components/Modal.d.ts +40 -0
  7. package/dist/cjs/types/components/TabBox.d.ts +11 -0
  8. package/{lib → dist/cjs/types}/errors/ErrorWithCode.d.ts +0 -0
  9. package/{lib → dist/cjs/types}/helpers/abbreviate.d.ts +1 -0
  10. package/{lib → dist/cjs/types}/helpers/avg.d.ts +0 -0
  11. package/{lib → dist/cjs/types}/helpers/ceilToNumDecimals.d.ts +0 -0
  12. package/{lib → dist/cjs/types}/helpers/floorToNumDecimals.d.ts +0 -0
  13. package/{lib → dist/cjs/types}/helpers/forceNumIntoBounds.d.ts +0 -0
  14. package/{lib → dist/cjs/types}/helpers/padDecimalZeros.d.ts +0 -0
  15. package/{lib → dist/cjs/types}/helpers/padZerosLeft.d.ts +0 -0
  16. package/{lib → dist/cjs/types}/helpers/roundToNumDecimals.d.ts +0 -0
  17. package/{lib → dist/cjs/types}/helpers/sum.d.ts +0 -0
  18. package/{lib → dist/cjs/types}/helpers/waitMs.d.ts +0 -0
  19. package/dist/cjs/types/index.d.ts +22 -0
  20. package/dist/cjs/types/types/ModalButtonType.d.ts +17 -0
  21. package/dist/cjs/types/types/ModalSize.d.ts +11 -0
  22. package/dist/cjs/types/types/ModalType.d.ts +16 -0
  23. package/{lib → dist/cjs/types}/types/ReactKitErrorCode.d.ts +0 -0
  24. package/{lib → dist/cjs/types}/types/Variant.d.ts +0 -0
  25. package/dist/esm/index.js +36375 -0
  26. package/dist/esm/index.js.map +1 -0
  27. package/dist/esm/types/components/AppWrapper.d.ts +40 -0
  28. package/dist/esm/types/components/ErrorBox.d.ts +12 -0
  29. package/dist/esm/types/components/LoadingSpinner.d.ts +7 -0
  30. package/dist/esm/types/components/Modal.d.ts +40 -0
  31. package/dist/esm/types/components/TabBox.d.ts +11 -0
  32. package/dist/esm/types/errors/ErrorWithCode.d.ts +9 -0
  33. package/dist/esm/types/helpers/abbreviate.d.ts +10 -0
  34. package/dist/esm/types/helpers/avg.d.ts +8 -0
  35. package/{src/helpers/ceilToNumDecimals.tsx → dist/esm/types/helpers/ceilToNumDecimals.d.ts} +1 -5
  36. package/{src/helpers/floorToNumDecimals.tsx → dist/esm/types/helpers/floorToNumDecimals.d.ts} +1 -5
  37. package/{src/helpers/forceNumIntoBounds.tsx → dist/esm/types/helpers/forceNumIntoBounds.d.ts} +1 -10
  38. package/dist/esm/types/helpers/padDecimalZeros.d.ts +10 -0
  39. package/{src/helpers/padZerosLeft.tsx → dist/esm/types/helpers/padZerosLeft.d.ts} +1 -13
  40. package/{src/helpers/roundToNumDecimals.tsx → dist/esm/types/helpers/roundToNumDecimals.d.ts} +1 -5
  41. package/{src/helpers/sum.tsx → dist/esm/types/helpers/sum.d.ts} +1 -9
  42. package/{src/helpers/waitMs.tsx → dist/esm/types/helpers/waitMs.d.ts} +1 -6
  43. package/dist/esm/types/index.d.ts +22 -0
  44. package/dist/esm/types/types/ModalButtonType.d.ts +17 -0
  45. package/dist/esm/types/types/ModalSize.d.ts +11 -0
  46. package/dist/esm/types/types/ModalType.d.ts +16 -0
  47. package/dist/esm/types/types/ReactKitErrorCode.d.ts +13 -0
  48. package/dist/esm/types/types/Variant.d.ts +15 -0
  49. package/dist/index.d.ts +274 -0
  50. package/package.json +23 -22
  51. package/.eslintrc.js +0 -95
  52. package/lib/components/AppWrapper.d.ts +0 -20
  53. package/lib/components/AppWrapper.js +0 -133
  54. package/lib/components/AppWrapper.js.map +0 -1
  55. package/lib/components/ErrorBox.js +0 -65
  56. package/lib/components/ErrorBox.js.map +0 -1
  57. package/lib/components/LoadingSpinner.js +0 -41
  58. package/lib/components/LoadingSpinner.js.map +0 -1
  59. package/lib/components/Modal.d.ts +0 -69
  60. package/lib/components/Modal.js +0 -315
  61. package/lib/components/Modal.js.map +0 -1
  62. package/lib/errors/ErrorWithCode.js +0 -33
  63. package/lib/errors/ErrorWithCode.js.map +0 -1
  64. package/lib/helpers/abbreviate.js +0 -21
  65. package/lib/helpers/abbreviate.js.map +0 -1
  66. package/lib/helpers/avg.js +0 -24
  67. package/lib/helpers/avg.js.map +0 -1
  68. package/lib/helpers/ceilToNumDecimals.js +0 -15
  69. package/lib/helpers/ceilToNumDecimals.js.map +0 -1
  70. package/lib/helpers/floorToNumDecimals.js +0 -15
  71. package/lib/helpers/floorToNumDecimals.js.map +0 -1
  72. package/lib/helpers/forceNumIntoBounds.js +0 -15
  73. package/lib/helpers/forceNumIntoBounds.js.map +0 -1
  74. package/lib/helpers/handleError.d.ts +0 -14
  75. package/lib/helpers/handleError.js +0 -54
  76. package/lib/helpers/handleError.js.map +0 -1
  77. package/lib/helpers/handleSuccess.d.ts +0 -8
  78. package/lib/helpers/handleSuccess.js +0 -20
  79. package/lib/helpers/handleSuccess.js.map +0 -1
  80. package/lib/helpers/padDecimalZeros.js +0 -30
  81. package/lib/helpers/padDecimalZeros.js.map +0 -1
  82. package/lib/helpers/padZerosLeft.js +0 -21
  83. package/lib/helpers/padZerosLeft.js.map +0 -1
  84. package/lib/helpers/parseRequest.d.ts +0 -21
  85. package/lib/helpers/parseRequest.js +0 -240
  86. package/lib/helpers/parseRequest.js.map +0 -1
  87. package/lib/helpers/roundToNumDecimals.js +0 -15
  88. package/lib/helpers/roundToNumDecimals.js.map +0 -1
  89. package/lib/helpers/showFatalError.d.ts +0 -2
  90. package/lib/helpers/showFatalError.js +0 -5
  91. package/lib/helpers/showFatalError.js.map +0 -1
  92. package/lib/helpers/sum.js +0 -15
  93. package/lib/helpers/sum.js.map +0 -1
  94. package/lib/helpers/visitServerEndpoint.d.ts +0 -23
  95. package/lib/helpers/visitServerEndpoint.js +0 -135
  96. package/lib/helpers/visitServerEndpoint.js.map +0 -1
  97. package/lib/helpers/waitMs.js +0 -55
  98. package/lib/helpers/waitMs.js.map +0 -1
  99. package/lib/types/ParamType.d.ts +0 -17
  100. package/lib/types/ParamType.js +0 -21
  101. package/lib/types/ParamType.js.map +0 -1
  102. package/lib/types/ReactKitErrorCode.js +0 -18
  103. package/lib/types/ReactKitErrorCode.js.map +0 -1
  104. package/lib/types/Variant.js +0 -19
  105. package/lib/types/Variant.js.map +0 -1
  106. package/src/components/AppWrapper.tsx +0 -189
  107. package/src/components/ErrorBox.tsx +0 -124
  108. package/src/components/LoadingSpinner.tsx +0 -105
  109. package/src/components/Modal.tsx +0 -447
  110. package/src/errors/ErrorWithCode.tsx +0 -15
  111. package/src/helpers/abbreviate.tsx +0 -23
  112. package/src/helpers/avg.tsx +0 -22
  113. package/src/helpers/handleError.ts +0 -65
  114. package/src/helpers/handleSuccess.ts +0 -18
  115. package/src/helpers/padDecimalZeros.tsx +0 -32
  116. package/src/helpers/parseRequest.ts +0 -299
  117. package/src/helpers/showFatalError.tsx +0 -3
  118. package/src/helpers/visitServerEndpoint.tsx +0 -110
  119. package/src/types/ParamType.ts +0 -18
  120. package/src/types/ReactKitErrorCode.tsx +0 -16
  121. package/src/types/Variant.tsx +0 -16
  122. package/tsconfig.json +0 -24
package/package.json CHANGED
@@ -1,38 +1,39 @@
1
1
  {
2
2
  "name": "dce-reactkit",
3
- "version": "2.0.10",
4
- "main": "index.js",
5
- "module": "index.js",
3
+ "version": "3.0.0-beta.1",
4
+ "description": "Shared components for Harvard DCE apps",
5
+ "main": "dist/cjs/index.js",
6
+ "module": "dist/esm/index.js",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "types": "dist/index.d.ts",
6
11
  "scripts": {
7
- "build": "tsc --project ./tsconfig.json"
12
+ "build": "rm -rf dist && rollup -c"
8
13
  },
9
14
  "repository": {
10
15
  "type": "git",
11
- "url": "git+https://github.com/harvard-edtech/dce-reactkit"
16
+ "url": "git+https://github.com/harvard-edtech/dce-reactkit.git"
12
17
  },
13
18
  "author": "Gabe Abrams <gabeabrams@gmail.com>",
14
19
  "license": "MIT",
20
+ "bugs": {
21
+ "url": "https://github.com/harvard-edtech/dce-reactkit/issues"
22
+ },
15
23
  "homepage": "https://github.com/harvard-edtech/dce-reactkit#readme",
16
- "dependencies": {
17
- "@fortawesome/fontawesome-svg-core": "^6.1.1",
18
- "@fortawesome/free-regular-svg-icons": "^6.1.1",
24
+ "peerDependencies": {
25
+ "react": "^18.0.0",
26
+ "react-bootstrap": "^2.3.0",
19
27
  "@fortawesome/free-solid-svg-icons": "^6.1.1",
20
- "@fortawesome/react-fontawesome": "^0.1.18",
21
- "caccl": "^2.0.0-beta.39",
22
- "react-bootstrap": "^2.2.3"
28
+ "@fortawesome/react-fontawesome": "^0.1.18"
23
29
  },
24
30
  "devDependencies": {
25
- "@types/express": "^4.17.13",
26
- "@typescript-eslint/eslint-plugin": "^5.18.0",
27
- "@typescript-eslint/parser": "^5.18.0",
28
- "eslint": "^8.12.0",
29
- "eslint-config-airbnb": "^19.0.4",
30
- "eslint-config-airbnb-typescript": "^17.0.0",
31
- "eslint-plugin-import": "^2.26.0",
32
- "eslint-plugin-jest": "^26.1.3",
33
- "eslint-plugin-jsx-a11y": "^6.5.1",
34
- "eslint-plugin-react": "^7.29.4",
35
- "eslint-plugin-react-hooks": "^4.4.0",
31
+ "@rollup/plugin-commonjs": "^22.0.0",
32
+ "@rollup/plugin-node-resolve": "^13.2.1",
33
+ "@rollup/plugin-typescript": "^8.3.2",
34
+ "@types/react": "^18.0.7",
35
+ "rollup": "^2.70.2",
36
+ "rollup-plugin-dts": "^4.2.1",
36
37
  "typescript": "^4.6.3"
37
38
  }
38
39
  }
package/.eslintrc.js DELETED
@@ -1,95 +0,0 @@
1
- const config = {
2
- extends: [
3
- 'airbnb',
4
- 'airbnb/hooks',
5
- 'react-app',
6
- 'react-app/jest',
7
- ],
8
- overrides: [
9
- {
10
- files: [
11
- '*.ts',
12
- '*.tsx',
13
- ],
14
- extends: [
15
- 'airbnb-typescript',
16
- ],
17
- parserOptions: {
18
- project: './tsconfig.json',
19
- tsconfigRootDir: __dirname,
20
- sourceType: 'module',
21
- },
22
- rules: {
23
- '@typescript-eslint/lines-between-class-members': 'off',
24
- '@typescript-eslint/no-unused-expressions': 'off',
25
- },
26
- },
27
- ],
28
- rules: {
29
- 'arrow-body-style': [
30
- 'warn',
31
- 'always',
32
- ],
33
- 'react/prop-types': 'off',
34
- 'react/function-component-definition': [
35
- 2,
36
- {
37
- namedComponents: 'arrow-function',
38
- },
39
- ],
40
- 'no-spaced-func': 'off',
41
- 'react-hooks/exhaustive-deps': 'off',
42
- 'lines-between-class-members': 'off',
43
- 'no-case-declarations': 'off',
44
- 'react/require-default-props': 'off',
45
- 'react/react-in-jsx-scope': 'off',
46
- 'arrow-parens': [
47
- 'warn',
48
- 'always',
49
- ],
50
- 'comma-dangle': [
51
- 'error',
52
- {
53
- arrays: 'always-multiline',
54
- objects: 'always-multiline',
55
- imports: 'always-multiline',
56
- exports: 'always-multiline',
57
- functions: 'always-multiline',
58
- },
59
- ],
60
- 'consistent-return': 'off',
61
- 'id-length': 'off',
62
- 'max-len': [
63
- 'error',
64
- {
65
- code: 125,
66
- ignoreStrings: true,
67
- ignoreTemplateLiterals: true,
68
- ignoreUrls: true,
69
- },
70
- ],
71
- 'newline-per-chained-call': [
72
- 'error',
73
- {
74
- ignoreChainWithDepth: 2,
75
- },
76
- ],
77
- 'no-plusplus': [
78
- 'warn',
79
- {
80
- allowForLoopAfterthoughts: true,
81
- },
82
- ],
83
- 'prefer-template': 1,
84
- radix: 'error',
85
- 'no-await-in-loop': 'off',
86
- 'max-params': [
87
- 'warn',
88
- {
89
- max: 3,
90
- },
91
- ],
92
- },
93
- };
94
-
95
- module.exports = config;
@@ -1,20 +0,0 @@
1
- /**
2
- * A wrapper for the entire React app that adds global functionality like
3
- * handling for fatal error messages
4
- * @author Gabe Abrams
5
- */
6
- import React from 'react';
7
- declare type Props = {
8
- children: React.ReactNode;
9
- dark?: boolean;
10
- sessionExpiredMessage?: string;
11
- };
12
- /**
13
- * Show a fatal error message
14
- * @author Gabe Abrams
15
- * @param error the error to show
16
- * @param [errorTitle] title of the error box
17
- */
18
- export declare const showFatalError: (error: any, errorTitle?: string) => void;
19
- declare const AppWrapper: (props: Props) => React.ReactElement;
20
- export default AppWrapper;
@@ -1,133 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.showFatalError = void 0;
18
- var jsx_runtime_1 = require("react/jsx-runtime");
19
- /**
20
- * A wrapper for the entire React app that adds global functionality like
21
- * handling for fatal error messages
22
- * @author Gabe Abrams
23
- */
24
- // Import React
25
- var react_1 = require("react");
26
- // Import shared components
27
- var ErrorBox_1 = __importDefault(require("./ErrorBox"));
28
- // Import helpers
29
- var visitServerEndpoint_1 = require("../helpers/visitServerEndpoint");
30
- // Import shared types
31
- var ReactKitErrorCode_1 = __importDefault(require("../types/ReactKitErrorCode"));
32
- // Import custom errors
33
- var ErrorWithCode_1 = __importDefault(require("../errors/ErrorWithCode"));
34
- /*------------------------------------------------------------------------*/
35
- /* Static Helpers */
36
- /*------------------------------------------------------------------------*/
37
- // Stored copies of setters
38
- var setFatalErrorMessage;
39
- var setFatalErrorCode;
40
- var setFatalErrorTitle;
41
- /**
42
- * Show a fatal error message
43
- * @author Gabe Abrams
44
- * @param error the error to show
45
- * @param [errorTitle] title of the error box
46
- */
47
- var showFatalError = function (error, errorTitle) {
48
- var _a, _b;
49
- if (errorTitle === void 0) { errorTitle = 'An Error Occurred'; }
50
- // Determine message and code
51
- var message = (typeof error === 'string'
52
- ? error.trim()
53
- : String((_a = error.message) !== null && _a !== void 0 ? _a : 'An unknown error occurred.'));
54
- var code = (typeof error === 'string'
55
- ? ReactKitErrorCode_1.default.NoCode
56
- : String((_b = error.code) !== null && _b !== void 0 ? _b : ReactKitErrorCode_1.default.NoCode));
57
- // Handle case where app hasn't loaded
58
- if (!setFatalErrorMessage || !setFatalErrorCode) {
59
- return alert("An error has occurred: ".concat(message, " (code: ").concat(code, "). Please contact support."));
60
- }
61
- // Use setters
62
- setFatalErrorMessage(message);
63
- setFatalErrorCode(code);
64
- setFatalErrorTitle(errorTitle);
65
- };
66
- exports.showFatalError = showFatalError;
67
- /*------------------------------------------------------------------------*/
68
- /* Component */
69
- /*------------------------------------------------------------------------*/
70
- var AppWrapper = function (props) {
71
- /*------------------------------------------------------------------------*/
72
- /* Setup */
73
- /*------------------------------------------------------------------------*/
74
- /* -------------- Props ------------- */
75
- var children = props.children, dark = props.dark, _a = props.sessionExpiredMessage, sessionExpiredMessage = _a === void 0 ? 'Your session has expired. Please go back to Canvas and start over.' : _a;
76
- /* -------------- State ------------- */
77
- // Fatal error
78
- var _b = (0, react_1.useState)(null), fatalErrorMessage = _b[0], setFatalErrorMessageInner = _b[1];
79
- setFatalErrorMessage = setFatalErrorMessageInner;
80
- var _c = (0, react_1.useState)(null), fatalErrorCode = _c[0], setFatalErrorCodeInner = _c[1];
81
- setFatalErrorCode = setFatalErrorCodeInner;
82
- var _d = (0, react_1.useState)(null), fatalErrorTitle = _d[0], setFatalErrorTitleInner = _d[1];
83
- setFatalErrorTitle = setFatalErrorTitleInner;
84
- // Session expired
85
- var _e = (0, react_1.useState)(false), sessionHasExpired = _e[0], setSessionHasExpired = _e[1];
86
- /*------------------------------------------------------------------------*/
87
- /* Lifecycle Functions */
88
- /*------------------------------------------------------------------------*/
89
- /**
90
- * Mount
91
- * @author Gabe Abrams
92
- */
93
- (0, react_1.useEffect)(function () {
94
- // Add session expired handler
95
- (0, visitServerEndpoint_1.setSessionExpiryHandler)(function () {
96
- // Session expired!
97
- setSessionHasExpired(true);
98
- });
99
- }, []);
100
- /*------------------------------------------------------------------------*/
101
- /* Render */
102
- /*------------------------------------------------------------------------*/
103
- /*----------------------------------------*/
104
- /* Main UI */
105
- /*----------------------------------------*/
106
- // Show error
107
- if (fatalErrorMessage || fatalErrorCode || sessionHasExpired) {
108
- // Re-encapsulate in an error
109
- var error = (sessionHasExpired
110
- ? new ErrorWithCode_1.default(fatalErrorMessage, fatalErrorCode)
111
- : new ErrorWithCode_1.default(sessionExpiredMessage, ReactKitErrorCode_1.default.SessionExpired));
112
- // Build error screen
113
- return ((0, jsx_runtime_1.jsx)("div", __assign({ style: {
114
- display: 'block',
115
- width: '100vw',
116
- minHeight: '100vh',
117
- paddingTop: '10rem',
118
- backgroundColor: (dark
119
- ? '#222'
120
- : '#fff'),
121
- } }, { children: (0, jsx_runtime_1.jsx)(ErrorBox_1.default, { title: (sessionHasExpired
122
- ? 'Session Expired'
123
- : fatalErrorTitle), error: error }) })));
124
- }
125
- // Show the app itself
126
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: children }));
127
- };
128
- /*------------------------------------------------------------------------*/
129
- /* Wrap Up */
130
- /*------------------------------------------------------------------------*/
131
- // Export component
132
- exports.default = AppWrapper;
133
- //# sourceMappingURL=AppWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppWrapper.js","sourceRoot":"","sources":["../../src/components/AppWrapper.tsx"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- var jsx_runtime_1 = require("react/jsx-runtime");
18
- // Import FontAwesome Icons
19
- var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
20
- var free_solid_svg_icons_1 = require("@fortawesome/free-solid-svg-icons");
21
- // Import shared types
22
- var ReactKitErrorCode_1 = __importDefault(require("../types/ReactKitErrorCode"));
23
- /*------------------------------------------------------------------------*/
24
- /* Component */
25
- /*------------------------------------------------------------------------*/
26
- var ErrorBox = function (props) {
27
- /*------------------------------------------------------------------------*/
28
- /* Setup */
29
- /*------------------------------------------------------------------------*/
30
- var _a;
31
- /* -------------- Props ------------- */
32
- var error = props.error, _b = props.title, title = _b === void 0 ? 'An Error Occurred' : _b, onClose = props.onClose;
33
- /*------------------------------------------------------------------------*/
34
- /* Render */
35
- /*------------------------------------------------------------------------*/
36
- // Determine error text
37
- var errorText = (typeof error === 'string'
38
- ? error.trim()
39
- : String(error.message || 'An unknown error occurred. Please contact support.'));
40
- // Error code box
41
- var errorCodeBox;
42
- if (error && error.code) {
43
- errorCodeBox = ((0, jsx_runtime_1.jsxs)("span", { children: [' ', (0, jsx_runtime_1.jsxs)("span", __assign({ style: {
44
- backgroundColor: 'white',
45
- borderRadius: '5px',
46
- paddingLeft: '3px',
47
- paddingRight: '3px',
48
- color: '#DC4150',
49
- fontVariant: 'small-caps',
50
- fontSize: '80%',
51
- whiteSpace: 'nowrap',
52
- } }, { children: ["code:", ' ', String((_a = error.code) !== null && _a !== void 0 ? _a : ReactKitErrorCode_1.default.NoCode).toUpperCase()] }))] }));
53
- }
54
- // Main UI
55
- return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: "alert alert-danger text-center", style: {
56
- maxWidth: '650px',
57
- margin: 'auto',
58
- } }, { children: [(0, jsx_runtime_1.jsxs)("h4", __assign({ className: "mb-1" }, { children: [(0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faExclamationTriangle, className: "me-2" }), title] })), (0, jsx_runtime_1.jsxs)("div", { children: [errorText, errorCodeBox] }), onClose && ((0, jsx_runtime_1.jsx)("div", __assign({ className: "mt-2" }, { children: (0, jsx_runtime_1.jsx)("button", __assign({ type: "button", className: "btn btn-light", "aria-label": "dismiss error and close this activity or view", onClick: onClose }, { children: "Close" })) })))] })));
59
- };
60
- /*------------------------------------------------------------------------*/
61
- /* Wrap Up */
62
- /*------------------------------------------------------------------------*/
63
- // Export component
64
- exports.default = ErrorBox;
65
- //# sourceMappingURL=ErrorBox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ErrorBox.js","sourceRoot":"","sources":["../../src/components/ErrorBox.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAQA,2BAA2B;AAC3B,oEAAiE;AACjE,0EAA0E;AAE1E,sBAAsB;AACtB,iFAA2D;AAe3D,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAE5E,IAAM,QAAQ,GAAoB,UAAC,KAAK;IACtC,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;;IAE5E,wCAAwC;IAGtC,IAAA,KAAK,GAGH,KAAK,MAHF,EACL,KAEE,KAAK,MAFoB,EAA3B,KAAK,mBAAG,mBAAmB,KAAA,EAC3B,OAAO,GACL,KAAK,QADA,CACC;IAEV,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAE5E,uBAAuB;IACvB,IAAM,SAAS,GAAW,CACxB,OAAO,KAAK,KAAK,QAAQ;QACvB,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE;QACd,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,oDAAoD,CAAC,CAClF,CAAC;IAEF,iBAAiB;IACjB,IAAI,YAAY,CAAC;IACjB,IAAI,KAAK,IAAK,KAAa,CAAC,IAAI,EAAE;QAChC,YAAY,GAAG,CACb,6CACG,GAAG,EACJ,2CACE,KAAK,EAAE;wBACL,eAAe,EAAE,OAAO;wBACxB,YAAY,EAAE,KAAK;wBACnB,WAAW,EAAE,KAAK;wBAClB,YAAY,EAAE,KAAK;wBACnB,KAAK,EAAE,SAAS;wBAChB,WAAW,EAAE,YAAY;wBACzB,QAAQ,EAAE,KAAK;wBACf,UAAU,EAAE,QAAQ;qBACrB,0BAGA,GAAG,EACH,MAAM,CAAC,MAAC,KAAa,CAAC,IAAI,mCAAI,2BAAiB,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,KACjE,IACF,CACR,CAAC;KACH;IAED,UAAU;IACV,OAAO,CACL,0CACE,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,MAAM,EAAE,MAAM;SACf,iBAED,yCAAI,SAAS,EAAC,MAAM,iBAClB,uBAAC,mCAAe,IACd,IAAI,EAAE,4CAAqB,EAC3B,SAAS,EAAC,MAAM,GAChB,EACD,KAAK,KACH,EACL,4CACG,SAAS,EACT,YAAY,IACT,EACL,OAAO,IAAI,CACV,yCAAK,SAAS,EAAC,MAAM,gBACnB,4CACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,eAAe,gBACd,+CAA+C,EAC1D,OAAO,EAAE,OAAO,2BAGT,IACL,CACP,KACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAE5E,mBAAmB;AACnB,kBAAe,QAAQ,CAAC"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- var jsx_runtime_1 = require("react/jsx-runtime");
15
- /**
16
- * Loading spinner/indicator
17
- * @author Gabe Abrams
18
- */
19
- // Import FontAwesome Icons
20
- var react_fontawesome_1 = require("@fortawesome/react-fontawesome");
21
- var free_solid_svg_icons_1 = require("@fortawesome/free-solid-svg-icons");
22
- /*------------------------------------------------------------------------*/
23
- /* Style */
24
- /*------------------------------------------------------------------------*/
25
- var style = "\n/* Blips */\n.LoadingSpinner-blip-1,\n.LoadingSpinner-blip-2,\n.LoadingSpinner-blip-3,\n.LoadingSpinner-blip-4 {\n font-size: 25px;\n opacity: 0.6;\n margin-top: 20px;\n margin-bottom: 20px;\n}\n\n/* First Blip */\n.LoadingSpinner-blip-1 {\n animation: LoadingSpinner-pop-animation 2s infinite;\n}\n\n/* Second Blip */\n.LoadingSpinner-blip-2 {\n animation: LoadingSpinner-pop-animation 2s infinite;\n -webkit-animation-delay: 0.1s;\n animation-delay: 0.1s;\n}\n\n/* Third Blip */\n.LoadingSpinner-blip-3 {\n animation: LoadingSpinner-pop-animation 2s infinite;\n animation-delay: 0.2s;\n}\n\n/* Fourth Blip */\n.LoadingSpinner-blip-4 {\n animation: LoadingSpinner-pop-animation 2s infinite;\n animation-delay: 0.3s;\n}\n\n/* Pop Animation for Each Blip */\n@keyframes LoadingSpinner-pop-animation {\n 0% {\n transform: scale(1.0);\n }\n 10% {\n transform: scale(1.5);\n }\n 30% {\n transform: scale(1.0);\n }\n 100% {\n transform: scale(1.0);\n }\n}\n";
26
- /*------------------------------------------------------------------------*/
27
- /* Component */
28
- /*------------------------------------------------------------------------*/
29
- var LoadingSpinner = function () {
30
- /*------------------------------------------------------------------------*/
31
- /* Render */
32
- /*------------------------------------------------------------------------*/
33
- // Add all four blips to a container
34
- return ((0, jsx_runtime_1.jsxs)("div", __assign({ className: "text-center LoadingSpinner LoadingSpinner-container" }, { children: [(0, jsx_runtime_1.jsx)("style", { children: style }), (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faCircle, className: "LoadingSpinner-blip-1 me-1" }), (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faCircle, className: "LoadingSpinner-blip-2 me-1" }), (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faCircle, className: "LoadingSpinner-blip-3 me-1" }), (0, jsx_runtime_1.jsx)(react_fontawesome_1.FontAwesomeIcon, { icon: free_solid_svg_icons_1.faCircle, className: "LoadingSpinner-blip-4" })] })));
35
- };
36
- /*------------------------------------------------------------------------*/
37
- /* Wrap Up */
38
- /*------------------------------------------------------------------------*/
39
- // Export component
40
- exports.default = LoadingSpinner;
41
- //# sourceMappingURL=LoadingSpinner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LoadingSpinner.js","sourceRoot":"","sources":["../../src/components/LoadingSpinner.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA;;;GAGG;AAEH,2BAA2B;AAC3B,oEAAiE;AACjE,0EAA6D;AAE7D,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAE5E,IAAM,KAAK,GAAG,69BAmDb,CAAC;AAEF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAE5E,IAAM,cAAc,GAAG;IACrB,4EAA4E;IAC5E,4EAA4E;IAC5E,4EAA4E;IAE5E,oCAAoC;IACpC,OAAO,CACL,0CAAK,SAAS,EAAC,qDAAqD,iBAClE,4CAAQ,KAAK,GAAS,EACtB,uBAAC,mCAAe,IACd,IAAI,EAAE,+BAAQ,EACd,SAAS,EAAC,4BAA4B,GACtC,EACF,uBAAC,mCAAe,IACd,IAAI,EAAE,+BAAQ,EACd,SAAS,EAAC,4BAA4B,GACtC,EACF,uBAAC,mCAAe,IACd,IAAI,EAAE,+BAAQ,EACd,SAAS,EAAC,4BAA4B,GACtC,EACF,uBAAC,mCAAe,IACd,IAAI,EAAE,+BAAQ,EACd,SAAS,EAAC,uBAAuB,GACjC,KACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,4EAA4E;AAC5E,4EAA4E;AAC5E,4EAA4E;AAE5E,mBAAmB;AACnB,kBAAe,cAAc,CAAC"}
@@ -1,69 +0,0 @@
1
- /**
2
- * A generic popup modal
3
- * @author Gabe Abrams
4
- */
5
- import React from 'react';
6
- import Variant from '../types/Variant';
7
- declare enum ModalType {
8
- Okay = "okay",
9
- OkayCancel = "okay-cancel",
10
- YesNo = "yes-no",
11
- YesNoCancel = "yes-no-cancel",
12
- AbandonGoBack = "abandon-goBack",
13
- ImSureCancel = "imSure-cancel",
14
- DeleteCancel = "delete-cancel",
15
- ConfirmCancel = "confirm-cancel",
16
- NoButtons = "-"
17
- }
18
- declare enum ModalSize {
19
- Small = "sm",
20
- Medium = "md",
21
- Large = "lg",
22
- ExtraLarge = "xl"
23
- }
24
- declare enum ButtonType {
25
- Okay = "okay",
26
- Cancel = "cancel",
27
- Yes = "yes",
28
- No = "no",
29
- Abandon = "abandon",
30
- GoBack = "goBack",
31
- Continue = "continue",
32
- ImSure = "imSure",
33
- Delete = "delete",
34
- Confirm = "confirm"
35
- }
36
- declare type Props = {
37
- type?: ModalType;
38
- size?: ModalSize;
39
- title?: React.ReactNode;
40
- children?: React.ReactNode;
41
- onClose?: (type: ButtonType) => void;
42
- okayLabel?: string;
43
- okayVariant?: Variant;
44
- cancelLabel?: string;
45
- cancelVariant?: Variant;
46
- yesLabel?: string;
47
- yesVariant?: Variant;
48
- noLabel?: string;
49
- noVariant?: Variant;
50
- abandonLabel?: string;
51
- abandonVariant?: Variant;
52
- goBackLabel?: string;
53
- goBackVariant?: Variant;
54
- continueLabel?: string;
55
- continueVariant?: Variant;
56
- imSureLabel?: string;
57
- imSureVariant?: Variant;
58
- deleteLabel?: string;
59
- deleteVariant?: Variant;
60
- confirmLabel?: string;
61
- confirmVariant?: Variant;
62
- };
63
- declare const Modal: (React.FC<Props> & {
64
- ModalType: typeof ModalType;
65
- ModalSize: typeof ModalSize;
66
- ButtonType: typeof ButtonType;
67
- Variant: typeof Variant;
68
- });
69
- export default Modal;