73273.js.map 90 KB

1
  1. {"version":3,"file":"73273.js","mappings":";;;;;;;;;;;;;AAAA;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA,GAAG,qCAAqC,gDAAmB;AAC3D;AACA,GAAG;AACH;AACA,iEAAe,OAAO;;;;;;;;;;;;;ACrBtB;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,cAAc;;;;;;;;;;;;;ACjB7B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,eAAe;;;;;;;;;;;;;ACjB9B;AACA,sBAAsB,wEAAwE,gBAAgB,sBAAsB,OAAO,sBAAsB,oBAAoB,gDAAgD,WAAW;AACjN;AAC/B;AACA,sBAAsB,gDAAmB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,yCAAyC,gDAAmB;AAC/D;AACA;AACA;AACA,GAAG;AACH;AACA,iEAAe,QAAQ;;;;;;;ACjBvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;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","sources":["webpack://quran.com/./public/icons/book.svg","webpack://quran.com/./public/icons/chevron-left.svg","webpack://quran.com/./public/icons/chevron-right.svg","webpack://quran.com/./public/icons/clock.svg","webpack://quran.com/./src/components/ReadingGoal/ReadingGoalInput/ReadingGoalInput.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/Combobox.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/ComboboxItem/ComboboxItem.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/ComboboxItems/ComboboxItems.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/Icons/CaretInputIcon.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/Icons/ClearInputIcon.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/Icons/SearchInputIcon.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/Tag/Tag.module.scss","webpack://quran.com/./src/components/dls/Forms/Select/Select.module.scss","webpack://quran.com/./src/components/dls/Forms/Combobox/ComboboxItem/index.tsx","webpack://quran.com/./src/components/dls/Forms/Combobox/types/ComboboxSize.ts","webpack://quran.com/./src/components/dls/Forms/Combobox/ComboboxItems/index.tsx","webpack://quran.com/./src/components/dls/Forms/Combobox/Icons/CaretInputIcon.tsx","webpack://quran.com/./src/components/dls/Forms/Combobox/Icons/ClearInputIcon.tsx","webpack://quran.com/./src/components/dls/Forms/Combobox/Icons/SearchInputIcon.tsx","webpack://quran.com/./src/components/dls/Forms/Combobox/Tag/index.tsx","webpack://quran.com/./src/components/dls/Forms/Combobox/index.tsx","webpack://quran.com/./src/components/ReadingGoal/ReadingGoalInput/VerseRangeInput.tsx","webpack://quran.com/./src/components/ReadingGoal/ReadingGoalInput/index.tsx","webpack://quran.com/./src/components/ReadingGoalPage/utils/validator.ts","webpack://quran.com/./src/components/dls/Forms/Select/index.tsx","webpack://quran.com/./src/hooks/useGetMushaf.ts","webpack://quran.com/./src/hooks/useScrollToElement.ts","webpack://quran.com/./src/utils/generators.ts"],"sourcesContent":["var _path, _path2;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgBook = function SvgBook(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n className: \"feather feather-book\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"\n })));\n};\nexport default SvgBook;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgChevronLeft = function SvgChevronLeft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.842 3.135a.5.5 0 0 1 .023.707L5.435 7.5l3.43 3.658a.5.5 0 0 1-.73.684l-3.75-4a.5.5 0 0 1 0-.684l3.75-4a.5.5 0 0 1 .707-.023Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgChevronLeft;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgChevronRight = function SvgChevronRight(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 15,\n height: 15,\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.158 3.135a.5.5 0 0 1 .707.023l3.75 4a.5.5 0 0 1 0 .684l-3.75 4a.5.5 0 1 1-.73-.684L9.566 7.5l-3.43-3.658a.5.5 0 0 1 .023-.707Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n })));\n};\nexport default SvgChevronRight;","var _path;\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nimport * as React from \"react\";\nvar SvgClock = function SvgClock(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n fill: \"none\",\n viewBox: \"0 0 24 24\",\n strokeWidth: 1.5,\n stroke: \"currentColor\",\n className: \"w-6 h-6\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n d: \"M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0z\"\n })));\n};\nexport default SvgClock;","// Exports\nmodule.exports = {\n\t\"rangeInputContainer\": \"ReadingGoalInput_rangeInputContainer__ZEAD_\",\n\t\"inputContainer\": \"ReadingGoalInput_inputContainer__I_R3M\",\n\t\"fullWidth\": \"ReadingGoalInput_fullWidth__MyI06\",\n\t\"input\": \"ReadingGoalInput_input__PtUNh\",\n\t\"label\": \"ReadingGoalInput_label__lxzo1\"\n};\n","// Exports\nmodule.exports = {\n\t\"label\": \"Combobox_label__0IpZG\",\n\t\"disabledSearch\": \"Combobox_disabledSearch__8rVdt\",\n\t\"comboboxContainer\": \"Combobox_comboboxContainer__kgP9M\",\n\t\"fixedWidth\": \"Combobox_fixedWidth__CVwtY\",\n\t\"enabled\": \"Combobox_enabled__N0Xzz\",\n\t\"select\": \"Combobox_select__RdEEM\",\n\t\"selector\": \"Combobox_selector__w5Qy_\",\n\t\"activeSelector\": \"Combobox_activeSelector__87gl9\",\n\t\"disabledSelector\": \"Combobox_disabledSelector__f7dH_\",\n\t\"hasError\": \"Combobox_hasError__btZox\",\n\t\"placeholder\": \"Combobox_placeholder__KxuIs\",\n\t\"overflow\": \"Combobox_overflow__wDx9g\",\n\t\"multiSelectSearchInput\": \"Combobox_multiSelectSearchInput__50i6f\",\n\t\"smallSearchInput\": \"Combobox_smallSearchInput__Fp22X\",\n\t\"mediumSearchInput\": \"Combobox_mediumSearchInput__rHPbe\",\n\t\"largeSearchInput\": \"Combobox_largeSearchInput__B6SoL\",\n\t\"overflowItem\": \"Combobox_overflowItem__3lo49\",\n\t\"tagContainer\": \"Combobox_tagContainer__2pMfb\",\n\t\"search\": \"Combobox_search__7gUOl\",\n\t\"fullWidth\": \"Combobox_fullWidth__pBxh_\"\n};\n","// Exports\nmodule.exports = {\n\t\"input\": \"ComboboxItem_input__tPkeb\",\n\t\"itemLabel\": \"ComboboxItem_itemLabel__i2tdo\",\n\t\"itemContainer\": \"ComboboxItem_itemContainer__B_pz1\",\n\t\"enabledItem\": \"ComboboxItem_enabledItem__nMWDe\",\n\t\"disabledItem\": \"ComboboxItem_disabledItem__Wk3vx\",\n\t\"checkedItem\": \"ComboboxItem_checkedItem__fltvV\",\n\t\"prefix\": \"ComboboxItem_prefix__iu_PS\",\n\t\"labelContainer\": \"ComboboxItem_labelContainer__sYcB_\",\n\t\"prefixContainer\": \"ComboboxItem_prefixContainer__bFcOl\",\n\t\"suffixContainer\": \"ComboboxItem_suffixContainer__Fof34\"\n};\n","// Exports\nmodule.exports = {\n\t\"comboboxBodyContainer\": \"ComboboxItems_comboboxBodyContainer__U8FV9\",\n\t\"fixedWidth\": \"ComboboxItems_fixedWidth__Ja9N8\",\n\t\"largeComboboxBodyContainer\": \"ComboboxItems_largeComboboxBodyContainer__yEoGv\",\n\t\"openedComboboxBodyContainer\": \"ComboboxItems_openedComboboxBodyContainer__FTC8W\",\n\t\"itemsContainer\": \"ComboboxItems_itemsContainer__gSdDs\"\n};\n","// Exports\nmodule.exports = {\n\t\"caretIconButton\": \"CaretInputIcon_caretIconButton__CFt6U\",\n\t\"openedCaretIconButton\": \"CaretInputIcon_openedCaretIconButton__xrU_c\"\n};\n","// Exports\nmodule.exports = {\n\t\"clearIconContainer\": \"ClearInputIcon_clearIconContainer__SJWTP\",\n\t\"icon\": \"ClearInputIcon_icon__m6i8c\"\n};\n","// Exports\nmodule.exports = {\n\t\"iconContainer\": \"SearchInputIcon_iconContainer__z7b2G\",\n\t\"icon\": \"SearchInputIcon_icon__t1nGp\",\n\t\"selectSearch\": \"SearchInputIcon_selectSearch__Gdqtn\"\n};\n","// Exports\nmodule.exports = {\n\t\"item\": \"Tag_item__0hGuv\",\n\t\"largeItem\": \"Tag_largeItem__hrrwN\",\n\t\"itemContent\": \"Tag_itemContent__Pxwpg\",\n\t\"itemRemove\": \"Tag_itemRemove__9cr6J\"\n};\n","// Exports\nmodule.exports = {\n\t\"container\": \"Select_container___DCC_\",\n\t\"withBackground\": \"Select_withBackground__rpdEL\",\n\t\"defaultStyledContainer\": \"Select_defaultStyledContainer__b32Mm\",\n\t\"smallContainer\": \"Select_smallContainer__L2Lff\",\n\t\"mediumContainer\": \"Select_mediumContainer__MF_Vq\",\n\t\"largeContainer\": \"Select_largeContainer___qGs0\",\n\t\"disabledContainer\": \"Select_disabledContainer__gi7YD\",\n\t\"arrow\": \"Select_arrow__WAbAk\",\n\t\"disabledArrow\": \"Select_disabledArrow__V4nEO\",\n\t\"select\": \"Select_select__BnH2G\",\n\t\"defaultStyledSelect\": \"Select_defaultStyledSelect__LmeKj\",\n\t\"disabledSelect\": \"Select_disabledSelect___R3Jd\"\n};\n","import React, { RefObject, ChangeEvent, memo, ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './ComboboxItem.module.scss';\n\nexport interface DropdownItem {\n id: string;\n value: string;\n name: string;\n label: string;\n checked?: boolean;\n disabled?: boolean;\n prefix?: ReactNode;\n suffix?: string;\n}\n\ninterface Props {\n checked: boolean;\n disabled: boolean;\n itemId?: string;\n selectedItemRef?: RefObject<HTMLDivElement>;\n item?: DropdownItem;\n onItemSelectedChange?: (event: ChangeEvent<HTMLInputElement>) => void;\n isNotFound?: boolean;\n emptyMessage?: string;\n}\n\nconst ComboboxItem: React.FC<Props> = ({\n checked,\n disabled,\n itemId,\n selectedItemRef,\n item,\n onItemSelectedChange,\n isNotFound = false,\n emptyMessage,\n}) => {\n if (isNotFound) {\n return (\n <div className={classNames(styles.itemContainer, styles.disabledItem)}>{emptyMessage}</div>\n );\n }\n return (\n <label htmlFor={itemId} key={itemId}>\n <div\n ref={checked ? selectedItemRef : null}\n className={classNames(\n styles.itemContainer,\n { [styles.disabledItem]: disabled },\n { [styles.enabledItem]: !disabled },\n { [styles.checkedItem]: checked },\n )}\n >\n <input\n type=\"checkbox\"\n className={styles.input}\n id={itemId}\n name={item.name}\n disabled={disabled}\n checked={checked}\n onChange={onItemSelectedChange}\n data-item-label={item.label}\n />\n <label\n htmlFor={itemId}\n className={classNames(styles.labelContainer, { [styles.itemLabel]: !disabled })}\n >\n <div className={styles.prefixContainer}>\n {item.prefix && <div className={styles.prefix}>{item.prefix}</div>} {item.label}\n </div>\n {item.suffix && <div className={styles.suffixContainer}>{item.suffix}</div>}\n </label>\n </div>\n </label>\n );\n};\n\nexport default memo(ComboboxItem);\n","enum ComboboxSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\nexport default ComboboxSize;\n","import React, { ChangeEvent, useEffect, RefObject } from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './ComboboxItems.module.scss';\n\nimport ComboboxItem, { DropdownItem } from '@/dls/Forms/Combobox/ComboboxItem';\nimport ComboboxSize from '@/dls/Forms/Combobox/types/ComboboxSize';\nimport { Value } from '@/dls/Forms/Combobox/types/Values';\nimport useScroll from '@/hooks/useScrollToElement';\n\ninterface Props {\n isOpened: boolean;\n isMultiSelect: boolean;\n disabled: boolean;\n fixedWidth: boolean;\n preventSelecting: boolean;\n size: ComboboxSize;\n id: string;\n filteredItems: DropdownItem[];\n emptyMessage: string;\n onItemSelectedChange: (event: ChangeEvent<HTMLInputElement>) => void;\n selectedValue: Value;\n}\n\nconst SCROLL_TO_SELECTED_ELEMENT_OPTIONS = {\n block: 'nearest', // 'block' relates to vertical alignment. see: https://stackoverflow.com/a/48635751/1931451 for nearest.\n} as ScrollIntoViewOptions;\n\nconst ComboboxItems: React.FC<Props> = ({\n isOpened,\n disabled,\n size,\n filteredItems,\n isMultiSelect,\n preventSelecting,\n emptyMessage,\n id,\n onItemSelectedChange,\n selectedValue,\n fixedWidth,\n}) => {\n const [scrollToSelectedItem, selectedItemRef]: [() => void, RefObject<HTMLDivElement>] =\n useScroll(SCROLL_TO_SELECTED_ELEMENT_OPTIONS);\n\n // once the dropdown is opened, scroll to the selected item.\n useEffect(() => {\n if (isOpened) {\n scrollToSelectedItem();\n }\n }, [isOpened, scrollToSelectedItem]);\n return (\n <div\n className={classNames(styles.comboboxBodyContainer, {\n [styles.openedComboboxBodyContainer]: isOpened,\n [styles.largeComboboxBodyContainer]: size === ComboboxSize.Large,\n [styles.fixedWidth]: fixedWidth,\n })}\n aria-modal=\"true\"\n role=\"dialog\"\n >\n <div className={styles.itemsContainer} role=\"listbox\">\n {filteredItems.map((item) => {\n let checked = false;\n if (selectedValue) {\n if (!isMultiSelect && selectedValue === item.name) {\n checked = true;\n } else if (isMultiSelect && selectedValue[item.name] !== undefined) {\n checked = true;\n }\n }\n const isItemDisabled = disabled === true || item.disabled === true || preventSelecting;\n const itemId = `${id}-${item.id}`;\n return (\n <ComboboxItem\n onItemSelectedChange={onItemSelectedChange}\n key={itemId}\n checked={checked}\n disabled={isItemDisabled}\n itemId={itemId}\n selectedItemRef={selectedItemRef}\n item={item}\n />\n );\n })}\n {!filteredItems.length && (\n <ComboboxItem emptyMessage={emptyMessage} checked={false} disabled isNotFound />\n )}\n </div>\n </div>\n );\n};\n\nexport default ComboboxItems;\n","import React from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './CaretInputIcon.module.scss';\n\nimport CaretIcon from '@/icons/caret-down.svg';\n\ninterface Props {\n shouldShowIcon: boolean;\n isOpened: boolean;\n}\n\nconst CaretInputIcon: React.FC<Props> = ({ shouldShowIcon, isOpened }) => {\n if (!shouldShowIcon) {\n return null;\n }\n return (\n <div\n className={classNames(styles.caretIconButton, {\n [styles.openedCaretIconButton]: isOpened,\n })}\n aria-label=\"Show more\"\n >\n <CaretIcon />\n </div>\n );\n};\n\nexport default CaretInputIcon;\n","import React from 'react';\n\nimport styles from './ClearInputIcon.module.scss';\n\nimport CloseIcon from '@/icons/close.svg';\n\ninterface Props {\n shouldShowIcon: boolean;\n onClearButtonClicked: (event: React.MouseEvent<HTMLSpanElement>) => void;\n}\n\nconst ClearInputIcon: React.FC<Props> = ({ shouldShowIcon, onClearButtonClicked }) => {\n if (!shouldShowIcon) {\n return null;\n }\n return (\n <span\n className={styles.clearIconContainer}\n // eslint-disable-next-line react/no-unknown-property\n unselectable=\"on\"\n aria-hidden=\"true\"\n onClick={onClearButtonClicked}\n >\n <span role=\"img\" aria-label=\"close-circle\" className={styles.icon}>\n <CloseIcon />\n </span>\n </span>\n );\n};\n\nexport default ClearInputIcon;\n","/* eslint-disable react/no-unknown-property */\nimport React from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './SearchInputIcon.module.scss';\n\nimport IconSearch from '@/icons/search.svg';\n\nconst SearchInputIcon: React.FC = () => (\n <span\n className={classNames(styles.iconContainer, styles.selectSearch)}\n unselectable=\"on\"\n aria-hidden=\"true\"\n >\n <span role=\"img\" className={styles.icon}>\n <IconSearch />\n </span>\n </span>\n);\n\nexport default SearchInputIcon;\n","/* eslint-disable react/no-unknown-property */\nimport React, { memo } from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './Tag.module.scss';\n\nimport ComboboxSize from '@/dls/Forms/Combobox/types/ComboboxSize';\nimport CloseIcon from '@/icons/close.svg';\n\ninterface Props {\n onRemoveTagClicked: (event: React.MouseEvent<HTMLSpanElement>, tag: string) => void;\n size: ComboboxSize;\n tag: string;\n}\n\nconst Tag: React.FC<Props> = ({ onRemoveTagClicked, size, tag }) => (\n <span\n className={classNames(styles.item, {\n [styles.largeItem]: size === ComboboxSize.Large,\n })}\n >\n <span className={styles.itemContent}>{tag}</span>\n <span\n className={styles.itemRemove}\n unselectable=\"on\"\n aria-hidden=\"true\"\n onClick={(event) => {\n onRemoveTagClicked(event, tag);\n }}\n >\n <span role=\"img\" aria-label=\"close\" className={styles.icon}>\n <CloseIcon />\n </span>\n </span>\n </span>\n);\n\nexport default memo(Tag);\n","/* eslint-disable react/no-unknown-property */\n/* eslint-disable max-lines */\n/* eslint-disable jsx-a11y/role-has-required-aria-props */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n\nimport React, {\n ChangeEvent,\n useState,\n ReactNode,\n useEffect,\n RefObject,\n useCallback,\n useRef,\n useMemo,\n} from 'react';\n\nimport classNames from 'classnames';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport styles from './Combobox.module.scss';\nimport { DropdownItem } from './ComboboxItem';\nimport ComboboxItems from './ComboboxItems';\nimport CaretInputIcon from './Icons/CaretInputIcon';\nimport ClearInputIcon from './Icons/ClearInputIcon';\nimport SearchInputIcon from './Icons/SearchInputIcon';\nimport Tag from './Tag';\nimport ComboboxSize from './types/ComboboxSize';\nimport { InitialValue, Value, MultiSelectValue, InitialSelectedItems } from './types/Values';\n\nimport useFocus from '@/hooks/useFocusElement';\nimport useOutsideClickDetector from '@/hooks/useOutsideClickDetector';\n\ninterface Props {\n id: string;\n items: DropdownItem[];\n onChange?: (selectedValues: InitialValue, dropDownId: string) => void;\n initialInputValue?: string;\n emptyMessage?: string;\n label?: string | ReactNode;\n placeholder?: string;\n size?: ComboboxSize;\n value?: InitialValue;\n clearable?: boolean;\n isMultiSelect?: boolean;\n tagsLimit?: number;\n disabled?: boolean;\n hasError?: boolean;\n fixedWidth?: boolean;\n minimumRequiredItems?: number;\n}\n\nconst Combobox: React.FC<Props> = ({\n items,\n placeholder = 'Search...',\n hasError = false,\n value,\n initialInputValue,\n disabled = false,\n clearable = true,\n isMultiSelect = false,\n emptyMessage = 'No results',\n tagsLimit,\n label,\n id,\n size = ComboboxSize.Medium,\n minimumRequiredItems = 0,\n onChange,\n fixedWidth = true,\n}) => {\n const [isOpened, setIsOpened] = useState(false);\n const [inputValue, setInputValue] = useState<string>(initialInputValue || '');\n const [selectedValue, setSelectedValue] = useState<Value>(() => {\n if (!value) {\n return getDefaultValue(isMultiSelect);\n }\n if (!isMultiSelect) {\n return value as string;\n }\n return convertArrayToObject(value as InitialSelectedItems);\n });\n const [filteredItems, setFilteredItems] = useState<DropdownItem[]>(items);\n const [focusInput, inputRef]: [() => void, RefObject<HTMLInputElement>] = useFocus();\n const comboBoxRef = useRef(null);\n\n // instead of running items.find in the closeCombobox function, we can create a map to memoize the result\n const valueToLabelMap = useMemo(() => {\n const map: Record<string, string> = {};\n\n items.forEach((item) => {\n map[item.value] = item.label;\n });\n\n return map;\n }, [items]);\n\n const closeCombobox = useCallback(() => {\n if (!isMultiSelect) {\n const currentValue = selectedValue as string;\n setInputValue(valueToLabelMap[currentValue] ?? currentValue);\n } else {\n setInputValue('');\n }\n setIsOpened(false);\n }, [isMultiSelect, selectedValue, valueToLabelMap]);\n\n useOutsideClickDetector(comboBoxRef, closeCombobox, isOpened);\n useHotkeys('Escape', closeCombobox, { enabled: isOpened, enableOnTags: ['INPUT'] });\n\n // if there are any changes in the items, we should update the filteredItems.\n // this is necessary when the parent items are have initial empty value and\n // the actual values are fetched remotely and by the time they have a value,\n // filteredItems would have already been initialized with the initial items value\n // and the actual values wouldn't reflect.\n useEffect(() => {\n setFilteredItems(items);\n }, [items]);\n\n // filter items when the search query changes\n useEffect(() => {\n // if the search query is empty it means it has been cleared so we set the original items back.\n setFilteredItems(\n !inputValue\n ? items\n : items.filter((item) =>\n // we convert the search query and the item's label to lowercase first then check if the label contains a part/all of the search query.\n item.label.toLowerCase().includes(inputValue.toLowerCase()),\n ),\n );\n }, [inputValue, items]);\n\n // if there are any changes in the value, we should update the selectedValue.\n useEffect(() => {\n if (!value) {\n setSelectedValue(getDefaultValue(isMultiSelect));\n } else {\n setSelectedValue(\n isMultiSelect ? convertArrayToObject(value as InitialSelectedItems) : (value as string),\n );\n }\n }, [value, isMultiSelect]);\n\n // if there are any changes in the initialInputValue, we should update the inputValue.\n useEffect(() => {\n setInputValue(initialInputValue);\n }, [initialInputValue]);\n\n const tags = useMemo(() => {\n if (!isMultiSelect) {\n return null;\n }\n // get the labels of the selected items by looking inside items array\n return items\n .filter((item) => Object.keys(selectedValue as MultiSelectValue).includes(item.name))\n .map((item) => item.label);\n }, [isMultiSelect, items, selectedValue]);\n\n /**\n * By default we can un-select any items. We disallow unselecting items when\n * we meet the the following conditions:\n *\n * 1. minimumRequiredItems has a value above 0.\n * 2. if it's isMultiSelect:\n * 2.1 there should be some selected items already.\n * 2.2 the number of selected items are either equal to\n * or below the minimum required selected items.\n * 3. if it's not isMultiSelect: there should already be a selected value.\n */\n const hasMinimumRequiredItems = minimumRequiredItems > 0;\n const preventUnselectingItems =\n hasMinimumRequiredItems &&\n ((tags && tags.length <= minimumRequiredItems) || (!isMultiSelect && selectedValue));\n\n const invokeOnChangeCallback = useCallback(\n (newValue) => {\n if (onChange) {\n onChange(isMultiSelect ? Object.keys(newValue) : (newValue as string), id);\n }\n },\n [id, isMultiSelect, onChange],\n );\n\n /**\n * We detect whether we should allow to delete the last selected tag when clicking\n * the backspace key based on the following conditions:\n *\n * 1. it it's multiSelect.\n * 2. The input value doesn't have a value otherwise, backspace key should be used to remove the input value and not the present tags.\n * 3. We at least have 1 tag present.\n * 4. We allow un-selecting items.\n */\n useHotkeys(\n 'Backspace',\n () => {\n setSelectedValue((prevSelectedValue: MultiSelectValue) => {\n const newSelectedValues = { ...prevSelectedValue };\n const lastTag = Object.keys(newSelectedValues).pop();\n delete newSelectedValues[lastTag];\n invokeOnChangeCallback(newSelectedValues);\n return newSelectedValues;\n });\n },\n {\n enabled:\n isOpened && isMultiSelect && !inputValue && !!tags.length && !preventUnselectingItems,\n enableOnTags: ['INPUT'],\n },\n [invokeOnChangeCallback],\n );\n\n const onSelectorClicked = () => {\n setIsOpened((prevIsOpened) => !prevIsOpened);\n // we need to focus on the input field whenever the user clicks anywhere inside the component.\n if (isMultiSelect) {\n focusInput();\n }\n };\n\n /**\n * Handle when an item is selected.\n *\n * @param {ChangeEvent<HTMLInputElement>} event\n */\n const onItemSelectedChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const { itemLabel } = event.target.dataset;\n const selectedItemName = event.target.name;\n const isUnSelect = !event.currentTarget.checked;\n /*\n only change the selected value if:\n 1. we are selecting.\n 2. we are un-selecting and we are not prevented from un-selecting.\n */\n const shouldProcessChange = !isUnSelect || (isUnSelect && !preventUnselectingItems);\n if (isMultiSelect) {\n if (shouldProcessChange) {\n setSelectedValue((prevSelectedValues: MultiSelectValue) => {\n const newSelectedValues = { ...prevSelectedValues };\n if (isUnSelect) {\n delete newSelectedValues[selectedItemName];\n } else {\n newSelectedValues[selectedItemName] = true;\n }\n invokeOnChangeCallback(newSelectedValues);\n return newSelectedValues;\n });\n }\n setInputValue(''); // reset the input value even if it's selecting.\n } else if (shouldProcessChange) {\n setInputValue(isUnSelect ? '' : itemLabel);\n setSelectedValue(() => {\n const newSelectedValue = isUnSelect ? '' : selectedItemName;\n invokeOnChangeCallback(newSelectedValue);\n return newSelectedValue;\n });\n }\n setIsOpened(false); // close the items container\n },\n [preventUnselectingItems, invokeOnChangeCallback, isMultiSelect],\n );\n\n /**\n * Handle when the user searches for an item.\n *\n * @param {React.FormEvent<HTMLInputElement>} event\n * @returns {void}\n */\n const onInputValueChange = (event: React.FormEvent<HTMLInputElement>): void => {\n const newInputValue = event.currentTarget.value;\n setInputValue(newInputValue);\n setIsOpened(true);\n };\n\n /**\n * Handle when the clear button is clicked.\n * We will reset the input value, the selected value\n * and the filtered items.\n *\n * @param {React.MouseEvent<HTMLSpanElement>} event\n */\n const onClearButtonClicked = (event: React.MouseEvent<HTMLSpanElement>) => {\n event.stopPropagation();\n /*\n Don't allow the clearing of the selected items when:\n\n 1. it's multiSelect.\n 2. has minimum required items set.\n This is done to avoid clearing all items while the minimum amount of items \n that should be selected is set. \n */\n if (!(hasMinimumRequiredItems && isMultiSelect)) {\n setInputValue('');\n // if it's allowed to un-select items.\n if (!preventUnselectingItems) {\n setSelectedValue(() => {\n const defaultSelectedValue = getDefaultValue(isMultiSelect);\n invokeOnChangeCallback(defaultSelectedValue);\n return defaultSelectedValue;\n });\n }\n }\n };\n\n /**\n * Handle when removing a tag.\n *\n * @param {React.MouseEvent<HTMLSpanElement>} event\n * @param {string} tag\n */\n const onRemoveTagClicked = useCallback(\n (event: React.MouseEvent<HTMLSpanElement>, tag: string) => {\n event.stopPropagation();\n // if it's allowed to un-select items.\n if (!preventUnselectingItems) {\n const toBeRemovedTag = items.find((item) => item.label === tag);\n setSelectedValue((prevSelectedValues: MultiSelectValue) => {\n const newSelectedValues = { ...prevSelectedValues };\n delete newSelectedValues[toBeRemovedTag.name];\n invokeOnChangeCallback(newSelectedValues);\n return newSelectedValues;\n });\n }\n },\n [invokeOnChangeCallback, items, preventUnselectingItems],\n );\n\n const shouldShowCaret =\n (!isMultiSelect && !inputValue) || (isMultiSelect && !inputValue && !tags.length);\n const shouldShowClear = clearable && !shouldShowCaret;\n // if we should prevent selecting when the tags limit has been reached.\n const preventSelecting = tagsLimit && tags && tags.length >= tagsLimit;\n return (\n <>\n {label && <p className={styles.label}>{label}</p>}\n <div\n ref={comboBoxRef}\n className={classNames(styles.comboboxContainer, {\n [styles.enabled]: !disabled,\n [styles.fixedWidth]: fixedWidth,\n })}\n >\n <div\n onClick={onSelectorClicked}\n className={classNames(styles.select, {\n [styles.disabledSearch]: disabled,\n })}\n >\n <SearchInputIcon />\n <div\n className={classNames(styles.selector, {\n [styles.disabledSelector]: disabled,\n [styles.activeSelector]: !disabled && !hasError && isOpened,\n [styles.hasError]: hasError,\n })}\n >\n <div\n className={classNames({\n [styles.overflow]: isMultiSelect,\n [styles.fullWidth]: !isMultiSelect,\n })}\n >\n {isMultiSelect &&\n tags.map((tag) => (\n <div key={tag} className={classNames(styles.overflowItem, styles.tagContainer)}>\n <Tag tag={tag} onRemoveTagClicked={onRemoveTagClicked} size={size} />\n </div>\n ))}\n <div className={styles.overflowItem}>\n <div\n className={classNames(styles.search, { [styles.fullWidth]: !isMultiSelect })}\n style={{\n ...(isMultiSelect && inputValue && { width: `${inputValue.length}rem` }),\n }}\n >\n <input\n ref={inputRef}\n autoComplete=\"off\"\n type=\"search\"\n className={classNames(styles.multiSelectSearchInput, {\n [styles.smallSearchInput]: size === ComboboxSize.Small,\n [styles.mediumSearchInput]: size === ComboboxSize.Medium,\n [styles.largeSearchInput]: size === ComboboxSize.Large,\n })}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-expanded={isOpened}\n aria-owns={id}\n aria-autocomplete=\"list\"\n onChange={onInputValueChange}\n value={inputValue}\n disabled={disabled}\n readOnly={false}\n unselectable=\"on\"\n {...(!isMultiSelect && { placeholder })}\n />\n </div>\n </div>\n </div>\n {isMultiSelect && !tags.length && !inputValue && (\n <span className={styles.placeholder}>{placeholder}</span>\n )}\n </div>\n <CaretInputIcon isOpened={isOpened} shouldShowIcon={shouldShowCaret} />\n <ClearInputIcon\n shouldShowIcon={shouldShowClear}\n onClearButtonClicked={onClearButtonClicked}\n />\n </div>\n <ComboboxItems\n onItemSelectedChange={onItemSelectedChange}\n isOpened={isOpened}\n disabled={disabled}\n size={size}\n filteredItems={filteredItems}\n isMultiSelect={isMultiSelect}\n preventSelecting={preventSelecting}\n selectedValue={selectedValue}\n id={id}\n emptyMessage={emptyMessage}\n fixedWidth={fixedWidth}\n />\n </div>\n </>\n );\n};\n\n/**\n * Get the default value based on the type:\n *\n * - if it's multi-select, it's an empty object.\n * - if it's single-select, it's an empty string.\n *\n * @param {boolean} isMultiSelect\n * @returns {Value}\n */\nconst getDefaultValue = (isMultiSelect: boolean): Value => (isMultiSelect ? {} : '');\n\n/**\n * Convert the initial values array of strings to an object.\n *\n * @param {InitialSelectedItems} array\n * @returns {MultiSelectValue}\n */\nconst convertArrayToObject = (array: InitialSelectedItems): MultiSelectValue => {\n const multiSelectValue = {};\n array.forEach((selectedItem) => {\n multiSelectValue[selectedItem] = true;\n });\n return multiSelectValue;\n};\n\nexport default Combobox;\n","/* eslint-disable max-lines */\nimport { useContext, useMemo, useState } from 'react';\n\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './ReadingGoalInput.module.scss';\n\nimport DataContext from '@/contexts/DataContext';\nimport Combobox from '@/dls/Forms/Combobox';\nimport ComboboxSize from '@/dls/Forms/Combobox/types/ComboboxSize';\nimport { RangeItem, RangeItemPosition } from '@/types/Range';\nimport { generateChapterOptions, generateVerseOptions } from '@/utils/generators';\nimport { getChapterNumberFromKey, getVerseNumberFromKey, makeVerseKey } from '@/utils/verse';\n\ninterface VerseRangesInputProps {\n rangeStartVerse?: string;\n rangeEndVerse?: string;\n onRangeChange: (range: { startVerse: string | null; endVerse: string | null }) => void;\n\n logChange?: (\n field: 'start_verse' | 'end_verse',\n data: { currentValue: string | null; newValue: string | null },\n extraData?: {\n chapter: string | null;\n verse: string | null;\n },\n ) => void;\n}\n\nconst VerseRangeInput = ({\n rangeStartVerse,\n rangeEndVerse,\n onRangeChange,\n logChange,\n}: VerseRangesInputProps) => {\n const { t, lang } = useTranslation('reading-goal');\n const chaptersData = useContext(DataContext);\n\n const [startChapter, setStartChapter] = useState<string>(\n rangeStartVerse ? getChapterNumberFromKey(rangeStartVerse).toString() : undefined,\n );\n\n const [endChapter, setEndChapter] = useState<string>(\n rangeEndVerse ? getChapterNumberFromKey(rangeEndVerse).toString() : undefined,\n );\n\n const chapterOptions = useMemo(\n () => generateChapterOptions(chaptersData, lang),\n [chaptersData, lang],\n );\n\n const startingVerseOptions = useMemo(\n () => generateVerseOptions(chaptersData, t, lang, startChapter),\n [t, lang, chaptersData, startChapter],\n );\n\n const endingVerseOptions = useMemo(\n () => generateVerseOptions(chaptersData, t, lang, endChapter),\n [t, lang, chaptersData, endChapter],\n );\n\n // useEffect(() => {\n // if (!rangeStartVerse) {\n // setStartChapter(undefined);\n // }\n // }, [rangeStartVerse]);\n\n // useEffect(() => {\n // if (!rangeEndVerse) {\n // setEndChapter(undefined);\n // }\n // }, [rangeEndVerse]);\n\n const endingVerse = useMemo(() => {\n if (!rangeEndVerse) return undefined;\n return getVerseNumberFromKey(rangeEndVerse).toString();\n }, [rangeEndVerse]);\n\n const startingVerse = useMemo(() => {\n if (!rangeStartVerse) return undefined;\n return getVerseNumberFromKey(rangeStartVerse).toString();\n }, [rangeStartVerse]);\n\n // eslint-disable-next-line react-func/max-lines-per-function\n const onChapterChange = (chapterPosition: RangeItemPosition) => (chapterId: string) => {\n const isStartChapter = chapterPosition === RangeItemPosition.Start;\n const oldChapterId = isStartChapter ? startChapter : endChapter;\n const setChapter = isStartChapter ? setStartChapter : setEndChapter;\n\n if (!chapterId || chapterId !== oldChapterId) {\n onRangeChange(\n isStartChapter\n ? { startVerse: null, endVerse: rangeEndVerse }\n : {\n startVerse: rangeStartVerse,\n endVerse: null,\n },\n );\n }\n\n // if the current value is null, we don't need to log it\n const currentVerse = isStartChapter ? rangeStartVerse : rangeEndVerse;\n if (currentVerse && logChange) {\n logChange(\n isStartChapter ? 'start_verse' : 'end_verse',\n {\n currentValue: currentVerse,\n newValue: null,\n },\n {\n chapter: chapterId || null,\n verse: (isStartChapter ? startingVerse : endingVerse) || null,\n },\n );\n }\n\n if (!chapterId) {\n setChapter(undefined);\n } else {\n setChapter(chapterId);\n }\n };\n\n const startChapterOptions = useMemo(() => {\n if (!endChapter) return chapterOptions;\n\n const endChapterIdx = Number(endChapter) - 1;\n\n return chapterOptions.slice(0, endChapterIdx + 1);\n }, [chapterOptions, endChapter]);\n\n const endChapterOptions = useMemo(() => {\n if (!startChapter) return chapterOptions;\n\n const startChapterIdx = Number(startChapter) - 1;\n\n return chapterOptions.slice(startChapterIdx);\n }, [chapterOptions, startChapter]);\n\n const onVerseChange = (versePosition: RangeItemPosition) => (verseId: string) => {\n const isStartVerse = versePosition === RangeItemPosition.Start;\n\n const newVerseKey = verseId\n ? makeVerseKey(isStartVerse ? startChapter : endChapter, verseId)\n : null;\n\n onRangeChange(\n isStartVerse\n ? { startVerse: newVerseKey, endVerse: rangeEndVerse }\n : {\n startVerse: rangeStartVerse,\n endVerse: newVerseKey,\n },\n );\n\n if (logChange) {\n logChange(\n isStartVerse ? 'start_verse' : 'end_verse',\n {\n currentValue: isStartVerse ? rangeStartVerse : rangeEndVerse,\n newValue: newVerseKey,\n },\n {\n chapter: (isStartVerse ? startChapter : endChapter) || null,\n verse: verseId || null,\n },\n );\n }\n };\n\n const getInitialInputValue = (inputType: RangeItem) => {\n if (inputType === RangeItem.StartingChapter || inputType === RangeItem.EndingChapter) {\n const chapterId = inputType === RangeItem.StartingChapter ? startChapter : endChapter;\n if (!chapterId) return undefined;\n\n return chapterOptions[Number(chapterId) - 1]?.label;\n }\n\n const verseId = inputType === RangeItem.StartingVerse ? startingVerse : endingVerse;\n if (!verseId) return '';\n\n const verseOptions =\n inputType === RangeItem.StartingVerse ? startingVerseOptions : endingVerseOptions;\n return verseOptions[Number(verseId) - 1]?.label;\n };\n\n return (\n <>\n <div className={styles.rangeInputContainer}>\n <div>\n <Combobox\n id=\"start-chapter\"\n size={ComboboxSize.Large}\n fixedWidth={false}\n label={<p className={styles.label}>{t('starting-chapter')}</p>}\n items={startChapterOptions}\n value={startChapter}\n initialInputValue={getInitialInputValue(RangeItem.StartingChapter)}\n onChange={onChapterChange(RangeItemPosition.Start)}\n />\n </div>\n\n <div>\n <Combobox\n id=\"starting-verse\"\n size={ComboboxSize.Large}\n fixedWidth={false}\n disabled={!startChapter}\n label={<p className={styles.label}>{t('starting-verse')}</p>}\n items={startingVerseOptions}\n value={startingVerse}\n initialInputValue={getInitialInputValue(RangeItem.StartingVerse)}\n onChange={onVerseChange(RangeItemPosition.Start)}\n />\n </div>\n </div>\n <div className={styles.rangeInputContainer}>\n <div>\n <Combobox\n id=\"end-chapter\"\n size={ComboboxSize.Large}\n fixedWidth={false}\n label={<p className={styles.label}>{t('ending-chapter')}</p>}\n items={endChapterOptions}\n value={endChapter}\n initialInputValue={getInitialInputValue(RangeItem.EndingChapter)}\n onChange={onChapterChange(RangeItemPosition.End)}\n />\n </div>\n\n <div>\n <Combobox\n id=\"end-verse\"\n size={ComboboxSize.Large}\n fixedWidth={false}\n label={<p className={styles.label}>{t('ending-verse')}</p>}\n items={endingVerseOptions}\n value={endingVerse}\n disabled={!endChapter}\n initialInputValue={getInitialInputValue(RangeItem.EndingVerse)}\n onChange={onVerseChange(RangeItemPosition.End)}\n />\n </div>\n </div>\n </>\n );\n};\n\nexport default VerseRangeInput;\n","/* eslint-disable react-func/max-lines-per-function */\n/* eslint-disable max-lines */\nimport { useMemo } from 'react';\n\nimport classNames from 'classnames';\nimport useTranslation from 'next-translate/useTranslation';\n\nimport styles from './ReadingGoalInput.module.scss';\nimport VerseRangeInput from './VerseRangeInput';\n\nimport { ReadingGoalTabProps } from '@/components/ReadingGoalPage/hooks/useReadingGoalReducer';\nimport Input, { InputSize } from '@/dls/Forms/Input';\nimport Select, { SelectSize } from '@/dls/Forms/Select';\nimport { GoalType } from '@/types/auth/Goal';\nimport { generateTimeOptions } from '@/utils/generators';\n\nexport interface ReadingGoalInputProps {\n type: GoalType;\n\n rangeStartVerse?: string;\n rangeEndVerse?: string;\n pages?: number;\n seconds?: number;\n widthFull?: boolean;\n\n onRangeChange: (range: { startVerse: string | null; endVerse: string | null }) => void;\n onPagesChange: (pages: number) => void;\n onSecondsChange: (seconds: number) => void;\n\n logChange: ReadingGoalTabProps['logChange'];\n}\n\nconst ReadingGoalInput: React.FC<ReadingGoalInputProps> = ({\n type,\n rangeStartVerse,\n rangeEndVerse,\n pages,\n seconds,\n onRangeChange,\n onPagesChange,\n onSecondsChange,\n widthFull = true,\n logChange,\n}) => {\n const { t, lang } = useTranslation('reading-goal');\n const timeOptions = useMemo(() => generateTimeOptions(t, lang), [t, lang]);\n\n if (type === GoalType.RANGE) {\n return (\n <VerseRangeInput\n rangeStartVerse={rangeStartVerse}\n rangeEndVerse={rangeEndVerse}\n onRangeChange={onRangeChange}\n logChange={logChange}\n />\n );\n }\n\n if (type === GoalType.PAGES) {\n return (\n <div className={styles.inputContainer}>\n <label htmlFor=\"pages\" className={styles.label}>\n {t('goal-types.pages.title')}\n </label>\n <Input\n id=\"pages\"\n containerClassName={classNames(styles.input, widthFull && styles.fullWidth)}\n size={InputSize.Large}\n value={pages.toString()}\n fixedWidth={false}\n htmlType=\"number\"\n // prevent users from entering decimal value\n onKeyDown={(e) => e.key === '.' && e.preventDefault()}\n inputMode=\"numeric\"\n onChange={(p) => {\n const parsedPages = Number(p);\n onPagesChange(parsedPages);\n logChange('pages', { currentValue: pages, newValue: parsedPages });\n }}\n />\n </div>\n );\n }\n\n return (\n <div className={styles.inputContainer}>\n <label htmlFor=\"seconds\" className={styles.label}>\n {t('goal-types.time.title')}\n </label>\n <Select\n id=\"seconds\"\n name=\"seconds\"\n size={SelectSize.Large}\n className={styles.input}\n options={timeOptions}\n value={seconds.toString()}\n onChange={(s) => {\n const parsedSeconds = Number(s);\n onSecondsChange(parsedSeconds);\n\n logChange('seconds', { currentValue: seconds, newValue: parsedSeconds });\n }}\n />\n </div>\n );\n};\n\nexport default ReadingGoalInput;\n","/* eslint-disable import/prefer-default-export */\nimport { isValidPageNumber, isValidVerseKey } from '@/utils/validator';\nimport { getVerseAndChapterNumbersFromKey } from '@/utils/verse';\nimport { GoalType } from 'types/auth/Goal';\nimport ChaptersData from 'types/ChaptersData';\nimport { Mushaf } from 'types/QuranReader';\n\nconst SECONDS_LIMIT = 4 * 60 * 60; // 4 hours\nconst MIN_SECONDS = 60; // 1 minute\n\ninterface Range {\n startVerse: string;\n endVerse: string;\n}\n\ninterface ReadingGoalPayload {\n type: GoalType;\n pages?: number;\n seconds?: number;\n range?: Range;\n}\n\n/**\n * A utility function to validate the reading goal data\n *\n * @param {ChaptersData} chaptersData\n * @param {ReadingGoalPayload} payload\n * @returns {boolean} is the payload valid\n */\nexport const validateReadingGoalData = (\n chaptersData: ChaptersData,\n { type, pages, seconds, range }: ReadingGoalPayload,\n mushafId: Mushaf,\n): boolean => {\n // if the user selected a pages goal and didn't enter a valid amount of pages, disable the next button\n if (type === GoalType.PAGES && !isValidPageNumber(pages, mushafId)) return false;\n\n // if the user selected a time goal and didn't enter a valid amount of seconds, disable the next button\n // in theory, this should never happen because the input is a select, but just in case\n if (\n type === GoalType.TIME &&\n (Number.isNaN(seconds) || seconds > SECONDS_LIMIT || seconds < MIN_SECONDS)\n ) {\n return false;\n }\n\n // if the user selected a range goal and didn't enter a valid range, disable the next button\n if (type === GoalType.RANGE) {\n return isValidVerseRange(chaptersData, range);\n }\n\n return true;\n};\n\n/**\n * Check wether the ranges are valid or not.\n *\n * @param {ChaptersData} chaptersData\n * @param {Range} range\n * @returns {boolean}\n */\nexport const isValidVerseRange = (chaptersData: ChaptersData, range?: Range): boolean => {\n if (!range?.startVerse || !range?.endVerse) return false;\n if (\n !isValidVerseKey(chaptersData, range.startVerse) ||\n !isValidVerseKey(chaptersData, range.endVerse)\n ) {\n return false;\n }\n\n // check if the starting verse key is greater than the ending verse key\n const [startingChapter, startingVerse] = getVerseAndChapterNumbersFromKey(range.startVerse);\n const [endingChapter, endingVerse] = getVerseAndChapterNumbersFromKey(range.endVerse);\n // if it's the same Surah but in reverse order\n if (startingChapter === endingChapter && Number(startingVerse) > Number(endingVerse)) {\n return false;\n }\n // if it's the range Surahs are in reverse order\n if (Number(startingChapter) > Number(endingChapter)) {\n return false;\n }\n return true;\n};\n","import React, { ChangeEvent, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport styles from './Select.module.scss';\n\nimport CaretIcon from '@/icons/caret-down.svg';\n\nexport interface SelectOption {\n label: string;\n value: string | number;\n disabled?: boolean;\n}\n\nexport enum SelectSize {\n Small = 'small',\n Medium = 'medium',\n Large = 'large',\n}\n\ninterface Props {\n id: string;\n name: string;\n options: SelectOption[];\n disabled?: boolean;\n required?: boolean;\n size?: SelectSize;\n value?: string;\n placeholder?: string;\n onChange?: (value: string | number) => void;\n defaultStyle?: boolean;\n className?: string;\n withBackground?: boolean;\n}\n\nconst Select: React.FC<Props> = ({\n name,\n id,\n onChange,\n options,\n value,\n disabled = false,\n required = false,\n size = SelectSize.Medium,\n placeholder = 'Select an option',\n defaultStyle = true,\n className,\n withBackground = true,\n}) => {\n const onSelectChange = useCallback(\n (e: ChangeEvent<HTMLSelectElement>) => {\n if (onChange) {\n onChange(e.target.value);\n }\n },\n [onChange],\n );\n\n return (\n <div\n className={classNames(styles.container, {\n [styles.defaultStyledContainer]: defaultStyle,\n [className]: className,\n [styles.disabledContainer]: disabled,\n [styles.smallContainer]: size === SelectSize.Small,\n [styles.mediumContainer]: size === SelectSize.Medium,\n [styles.largeContainer]: size === SelectSize.Large,\n [styles.withBackground]: withBackground,\n })}\n >\n <select\n className={classNames(styles.select, {\n [styles.defaultStyledSelect]: defaultStyle,\n [styles.disabledSelect]: disabled,\n })}\n name={name}\n id={id}\n onChange={onSelectChange}\n disabled={disabled}\n required={required}\n {...(value ? { value } : { defaultValue: '' })}\n >\n <option value=\"\" disabled hidden>\n {placeholder}\n </option>\n {options.map((option) => (\n <option key={option.value} value={option.value} disabled={option.disabled || false}>\n {option.label}\n </option>\n ))}\n </select>\n <div className={classNames(styles.arrow, { [styles.disabledArrow]: disabled })}>\n <CaretIcon />\n </div>\n </div>\n );\n};\n\nexport default Select;\n","import { shallowEqual, useSelector } from 'react-redux';\n\nimport { selectQuranFont, selectQuranMushafLines } from '@/redux/slices/QuranReader/styles';\nimport { Mushaf } from '@/types/QuranReader';\nimport { getMushafId } from '@/utils/api';\n\n/**\n * Instead of repeating using multiple selectors to get the MushafId\n * in multiple components, we are introducing this hook to keep it DRY.\n *\n * TODO: apply it to everywhere using the mushafId\n *\n * @returns {Mushaf}\n */\nconst useGetMushaf = (): Mushaf => {\n const quranFont = useSelector(selectQuranFont, shallowEqual);\n const mushafLines = useSelector(selectQuranMushafLines, shallowEqual);\n const { mushaf } = getMushafId(quranFont, mushafLines);\n return mushaf;\n};\n\nexport default useGetMushaf;\n","import { useRef, RefObject } from 'react';\n\n/**\n * A hook that scrolls to a specific element in the DOM.\n * The scrolling will only happen when executeScroll function\n * is invoked.\n *\n * @param {ScrollIntoViewOptions} options\n * @returns {[() => void, RefObject<T>]}\n */\nexport const useScrollToElement = <T extends HTMLElement>(\n options?: ScrollIntoViewOptions,\n): [() => void, RefObject<T>] => {\n const elementRef = useRef<T>(null);\n // a function that will be invoked by the component using this hook to scroll to the element being referenced (if found).\n const executeScroll = (): void => {\n // only scroll when the ref has a value\n if (elementRef.current) {\n elementRef.current.scrollIntoView(options);\n }\n };\n\n return [executeScroll, elementRef];\n};\n\nexport const SMOOTH_SCROLL_TO_CENTER = {\n block: 'center', // 'block' relates to vertical alignment. see: https://stackoverflow.com/a/48635751/1931451 for nearest.\n behavior: 'smooth',\n} as ScrollIntoViewOptions;\n\nexport const SMOOTH_SCROLL_TO_TOP = {\n block: 'start',\n behavior: 'smooth',\n} as ScrollIntoViewOptions;\n\nexport const SCROLL_TO_NEAREST_ELEMENT = {\n block: 'nearest',\n} as ScrollIntoViewOptions;\n\nexport default useScrollToElement;\n","/* eslint-disable import/prefer-default-export */\nimport { Translate } from 'next-translate';\n\nimport { DropdownItem } from '@/dls/Forms/Combobox/ComboboxItem';\nimport { SelectOption } from '@/dls/Forms/Select';\nimport ChaptersData from '@/types/ChaptersData';\nimport { getChapterData } from '@/utils/chapter';\nimport { secondsToReadableFormat } from '@/utils/datetime';\nimport { toLocalizedNumber } from '@/utils/locale';\n\nconst TIME_OPTIONS_LIMIT = 4 * 60; // 4 hours\nconst DURATION_DAYS_LIMIT = 365; // 1 year, 365 days\n\n/**\n * Generates options for the reading goal time input.\n *\n * The options are within a range of 1 minute to 4 hours.\n * - From 1 to 10 minutes (first 10 options), increment by 1 minute\n * - From > 10 minutes to 4 hours, increment by 5 minutes\n *\n * @param {Translate} t\n * @param {string} locale\n * @returns {SelectOption[]}\n */\nexport const generateTimeOptions = (t: Translate, locale: string): SelectOption[] => {\n // for the first 10 minutes, we want to show 1 until 10\n // but after that, we want to increment by 5 minutes\n // and our limit is TIME_OPTIONS_LIMIT\n const options: SelectOption[] = new Array(10 + (TIME_OPTIONS_LIMIT - 10) / 5)\n .fill(null)\n // eslint-disable-next-line @typescript-eslint/naming-convention\n .map((_, i) => {\n let minutes: number;\n\n if (i < 10) {\n minutes = i + 1;\n } else {\n minutes = (i - 9) * 5 + 10;\n }\n\n const seconds = minutes * 60;\n\n return {\n value: seconds,\n label: secondsToReadableFormat(seconds, t, locale),\n };\n });\n\n return options;\n};\n\n/**\n * Generates options for the reading goal chapter input.\n *\n * @param {ChaptersData} chaptersData\n * @param {string} locale\n * @returns {DropdownItem[]}\n */\nexport const generateChapterOptions = (\n chaptersData: ChaptersData,\n locale: string,\n): DropdownItem[] => {\n const data: DropdownItem[] = Object.keys(chaptersData).map((chapterId) => {\n const chapter = getChapterData(chaptersData, chapterId);\n const localizedChapterId = toLocalizedNumber(Number(chapterId), locale);\n\n return {\n id: chapterId,\n name: chapterId,\n value: chapterId,\n label: `${localizedChapterId} - ${chapter.transliteratedName}`,\n };\n });\n\n return data;\n};\n\n/**\n * Generates verse options for a certain chapter in the reading goal verse input.\n *\n * @param {ChaptersData} chaptersData\n * @param {Translate} t\n * @param {string} locale\n * @param {string?} chapterId\n * @returns {DropdownItem[]}\n */\nexport const generateVerseOptions = (\n chaptersData: ChaptersData,\n t: Translate,\n locale: string,\n chapterId?: string,\n): DropdownItem[] => {\n if (!chapterId) return [];\n\n const chapter = getChapterData(chaptersData, chapterId);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n const options: DropdownItem[] = new Array(chapter.versesCount).fill(null).map((_, index) => {\n const localizedVerseId = toLocalizedNumber(index + 1, locale);\n const verseId = String(index + 1);\n\n return {\n id: verseId,\n name: verseId,\n value: verseId,\n label: `${t('common:ayah')} ${localizedVerseId}`,\n };\n });\n\n return options;\n};\n\n/**\n * Generates options for the reading goal duration input.\n *\n * The options are within a range of 1 day to 365 days in this format:\n * \"1 day\", \"2 days\", \"3 days\", etc...\n *\n * @param {Translate} t\n * @param {string} locale\n * @returns {SelectOption[]}\n */\nexport const generateDurationDaysOptions = (t: Translate, locale: string): SelectOption[] => {\n // for the first 10 days, we want to show 1 until 10\n // but after that, we want to increment by 5 days\n // and our limit is DURATION_DAYS_LIMIT\n const options: SelectOption[] = new Array(10 + (DURATION_DAYS_LIMIT - 10) / 5)\n .fill(null)\n // eslint-disable-next-line @typescript-eslint/naming-convention\n .map((_, i) => {\n let day: number;\n if (i < 10) {\n day = i + 1;\n } else {\n day = (i - 9) * 5 + 10;\n }\n\n return {\n value: day.toString(),\n label: t('reading-goal:x-days', { count: day, days: toLocalizedNumber(day, locale) }),\n };\n });\n\n return options;\n};\n"],"names":["React","memo","classNames","styles","ComboboxItem","checked","disabled","itemId","selectedItemRef","item","onItemSelectedChange","isNotFound","emptyMessage","div","className","itemContainer","disabledItem","label","htmlFor","ref","enabledItem","checkedItem","input","type","id","name","onChange","data-item-label","labelContainer","itemLabel","prefixContainer","prefix","suffix","suffixContainer","ComboboxSize","Small","Medium","Large","useEffect","useScroll","SCROLL_TO_SELECTED_ELEMENT_OPTIONS","block","ComboboxItems","isOpened","size","filteredItems","isMultiSelect","preventSelecting","selectedValue","fixedWidth","scrollToSelectedItem","comboboxBodyContainer","openedComboboxBodyContainer","largeComboboxBodyContainer","aria-modal","role","itemsContainer","map","undefined","isItemDisabled","length","CaretIcon","CaretInputIcon","shouldShowIcon","caretIconButton","openedCaretIconButton","aria-label","CloseIcon","ClearInputIcon","onClearButtonClicked","span","clearIconContainer","unselectable","aria-hidden","onClick","icon","IconSearch","SearchInputIcon","iconContainer","selectSearch","Tag","onRemoveTagClicked","tag","largeItem","itemContent","itemRemove","event","useState","useCallback","useRef","useMemo","useHotkeys","useFocus","useOutsideClickDetector","Combobox","items","placeholder","hasError","value","initialInputValue","clearable","tagsLimit","minimumRequiredItems","setIsOpened","inputValue","setInputValue","setSelectedValue","getDefaultValue","convertArrayToObject","setFilteredItems","focusInput","inputRef","comboBoxRef","valueToLabelMap","forEach","closeCombobox","currentValue","enabled","enableOnTags","filter","toLowerCase","includes","tags","Object","keys","hasMinimumRequiredItems","preventUnselectingItems","invokeOnChangeCallback","newValue","prevSelectedValue","newSelectedValues","lastTag","pop","onSelectorClicked","prevIsOpened","target","dataset","selectedItemName","isUnSelect","currentTarget","shouldProcessChange","prevSelectedValues","newSelectedValue","onInputValueChange","newInputValue","stopPropagation","defaultSelectedValue","toBeRemovedTag","find","shouldShowCaret","shouldShowClear","p","comboboxContainer","select","disabledSearch","selector","disabledSelector","activeSelector","overflow","fullWidth","overflowItem","tagContainer","search","style","width","autoComplete","multiSelectSearchInput","smallSearchInput","mediumSearchInput","largeSearchInput","aria-haspopup","aria-expanded","aria-owns","aria-autocomplete","readOnly","array","multiSelectValue","selectedItem","useContext","useTranslation","DataContext","RangeItem","RangeItemPosition","generateChapterOptions","generateVerseOptions","getChapterNumberFromKey","getVerseNumberFromKey","makeVerseKey","VerseRangeInput","rangeStartVerse","rangeEndVerse","onRangeChange","logChange","t","lang","chaptersData","startChapter","setStartChapter","toString","endChapter","setEndChapter","chapterOptions","startingVerseOptions","endingVerseOptions","endingVerse","startingVerse","onChapterChange","chapterPosition","chapterId","isStartChapter","Start","oldChapterId","setChapter","startVerse","endVerse","currentVerse","chapter","verse","startChapterOptions","endChapterIdx","Number","slice","endChapterOptions","startChapterIdx","onVerseChange","versePosition","verseId","isStartVerse","newVerseKey","getInitialInputValue","inputType","StartingChapter","EndingChapter","StartingVerse","verseOptions","rangeInputContainer","End","EndingVerse","Input","InputSize","Select","SelectSize","GoalType","generateTimeOptions","ReadingGoalInput","pages","seconds","onPagesChange","onSecondsChange","widthFull","timeOptions","RANGE","PAGES","inputContainer","containerClassName","htmlType","onKeyDown","e","key","preventDefault","inputMode","parsedPages","options","s","parsedSeconds","isValidPageNumber","isValidVerseKey","getVerseAndChapterNumbersFromKey","SECONDS_LIMIT","MIN_SECONDS","validateReadingGoalData","range","mushafId","TIME","isNaN","isValidVerseRange","startingChapter","endingChapter","required","defaultStyle","withBackground","onSelectChange","container","defaultStyledContainer","disabledContainer","smallContainer","mediumContainer","largeContainer","defaultStyledSelect","disabledSelect","defaultValue","option","hidden","arrow","disabledArrow","shallowEqual","useSelector","selectQuranFont","selectQuranMushafLines","getMushafId","useGetMushaf","quranFont","mushafLines","mushaf","useScrollToElement","elementRef","executeScroll","current","scrollIntoView","SMOOTH_SCROLL_TO_CENTER","behavior","SMOOTH_SCROLL_TO_TOP","SCROLL_TO_NEAREST_ELEMENT","getChapterData","secondsToReadableFormat","toLocalizedNumber","TIME_OPTIONS_LIMIT","DURATION_DAYS_LIMIT","locale","Array","fill","_","i","minutes","data","localizedChapterId","transliteratedName","versesCount","index","localizedVerseId","String","generateDurationDaysOptions","day","count","days"],"sourceRoot":""}