@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 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
- export { Slider, Calendar, Pagination, };
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
- export { Slider, Calendar, Pagination, };
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;AAE9C,OAAO,EACL,MAAM,EACN,QAAQ,EACR,UAAU,GACX,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,4 @@
1
+ import React from 'react';
2
+ import { CountdownProps } from './countdown.props';
3
+ declare const CountDown: ({ sec, parentCallback, reset, variant, className, textProps, initialColor }: CountdownProps) => React.JSX.Element;
4
+ export default CountDown;
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=countdown.props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countdown.props.js","sourceRoot":"","sources":["../../../modules/countdown-timer/countdown.props.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import CountDown from './countdown';
2
+ export default CountDown;
@@ -0,0 +1,3 @@
1
+ import CountDown from './countdown';
2
+ export default CountDown;
3
+ //# sourceMappingURL=index.js.map
@@ -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,6 @@
1
+ import React from 'react';
2
+ import { CountdownProps } from '../../modules/countdown-timer/countdown.props';
3
+ /**
4
+ * Primary UI component for user interaction
5
+ */
6
+ export declare const CountDown: ({ ...props }: CountdownProps) => React.JSX.Element;
@@ -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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pezeshk-book/modules",
3
- "version": "0.0.52",
3
+ "version": "0.1.0",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.ts",
6
6
  "module": "./dist/index.js",