dce-reactkit 3.9.4-beta-prompt.2 → 3.9.4-beta-logreviewer.2

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.
@@ -44,30 +44,6 @@ export declare const confirm: (title: string, text: string, opts?: {
44
44
  cancelButtonText?: string;
45
45
  cancelButtonVariant?: Variant;
46
46
  }) => Promise<boolean>;
47
- /**
48
- * Show a prompt modal asking the user for input
49
- * @author Yuen Ler Chow
50
- * @param title the title text to display at the top of the prompt
51
- * @param text the text to display in the prompt
52
- * @param [opts={}] additional options for the prompt dialog
53
- * @param [opts.placeholder] the placeholder text for the input field
54
- * @param [opts.defaultText] the default text for the input field
55
- * @param [opts.confirmButtonText=Okay] the text of the confirm button
56
- * @param [opts.confirmButtonVariant=Variant.Dark] the variant of the confirm button
57
- * @param [opts.cancelButtonText=Cancel] the text of the cancel button
58
- * @param [opts.cancelButtonVariant=Variant.Secondary] the variant of the cancel button
59
- * @returns Promise that resolves with the input string or null if canceled
60
- */
61
- export declare const prompt: (title: string, text: string, opts?: {
62
- defaultText?: string | undefined;
63
- placeholder?: string | undefined;
64
- confirmButtonText?: string | undefined;
65
- confirmButtonVariant?: Variant | undefined;
66
- cancelButtonText?: string | undefined;
67
- cancelButtonVariant?: Variant | undefined;
68
- minNumChars?: number | undefined;
69
- findValidationError?: ((text: string) => string | undefined) | undefined;
70
- } | undefined) => Promise<string | null>;
71
47
  /**
72
48
  * Show a fatal error message
73
49
  * @author Gabe Abrams
@@ -1,4 +1,4 @@
1
- import AppWrapper, { alert, prompt, confirm, showFatalError, addFatalErrorHandler, leaveToURL } from './components/AppWrapper';
1
+ import AppWrapper, { alert, confirm, showFatalError, addFatalErrorHandler, leaveToURL } from './components/AppWrapper';
2
2
  import LoadingSpinner from './components/LoadingSpinner';
3
3
  import ErrorBox from './components/ErrorBox';
4
4
  import Modal from './components/Modal';
@@ -99,4 +99,4 @@ import PickableItem from './components/ItemPicker/types/PickableItem';
99
99
  import DBEntry from './components/DBEntryManagerPanel/types/DBEntry';
100
100
  import DBEntryField from './components/DBEntryManagerPanel/types/DBEntryField';
101
101
  import DBEntryFieldType from './components/DBEntryManagerPanel/types/DBEntryFieldType';
102
- export { AppWrapper, LoadingSpinner, ErrorBox, Modal, TabBox, RadioButton, CheckboxButton, ButtonInputGroup, SimpleDateChooser, Drawer, PopSuccessMark, PopFailureMark, PopPendingMark, CopiableBox, ItemPicker, LogReviewer, IntelliTable, CSVDownloadButton, DBEntryManagerPanel, Tooltip, ToggleSwitch, AutoscrollToBottomContainer, MultiSwitch, Dropdown, alert, prompt, confirm, showFatalError, ErrorWithCode, MINUTE_IN_MS, HOUR_IN_MS, DAY_IN_MS, DynamicWord, abbreviate, avg, ceilToNumDecimals, floorToNumDecimals, forceNumIntoBounds, padDecimalZeros, padZerosLeft, roundToNumDecimals, sum, waitMs, getOrdinal, getTimeInfoInET, stubServerEndpoint, startMinWait, getHumanReadableDate, getPartOfDay, stringsToHumanReadableList, onlyKeepLetters, parallelLimit, getMonthName, genCSV, canReviewLogs, isMobileOrTablet, extractProp, compareArraysByProp, genCommaList, validateEmail, validatePhoneNumber, validateString, getLocalTimeInfo, idify, makeLinksClickable, prefixWithAOrAn, everyAsync, filterAsync, forEachAsync, mapAsync, someAsync, capitalize, shuffleArray, initClient, visitServerEndpoint, logClientEvent, addFatalErrorHandler, leaveToURL, combineClassNames, useForceRender, setClientEventMetadataPopulator, initServer, genRouteHandler, handleError, handleSuccess, initLogCollection, addDBEditorEndpoints, visitEndpointOnAnotherServer, ModalButtonType, ModalSize, ModalType, ReactKitErrorCode, Variant, DayOfWeek, Log, LogType, LogSource, LogAction, LogBuiltInMetadata, LogMetadataType, LogFunction, IntelliTableColumn, DropdownItemType, PickableItem, DBEntry, DBEntryField, DBEntryFieldType, ParamType, };
102
+ export { AppWrapper, LoadingSpinner, ErrorBox, Modal, TabBox, RadioButton, CheckboxButton, ButtonInputGroup, SimpleDateChooser, Drawer, PopSuccessMark, PopFailureMark, PopPendingMark, CopiableBox, ItemPicker, LogReviewer, IntelliTable, CSVDownloadButton, DBEntryManagerPanel, Tooltip, ToggleSwitch, AutoscrollToBottomContainer, MultiSwitch, Dropdown, alert, confirm, showFatalError, ErrorWithCode, MINUTE_IN_MS, HOUR_IN_MS, DAY_IN_MS, DynamicWord, abbreviate, avg, ceilToNumDecimals, floorToNumDecimals, forceNumIntoBounds, padDecimalZeros, padZerosLeft, roundToNumDecimals, sum, waitMs, getOrdinal, getTimeInfoInET, stubServerEndpoint, startMinWait, getHumanReadableDate, getPartOfDay, stringsToHumanReadableList, onlyKeepLetters, parallelLimit, getMonthName, genCSV, canReviewLogs, isMobileOrTablet, extractProp, compareArraysByProp, genCommaList, validateEmail, validatePhoneNumber, validateString, getLocalTimeInfo, idify, makeLinksClickable, prefixWithAOrAn, everyAsync, filterAsync, forEachAsync, mapAsync, someAsync, capitalize, shuffleArray, initClient, visitServerEndpoint, logClientEvent, addFatalErrorHandler, leaveToURL, combineClassNames, useForceRender, setClientEventMetadataPopulator, initServer, genRouteHandler, handleError, handleSuccess, initLogCollection, addDBEditorEndpoints, visitEndpointOnAnotherServer, ModalButtonType, ModalSize, ModalType, ReactKitErrorCode, Variant, DayOfWeek, Log, LogType, LogSource, LogAction, LogBuiltInMetadata, LogMetadataType, LogFunction, IntelliTableColumn, DropdownItemType, PickableItem, DBEntry, DBEntryField, DBEntryFieldType, ParamType, };
@@ -4,7 +4,6 @@
4
4
  */
5
5
  declare enum ModalType {
6
6
  Okay = "okay",
7
- Cancel = "cancel",
8
7
  OkayCancel = "okay-cancel",
9
8
  YesNo = "yes-no",
10
9
  YesNoCancel = "yes-no-cancel",
package/dist/index.d.ts CHANGED
@@ -63,30 +63,6 @@ declare const confirm: (title: string, text: string, opts?: {
63
63
  cancelButtonText?: string;
64
64
  cancelButtonVariant?: Variant;
65
65
  }) => Promise<boolean>;
66
- /**
67
- * Show a prompt modal asking the user for input
68
- * @author Yuen Ler Chow
69
- * @param title the title text to display at the top of the prompt
70
- * @param text the text to display in the prompt
71
- * @param [opts={}] additional options for the prompt dialog
72
- * @param [opts.placeholder] the placeholder text for the input field
73
- * @param [opts.defaultText] the default text for the input field
74
- * @param [opts.confirmButtonText=Okay] the text of the confirm button
75
- * @param [opts.confirmButtonVariant=Variant.Dark] the variant of the confirm button
76
- * @param [opts.cancelButtonText=Cancel] the text of the cancel button
77
- * @param [opts.cancelButtonVariant=Variant.Secondary] the variant of the cancel button
78
- * @returns Promise that resolves with the input string or null if canceled
79
- */
80
- declare const prompt: (title: string, text: string, opts?: {
81
- defaultText?: string | undefined;
82
- placeholder?: string | undefined;
83
- confirmButtonText?: string | undefined;
84
- confirmButtonVariant?: Variant | undefined;
85
- cancelButtonText?: string | undefined;
86
- cancelButtonVariant?: Variant | undefined;
87
- minNumChars?: number | undefined;
88
- findValidationError?: ((text: string) => string | undefined) | undefined;
89
- } | undefined) => Promise<string | null>;
90
66
  /**
91
67
  * Show a fatal error message
92
68
  * @author Gabe Abrams
@@ -155,7 +131,6 @@ declare enum ModalSize {
155
131
  */
156
132
  declare enum ModalType {
157
133
  Okay = "okay",
158
- Cancel = "cancel",
159
134
  OkayCancel = "okay-cancel",
160
135
  YesNo = "yes-no",
161
136
  YesNoCancel = "yes-no-cancel",
@@ -1715,4 +1690,4 @@ declare const LogBuiltInMetadata: {
1715
1690
  };
1716
1691
  };
1717
1692
 
1718
- export { AppWrapper, AutoscrollToBottomContainer, ButtonInputGroup, CSVDownloadButton, CheckboxButton, CopiableBox, DAY_IN_MS, DBEntry, DBEntryField, DBEntryFieldType, DBEntryManagerPanel, DayOfWeek, Drawer, Dropdown, DropdownItemType, DynamicWord, ErrorBox, ErrorWithCode, HOUR_IN_MS, IntelliTable, IntelliTableColumn, ItemPicker, LoadingSpinner, Log, LogAction, LogBuiltInMetadata, LogFunction, LogMetadataType, LogReviewer, LogSource, LogType, MINUTE_IN_MS, Modal, ModalButtonType, ModalSize, ModalType, MultiSwitch, ParamType, PickableItem, PopFailureMark, PopPendingMark, PopSuccessMark, RadioButton, ReactKitErrorCode, SimpleDateChooser, TabBox, ToggleSwitch, Tooltip, Variant, abbreviate, addDBEditorEndpoints, addFatalErrorHandler, alert, avg, canReviewLogs, capitalize, ceilToNumDecimals, combineClassNames, compareArraysByProp, confirm, everyAsync, extractProp, filterAsync, floorToNumDecimals, forEachAsync, forceNumIntoBounds, genCSV, genCommaList, genRouteHandler, getHumanReadableDate, getLocalTimeInfo, getMonthName, getOrdinal, getPartOfDay, getTimeInfoInET, handleError, handleSuccess, idify, initClient, initLogCollection, initServer, isMobileOrTablet, leaveToURL, logClientEvent, makeLinksClickable, mapAsync, onlyKeepLetters, padDecimalZeros, padZerosLeft, parallelLimit, prefixWithAOrAn, prompt, roundToNumDecimals, setClientEventMetadataPopulator, showFatalError, shuffleArray, someAsync, startMinWait, stringsToHumanReadableList, stubServerEndpoint, sum, useForceRender, validateEmail, validatePhoneNumber, validateString, visitEndpointOnAnotherServer, visitServerEndpoint, waitMs };
1693
+ export { AppWrapper, AutoscrollToBottomContainer, ButtonInputGroup, CSVDownloadButton, CheckboxButton, CopiableBox, DAY_IN_MS, DBEntry, DBEntryField, DBEntryFieldType, DBEntryManagerPanel, DayOfWeek, Drawer, Dropdown, DropdownItemType, DynamicWord, ErrorBox, ErrorWithCode, HOUR_IN_MS, IntelliTable, IntelliTableColumn, ItemPicker, LoadingSpinner, Log, LogAction, LogBuiltInMetadata, LogFunction, LogMetadataType, LogReviewer, LogSource, LogType, MINUTE_IN_MS, Modal, ModalButtonType, ModalSize, ModalType, MultiSwitch, ParamType, PickableItem, PopFailureMark, PopPendingMark, PopSuccessMark, RadioButton, ReactKitErrorCode, SimpleDateChooser, TabBox, ToggleSwitch, Tooltip, Variant, abbreviate, addDBEditorEndpoints, addFatalErrorHandler, alert, avg, canReviewLogs, capitalize, ceilToNumDecimals, combineClassNames, compareArraysByProp, confirm, everyAsync, extractProp, filterAsync, floorToNumDecimals, forEachAsync, forceNumIntoBounds, genCSV, genCommaList, genRouteHandler, getHumanReadableDate, getLocalTimeInfo, getMonthName, getOrdinal, getPartOfDay, getTimeInfoInET, handleError, handleSuccess, idify, initClient, initLogCollection, initServer, isMobileOrTablet, leaveToURL, logClientEvent, makeLinksClickable, mapAsync, onlyKeepLetters, padDecimalZeros, padZerosLeft, parallelLimit, prefixWithAOrAn, roundToNumDecimals, setClientEventMetadataPopulator, showFatalError, shuffleArray, someAsync, startMinWait, stringsToHumanReadableList, stubServerEndpoint, sum, useForceRender, validateEmail, validatePhoneNumber, validateString, visitEndpointOnAnotherServer, visitServerEndpoint, waitMs };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dce-reactkit",
3
- "version": "3.9.4-beta-prompt.2",
3
+ "version": "3.9.4-beta-logreviewer.2",
4
4
  "description": "Shared components for Harvard DCE apps",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -240,123 +240,6 @@ export const confirm = async (
240
240
  });
241
241
  };
242
242
 
243
- /*----------------------------------------*/
244
- /* --------------- Prompt -------------- */
245
- /*----------------------------------------*/
246
-
247
- // Stored copies of setters
248
- let setPromptInfo: (
249
- info:
250
- | undefined
251
- | {
252
- title: string;
253
- text: string;
254
- currentInputFieldText: string,
255
- opts: {
256
- placeholder?: string,
257
- defaultText?: string,
258
- confirmButtonText?: string,
259
- confirmButtonVariant?: Variant,
260
- cancelButtonText?: string,
261
- cancelButtonVariant?: Variant,
262
- minNumChars?: number,
263
- findValidationError?: (text: string) => string | undefined,
264
- },
265
- },
266
- ) => void;
267
-
268
- // Function to call when prompt is closed
269
- let onPromptClosed: (result: string | null) => void;
270
-
271
- /**
272
- * Show a prompt modal asking the user for input
273
- * @author Yuen Ler Chow
274
- * @param title the title text to display at the top of the prompt
275
- * @param text the text to display in the prompt
276
- * @param [opts={}] additional options for the prompt dialog
277
- * @param [opts.placeholder] the placeholder text for the input field
278
- * @param [opts.defaultText] the default text for the input field
279
- * @param [opts.confirmButtonText=Okay] the text of the confirm button
280
- * @param [opts.confirmButtonVariant=Variant.Dark] the variant of the confirm button
281
- * @param [opts.cancelButtonText=Cancel] the text of the cancel button
282
- * @param [opts.cancelButtonVariant=Variant.Secondary] the variant of the cancel button
283
- * @returns Promise that resolves with the input string or null if canceled
284
- */
285
- export const prompt = async (
286
- title: string,
287
- text: string,
288
- opts?: {
289
- defaultText?: string,
290
- placeholder?: string,
291
- confirmButtonText?: string,
292
- confirmButtonVariant?: Variant,
293
- cancelButtonText?: string,
294
- cancelButtonVariant?: Variant,
295
- minNumChars?: number,
296
- findValidationError?: (text: string) => string | undefined,
297
- },
298
- ): Promise<string | null> => {
299
- // Wait for helper to exist
300
- await waitForHelper(() => {
301
- return !!setPromptInfo;
302
- });
303
-
304
- // Fallback if prompt is not available
305
- if (!setPromptInfo) {
306
- const resultPassesValidation = false;
307
- while (!resultPassesValidation) {
308
- // eslint-disable-next-line no-alert
309
- const result = window.prompt(
310
- `${title}\n\n${text}`,
311
- opts?.defaultText ?? '',
312
- );
313
-
314
- if (result === null) {
315
- return null;
316
- }
317
-
318
- // Validate min num chars
319
- const minNumCharsValidationError = (
320
- (opts?.minNumChars && result.length < opts.minNumChars)
321
- ? `Please enter at least ${opts.minNumChars} characters.`
322
- : undefined
323
- );
324
-
325
- // Run custom validation
326
- const customValidationError = (
327
- opts?.findValidationError
328
- && opts.findValidationError(result)
329
- );
330
-
331
- // Show validation issue
332
- if (minNumCharsValidationError || customValidationError) {
333
- alert(
334
- 'Invalid Input',
335
- `${minNumCharsValidationError ?? ''} ${customValidationError ?? ''}`,
336
- );
337
- } else {
338
- return result;
339
- }
340
- }
341
- }
342
-
343
- // Return promise that resolves with result of prompt
344
- return new Promise((resolve) => {
345
- // Setup handler
346
- onPromptClosed = (result: string | null) => {
347
- resolve(result);
348
- };
349
-
350
- // Show the prompt
351
- setPromptInfo({
352
- title,
353
- text,
354
- currentInputFieldText: (opts?.defaultText ?? ''),
355
- opts: (opts ?? {}),
356
- });
357
- });
358
- };
359
-
360
243
  /*----------------------------------------*/
361
244
  /* ------------- Fatal Error ------------ */
362
245
  /*----------------------------------------*/
@@ -582,27 +465,6 @@ const AppWrapper: React.FC<Props> = (props: Props): React.ReactElement => {
582
465
  >(undefined);
583
466
  setConfirmInfo = setConfirmInfoInner;
584
467
 
585
- // Prompt
586
- const [promptInfo, setPromptInfoInner] = useState<
587
- | undefined
588
- | {
589
- title: string,
590
- text: string,
591
- currentInputFieldText: string,
592
- opts: {
593
- placeholder?: string,
594
- defaultText?: string,
595
- confirmButtonText?: string,
596
- confirmButtonVariant?: Variant,
597
- cancelButtonText?: string,
598
- cancelButtonVariant?: Variant,
599
- minNumChars?: number,
600
- findValidationError?: (text: string) => string | undefined,
601
- }
602
- }
603
- >(undefined);
604
- setPromptInfo = setPromptInfoInner;
605
-
606
468
  // Session expired
607
469
  const [
608
470
  sessionHasExpired,
@@ -669,84 +531,6 @@ const AppWrapper: React.FC<Props> = (props: Props): React.ReactElement => {
669
531
  );
670
532
  }
671
533
 
672
- /* ------------- Prompt ------------ */
673
-
674
- if (promptInfo) {
675
- // Run min char validation
676
- const minNumCharsValidationError = (
677
- (
678
- promptInfo.opts.minNumChars
679
- && promptInfo.currentInputFieldText.length < promptInfo.opts.minNumChars
680
- )
681
- ? `Please enter at least ${promptInfo.opts.minNumChars} characters.`
682
- : undefined
683
- );
684
-
685
- // Run custom validation
686
- const customValidationError = (
687
- promptInfo.opts.findValidationError
688
- && promptInfo.opts.findValidationError(promptInfo.currentInputFieldText)
689
- );
690
-
691
- modal = (
692
- <ModalForWrapper
693
- key={`prompt-${promptInfo.title}-${promptInfo.text}`}
694
- title={promptInfo.title}
695
- // Don't show ok button if there is a validation error
696
- type={(
697
- (customValidationError || minNumCharsValidationError)
698
- ? ModalType.Cancel
699
- : ModalType.OkayCancel
700
- )}
701
- okayLabel={promptInfo.opts.confirmButtonText}
702
- okayVariant={promptInfo.opts.confirmButtonVariant}
703
- cancelLabel={promptInfo.opts.cancelButtonText}
704
- cancelVariant={promptInfo.opts.cancelButtonVariant}
705
- onClose={(buttonType) => {
706
- const result = (
707
- buttonType === ModalButtonType.Okay
708
- ? promptInfo.currentInputFieldText
709
- : null
710
- );
711
-
712
- setPromptInfo(undefined);
713
-
714
- if (onPromptClosed) {
715
- onPromptClosed(result);
716
- }
717
- }}
718
- onTopOfOtherModals
719
- dontAllowBackdropExit
720
- >
721
- <div className="p-3">
722
- <p>{promptInfo.text}</p>
723
- <input
724
- type="text"
725
- className="form-control mb-2"
726
- placeholder={promptInfo.opts.placeholder}
727
- value={promptInfo.currentInputFieldText}
728
- onChange={(e) => {
729
- return setPromptInfo({
730
- ...promptInfo,
731
- currentInputFieldText: e.target.value,
732
- });
733
- }}
734
- />
735
- {minNumCharsValidationError && (
736
- <div className="text-danger fw-bold mt-2">
737
- {minNumCharsValidationError}
738
- </div>
739
- )}
740
- {customValidationError && (
741
- <div className="text-danger fw-bold mt-2">
742
- {customValidationError}
743
- </div>
744
- )}
745
- </div>
746
- </ModalForWrapper>
747
- );
748
- }
749
-
750
534
  /* ------ Custom Modal Portals ------ */
751
535
 
752
536
  // Custom modal portals