react-native-timer-picker 1.10.3 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/README.md +81 -52
  2. package/dist/commonjs/components/DurationScroll/index.js +77 -20
  3. package/dist/commonjs/components/DurationScroll/index.js.map +1 -1
  4. package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
  5. package/dist/commonjs/components/TimerPicker/index.js +23 -10
  6. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  7. package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
  8. package/dist/commonjs/components/TimerPickerModal/index.js +10 -7
  9. package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -1
  10. package/dist/commonjs/components/TimerPickerModal/styles.js +87 -54
  11. package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
  12. package/dist/commonjs/tests/DurationScroll.test.js +3 -3
  13. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
  14. package/dist/commonjs/tests/Modal.test.js +3 -3
  15. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  16. package/dist/commonjs/tests/TimerPicker.test.js +4 -4
  17. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
  18. package/dist/commonjs/tests/TimerPickerModal.test.js +6 -6
  19. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  20. package/dist/commonjs/utils/generateNumbers.js +4 -3
  21. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  22. package/dist/commonjs/utils/getAdjustedLimit.js +5 -5
  23. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
  24. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js +2 -1
  25. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  26. package/dist/commonjs/utils/getInitialScrollIndex.js +2 -1
  27. package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -1
  28. package/dist/commonjs/utils/getSafeInitialValue.js +13 -0
  29. package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -0
  30. package/dist/module/components/DurationScroll/index.js +77 -20
  31. package/dist/module/components/DurationScroll/index.js.map +1 -1
  32. package/dist/module/components/DurationScroll/types.js.map +1 -1
  33. package/dist/module/components/TimerPicker/index.js +23 -10
  34. package/dist/module/components/TimerPicker/index.js.map +1 -1
  35. package/dist/module/components/TimerPicker/types.js.map +1 -1
  36. package/dist/module/components/TimerPickerModal/index.js +10 -7
  37. package/dist/module/components/TimerPickerModal/index.js.map +1 -1
  38. package/dist/module/components/TimerPickerModal/styles.js +87 -54
  39. package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
  40. package/dist/module/tests/DurationScroll.test.js +3 -3
  41. package/dist/module/tests/DurationScroll.test.js.map +1 -1
  42. package/dist/module/tests/Modal.test.js +3 -3
  43. package/dist/module/tests/Modal.test.js.map +1 -1
  44. package/dist/module/tests/TimerPicker.test.js +4 -4
  45. package/dist/module/tests/TimerPicker.test.js.map +1 -1
  46. package/dist/module/tests/TimerPickerModal.test.js +6 -6
  47. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  48. package/dist/module/utils/generateNumbers.js +4 -3
  49. package/dist/module/utils/generateNumbers.js.map +1 -1
  50. package/dist/module/utils/getAdjustedLimit.js +5 -5
  51. package/dist/module/utils/getAdjustedLimit.js.map +1 -1
  52. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js +2 -1
  53. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  54. package/dist/module/utils/getInitialScrollIndex.js +2 -1
  55. package/dist/module/utils/getInitialScrollIndex.js.map +1 -1
  56. package/dist/module/utils/getSafeInitialValue.js +6 -0
  57. package/dist/module/utils/getSafeInitialValue.js.map +1 -0
  58. package/dist/typescript/components/DurationScroll/types.d.ts +4 -1
  59. package/dist/typescript/components/TimerPicker/types.d.ts +7 -0
  60. package/dist/typescript/components/TimerPickerModal/styles.d.ts +117 -8
  61. package/dist/typescript/utils/generateNumbers.d.ts +2 -0
  62. package/dist/typescript/utils/getAdjustedLimit.d.ts +1 -1
  63. package/dist/typescript/utils/getDurationAndIndexFromScrollOffset.d.ts +1 -0
  64. package/dist/typescript/utils/getInitialScrollIndex.d.ts +1 -0
  65. package/dist/typescript/utils/getSafeInitialValue.d.ts +9 -0
  66. package/package.json +14 -10
@@ -14,14 +14,14 @@ describe("TimerPickerModal", () => {
14
14
  it("renders without crashing", () => {
15
15
  const {
16
16
  getByTestId
17
- } = render( /*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
17
+ } = render(/*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
18
18
  const component = getByTestId("timer-picker-modal");
19
19
  expect(component).toBeDefined();
20
20
  });
21
21
  it("calls onConfirm when Confirm button is pressed", () => {
22
22
  const {
23
23
  getByText
24
- } = render( /*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
24
+ } = render(/*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
25
25
  const confirmButton = getByText("Confirm");
26
26
  fireEvent.press(confirmButton);
27
27
  expect(mockOnConfirm).toHaveBeenCalled();
@@ -29,7 +29,7 @@ describe("TimerPickerModal", () => {
29
29
  it("calls onCancel when Cancel button is pressed", () => {
30
30
  const {
31
31
  getByText
32
- } = render( /*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
32
+ } = render(/*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
33
33
  const cancelButton = getByText("Cancel");
34
34
  fireEvent.press(cancelButton);
35
35
  expect(mockOnCancel).toHaveBeenCalled();
@@ -38,7 +38,7 @@ describe("TimerPickerModal", () => {
38
38
  const setIsVisibleMock = jest.fn();
39
39
  const {
40
40
  getByText
41
- } = render( /*#__PURE__*/React.createElement(TimerPickerModal, _extends({}, defaultProps, {
41
+ } = render(/*#__PURE__*/React.createElement(TimerPickerModal, _extends({}, defaultProps, {
42
42
  setIsVisible: setIsVisibleMock
43
43
  })));
44
44
  const cancelButton = getByText("Cancel");
@@ -49,7 +49,7 @@ describe("TimerPickerModal", () => {
49
49
  const setIsVisibleMock = jest.fn();
50
50
  const {
51
51
  getByTestId
52
- } = render( /*#__PURE__*/React.createElement(TimerPickerModal, _extends({}, defaultProps, {
52
+ } = render(/*#__PURE__*/React.createElement(TimerPickerModal, _extends({}, defaultProps, {
53
53
  closeOnOverlayPress: true,
54
54
  setIsVisible: setIsVisibleMock
55
55
  })));
@@ -60,7 +60,7 @@ describe("TimerPickerModal", () => {
60
60
  it("calls onConfirm with selected duration when Confirm button is pressed", () => {
61
61
  const {
62
62
  getByText
63
- } = render( /*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
63
+ } = render(/*#__PURE__*/React.createElement(TimerPickerModal, defaultProps));
64
64
  // Select duration in TimerPicker, assuming its interaction is tested separately
65
65
  const confirmButton = getByText("Confirm");
66
66
  fireEvent.press(confirmButton);
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","fireEvent","TimerPickerModal","describe","mockOnConfirm","jest","fn","mockOnCancel","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","createElement","component","expect","toBeDefined","getByText","confirmButton","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","_extends","toHaveBeenCalledWith","closeOnOverlayPress","overlay","objectContaining"],"sources":["TimerPickerModal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent } from \"@testing-library/react-native\";\n\nimport TimerPickerModal from \"../components/TimerPickerModal\";\n\ndescribe(\"TimerPickerModal\", () => {\n const mockOnConfirm = jest.fn();\n const mockOnCancel = jest.fn();\n\n const defaultProps = {\n visible: true,\n setIsVisible: jest.fn(),\n onConfirm: mockOnConfirm,\n onCancel: mockOnCancel,\n };\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPickerModal {...defaultProps} />);\n const component = getByTestId(\"timer-picker-modal\");\n expect(component).toBeDefined();\n });\n\n it(\"calls onConfirm when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"calls onCancel when Cancel button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"hides the modal when Cancel button is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides the modal when overlay is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"calls onConfirm with selected duration when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n // Select duration in TimerPicker, assuming its interaction is tested separately\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","render","fireEvent","TimerPickerModal","describe","mockOnConfirm","jest","fn","mockOnCancel","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","createElement","component","expect","toBeDefined","getByText","confirmButton","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","_extends","toHaveBeenCalledWith","closeOnOverlayPress","overlay","objectContaining"],"sources":["TimerPickerModal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent } from \"@testing-library/react-native\";\n\nimport TimerPickerModal from \"../components/TimerPickerModal\";\n\ndescribe(\"TimerPickerModal\", () => {\n const mockOnConfirm = jest.fn();\n const mockOnCancel = jest.fn();\n\n const defaultProps = {\n visible: true,\n setIsVisible: jest.fn(),\n onConfirm: mockOnConfirm,\n onCancel: mockOnCancel,\n };\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPickerModal {...defaultProps} />);\n const component = getByTestId(\"timer-picker-modal\");\n expect(component).toBeDefined();\n });\n\n it(\"calls onConfirm when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"calls onCancel when Cancel button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"hides the modal when Cancel button is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides the modal when overlay is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"calls onConfirm with selected duration when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n // Select duration in TimerPicker, assuming its interaction is tested separately\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,8 @@ export const generateNumbers = (numberOfItems, options) => {
5
5
  }
6
6
  let numbers = [];
7
7
  for (let i = 0; i < numberOfItems; i++) {
8
- numbers.push(padNumber(i, {
8
+ const value = i * options.interval;
9
+ numbers.push(padNumber(value, {
9
10
  padWithZero: options.padNumbersWithZero
10
11
  }));
11
12
  }
@@ -22,14 +23,14 @@ export const generate12HourNumbers = options => {
22
23
  let numbers = [];
23
24
 
24
25
  // Generate numbers from 0 to 11 for AM
25
- for (let i = 0; i <= 11; i++) {
26
+ for (let i = 0; i < 12; i += options.interval) {
26
27
  numbers.push(`${padNumber(i, {
27
28
  padWithZero: options.padNumbersWithZero
28
29
  })} AM`);
29
30
  }
30
31
 
31
32
  // Generate numbers from 12 to 11 for PM
32
- for (let i = 12; i <= 23; i++) {
33
+ for (let i = 12; i < 24; i += options.interval) {
33
34
  const hour = i > 12 ? i - 12 : i;
34
35
  numbers.push(`${padNumber(hour, {
35
36
  padWithZero: options.padNumbersWithZero
@@ -1 +1 @@
1
- {"version":3,"names":["padNumber","generateNumbers","numberOfItems","options","numbers","i","push","padWithZero","padNumbersWithZero","repeatNTimes","Array","fill","flat","disableInfiniteScroll","padWithNItems","unshift","generate12HourNumbers","hour"],"sources":["generateNumbers.ts"],"sourcesContent":["import { padNumber } from \"./padNumber\";\n\nexport const generateNumbers = (\n numberOfItems: number,\n options: {\n disableInfiniteScroll?: boolean;\n padNumbersWithZero?: boolean;\n padWithNItems: number;\n repeatNTimes: number;\n }\n) => {\n if (numberOfItems <= 0) {\n return [];\n }\n\n let numbers: string[] = [];\n for (let i = 0; i < numberOfItems; i++) {\n numbers.push(padNumber(i, { padWithZero: options.padNumbersWithZero }));\n }\n\n if (options.repeatNTimes > 1) {\n numbers = Array(options.repeatNTimes).fill(numbers).flat();\n }\n if (options.disableInfiniteScroll || options.repeatNTimes === 1) {\n numbers.push(...Array(options.padWithNItems).fill(\"\"));\n numbers.unshift(...Array(options.padWithNItems).fill(\"\"));\n }\n return numbers;\n};\n\nexport const generate12HourNumbers = (options: {\n disableInfiniteScroll?: boolean;\n padNumbersWithZero?: boolean;\n padWithNItems: number;\n repeatNTimes?: number;\n}) => {\n let numbers: string[] = [];\n\n // Generate numbers from 0 to 11 for AM\n for (let i = 0; i <= 11; i++) {\n numbers.push(\n `${padNumber(i, { padWithZero: options.padNumbersWithZero })} AM`\n );\n }\n\n // Generate numbers from 12 to 11 for PM\n for (let i = 12; i <= 23; i++) {\n const hour = i > 12 ? i - 12 : i;\n numbers.push(\n `${padNumber(hour, { padWithZero: options.padNumbersWithZero })} PM`\n );\n }\n\n if ((options.repeatNTimes ?? 1) > 1) {\n numbers = Array(options.repeatNTimes).fill(numbers).flat();\n }\n\n if (options.disableInfiniteScroll) {\n numbers.push(...Array(options.padWithNItems).fill(\"\"));\n numbers.unshift(...Array(options.padWithNItems).fill(\"\"));\n }\n\n return numbers;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,aAAa;AAEvC,OAAO,MAAMC,eAAe,GAAGA,CAC3BC,aAAqB,EACrBC,OAKC,KACA;EACD,IAAID,aAAa,IAAI,CAAC,EAAE;IACpB,OAAO,EAAE;EACb;EAEA,IAAIE,OAAiB,GAAG,EAAE;EAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,aAAa,EAAEG,CAAC,EAAE,EAAE;IACpCD,OAAO,CAACE,IAAI,CAACN,SAAS,CAACK,CAAC,EAAE;MAAEE,WAAW,EAAEJ,OAAO,CAACK;IAAmB,CAAC,CAAC,CAAC;EAC3E;EAEA,IAAIL,OAAO,CAACM,YAAY,GAAG,CAAC,EAAE;IAC1BL,OAAO,GAAGM,KAAK,CAACP,OAAO,CAACM,YAAY,CAAC,CAACE,IAAI,CAACP,OAAO,CAAC,CAACQ,IAAI,CAAC,CAAC;EAC9D;EACA,IAAIT,OAAO,CAACU,qBAAqB,IAAIV,OAAO,CAACM,YAAY,KAAK,CAAC,EAAE;IAC7DL,OAAO,CAACE,IAAI,CAAC,GAAGI,KAAK,CAACP,OAAO,CAACW,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;IACtDP,OAAO,CAACW,OAAO,CAAC,GAAGL,KAAK,CAACP,OAAO,CAACW,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;EAC7D;EACA,OAAOP,OAAO;AAClB,CAAC;AAED,OAAO,MAAMY,qBAAqB,GAAIb,OAKrC,IAAK;EACF,IAAIC,OAAiB,GAAG,EAAE;;EAE1B;EACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,EAAE,EAAEA,CAAC,EAAE,EAAE;IAC1BD,OAAO,CAACE,IAAI,CACR,GAAGN,SAAS,CAACK,CAAC,EAAE;MAAEE,WAAW,EAAEJ,OAAO,CAACK;IAAmB,CAAC,CAAC,KAChE,CAAC;EACL;;EAEA;EACA,KAAK,IAAIH,CAAC,GAAG,EAAE,EAAEA,CAAC,IAAI,EAAE,EAAEA,CAAC,EAAE,EAAE;IAC3B,MAAMY,IAAI,GAAGZ,CAAC,GAAG,EAAE,GAAGA,CAAC,GAAG,EAAE,GAAGA,CAAC;IAChCD,OAAO,CAACE,IAAI,CACR,GAAGN,SAAS,CAACiB,IAAI,EAAE;MAAEV,WAAW,EAAEJ,OAAO,CAACK;IAAmB,CAAC,CAAC,KACnE,CAAC;EACL;EAEA,IAAI,CAACL,OAAO,CAACM,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE;IACjCL,OAAO,GAAGM,KAAK,CAACP,OAAO,CAACM,YAAY,CAAC,CAACE,IAAI,CAACP,OAAO,CAAC,CAACQ,IAAI,CAAC,CAAC;EAC9D;EAEA,IAAIT,OAAO,CAACU,qBAAqB,EAAE;IAC/BT,OAAO,CAACE,IAAI,CAAC,GAAGI,KAAK,CAACP,OAAO,CAACW,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;IACtDP,OAAO,CAACW,OAAO,CAAC,GAAGL,KAAK,CAACP,OAAO,CAACW,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;EAC7D;EAEA,OAAOP,OAAO;AAClB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["padNumber","generateNumbers","numberOfItems","options","numbers","i","value","interval","push","padWithZero","padNumbersWithZero","repeatNTimes","Array","fill","flat","disableInfiniteScroll","padWithNItems","unshift","generate12HourNumbers","hour"],"sources":["generateNumbers.ts"],"sourcesContent":["import { padNumber } from \"./padNumber\";\n\nexport const generateNumbers = (\n numberOfItems: number,\n options: {\n disableInfiniteScroll?: boolean;\n interval: number;\n padNumbersWithZero?: boolean;\n padWithNItems: number;\n repeatNTimes: number;\n }\n) => {\n if (numberOfItems <= 0) {\n return [];\n }\n\n let numbers: string[] = [];\n for (let i = 0; i < numberOfItems; i++) {\n const value = i * options.interval;\n numbers.push(\n padNumber(value, { padWithZero: options.padNumbersWithZero })\n );\n }\n\n if (options.repeatNTimes > 1) {\n numbers = Array(options.repeatNTimes).fill(numbers).flat();\n }\n if (options.disableInfiniteScroll || options.repeatNTimes === 1) {\n numbers.push(...Array(options.padWithNItems).fill(\"\"));\n numbers.unshift(...Array(options.padWithNItems).fill(\"\"));\n }\n return numbers;\n};\n\nexport const generate12HourNumbers = (options: {\n disableInfiniteScroll?: boolean;\n interval: number;\n padNumbersWithZero?: boolean;\n padWithNItems: number;\n repeatNTimes?: number;\n}) => {\n let numbers: string[] = [];\n\n // Generate numbers from 0 to 11 for AM\n for (let i = 0; i < 12; i += options.interval) {\n numbers.push(\n `${padNumber(i, { padWithZero: options.padNumbersWithZero })} AM`\n );\n }\n\n // Generate numbers from 12 to 11 for PM\n for (let i = 12; i < 24; i += options.interval) {\n const hour = i > 12 ? i - 12 : i;\n numbers.push(\n `${padNumber(hour, { padWithZero: options.padNumbersWithZero })} PM`\n );\n }\n\n if ((options.repeatNTimes ?? 1) > 1) {\n numbers = Array(options.repeatNTimes).fill(numbers).flat();\n }\n\n if (options.disableInfiniteScroll) {\n numbers.push(...Array(options.padWithNItems).fill(\"\"));\n numbers.unshift(...Array(options.padWithNItems).fill(\"\"));\n }\n\n return numbers;\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,aAAa;AAEvC,OAAO,MAAMC,eAAe,GAAGA,CAC3BC,aAAqB,EACrBC,OAMC,KACA;EACD,IAAID,aAAa,IAAI,CAAC,EAAE;IACpB,OAAO,EAAE;EACb;EAEA,IAAIE,OAAiB,GAAG,EAAE;EAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,aAAa,EAAEG,CAAC,EAAE,EAAE;IACpC,MAAMC,KAAK,GAAGD,CAAC,GAAGF,OAAO,CAACI,QAAQ;IAClCH,OAAO,CAACI,IAAI,CACRR,SAAS,CAACM,KAAK,EAAE;MAAEG,WAAW,EAAEN,OAAO,CAACO;IAAmB,CAAC,CAChE,CAAC;EACL;EAEA,IAAIP,OAAO,CAACQ,YAAY,GAAG,CAAC,EAAE;IAC1BP,OAAO,GAAGQ,KAAK,CAACT,OAAO,CAACQ,YAAY,CAAC,CAACE,IAAI,CAACT,OAAO,CAAC,CAACU,IAAI,CAAC,CAAC;EAC9D;EACA,IAAIX,OAAO,CAACY,qBAAqB,IAAIZ,OAAO,CAACQ,YAAY,KAAK,CAAC,EAAE;IAC7DP,OAAO,CAACI,IAAI,CAAC,GAAGI,KAAK,CAACT,OAAO,CAACa,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;IACtDT,OAAO,CAACa,OAAO,CAAC,GAAGL,KAAK,CAACT,OAAO,CAACa,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;EAC7D;EACA,OAAOT,OAAO;AAClB,CAAC;AAED,OAAO,MAAMc,qBAAqB,GAAIf,OAMrC,IAAK;EACF,IAAIC,OAAiB,GAAG,EAAE;;EAE1B;EACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,IAAIF,OAAO,CAACI,QAAQ,EAAE;IAC3CH,OAAO,CAACI,IAAI,CACR,GAAGR,SAAS,CAACK,CAAC,EAAE;MAAEI,WAAW,EAAEN,OAAO,CAACO;IAAmB,CAAC,CAAC,KAChE,CAAC;EACL;;EAEA;EACA,KAAK,IAAIL,CAAC,GAAG,EAAE,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,IAAIF,OAAO,CAACI,QAAQ,EAAE;IAC5C,MAAMY,IAAI,GAAGd,CAAC,GAAG,EAAE,GAAGA,CAAC,GAAG,EAAE,GAAGA,CAAC;IAChCD,OAAO,CAACI,IAAI,CACR,GAAGR,SAAS,CAACmB,IAAI,EAAE;MAAEV,WAAW,EAAEN,OAAO,CAACO;IAAmB,CAAC,CAAC,KACnE,CAAC;EACL;EAEA,IAAI,CAACP,OAAO,CAACQ,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE;IACjCP,OAAO,GAAGQ,KAAK,CAACT,OAAO,CAACQ,YAAY,CAAC,CAACE,IAAI,CAACT,OAAO,CAAC,CAACU,IAAI,CAAC,CAAC;EAC9D;EAEA,IAAIX,OAAO,CAACY,qBAAqB,EAAE;IAC/BX,OAAO,CAACI,IAAI,CAAC,GAAGI,KAAK,CAACT,OAAO,CAACa,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;IACtDT,OAAO,CAACa,OAAO,CAAC,GAAGL,KAAK,CAACT,OAAO,CAACa,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;EAC7D;EAEA,OAAOT,OAAO;AAClB,CAAC","ignoreList":[]}
@@ -1,20 +1,20 @@
1
- export const getAdjustedLimit = (limit, numberOfItems) => {
2
- const maxIndex = numberOfItems - 1;
1
+ export const getAdjustedLimit = (limit, numberOfItems, interval) => {
2
+ const maxValue = (numberOfItems - 1) * interval;
3
3
  if (!limit || !limit.max && !limit.min) {
4
4
  return {
5
- max: maxIndex,
5
+ max: maxValue,
6
6
  min: 0
7
7
  };
8
8
  }
9
9
 
10
10
  // guard against limits that are out of bounds
11
- const adjustedMaxLimit = limit.max ? Math.min(limit.max, maxIndex) : maxIndex;
11
+ const adjustedMaxLimit = limit.max ? Math.min(limit.max, maxValue) : maxValue;
12
12
  const adjustedMinLimit = limit.min ? Math.max(limit.min, 0) : 0;
13
13
 
14
14
  // guard against invalid limits
15
15
  if (adjustedMaxLimit < adjustedMinLimit) {
16
16
  return {
17
- max: maxIndex,
17
+ max: maxValue,
18
18
  min: 0
19
19
  };
20
20
  }
@@ -1 +1 @@
1
- {"version":3,"names":["getAdjustedLimit","limit","numberOfItems","maxIndex","max","min","adjustedMaxLimit","Math","adjustedMinLimit"],"sources":["getAdjustedLimit.ts"],"sourcesContent":["import type { LimitType } from \"../components/DurationScroll/types\";\n\nexport const getAdjustedLimit = (\n limit: LimitType | undefined,\n numberOfItems: number\n): {\n max: number;\n min: number;\n} => {\n const maxIndex = numberOfItems - 1;\n\n if (!limit || (!limit.max && !limit.min)) {\n return {\n max: maxIndex,\n min: 0,\n };\n }\n\n // guard against limits that are out of bounds\n const adjustedMaxLimit = limit.max\n ? Math.min(limit.max, maxIndex)\n : maxIndex;\n const adjustedMinLimit = limit.min ? Math.max(limit.min, 0) : 0;\n\n // guard against invalid limits\n if (adjustedMaxLimit < adjustedMinLimit) {\n return {\n max: maxIndex,\n min: 0,\n };\n }\n\n return {\n max: adjustedMaxLimit,\n min: adjustedMinLimit,\n };\n};\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAgB,GAAGA,CAC5BC,KAA4B,EAC5BC,aAAqB,KAIpB;EACD,MAAMC,QAAQ,GAAGD,aAAa,GAAG,CAAC;EAElC,IAAI,CAACD,KAAK,IAAK,CAACA,KAAK,CAACG,GAAG,IAAI,CAACH,KAAK,CAACI,GAAI,EAAE;IACtC,OAAO;MACHD,GAAG,EAAED,QAAQ;MACbE,GAAG,EAAE;IACT,CAAC;EACL;;EAEA;EACA,MAAMC,gBAAgB,GAAGL,KAAK,CAACG,GAAG,GAC5BG,IAAI,CAACF,GAAG,CAACJ,KAAK,CAACG,GAAG,EAAED,QAAQ,CAAC,GAC7BA,QAAQ;EACd,MAAMK,gBAAgB,GAAGP,KAAK,CAACI,GAAG,GAAGE,IAAI,CAACH,GAAG,CAACH,KAAK,CAACI,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;;EAE/D;EACA,IAAIC,gBAAgB,GAAGE,gBAAgB,EAAE;IACrC,OAAO;MACHJ,GAAG,EAAED,QAAQ;MACbE,GAAG,EAAE;IACT,CAAC;EACL;EAEA,OAAO;IACHD,GAAG,EAAEE,gBAAgB;IACrBD,GAAG,EAAEG;EACT,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getAdjustedLimit","limit","numberOfItems","interval","maxValue","max","min","adjustedMaxLimit","Math","adjustedMinLimit"],"sources":["getAdjustedLimit.ts"],"sourcesContent":["import type { LimitType } from \"../components/DurationScroll/types\";\n\nexport const getAdjustedLimit = (\n limit: LimitType | undefined,\n numberOfItems: number,\n interval: number\n): {\n max: number;\n min: number;\n} => {\n const maxValue = (numberOfItems - 1) * interval;\n\n if (!limit || (!limit.max && !limit.min)) {\n return {\n max: maxValue,\n min: 0,\n };\n }\n\n // guard against limits that are out of bounds\n const adjustedMaxLimit = limit.max\n ? Math.min(limit.max, maxValue)\n : maxValue;\n const adjustedMinLimit = limit.min ? Math.max(limit.min, 0) : 0;\n\n // guard against invalid limits\n if (adjustedMaxLimit < adjustedMinLimit) {\n return {\n max: maxValue,\n min: 0,\n };\n }\n\n return {\n max: adjustedMaxLimit,\n min: adjustedMinLimit,\n };\n};\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAgB,GAAGA,CAC5BC,KAA4B,EAC5BC,aAAqB,EACrBC,QAAgB,KAIf;EACD,MAAMC,QAAQ,GAAG,CAACF,aAAa,GAAG,CAAC,IAAIC,QAAQ;EAE/C,IAAI,CAACF,KAAK,IAAK,CAACA,KAAK,CAACI,GAAG,IAAI,CAACJ,KAAK,CAACK,GAAI,EAAE;IACtC,OAAO;MACHD,GAAG,EAAED,QAAQ;MACbE,GAAG,EAAE;IACT,CAAC;EACL;;EAEA;EACA,MAAMC,gBAAgB,GAAGN,KAAK,CAACI,GAAG,GAC5BG,IAAI,CAACF,GAAG,CAACL,KAAK,CAACI,GAAG,EAAED,QAAQ,CAAC,GAC7BA,QAAQ;EACd,MAAMK,gBAAgB,GAAGR,KAAK,CAACK,GAAG,GAAGE,IAAI,CAACH,GAAG,CAACJ,KAAK,CAACK,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC;;EAE/D;EACA,IAAIC,gBAAgB,GAAGE,gBAAgB,EAAE;IACrC,OAAO;MACHJ,GAAG,EAAED,QAAQ;MACbE,GAAG,EAAE;IACT,CAAC;EACL;EAEA,OAAO;IACHD,GAAG,EAAEE,gBAAgB;IACrBD,GAAG,EAAEG;EACT,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,13 +1,14 @@
1
1
  export const getDurationAndIndexFromScrollOffset = variables => {
2
2
  const {
3
3
  disableInfiniteScroll,
4
+ interval,
4
5
  itemHeight,
5
6
  numberOfItems,
6
7
  padWithNItems,
7
8
  yContentOffset
8
9
  } = variables;
9
10
  const index = Math.round(yContentOffset / itemHeight);
10
- const duration = (disableInfiniteScroll ? index : index + padWithNItems) % numberOfItems;
11
+ const duration = (disableInfiniteScroll ? index : index + padWithNItems) % numberOfItems * interval;
11
12
  return {
12
13
  duration,
13
14
  index
@@ -1 +1 @@
1
- {"version":3,"names":["getDurationAndIndexFromScrollOffset","variables","disableInfiniteScroll","itemHeight","numberOfItems","padWithNItems","yContentOffset","index","Math","round","duration"],"sources":["getDurationAndIndexFromScrollOffset.ts"],"sourcesContent":["export const getDurationAndIndexFromScrollOffset = (variables: {\n disableInfiniteScroll: boolean;\n itemHeight: number;\n numberOfItems: number;\n padWithNItems: number;\n yContentOffset: number;\n}) => {\n const {\n disableInfiniteScroll,\n itemHeight,\n numberOfItems,\n padWithNItems,\n yContentOffset,\n } = variables;\n\n const index = Math.round(yContentOffset / itemHeight);\n\n const duration =\n (disableInfiniteScroll ? index : index + padWithNItems) % numberOfItems;\n\n return {\n duration,\n index,\n };\n};\n"],"mappings":"AAAA,OAAO,MAAMA,mCAAmC,GAAIC,SAMnD,IAAK;EACF,MAAM;IACFC,qBAAqB;IACrBC,UAAU;IACVC,aAAa;IACbC,aAAa;IACbC;EACJ,CAAC,GAAGL,SAAS;EAEb,MAAMM,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACH,cAAc,GAAGH,UAAU,CAAC;EAErD,MAAMO,QAAQ,GACV,CAACR,qBAAqB,GAAGK,KAAK,GAAGA,KAAK,GAAGF,aAAa,IAAID,aAAa;EAE3E,OAAO;IACHM,QAAQ;IACRH;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getDurationAndIndexFromScrollOffset","variables","disableInfiniteScroll","interval","itemHeight","numberOfItems","padWithNItems","yContentOffset","index","Math","round","duration"],"sources":["getDurationAndIndexFromScrollOffset.ts"],"sourcesContent":["export const getDurationAndIndexFromScrollOffset = (variables: {\n disableInfiniteScroll: boolean;\n interval: number;\n itemHeight: number;\n numberOfItems: number;\n padWithNItems: number;\n yContentOffset: number;\n}) => {\n const {\n disableInfiniteScroll,\n interval,\n itemHeight,\n numberOfItems,\n padWithNItems,\n yContentOffset,\n } = variables;\n\n const index = Math.round(yContentOffset / itemHeight);\n\n const duration =\n ((disableInfiniteScroll ? index : index + padWithNItems) %\n numberOfItems) *\n interval;\n\n return {\n duration,\n index,\n };\n};\n"],"mappings":"AAAA,OAAO,MAAMA,mCAAmC,GAAIC,SAOnD,IAAK;EACF,MAAM;IACFC,qBAAqB;IACrBC,QAAQ;IACRC,UAAU;IACVC,aAAa;IACbC,aAAa;IACbC;EACJ,CAAC,GAAGN,SAAS;EAEb,MAAMO,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACH,cAAc,GAAGH,UAAU,CAAC;EAErD,MAAMO,QAAQ,GACT,CAACT,qBAAqB,GAAGM,KAAK,GAAGA,KAAK,GAAGF,aAAa,IACnDD,aAAa,GACjBF,QAAQ;EAEZ,OAAO;IACHQ,QAAQ;IACRH;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -1,11 +1,12 @@
1
1
  export const getInitialScrollIndex = variables => {
2
2
  const {
3
3
  disableInfiniteScroll,
4
+ interval,
4
5
  numberOfItems,
5
6
  padWithNItems,
6
7
  repeatNumbersNTimes,
7
8
  value
8
9
  } = variables;
9
- return Math.max(numberOfItems * Math.floor(repeatNumbersNTimes / 2) + (value + numberOfItems) % numberOfItems - (!disableInfiniteScroll ? padWithNItems : 0), 0);
10
+ return Math.max(numberOfItems * Math.floor(repeatNumbersNTimes / 2) + (value / interval + numberOfItems) % numberOfItems - (!disableInfiniteScroll ? padWithNItems : 0), 0);
10
11
  };
11
12
  //# sourceMappingURL=getInitialScrollIndex.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getInitialScrollIndex","variables","disableInfiniteScroll","numberOfItems","padWithNItems","repeatNumbersNTimes","value","Math","max","floor"],"sources":["getInitialScrollIndex.ts"],"sourcesContent":["export const getInitialScrollIndex = (variables: {\n disableInfiniteScroll: boolean;\n numberOfItems: number;\n padWithNItems: number;\n repeatNumbersNTimes: number;\n value: number;\n}) => {\n const {\n disableInfiniteScroll,\n numberOfItems,\n padWithNItems,\n repeatNumbersNTimes,\n value,\n } = variables;\n\n return Math.max(\n numberOfItems * Math.floor(repeatNumbersNTimes / 2) +\n ((value + numberOfItems) % numberOfItems) -\n (!disableInfiniteScroll ? padWithNItems : 0),\n 0\n );\n};\n"],"mappings":"AAAA,OAAO,MAAMA,qBAAqB,GAAIC,SAMrC,IAAK;EACF,MAAM;IACFC,qBAAqB;IACrBC,aAAa;IACbC,aAAa;IACbC,mBAAmB;IACnBC;EACJ,CAAC,GAAGL,SAAS;EAEb,OAAOM,IAAI,CAACC,GAAG,CACXL,aAAa,GAAGI,IAAI,CAACE,KAAK,CAACJ,mBAAmB,GAAG,CAAC,CAAC,GAC9C,CAACC,KAAK,GAAGH,aAAa,IAAIA,aAAc,IACxC,CAACD,qBAAqB,GAAGE,aAAa,GAAG,CAAC,CAAC,EAChD,CACJ,CAAC;AACL,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["getInitialScrollIndex","variables","disableInfiniteScroll","interval","numberOfItems","padWithNItems","repeatNumbersNTimes","value","Math","max","floor"],"sources":["getInitialScrollIndex.ts"],"sourcesContent":["export const getInitialScrollIndex = (variables: {\n disableInfiniteScroll: boolean;\n interval: number;\n numberOfItems: number;\n padWithNItems: number;\n repeatNumbersNTimes: number;\n value: number;\n}) => {\n const {\n disableInfiniteScroll,\n interval,\n numberOfItems,\n padWithNItems,\n repeatNumbersNTimes,\n value,\n } = variables;\n\n return Math.max(\n numberOfItems * Math.floor(repeatNumbersNTimes / 2) +\n ((value / interval + numberOfItems) % numberOfItems) -\n (!disableInfiniteScroll ? padWithNItems : 0),\n 0\n );\n};\n"],"mappings":"AAAA,OAAO,MAAMA,qBAAqB,GAAIC,SAOrC,IAAK;EACF,MAAM;IACFC,qBAAqB;IACrBC,QAAQ;IACRC,aAAa;IACbC,aAAa;IACbC,mBAAmB;IACnBC;EACJ,CAAC,GAAGN,SAAS;EAEb,OAAOO,IAAI,CAACC,GAAG,CACXL,aAAa,GAAGI,IAAI,CAACE,KAAK,CAACJ,mBAAmB,GAAG,CAAC,CAAC,GAC9C,CAACC,KAAK,GAAGJ,QAAQ,GAAGC,aAAa,IAAIA,aAAc,IACnD,CAACF,qBAAqB,GAAGG,aAAa,GAAG,CAAC,CAAC,EAChD,CACJ,CAAC;AACL,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export const getSafeInitialValue = initialValue => ({
2
+ hours: typeof (initialValue === null || initialValue === void 0 ? void 0 : initialValue.hours) === "number" && !isNaN(initialValue === null || initialValue === void 0 ? void 0 : initialValue.hours) ? initialValue.hours : 0,
3
+ minutes: typeof (initialValue === null || initialValue === void 0 ? void 0 : initialValue.minutes) === "number" && !isNaN(initialValue === null || initialValue === void 0 ? void 0 : initialValue.minutes) ? initialValue.minutes : 0,
4
+ seconds: typeof (initialValue === null || initialValue === void 0 ? void 0 : initialValue.seconds) === "number" && !isNaN(initialValue === null || initialValue === void 0 ? void 0 : initialValue.seconds) ? initialValue.seconds : 0
5
+ });
6
+ //# sourceMappingURL=getSafeInitialValue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getSafeInitialValue","initialValue","hours","isNaN","minutes","seconds"],"sources":["getSafeInitialValue.ts"],"sourcesContent":["export const getSafeInitialValue = (\n initialValue:\n | {\n hours?: number;\n minutes?: number;\n seconds?: number;\n }\n | undefined\n) => ({\n hours:\n typeof initialValue?.hours === \"number\" && !isNaN(initialValue?.hours)\n ? initialValue.hours\n : 0,\n minutes:\n typeof initialValue?.minutes === \"number\" &&\n !isNaN(initialValue?.minutes)\n ? initialValue.minutes\n : 0,\n seconds:\n typeof initialValue?.seconds === \"number\" &&\n !isNaN(initialValue?.seconds)\n ? initialValue.seconds\n : 0,\n});\n"],"mappings":"AAAA,OAAO,MAAMA,mBAAmB,GAC5BC,YAMe,KACb;EACFC,KAAK,EACD,QAAOD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEC,KAAK,MAAK,QAAQ,IAAI,CAACC,KAAK,CAACF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEC,KAAK,CAAC,GAChED,YAAY,CAACC,KAAK,GAClB,CAAC;EACXE,OAAO,EACH,QAAOH,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,OAAO,MAAK,QAAQ,IACzC,CAACD,KAAK,CAACF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,OAAO,CAAC,GACvBH,YAAY,CAACG,OAAO,GACpB,CAAC;EACXC,OAAO,EACH,QAAOJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,OAAO,MAAK,QAAQ,IACzC,CAACF,KAAK,CAACF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,OAAO,CAAC,GACvBJ,YAAY,CAACI,OAAO,GACpB;AACd,CAAC,CAAC","ignoreList":[]}
@@ -14,17 +14,20 @@ export interface DurationScrollProps {
14
14
  clickSoundAsset?: SoundAssetType;
15
15
  disableInfiniteScroll?: boolean;
16
16
  initialValue?: number;
17
+ interval: number;
17
18
  is12HourPicker?: boolean;
18
19
  isDisabled?: boolean;
19
20
  label?: string | React.ReactElement;
20
21
  limit?: LimitType;
21
- numberOfItems: number;
22
+ maximumValue: number;
22
23
  onDurationChange: (duration: number) => void;
23
24
  padNumbersWithZero?: boolean;
24
25
  padWithNItems: number;
26
+ pickerFeedback?: () => void | Promise<void>;
25
27
  pickerGradientOverlayProps?: Partial<LinearGradientProps>;
26
28
  pmLabel?: string;
27
29
  repeatNumbersNTimes?: number;
30
+ repeatNumbersNTimesNotExplicitlySet: boolean;
28
31
  styles: ReturnType<typeof generateStyles>;
29
32
  testID?: string;
30
33
  topPickerGradientOverlayProps?: Partial<LinearGradientProps>;
@@ -33,6 +33,7 @@ export interface TimerPickerProps {
33
33
  hideHours?: boolean;
34
34
  hideMinutes?: boolean;
35
35
  hideSeconds?: boolean;
36
+ hourInterval?: number;
36
37
  hourLabel?: string | React.ReactElement;
37
38
  hourLimit?: LimitType;
38
39
  hoursPickerIsDisabled?: boolean;
@@ -41,6 +42,10 @@ export interface TimerPickerProps {
41
42
  minutes?: number;
42
43
  seconds?: number;
43
44
  };
45
+ maximumHours?: number;
46
+ maximumMinutes?: number;
47
+ maximumSeconds?: number;
48
+ minuteInterval?: number;
44
49
  minuteLabel?: string | React.ReactElement;
45
50
  minuteLimit?: LimitType;
46
51
  minutesPickerIsDisabled?: boolean;
@@ -54,11 +59,13 @@ export interface TimerPickerProps {
54
59
  padSecondsWithZero?: boolean;
55
60
  padWithNItems?: number;
56
61
  pickerContainerProps?: React.ComponentProps<typeof View>;
62
+ pickerFeedback?: () => void | Promise<void>;
57
63
  pickerGradientOverlayProps?: Partial<LinearGradientProps>;
58
64
  pmLabel?: string;
59
65
  repeatHourNumbersNTimes?: number;
60
66
  repeatMinuteNumbersNTimes?: number;
61
67
  repeatSecondNumbersNTimes?: number;
68
+ secondInterval?: number;
62
69
  secondLabel?: string | React.ReactElement;
63
70
  secondLimit?: LimitType;
64
71
  secondsPickerIsDisabled?: boolean;
@@ -9,8 +9,11 @@ export interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {
9
9
  contentContainer?: ViewStyle;
10
10
  modalTitle?: TextStyle;
11
11
  }
12
- export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles | undefined) => {
12
+ export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles | undefined, variables?: {
13
+ hasModalTitle: boolean;
14
+ }) => {
13
15
  container: {
16
+ alignItems: undefined;
14
17
  backfaceVisibility?: "visible" | "hidden" | undefined;
15
18
  backgroundColor?: import("react-native").ColorValue | undefined;
16
19
  borderBottomColor?: import("react-native").ColorValue | undefined;
@@ -39,7 +42,6 @@ export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles
39
42
  testID?: string | undefined;
40
43
  elevation?: number | undefined;
41
44
  alignContent?: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "stretch" | undefined;
42
- alignItems: import("react-native").FlexAlignType;
43
45
  alignSelf?: import("react-native").FlexAlignType | "auto" | undefined;
44
46
  aspectRatio?: number | undefined;
45
47
  borderEndWidth?: string | number | undefined;
@@ -102,6 +104,8 @@ export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles
102
104
  translateY?: number | undefined;
103
105
  };
104
106
  contentContainer: {
107
+ paddingHorizontal: number;
108
+ paddingVertical: number;
105
109
  backfaceVisibility?: "visible" | "hidden" | undefined;
106
110
  backgroundColor: import("react-native").ColorValue;
107
111
  borderBottomColor?: import("react-native").ColorValue | undefined;
@@ -160,16 +164,14 @@ export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles
160
164
  maxWidth?: string | number | undefined;
161
165
  minHeight?: string | number | undefined;
162
166
  minWidth?: string | number | undefined;
163
- overflow?: "visible" | "hidden" | "scroll" | undefined;
164
- padding: string | number;
167
+ overflow: "visible" | "hidden" | "scroll";
168
+ padding?: string | number | undefined;
165
169
  paddingBottom?: string | number | undefined;
166
170
  paddingEnd?: string | number | undefined;
167
- paddingHorizontal?: string | number | undefined;
168
171
  paddingLeft?: string | number | undefined;
169
172
  paddingRight?: string | number | undefined;
170
173
  paddingStart?: string | number | undefined;
171
174
  paddingTop?: string | number | undefined;
172
- paddingVertical?: string | number | undefined;
173
175
  position?: "absolute" | "relative" | undefined;
174
176
  right?: string | number | undefined;
175
177
  start?: string | number | undefined;
@@ -239,7 +241,7 @@ export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles
239
241
  justifyContent?: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | undefined;
240
242
  left?: string | number | undefined;
241
243
  margin?: string | number | undefined;
242
- marginBottom?: string | number | undefined;
244
+ marginBottom: string | number;
243
245
  marginEnd?: string | number | undefined;
244
246
  marginHorizontal?: string | number | undefined;
245
247
  marginLeft?: string | number | undefined;
@@ -695,7 +697,7 @@ export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles
695
697
  marginLeft?: string | number | undefined;
696
698
  marginRight?: string | number | undefined;
697
699
  marginStart?: string | number | undefined;
698
- marginTop?: string | number | undefined;
700
+ marginTop: string | number;
699
701
  marginVertical?: string | number | undefined;
700
702
  maxHeight?: string | number | undefined;
701
703
  maxWidth?: string | number | undefined;
@@ -735,4 +737,111 @@ export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles
735
737
  textAlignVertical?: "center" | "auto" | "bottom" | "top" | undefined;
736
738
  includeFontPadding?: boolean | undefined;
737
739
  };
740
+ timerPickerStyles: {
741
+ pickerContainer: {
742
+ backfaceVisibility?: "visible" | "hidden" | undefined;
743
+ backgroundColor?: string | undefined;
744
+ borderBottomColor?: import("react-native").ColorValue | undefined;
745
+ borderBottomEndRadius?: number | undefined;
746
+ borderBottomLeftRadius?: number | undefined;
747
+ borderBottomRightRadius?: number | undefined;
748
+ borderBottomStartRadius?: number | undefined;
749
+ borderBottomWidth?: number | undefined;
750
+ borderColor?: import("react-native").ColorValue | undefined;
751
+ borderEndColor?: import("react-native").ColorValue | undefined;
752
+ borderLeftColor?: import("react-native").ColorValue | undefined;
753
+ borderLeftWidth?: number | undefined;
754
+ borderRadius?: number | undefined;
755
+ borderRightColor?: import("react-native").ColorValue | undefined;
756
+ borderRightWidth?: number | undefined;
757
+ borderStartColor?: import("react-native").ColorValue | undefined;
758
+ borderStyle?: "solid" | "dotted" | "dashed" | undefined;
759
+ borderTopColor?: import("react-native").ColorValue | undefined;
760
+ borderTopEndRadius?: number | undefined;
761
+ borderTopLeftRadius?: number | undefined;
762
+ borderTopRightRadius?: number | undefined;
763
+ borderTopStartRadius?: number | undefined;
764
+ borderTopWidth?: number | undefined;
765
+ borderWidth?: number | undefined;
766
+ opacity?: number | undefined;
767
+ testID?: string | undefined;
768
+ elevation?: number | undefined;
769
+ alignContent?: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "stretch" | undefined;
770
+ alignItems?: import("react-native").FlexAlignType | undefined;
771
+ alignSelf?: import("react-native").FlexAlignType | "auto" | undefined;
772
+ aspectRatio?: number | undefined;
773
+ borderEndWidth?: string | number | undefined;
774
+ borderStartWidth?: string | number | undefined;
775
+ bottom?: string | number | undefined;
776
+ display?: "none" | "flex" | undefined;
777
+ end?: string | number | undefined;
778
+ flex?: number | undefined;
779
+ flexBasis?: string | number | undefined;
780
+ flexDirection?: "row" | "column" | "row-reverse" | "column-reverse" | undefined;
781
+ flexGrow?: number | undefined;
782
+ flexShrink?: number | undefined;
783
+ flexWrap?: "wrap" | "nowrap" | "wrap-reverse" | undefined;
784
+ height?: string | number | undefined;
785
+ justifyContent?: "center" | "flex-start" | "flex-end" | "space-between" | "space-around" | "space-evenly" | undefined;
786
+ left?: string | number | undefined;
787
+ margin?: string | number | undefined;
788
+ marginBottom?: string | number | undefined;
789
+ marginEnd?: string | number | undefined;
790
+ marginHorizontal?: string | number | undefined;
791
+ marginLeft?: string | number | undefined;
792
+ marginRight?: string | number | undefined;
793
+ marginStart?: string | number | undefined;
794
+ marginTop?: string | number | undefined;
795
+ marginVertical?: string | number | undefined;
796
+ maxHeight?: string | number | undefined;
797
+ maxWidth?: string | number | undefined;
798
+ minHeight?: string | number | undefined;
799
+ minWidth?: string | number | undefined;
800
+ overflow?: "visible" | "hidden" | "scroll" | undefined;
801
+ padding?: string | number | undefined;
802
+ paddingBottom?: string | number | undefined;
803
+ paddingEnd?: string | number | undefined;
804
+ paddingHorizontal: string | number;
805
+ paddingLeft?: string | number | undefined;
806
+ paddingRight?: string | number | undefined;
807
+ paddingStart?: string | number | undefined;
808
+ paddingTop: string | number;
809
+ paddingVertical?: string | number | undefined;
810
+ position?: "absolute" | "relative" | undefined;
811
+ right?: string | number | undefined;
812
+ start?: string | number | undefined;
813
+ top?: string | number | undefined;
814
+ width?: string | number | undefined;
815
+ zIndex?: number | undefined;
816
+ direction?: "inherit" | "ltr" | "rtl" | undefined;
817
+ shadowColor?: import("react-native").ColorValue | undefined;
818
+ shadowOffset?: {
819
+ width: number;
820
+ height: number;
821
+ } | undefined;
822
+ shadowOpacity?: number | undefined;
823
+ shadowRadius?: number | undefined;
824
+ transform?: (import("react-native").PerpectiveTransform | import("react-native").RotateTransform | import("react-native").RotateXTransform | import("react-native").RotateYTransform | import("react-native").RotateZTransform | import("react-native").ScaleTransform | import("react-native").ScaleXTransform | import("react-native").ScaleYTransform | import("react-native").TranslateXTransform | import("react-native").TranslateYTransform | import("react-native").SkewXTransform | import("react-native").SkewYTransform | import("react-native").MatrixTransform)[] | undefined;
825
+ transformMatrix?: number[] | undefined;
826
+ rotation?: number | undefined;
827
+ scaleX?: number | undefined;
828
+ scaleY?: number | undefined;
829
+ translateX?: number | undefined;
830
+ translateY?: number | undefined;
831
+ };
832
+ backgroundColor?: string | undefined;
833
+ disabledPickerContainer?: ViewStyle | undefined;
834
+ disabledPickerItem?: TextStyle | undefined;
835
+ pickerAmPmContainer?: ViewStyle | undefined;
836
+ pickerAmPmLabel?: TextStyle | undefined;
837
+ pickerGradientOverlay?: ViewStyle | undefined;
838
+ pickerItem?: TextStyle | undefined;
839
+ pickerItemContainer?: (ViewStyle & {
840
+ height?: number | undefined;
841
+ }) | undefined;
842
+ pickerLabel?: TextStyle | undefined;
843
+ pickerLabelContainer?: ViewStyle | undefined;
844
+ text?: TextStyle | undefined;
845
+ theme?: "light" | "dark" | undefined;
846
+ };
738
847
  };
@@ -1,11 +1,13 @@
1
1
  export declare const generateNumbers: (numberOfItems: number, options: {
2
2
  disableInfiniteScroll?: boolean;
3
+ interval: number;
3
4
  padNumbersWithZero?: boolean;
4
5
  padWithNItems: number;
5
6
  repeatNTimes: number;
6
7
  }) => string[];
7
8
  export declare const generate12HourNumbers: (options: {
8
9
  disableInfiniteScroll?: boolean;
10
+ interval: number;
9
11
  padNumbersWithZero?: boolean;
10
12
  padWithNItems: number;
11
13
  repeatNTimes?: number;
@@ -1,5 +1,5 @@
1
1
  import type { LimitType } from "../components/DurationScroll/types";
2
- export declare const getAdjustedLimit: (limit: LimitType | undefined, numberOfItems: number) => {
2
+ export declare const getAdjustedLimit: (limit: LimitType | undefined, numberOfItems: number, interval: number) => {
3
3
  max: number;
4
4
  min: number;
5
5
  };
@@ -1,5 +1,6 @@
1
1
  export declare const getDurationAndIndexFromScrollOffset: (variables: {
2
2
  disableInfiniteScroll: boolean;
3
+ interval: number;
3
4
  itemHeight: number;
4
5
  numberOfItems: number;
5
6
  padWithNItems: number;
@@ -1,5 +1,6 @@
1
1
  export declare const getInitialScrollIndex: (variables: {
2
2
  disableInfiniteScroll: boolean;
3
+ interval: number;
3
4
  numberOfItems: number;
4
5
  padWithNItems: number;
5
6
  repeatNumbersNTimes: number;
@@ -0,0 +1,9 @@
1
+ export declare const getSafeInitialValue: (initialValue: {
2
+ hours?: number;
3
+ minutes?: number;
4
+ seconds?: number;
5
+ } | undefined) => {
6
+ hours: number;
7
+ minutes: number;
8
+ seconds: number;
9
+ };
package/package.json CHANGED
@@ -6,18 +6,22 @@
6
6
  "url": "https://github.com/troberts-28"
7
7
  },
8
8
  "license": "MIT",
9
- "version": "1.10.3",
9
+ "version": "2.0.1",
10
10
  "main": "dist/commonjs/index.js",
11
11
  "module": "dist/module/index.js",
12
12
  "types": "dist/typescript/index.d.ts",
13
13
  "typings": "dist/typescript/index.d.ts",
14
-
14
+ "packageManager": "yarn@3.6.4",
15
+ "workspaces": {
16
+ "packages": [
17
+ "examples/*"
18
+ ]
19
+ },
15
20
  "scripts": {
16
- "setup": "yarn && cd example && yarn",
17
- "setup-bare": "yarn && cd example-bare && yarn",
18
- "start": " cd example && yarn start",
19
- "start-bare:android": " cd example-bare && yarn android && yarn start",
20
- "start-bare:ios": " cd example-bare && yarn ios && yarn start",
21
+ "setup": "yarn install",
22
+ "start": " yarn workspace example-expo start",
23
+ "start-bare:android": "yarn workspace example-bare android && yarn workspace example-bare start",
24
+ "start-bare:ios": "yarn workspace example-bare android && yarn workspace example-bare start",
21
25
  "test": "jest --forceExit --silent",
22
26
  "build": "bob build",
23
27
  "clean": "rm yarn.lock && rm -rf ./node_modules && yarn install",
@@ -96,13 +100,13 @@
96
100
  "testEnvironment": "node",
97
101
  "modulePathIgnorePatterns": [
98
102
  "<rootDir>/dist/",
99
- "<rootDir>/example/"
103
+ "<rootDir>/examples/"
100
104
  ],
101
105
  "transformIgnorePatterns": []
102
106
  },
103
107
  "peerDependencies": {
104
- "react": ">=16.8.0",
105
- "react-native": ">=0.59.0"
108
+ "react": ">=18.2.0",
109
+ "react-native": ">=0.72.0"
106
110
  },
107
111
  "devDependencies": {
108
112
  "@babel/core": "^7.20.0",