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,15 @@
/// <reference types="react" />
import { GenerateConfig } from '../../generate';
import { Locale, NullableDateType } from '../../interface';
export declare const YEAR_COL_COUNT = 3;
export interface YearBodyProps<DateType> {
prefixCls: string;
locale: Locale;
generateConfig: GenerateConfig<DateType>;
value?: NullableDateType<DateType>;
viewDate: DateType;
disabledDate?: (date: DateType) => boolean;
onSelect: (value: DateType) => void;
}
declare function YearBody<DateType>(props: YearBodyProps<DateType>): JSX.Element;
export default YearBody;

View File

@@ -0,0 +1,60 @@
import * as React from 'react';
import { YEAR_DECADE_COUNT } from '.';
import useCellClassName from '../../hooks/useCellClassName';
import { isSameYear } from '../../utils/dateUtil';
import RangeContext from '../../RangeContext';
import PanelBody from '../PanelBody';
export var YEAR_COL_COUNT = 3;
var YEAR_ROW_COUNT = 4;
function YearBody(props) {
var prefixCls = props.prefixCls,
value = props.value,
viewDate = props.viewDate,
locale = props.locale,
generateConfig = props.generateConfig;
var _React$useContext = React.useContext(RangeContext),
rangedValue = _React$useContext.rangedValue,
hoverRangedValue = _React$useContext.hoverRangedValue;
var yearPrefixCls = "".concat(prefixCls, "-cell"); // =============================== Year ===============================
var yearNumber = generateConfig.getYear(viewDate);
var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;
var endYear = startYear + YEAR_DECADE_COUNT - 1;
var baseYear = generateConfig.setYear(viewDate, startYear - Math.ceil((YEAR_COL_COUNT * YEAR_ROW_COUNT - YEAR_DECADE_COUNT) / 2));
var isInView = function isInView(date) {
var currentYearNumber = generateConfig.getYear(date);
return startYear <= currentYearNumber && currentYearNumber <= endYear;
};
var getCellClassName = useCellClassName({
cellPrefixCls: yearPrefixCls,
value: value,
generateConfig: generateConfig,
rangedValue: rangedValue,
hoverRangedValue: hoverRangedValue,
isSameCell: function isSameCell(current, target) {
return isSameYear(generateConfig, current, target);
},
isInView: isInView,
offsetCell: function offsetCell(date, offset) {
return generateConfig.addYear(date, offset);
}
});
return React.createElement(PanelBody, Object.assign({}, props, {
rowNum: YEAR_ROW_COUNT,
colNum: YEAR_COL_COUNT,
baseDate: baseYear,
getCellText: generateConfig.getYear,
getCellClassName: getCellClassName,
getCellDate: generateConfig.addYear,
titleCell: function titleCell(date) {
return generateConfig.locale.format(locale.locale, date, 'YYYY');
}
}));
}
export default YearBody;

View File

@@ -0,0 +1,13 @@
/// <reference types="react" />
import { GenerateConfig } from '../../generate';
export interface YearHeaderProps<DateType> {
prefixCls: string;
viewDate: DateType;
value?: DateType | null;
generateConfig: GenerateConfig<DateType>;
onPrevDecade: () => void;
onNextDecade: () => void;
onDecadeClick: () => void;
}
declare function YearHeader<DateType>(props: YearHeaderProps<DateType>): JSX.Element;
export default YearHeader;

View File

@@ -0,0 +1,37 @@
import * as React from 'react';
import Header from '../Header';
import { YEAR_DECADE_COUNT } from '.';
import PanelContext from '../../PanelContext';
function YearHeader(props) {
var prefixCls = props.prefixCls,
generateConfig = props.generateConfig,
viewDate = props.viewDate,
onPrevDecade = props.onPrevDecade,
onNextDecade = props.onNextDecade,
onDecadeClick = props.onDecadeClick;
var _React$useContext = React.useContext(PanelContext),
hideHeader = _React$useContext.hideHeader;
if (hideHeader) {
return null;
}
var headerPrefixCls = "".concat(prefixCls, "-header");
var yearNumber = generateConfig.getYear(viewDate);
var startYear = Math.floor(yearNumber / YEAR_DECADE_COUNT) * YEAR_DECADE_COUNT;
var endYear = startYear + YEAR_DECADE_COUNT - 1;
return React.createElement(Header, Object.assign({}, props, {
prefixCls: headerPrefixCls,
onSuperPrev: onPrevDecade,
onSuperNext: onNextDecade
}), React.createElement("button", {
type: "button",
key: "year",
onClick: onDecadeClick,
className: "".concat(prefixCls, "-decade-btn")
}, startYear, "-", endYear));
}
export default YearHeader;

View File

@@ -0,0 +1,8 @@
/// <reference types="react" />
import { PanelSharedProps, PanelMode } from '../../interface';
export interface YearPanelProps<DateType> extends PanelSharedProps<DateType> {
sourceMode: PanelMode;
}
export declare const YEAR_DECADE_COUNT = 10;
declare function YearPanel<DateType>(props: YearPanelProps<DateType>): JSX.Element;
export default YearPanel;

View File

@@ -0,0 +1,67 @@
import * as React from 'react';
import YearHeader from './YearHeader';
import YearBody, { YEAR_COL_COUNT } from './YearBody';
import { createKeyDownHandler } from '../../utils/uiUtil';
export var YEAR_DECADE_COUNT = 10;
function YearPanel(props) {
var prefixCls = props.prefixCls,
operationRef = props.operationRef,
onViewDateChange = props.onViewDateChange,
generateConfig = props.generateConfig,
value = props.value,
viewDate = props.viewDate,
sourceMode = props.sourceMode,
_onSelect = props.onSelect,
onPanelChange = props.onPanelChange;
var panelPrefixCls = "".concat(prefixCls, "-year-panel"); // ======================= Keyboard =======================
operationRef.current = {
onKeyDown: function onKeyDown(event) {
return createKeyDownHandler(event, {
onLeftRight: function onLeftRight(diff) {
_onSelect(generateConfig.addYear(value || viewDate, diff), 'key');
},
onCtrlLeftRight: function onCtrlLeftRight(diff) {
_onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_DECADE_COUNT), 'key');
},
onUpDown: function onUpDown(diff) {
_onSelect(generateConfig.addYear(value || viewDate, diff * YEAR_COL_COUNT), 'key');
},
onEnter: function onEnter() {
onPanelChange(sourceMode === 'date' ? 'date' : 'month', value || viewDate);
}
});
}
}; // ==================== View Operation ====================
var onDecadeChange = function onDecadeChange(diff) {
var newDate = generateConfig.addYear(viewDate, diff * 10);
onViewDateChange(newDate);
onPanelChange(null, newDate);
};
return React.createElement("div", {
className: panelPrefixCls
}, React.createElement(YearHeader, Object.assign({}, props, {
prefixCls: prefixCls,
onPrevDecade: function onPrevDecade() {
onDecadeChange(-1);
},
onNextDecade: function onNextDecade() {
onDecadeChange(1);
},
onDecadeClick: function onDecadeClick() {
onPanelChange('decade', viewDate);
}
})), React.createElement(YearBody, Object.assign({}, props, {
prefixCls: prefixCls,
onSelect: function onSelect(date) {
onPanelChange(sourceMode === 'date' ? 'date' : 'month', date);
_onSelect(date, 'mouse');
}
})));
}
export default YearPanel;