@pezeshk-book/modules 0.0.52 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/countdown-timer/countdown.d.ts +4 -0
- package/dist/modules/countdown-timer/countdown.js +61 -0
- package/dist/modules/countdown-timer/countdown.js.map +1 -0
- package/dist/modules/countdown-timer/countdown.props.d.ts +10 -0
- package/dist/modules/countdown-timer/countdown.props.js +2 -0
- package/dist/modules/countdown-timer/countdown.props.js.map +1 -0
- package/dist/modules/countdown-timer/index.d.ts +2 -0
- package/dist/modules/countdown-timer/index.js +3 -0
- package/dist/modules/countdown-timer/index.js.map +1 -0
- package/dist/stories/count-down/count-down.d.ts +6 -0
- package/dist/stories/count-down/count-down.js +11 -0
- package/dist/stories/count-down/count-down.js.map +1 -0
- package/dist/stories/count-down/count-down.stories.d.ts +6 -0
- package/dist/stories/count-down/count-down.stories.js +13 -0
- package/dist/stories/count-down/count-down.stories.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Slider from './modules/slider';
|
|
2
2
|
import Calendar from './modules/calendar';
|
|
3
3
|
import Pagination from './modules/pagination';
|
|
4
|
-
|
|
4
|
+
import CountDown from './modules/countdown-timer';
|
|
5
|
+
export { Slider, Calendar, Pagination, CountDown, };
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Slider from './modules/slider';
|
|
2
2
|
import Calendar from './modules/calendar';
|
|
3
3
|
import Pagination from './modules/pagination';
|
|
4
|
-
|
|
4
|
+
import CountDown from './modules/countdown-timer';
|
|
5
|
+
export { Slider, Calendar, Pagination, CountDown, };
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,UAAU,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAC1C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAC9C,OAAO,SAAS,MAAM,2BAA2B,CAAC;AAElD,OAAO,EACL,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,GACV,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { __assign } from "tslib";
|
|
3
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
4
|
+
import { classNames, Div, Text } from '@pezeshk-book/ui-kit';
|
|
5
|
+
var CountDown = function (_a) {
|
|
6
|
+
var sec = _a.sec, parentCallback = _a.parentCallback, reset = _a.reset, _b = _a.variant, variant = _b === void 0 ? 'contained' : _b, className = _a.className, textProps = _a.textProps, _c = _a.initialColor, initialColor = _c === void 0 ? 'primary' : _c;
|
|
7
|
+
var _d = useState(sec), timerSec = _d[0], setTimerSec = _d[1];
|
|
8
|
+
var _e = useState(0), timerMin = _e[0], setTimerMin = _e[1];
|
|
9
|
+
var _f = useState(0), timerHour = _f[0], setTimerHour = _f[1];
|
|
10
|
+
var _g = useState(initialColor), color = _g[0], setColor = _g[1];
|
|
11
|
+
useEffect(function () {
|
|
12
|
+
if (sec >= 3600) {
|
|
13
|
+
setTimerHour(Math.floor(sec / 3600));
|
|
14
|
+
setTimerMin(Math.floor((sec % 3600) / 60));
|
|
15
|
+
setTimerSec(Math.floor((sec % 3600) % 60));
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
setTimerMin(Math.floor(sec / 60));
|
|
19
|
+
setTimerSec(Math.floor(sec % 60));
|
|
20
|
+
}
|
|
21
|
+
}, [reset]);
|
|
22
|
+
var id = useRef(null);
|
|
23
|
+
var clear = function () {
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
clearInterval(id.current);
|
|
26
|
+
};
|
|
27
|
+
useEffect(function () {
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
id.current = setInterval(function () {
|
|
30
|
+
setTimerSec(function (time) { return time - 1; });
|
|
31
|
+
}, 1000);
|
|
32
|
+
return function () { return clear(); };
|
|
33
|
+
}, [reset]);
|
|
34
|
+
useEffect(function () {
|
|
35
|
+
if (timerSec === 0 && timerMin === 0 && timerHour === 0) {
|
|
36
|
+
parentCallback(true);
|
|
37
|
+
clear();
|
|
38
|
+
}
|
|
39
|
+
else if (timerSec === -1 && timerMin !== 0) {
|
|
40
|
+
setTimerSec(59);
|
|
41
|
+
setTimerMin(function (time) { return time - 1; });
|
|
42
|
+
}
|
|
43
|
+
else if (timerSec === -1 && timerMin === 0 && timerHour !== 0) {
|
|
44
|
+
setTimerSec(59);
|
|
45
|
+
setTimerMin(59);
|
|
46
|
+
setTimerHour(function (time) { return time - 1; });
|
|
47
|
+
}
|
|
48
|
+
var remainingTime = (timerSec + timerMin * 60 + timerHour * 3600);
|
|
49
|
+
setColor((remainingTime <= (sec / 10) ? 'danger' : (remainingTime <= (sec * 30 / 100) ? 'warning' : initialColor)));
|
|
50
|
+
}, [timerSec]);
|
|
51
|
+
return (React.createElement(Div, { dir: 'rtl', className: classNames('items-center justify-center h-full rounded', variant === 'contained' ? 'bg-primary' : 'bg-transparent', className) },
|
|
52
|
+
React.createElement(Text, __assign({ typography: 'base', color: variant === 'contained' ? 'white' : color }, textProps), timerSec < 10 ? '0' + timerSec : timerSec),
|
|
53
|
+
React.createElement(Text, __assign({ className: 'mx-1', typography: 'base', color: variant === 'contained' ? 'white' : color }, textProps), ":"),
|
|
54
|
+
React.createElement(Text, __assign({ typography: 'base', color: variant === 'contained' ? 'white' : color }, textProps), timerMin < 10 ? '0' + timerMin : timerMin),
|
|
55
|
+
sec >= 3600
|
|
56
|
+
? React.createElement(React.Fragment, null,
|
|
57
|
+
React.createElement(Text, __assign({ className: 'mx-1', typography: 'base', color: variant === 'contained' ? 'white' : color }, textProps), ":"),
|
|
58
|
+
React.createElement(Text, __assign({ typography: 'base', color: variant === 'contained' ? 'white' : color }, textProps), timerHour < 10 ? '0' + timerHour : timerHour)) : null));
|
|
59
|
+
};
|
|
60
|
+
export default CountDown;
|
|
61
|
+
//# sourceMappingURL=countdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countdown.js","sourceRoot":"","sources":["../../../modules/countdown-timer/countdown.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TextProps } from '@pezeshk-book/ui-kit/text/text.props';
|
|
2
|
+
export interface CountdownProps {
|
|
3
|
+
sec: number;
|
|
4
|
+
parentCallback?: any;
|
|
5
|
+
reset?: boolean;
|
|
6
|
+
variant?: 'contained' | 'outlined';
|
|
7
|
+
className?: string;
|
|
8
|
+
textProps?: Omit<TextProps, 'children'>;
|
|
9
|
+
initialColor?: 'primary' | 'success';
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countdown.props.js","sourceRoot":"","sources":["../../../modules/countdown-timer/countdown.props.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../modules/countdown-timer/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,eAAe,SAAS,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import CustomCountDown from '../../modules/countdown-timer';
|
|
4
|
+
/**
|
|
5
|
+
* Primary UI component for user interaction
|
|
6
|
+
*/
|
|
7
|
+
export var CountDown = function (_a) {
|
|
8
|
+
var props = __rest(_a, []);
|
|
9
|
+
return (React.createElement(CustomCountDown, __assign({}, props)));
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=count-down.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count-down.js","sourceRoot":"","sources":["../../../stories/count-down/count-down.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAG5D;;GAEG;AACH,MAAM,CAAC,IAAM,SAAS,GAAG,UAAC,EAA4B;QAAvB,KAAK,cAAV,EAAY,CAAF;IAClC,OAAO,CACL,oBAAC,eAAe,eAAK,KAAK,EAAI,CAC/B,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ComponentMeta, ComponentStory } from '@storybook/react';
|
|
3
|
+
import { CountdownProps } from '../../modules/countdown-timer/countdown.props';
|
|
4
|
+
declare const _default: ComponentMeta<({ ...props }: CountdownProps) => React.JSX.Element>;
|
|
5
|
+
export default _default;
|
|
6
|
+
export declare const Default: ComponentStory<({ ...props }: CountdownProps) => React.JSX.Element>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { __assign, __rest } from "tslib";
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import { CountDown } from './count-down';
|
|
4
|
+
export default {
|
|
5
|
+
title: 'CountDownTimer',
|
|
6
|
+
component: CountDown
|
|
7
|
+
};
|
|
8
|
+
var Template = function (_a) {
|
|
9
|
+
var args = __rest(_a, []);
|
|
10
|
+
return React.createElement(CountDown, __assign({}, args));
|
|
11
|
+
};
|
|
12
|
+
export var Default = Template.bind({});
|
|
13
|
+
//# sourceMappingURL=count-down.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count-down.stories.js","sourceRoot":"","sources":["../../../stories/count-down/count-down.stories.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIzC,eAAe;IACb,KAAK,EAAE,gBAAgB;IACvB,SAAS,EAAE,SAAS;CACc,CAAC;AAErC,IAAM,QAAQ,GAAqC,UAAC,EAA2B;QAAtB,IAAI,cAAT,EAAW,CAAF;IAAuB,OAAA,oBAAC,SAAS,eAAK,IAAI,EAAI,CAAA;CAAA,CAAC;AAE5G,MAAM,CAAC,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC"}
|