react-ui-basics 0.0.176 → 0.0.177

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.
@@ -0,0 +1,20 @@
1
+ .CalendarMonthView {
2
+ display: flex;
3
+ flex-flow: column nowrap;
4
+ height: 100%;
5
+ }
6
+ .CalendarMonthView > .row {
7
+ display: flex;
8
+ flex-flow: row nowrap;
9
+ }
10
+ .CalendarMonthView .days {
11
+ flex-grow: 1;
12
+ position: relative;
13
+ }
14
+ .CalendarMonthView .day, .CalendarMonthView .header {
15
+ flex-grow: 1;
16
+ flex-basis: 1px;
17
+ }
18
+ .CalendarMonthView .day {
19
+ height: 100%;
20
+ }
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import './CalendarMonthView.css';
3
+ import { DateExtended } from "./DateTools";
4
+ interface CalendarMonthViewProps {
5
+ className?: string;
6
+ dayOfWeekToString: (day: number) => string | JSX.Element;
7
+ dayRenderer: (day: DateExtended, defaultRenderer: (day: DateExtended) => JSX.Element, row: number, column: number) => string | JSX.Element;
8
+ selectedDate?: Date;
9
+ monthOf?: Date;
10
+ }
11
+ declare const CalendarMonthView: ({ className, dayOfWeekToString, selectedDate, monthOf, dayRenderer }: CalendarMonthViewProps) => JSX.Element;
12
+ export default CalendarMonthView;
@@ -0,0 +1,52 @@
1
+ import ReactConstants from "./ReactConstants";
2
+ import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields";
3
+
4
+ import { jsxs as jsxRuntime_1, jsx as jsxRuntime_2 } from 'react/jsx-runtime';
5
+ import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers";
6
+ import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers";
7
+ import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers";
8
+ import './CalendarMonthView.css';
9
+ import { now, dateOf, get, TimeUnit as TimeUnit$1 } from './DateTools.js';
10
+ import { classNames } from './Tools.js';
11
+
12
+ var daysOfWeek = [1, 2, 3, 4, 5, 6, 0];
13
+ var rows = [1, 2, 3, 4, 5, 6];
14
+ var TimeUnit = TimeUnit$1;
15
+ var defaultDayRenderer = function (day) { return jsxRuntime_2("span", __extends({ [ReactConstants[5]]: 'value' }, { [ReactConstants[4]]: get(day, TimeUnit$1.DAY) })); };
16
+ var CalendarMonthView = function (_a) {
17
+ var className = _a[ReactConstants[5]], dayOfWeekToString = _a.dayOfWeekToString, selectedDate = _a.selectedDate, monthOf = _a.monthOf, dayRenderer = _a.dayRenderer;
18
+ var today = now();
19
+ var currentDay = today.get(TimeUnit.DAY);
20
+ var currentMonth = today.get(TimeUnit.MONTH);
21
+ var currentYear = today.get(TimeUnit.YEAR);
22
+ var selected = selectedDate && dateOf(selectedDate);
23
+ var selectedDay = selected && selected.get(TimeUnit.DAY);
24
+ var selectedMonth = selected && selected.get(TimeUnit.MONTH);
25
+ var selectedYear = selected && selected.get(TimeUnit.YEAR);
26
+ var showMonth = dateOf(monthOf).get(TimeUnit.MONTH);
27
+ var startOfMonth = dateOf(monthOf || today);
28
+ startOfMonth.subtract(startOfMonth.get(TimeUnit.DAY) - 1, TimeUnit.DAY);
29
+ var shiftToStart;
30
+ if (startOfMonth.getDay() === 0) {
31
+ shiftToStart = 6;
32
+ }
33
+ else if (startOfMonth.getDay() === 1) {
34
+ shiftToStart = 7;
35
+ }
36
+ else {
37
+ shiftToStart = startOfMonth.getDay() - 1;
38
+ }
39
+ var theDay = dateOf(startOfMonth).subtract(shiftToStart, TimeUnit.DAY).resetTime();
40
+ return jsxRuntime_1("div", __extends({ [ReactConstants[5]]: classNames('CalendarMonthView', className) }, { [ReactConstants[4]]: [jsxRuntime_2("div", __extends({ [ReactConstants[5]]: 'headers row' }, { [ReactConstants[4]]: daysOfWeek.map(function (i) { return jsxRuntime_2("div", __extends({ [ReactConstants[5]]: classNames('header', (i === 6 || i === 0) && 'weekend') }, { [ReactConstants[4]]: dayOfWeekToString(i) }), i); }) })), rows.map(function (_, row) { return jsxRuntime_2("div", __extends({ [ReactConstants[5]]: 'days row' }, { [ReactConstants[4]]: daysOfWeek.map(function (_, cell) {
41
+ var day = get(theDay, TimeUnit$1.DAY);
42
+ var month = get(theDay, TimeUnit$1.MONTH);
43
+ var year = get(theDay, TimeUnit$1.YEAR);
44
+ var dayOfWeek = theDay.getDay();
45
+ var rendered = jsxRuntime_1("div", __extends({ [ReactConstants[5]]: classNames('day', month !== showMonth && 'notSelectedMonth', day === currentDay && month === currentMonth && year === currentYear && 'today', day === selectedDay && month === selectedMonth && year === selectedYear && 'selected', (dayOfWeek === 6 || dayOfWeek === 0) && 'weekend') }, { [ReactConstants[4]]: [!dayRenderer && defaultDayRenderer(theDay), dayRenderer && dayRenderer(theDay, defaultDayRenderer, row, cell)] }), (cell + 1) * (row + 1));
46
+ theDay.add(1, TimeUnit$1.DAY);
47
+ return rendered;
48
+ }) }), row); })] }));
49
+ };
50
+
51
+ export { CalendarMonthView as default };
52
+ //# sourceMappingURL=CalendarMonthView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarMonthView.js","sources":["./src/CalendarMonthView.tsx"],"sourcesContent":[null],"names":["DateTools.TimeUnit","_jsx","DateTools.get","DateTools.now","DateTools.dateOf","_jsxs"],"mappings":"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"}
package/DatePicker.css ADDED
@@ -0,0 +1,93 @@
1
+ .DatePicker {
2
+ position: relative;
3
+ }
4
+ .DatePicker > .TextField {
5
+ width: 200px;
6
+ margin-bottom: 0px;
7
+ }
8
+ .DatePicker > .TextField input {
9
+ text-align: center;
10
+ }
11
+ .DatePicker .calendar {
12
+ user-select: none;
13
+ position: absolute;
14
+ top: 33px;
15
+ z-index: 10;
16
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
17
+ transition: 0.2s all ease;
18
+ opacity: 0;
19
+ visibility: hidden;
20
+ }
21
+ .DatePicker .calendar.focused {
22
+ opacity: 1;
23
+ visibility: visible;
24
+ }
25
+ .DatePicker .monthSelect {
26
+ margin-bottom: 0;
27
+ background: white;
28
+ font-size: 12px;
29
+ color: #aaaaaa;
30
+ padding-right: 16px;
31
+ padding-left: 16px;
32
+ height: 40px;
33
+ }
34
+ .DatePicker .monthSelect span {
35
+ margin-right: auto;
36
+ }
37
+ .DatePicker .monthSelect .Button {
38
+ min-width: 25px;
39
+ min-height: 25px;
40
+ }
41
+ .DatePicker .monthSelect .Button .material-icons {
42
+ font-size: 16px;
43
+ }
44
+ .DatePicker .monthSelect .Button.disabled {
45
+ background: transparent;
46
+ }
47
+ .DatePicker .CalendarMonthView {
48
+ background: white;
49
+ }
50
+ .DatePicker .CalendarMonthView .headers, .DatePicker .CalendarMonthView .days {
51
+ margin-bottom: 0;
52
+ }
53
+ .DatePicker .CalendarMonthView .header {
54
+ font-size: 12px;
55
+ font-weight: bold;
56
+ text-align: center;
57
+ text-transform: uppercase;
58
+ margin: 5px;
59
+ }
60
+ .DatePicker .CalendarMonthView .day {
61
+ font-size: 10px;
62
+ }
63
+ .DatePicker .CalendarMonthView .day.notSelectedMonth {
64
+ color: #969696;
65
+ }
66
+ .DatePicker .CalendarMonthView .day span {
67
+ display: inline-flex;
68
+ justify-content: center;
69
+ align-items: center;
70
+ border-radius: 50%;
71
+ width: 25px;
72
+ height: 25px;
73
+ margin: 5px;
74
+ transition: 0.2s all ease;
75
+ cursor: pointer;
76
+ }
77
+ .DatePicker .CalendarMonthView .day span:hover {
78
+ background-color: #e6e6e6;
79
+ }
80
+ .DatePicker .CalendarMonthView .day span.inactive {
81
+ color: lightgray;
82
+ cursor: unset;
83
+ }
84
+ .DatePicker .CalendarMonthView .day span.inactive:hover {
85
+ background: unset;
86
+ }
87
+ .DatePicker .CalendarMonthView .day span.selected {
88
+ color: white;
89
+ background-color: #2196F3;
90
+ }
91
+ .DatePicker .CalendarMonthView .day span.selected:hover {
92
+ background-color: #51adf6;
93
+ }
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import './DatePicker.css';
3
+ import { DateExtended } from "./DateTools";
4
+ export interface DatePickerProps {
5
+ id?: number | string;
6
+ name?: string;
7
+ value: Date;
8
+ minDate?: Date;
9
+ formatter: (date: Date) => string;
10
+ parser: (date: string) => Date;
11
+ onChange: (e: any) => void;
12
+ dayOfWeekToString: (day: number) => string | JSX.Element;
13
+ monthToString: (day: number) => string | JSX.Element;
14
+ }
15
+ interface DatePickerState {
16
+ focused: boolean;
17
+ value: Date;
18
+ selectedMonth: DateExtended;
19
+ text: string;
20
+ }
21
+ declare class DatePicker extends React.Component<DatePickerProps, DatePickerState> {
22
+ private el;
23
+ private listener;
24
+ constructor(props: DatePickerProps);
25
+ componentDidUpdate(prevProps: any, prevState: any, snapshot: any): void;
26
+ componentDidMount(): void;
27
+ componentWillUnmount(): void;
28
+ shouldComponentUpdate(nextProps: any, nextState: any, nextContext: any): boolean;
29
+ render(): JSX.Element;
30
+ onChange: (value: Date) => void;
31
+ }
32
+ export default DatePicker;
package/DatePicker.js ADDED
@@ -0,0 +1,116 @@
1
+ import ReactConstants from "./ReactConstants";
2
+ import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields";
3
+
4
+ import { jsxs as jsxRuntime_1, jsx as jsxRuntime_2 } from 'react/jsx-runtime';
5
+ import {toConsumableArray as __toConsumableArray} from "./_virtual/_rollupPluginBabelHelpers";
6
+ import {extends as __extends} from "./_virtual/_rollupPluginBabelHelpers";
7
+ import {inherits as __inherits} from "./_virtual/_rollupPluginBabelHelpers";
8
+ import './DatePicker.css';
9
+ import React from 'react';
10
+ import TextField from './TextField.js';
11
+ import { dateOf, TimeUnit, equals, get } from './DateTools.js';
12
+ import { orNoop, classNames, preventDefault } from './Tools.js';
13
+ import Button from './Button.js';
14
+ import CalendarMonthView from './CalendarMonthView.js';
15
+ import MaterialIcon from './MaterialIcon.js';
16
+
17
+ var DayRenderer = function (_a) {
18
+ var day = _a.day, selected = _a.selected, minDate = _a.minDate, onClick = _a[ReactConstants[6]];
19
+ return jsxRuntime_2("span", __extends({ [ReactConstants[5]]: classNames('value', minDate && (day.isBefore(minDate) && !day.isSameDate(minDate)) && 'inactive', selected && day.isSameDate(selected) && 'selected'), [ReactConstants[6]]: function (e) {
20
+ preventDefault(e);
21
+ if (minDate && (day.isBefore(minDate) && !day.isSameDate(minDate)))
22
+ return;
23
+ onClick(day);
24
+ } }, { [ReactConstants[4]]: get(day, TimeUnit.DAY) }));
25
+ };
26
+ var DatePicker = /** @class */ (function (_super) {
27
+ __inherits(DatePicker, _super);
28
+ function DatePicker(props) {
29
+ var _this = _super.call(this, props) || this;
30
+ _this[ReactConstants[7]] = function (value) {
31
+ _this.setState({ value: value });
32
+ orNoop(__props(_this)[ReactConstants[7]])({
33
+ target: {
34
+ id: __props(_this).id,
35
+ name: __props(_this).name,
36
+ value: value,
37
+ }
38
+ });
39
+ };
40
+ var date = __value(props) || new Date();
41
+ _this.state = {
42
+ focused: false,
43
+ value: date,
44
+ text: props.formatter(date),
45
+ selectedMonth: dateOf(date).resetTime().set(1, TimeUnit.DAY),
46
+ };
47
+ return _this;
48
+ }
49
+ DatePicker.prototype[ReactConstants[2]] = function (prevProps, prevState, snapshot) {
50
+ if (__props(this).value !== __value(prevProps))
51
+ this.setState({
52
+ value: __props(this).value,
53
+ selectedMonth: dateOf(__props(this).value).resetTime().set(1, TimeUnit.DAY),
54
+ text: __props(this).formatter(__props(this).value)
55
+ });
56
+ };
57
+ DatePicker.prototype[ReactConstants[0]] = function () {
58
+ var _this = this;
59
+ document.addEventListener('mousedown', this.listener = function (e) {
60
+ if (__state(_this).focused && !_this.el.contains(__target(e)))
61
+ _this.setState({ focused: false });
62
+ });
63
+ };
64
+ DatePicker.prototype[ReactConstants[1]] = function () {
65
+ document.removeEventListener('mousedown', this.listener);
66
+ };
67
+ DatePicker.prototype.shouldComponentUpdate = function (nextProps, nextState, nextContext) {
68
+ if (!equals(__props(this).value, __value(nextProps)))
69
+ return true;
70
+ if (!equals(__state(this).value, __value(nextState)))
71
+ return true;
72
+ if (__state(this).text !== nextState.text)
73
+ return true;
74
+ if (__state(this).focused !== nextState.focused)
75
+ return true;
76
+ if (__state(this).selectedMonth !== nextState.selectedMonth)
77
+ return true;
78
+ if (!equals(__props(this).minDate, nextProps.minDate))
79
+ return true;
80
+ return false;
81
+ };
82
+ DatePicker.prototype[ReactConstants[3]] = function () {
83
+ var _this = this;
84
+ var _a = __props(this), minDate = _a.minDate, formatter = _a.formatter, parser = _a.parser, dayOfWeekToString = _a.dayOfWeekToString, monthToString = _a.monthToString;
85
+ var _b = __state(this), value = __value(_b), text = _b.text, focused = _b.focused, selectedMonth = _b.selectedMonth;
86
+ return jsxRuntime_1("div", __extends({ [ReactConstants[5]]: "DatePicker", ref: function (el) { return _this.el = el; } }, { [ReactConstants[4]]: [jsxRuntime_2(TextField, { id: 'value', value: text, autoComplete: "off", onFocus: function () { return _this.setState({ focused: true }); }, [ReactConstants[7]]: function (e) {
87
+ var text = __target(e).value;
88
+ try {
89
+ var date = parser(text);
90
+ if (date instanceof Date && !Number.isNaN(date.getTime())) {
91
+ if (date && value.getTime() !== date.getTime())
92
+ _this[ReactConstants[7]](date);
93
+ }
94
+ _this.setState({ text: text });
95
+ }
96
+ catch (ignored) {
97
+ }
98
+ }, onKeyDown: function (e) {
99
+ if ((e.keyCode === 27 /*esc*/ || e.keyCode === 13 /*enter*/) && focused) {
100
+ e.preventDefault();
101
+ _this.setState({ text: formatter(value), focused: false });
102
+ }
103
+ } }), jsxRuntime_1("div", __extends({ [ReactConstants[5]]: "calendar ".concat(focused && 'focused') }, { [ReactConstants[4]]: [jsxRuntime_1("div", __extends({ [ReactConstants[5]]: 'row monthSelect' }, { [ReactConstants[4]]: [jsxRuntime_1("span", { [ReactConstants[4]]: [monthToString(selectedMonth.get(TimeUnit.MONTH)), "\u00A0", selectedMonth.get(TimeUnit.YEAR)] }), jsxRuntime_2(Button, __extends({ flat: true, round: true, disabled: minDate && dateOf(selectedMonth).isBefore(minDate), [ReactConstants[6]]: function () {
104
+ _this.setState({ selectedMonth: dateOf(selectedMonth).subtract(1, TimeUnit.MONTH) });
105
+ } }, { [ReactConstants[4]]: jsxRuntime_2(MaterialIcon, { icon: 'chevron_left' }) })), jsxRuntime_2(Button, __extends({ flat: true, round: true, [ReactConstants[6]]: function () {
106
+ _this.setState({ selectedMonth: dateOf(selectedMonth).add(1, TimeUnit.MONTH) });
107
+ } }, { [ReactConstants[4]]: jsxRuntime_2(MaterialIcon, { icon: 'chevron_right' }) }))] })), jsxRuntime_2(CalendarMonthView, { monthOf: selectedMonth, dayOfWeekToString: dayOfWeekToString, dayRenderer: function (date) { return jsxRuntime_2(DayRenderer, { day: dateOf(date), selected: value, minDate: minDate, [ReactConstants[6]]: function (value) {
108
+ _this[ReactConstants[7]](value);
109
+ _this.setState({ focused: false, text: formatter(value) });
110
+ } }); } })] }))] }));
111
+ };
112
+ return DatePicker;
113
+ }(React.Component));
114
+
115
+ export { DatePicker as default };
116
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DatePicker.js","sources":["./src/DatePicker.tsx"],"sourcesContent":[null],"names":["_jsx","DateTools.get","DateTools.TimeUnit","DateTools.dateOf","DateTools.equals","_jsxs"],"mappings":"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"}
package/DateTools.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ export declare const resetTime: (date: Date) => Date;
2
+ export declare const timeOf: (date: Date) => number;
3
+ export declare const equals: (a: Date, b: Date) => boolean;
4
+ export declare const isBefore: (a: Date, b: Date) => boolean;
5
+ export declare const isAfter: (a: Date, b: Date) => boolean;
6
+ export declare const max: (a: Date, b: Date) => Date;
7
+ export declare const min: (a: Date, b: Date) => Date;
8
+ export declare class TimeUnit {
9
+ static MILLISECOND: TimeUnit;
10
+ static SECOND: TimeUnit;
11
+ static MINUTE: TimeUnit;
12
+ static HOUR: TimeUnit;
13
+ static DAY: TimeUnit;
14
+ static MONTH: TimeUnit;
15
+ static YEAR: TimeUnit;
16
+ set: (date: Date, value: number) => void;
17
+ get: (date: Date) => number;
18
+ constructor(field: any);
19
+ }
20
+ export declare const get: (date: Date, timeUnit: TimeUnit) => number;
21
+ export declare const set: (date: Date, value: number, timeUnit: TimeUnit) => Date;
22
+ export declare const add: (date: Date, amount: number, timeUnit: TimeUnit) => Date;
23
+ export declare const subtract: (date: Date, amount: number, timeUnit: TimeUnit) => Date;
24
+ export interface DateExtended extends Date {
25
+ get: (timeUnit: TimeUnit) => number;
26
+ set: (value: number, timeUnit: TimeUnit) => DateExtended;
27
+ add: (amount: number, timeUnit: TimeUnit) => DateExtended;
28
+ subtract: (amount: number, timeUnit: TimeUnit) => DateExtended;
29
+ isBefore: (after: Date) => boolean;
30
+ isAfter: (before: Date) => boolean;
31
+ isSameDate: (another: Date) => boolean;
32
+ equals: (another: Date) => boolean;
33
+ resetTime: () => DateExtended;
34
+ }
35
+ export declare const extend: (date: Date) => DateExtended;
36
+ export declare const dateOf: (date?: string | Date) => DateExtended;
37
+ export declare const now: (date?: string | Date) => DateExtended;
38
+ export declare const copy: (date?: string | Date) => DateExtended;
39
+ export declare const isSameDay: (dateA: Date, dateB: Date) => boolean;
package/DateTools.js ADDED
@@ -0,0 +1,73 @@
1
+ import ReactConstants from "./ReactConstants";
2
+ import {clientHeight as __clientHeight, clientWidth as __clientWidth, createAccessor as __createAccessor, data as __data, height as __height, left as __left, length as __length, pageX as __pageX, pageY as __pageY, props as __props, scrollLeft as __scrollLeft, scrollTop as __scrollTop, state as __state, style as __style, target as __target, top as __top, value as __value, width as __width} from "./CommonFields";
3
+ var resetTime = function (date) {
4
+ date.setHours(0, 0, 0, 0);
5
+ return date;
6
+ };
7
+ var timeOf = function (date) { return date.getTime(); };
8
+ var equals = function (a, b) { return a && b && timeOf(a) === timeOf(b); };
9
+ var isBefore = function (a, b) { return a && b && timeOf(a) < timeOf(b); };
10
+ var isAfter = function (a, b) { return a && b && timeOf(a) > timeOf(b); };
11
+ var max = function (a, b) {
12
+ if (!b)
13
+ return a;
14
+ if (!a)
15
+ return b;
16
+ return timeOf(a) > timeOf(b) ? a : b;
17
+ };
18
+ var min = function (a, b) {
19
+ if (!b)
20
+ return a;
21
+ if (!a)
22
+ return b;
23
+ return timeOf(a) < timeOf(b) ? a : b;
24
+ };
25
+ var TimeUnit = /** @class */ (function () {
26
+ function TimeUnit(field) {
27
+ var getter = 'get' + field;
28
+ var setter = 'set' + field;
29
+ // this.getter = getter;
30
+ // this.setter = setter;
31
+ this.toString = function () { return field; };
32
+ this.get = function (date) { return date[getter](); };
33
+ this.set = function (date, value) { return date[setter](value); };
34
+ }
35
+ TimeUnit.MILLISECOND = new TimeUnit('Milliseconds');
36
+ TimeUnit.SECOND = new TimeUnit('Seconds');
37
+ TimeUnit.MINUTE = new TimeUnit('Minutes');
38
+ TimeUnit.HOUR = new TimeUnit('Hours');
39
+ TimeUnit.DAY = new TimeUnit('Date');
40
+ TimeUnit.MONTH = new TimeUnit('Month');
41
+ TimeUnit.YEAR = new TimeUnit('FullYear');
42
+ return TimeUnit;
43
+ }());
44
+ var get = function (date, timeUnit) { return timeUnit.get(date); };
45
+ var set = function (date, value, timeUnit) {
46
+ timeUnit.set(date, value);
47
+ return date;
48
+ };
49
+ var add = function (date, amount, timeUnit) {
50
+ timeUnit.set(date, timeUnit.get(date) + amount);
51
+ return date;
52
+ };
53
+ var subtract = function (date, amount, timeUnit) { return add(date, -amount, timeUnit); };
54
+ var extend = function (date) {
55
+ var d = date;
56
+ d.get = function (timeUnit) { return get(date, timeUnit); };
57
+ d.set = function (value, timeUnit) { return set(date, value, timeUnit); };
58
+ d.add = function (amount, timeUnit) { return add(date, amount, timeUnit); };
59
+ d.subtract = function (amount, timeUnit) { return subtract(date, amount, timeUnit); };
60
+ d.isBefore = function (after) { return isBefore(date, after); };
61
+ d.isAfter = function (before) { return isAfter(date, before); };
62
+ d.isSameDate = function (another) { return isSameDay(date, another); };
63
+ d.equals = function (another) { return equals(date, another); };
64
+ d.resetTime = function () { return resetTime(date); };
65
+ return d;
66
+ };
67
+ var dateOf = function (date) { return extend(date ? new Date(date) : new Date()); };
68
+ var now = dateOf;
69
+ var copy = dateOf;
70
+ var isSameDay = function (dateA, dateB) { return dateA.getDate() === dateB.getDate() && dateA.getMonth() === dateB.getMonth() && dateA.getFullYear() === dateB.getFullYear(); };
71
+
72
+ export { TimeUnit, add, copy, dateOf, equals, extend, get, isAfter, isBefore, isSameDay, max, min, now, resetTime, set, subtract, timeOf };
73
+ //# sourceMappingURL=DateTools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateTools.js","sources":["./src/DateTools.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAO,IAAM,SAAS,GAAG,UAAC,IAAU,EAAA;IAChC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,IAAA,OAAO,IAAI,CAAA;AACf,EAAE;AACK,IAAM,MAAM,GAAG,UAAC,IAAU,EAAA,EAAK,OAAA,IAAI,CAAC,OAAO,EAAE,CAAA,GAAC;AACxC,IAAA,MAAM,GAAG,UAAC,CAAO,EAAE,CAAO,EAAK,EAAA,OAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAjC,GAAkC;AACjE,IAAA,QAAQ,GAAG,UAAC,CAAO,EAAE,CAAO,EAAK,EAAA,OAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAA/B,GAAgC;AACjE,IAAA,OAAO,GAAG,UAAC,CAAO,EAAE,CAAO,EAAK,EAAA,OAAA,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAA/B,GAAgC;AAChE,IAAA,GAAG,GAAG,UAAC,CAAO,EAAE,CAAO,EAAA;AAChC,IAAA,IAAI,CAAC,CAAC;AAAE,QAAA,OAAO,CAAC,CAAC;AACjB,IAAA,IAAI,CAAC,CAAC;AAAE,QAAA,OAAO,CAAC,CAAC;AACjB,IAAA,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC,EAAE;AACW,IAAA,GAAG,GAAG,UAAC,CAAO,EAAE,CAAO,EAAA;AAChC,IAAA,IAAI,CAAC,CAAC;AAAE,QAAA,OAAO,CAAC,CAAC;AACjB,IAAA,IAAI,CAAC,CAAC;AAAE,QAAA,OAAO,CAAC,CAAC;AACjB,IAAA,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACzC,EAAE;AAEF,IAAA,QAAA,kBAAA,YAAA;AAWI,IAAA,SAAA,QAAA,CAAY,KAAK,EAAA;AACb,QAAA,IAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAC7B,QAAA,IAAM,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;;;QAG7B,IAAI,CAAC,QAAQ,GAAG,YAAA,EAAM,OAAA,KAAK,CAAA,EAAA,CAAC;AAC5B,QAAA,IAAI,CAAC,GAAG,GAAG,UAAC,IAAI,EAAK,EAAA,OAAA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA,EAAA,CAAC;AACpC,QAAA,IAAI,CAAC,GAAG,GAAG,UAAC,IAAI,EAAE,KAAK,EAAK,EAAA,OAAA,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC;KACnD;AAlBM,IAAA,QAAA,CAAA,WAAW,GAAG,IAAI,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC3C,IAAA,QAAA,CAAA,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;AACjC,IAAA,QAAA,CAAA,MAAM,GAAG,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC;AACjC,IAAA,QAAA,CAAA,IAAI,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC7B,IAAA,QAAA,CAAA,GAAG,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC3B,IAAA,QAAA,CAAA,KAAK,GAAG,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC9B,IAAA,QAAA,CAAA,IAAI,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IAc3C,OAAC,QAAA,CAAA;AAAA,CArBD,EAqBC,EAAA;AAEY,IAAA,GAAG,GAAG,UAAC,IAAU,EAAE,QAAkB,EAAA,EAAK,OAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,GAAC;IAC7D,GAAG,GAAG,UAAC,IAAU,EAAE,KAAa,EAAE,QAAkB,EAAA;AAC7D,IAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC1B,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;IAEW,GAAG,GAAG,UAAC,IAAU,EAAE,MAAc,EAAE,QAAkB,EAAA;AAC9D,IAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;AAChD,IAAA,OAAO,IAAI,CAAC;AAChB,EAAE;IAEW,QAAQ,GAAG,UAAC,IAAU,EAAE,MAAc,EAAE,QAAkB,EAAA,EAAW,OAAA,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAA5B,GAA6B;AAcxG,IAAM,MAAM,GAAG,UAAC,IAAS,EAAA;IAC5B,IAAM,CAAC,GAAG,IAAoB,CAAA;AAC9B,IAAA,CAAC,CAAC,GAAG,GAAG,UAAC,QAAQ,EAAK,EAAA,OAAA,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA,EAAA,CAAC;AAC1C,IAAA,CAAC,CAAC,GAAG,GAAG,UAAC,KAAK,EAAE,QAAQ,EAAK,EAAA,OAAA,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAiB,CAAA,EAAA,CAAC;AACxE,IAAA,CAAC,CAAC,GAAG,GAAG,UAAC,MAAM,EAAE,QAAQ,EAAK,EAAA,OAAA,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAiB,CAAA,EAAA,CAAC;AAC1E,IAAA,CAAC,CAAC,QAAQ,GAAG,UAAC,MAAM,EAAE,QAAQ,EAAK,EAAA,OAAA,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAiB,CAAA,EAAA,CAAC;AACpF,IAAA,CAAC,CAAC,QAAQ,GAAG,UAAC,KAAK,EAAK,EAAA,OAAA,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA,EAAA,CAAC;AAC9C,IAAA,CAAC,CAAC,OAAO,GAAG,UAAC,MAAM,EAAK,EAAA,OAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA,EAAA,CAAC;AAC9C,IAAA,CAAC,CAAC,UAAU,GAAG,UAAC,OAAO,EAAK,EAAA,OAAA,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA,EAAA,CAAC;AACrD,IAAA,CAAC,CAAC,MAAM,GAAG,UAAC,OAAO,EAAK,EAAA,OAAA,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA,EAAA,CAAC;IAC9C,CAAC,CAAC,SAAS,GAAG,YAAM,EAAA,OAAA,SAAS,CAAC,IAAI,CAAiB,CAA/B,EAA+B,CAAC;AACpD,IAAA,OAAO,CAAC,CAAC;AACb,EAAE;AACK,IAAM,MAAM,GAAG,UAAC,IAAoB,EAAmB,EAAA,OAAA,MAAM,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAA1C,GAA2C;AAClG,IAAM,GAAG,GAAG,OAAO;AACnB,IAAM,IAAI,GAAG,OAAO;AAEd,IAAA,SAAS,GAAG,UAAC,KAAW,EAAE,KAAW,EAAA,EAAK,OAAA,KAAK,CAAC,OAAO,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,QAAQ,EAAE,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,WAAW,EAAE,CAAA;;;;"}