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.
- package/README.md +81 -52
- package/dist/commonjs/components/DurationScroll/index.js +77 -20
- package/dist/commonjs/components/DurationScroll/index.js.map +1 -1
- package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/index.js +23 -10
- package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
- package/dist/commonjs/components/TimerPickerModal/index.js +10 -7
- package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -1
- package/dist/commonjs/components/TimerPickerModal/styles.js +87 -54
- package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
- package/dist/commonjs/tests/DurationScroll.test.js +3 -3
- package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
- package/dist/commonjs/tests/Modal.test.js +3 -3
- package/dist/commonjs/tests/Modal.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPicker.test.js +4 -4
- package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPickerModal.test.js +6 -6
- package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/commonjs/utils/generateNumbers.js +4 -3
- package/dist/commonjs/utils/generateNumbers.js.map +1 -1
- package/dist/commonjs/utils/getAdjustedLimit.js +5 -5
- package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
- package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js +2 -1
- package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
- package/dist/commonjs/utils/getInitialScrollIndex.js +2 -1
- package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -1
- package/dist/commonjs/utils/getSafeInitialValue.js +13 -0
- package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -0
- package/dist/module/components/DurationScroll/index.js +77 -20
- package/dist/module/components/DurationScroll/index.js.map +1 -1
- package/dist/module/components/DurationScroll/types.js.map +1 -1
- package/dist/module/components/TimerPicker/index.js +23 -10
- package/dist/module/components/TimerPicker/index.js.map +1 -1
- package/dist/module/components/TimerPicker/types.js.map +1 -1
- package/dist/module/components/TimerPickerModal/index.js +10 -7
- package/dist/module/components/TimerPickerModal/index.js.map +1 -1
- package/dist/module/components/TimerPickerModal/styles.js +87 -54
- package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
- package/dist/module/tests/DurationScroll.test.js +3 -3
- package/dist/module/tests/DurationScroll.test.js.map +1 -1
- package/dist/module/tests/Modal.test.js +3 -3
- package/dist/module/tests/Modal.test.js.map +1 -1
- package/dist/module/tests/TimerPicker.test.js +4 -4
- package/dist/module/tests/TimerPicker.test.js.map +1 -1
- package/dist/module/tests/TimerPickerModal.test.js +6 -6
- package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/module/utils/generateNumbers.js +4 -3
- package/dist/module/utils/generateNumbers.js.map +1 -1
- package/dist/module/utils/getAdjustedLimit.js +5 -5
- package/dist/module/utils/getAdjustedLimit.js.map +1 -1
- package/dist/module/utils/getDurationAndIndexFromScrollOffset.js +2 -1
- package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
- package/dist/module/utils/getInitialScrollIndex.js +2 -1
- package/dist/module/utils/getInitialScrollIndex.js.map +1 -1
- package/dist/module/utils/getSafeInitialValue.js +6 -0
- package/dist/module/utils/getSafeInitialValue.js.map +1 -0
- package/dist/typescript/components/DurationScroll/types.d.ts +4 -1
- package/dist/typescript/components/TimerPicker/types.d.ts +7 -0
- package/dist/typescript/components/TimerPickerModal/styles.d.ts +117 -8
- package/dist/typescript/utils/generateNumbers.d.ts +2 -0
- package/dist/typescript/utils/getAdjustedLimit.d.ts +1 -1
- package/dist/typescript/utils/getDurationAndIndexFromScrollOffset.d.ts +1 -0
- package/dist/typescript/utils/getInitialScrollIndex.d.ts +1 -0
- package/dist/typescript/utils/getSafeInitialValue.d.ts +9 -0
- 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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,EAAEC,SAAS,QAAQ,+BAA+B;AAEjE,OAAOC,gBAAgB,MAAM,gCAAgC;AAE7DC,QAAQ,CAAC,kBAAkB,EAAE,MAAM;EAC/B,MAAMC,aAAa,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EAC/B,MAAMC,YAAY,GAAGF,IAAI,CAACC,EAAE,CAAC,CAAC;EAE9B,MAAME,YAAY,GAAG;IACjBC,OAAO,EAAE,IAAI;IACbC,YAAY,EAAEL,IAAI,CAACC,EAAE,CAAC,CAAC;IACvBK,SAAS,EAAEP,aAAa;IACxBQ,QAAQ,EAAEL;EACd,CAAC;EAEDM,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGd,MAAM,
|
|
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
|
-
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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:
|
|
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,
|
|
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:
|
|
17
|
+
max: maxValue,
|
|
18
18
|
min: 0
|
|
19
19
|
};
|
|
20
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getAdjustedLimit","limit","numberOfItems","
|
|
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)
|
|
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,
|
|
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
|
-
|
|
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
|
|
164
|
-
padding
|
|
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
|
|
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
|
|
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
|
};
|
package/package.json
CHANGED
|
@@ -6,18 +6,22 @@
|
|
|
6
6
|
"url": "https://github.com/troberts-28"
|
|
7
7
|
},
|
|
8
8
|
"license": "MIT",
|
|
9
|
-
"version": "
|
|
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
|
|
17
|
-
"
|
|
18
|
-
"start": "
|
|
19
|
-
"start-bare:
|
|
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>/
|
|
103
|
+
"<rootDir>/examples/"
|
|
100
104
|
],
|
|
101
105
|
"transformIgnorePatterns": []
|
|
102
106
|
},
|
|
103
107
|
"peerDependencies": {
|
|
104
|
-
"react": ">=
|
|
105
|
-
"react-native": ">=0.
|
|
108
|
+
"react": ">=18.2.0",
|
|
109
|
+
"react-native": ">=0.72.0"
|
|
106
110
|
},
|
|
107
111
|
"devDependencies": {
|
|
108
112
|
"@babel/core": "^7.20.0",
|