@innovaccer/design-system 2.5.0-4 → 2.6.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/.all-contributorsrc +1 -1
- package/.eslintrc.json +53 -0
- package/.github/workflows/jira.yml +1 -2
- package/.github/workflows/main.yml +2 -2
- package/.github/workflows/pull_request.yml +1 -1
- package/.github/workflows/test.yml +1 -1
- package/.husky/commit-msg +4 -0
- package/.prettierrc +2 -2
- package/CHANGELOG.md +38 -88
- package/CONTRIBUTING.md +173 -97
- package/README.md +1 -1
- package/commitlint.config.js +1 -0
- package/core/accessibility/utils/index.ts +5 -0
- package/core/accessibility/utils/isEnterKey.ts +5 -0
- package/core/accessibility/utils/isSpaceKey.ts +5 -0
- package/core/accessibility/utils/useAccessibilityProps.ts +31 -0
- package/core/components/atoms/_chip/__tests__/__snapshots__/_chip.test.tsx.snap +8 -0
- package/core/components/atoms/_chip/index.tsx +2 -0
- package/core/components/atoms/button/__stories__/Alert.story.tsx +8 -1
- package/core/components/atoms/button/__stories__/Cancel.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/IconButtonGroup.story.tsx +12 -3
- package/core/components/atoms/button/__stories__/IconButtonSecondary.story.tsx +6 -1
- package/core/components/atoms/button/__stories__/IconLeftSecondary.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/IconRightSecondary.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/IconTransparent.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/LabelButtonGroup.story.tsx +14 -3
- package/core/components/atoms/button/__stories__/LargeIconExpanded.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/LoadingPrimary.story.tsx +4 -1
- package/core/components/atoms/button/__stories__/Primary.story.tsx +5 -2
- package/core/components/atoms/button/__stories__/SplitButton.story.tsx +6 -1
- package/core/components/atoms/button/__stories__/Transparent.story.tsx +8 -1
- package/core/components/atoms/button/__stories__/index.story.tsx +11 -1
- package/core/components/atoms/button/__stories__/variants/Appearance.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/Expanded.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/Size.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/icon/Icon.story.tsx +15 -0
- package/core/components/atoms/button/__stories__/variants/icon/IconLeft.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/icon/IconRight.story.tsx +4 -0
- package/core/components/atoms/button/__stories__/variants/state/Alert.story.tsx +7 -17
- package/core/components/atoms/button/__stories__/variants/state/Basic.story.tsx +9 -17
- package/core/components/atoms/button/__stories__/variants/state/Primary.story.tsx +7 -17
- package/core/components/atoms/button/__stories__/variants/state/Success.story.tsx +7 -17
- package/core/components/atoms/button/__stories__/variants/state/Transparent.story.tsx +13 -17
- package/core/components/atoms/chipGroup/__tests__/__snapshots__/chipGroup.test.tsx.snap +6 -0
- package/core/components/atoms/collapsible/__stories__/index.story.tsx +2 -2
- package/core/components/atoms/collapsible/__tests__/__snapshots__/Collapsible.test.tsx.snap +8 -0
- package/core/components/atoms/divider/Divider.tsx +44 -0
- package/core/components/atoms/divider/__stories__/BasicDividerInCard.story.tsx +74 -0
- package/core/components/atoms/divider/__stories__/HeaderDividerInCard.story.tsx +35 -0
- package/core/components/atoms/divider/__stories__/IndentedDivider.story.tsx +49 -0
- package/core/components/atoms/divider/__stories__/Vertical.story.tsx +51 -0
- package/core/components/atoms/divider/__stories__/index.story.tsx +91 -0
- package/core/components/atoms/divider/__stories__/variants/HorizontalDivider.story.tsx +27 -0
- package/core/components/atoms/divider/__tests__/Divider.test.tsx +50 -0
- package/core/components/atoms/divider/__tests__/__snapshots__/Divider.test.tsx.snap +53 -0
- package/core/components/atoms/divider/index.tsx +2 -0
- package/core/components/atoms/dropdown/DropdownList.tsx +8 -2
- package/core/components/atoms/dropdown/__stories__/variants/controlledDropdown/MultiSelect.story.tsx +27 -17
- package/core/components/atoms/dropdown/option/DefaultOption.tsx +3 -0
- package/core/components/atoms/dropdown/option/IconOption.tsx +3 -0
- package/core/components/atoms/dropdown/option/IconWithMetaOption.tsx +3 -0
- package/core/components/atoms/dropdown/option/MetaOption.tsx +3 -0
- package/core/components/atoms/editable/Editable.tsx +3 -0
- package/core/components/atoms/icon/Icon.tsx +14 -3
- package/core/components/atoms/icon/__stories__/variants/Image.story.tsx +6 -1
- package/core/components/atoms/icon/__tests__/__snapshots__/Icon.test.tsx.snap +74 -0
- package/core/components/atoms/input/Input.tsx +14 -4
- package/core/components/atoms/input/__stories__/BasicInput.story.tsx +2 -1
- package/core/components/atoms/input/__stories__/InputWithCaption.story.tsx +29 -9
- package/core/components/atoms/input/__stories__/InputWithLabel.story.tsx +11 -3
- package/core/components/atoms/input/__stories__/LabelPosition.story.tsx +8 -4
- package/core/components/atoms/input/__stories__/RequiredVsOptional.story.tsx +12 -8
- package/core/components/atoms/input/__tests__/__snapshots__/Input.test.tsx.snap +19 -0
- package/core/components/atoms/legend/Legend.tsx +3 -0
- package/core/components/atoms/message/__stories__/CustomDescription.tsx +25 -0
- package/core/components/atoms/metricInput/MetricInput.tsx +12 -2
- package/core/components/atoms/metricInput/__stories__/DefaultMetric.story.tsx +8 -2
- package/core/components/atoms/metricInput/__stories__/WithPrefix.story.tsx +6 -2
- package/core/components/atoms/metricInput/__stories__/index.story.tsx +1 -0
- package/core/components/atoms/metricInput/__stories__/variants/Controlled.story.tsx +2 -0
- package/core/components/atoms/metricInput/__stories__/variants/Size.story.tsx +2 -2
- package/core/components/atoms/metricInput/__stories__/withSuffix.story.tsx +6 -2
- package/core/components/atoms/metricInput/__tests__/__snapshots__/MetricInput.test.tsx.snap +20 -4
- package/core/components/atoms/multiSlider/Handle.tsx +3 -0
- package/core/components/atoms/multiSlider/index.tsx +6 -0
- package/core/components/atoms/outsideClick/__stories__/index.story.tsx +1 -1
- package/core/components/atoms/statusHint/StatusHint.tsx +3 -0
- package/core/components/atoms/switchInput/Switch.tsx +10 -4
- package/core/components/atoms/switchInput/__stories__/DefaultSwitch.story.tsx +4 -1
- package/core/components/atoms/switchInput/__stories__/OffState.story.tsx +4 -1
- package/core/components/atoms/switchInput/__stories__/index.story.tsx +26 -3
- package/core/components/atoms/switchInput/__stories__/variants/Size.story.tsx +10 -1
- package/core/components/atoms/switchInput/__stories__/variants/State.story.tsx +9 -2
- package/core/components/atoms/textarea/__stories__/TextareaWithCaption.story.tsx +9 -3
- package/core/components/atoms/textarea/__stories__/defaultTextarea.story.tsx +10 -2
- package/core/components/atoms/textarea/__stories__/index.story.tsx +1 -0
- package/core/components/atoms/textarea/__stories__/variants/Disable.story.tsx +1 -0
- package/core/components/atoms/toast/__tests__/__snapshots__/Toast.test.tsx.snap +30 -0
- package/core/components/css-utilities/Align/Align.story.tsx +1 -1
- package/core/components/css-utilities/Background/Background.story.tsx +1 -1
- package/core/components/css-utilities/Border/Border.story.tsx +1 -1
- package/core/components/css-utilities/Display/Display.story.tsx +1 -1
- package/core/components/css-utilities/Flex/Flex.story.tsx +1 -1
- package/core/components/css-utilities/Miscellaneous/Miscellaneous.story.tsx +1 -1
- package/core/components/css-utilities/Overflow/Overflow.story.tsx +1 -1
- package/core/components/css-utilities/Position/Position.story.tsx +1 -1
- package/core/components/css-utilities/Sizing/Sizing.story.tsx +1 -1
- package/core/components/css-utilities/Spacing/Spacing.story.tsx +1 -1
- package/core/components/molecules/chatMessage/Box.tsx +3 -0
- package/core/components/molecules/chipInput/ChipInput.tsx +3 -0
- package/core/components/molecules/chipInput/__tests__/__snapshots__/ChipInput.test.tsx.snap +12 -0
- package/core/components/molecules/dropzone/Dropzone.tsx +3 -0
- package/core/components/molecules/dropzone/FileSelectorUtils.tsx +1 -1
- package/core/components/molecules/editableChipInput/EditableChipInput.tsx +9 -5
- package/core/components/molecules/editableChipInput/__stories__/Uncontrolled.story.tsx +1 -1
- package/core/components/molecules/editableChipInput/__tests__/__snapshots__/EditableChipInput.test.tsx.snap +8 -0
- package/core/components/molecules/editableDropdown/EditableDropdown.tsx +2 -2
- package/core/components/molecules/editableInput/EditableInput.tsx +13 -4
- package/core/components/molecules/emptyState/EmptyState.tsx +5 -1
- package/core/components/molecules/fileList/FileListItem.tsx +2 -0
- package/core/components/molecules/fileUploader/FileUploaderItem.tsx +2 -0
- package/core/components/molecules/fileUploader/__stories__/index.story.tsx +156 -21
- package/core/components/molecules/inputMask/InputMask.tsx +1 -1
- package/core/components/molecules/inputMask/__tests__/__snapshots__/InputMask.test.tsx.snap +1 -0
- package/core/components/molecules/pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +5 -1
- package/core/components/molecules/stepper/Step.tsx +2 -0
- package/core/components/molecules/tabs/Tabs.tsx +2 -0
- package/core/components/molecules/tabs/TabsWrapper.tsx +2 -0
- package/core/components/molecules/tabs/__stories__/CustomLabels.story.tsx +1 -1
- package/core/components/molecules/verificationCodeInput/VerificationCodeInput.tsx +8 -4
- package/core/components/molecules/verificationCodeInput/__stories__/index.story.tsx +3 -1
- package/core/components/molecules/verificationCodeInput/__tests__/__snapshots__/VerificationCodeInput.test.tsx.snap +1 -0
- package/core/components/organisms/calendar/Calendar.tsx +130 -8
- package/core/components/organisms/calendar/__tests__/Calendar.test.tsx +27 -0
- package/core/components/organisms/choiceList/ChoiceList.tsx +1 -1
- package/core/components/organisms/datePicker/DatePicker.tsx +30 -15
- package/core/components/organisms/datePicker/__tests__/DatePicker.test.tsx +136 -46
- package/core/components/organisms/datePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +4388 -1857
- package/core/components/organisms/dateRangePicker/__tests__/__snapshots__/DateRangePicker.test.tsx.snap +112 -40
- package/core/components/organisms/grid/Cell.tsx +4 -0
- package/core/components/organisms/grid/GridRow.tsx +4 -0
- package/core/components/organisms/grid/__stories__/_common_/fetchData.ts +2 -2
- package/core/components/organisms/horizontalNav/HorizontalNav.tsx +2 -0
- package/core/components/organisms/inlineMessage/InlineMessage.tsx +3 -5
- package/core/components/organisms/inlineMessage/__tests__/__snapshots__/InlineMessage.test.tsx.snap +30 -40
- package/core/components/organisms/navigation/VerticalNavigation.tsx +4 -0
- package/core/components/organisms/table/Table.tsx +1 -0
- package/core/components/organisms/table/__stories__/NestedTableWithNestedCard.story.tsx +4 -1
- package/core/components/organisms/table/__stories__/ResourceTable.story.tsx +3 -2
- package/core/components/organisms/table/__stories__/Selection.story.tsx +2 -2
- package/core/components/organisms/table/__stories__/TableAsDescriptionList.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/TableAsOptionList.story.tsx +1 -1
- package/core/components/organisms/table/__stories__/syncTable.story.tsx +14 -6
- package/core/components/organisms/table/__stories__/variants/nestedRows.story.tsx +5 -2
- package/core/components/organisms/table/__stories__/variants/withHeader.story.tsx +0 -2
- package/core/components/organisms/timePicker/TimePicker.tsx +1 -1
- package/core/components/organisms/timePicker/__tests__/__snapshots__/TimePicker.test.tsx.snap +14 -2
- package/core/components/organisms/verticalNav/MenuItem.tsx +2 -0
- package/core/components/patterns/datePicker/datePickerWithPresets.story.tsx +126 -0
- package/core/components/patterns/dateRangePicker/withCustomPopover.story.tsx +8 -8
- package/core/components/patterns/forms/CreatePassword.story.tsx +1 -1
- package/core/components/patterns/forms/VerificationCodeInput.story.tsx +2 -2
- package/core/components/patterns/table/Table with Header/tableWithHeader.story.jsx +7 -7
- package/core/index.tsx +1 -0
- package/core/index.type.tsx +1 -0
- package/core/utils/Keys.ts +4 -0
- package/core/utils/__tests__/__snapshots__/TS.test.tsx.snap +544 -536
- package/core/utils/docPage/index.tsx +22 -17
- package/core/utils/testHelper.ts +1 -1
- package/core/utils/validators.ts +37 -34
- package/css/dist/index.css +1523 -1402
- package/css/dist/index.css.map +1 -1
- package/css/src/components/Legend.css +7 -7
- package/css/src/components/ProgressBar.css +1 -1
- package/css/src/components/avatarGroup.css +1 -1
- package/css/src/components/backdrop.css +12 -6
- package/css/src/components/badge.css +52 -52
- package/css/src/components/button.css +99 -94
- package/css/src/components/calendar.css +137 -126
- package/css/src/components/card.css +0 -1
- package/css/src/components/cardSubdued.css +3 -5
- package/css/src/components/chat.css +1 -1
- package/css/src/components/checkbox.css +71 -70
- package/css/src/components/chip.css +14 -13
- package/css/src/components/chipGroup.css +5 -5
- package/css/src/components/chipInput.css +1 -1
- package/css/src/components/choiceList.css +4 -4
- package/css/src/components/dateRangePicker.css +13 -13
- package/css/src/components/divider.css +20 -0
- package/css/src/components/dropdown.css +61 -61
- package/css/src/components/dropdownButton.css +36 -36
- package/css/src/components/dropzone.css +16 -20
- package/css/src/components/editableChipInput.css +10 -9
- package/css/src/components/editableDropdown.css +1 -1
- package/css/src/components/editableInput.css +1 -1
- package/css/src/components/emptyState.css +15 -15
- package/css/src/components/fileList.css +44 -45
- package/css/src/components/grid.css +217 -199
- package/css/src/components/horizontalNav.css +0 -1
- package/css/src/components/icon.css +1 -7
- package/css/src/components/inlineMessage.css +2 -1
- package/css/src/components/input.css +62 -62
- package/css/src/components/link.css +1 -1
- package/css/src/components/list.css +10 -10
- package/css/src/components/message.css +69 -70
- package/css/src/components/metaList.css +26 -26
- package/css/src/components/metricInput.css +3 -4
- package/css/src/components/modal.css +1 -1
- package/css/src/components/navigation.css +3 -3
- package/css/src/components/pageHeader.css +1 -2
- package/css/src/components/pagination.css +36 -36
- package/css/src/components/pills.css +19 -19
- package/css/src/components/placeholder.css +10 -5
- package/css/src/components/popover.css +2 -2
- package/css/src/components/progressRing.css +1 -1
- package/css/src/components/radio.css +74 -74
- package/css/src/components/slider.css +5 -5
- package/css/src/components/statusHints.css +15 -15
- package/css/src/components/switch.css +45 -41
- package/css/src/components/table.css +15 -15
- package/css/src/components/tabs.css +53 -53
- package/css/src/components/textarea.css +1 -1
- package/css/src/components/toast.css +53 -53
- package/css/src/components/verificationCodeInput.css +5 -6
- package/css/src/components/verticalNav.css +1 -2
- package/css/src/core/base.css +3 -0
- package/css/src/core/typography.css +1 -1
- package/css/src/core/utilities.css +1 -1
- package/css/src/tokens/index.css +63 -63
- package/css/src/utils/align.css +1 -1
- package/css/src/utils/background.css +1 -1
- package/css/src/utils/cursor.css +1 -1
- package/css/src/utils/display.css +1 -1
- package/css/src/utils/flex.css +1 -1
- package/css/src/utils/grid.css +1 -1
- package/css/src/utils/overflow.css +1 -1
- package/css/src/utils/position.css +1 -1
- package/css/src/utils/spacing.css +1 -1
- package/css/src/utils/utility.css +13 -13
- package/css/src/variables/index.css +1 -1
- package/dist/core/accessibility/utils/index.d.ts +4 -0
- package/dist/core/accessibility/utils/isEnterKey.d.ts +3 -0
- package/dist/core/accessibility/utils/isSpaceKey.d.ts +3 -0
- package/dist/core/accessibility/utils/useAccessibilityProps.d.ts +15 -0
- package/dist/core/components/atoms/divider/Divider.d.ts +15 -0
- package/dist/core/components/atoms/divider/index.d.ts +2 -0
- package/dist/core/components/atoms/icon/Icon.d.ts +3 -1
- package/dist/core/components/atoms/input/Input.d.ts +1 -1
- package/dist/core/components/atoms/popperWrapper/PopperWrapper.d.ts +50 -49
- package/dist/core/components/atoms/switchInput/Switch.d.ts +2 -1
- package/dist/core/components/organisms/calendar/Calendar.d.ts +31 -0
- package/dist/core/components/organisms/datePicker/DatePicker.d.ts +2 -0
- package/dist/core/components/patterns/datePicker/datePickerWithPresets.story.d.ts +15 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.type.d.ts +1 -0
- package/dist/index.esm.js +829 -495
- package/dist/index.js +313 -144
- package/dist/index.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.br +0 -0
- package/dist/index.umd.js.gz +0 -0
- package/package.json +17 -14
- package/.husky/prepare-commit-msg +0 -6
- package/tslint.json +0 -30
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import { Title,
|
|
4
|
+
import { Title, Description, Canvas, ArgsTable } from '@storybook/addon-docs/blocks';
|
|
5
5
|
import { renderToStaticMarkup } from 'react-dom/server';
|
|
6
6
|
import reactElementToJSXString from 'react-element-to-jsx-string';
|
|
7
7
|
import { html as beautifyHTML } from 'js-beautify';
|
|
8
8
|
import SyntaxHighlighter from 'react-syntax-highlighter';
|
|
9
|
-
import {
|
|
9
|
+
import { vs2015 } from 'react-syntax-highlighter/dist/esm/styles/hljs';
|
|
10
10
|
import * as DS from '@/';
|
|
11
11
|
import { Button, Card, TabsWrapper, Tab, Heading } from '@/index';
|
|
12
12
|
import vsDark from 'prism-react-renderer/themes/vsDark';
|
|
13
|
-
import { resetComponents, Story as PureStory } from '@storybook/components';
|
|
14
13
|
import { LiveProvider, LiveEditor, LiveError, LivePreview, withLive } from 'react-live';
|
|
15
14
|
import openSandbox from './sandbox';
|
|
16
15
|
import generateImports from './generateImports';
|
|
@@ -24,13 +23,6 @@ export interface Example {
|
|
|
24
23
|
component: React.ReactNode;
|
|
25
24
|
}
|
|
26
25
|
|
|
27
|
-
interface DocPageProps {
|
|
28
|
-
title?: string;
|
|
29
|
-
description?: React.ReactNode;
|
|
30
|
-
props?: PropsProps;
|
|
31
|
-
customCode?: string;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
26
|
const beautifyHTMLOptions = {
|
|
35
27
|
indent_size: 2,
|
|
36
28
|
wrap_line_length: 0,
|
|
@@ -50,14 +42,16 @@ const beautifyJSXOptions = {
|
|
|
50
42
|
};
|
|
51
43
|
|
|
52
44
|
const JSXtoStringOptions = {
|
|
53
|
-
filterProps: (val: any
|
|
45
|
+
filterProps: (val: any) => {
|
|
54
46
|
if (!val) return false;
|
|
55
47
|
if (val && val.name === 'actionHandler') return false;
|
|
56
48
|
// if(val && typeof val === 'function') return false;
|
|
57
49
|
return true;
|
|
58
50
|
},
|
|
59
51
|
showFunctions: true,
|
|
60
|
-
functionValue: (
|
|
52
|
+
functionValue: () => () => {
|
|
53
|
+
return;
|
|
54
|
+
},
|
|
61
55
|
// maxInlineAttributesLineLength: 10,
|
|
62
56
|
showDefaultProps: false,
|
|
63
57
|
useBooleanShorthandSyntax: false,
|
|
@@ -162,9 +156,8 @@ ${jsx
|
|
|
162
156
|
};
|
|
163
157
|
|
|
164
158
|
const StoryComp = (props) => {
|
|
165
|
-
const { customCode, noHtml,
|
|
166
|
-
const { story
|
|
167
|
-
const sp = story.parameters;
|
|
159
|
+
const { customCode, noHtml, noSandbox, isEmbed } = props;
|
|
160
|
+
const { story } = getStory();
|
|
168
161
|
// const comp = sp.storySource.source;
|
|
169
162
|
const comp = story.getOriginal()();
|
|
170
163
|
const html = !noHtml ? beautifyHTML(renderToStaticMarkup(comp), beautifyHTMLOptions) : '';
|
|
@@ -194,7 +187,9 @@ const StoryComp = (props) => {
|
|
|
194
187
|
try {
|
|
195
188
|
const htmlValue = beautifyHTML(renderToStaticMarkup(<Element />), beautifyHTMLOptions);
|
|
196
189
|
setHtmlCode(htmlValue);
|
|
197
|
-
} catch (e) {
|
|
190
|
+
} catch (e) {
|
|
191
|
+
return;
|
|
192
|
+
}
|
|
198
193
|
}
|
|
199
194
|
}, [currentTab]);
|
|
200
195
|
|
|
@@ -225,7 +220,7 @@ const StoryComp = (props) => {
|
|
|
225
220
|
if (!isEmbed) {
|
|
226
221
|
actions.push({
|
|
227
222
|
title: `${!isExpanded ? 'Show' : 'Hide'} code`,
|
|
228
|
-
onClick: (
|
|
223
|
+
onClick: () => {
|
|
229
224
|
setIsExpanded(!isExpanded);
|
|
230
225
|
},
|
|
231
226
|
});
|
|
@@ -304,6 +299,7 @@ export const docPage = () => {
|
|
|
304
299
|
noProps = isEmbed,
|
|
305
300
|
noSandbox,
|
|
306
301
|
imports,
|
|
302
|
+
a11yProps,
|
|
307
303
|
} = sp.docs.docPage || {};
|
|
308
304
|
const { component: { displayName } = {} } = sp;
|
|
309
305
|
const pageClassnames = classNames({
|
|
@@ -331,6 +327,15 @@ export const docPage = () => {
|
|
|
331
327
|
/>
|
|
332
328
|
)}
|
|
333
329
|
|
|
330
|
+
{a11yProps && (
|
|
331
|
+
<>
|
|
332
|
+
<br />
|
|
333
|
+
<br />
|
|
334
|
+
<Heading appearance="subtle">Accessibility</Heading>
|
|
335
|
+
<Description>{a11yProps}</Description>
|
|
336
|
+
</>
|
|
337
|
+
)}
|
|
338
|
+
|
|
334
339
|
{!noProps && (
|
|
335
340
|
<>
|
|
336
341
|
<br />
|
package/core/utils/testHelper.ts
CHANGED
|
@@ -30,7 +30,7 @@ const iterateComb = (
|
|
|
30
30
|
requiredComb.forEach((reqProps) => {
|
|
31
31
|
optionalComb.forEach((optProps) => {
|
|
32
32
|
const allProps = { ...reqProps, ...optProps };
|
|
33
|
-
if (
|
|
33
|
+
if (testFunc) testFunc(allProps);
|
|
34
34
|
else combinations.push(allProps);
|
|
35
35
|
});
|
|
36
36
|
});
|
package/core/utils/validators.ts
CHANGED
|
@@ -9,7 +9,7 @@ export const isValid = (validators: Validators, ...value: any[]) => {
|
|
|
9
9
|
|
|
10
10
|
export const date = (val: string, format: string): boolean => {
|
|
11
11
|
const validate = (date: number, month: number, year: number): boolean => {
|
|
12
|
-
|
|
12
|
+
const monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
|
|
13
13
|
|
|
14
14
|
// Adjust for leap years
|
|
15
15
|
if (year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) monthLength[1] = 29;
|
|
@@ -19,48 +19,51 @@ export const date = (val: string, format: string): boolean => {
|
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
switch (format) {
|
|
22
|
-
case 'dd/mm/yyyy':
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
case 'dd/mm/yyyy': {
|
|
23
|
+
const p = val.split('/');
|
|
24
|
+
const date = +p[0] || 1;
|
|
25
|
+
const month = +p[1] || 1;
|
|
26
|
+
const year = +p[2] || 1900;
|
|
27
27
|
return validate(date, month, year);
|
|
28
|
-
|
|
29
|
-
case 'mm/dd/yyyy':
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
}
|
|
29
|
+
case 'mm/dd/yyyy': {
|
|
30
|
+
const p = val.split('/');
|
|
31
|
+
const date = +p[1] || 1;
|
|
32
|
+
const month = +p[0] || 1;
|
|
33
|
+
const year = +p[2] || 1900;
|
|
34
34
|
return validate(date, month, year);
|
|
35
|
+
}
|
|
35
36
|
|
|
36
|
-
case 'yyyy/mm/dd':
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
case 'yyyy/mm/dd': {
|
|
38
|
+
const p = val.split('/');
|
|
39
|
+
const date = +p[2] || 1;
|
|
40
|
+
const month = +p[1] || 1;
|
|
41
|
+
const year = +p[0] || 1900;
|
|
41
42
|
return validate(date, month, year);
|
|
42
|
-
|
|
43
|
-
case 'dd-mm-yyyy':
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
}
|
|
44
|
+
case 'dd-mm-yyyy': {
|
|
45
|
+
const p = val.split('-');
|
|
46
|
+
const date = +p[0] || 1;
|
|
47
|
+
const month = +p[1] || 1;
|
|
48
|
+
const year = +p[2] || 1900;
|
|
48
49
|
return validate(date, month, year);
|
|
50
|
+
}
|
|
49
51
|
|
|
50
|
-
case 'mm-dd-yyyy':
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
case 'mm-dd-yyyy': {
|
|
53
|
+
const p = val.split('-');
|
|
54
|
+
const date = +p[1] || 1;
|
|
55
|
+
const month = +p[0] || 1;
|
|
56
|
+
const year = +p[2] || 1900;
|
|
55
57
|
return validate(date, month, year);
|
|
58
|
+
}
|
|
56
59
|
|
|
57
|
-
case 'yyyy-mm-dd':
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
case 'yyyy-mm-dd': {
|
|
61
|
+
const p = val.split('-');
|
|
62
|
+
const date = +p[2] || 1;
|
|
63
|
+
const month = +p[1] || 1;
|
|
64
|
+
const year = +p[0] || 1900;
|
|
62
65
|
return validate(date, month, year);
|
|
63
|
-
|
|
66
|
+
}
|
|
64
67
|
default:
|
|
65
68
|
return false;
|
|
66
69
|
}
|