catchup-library-web 1.15.14 → 1.15.16

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/index.d.mts CHANGED
@@ -299,6 +299,14 @@ interface ILeftTextRightInputGroupProps {
299
299
  disabled?: boolean;
300
300
  errorText?: string;
301
301
  }
302
+ interface IPageTravelGroupProps {
303
+ isImageProcessing: boolean;
304
+ handleImageProcessing: () => void;
305
+ initialTotalPageNumber: number;
306
+ pageNumber: number;
307
+ setPageNumber: (e: any) => void;
308
+ setImageReady: (e: any) => void;
309
+ }
302
310
 
303
311
  declare global {
304
312
  namespace JSX {
@@ -336,6 +344,8 @@ declare const InputGroup: ({ type, title, defaultValue, placeholder, value, onFo
336
344
 
337
345
  declare const LeftTextRightInputGroup: ({ type, title, value, optionList, onChange, disabled, errorText, }: ILeftTextRightInputGroupProps) => react_jsx_runtime.JSX.Element;
338
346
 
347
+ declare const PageTravelGroup: ({ isImageProcessing, handleImageProcessing, initialTotalPageNumber, pageNumber, setPageNumber, setImageReady, }: IPageTravelGroupProps) => react_jsx_runtime.JSX.Element;
348
+
339
349
  declare const useScreenSize: () => {
340
350
  screenSize: {
341
351
  width: number;
@@ -836,4 +846,4 @@ declare const retrieveActivityMethodologyOptionList: () => {
836
846
  text: string;
837
847
  }[];
838
848
 
839
- export { ActivityBodyContent, ActivityEmptyContent, ActivityEvaluationRubricContent, ActivityLabel, ActivityPreviewByAnswerData, ActivityPreviewByData, ActivitySolutionContent, ActivityTemplateLabel, ApproveButton, BaseImage, BaseLoading, BaseLoadingWithText, BaseModal, BasePDF, BaseTitle, BlueVerticalDividerLine, BrandLabel, CancelButton, CategoryLabel, CoterieLabel, CreateButton, DeleteButton, DividerLine, DropdownActivityContent, FillInTheBlanksActivityContent, FullCard, GradeLabel, GroupingActivityContent, InfoWithText, InputGroup, InputWithSpecialExpression, LeftTextRightInputGroup, MCMAActivityContent, MCSAActivityContent, MatchingActivityContent, ONE_DAY, ONE_HOUR, ONE_MONTH, ONE_WEEK, OpenEndedActivityContent, OrderingActivityContent, OutcomeLabel, PersonalLabel, PrimaryButton, ProgressBar, PublishingHouseLabel, ScoreBar, SecondaryButton, SelectionBox, SelectionCheckbox, SelectionTab, SelectionTabFill, SubTitle, THREE_MONTHS, TimedProgressBar, TrueFalseActivityContent, VerticalDividerLine, adjustForTimezone, base64ToFile, calculateEndDateOfWeek, calculateLevenshteinDistance, calculateStartDateOfWeek, checkActivityAnswerState, checkIfAnswerIsEmpty, constructActivityAnswerMap, constructActivityAnswerStateList, constructActivityData, constructActivityItemListBodyOnly, constructActivityItemListForSolution, constructActivityItemListMaterialOnly, constructActivityItemListSolutionOnly, constructActivityItemListWithAnswersForAI, constructActivityItemListWithSolutionForAI, constructAnswerBasedOnData, constructBaseNumericIndividualModel, constructBaseVerbalIndvidualModel, constructCategoryTreeFromParentCode, constructCombinedCatchxamReportMap, constructCombinedOutcomeActivityScoreMapFromCombinedReport, constructInputWithSpecialExpressionList, constructMonthName, constructOutcomeActivityScoreList, constructUserProfileQueryParams, constructWeekName, convertDataURLtoFile, convertToBase64, convertToBodyMapString, convertToEvaluationRubricMapString, convertToSolutionMapString, convertTurkishCharactersToEnglish, filterCategoryVersionCodeOptionList, filterCategoryVersionCodeOptionListByGradeDTO, filterCategoryVersionCodeOptionListByInstitutionDTO, filterCoterieTypeByDistinctOptionList, filterCoterieTypeOptionList, filterGradeLevelOptionList, filterUserRoleOptionList, findAISettingsFromCurrentProfile, findBestFitActivity, formatPriceWithCommas, getColorByIndex, ignoreMathematicalExpression, mergeObjects, parseBodyMapFromData, parseContentMapFromData, parseJwt, parseMaterialMapFromData, retrieveActivityAnswerFromAnswerList, retrieveActivityMethodologyOptionList, retrieveActivityTemplateDTOOptionList, retrieveAllEarnedBadgeDTOListByCoterieType, retrieveAllEarnedBadgeDTOListByCoterieTypeList, retrieveAnnouncementAudienceOptionList, retrieveAnnouncementTypeOptionList, retrieveBadgeRuleListByParams, retrieveBadgeRuleTextByParams, retrieveBranchDTOByUserProfileOptionList, retrieveBranchDTOOptionList, retrieveBrandDTOByUserProfileOptionList, retrieveBrandDTOOptionList, retrieveCampusDTOByUserProfileOptionList, retrieveCampusDTOOptionList, retrieveCategoryVersionCodeOptionList, retrieveClockTimeLeft, retrieveColorByScore, retrieveContentTypeOptionList, retrieveContestTypeOptionList, retrieveCoterieTypeFromStandardExamCoterieType, retrieveCoterieTypeOptionList, retrieveCountryCodeOptionList, retrieveCountryNameOptionList, retrieveCurrentDefaultDataMap, retrieveDateIntervalOptionList, retrieveDefaultUserRoleOptionList, retrieveDifficultyByActivityTypeFromData, retrieveDifficultyOptionList, retrieveDistintCoterieTypeFromCatchtivityApplicationDTO, retrieveDocumentTypeFromAcceptedFormat, retrieveDocumentTypeFromExtension, retrieveDurationInMinutesOptionList, retrieveDurationInSecondsOptionList, retrieveDurationTypeOptionList, retrieveEachTimeSpentInSeconds, retrieveEnableOptionList, retrieveExternalRegistrationDTOOptionList, retrieveFrequencyTypeOptionList, retrieveGenderOptionList, retrieveGradeDTOByUserProfileOptionList, retrieveGradeDTOOptionList, retrieveGradeLevelOptionList, retrieveInstitutionDTOByUserProfileOptionList, retrieveInstitutionDTOOptionList, retrieveInstitutionTypeOptionList, retrieveLastNOptionList, retrieveMonthNameByIndex, retrieveOtherBadgeDTOList, retrieveOutcomePlanTypeOptionList, retrievePhoneNumberAreaCodeList, retrieveProvinceNameOptionList, retrieveReportTypeOptionList, retrieveSeasonDTOByUserProfileOptionList, retrieveSeasonDTOOptionList, retrieveStandardExamCoterieTypeOptionListByStandardExamType, retrieveStandardExamTypeIcon, retrieveStandardExamTypeOptionList, retrieveStatusOptionList, retrieveTeachingMethodologyOptionList, retrieveTimeFilterOptionList, retrieveTimeFilterWithLastNOptionList, retrieveTokenUsageSubTypeOptionList, retrieveTokenUsageTypeOptionList, retrieveTotalTimeSpentInMinutes, retrieveTotalTimeSpentInSeconds, retrieveUserAuthorityGeneralOptionList, retrieveUserRoleOptionList, retrieveValidationRequirementList, shuffleArray, useScreenSize };
849
+ export { ActivityBodyContent, ActivityEmptyContent, ActivityEvaluationRubricContent, ActivityLabel, ActivityPreviewByAnswerData, ActivityPreviewByData, ActivitySolutionContent, ActivityTemplateLabel, ApproveButton, BaseImage, BaseLoading, BaseLoadingWithText, BaseModal, BasePDF, BaseTitle, BlueVerticalDividerLine, BrandLabel, CancelButton, CategoryLabel, CoterieLabel, CreateButton, DeleteButton, DividerLine, DropdownActivityContent, FillInTheBlanksActivityContent, FullCard, GradeLabel, GroupingActivityContent, InfoWithText, InputGroup, InputWithSpecialExpression, LeftTextRightInputGroup, MCMAActivityContent, MCSAActivityContent, MatchingActivityContent, ONE_DAY, ONE_HOUR, ONE_MONTH, ONE_WEEK, OpenEndedActivityContent, OrderingActivityContent, OutcomeLabel, PageTravelGroup, PersonalLabel, PrimaryButton, ProgressBar, PublishingHouseLabel, ScoreBar, SecondaryButton, SelectionBox, SelectionCheckbox, SelectionTab, SelectionTabFill, SubTitle, THREE_MONTHS, TimedProgressBar, TrueFalseActivityContent, VerticalDividerLine, adjustForTimezone, base64ToFile, calculateEndDateOfWeek, calculateLevenshteinDistance, calculateStartDateOfWeek, checkActivityAnswerState, checkIfAnswerIsEmpty, constructActivityAnswerMap, constructActivityAnswerStateList, constructActivityData, constructActivityItemListBodyOnly, constructActivityItemListForSolution, constructActivityItemListMaterialOnly, constructActivityItemListSolutionOnly, constructActivityItemListWithAnswersForAI, constructActivityItemListWithSolutionForAI, constructAnswerBasedOnData, constructBaseNumericIndividualModel, constructBaseVerbalIndvidualModel, constructCategoryTreeFromParentCode, constructCombinedCatchxamReportMap, constructCombinedOutcomeActivityScoreMapFromCombinedReport, constructInputWithSpecialExpressionList, constructMonthName, constructOutcomeActivityScoreList, constructUserProfileQueryParams, constructWeekName, convertDataURLtoFile, convertToBase64, convertToBodyMapString, convertToEvaluationRubricMapString, convertToSolutionMapString, convertTurkishCharactersToEnglish, filterCategoryVersionCodeOptionList, filterCategoryVersionCodeOptionListByGradeDTO, filterCategoryVersionCodeOptionListByInstitutionDTO, filterCoterieTypeByDistinctOptionList, filterCoterieTypeOptionList, filterGradeLevelOptionList, filterUserRoleOptionList, findAISettingsFromCurrentProfile, findBestFitActivity, formatPriceWithCommas, getColorByIndex, ignoreMathematicalExpression, mergeObjects, parseBodyMapFromData, parseContentMapFromData, parseJwt, parseMaterialMapFromData, retrieveActivityAnswerFromAnswerList, retrieveActivityMethodologyOptionList, retrieveActivityTemplateDTOOptionList, retrieveAllEarnedBadgeDTOListByCoterieType, retrieveAllEarnedBadgeDTOListByCoterieTypeList, retrieveAnnouncementAudienceOptionList, retrieveAnnouncementTypeOptionList, retrieveBadgeRuleListByParams, retrieveBadgeRuleTextByParams, retrieveBranchDTOByUserProfileOptionList, retrieveBranchDTOOptionList, retrieveBrandDTOByUserProfileOptionList, retrieveBrandDTOOptionList, retrieveCampusDTOByUserProfileOptionList, retrieveCampusDTOOptionList, retrieveCategoryVersionCodeOptionList, retrieveClockTimeLeft, retrieveColorByScore, retrieveContentTypeOptionList, retrieveContestTypeOptionList, retrieveCoterieTypeFromStandardExamCoterieType, retrieveCoterieTypeOptionList, retrieveCountryCodeOptionList, retrieveCountryNameOptionList, retrieveCurrentDefaultDataMap, retrieveDateIntervalOptionList, retrieveDefaultUserRoleOptionList, retrieveDifficultyByActivityTypeFromData, retrieveDifficultyOptionList, retrieveDistintCoterieTypeFromCatchtivityApplicationDTO, retrieveDocumentTypeFromAcceptedFormat, retrieveDocumentTypeFromExtension, retrieveDurationInMinutesOptionList, retrieveDurationInSecondsOptionList, retrieveDurationTypeOptionList, retrieveEachTimeSpentInSeconds, retrieveEnableOptionList, retrieveExternalRegistrationDTOOptionList, retrieveFrequencyTypeOptionList, retrieveGenderOptionList, retrieveGradeDTOByUserProfileOptionList, retrieveGradeDTOOptionList, retrieveGradeLevelOptionList, retrieveInstitutionDTOByUserProfileOptionList, retrieveInstitutionDTOOptionList, retrieveInstitutionTypeOptionList, retrieveLastNOptionList, retrieveMonthNameByIndex, retrieveOtherBadgeDTOList, retrieveOutcomePlanTypeOptionList, retrievePhoneNumberAreaCodeList, retrieveProvinceNameOptionList, retrieveReportTypeOptionList, retrieveSeasonDTOByUserProfileOptionList, retrieveSeasonDTOOptionList, retrieveStandardExamCoterieTypeOptionListByStandardExamType, retrieveStandardExamTypeIcon, retrieveStandardExamTypeOptionList, retrieveStatusOptionList, retrieveTeachingMethodologyOptionList, retrieveTimeFilterOptionList, retrieveTimeFilterWithLastNOptionList, retrieveTokenUsageSubTypeOptionList, retrieveTokenUsageTypeOptionList, retrieveTotalTimeSpentInMinutes, retrieveTotalTimeSpentInSeconds, retrieveUserAuthorityGeneralOptionList, retrieveUserRoleOptionList, retrieveValidationRequirementList, shuffleArray, useScreenSize };
package/dist/index.d.ts CHANGED
@@ -299,6 +299,14 @@ interface ILeftTextRightInputGroupProps {
299
299
  disabled?: boolean;
300
300
  errorText?: string;
301
301
  }
302
+ interface IPageTravelGroupProps {
303
+ isImageProcessing: boolean;
304
+ handleImageProcessing: () => void;
305
+ initialTotalPageNumber: number;
306
+ pageNumber: number;
307
+ setPageNumber: (e: any) => void;
308
+ setImageReady: (e: any) => void;
309
+ }
302
310
 
303
311
  declare global {
304
312
  namespace JSX {
@@ -336,6 +344,8 @@ declare const InputGroup: ({ type, title, defaultValue, placeholder, value, onFo
336
344
 
337
345
  declare const LeftTextRightInputGroup: ({ type, title, value, optionList, onChange, disabled, errorText, }: ILeftTextRightInputGroupProps) => react_jsx_runtime.JSX.Element;
338
346
 
347
+ declare const PageTravelGroup: ({ isImageProcessing, handleImageProcessing, initialTotalPageNumber, pageNumber, setPageNumber, setImageReady, }: IPageTravelGroupProps) => react_jsx_runtime.JSX.Element;
348
+
339
349
  declare const useScreenSize: () => {
340
350
  screenSize: {
341
351
  width: number;
@@ -836,4 +846,4 @@ declare const retrieveActivityMethodologyOptionList: () => {
836
846
  text: string;
837
847
  }[];
838
848
 
839
- export { ActivityBodyContent, ActivityEmptyContent, ActivityEvaluationRubricContent, ActivityLabel, ActivityPreviewByAnswerData, ActivityPreviewByData, ActivitySolutionContent, ActivityTemplateLabel, ApproveButton, BaseImage, BaseLoading, BaseLoadingWithText, BaseModal, BasePDF, BaseTitle, BlueVerticalDividerLine, BrandLabel, CancelButton, CategoryLabel, CoterieLabel, CreateButton, DeleteButton, DividerLine, DropdownActivityContent, FillInTheBlanksActivityContent, FullCard, GradeLabel, GroupingActivityContent, InfoWithText, InputGroup, InputWithSpecialExpression, LeftTextRightInputGroup, MCMAActivityContent, MCSAActivityContent, MatchingActivityContent, ONE_DAY, ONE_HOUR, ONE_MONTH, ONE_WEEK, OpenEndedActivityContent, OrderingActivityContent, OutcomeLabel, PersonalLabel, PrimaryButton, ProgressBar, PublishingHouseLabel, ScoreBar, SecondaryButton, SelectionBox, SelectionCheckbox, SelectionTab, SelectionTabFill, SubTitle, THREE_MONTHS, TimedProgressBar, TrueFalseActivityContent, VerticalDividerLine, adjustForTimezone, base64ToFile, calculateEndDateOfWeek, calculateLevenshteinDistance, calculateStartDateOfWeek, checkActivityAnswerState, checkIfAnswerIsEmpty, constructActivityAnswerMap, constructActivityAnswerStateList, constructActivityData, constructActivityItemListBodyOnly, constructActivityItemListForSolution, constructActivityItemListMaterialOnly, constructActivityItemListSolutionOnly, constructActivityItemListWithAnswersForAI, constructActivityItemListWithSolutionForAI, constructAnswerBasedOnData, constructBaseNumericIndividualModel, constructBaseVerbalIndvidualModel, constructCategoryTreeFromParentCode, constructCombinedCatchxamReportMap, constructCombinedOutcomeActivityScoreMapFromCombinedReport, constructInputWithSpecialExpressionList, constructMonthName, constructOutcomeActivityScoreList, constructUserProfileQueryParams, constructWeekName, convertDataURLtoFile, convertToBase64, convertToBodyMapString, convertToEvaluationRubricMapString, convertToSolutionMapString, convertTurkishCharactersToEnglish, filterCategoryVersionCodeOptionList, filterCategoryVersionCodeOptionListByGradeDTO, filterCategoryVersionCodeOptionListByInstitutionDTO, filterCoterieTypeByDistinctOptionList, filterCoterieTypeOptionList, filterGradeLevelOptionList, filterUserRoleOptionList, findAISettingsFromCurrentProfile, findBestFitActivity, formatPriceWithCommas, getColorByIndex, ignoreMathematicalExpression, mergeObjects, parseBodyMapFromData, parseContentMapFromData, parseJwt, parseMaterialMapFromData, retrieveActivityAnswerFromAnswerList, retrieveActivityMethodologyOptionList, retrieveActivityTemplateDTOOptionList, retrieveAllEarnedBadgeDTOListByCoterieType, retrieveAllEarnedBadgeDTOListByCoterieTypeList, retrieveAnnouncementAudienceOptionList, retrieveAnnouncementTypeOptionList, retrieveBadgeRuleListByParams, retrieveBadgeRuleTextByParams, retrieveBranchDTOByUserProfileOptionList, retrieveBranchDTOOptionList, retrieveBrandDTOByUserProfileOptionList, retrieveBrandDTOOptionList, retrieveCampusDTOByUserProfileOptionList, retrieveCampusDTOOptionList, retrieveCategoryVersionCodeOptionList, retrieveClockTimeLeft, retrieveColorByScore, retrieveContentTypeOptionList, retrieveContestTypeOptionList, retrieveCoterieTypeFromStandardExamCoterieType, retrieveCoterieTypeOptionList, retrieveCountryCodeOptionList, retrieveCountryNameOptionList, retrieveCurrentDefaultDataMap, retrieveDateIntervalOptionList, retrieveDefaultUserRoleOptionList, retrieveDifficultyByActivityTypeFromData, retrieveDifficultyOptionList, retrieveDistintCoterieTypeFromCatchtivityApplicationDTO, retrieveDocumentTypeFromAcceptedFormat, retrieveDocumentTypeFromExtension, retrieveDurationInMinutesOptionList, retrieveDurationInSecondsOptionList, retrieveDurationTypeOptionList, retrieveEachTimeSpentInSeconds, retrieveEnableOptionList, retrieveExternalRegistrationDTOOptionList, retrieveFrequencyTypeOptionList, retrieveGenderOptionList, retrieveGradeDTOByUserProfileOptionList, retrieveGradeDTOOptionList, retrieveGradeLevelOptionList, retrieveInstitutionDTOByUserProfileOptionList, retrieveInstitutionDTOOptionList, retrieveInstitutionTypeOptionList, retrieveLastNOptionList, retrieveMonthNameByIndex, retrieveOtherBadgeDTOList, retrieveOutcomePlanTypeOptionList, retrievePhoneNumberAreaCodeList, retrieveProvinceNameOptionList, retrieveReportTypeOptionList, retrieveSeasonDTOByUserProfileOptionList, retrieveSeasonDTOOptionList, retrieveStandardExamCoterieTypeOptionListByStandardExamType, retrieveStandardExamTypeIcon, retrieveStandardExamTypeOptionList, retrieveStatusOptionList, retrieveTeachingMethodologyOptionList, retrieveTimeFilterOptionList, retrieveTimeFilterWithLastNOptionList, retrieveTokenUsageSubTypeOptionList, retrieveTokenUsageTypeOptionList, retrieveTotalTimeSpentInMinutes, retrieveTotalTimeSpentInSeconds, retrieveUserAuthorityGeneralOptionList, retrieveUserRoleOptionList, retrieveValidationRequirementList, shuffleArray, useScreenSize };
849
+ export { ActivityBodyContent, ActivityEmptyContent, ActivityEvaluationRubricContent, ActivityLabel, ActivityPreviewByAnswerData, ActivityPreviewByData, ActivitySolutionContent, ActivityTemplateLabel, ApproveButton, BaseImage, BaseLoading, BaseLoadingWithText, BaseModal, BasePDF, BaseTitle, BlueVerticalDividerLine, BrandLabel, CancelButton, CategoryLabel, CoterieLabel, CreateButton, DeleteButton, DividerLine, DropdownActivityContent, FillInTheBlanksActivityContent, FullCard, GradeLabel, GroupingActivityContent, InfoWithText, InputGroup, InputWithSpecialExpression, LeftTextRightInputGroup, MCMAActivityContent, MCSAActivityContent, MatchingActivityContent, ONE_DAY, ONE_HOUR, ONE_MONTH, ONE_WEEK, OpenEndedActivityContent, OrderingActivityContent, OutcomeLabel, PageTravelGroup, PersonalLabel, PrimaryButton, ProgressBar, PublishingHouseLabel, ScoreBar, SecondaryButton, SelectionBox, SelectionCheckbox, SelectionTab, SelectionTabFill, SubTitle, THREE_MONTHS, TimedProgressBar, TrueFalseActivityContent, VerticalDividerLine, adjustForTimezone, base64ToFile, calculateEndDateOfWeek, calculateLevenshteinDistance, calculateStartDateOfWeek, checkActivityAnswerState, checkIfAnswerIsEmpty, constructActivityAnswerMap, constructActivityAnswerStateList, constructActivityData, constructActivityItemListBodyOnly, constructActivityItemListForSolution, constructActivityItemListMaterialOnly, constructActivityItemListSolutionOnly, constructActivityItemListWithAnswersForAI, constructActivityItemListWithSolutionForAI, constructAnswerBasedOnData, constructBaseNumericIndividualModel, constructBaseVerbalIndvidualModel, constructCategoryTreeFromParentCode, constructCombinedCatchxamReportMap, constructCombinedOutcomeActivityScoreMapFromCombinedReport, constructInputWithSpecialExpressionList, constructMonthName, constructOutcomeActivityScoreList, constructUserProfileQueryParams, constructWeekName, convertDataURLtoFile, convertToBase64, convertToBodyMapString, convertToEvaluationRubricMapString, convertToSolutionMapString, convertTurkishCharactersToEnglish, filterCategoryVersionCodeOptionList, filterCategoryVersionCodeOptionListByGradeDTO, filterCategoryVersionCodeOptionListByInstitutionDTO, filterCoterieTypeByDistinctOptionList, filterCoterieTypeOptionList, filterGradeLevelOptionList, filterUserRoleOptionList, findAISettingsFromCurrentProfile, findBestFitActivity, formatPriceWithCommas, getColorByIndex, ignoreMathematicalExpression, mergeObjects, parseBodyMapFromData, parseContentMapFromData, parseJwt, parseMaterialMapFromData, retrieveActivityAnswerFromAnswerList, retrieveActivityMethodologyOptionList, retrieveActivityTemplateDTOOptionList, retrieveAllEarnedBadgeDTOListByCoterieType, retrieveAllEarnedBadgeDTOListByCoterieTypeList, retrieveAnnouncementAudienceOptionList, retrieveAnnouncementTypeOptionList, retrieveBadgeRuleListByParams, retrieveBadgeRuleTextByParams, retrieveBranchDTOByUserProfileOptionList, retrieveBranchDTOOptionList, retrieveBrandDTOByUserProfileOptionList, retrieveBrandDTOOptionList, retrieveCampusDTOByUserProfileOptionList, retrieveCampusDTOOptionList, retrieveCategoryVersionCodeOptionList, retrieveClockTimeLeft, retrieveColorByScore, retrieveContentTypeOptionList, retrieveContestTypeOptionList, retrieveCoterieTypeFromStandardExamCoterieType, retrieveCoterieTypeOptionList, retrieveCountryCodeOptionList, retrieveCountryNameOptionList, retrieveCurrentDefaultDataMap, retrieveDateIntervalOptionList, retrieveDefaultUserRoleOptionList, retrieveDifficultyByActivityTypeFromData, retrieveDifficultyOptionList, retrieveDistintCoterieTypeFromCatchtivityApplicationDTO, retrieveDocumentTypeFromAcceptedFormat, retrieveDocumentTypeFromExtension, retrieveDurationInMinutesOptionList, retrieveDurationInSecondsOptionList, retrieveDurationTypeOptionList, retrieveEachTimeSpentInSeconds, retrieveEnableOptionList, retrieveExternalRegistrationDTOOptionList, retrieveFrequencyTypeOptionList, retrieveGenderOptionList, retrieveGradeDTOByUserProfileOptionList, retrieveGradeDTOOptionList, retrieveGradeLevelOptionList, retrieveInstitutionDTOByUserProfileOptionList, retrieveInstitutionDTOOptionList, retrieveInstitutionTypeOptionList, retrieveLastNOptionList, retrieveMonthNameByIndex, retrieveOtherBadgeDTOList, retrieveOutcomePlanTypeOptionList, retrievePhoneNumberAreaCodeList, retrieveProvinceNameOptionList, retrieveReportTypeOptionList, retrieveSeasonDTOByUserProfileOptionList, retrieveSeasonDTOOptionList, retrieveStandardExamCoterieTypeOptionListByStandardExamType, retrieveStandardExamTypeIcon, retrieveStandardExamTypeOptionList, retrieveStatusOptionList, retrieveTeachingMethodologyOptionList, retrieveTimeFilterOptionList, retrieveTimeFilterWithLastNOptionList, retrieveTokenUsageSubTypeOptionList, retrieveTokenUsageTypeOptionList, retrieveTotalTimeSpentInMinutes, retrieveTotalTimeSpentInSeconds, retrieveUserAuthorityGeneralOptionList, retrieveUserRoleOptionList, retrieveValidationRequirementList, shuffleArray, useScreenSize };
package/dist/index.js CHANGED
@@ -109,6 +109,7 @@ __export(index_exports, {
109
109
  OpenEndedActivityContent: () => OpenEndedActivityContent_default,
110
110
  OrderingActivityContent: () => OrderingActivityContent_default,
111
111
  OutcomeLabel: () => OutcomeLabel_default,
112
+ PageTravelGroup: () => PageTravelGroup_default,
112
113
  PersonalLabel: () => PersonalLabel_default,
113
114
  PrimaryButton: () => PrimaryButton_default,
114
115
  ProgressBar: () => ProgressBar_default,
@@ -7372,15 +7373,103 @@ var LeftTextRightInputGroup = ({
7372
7373
  };
7373
7374
  var LeftTextRightInputGroup_default = LeftTextRightInputGroup;
7374
7375
 
7375
- // src/components/boxes/SelectionCheckbox.tsx
7376
+ // src/components/groups/PageTravelGroup.tsx
7377
+ var import_react30 = require("react");
7376
7378
  var import_jsx_runtime52 = require("react/jsx-runtime");
7379
+ var PageTravelGroup = ({
7380
+ isImageProcessing,
7381
+ handleImageProcessing,
7382
+ initialTotalPageNumber,
7383
+ pageNumber,
7384
+ setPageNumber,
7385
+ setImageReady
7386
+ }) => {
7387
+ const [totalPageNumber, setTotalPageNumber] = (0, import_react30.useState)(0);
7388
+ const [newPageNumber, setNewPageNumber] = (0, import_react30.useState)(0);
7389
+ (0, import_react30.useEffect)(() => {
7390
+ if (!initialTotalPageNumber) return;
7391
+ setTotalPageNumber(initialTotalPageNumber);
7392
+ }, [initialTotalPageNumber]);
7393
+ (0, import_react30.useEffect)(() => {
7394
+ setNewPageNumber(pageNumber + 1);
7395
+ }, [pageNumber]);
7396
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex-1 flex flex-row justify-center items-center flex-wrap", children: [
7397
+ pageNumber === 0 ? null : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "px-2 flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7398
+ BaseImage_default,
7399
+ {
7400
+ size: "small",
7401
+ alt: "arrow-left",
7402
+ src: "/icons/arrow-left.webp",
7403
+ onClick: () => {
7404
+ if (isImageProcessing) {
7405
+ handleImageProcessing();
7406
+ } else {
7407
+ setPageNumber(pageNumber - 1);
7408
+ setImageReady(false);
7409
+ }
7410
+ }
7411
+ }
7412
+ ) }),
7413
+ Array.from(Array(totalPageNumber).keys()).filter((index) => index < pageNumber + 5).filter((index) => index > pageNumber - 5).map((index) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "px-2", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7414
+ "p",
7415
+ {
7416
+ className: `${pageNumber === index ? "text-2xl" : "text-md"} cursor-pointer`,
7417
+ onClick: () => {
7418
+ if (isImageProcessing) {
7419
+ handleImageProcessing();
7420
+ } else {
7421
+ setPageNumber(index);
7422
+ setImageReady(false);
7423
+ }
7424
+ },
7425
+ children: index + 1
7426
+ }
7427
+ ) }, index)),
7428
+ totalPageNumber === 0 || pageNumber === totalPageNumber - 1 ? null : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "px-2 flex flex-col items-center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7429
+ BaseImage_default,
7430
+ {
7431
+ size: "small",
7432
+ alt: "arrow-right",
7433
+ src: "/icons/arrow-right.webp",
7434
+ onClick: () => {
7435
+ if (isImageProcessing) {
7436
+ handleImageProcessing();
7437
+ } else {
7438
+ setPageNumber(pageNumber + 1);
7439
+ setImageReady(false);
7440
+ }
7441
+ }
7442
+ }
7443
+ ) }),
7444
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7445
+ "input",
7446
+ {
7447
+ className: `w-[65px] py-2 px-4 border border-catchup-gray-100 rounded-catchup-xlarge focus:outline-none placeholder-catchup-gray-200 focus:border-catchup-blue-400 focus:shadow-input`,
7448
+ type: "text",
7449
+ value: newPageNumber,
7450
+ onChange: (e) => {
7451
+ setNewPageNumber(parseFloat(e.target.value));
7452
+ },
7453
+ onKeyDown: (e) => {
7454
+ if (e.key === "Enter") {
7455
+ setPageNumber(newPageNumber - 1);
7456
+ }
7457
+ }
7458
+ }
7459
+ ) })
7460
+ ] });
7461
+ };
7462
+ var PageTravelGroup_default = PageTravelGroup;
7463
+
7464
+ // src/components/boxes/SelectionCheckbox.tsx
7465
+ var import_jsx_runtime53 = require("react/jsx-runtime");
7377
7466
  var SelectionCheckbox = ({
7378
7467
  optionList,
7379
7468
  selectedIdList,
7380
7469
  handleSelectOnClick,
7381
7470
  handleRemoveOnClick
7382
7471
  }) => {
7383
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7472
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
7384
7473
  "div",
7385
7474
  {
7386
7475
  className: `${selectedIdList.findIndex(
@@ -7395,14 +7484,14 @@ var SelectionCheckbox = ({
7395
7484
  handleRemoveOnClick(option.id);
7396
7485
  }
7397
7486
  },
7398
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
7487
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
7399
7488
  "div",
7400
7489
  {
7401
7490
  className: `flex flex-row items-center gap-x-1 ${selectedIdList.findIndex(
7402
7491
  (selectedId) => selectedId === option.id
7403
7492
  ) > -1 ? "opacity-100" : "opacity-50"}`,
7404
7493
  children: [
7405
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
7494
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
7406
7495
  BaseImage_default,
7407
7496
  {
7408
7497
  src: selectedIdList.findIndex(
@@ -7412,7 +7501,7 @@ var SelectionCheckbox = ({
7412
7501
  size: "small"
7413
7502
  }
7414
7503
  ),
7415
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { children: option.text }) })
7504
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { children: option.text }) })
7416
7505
  ]
7417
7506
  }
7418
7507
  )
@@ -7423,7 +7512,7 @@ var SelectionCheckbox = ({
7423
7512
  var SelectionCheckbox_default = SelectionCheckbox;
7424
7513
 
7425
7514
  // src/components/tabs/SelectionTab.tsx
7426
- var import_jsx_runtime53 = require("react/jsx-runtime");
7515
+ var import_jsx_runtime54 = require("react/jsx-runtime");
7427
7516
  var SelectionTab = ({
7428
7517
  optionList,
7429
7518
  selectedId,
@@ -7433,7 +7522,7 @@ var SelectionTab = ({
7433
7522
  textColor,
7434
7523
  borderColor
7435
7524
  }) => {
7436
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap mb-2 text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
7525
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap mb-2 text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
7437
7526
  "div",
7438
7527
  {
7439
7528
  className: `${selectedId === option.id ? selectedTextColor ? selectedTextColor : "text-catchup-blue-500" : textColor ? textColor : "text-catchup-gray-300"} ${selectedId === option.id ? selectedBorderColor ? selectedBorderColor : "border-catchup-blue-500" : borderColor ? borderColor : "border-catchup-gray-50"} border-b-2 transition-all duration-300 p-3 cursor-pointer`,
@@ -7441,8 +7530,8 @@ var SelectionTab = ({
7441
7530
  handleSelectOnClick(option.id);
7442
7531
  },
7443
7532
  children: [
7444
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-lg", children: option.title }),
7445
- option.subTitle ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-md", children: option.subTitle }) : null
7533
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-lg", children: option.title }),
7534
+ option.subTitle ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-md", children: option.subTitle }) : null
7446
7535
  ]
7447
7536
  },
7448
7537
  index
@@ -7451,20 +7540,20 @@ var SelectionTab = ({
7451
7540
  var SelectionTab_default = SelectionTab;
7452
7541
 
7453
7542
  // src/components/tabs/SelectionTabFill.tsx
7454
- var import_jsx_runtime54 = require("react/jsx-runtime");
7543
+ var import_jsx_runtime55 = require("react/jsx-runtime");
7455
7544
  var SelectionTabFill = ({
7456
7545
  optionList,
7457
7546
  selectedId,
7458
7547
  handleSelectOnClick
7459
7548
  }) => {
7460
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-full flex flex-row bg-catchup-gray-50 gap-x-2 rounded-catchup-medium px-4 py-2 justify-center text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
7549
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-full flex flex-row bg-catchup-gray-50 gap-x-2 rounded-catchup-medium px-4 py-2 justify-center text-center", children: optionList.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
7461
7550
  "div",
7462
7551
  {
7463
7552
  className: "cursor-pointer",
7464
7553
  onClick: () => {
7465
7554
  handleSelectOnClick(option.id);
7466
7555
  },
7467
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
7556
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
7468
7557
  "p",
7469
7558
  {
7470
7559
  className: `${selectedId === option.id ? "text-catchup-white bg-catchup-blue-500" : "text-catchup-gray-300"} transition-all duration-300 rounded-catchup-medium px-2 py-1`,
@@ -7478,34 +7567,34 @@ var SelectionTabFill = ({
7478
7567
  var SelectionTabFill_default = SelectionTabFill;
7479
7568
 
7480
7569
  // src/components/labels/ActivityTemplateLabel.tsx
7481
- var import_jsx_runtime55 = require("react/jsx-runtime");
7570
+ var import_jsx_runtime56 = require("react/jsx-runtime");
7482
7571
  var ActivityTemplateLabel = ({
7483
7572
  title,
7484
7573
  icon,
7485
7574
  font
7486
7575
  }) => {
7487
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7488
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(BaseImage_default, { src: "/icons/activity.webp", alt: "label", size: "xsmall" }),
7489
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: font ? font : "text-sm", children: title })
7576
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7577
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(BaseImage_default, { src: "/icons/activity.webp", alt: "label", size: "xsmall" }),
7578
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: font ? font : "text-sm", children: title })
7490
7579
  ] }) });
7491
7580
  };
7492
7581
  var ActivityTemplateLabel_default = ActivityTemplateLabel;
7493
7582
 
7494
7583
  // src/components/labels/BrandLabel.tsx
7495
- var import_jsx_runtime56 = require("react/jsx-runtime");
7584
+ var import_jsx_runtime57 = require("react/jsx-runtime");
7496
7585
  var BrandLabel = ({ title, icon, font }) => {
7497
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7498
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(BaseImage_default, { src: "/icons/brand-label.webp", alt: "label", size: "xsmall" }),
7499
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: font ? font : "text-sm", children: title })
7586
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7587
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(BaseImage_default, { src: "/icons/brand-label.webp", alt: "label", size: "xsmall" }),
7588
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: font ? font : "text-sm", children: title })
7500
7589
  ] }) });
7501
7590
  };
7502
7591
  var BrandLabel_default = BrandLabel;
7503
7592
 
7504
7593
  // src/components/labels/CategoryLabel.tsx
7505
- var import_jsx_runtime57 = require("react/jsx-runtime");
7594
+ var import_jsx_runtime58 = require("react/jsx-runtime");
7506
7595
  var CategoryLabel = ({ title, icon, font }) => {
7507
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-category-label-border bg-category-label text-category-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7508
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
7596
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-category-label-border bg-category-label text-category-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7597
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
7509
7598
  BaseImage_default,
7510
7599
  {
7511
7600
  src: "/icons/category-label.webp",
@@ -7513,40 +7602,40 @@ var CategoryLabel = ({ title, icon, font }) => {
7513
7602
  size: "xsmall"
7514
7603
  }
7515
7604
  ),
7516
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: font ? font : "text-sm", children: title })
7605
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: font ? font : "text-sm", children: title })
7517
7606
  ] }) });
7518
7607
  };
7519
7608
  var CategoryLabel_default = CategoryLabel;
7520
7609
 
7521
7610
  // src/components/labels/CoterieLabel.tsx
7522
- var import_jsx_runtime58 = require("react/jsx-runtime");
7611
+ var import_jsx_runtime59 = require("react/jsx-runtime");
7523
7612
  var CoterieLabel = ({ title, font }) => {
7524
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7613
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7525
7614
  };
7526
7615
  var CoterieLabel_default = CoterieLabel;
7527
7616
 
7528
7617
  // src/components/labels/GradeLabel.tsx
7529
- var import_jsx_runtime59 = require("react/jsx-runtime");
7618
+ var import_jsx_runtime60 = require("react/jsx-runtime");
7530
7619
  var GradeLabel = ({ title, font }) => {
7531
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7620
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7532
7621
  };
7533
7622
  var GradeLabel_default = GradeLabel;
7534
7623
 
7535
7624
  // src/components/labels/OutcomeLabel.tsx
7536
- var import_jsx_runtime60 = require("react/jsx-runtime");
7625
+ var import_jsx_runtime61 = require("react/jsx-runtime");
7537
7626
  var OutcomeLabel = ({ title, font }) => {
7538
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7539
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(BaseImage_default, { src: "/icons/category.webp", alt: "label", size: "xsmall" }),
7540
- /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("p", { className: font ? font : "text-sm", children: title })
7627
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7628
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(BaseImage_default, { src: "/icons/category.webp", alt: "label", size: "xsmall" }),
7629
+ /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: font ? font : "text-sm", children: title })
7541
7630
  ] }) });
7542
7631
  };
7543
7632
  var OutcomeLabel_default = OutcomeLabel;
7544
7633
 
7545
7634
  // src/components/labels/PersonalLabel.tsx
7546
- var import_jsx_runtime61 = require("react/jsx-runtime");
7635
+ var import_jsx_runtime62 = require("react/jsx-runtime");
7547
7636
  var PersonalLabel = ({ title, icon, font }) => {
7548
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-personal-label-border bg-personal-label text-personal-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7549
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
7637
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-personal-label-border bg-personal-label text-personal-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7638
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
7550
7639
  BaseImage_default,
7551
7640
  {
7552
7641
  src: "/icons/personal-label.webp",
@@ -7554,16 +7643,16 @@ var PersonalLabel = ({ title, icon, font }) => {
7554
7643
  size: "xsmall"
7555
7644
  }
7556
7645
  ),
7557
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: font ? font : "text-sm", children: title })
7646
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: font ? font : "text-sm", children: title })
7558
7647
  ] }) });
7559
7648
  };
7560
7649
  var PersonalLabel_default = PersonalLabel;
7561
7650
 
7562
7651
  // src/components/labels/PublishingHouseLabel.tsx
7563
- var import_jsx_runtime62 = require("react/jsx-runtime");
7652
+ var import_jsx_runtime63 = require("react/jsx-runtime");
7564
7653
  var PublishingHouseLabel = ({ title, icon, font }) => {
7565
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7566
- icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
7654
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex flex-row items-center gap-x-2", children: [
7655
+ icon ? icon : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
7567
7656
  BaseImage_default,
7568
7657
  {
7569
7658
  src: "/icons/publishing-house-label.webp",
@@ -7571,79 +7660,79 @@ var PublishingHouseLabel = ({ title, icon, font }) => {
7571
7660
  size: "xsmall"
7572
7661
  }
7573
7662
  ),
7574
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: font ? font : "text-sm", children: title })
7663
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: font ? font : "text-sm", children: title })
7575
7664
  ] }) });
7576
7665
  };
7577
7666
  var PublishingHouseLabel_default = PublishingHouseLabel;
7578
7667
 
7579
7668
  // src/components/labels/ActivityLabel.tsx
7580
- var import_jsx_runtime63 = require("react/jsx-runtime");
7669
+ var import_jsx_runtime64 = require("react/jsx-runtime");
7581
7670
  var ActivityLabel = ({ title, font }) => {
7582
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7671
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: font ? font : "text-sm", children: title }) });
7583
7672
  };
7584
7673
  var ActivityLabel_default = ActivityLabel;
7585
7674
 
7586
7675
  // src/components/infos/InfoWithText.tsx
7587
- var import_jsx_runtime64 = require("react/jsx-runtime");
7676
+ var import_jsx_runtime65 = require("react/jsx-runtime");
7588
7677
  var InfoWithText = (props) => {
7589
7678
  const { value } = props;
7590
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "w-full flex flex-row items-center gap-x-2 my-2", children: [
7591
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(BaseImage_default, { src: "/icons/info.webp", alt: "info", size: "small" }),
7592
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "", children: value }) })
7679
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "w-full flex flex-row items-center gap-x-2 my-2", children: [
7680
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(BaseImage_default, { src: "/icons/info.webp", alt: "info", size: "small" }),
7681
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "", children: value }) })
7593
7682
  ] });
7594
7683
  };
7595
7684
  var InfoWithText_default = InfoWithText;
7596
7685
 
7597
7686
  // src/components/texts/InputWithSpecialExpression.tsx
7598
7687
  var import_react_katex12 = require("react-katex");
7599
- var import_jsx_runtime65 = require("react/jsx-runtime");
7688
+ var import_jsx_runtime66 = require("react/jsx-runtime");
7600
7689
  var InputWithSpecialExpression = ({
7601
7690
  value,
7602
7691
  showSpecialOnly
7603
7692
  }) => {
7604
7693
  const inputWithSpecialExpressionList = constructInputWithSpecialExpressionList(value);
7605
- return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7694
+ return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
7606
7695
  "span",
7607
7696
  {
7608
7697
  className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
7609
- children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
7698
+ children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
7610
7699
  }
7611
- )) }) }) : null : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
7700
+ )) }) }) : null : /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "m-2", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
7612
7701
  "span",
7613
7702
  {
7614
7703
  className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
7615
- children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
7704
+ children: inputPart.isEquation ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-lg", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_react_katex12.InlineMath, { math: inputPart.value }, index) }) : inputPart.value
7616
7705
  }
7617
7706
  )) }) });
7618
7707
  };
7619
7708
  var InputWithSpecialExpression_default = InputWithSpecialExpression;
7620
7709
 
7621
7710
  // src/components/titles/BaseTitle.tsx
7622
- var import_jsx_runtime66 = require("react/jsx-runtime");
7711
+ var import_jsx_runtime67 = require("react/jsx-runtime");
7623
7712
  var BaseTitle = ({
7624
7713
  title,
7625
7714
  totalItemCount,
7626
7715
  itemName,
7627
7716
  description
7628
7717
  }) => {
7629
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-y-2", children: [
7630
- /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("p", { className: "text-2xl font-medium", children: [
7718
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("div", { className: "flex flex-col gap-y-2", children: [
7719
+ /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("p", { className: "text-2xl font-medium", children: [
7631
7720
  title,
7632
- totalItemCount && itemName ? /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("span", { className: "p-2 text-base text-catchup-blue-600 border border-catchup-blue-300 rounded-catchup-3xlarge mx-2 bg-catchup-blue-100", children: [
7721
+ totalItemCount && itemName ? /* @__PURE__ */ (0, import_jsx_runtime67.jsxs)("span", { className: "p-2 text-base text-catchup-blue-600 border border-catchup-blue-300 rounded-catchup-3xlarge mx-2 bg-catchup-blue-100", children: [
7633
7722
  totalItemCount,
7634
7723
  " ",
7635
7724
  itemName
7636
7725
  ] }) : null
7637
7726
  ] }),
7638
- description ? /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "", children: description }) : null
7727
+ description ? /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "", children: description }) : null
7639
7728
  ] });
7640
7729
  };
7641
7730
  var BaseTitle_default = BaseTitle;
7642
7731
 
7643
7732
  // src/components/titles/SubTitle.tsx
7644
- var import_jsx_runtime67 = require("react/jsx-runtime");
7733
+ var import_jsx_runtime68 = require("react/jsx-runtime");
7645
7734
  var SubTitle = ({ title }) => {
7646
- return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)("p", { className: "text-xl font-medium text-catchup-darker-blue", children: title });
7735
+ return /* @__PURE__ */ (0, import_jsx_runtime68.jsx)("p", { className: "text-xl font-medium text-catchup-darker-blue", children: title });
7647
7736
  };
7648
7737
  var SubTitle_default = SubTitle;
7649
7738
 
@@ -10317,6 +10406,7 @@ var retrieveActivityMethodologyOptionList = () => {
10317
10406
  OpenEndedActivityContent,
10318
10407
  OrderingActivityContent,
10319
10408
  OutcomeLabel,
10409
+ PageTravelGroup,
10320
10410
  PersonalLabel,
10321
10411
  PrimaryButton,
10322
10412
  ProgressBar,
package/dist/index.mjs CHANGED
@@ -7161,15 +7161,103 @@ var LeftTextRightInputGroup = ({
7161
7161
  };
7162
7162
  var LeftTextRightInputGroup_default = LeftTextRightInputGroup;
7163
7163
 
7164
- // src/components/boxes/SelectionCheckbox.tsx
7164
+ // src/components/groups/PageTravelGroup.tsx
7165
+ import { useEffect as useEffect16, useState as useState26 } from "react";
7165
7166
  import { jsx as jsx52, jsxs as jsxs39 } from "react/jsx-runtime";
7167
+ var PageTravelGroup = ({
7168
+ isImageProcessing,
7169
+ handleImageProcessing,
7170
+ initialTotalPageNumber,
7171
+ pageNumber,
7172
+ setPageNumber,
7173
+ setImageReady
7174
+ }) => {
7175
+ const [totalPageNumber, setTotalPageNumber] = useState26(0);
7176
+ const [newPageNumber, setNewPageNumber] = useState26(0);
7177
+ useEffect16(() => {
7178
+ if (!initialTotalPageNumber) return;
7179
+ setTotalPageNumber(initialTotalPageNumber);
7180
+ }, [initialTotalPageNumber]);
7181
+ useEffect16(() => {
7182
+ setNewPageNumber(pageNumber + 1);
7183
+ }, [pageNumber]);
7184
+ return /* @__PURE__ */ jsxs39("div", { className: "flex-1 flex flex-row justify-center items-center flex-wrap", children: [
7185
+ pageNumber === 0 ? null : /* @__PURE__ */ jsx52("div", { className: "px-2 flex flex-col items-center", children: /* @__PURE__ */ jsx52(
7186
+ BaseImage_default,
7187
+ {
7188
+ size: "small",
7189
+ alt: "arrow-left",
7190
+ src: "/icons/arrow-left.webp",
7191
+ onClick: () => {
7192
+ if (isImageProcessing) {
7193
+ handleImageProcessing();
7194
+ } else {
7195
+ setPageNumber(pageNumber - 1);
7196
+ setImageReady(false);
7197
+ }
7198
+ }
7199
+ }
7200
+ ) }),
7201
+ Array.from(Array(totalPageNumber).keys()).filter((index) => index < pageNumber + 5).filter((index) => index > pageNumber - 5).map((index) => /* @__PURE__ */ jsx52("div", { className: "px-2", children: /* @__PURE__ */ jsx52(
7202
+ "p",
7203
+ {
7204
+ className: `${pageNumber === index ? "text-2xl" : "text-md"} cursor-pointer`,
7205
+ onClick: () => {
7206
+ if (isImageProcessing) {
7207
+ handleImageProcessing();
7208
+ } else {
7209
+ setPageNumber(index);
7210
+ setImageReady(false);
7211
+ }
7212
+ },
7213
+ children: index + 1
7214
+ }
7215
+ ) }, index)),
7216
+ totalPageNumber === 0 || pageNumber === totalPageNumber - 1 ? null : /* @__PURE__ */ jsx52("div", { className: "px-2 flex flex-col items-center", children: /* @__PURE__ */ jsx52(
7217
+ BaseImage_default,
7218
+ {
7219
+ size: "small",
7220
+ alt: "arrow-right",
7221
+ src: "/icons/arrow-right.webp",
7222
+ onClick: () => {
7223
+ if (isImageProcessing) {
7224
+ handleImageProcessing();
7225
+ } else {
7226
+ setPageNumber(pageNumber + 1);
7227
+ setImageReady(false);
7228
+ }
7229
+ }
7230
+ }
7231
+ ) }),
7232
+ /* @__PURE__ */ jsx52("div", { children: /* @__PURE__ */ jsx52(
7233
+ "input",
7234
+ {
7235
+ className: `w-[65px] py-2 px-4 border border-catchup-gray-100 rounded-catchup-xlarge focus:outline-none placeholder-catchup-gray-200 focus:border-catchup-blue-400 focus:shadow-input`,
7236
+ type: "text",
7237
+ value: newPageNumber,
7238
+ onChange: (e) => {
7239
+ setNewPageNumber(parseFloat(e.target.value));
7240
+ },
7241
+ onKeyDown: (e) => {
7242
+ if (e.key === "Enter") {
7243
+ setPageNumber(newPageNumber - 1);
7244
+ }
7245
+ }
7246
+ }
7247
+ ) })
7248
+ ] });
7249
+ };
7250
+ var PageTravelGroup_default = PageTravelGroup;
7251
+
7252
+ // src/components/boxes/SelectionCheckbox.tsx
7253
+ import { jsx as jsx53, jsxs as jsxs40 } from "react/jsx-runtime";
7166
7254
  var SelectionCheckbox = ({
7167
7255
  optionList,
7168
7256
  selectedIdList,
7169
7257
  handleSelectOnClick,
7170
7258
  handleRemoveOnClick
7171
7259
  }) => {
7172
- return /* @__PURE__ */ jsx52("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ jsx52(
7260
+ return /* @__PURE__ */ jsx53("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap text-center", children: optionList.map((option, index) => /* @__PURE__ */ jsx53(
7173
7261
  "div",
7174
7262
  {
7175
7263
  className: `${selectedIdList.findIndex(
@@ -7184,14 +7272,14 @@ var SelectionCheckbox = ({
7184
7272
  handleRemoveOnClick(option.id);
7185
7273
  }
7186
7274
  },
7187
- children: /* @__PURE__ */ jsxs39(
7275
+ children: /* @__PURE__ */ jsxs40(
7188
7276
  "div",
7189
7277
  {
7190
7278
  className: `flex flex-row items-center gap-x-1 ${selectedIdList.findIndex(
7191
7279
  (selectedId) => selectedId === option.id
7192
7280
  ) > -1 ? "opacity-100" : "opacity-50"}`,
7193
7281
  children: [
7194
- /* @__PURE__ */ jsx52(
7282
+ /* @__PURE__ */ jsx53(
7195
7283
  BaseImage_default,
7196
7284
  {
7197
7285
  src: selectedIdList.findIndex(
@@ -7201,7 +7289,7 @@ var SelectionCheckbox = ({
7201
7289
  size: "small"
7202
7290
  }
7203
7291
  ),
7204
- /* @__PURE__ */ jsx52("div", { className: "flex-1", children: /* @__PURE__ */ jsx52("p", { children: option.text }) })
7292
+ /* @__PURE__ */ jsx53("div", { className: "flex-1", children: /* @__PURE__ */ jsx53("p", { children: option.text }) })
7205
7293
  ]
7206
7294
  }
7207
7295
  )
@@ -7212,7 +7300,7 @@ var SelectionCheckbox = ({
7212
7300
  var SelectionCheckbox_default = SelectionCheckbox;
7213
7301
 
7214
7302
  // src/components/tabs/SelectionTab.tsx
7215
- import { jsx as jsx53, jsxs as jsxs40 } from "react/jsx-runtime";
7303
+ import { jsx as jsx54, jsxs as jsxs41 } from "react/jsx-runtime";
7216
7304
  var SelectionTab = ({
7217
7305
  optionList,
7218
7306
  selectedId,
@@ -7222,7 +7310,7 @@ var SelectionTab = ({
7222
7310
  textColor,
7223
7311
  borderColor
7224
7312
  }) => {
7225
- return /* @__PURE__ */ jsx53("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap mb-2 text-center", children: optionList.map((option, index) => /* @__PURE__ */ jsxs40(
7313
+ return /* @__PURE__ */ jsx54("div", { className: "flex flex-row items-center gap-x-4 gap-y-2 flex-wrap mb-2 text-center", children: optionList.map((option, index) => /* @__PURE__ */ jsxs41(
7226
7314
  "div",
7227
7315
  {
7228
7316
  className: `${selectedId === option.id ? selectedTextColor ? selectedTextColor : "text-catchup-blue-500" : textColor ? textColor : "text-catchup-gray-300"} ${selectedId === option.id ? selectedBorderColor ? selectedBorderColor : "border-catchup-blue-500" : borderColor ? borderColor : "border-catchup-gray-50"} border-b-2 transition-all duration-300 p-3 cursor-pointer`,
@@ -7230,8 +7318,8 @@ var SelectionTab = ({
7230
7318
  handleSelectOnClick(option.id);
7231
7319
  },
7232
7320
  children: [
7233
- /* @__PURE__ */ jsx53("p", { className: "text-lg", children: option.title }),
7234
- option.subTitle ? /* @__PURE__ */ jsx53("p", { className: "text-md", children: option.subTitle }) : null
7321
+ /* @__PURE__ */ jsx54("p", { className: "text-lg", children: option.title }),
7322
+ option.subTitle ? /* @__PURE__ */ jsx54("p", { className: "text-md", children: option.subTitle }) : null
7235
7323
  ]
7236
7324
  },
7237
7325
  index
@@ -7240,20 +7328,20 @@ var SelectionTab = ({
7240
7328
  var SelectionTab_default = SelectionTab;
7241
7329
 
7242
7330
  // src/components/tabs/SelectionTabFill.tsx
7243
- import { jsx as jsx54 } from "react/jsx-runtime";
7331
+ import { jsx as jsx55 } from "react/jsx-runtime";
7244
7332
  var SelectionTabFill = ({
7245
7333
  optionList,
7246
7334
  selectedId,
7247
7335
  handleSelectOnClick
7248
7336
  }) => {
7249
- return /* @__PURE__ */ jsx54("div", { className: "w-full flex flex-row bg-catchup-gray-50 gap-x-2 rounded-catchup-medium px-4 py-2 justify-center text-center", children: optionList.map((option, index) => /* @__PURE__ */ jsx54(
7337
+ return /* @__PURE__ */ jsx55("div", { className: "w-full flex flex-row bg-catchup-gray-50 gap-x-2 rounded-catchup-medium px-4 py-2 justify-center text-center", children: optionList.map((option, index) => /* @__PURE__ */ jsx55(
7250
7338
  "div",
7251
7339
  {
7252
7340
  className: "cursor-pointer",
7253
7341
  onClick: () => {
7254
7342
  handleSelectOnClick(option.id);
7255
7343
  },
7256
- children: /* @__PURE__ */ jsx54(
7344
+ children: /* @__PURE__ */ jsx55(
7257
7345
  "p",
7258
7346
  {
7259
7347
  className: `${selectedId === option.id ? "text-catchup-white bg-catchup-blue-500" : "text-catchup-gray-300"} transition-all duration-300 rounded-catchup-medium px-2 py-1`,
@@ -7267,34 +7355,34 @@ var SelectionTabFill = ({
7267
7355
  var SelectionTabFill_default = SelectionTabFill;
7268
7356
 
7269
7357
  // src/components/labels/ActivityTemplateLabel.tsx
7270
- import { jsx as jsx55, jsxs as jsxs41 } from "react/jsx-runtime";
7358
+ import { jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
7271
7359
  var ActivityTemplateLabel = ({
7272
7360
  title,
7273
7361
  icon,
7274
7362
  font
7275
7363
  }) => {
7276
- return /* @__PURE__ */ jsx55("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs41("div", { className: "flex flex-row items-center gap-x-2", children: [
7277
- icon ? icon : /* @__PURE__ */ jsx55(BaseImage_default, { src: "/icons/activity.webp", alt: "label", size: "xsmall" }),
7278
- /* @__PURE__ */ jsx55("p", { className: font ? font : "text-sm", children: title })
7364
+ return /* @__PURE__ */ jsx56("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-row items-center gap-x-2", children: [
7365
+ icon ? icon : /* @__PURE__ */ jsx56(BaseImage_default, { src: "/icons/activity.webp", alt: "label", size: "xsmall" }),
7366
+ /* @__PURE__ */ jsx56("p", { className: font ? font : "text-sm", children: title })
7279
7367
  ] }) });
7280
7368
  };
7281
7369
  var ActivityTemplateLabel_default = ActivityTemplateLabel;
7282
7370
 
7283
7371
  // src/components/labels/BrandLabel.tsx
7284
- import { jsx as jsx56, jsxs as jsxs42 } from "react/jsx-runtime";
7372
+ import { jsx as jsx57, jsxs as jsxs43 } from "react/jsx-runtime";
7285
7373
  var BrandLabel = ({ title, icon, font }) => {
7286
- return /* @__PURE__ */ jsx56("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs42("div", { className: "flex flex-row items-center gap-x-2", children: [
7287
- icon ? icon : /* @__PURE__ */ jsx56(BaseImage_default, { src: "/icons/brand-label.webp", alt: "label", size: "xsmall" }),
7288
- /* @__PURE__ */ jsx56("p", { className: font ? font : "text-sm", children: title })
7374
+ return /* @__PURE__ */ jsx57("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs43("div", { className: "flex flex-row items-center gap-x-2", children: [
7375
+ icon ? icon : /* @__PURE__ */ jsx57(BaseImage_default, { src: "/icons/brand-label.webp", alt: "label", size: "xsmall" }),
7376
+ /* @__PURE__ */ jsx57("p", { className: font ? font : "text-sm", children: title })
7289
7377
  ] }) });
7290
7378
  };
7291
7379
  var BrandLabel_default = BrandLabel;
7292
7380
 
7293
7381
  // src/components/labels/CategoryLabel.tsx
7294
- import { jsx as jsx57, jsxs as jsxs43 } from "react/jsx-runtime";
7382
+ import { jsx as jsx58, jsxs as jsxs44 } from "react/jsx-runtime";
7295
7383
  var CategoryLabel = ({ title, icon, font }) => {
7296
- return /* @__PURE__ */ jsx57("div", { className: "px-3 py-1 gap-x-3 border border-category-label-border bg-category-label text-category-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs43("div", { className: "flex flex-row items-center gap-x-2", children: [
7297
- icon ? icon : /* @__PURE__ */ jsx57(
7384
+ return /* @__PURE__ */ jsx58("div", { className: "px-3 py-1 gap-x-3 border border-category-label-border bg-category-label text-category-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs44("div", { className: "flex flex-row items-center gap-x-2", children: [
7385
+ icon ? icon : /* @__PURE__ */ jsx58(
7298
7386
  BaseImage_default,
7299
7387
  {
7300
7388
  src: "/icons/category-label.webp",
@@ -7302,40 +7390,40 @@ var CategoryLabel = ({ title, icon, font }) => {
7302
7390
  size: "xsmall"
7303
7391
  }
7304
7392
  ),
7305
- /* @__PURE__ */ jsx57("p", { className: font ? font : "text-sm", children: title })
7393
+ /* @__PURE__ */ jsx58("p", { className: font ? font : "text-sm", children: title })
7306
7394
  ] }) });
7307
7395
  };
7308
7396
  var CategoryLabel_default = CategoryLabel;
7309
7397
 
7310
7398
  // src/components/labels/CoterieLabel.tsx
7311
- import { jsx as jsx58 } from "react/jsx-runtime";
7399
+ import { jsx as jsx59 } from "react/jsx-runtime";
7312
7400
  var CoterieLabel = ({ title, font }) => {
7313
- return /* @__PURE__ */ jsx58("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsx58("p", { className: font ? font : "text-sm", children: title }) });
7401
+ return /* @__PURE__ */ jsx59("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsx59("p", { className: font ? font : "text-sm", children: title }) });
7314
7402
  };
7315
7403
  var CoterieLabel_default = CoterieLabel;
7316
7404
 
7317
7405
  // src/components/labels/GradeLabel.tsx
7318
- import { jsx as jsx59 } from "react/jsx-runtime";
7406
+ import { jsx as jsx60 } from "react/jsx-runtime";
7319
7407
  var GradeLabel = ({ title, font }) => {
7320
- return /* @__PURE__ */ jsx59("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsx59("p", { className: font ? font : "text-sm", children: title }) });
7408
+ return /* @__PURE__ */ jsx60("div", { className: "px-3 py-1 gap-x-3 border border-grade-label-border bg-grade-label text-grade-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsx60("p", { className: font ? font : "text-sm", children: title }) });
7321
7409
  };
7322
7410
  var GradeLabel_default = GradeLabel;
7323
7411
 
7324
7412
  // src/components/labels/OutcomeLabel.tsx
7325
- import { jsx as jsx60, jsxs as jsxs44 } from "react/jsx-runtime";
7413
+ import { jsx as jsx61, jsxs as jsxs45 } from "react/jsx-runtime";
7326
7414
  var OutcomeLabel = ({ title, font }) => {
7327
- return /* @__PURE__ */ jsx60("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs44("div", { className: "flex flex-row items-center gap-x-2", children: [
7328
- /* @__PURE__ */ jsx60(BaseImage_default, { src: "/icons/category.webp", alt: "label", size: "xsmall" }),
7329
- /* @__PURE__ */ jsx60("p", { className: font ? font : "text-sm", children: title })
7415
+ return /* @__PURE__ */ jsx61("div", { className: "px-3 py-1 gap-x-3 border border-brand-label-border bg-brand-label text-brand-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs45("div", { className: "flex flex-row items-center gap-x-2", children: [
7416
+ /* @__PURE__ */ jsx61(BaseImage_default, { src: "/icons/category.webp", alt: "label", size: "xsmall" }),
7417
+ /* @__PURE__ */ jsx61("p", { className: font ? font : "text-sm", children: title })
7330
7418
  ] }) });
7331
7419
  };
7332
7420
  var OutcomeLabel_default = OutcomeLabel;
7333
7421
 
7334
7422
  // src/components/labels/PersonalLabel.tsx
7335
- import { jsx as jsx61, jsxs as jsxs45 } from "react/jsx-runtime";
7423
+ import { jsx as jsx62, jsxs as jsxs46 } from "react/jsx-runtime";
7336
7424
  var PersonalLabel = ({ title, icon, font }) => {
7337
- return /* @__PURE__ */ jsx61("div", { className: "px-3 py-1 gap-x-3 border border-personal-label-border bg-personal-label text-personal-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs45("div", { className: "flex flex-row items-center gap-x-2", children: [
7338
- icon ? icon : /* @__PURE__ */ jsx61(
7425
+ return /* @__PURE__ */ jsx62("div", { className: "px-3 py-1 gap-x-3 border border-personal-label-border bg-personal-label text-personal-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs46("div", { className: "flex flex-row items-center gap-x-2", children: [
7426
+ icon ? icon : /* @__PURE__ */ jsx62(
7339
7427
  BaseImage_default,
7340
7428
  {
7341
7429
  src: "/icons/personal-label.webp",
@@ -7343,16 +7431,16 @@ var PersonalLabel = ({ title, icon, font }) => {
7343
7431
  size: "xsmall"
7344
7432
  }
7345
7433
  ),
7346
- /* @__PURE__ */ jsx61("p", { className: font ? font : "text-sm", children: title })
7434
+ /* @__PURE__ */ jsx62("p", { className: font ? font : "text-sm", children: title })
7347
7435
  ] }) });
7348
7436
  };
7349
7437
  var PersonalLabel_default = PersonalLabel;
7350
7438
 
7351
7439
  // src/components/labels/PublishingHouseLabel.tsx
7352
- import { jsx as jsx62, jsxs as jsxs46 } from "react/jsx-runtime";
7440
+ import { jsx as jsx63, jsxs as jsxs47 } from "react/jsx-runtime";
7353
7441
  var PublishingHouseLabel = ({ title, icon, font }) => {
7354
- return /* @__PURE__ */ jsx62("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs46("div", { className: "flex flex-row items-center gap-x-2", children: [
7355
- icon ? icon : /* @__PURE__ */ jsx62(
7442
+ return /* @__PURE__ */ jsx63("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsxs47("div", { className: "flex flex-row items-center gap-x-2", children: [
7443
+ icon ? icon : /* @__PURE__ */ jsx63(
7356
7444
  BaseImage_default,
7357
7445
  {
7358
7446
  src: "/icons/publishing-house-label.webp",
@@ -7360,79 +7448,79 @@ var PublishingHouseLabel = ({ title, icon, font }) => {
7360
7448
  size: "xsmall"
7361
7449
  }
7362
7450
  ),
7363
- /* @__PURE__ */ jsx62("p", { className: font ? font : "text-sm", children: title })
7451
+ /* @__PURE__ */ jsx63("p", { className: font ? font : "text-sm", children: title })
7364
7452
  ] }) });
7365
7453
  };
7366
7454
  var PublishingHouseLabel_default = PublishingHouseLabel;
7367
7455
 
7368
7456
  // src/components/labels/ActivityLabel.tsx
7369
- import { jsx as jsx63 } from "react/jsx-runtime";
7457
+ import { jsx as jsx64 } from "react/jsx-runtime";
7370
7458
  var ActivityLabel = ({ title, font }) => {
7371
- return /* @__PURE__ */ jsx63("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsx63("p", { className: font ? font : "text-sm", children: title }) });
7459
+ return /* @__PURE__ */ jsx64("div", { className: "px-3 py-1 gap-x-3 border border-publishing-house-label-border bg-publishing-house-label text-publishing-house-label-text rounded-catchup-3xlarge", children: /* @__PURE__ */ jsx64("p", { className: font ? font : "text-sm", children: title }) });
7372
7460
  };
7373
7461
  var ActivityLabel_default = ActivityLabel;
7374
7462
 
7375
7463
  // src/components/infos/InfoWithText.tsx
7376
- import { jsx as jsx64, jsxs as jsxs47 } from "react/jsx-runtime";
7464
+ import { jsx as jsx65, jsxs as jsxs48 } from "react/jsx-runtime";
7377
7465
  var InfoWithText = (props) => {
7378
7466
  const { value } = props;
7379
- return /* @__PURE__ */ jsxs47("div", { className: "w-full flex flex-row items-center gap-x-2 my-2", children: [
7380
- /* @__PURE__ */ jsx64(BaseImage_default, { src: "/icons/info.webp", alt: "info", size: "small" }),
7381
- /* @__PURE__ */ jsx64("div", { className: "flex-1", children: /* @__PURE__ */ jsx64("p", { className: "", children: value }) })
7467
+ return /* @__PURE__ */ jsxs48("div", { className: "w-full flex flex-row items-center gap-x-2 my-2", children: [
7468
+ /* @__PURE__ */ jsx65(BaseImage_default, { src: "/icons/info.webp", alt: "info", size: "small" }),
7469
+ /* @__PURE__ */ jsx65("div", { className: "flex-1", children: /* @__PURE__ */ jsx65("p", { className: "", children: value }) })
7382
7470
  ] });
7383
7471
  };
7384
7472
  var InfoWithText_default = InfoWithText;
7385
7473
 
7386
7474
  // src/components/texts/InputWithSpecialExpression.tsx
7387
7475
  import { InlineMath as InlineMath12 } from "react-katex";
7388
- import { jsx as jsx65 } from "react/jsx-runtime";
7476
+ import { jsx as jsx66 } from "react/jsx-runtime";
7389
7477
  var InputWithSpecialExpression = ({
7390
7478
  value,
7391
7479
  showSpecialOnly
7392
7480
  }) => {
7393
7481
  const inputWithSpecialExpressionList = constructInputWithSpecialExpressionList(value);
7394
- return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ jsx65("div", { className: "m-2", children: /* @__PURE__ */ jsx65("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ jsx65(
7482
+ return showSpecialOnly ? inputWithSpecialExpressionList.length > 1 ? /* @__PURE__ */ jsx66("div", { className: "m-2", children: /* @__PURE__ */ jsx66("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ jsx66(
7395
7483
  "span",
7396
7484
  {
7397
7485
  className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
7398
- children: inputPart.isEquation ? /* @__PURE__ */ jsx65("span", { className: "text-lg", children: /* @__PURE__ */ jsx65(InlineMath12, { math: inputPart.value }, index) }) : inputPart.value
7486
+ children: inputPart.isEquation ? /* @__PURE__ */ jsx66("span", { className: "text-lg", children: /* @__PURE__ */ jsx66(InlineMath12, { math: inputPart.value }, index) }) : inputPart.value
7399
7487
  }
7400
- )) }) }) : null : /* @__PURE__ */ jsx65("div", { className: "m-2", children: /* @__PURE__ */ jsx65("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ jsx65(
7488
+ )) }) }) : null : /* @__PURE__ */ jsx66("div", { className: "m-2", children: /* @__PURE__ */ jsx66("span", { className: "whitespace-pre-wrap", children: inputWithSpecialExpressionList.map((inputPart, index) => /* @__PURE__ */ jsx66(
7401
7489
  "span",
7402
7490
  {
7403
7491
  className: `${inputPart.isBold ? "font-semibold" : ""} ${inputPart.isUnderline ? "underline" : ""}`,
7404
- children: inputPart.isEquation ? /* @__PURE__ */ jsx65("span", { className: "text-lg", children: /* @__PURE__ */ jsx65(InlineMath12, { math: inputPart.value }, index) }) : inputPart.value
7492
+ children: inputPart.isEquation ? /* @__PURE__ */ jsx66("span", { className: "text-lg", children: /* @__PURE__ */ jsx66(InlineMath12, { math: inputPart.value }, index) }) : inputPart.value
7405
7493
  }
7406
7494
  )) }) });
7407
7495
  };
7408
7496
  var InputWithSpecialExpression_default = InputWithSpecialExpression;
7409
7497
 
7410
7498
  // src/components/titles/BaseTitle.tsx
7411
- import { jsx as jsx66, jsxs as jsxs48 } from "react/jsx-runtime";
7499
+ import { jsx as jsx67, jsxs as jsxs49 } from "react/jsx-runtime";
7412
7500
  var BaseTitle = ({
7413
7501
  title,
7414
7502
  totalItemCount,
7415
7503
  itemName,
7416
7504
  description
7417
7505
  }) => {
7418
- return /* @__PURE__ */ jsxs48("div", { className: "flex flex-col gap-y-2", children: [
7419
- /* @__PURE__ */ jsxs48("p", { className: "text-2xl font-medium", children: [
7506
+ return /* @__PURE__ */ jsxs49("div", { className: "flex flex-col gap-y-2", children: [
7507
+ /* @__PURE__ */ jsxs49("p", { className: "text-2xl font-medium", children: [
7420
7508
  title,
7421
- totalItemCount && itemName ? /* @__PURE__ */ jsxs48("span", { className: "p-2 text-base text-catchup-blue-600 border border-catchup-blue-300 rounded-catchup-3xlarge mx-2 bg-catchup-blue-100", children: [
7509
+ totalItemCount && itemName ? /* @__PURE__ */ jsxs49("span", { className: "p-2 text-base text-catchup-blue-600 border border-catchup-blue-300 rounded-catchup-3xlarge mx-2 bg-catchup-blue-100", children: [
7422
7510
  totalItemCount,
7423
7511
  " ",
7424
7512
  itemName
7425
7513
  ] }) : null
7426
7514
  ] }),
7427
- description ? /* @__PURE__ */ jsx66("p", { className: "", children: description }) : null
7515
+ description ? /* @__PURE__ */ jsx67("p", { className: "", children: description }) : null
7428
7516
  ] });
7429
7517
  };
7430
7518
  var BaseTitle_default = BaseTitle;
7431
7519
 
7432
7520
  // src/components/titles/SubTitle.tsx
7433
- import { jsx as jsx67 } from "react/jsx-runtime";
7521
+ import { jsx as jsx68 } from "react/jsx-runtime";
7434
7522
  var SubTitle = ({ title }) => {
7435
- return /* @__PURE__ */ jsx67("p", { className: "text-xl font-medium text-catchup-darker-blue", children: title });
7523
+ return /* @__PURE__ */ jsx68("p", { className: "text-xl font-medium text-catchup-darker-blue", children: title });
7436
7524
  };
7437
7525
  var SubTitle_default = SubTitle;
7438
7526
 
@@ -10105,6 +10193,7 @@ export {
10105
10193
  OpenEndedActivityContent_default as OpenEndedActivityContent,
10106
10194
  OrderingActivityContent_default as OrderingActivityContent,
10107
10195
  OutcomeLabel_default as OutcomeLabel,
10196
+ PageTravelGroup_default as PageTravelGroup,
10108
10197
  PersonalLabel_default as PersonalLabel,
10109
10198
  PrimaryButton_default as PrimaryButton,
10110
10199
  ProgressBar_default as ProgressBar,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "catchup-library-web",
3
- "version": "1.15.14",
3
+ "version": "1.15.16",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -0,0 +1,103 @@
1
+ import { useEffect, useState } from "react";
2
+ import { IPageTravelGroupProps } from "../../properties/GroupProperties";
3
+ import BaseImage from "../images/BaseImage";
4
+
5
+ const PageTravelGroup = ({
6
+ isImageProcessing,
7
+ handleImageProcessing,
8
+ initialTotalPageNumber,
9
+ pageNumber,
10
+ setPageNumber,
11
+ setImageReady,
12
+ }: IPageTravelGroupProps) => {
13
+ const [totalPageNumber, setTotalPageNumber] = useState<number>(0);
14
+ const [newPageNumber, setNewPageNumber] = useState<number>(0);
15
+
16
+ useEffect(() => {
17
+ if (!initialTotalPageNumber) return;
18
+ setTotalPageNumber(initialTotalPageNumber);
19
+ }, [initialTotalPageNumber]);
20
+
21
+ useEffect(() => {
22
+ setNewPageNumber(pageNumber + 1);
23
+ }, [pageNumber]);
24
+
25
+ return (
26
+ <div className="flex-1 flex flex-row justify-center items-center flex-wrap">
27
+ {pageNumber === 0 ? null : (
28
+ <div className="px-2 flex flex-col items-center">
29
+ <BaseImage
30
+ size="small"
31
+ alt="arrow-left"
32
+ src="/icons/arrow-left.webp"
33
+ onClick={() => {
34
+ if (isImageProcessing) {
35
+ handleImageProcessing();
36
+ } else {
37
+ setPageNumber(pageNumber - 1);
38
+ setImageReady(false);
39
+ }
40
+ }}
41
+ />
42
+ </div>
43
+ )}
44
+ {Array.from(Array(totalPageNumber).keys())
45
+ .filter((index) => index < pageNumber + 5)
46
+ .filter((index) => index > pageNumber - 5)
47
+ .map((index) => (
48
+ <div key={index} className="px-2">
49
+ <p
50
+ className={`${
51
+ pageNumber === index ? "text-2xl" : "text-md"
52
+ } cursor-pointer`}
53
+ onClick={() => {
54
+ if (isImageProcessing) {
55
+ handleImageProcessing();
56
+ } else {
57
+ setPageNumber(index);
58
+ setImageReady(false);
59
+ }
60
+ }}
61
+ >
62
+ {index + 1}
63
+ </p>
64
+ </div>
65
+ ))}
66
+
67
+ {totalPageNumber === 0 || pageNumber === totalPageNumber - 1 ? null : (
68
+ <div className="px-2 flex flex-col items-center">
69
+ <BaseImage
70
+ size="small"
71
+ alt="arrow-right"
72
+ src="/icons/arrow-right.webp"
73
+ onClick={() => {
74
+ if (isImageProcessing) {
75
+ handleImageProcessing();
76
+ } else {
77
+ setPageNumber(pageNumber + 1);
78
+ setImageReady(false);
79
+ }
80
+ }}
81
+ />
82
+ </div>
83
+ )}
84
+ <div>
85
+ <input
86
+ className={`w-[65px] py-2 px-4 border border-catchup-gray-100 rounded-catchup-xlarge focus:outline-none placeholder-catchup-gray-200 focus:border-catchup-blue-400 focus:shadow-input`}
87
+ type="text"
88
+ value={newPageNumber}
89
+ onChange={(e) => {
90
+ setNewPageNumber(parseFloat(e.target.value));
91
+ }}
92
+ onKeyDown={(e) => {
93
+ if (e.key === "Enter") {
94
+ setPageNumber(newPageNumber - 1);
95
+ }
96
+ }}
97
+ />
98
+ </div>
99
+ </div>
100
+ );
101
+ };
102
+
103
+ export default PageTravelGroup;
@@ -14,7 +14,6 @@ const ActivityTemplateLabel = ({
14
14
  ) : (
15
15
  <BaseImage src="/icons/activity.webp" alt="label" size="xsmall" />
16
16
  )}
17
-
18
17
  <p className={font ? font : "text-sm"}>{title}</p>
19
18
  </div>
20
19
  </div>
package/src/index.ts CHANGED
@@ -42,6 +42,7 @@ export { default as VerticalDividerLine } from "./components/dividers/VerticalDi
42
42
 
43
43
  export { default as InputGroup } from "./components/groups/InputGroup";
44
44
  export { default as LeftTextRightInputGroup } from "./components/groups/LeftTextRightInputGroup";
45
+ export { default as PageTravelGroup } from "./components/groups/PageTravelGroup";
45
46
 
46
47
  export { default as useScreenSize } from "./hooks/useScreenSize";
47
48
 
@@ -28,3 +28,12 @@ export interface ILeftTextRightInputGroupProps {
28
28
  disabled?: boolean;
29
29
  errorText?: string;
30
30
  }
31
+
32
+ export interface IPageTravelGroupProps {
33
+ isImageProcessing: boolean;
34
+ handleImageProcessing: () => void;
35
+ initialTotalPageNumber: number;
36
+ pageNumber: number;
37
+ setPageNumber: (e: any) => void;
38
+ setImageReady: (e: any) => void;
39
+ }