Latest updates from IceHrmPro

This commit is contained in:
Thilina Pituwala
2020-05-20 18:47:29 +02:00
parent 60c92d7935
commit 7453a58aad
18012 changed files with 2089245 additions and 10173 deletions

View File

@@ -0,0 +1,17 @@
import * as React from 'react';
import { GenerateConfig } from '../../generate';
import { Locale } from '../../interface';
export declare const MONTH_COL_COUNT = 3;
export declare type MonthCellRender<DateType> = (currentDate: DateType, locale: Locale) => React.ReactNode;
export interface MonthBodyProps<DateType> {
prefixCls: string;
locale: Locale;
generateConfig: GenerateConfig<DateType>;
value?: DateType | null;
viewDate: DateType;
disabledDate?: (date: DateType) => boolean;
monthCellRender?: MonthCellRender<DateType>;
onSelect: (value: DateType) => void;
}
declare function MonthBody<DateType>(props: MonthBodyProps<DateType>): JSX.Element;
export default MonthBody;

View File

@@ -0,0 +1,59 @@
import * as React from 'react';
import { isSameMonth } from '../../utils/dateUtil';
import RangeContext from '../../RangeContext';
import useCellClassName from '../../hooks/useCellClassName';
import PanelBody from '../PanelBody';
export var MONTH_COL_COUNT = 3;
var MONTH_ROW_COUNT = 4;
function MonthBody(props) {
var prefixCls = props.prefixCls,
locale = props.locale,
value = props.value,
viewDate = props.viewDate,
generateConfig = props.generateConfig,
monthCellRender = props.monthCellRender;
var _React$useContext = React.useContext(RangeContext),
rangedValue = _React$useContext.rangedValue,
hoverRangedValue = _React$useContext.hoverRangedValue;
var cellPrefixCls = "".concat(prefixCls, "-cell");
var getCellClassName = useCellClassName({
cellPrefixCls: cellPrefixCls,
value: value,
generateConfig: generateConfig,
rangedValue: rangedValue,
hoverRangedValue: hoverRangedValue,
isSameCell: function isSameCell(current, target) {
return isSameMonth(generateConfig, current, target);
},
isInView: function isInView() {
return true;
},
offsetCell: function offsetCell(date, offset) {
return generateConfig.addMonth(date, offset);
}
});
var monthsLocale = locale.shortMonths || (generateConfig.locale.getShortMonths ? generateConfig.locale.getShortMonths(locale.locale) : []);
var baseMonth = generateConfig.setMonth(viewDate, 0);
var getCellNode = monthCellRender ? function (date) {
return monthCellRender(date, locale);
} : undefined;
return React.createElement(PanelBody, Object.assign({}, props, {
rowNum: MONTH_ROW_COUNT,
colNum: MONTH_COL_COUNT,
baseDate: baseMonth,
getCellNode: getCellNode,
getCellText: function getCellText(date) {
return locale.monthFormat ? generateConfig.locale.format(locale.locale, date, locale.monthFormat) : monthsLocale[generateConfig.getMonth(date)];
},
getCellClassName: getCellClassName,
getCellDate: generateConfig.addMonth,
titleCell: function titleCell(date) {
return generateConfig.locale.format(locale.locale, date, 'YYYY-MM');
}
}));
}
export default MonthBody;

View File

@@ -0,0 +1,14 @@
/// <reference types="react" />
import { Locale } from '../../interface';
import { GenerateConfig } from '../../generate';
export interface MonthHeaderProps<DateType> {
prefixCls: string;
viewDate: DateType;
locale: Locale;
generateConfig: GenerateConfig<DateType>;
onPrevYear: () => void;
onNextYear: () => void;
onYearClick: () => void;
}
declare function MonthHeader<DateType>(props: MonthHeaderProps<DateType>): JSX.Element;
export default MonthHeader;

View File

@@ -0,0 +1,34 @@
import * as React from 'react';
import Header from '../Header';
import PanelContext from '../../PanelContext';
function MonthHeader(props) {
var prefixCls = props.prefixCls,
generateConfig = props.generateConfig,
locale = props.locale,
viewDate = props.viewDate,
onNextYear = props.onNextYear,
onPrevYear = props.onPrevYear,
onYearClick = props.onYearClick;
var _React$useContext = React.useContext(PanelContext),
hideHeader = _React$useContext.hideHeader;
if (hideHeader) {
return null;
}
var headerPrefixCls = "".concat(prefixCls, "-header");
return React.createElement(Header, {
prefixCls: headerPrefixCls,
onSuperPrev: onPrevYear,
onSuperNext: onNextYear
}, React.createElement("button", {
type: "button",
key: "year",
onClick: onYearClick,
className: "".concat(prefixCls, "-year-btn")
}, generateConfig.locale.format(locale.locale, viewDate, locale.yearFormat)));
}
export default MonthHeader;

View File

@@ -0,0 +1,8 @@
/// <reference types="react" />
import { MonthCellRender } from './MonthBody';
import { PanelSharedProps } from '../../interface';
export interface MonthPanelProps<DateType> extends PanelSharedProps<DateType> {
monthCellContentRender?: MonthCellRender<DateType>;
}
declare function MonthPanel<DateType>(props: MonthPanelProps<DateType>): JSX.Element;
export default MonthPanel;

View File

@@ -0,0 +1,65 @@
import * as React from 'react';
import MonthHeader from './MonthHeader';
import MonthBody, { MONTH_COL_COUNT } from './MonthBody';
import { createKeyDownHandler } from '../../utils/uiUtil';
function MonthPanel(props) {
var prefixCls = props.prefixCls,
operationRef = props.operationRef,
onViewDateChange = props.onViewDateChange,
generateConfig = props.generateConfig,
value = props.value,
viewDate = props.viewDate,
onPanelChange = props.onPanelChange,
_onSelect = props.onSelect;
var panelPrefixCls = "".concat(prefixCls, "-month-panel"); // ======================= Keyboard =======================
operationRef.current = {
onKeyDown: function onKeyDown(event) {
return createKeyDownHandler(event, {
onLeftRight: function onLeftRight(diff) {
_onSelect(generateConfig.addMonth(value || viewDate, diff), 'key');
},
onCtrlLeftRight: function onCtrlLeftRight(diff) {
_onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
},
onUpDown: function onUpDown(diff) {
_onSelect(generateConfig.addMonth(value || viewDate, diff * MONTH_COL_COUNT), 'key');
},
onEnter: function onEnter() {
onPanelChange('date', value || viewDate);
}
});
}
}; // ==================== View Operation ====================
var onYearChange = function onYearChange(diff) {
var newDate = generateConfig.addYear(viewDate, diff);
onViewDateChange(newDate);
onPanelChange(null, newDate);
};
return React.createElement("div", {
className: panelPrefixCls
}, React.createElement(MonthHeader, Object.assign({}, props, {
prefixCls: prefixCls,
onPrevYear: function onPrevYear() {
onYearChange(-1);
},
onNextYear: function onNextYear() {
onYearChange(1);
},
onYearClick: function onYearClick() {
onPanelChange('year', viewDate);
}
})), React.createElement(MonthBody, Object.assign({}, props, {
prefixCls: prefixCls,
onSelect: function onSelect(date) {
_onSelect(date, 'mouse');
onPanelChange('date', date);
}
})));
}
export default MonthPanel;