@transferwise/components 0.0.0-experimental-7ad2fa6 → 0.0.0-experimental-0d4f275
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/build/accordion/AccordionItem/AccordionItem.js +3 -22
- package/build/accordion/AccordionItem/AccordionItem.js.map +1 -1
- package/build/accordion/AccordionItem/AccordionItem.mjs +3 -22
- package/build/accordion/AccordionItem/AccordionItem.mjs.map +1 -1
- package/build/actionButton/ActionButton.js +1 -22
- package/build/actionButton/ActionButton.js.map +1 -1
- package/build/actionButton/ActionButton.mjs +1 -22
- package/build/actionButton/ActionButton.mjs.map +1 -1
- package/build/actionOption/ActionOption.js +2 -24
- package/build/actionOption/ActionOption.js.map +1 -1
- package/build/actionOption/ActionOption.mjs +2 -24
- package/build/actionOption/ActionOption.mjs.map +1 -1
- package/build/alert/Alert.js +5 -21
- package/build/alert/Alert.js.map +1 -1
- package/build/alert/Alert.mjs +5 -21
- package/build/alert/Alert.mjs.map +1 -1
- package/build/alert/inlineMarkdown/InlineMarkdown.js +2 -25
- package/build/alert/inlineMarkdown/InlineMarkdown.js.map +1 -1
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs +2 -25
- package/build/alert/inlineMarkdown/InlineMarkdown.mjs.map +1 -1
- package/build/avatar/Avatar.js +2 -23
- package/build/avatar/Avatar.js.map +1 -1
- package/build/avatar/Avatar.mjs +2 -23
- package/build/avatar/Avatar.mjs.map +1 -1
- package/build/avatarWrapper/AvatarWrapper.js +3 -23
- package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
- package/build/avatarWrapper/AvatarWrapper.mjs +3 -23
- package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -1
- package/build/badge/Badge.js +2 -23
- package/build/badge/Badge.js.map +1 -1
- package/build/badge/Badge.mjs +2 -23
- package/build/badge/Badge.mjs.map +1 -1
- package/build/button/Button.js +3 -25
- package/build/button/Button.js.map +1 -1
- package/build/button/Button.messages.js.map +1 -1
- package/build/button/Button.messages.mjs.map +1 -1
- package/build/button/Button.mjs +3 -25
- package/build/button/Button.mjs.map +1 -1
- package/build/button/classMap.js +0 -24
- package/build/button/classMap.js.map +1 -1
- package/build/button/classMap.mjs +0 -24
- package/build/button/classMap.mjs.map +1 -1
- package/build/button/legacyUtils/legacyUtils.js +8 -29
- package/build/button/legacyUtils/legacyUtils.js.map +1 -1
- package/build/button/legacyUtils/legacyUtils.mjs +8 -29
- package/build/button/legacyUtils/legacyUtils.mjs.map +1 -1
- package/build/card/Card.js +3 -23
- package/build/card/Card.js.map +1 -1
- package/build/card/Card.mjs +3 -23
- package/build/card/Card.mjs.map +1 -1
- package/build/checkbox/Checkbox.js +2 -24
- package/build/checkbox/Checkbox.js.map +1 -1
- package/build/checkbox/Checkbox.mjs +2 -24
- package/build/checkbox/Checkbox.mjs.map +1 -1
- package/build/checkboxOption/CheckboxOption.js +1 -1
- package/build/checkboxOption/CheckboxOption.mjs +1 -1
- package/build/chevron/Chevron.js +1 -21
- package/build/chevron/Chevron.js.map +1 -1
- package/build/chevron/Chevron.mjs +1 -21
- package/build/chevron/Chevron.mjs.map +1 -1
- package/build/chips/Chip.js +1 -19
- package/build/chips/Chip.js.map +1 -1
- package/build/chips/Chip.mjs +1 -19
- package/build/chips/Chip.mjs.map +1 -1
- package/build/circularButton/CircularButton.js +4 -23
- package/build/circularButton/CircularButton.js.map +1 -1
- package/build/circularButton/CircularButton.mjs +4 -23
- package/build/circularButton/CircularButton.mjs.map +1 -1
- package/build/common/bottomSheet/BottomSheet.js +2 -3
- package/build/common/bottomSheet/BottomSheet.js.map +1 -1
- package/build/common/bottomSheet/BottomSheet.mjs +2 -3
- package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.js +10 -10
- package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +1 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +10 -10
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +1 -1
- package/build/common/locale/index.js +0 -24
- package/build/common/locale/index.js.map +1 -1
- package/build/common/locale/index.mjs +0 -24
- package/build/common/locale/index.mjs.map +1 -1
- package/build/common/panel/Panel.js +2 -23
- package/build/common/panel/Panel.js.map +1 -1
- package/build/common/panel/Panel.mjs +2 -23
- package/build/common/panel/Panel.mjs.map +1 -1
- package/build/common/responsivePanel/ResponsivePanel.js +3 -27
- package/build/common/responsivePanel/ResponsivePanel.js.map +1 -1
- package/build/common/responsivePanel/ResponsivePanel.mjs +3 -27
- package/build/common/responsivePanel/ResponsivePanel.mjs.map +1 -1
- package/build/criticalBanner/CriticalCommsBanner.js +3 -22
- package/build/criticalBanner/CriticalCommsBanner.js.map +1 -1
- package/build/criticalBanner/CriticalCommsBanner.mjs +3 -22
- package/build/criticalBanner/CriticalCommsBanner.mjs.map +1 -1
- package/build/dateInput/DateInput.js +5 -22
- package/build/dateInput/DateInput.js.map +1 -1
- package/build/dateInput/DateInput.mjs +5 -22
- package/build/dateInput/DateInput.mjs.map +1 -1
- package/build/dateLookup/DateLookup.js +6 -24
- package/build/dateLookup/DateLookup.js.map +1 -1
- package/build/dateLookup/DateLookup.mjs +6 -24
- package/build/dateLookup/DateLookup.mjs.map +1 -1
- package/build/dateLookup/dateHeader/DateHeader.js +5 -26
- package/build/dateLookup/dateHeader/DateHeader.js.map +1 -1
- package/build/dateLookup/dateHeader/DateHeader.mjs +5 -26
- package/build/dateLookup/dateHeader/DateHeader.mjs.map +1 -1
- package/build/dateLookup/dateTrigger/DateTrigger.js +3 -19
- package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
- package/build/dateLookup/dateTrigger/DateTrigger.mjs +3 -19
- package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
- package/build/decision/Decision.js +3 -24
- package/build/decision/Decision.js.map +1 -1
- package/build/decision/Decision.mjs +3 -24
- package/build/decision/Decision.mjs.map +1 -1
- package/build/definitionList/DefinitionList.js +1 -23
- package/build/definitionList/DefinitionList.js.map +1 -1
- package/build/definitionList/DefinitionList.mjs +1 -23
- package/build/definitionList/DefinitionList.mjs.map +1 -1
- package/build/dimmer/Dimmer.js +2 -24
- package/build/dimmer/Dimmer.js.map +1 -1
- package/build/dimmer/Dimmer.mjs +2 -24
- package/build/dimmer/Dimmer.mjs.map +1 -1
- package/build/display/Display.js +1 -23
- package/build/display/Display.js.map +1 -1
- package/build/display/Display.mjs +1 -23
- package/build/display/Display.mjs.map +1 -1
- package/build/drawer/Drawer.js +3 -22
- package/build/drawer/Drawer.js.map +1 -1
- package/build/drawer/Drawer.mjs +3 -22
- package/build/drawer/Drawer.mjs.map +1 -1
- package/build/field/Field.js +2 -23
- package/build/field/Field.js.map +1 -1
- package/build/field/Field.mjs +2 -23
- package/build/field/Field.mjs.map +1 -1
- package/build/flowNavigation/FlowNavigation.js +2 -19
- package/build/flowNavigation/FlowNavigation.js.map +1 -1
- package/build/flowNavigation/FlowNavigation.mjs +2 -19
- package/build/flowNavigation/FlowNavigation.mjs.map +1 -1
- package/build/header/Header.js +2 -24
- package/build/header/Header.js.map +1 -1
- package/build/header/Header.mjs +2 -24
- package/build/header/Header.mjs.map +1 -1
- package/build/image/Image.js +1 -4
- package/build/image/Image.js.map +1 -1
- package/build/image/Image.mjs +1 -4
- package/build/image/Image.mjs.map +1 -1
- package/build/index.js +62 -69
- package/build/index.js.map +1 -1
- package/build/index.mjs +20 -27
- package/build/index.mjs.map +1 -1
- package/build/info/Info.js +3 -21
- package/build/info/Info.js.map +1 -1
- package/build/info/Info.mjs +3 -21
- package/build/info/Info.mjs.map +1 -1
- package/build/inlineAlert/InlineAlert.js +3 -24
- package/build/inlineAlert/InlineAlert.js.map +1 -1
- package/build/inlineAlert/InlineAlert.mjs +3 -24
- package/build/inlineAlert/InlineAlert.mjs.map +1 -1
- package/build/inputs/SearchInput.js +2 -23
- package/build/inputs/SearchInput.js.map +1 -1
- package/build/inputs/SearchInput.mjs +2 -23
- package/build/inputs/SearchInput.mjs.map +1 -1
- package/build/instructionsList/InstructionsList.js +1 -22
- package/build/instructionsList/InstructionsList.js.map +1 -1
- package/build/instructionsList/InstructionsList.mjs +1 -22
- package/build/instructionsList/InstructionsList.mjs.map +1 -1
- package/build/loader/Loader.js +1 -22
- package/build/loader/Loader.js.map +1 -1
- package/build/loader/Loader.mjs +1 -22
- package/build/loader/Loader.mjs.map +1 -1
- package/build/markdown/Markdown.js +1 -24
- package/build/markdown/Markdown.js.map +1 -1
- package/build/markdown/Markdown.mjs +1 -24
- package/build/markdown/Markdown.mjs.map +1 -1
- package/build/modal/Modal.js +5 -22
- package/build/modal/Modal.js.map +1 -1
- package/build/modal/Modal.mjs +5 -22
- package/build/modal/Modal.mjs.map +1 -1
- package/build/moneyInput/MoneyInput.js +3 -22
- package/build/moneyInput/MoneyInput.js.map +1 -1
- package/build/moneyInput/MoneyInput.mjs +3 -22
- package/build/moneyInput/MoneyInput.mjs.map +1 -1
- package/build/navigationOption/NavigationOption.js +2 -23
- package/build/navigationOption/NavigationOption.js.map +1 -1
- package/build/navigationOption/NavigationOption.mjs +2 -23
- package/build/navigationOption/NavigationOption.mjs.map +1 -1
- package/build/nudge/Nudge.js +1 -19
- package/build/nudge/Nudge.js.map +1 -1
- package/build/nudge/Nudge.mjs +1 -19
- package/build/nudge/Nudge.mjs.map +1 -1
- package/build/overlayHeader/OverlayHeader.js +1 -19
- package/build/overlayHeader/OverlayHeader.js.map +1 -1
- package/build/overlayHeader/OverlayHeader.mjs +1 -19
- package/build/overlayHeader/OverlayHeader.mjs.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.js +2 -23
- package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs +2 -23
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
- package/build/popover/Popover.js +4 -24
- package/build/popover/Popover.js.map +1 -1
- package/build/popover/Popover.mjs +4 -24
- package/build/popover/Popover.mjs.map +1 -1
- package/build/processIndicator/ProcessIndicator.js +1 -22
- package/build/processIndicator/ProcessIndicator.js.map +1 -1
- package/build/processIndicator/ProcessIndicator.mjs +1 -22
- package/build/processIndicator/ProcessIndicator.mjs.map +1 -1
- package/build/progressBar/ProgressBar.js +2 -24
- package/build/progressBar/ProgressBar.js.map +1 -1
- package/build/progressBar/ProgressBar.mjs +2 -24
- package/build/progressBar/ProgressBar.mjs.map +1 -1
- package/build/promoCard/PromoCard.js +2 -22
- package/build/promoCard/PromoCard.js.map +1 -1
- package/build/promoCard/PromoCard.mjs +2 -22
- package/build/promoCard/PromoCard.mjs.map +1 -1
- package/build/promoCard/PromoCardIndicator.js +1 -22
- package/build/promoCard/PromoCardIndicator.js.map +1 -1
- package/build/promoCard/PromoCardIndicator.mjs +1 -22
- package/build/promoCard/PromoCardIndicator.mjs.map +1 -1
- package/build/provider/Provider.js +2 -25
- package/build/provider/Provider.js.map +1 -1
- package/build/provider/Provider.mjs +2 -25
- package/build/provider/Provider.mjs.map +1 -1
- package/build/radio/Radio.js +2 -24
- package/build/radio/Radio.js.map +1 -1
- package/build/radio/Radio.mjs +2 -24
- package/build/radio/Radio.mjs.map +1 -1
- package/build/segmentedControl/SegmentedControl.js +1 -22
- package/build/segmentedControl/SegmentedControl.js.map +1 -1
- package/build/segmentedControl/SegmentedControl.mjs +1 -22
- package/build/segmentedControl/SegmentedControl.mjs.map +1 -1
- package/build/select/Select.js +4 -26
- package/build/select/Select.js.map +1 -1
- package/build/select/Select.mjs +4 -26
- package/build/select/Select.mjs.map +1 -1
- package/build/select/option/Option.js +1 -22
- package/build/select/option/Option.js.map +1 -1
- package/build/select/option/Option.mjs +1 -22
- package/build/select/option/Option.mjs.map +1 -1
- package/build/selectOption/SelectOption.js +6 -24
- package/build/selectOption/SelectOption.js.map +1 -1
- package/build/selectOption/SelectOption.mjs +6 -24
- package/build/selectOption/SelectOption.mjs.map +1 -1
- package/build/statusIcon/StatusIcon.js +4 -22
- package/build/statusIcon/StatusIcon.js.map +1 -1
- package/build/statusIcon/StatusIcon.mjs +4 -22
- package/build/statusIcon/StatusIcon.mjs.map +1 -1
- package/build/stepper/Stepper.js +3 -25
- package/build/stepper/Stepper.js.map +1 -1
- package/build/stepper/Stepper.mjs +3 -25
- package/build/stepper/Stepper.mjs.map +1 -1
- package/build/stepper/deviceDetection.js +2 -3
- package/build/stepper/deviceDetection.js.map +1 -1
- package/build/stepper/deviceDetection.mjs +2 -3
- package/build/stepper/deviceDetection.mjs.map +1 -1
- package/build/sticky/Sticky.js +2 -25
- package/build/sticky/Sticky.js.map +1 -1
- package/build/sticky/Sticky.mjs +2 -25
- package/build/sticky/Sticky.mjs.map +1 -1
- package/build/summary/Summary.js +5 -21
- package/build/summary/Summary.js.map +1 -1
- package/build/summary/Summary.mjs +5 -21
- package/build/summary/Summary.mjs.map +1 -1
- package/build/tabs/Tabs.js +3 -23
- package/build/tabs/Tabs.js.map +1 -1
- package/build/tabs/Tabs.mjs +3 -23
- package/build/tabs/Tabs.mjs.map +1 -1
- package/build/tile/Tile.js +2 -24
- package/build/tile/Tile.js.map +1 -1
- package/build/tile/Tile.mjs +2 -24
- package/build/tile/Tile.mjs.map +1 -1
- package/build/title/Title.js +1 -23
- package/build/title/Title.js.map +1 -1
- package/build/title/Title.mjs +1 -23
- package/build/title/Title.mjs.map +1 -1
- package/build/tooltip/Tooltip.js +1 -22
- package/build/tooltip/Tooltip.js.map +1 -1
- package/build/tooltip/Tooltip.mjs +1 -22
- package/build/tooltip/Tooltip.mjs.map +1 -1
- package/build/typeahead/Typeahead.js +4 -22
- package/build/typeahead/Typeahead.js.map +1 -1
- package/build/typeahead/Typeahead.mjs +4 -22
- package/build/typeahead/Typeahead.mjs.map +1 -1
- package/build/types/button/Button.d.ts.map +1 -1
- package/build/types/button/Button.messages.d.ts +7 -7
- package/build/types/button/Button.messages.d.ts.map +1 -1
- package/build/types/button/classMap.d.ts +10 -10
- package/build/types/button/classMap.d.ts.map +1 -1
- package/build/types/button/legacyUtils/index.d.ts +1 -1
- package/build/types/button/legacyUtils/index.d.ts.map +1 -1
- package/build/types/button/legacyUtils/legacyUtils.d.ts +20 -6
- package/build/types/button/legacyUtils/legacyUtils.d.ts.map +1 -1
- package/build/types/checkboxButton/index.d.ts +1 -1
- package/build/types/checkboxButton/index.d.ts.map +1 -1
- package/build/types/common/hooks/index.d.ts +4 -4
- package/build/types/common/hooks/index.d.ts.map +1 -1
- package/build/types/common/hooks/useConditionalListener/index.d.ts +1 -1
- package/build/types/common/hooks/useConditionalListener/index.d.ts.map +1 -1
- package/build/types/common/hooks/useDirection/index.d.ts +1 -1
- package/build/types/common/hooks/useDirection/index.d.ts.map +1 -1
- package/build/types/common/hooks/useHasIntersected/index.d.ts +1 -1
- package/build/types/common/hooks/useHasIntersected/index.d.ts.map +1 -1
- package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts +4 -15
- package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts.map +1 -1
- package/build/types/common/index.d.ts +28 -28
- package/build/types/common/index.d.ts.map +1 -1
- package/build/types/common/responsivePanel/index.d.ts +1 -1
- package/build/types/common/responsivePanel/index.d.ts.map +1 -1
- package/build/types/index.d.ts +0 -1
- package/build/types/index.d.ts.map +1 -1
- package/build/types/navigationOption/NavigationOption.d.ts +0 -1
- package/build/types/navigationOption/NavigationOption.d.ts.map +1 -1
- package/build/types/stepper/deviceDetection.d.ts +1 -1
- package/build/types/stepper/deviceDetection.d.ts.map +1 -1
- package/build/upload/Upload.js +2 -21
- package/build/upload/Upload.js.map +1 -1
- package/build/upload/Upload.mjs +2 -21
- package/build/upload/Upload.mjs.map +1 -1
- package/build/upload/steps/processingStep/processingStep.js +3 -25
- package/build/upload/steps/processingStep/processingStep.js.map +1 -1
- package/build/upload/steps/processingStep/processingStep.mjs +3 -25
- package/build/upload/steps/processingStep/processingStep.mjs.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.js +3 -23
- package/build/upload/steps/uploadImageStep/uploadImageStep.js.map +1 -1
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs +3 -23
- package/build/upload/steps/uploadImageStep/uploadImageStep.mjs.map +1 -1
- package/build/uploadInput/UploadInput.js +3 -22
- package/build/uploadInput/UploadInput.js.map +1 -1
- package/build/uploadInput/UploadInput.mjs +3 -22
- package/build/uploadInput/UploadInput.mjs.map +1 -1
- package/build/uploadInput/uploadButton/UploadButton.js +2 -21
- package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
- package/build/uploadInput/uploadButton/UploadButton.mjs +2 -21
- package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
- package/build/uploadInput/uploadButton/defaults.js +0 -24
- package/build/uploadInput/uploadButton/defaults.js.map +1 -1
- package/build/uploadInput/uploadButton/defaults.mjs +0 -24
- package/build/uploadInput/uploadButton/defaults.mjs.map +1 -1
- package/build/uploadInput/uploadItem/UploadItem.js +4 -21
- package/build/uploadInput/uploadItem/UploadItem.js.map +1 -1
- package/build/uploadInput/uploadItem/UploadItem.mjs +4 -21
- package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -1
- package/build/withDisplayFormat/WithDisplayFormat.js +1 -25
- package/build/withDisplayFormat/WithDisplayFormat.js.map +1 -1
- package/build/withDisplayFormat/WithDisplayFormat.mjs +1 -25
- package/build/withDisplayFormat/WithDisplayFormat.mjs.map +1 -1
- package/package.json +3 -3
- package/src/button/Button.tsx +0 -3
- package/src/button/legacyUtils/legacyUtils.ts +74 -0
- package/src/common/{fakeEvents.ts → fakeEvents.js} +1 -1
- package/src/common/hooks/useHasIntersected/{useHasIntersected.ts → useHasIntersected.js} +11 -20
- package/src/common/requirements.js +440 -0
- package/src/flowNavigation/{FlowNavigation.story.js → FlowNavigation.story.tsx} +34 -16
- package/src/index.ts +0 -1
- package/src/navigationOption/{NavigationOption.story.tsx → NavigationOption.story.js} +5 -23
- package/src/navigationOption/NavigationOption.tsx +1 -1
- package/src/select/{Select.story.js → Select.story.tsx} +97 -47
- package/src/stepper/{deviceDetection.js → deviceDetection.ts} +2 -6
- package/build/types/common/fakeEvents.d.ts +0 -23
- package/build/types/common/fakeEvents.d.ts.map +0 -1
- package/src/button/legacyUtils/legacyUtils.js +0 -54
- /package/src/button/{Button.messages.js → Button.messages.ts} +0 -0
- /package/src/button/{classMap.js → classMap.ts} +0 -0
- /package/src/button/legacyUtils/{index.js → index.ts} +0 -0
- /package/src/checkboxButton/{index.js → index.ts} +0 -0
- /package/src/common/hooks/{index.ts → index.js} +0 -0
- /package/src/common/hooks/useConditionalListener/{index.ts → index.js} +0 -0
- /package/src/common/hooks/useDirection/{index.ts → index.js} +0 -0
- /package/src/common/hooks/useHasIntersected/{index.ts → index.js} +0 -0
- /package/src/common/{index.ts → index.js} +0 -0
- /package/src/common/responsivePanel/{index.ts → index.js} +0 -0
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { ControlType, Priority, Size, Type } from '../../common';
|
|
2
|
+
import { logActionRequired, logActionRequiredIf } from '../../utilities';
|
|
3
|
+
|
|
4
|
+
const deprecatedTypeMap: Record<Type, ControlType> = {
|
|
5
|
+
[Type.PRIMARY]: ControlType.ACCENT,
|
|
6
|
+
[Type.SECONDARY]: ControlType.ACCENT,
|
|
7
|
+
[Type.LINK]: ControlType.ACCENT,
|
|
8
|
+
[Type.PAY]: ControlType.POSITIVE,
|
|
9
|
+
[Type.DANGER]: ControlType.NEGATIVE,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
type OldTypeKeys = Type.DANGER | Type.LINK | Type.SECONDARY;
|
|
13
|
+
const oldTypePriorityMap: Record<OldTypeKeys, Priority> = {
|
|
14
|
+
[Type.DANGER]: Priority.SECONDARY,
|
|
15
|
+
[Type.LINK]: Priority.TERTIARY,
|
|
16
|
+
[Type.SECONDARY]: Priority.SECONDARY,
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
const deprecatedTypeMapMessage = {
|
|
20
|
+
[Type.DANGER]: 'Type.NEGATIVE',
|
|
21
|
+
[Type.LINK]: 'ControlType.ACCENT with priority Priority.TERTIARY',
|
|
22
|
+
[Type.PAY]: 'ControlType.POSITIVE',
|
|
23
|
+
[Type.PRIMARY]: 'ControlType.ACCENT',
|
|
24
|
+
[Type.SECONDARY]: 'ControlType.ACCENT with priority Priority.SECONDARY',
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const deprecatedTypes = Object.keys(deprecatedTypeMap);
|
|
28
|
+
|
|
29
|
+
type EstablishNewTypeType = (
|
|
30
|
+
originalType: Type | (string & Record<never, never>) | null,
|
|
31
|
+
) => `${ControlType}` | string | null;
|
|
32
|
+
|
|
33
|
+
export const establishNewType: EstablishNewTypeType = (originalType) =>
|
|
34
|
+
originalType && originalType in deprecatedTypeMap
|
|
35
|
+
? deprecatedTypeMap[originalType as Type]
|
|
36
|
+
: originalType;
|
|
37
|
+
|
|
38
|
+
type EstablishNewPriorityType = (
|
|
39
|
+
originalPriority?: Priority | (string & Record<never, never>) | null,
|
|
40
|
+
originalType?: OldTypeKeys | (string & Record<never, never>) | null,
|
|
41
|
+
) => `${ControlType}` | string | null | undefined;
|
|
42
|
+
|
|
43
|
+
export const establishNewPriority: EstablishNewPriorityType = (originalPriority, originalType) => {
|
|
44
|
+
const type = originalType ? establishNewType(originalType) : '';
|
|
45
|
+
|
|
46
|
+
// The old SECONDARY and LINK types now map to priorities. If they're still using one of
|
|
47
|
+
// these old types, ignore whatever priority they've passed and use this instead.
|
|
48
|
+
if (originalType && originalType in oldTypePriorityMap) {
|
|
49
|
+
return oldTypePriorityMap[originalType as OldTypeKeys];
|
|
50
|
+
}
|
|
51
|
+
// Only ControlType.ACCENT supports tertiary styles
|
|
52
|
+
if (originalPriority === Priority.TERTIARY && type !== ControlType.ACCENT) {
|
|
53
|
+
return Priority.SECONDARY;
|
|
54
|
+
}
|
|
55
|
+
return originalPriority;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
type DeprecatedTypeMapMessageType = keyof typeof deprecatedTypeMapMessage;
|
|
59
|
+
type LogDeprecationNoticesType = (params: {
|
|
60
|
+
size: `${Size}`;
|
|
61
|
+
type: DeprecatedTypeMapMessageType | (string & Record<never, never>) | null;
|
|
62
|
+
}) => void;
|
|
63
|
+
export const logDeprecationNotices: LogDeprecationNoticesType = ({ size, type }) => {
|
|
64
|
+
logActionRequiredIf(
|
|
65
|
+
'Button has deprecated the `Size.EXTRA_SMALL` value for the `size` prop. Please use Size.SMALL instead.',
|
|
66
|
+
size === Size.EXTRA_SMALL,
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
if (type && deprecatedTypes.includes(type) && type in deprecatedTypeMapMessage) {
|
|
70
|
+
logActionRequired(
|
|
71
|
+
`Button has deprecated the ${type} value for the \`type\` prop. Please update to ${deprecatedTypeMapMessage[type as DeprecatedTypeMapMessageType]}.`,
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect, useState } from 'react';
|
|
2
2
|
|
|
3
|
-
const ObserverParams
|
|
3
|
+
const ObserverParams = {
|
|
4
4
|
threshold: 0.1,
|
|
5
5
|
};
|
|
6
6
|
|
|
@@ -9,19 +9,13 @@ const ObserverParams: IntersectionObserverInit = {
|
|
|
9
9
|
* Use this custom hook to detect when an element has became visible inside the viewport. This hook checks only if the intersection happend.
|
|
10
10
|
* Once the intersection has happened the hook will not return false even if the element gets out of the viewport.
|
|
11
11
|
*
|
|
12
|
-
* @param
|
|
13
|
-
* @param {object} [
|
|
14
|
-
* @param {
|
|
12
|
+
* @param elRef.elRef
|
|
13
|
+
* @param {object} [elRef] - node object that contains a react reference to the element that needs to be observed.
|
|
14
|
+
* @param {strimng} [loading = 'eager'] - string that contains the type of loading.
|
|
15
15
|
* @param elRef.loading
|
|
16
16
|
* @usage `const [hasIntersected] = useHasIntersected({imageRef,loading});`
|
|
17
17
|
*/
|
|
18
|
-
export const useHasIntersected = ({
|
|
19
|
-
elRef,
|
|
20
|
-
loading = 'eager',
|
|
21
|
-
}: {
|
|
22
|
-
elRef: React.RefObject<HTMLElement>;
|
|
23
|
-
loading?: 'eager' | 'lazy';
|
|
24
|
-
}) => {
|
|
18
|
+
export const useHasIntersected = ({ elRef, loading }) => {
|
|
25
19
|
const [hasIntersected, setHasIntersected] = useState(false);
|
|
26
20
|
|
|
27
21
|
const { current } = elRef || {};
|
|
@@ -30,32 +24,29 @@ export const useHasIntersected = ({
|
|
|
30
24
|
return elRef && current;
|
|
31
25
|
};
|
|
32
26
|
|
|
33
|
-
const handleOnIntersect
|
|
27
|
+
const handleOnIntersect = (entries, observer) => {
|
|
34
28
|
entries.forEach((entry) => {
|
|
35
29
|
if (entry.isIntersecting) {
|
|
36
30
|
setHasIntersected(true);
|
|
37
|
-
|
|
38
|
-
if (current) {
|
|
39
|
-
observer.unobserve(current);
|
|
40
|
-
}
|
|
31
|
+
observer.unobserve(current);
|
|
41
32
|
}
|
|
42
33
|
});
|
|
43
34
|
};
|
|
44
35
|
|
|
45
36
|
useEffect(() => {
|
|
46
|
-
let observer
|
|
37
|
+
let observer;
|
|
47
38
|
let didCancel = false;
|
|
48
39
|
|
|
49
|
-
// Check if window is
|
|
40
|
+
// Check if window is define for SSR and Old browsers fallback
|
|
50
41
|
if (typeof window === 'undefined' || !window.IntersectionObserver || !isValidReference()) {
|
|
51
42
|
setHasIntersected(true);
|
|
52
|
-
} else if (
|
|
43
|
+
} else if (!didCancel) {
|
|
53
44
|
observer = new IntersectionObserver(handleOnIntersect, ObserverParams);
|
|
54
45
|
observer.observe(current);
|
|
55
46
|
}
|
|
56
47
|
return () => {
|
|
57
48
|
didCancel = true;
|
|
58
|
-
if (observer
|
|
49
|
+
if (observer) {
|
|
59
50
|
observer.unobserve(current);
|
|
60
51
|
}
|
|
61
52
|
};
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
/* eslint-disable no-unused-vars */
|
|
2
|
+
/* eslint-disable no-param-reassign */
|
|
3
|
+
|
|
4
|
+
const prepRequirements = (alternatives) => {
|
|
5
|
+
if (!alternatives || alternatives.length === 0) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const preppedAlternatives = copyOf(alternatives);
|
|
10
|
+
|
|
11
|
+
preppedAlternatives.forEach((alternative) => {
|
|
12
|
+
if (alternative.prepared) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
prepLegacyAlternatives(alternative);
|
|
17
|
+
|
|
18
|
+
alternative.properties = prepFields(alternative.properties || alternative.fields);
|
|
19
|
+
|
|
20
|
+
// If we're still treating type as a special case, move it to a hidden value
|
|
21
|
+
if (alternative.type && alternative.type !== 'object' && !alternative.types) {
|
|
22
|
+
alternative.properties.type = {
|
|
23
|
+
type: 'string',
|
|
24
|
+
enum: [alternative.type],
|
|
25
|
+
required: true,
|
|
26
|
+
hidden: true,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
alternative.type = 'object';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
alternative.prepared = true;
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
return preppedAlternatives;
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
const prepFields = (fields, model, validationMessages) => {
|
|
39
|
+
if (!fields) {
|
|
40
|
+
return {};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
let preparedFields = copyOf(fields);
|
|
44
|
+
|
|
45
|
+
preparedFields = flattenFieldsWithGroups(preparedFields);
|
|
46
|
+
preparedFields = transformFieldArrayToMap(preparedFields);
|
|
47
|
+
preparedFields = transformNestedKeysToNestedSpecs(preparedFields);
|
|
48
|
+
|
|
49
|
+
Object.keys(preparedFields).forEach((key) => {
|
|
50
|
+
preparedFields[key] = prepField(preparedFields[key], model, validationMessages);
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
return preparedFields;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const prepField = (field, model, validationMessages) => {
|
|
57
|
+
const preparedField = copyOf(field);
|
|
58
|
+
|
|
59
|
+
prepLegacyProps(preparedField);
|
|
60
|
+
prepType(preparedField);
|
|
61
|
+
prepPattern(preparedField);
|
|
62
|
+
prepValidationMessages(preparedField, validationMessages);
|
|
63
|
+
|
|
64
|
+
return preparedField;
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* In an older format we had an extra fieldGroup level, here we flatten that out
|
|
69
|
+
* So the inner arrays of fields within the different field groups are flattened
|
|
70
|
+
* to a single array, which is returned.
|
|
71
|
+
*
|
|
72
|
+
* @param fields
|
|
73
|
+
*/
|
|
74
|
+
const flattenFieldsWithGroups = (fields) => {
|
|
75
|
+
if (Array.isArray(fields)) {
|
|
76
|
+
let flattenedFields = [];
|
|
77
|
+
fields.forEach((field) => {
|
|
78
|
+
// If we've been given a group with nested fields, break them out.
|
|
79
|
+
if (field.fields) {
|
|
80
|
+
flattenedFields = flattenedFields.concat(flattenFieldWithGroup(field, field.fields));
|
|
81
|
+
} else if (field.group) {
|
|
82
|
+
flattenedFields = flattenedFields.concat(flattenFieldWithGroup(field, field.group));
|
|
83
|
+
} else {
|
|
84
|
+
// Otherwise it's a regular field, just add it.
|
|
85
|
+
flattenedFields.push(field);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return flattenedFields;
|
|
89
|
+
}
|
|
90
|
+
return fields;
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const flattenFieldWithGroup = (field, subFields) => {
|
|
94
|
+
// If first field doesn't have a label, use the one from the group
|
|
95
|
+
if (field.name && subFields.length > 0 && !subFields[0].name) {
|
|
96
|
+
subFields[0].name = field.name;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
if (field.width && subFields.length > 0 && !subFields[0].width) {
|
|
100
|
+
subFields[0].width = field.width;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// If there was a tooltip at fieldGroup level move it to first field.
|
|
104
|
+
if (field.tooltip && subFields.length > 0 && !subFields[0].help) {
|
|
105
|
+
subFields[0].help = { message: field.tooltip };
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
if (field.info && subFields.length > 0 && !subFields[0].help) {
|
|
109
|
+
subFields[0].help = { message: field.info };
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// If there are two parts of this group, render them side by side
|
|
113
|
+
if (subFields.length === 2) {
|
|
114
|
+
subFields.forEach((nestedField) => {
|
|
115
|
+
nestedField.width = 'md';
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// If there are three parts, render the first two side by side
|
|
120
|
+
if (subFields.length === 3) {
|
|
121
|
+
subFields[0].width = 'md';
|
|
122
|
+
subFields[1].width = 'md';
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
return subFields;
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/*
|
|
129
|
+
* Some older requirements return an array of fields, where it should be a map
|
|
130
|
+
* from the property name to the spec. This converts arrays to maps.
|
|
131
|
+
*/
|
|
132
|
+
const transformFieldArrayToMap = (fields) => {
|
|
133
|
+
if (Array.isArray(fields)) {
|
|
134
|
+
const fieldMap = {};
|
|
135
|
+
fields.forEach((field) => {
|
|
136
|
+
const key = field.key || field.name;
|
|
137
|
+
delete field.key;
|
|
138
|
+
|
|
139
|
+
fieldMap[key] = copyOf(field);
|
|
140
|
+
});
|
|
141
|
+
return fieldMap;
|
|
142
|
+
}
|
|
143
|
+
return fields;
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
/*
|
|
147
|
+
* Some older format return keys like 'address.city', expecting the value of
|
|
148
|
+
* city to be nested inside an address object. This function creates a spec of
|
|
149
|
+
* type 'object', and nests such fields inside of it. When we render we pass
|
|
150
|
+
* this object spec to a nested fieldset.
|
|
151
|
+
*/
|
|
152
|
+
const transformNestedKeysToNestedSpecs = (fieldMap) => {
|
|
153
|
+
if (Array.isArray(fieldMap)) {
|
|
154
|
+
throw new TypeError('Expecting a map of fields, not an array');
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
const nestedFields = {};
|
|
158
|
+
Object.keys(fieldMap).forEach((key) => {
|
|
159
|
+
if (key.indexOf('.') > 0) {
|
|
160
|
+
// If the key contains a period we need to nest the fields in another object
|
|
161
|
+
const pathSections = key.split('.');
|
|
162
|
+
const nestedKey = pathSections[0];
|
|
163
|
+
|
|
164
|
+
// If this sub object doesn't exist yet, create it
|
|
165
|
+
if (!nestedFields[nestedKey]) {
|
|
166
|
+
nestedFields[nestedKey] = {
|
|
167
|
+
type: 'object',
|
|
168
|
+
properties: {},
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
nestedFields[nestedKey].properties[pathSections[1]] = fieldMap[key];
|
|
172
|
+
} else {
|
|
173
|
+
nestedFields[key] = fieldMap[key];
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
return nestedFields;
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
const prepType = (field) => {
|
|
180
|
+
const type = field.type && field.type.toLowerCase && field.type.toLowerCase();
|
|
181
|
+
|
|
182
|
+
switch (type) {
|
|
183
|
+
case 'text':
|
|
184
|
+
field.type = 'string';
|
|
185
|
+
break;
|
|
186
|
+
case 'date':
|
|
187
|
+
field.type = 'string';
|
|
188
|
+
field.format = 'date';
|
|
189
|
+
break;
|
|
190
|
+
case 'password':
|
|
191
|
+
field.type = 'string';
|
|
192
|
+
field.control = 'password';
|
|
193
|
+
break;
|
|
194
|
+
case 'checkbox':
|
|
195
|
+
field.type = 'boolean';
|
|
196
|
+
break;
|
|
197
|
+
case 'select':
|
|
198
|
+
if (!field.control) {
|
|
199
|
+
field.control = 'select';
|
|
200
|
+
}
|
|
201
|
+
delete field.type;
|
|
202
|
+
break;
|
|
203
|
+
case 'radio':
|
|
204
|
+
field.control = 'radio';
|
|
205
|
+
delete field.type;
|
|
206
|
+
break;
|
|
207
|
+
case 'upload':
|
|
208
|
+
field.type = 'string';
|
|
209
|
+
field.format = 'base64url';
|
|
210
|
+
break;
|
|
211
|
+
case 'tel':
|
|
212
|
+
field.type = 'string';
|
|
213
|
+
field.format = 'phone';
|
|
214
|
+
break;
|
|
215
|
+
case 'textarea':
|
|
216
|
+
field.type = 'string';
|
|
217
|
+
field.control = 'textarea';
|
|
218
|
+
break;
|
|
219
|
+
default:
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
if (!field.control && field.type !== 'object') {
|
|
223
|
+
field.control = getControlType(field);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
|
|
227
|
+
const prepLegacyAlternatives = (alternative) => {
|
|
228
|
+
if (!alternative.title && alternative.label) {
|
|
229
|
+
alternative.title = alternative.label;
|
|
230
|
+
}
|
|
231
|
+
if (!alternative.title) {
|
|
232
|
+
alternative.title = getNameFromType(alternative.type);
|
|
233
|
+
}
|
|
234
|
+
if (!alternative.type && alternative.name) {
|
|
235
|
+
alternative.type = alternative.name;
|
|
236
|
+
}
|
|
237
|
+
if (!alternative.description && alternative.tooltip) {
|
|
238
|
+
alternative.description = alternative.tooltip;
|
|
239
|
+
}
|
|
240
|
+
if (alternative.fieldGroups && !alternative.fields) {
|
|
241
|
+
alternative.fields = flattenFieldsWithGroups(alternative.fieldGroups);
|
|
242
|
+
delete alternative.fieldGroups;
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
|
|
246
|
+
const prepLegacyProps = (field) => {
|
|
247
|
+
if (field.name && !field.title) {
|
|
248
|
+
field.title = field.name;
|
|
249
|
+
delete field.name;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
if (field.validationRegexp) {
|
|
253
|
+
field.pattern = field.validationRegexp;
|
|
254
|
+
delete field.validationRegexp;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
if (field.min) {
|
|
258
|
+
field.minimum = field.min;
|
|
259
|
+
delete field.min;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
if (field.max) {
|
|
263
|
+
field.maximum = field.max;
|
|
264
|
+
delete field.max;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
if (field.example && !field.placeholder) {
|
|
268
|
+
field.placeholder = field.example;
|
|
269
|
+
delete field.example;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
if (field.tooltip && !field.help) {
|
|
273
|
+
field.help = { message: field.tooltip };
|
|
274
|
+
delete field.tooltip;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (field.valuesAllowed && !field.values) {
|
|
278
|
+
field.values = field.valuesAllowed;
|
|
279
|
+
delete field.valuesAllowed;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (field.values && field.values.map) {
|
|
283
|
+
field.values = prepLegacyValues(field.values);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (field.value && !field.default) {
|
|
287
|
+
field.default = field.value;
|
|
288
|
+
delete field.value;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
if (field.values) {
|
|
292
|
+
// In some legacy arrays the first value is a placeholder, extract it.
|
|
293
|
+
if (
|
|
294
|
+
field.values &&
|
|
295
|
+
field.values.length > 0 &&
|
|
296
|
+
field.values[0] &&
|
|
297
|
+
!field.values[0].value &&
|
|
298
|
+
field.values[0].label &&
|
|
299
|
+
!field.placeholder
|
|
300
|
+
) {
|
|
301
|
+
field.placeholder = field.values[0].label;
|
|
302
|
+
field.values = field.values.slice(1);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
const prepLegacyValues = (values) => values.map(prepLegacyValue);
|
|
308
|
+
|
|
309
|
+
const prepLegacyValue = (value) => {
|
|
310
|
+
if (!value.label && value.title) {
|
|
311
|
+
value.label = value.title;
|
|
312
|
+
delete value.title;
|
|
313
|
+
}
|
|
314
|
+
if (!value.label && value.name) {
|
|
315
|
+
value.label = value.name;
|
|
316
|
+
delete value.name;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
if (!value.value && value.code) {
|
|
320
|
+
value.value = value.code;
|
|
321
|
+
delete value.code;
|
|
322
|
+
}
|
|
323
|
+
if (!value.value && value.key) {
|
|
324
|
+
value.value = value.key;
|
|
325
|
+
delete value.key;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
return value;
|
|
329
|
+
};
|
|
330
|
+
|
|
331
|
+
const prepPattern = (field) => {
|
|
332
|
+
if (field.pattern) {
|
|
333
|
+
try {
|
|
334
|
+
new RegExp(field.pattern);
|
|
335
|
+
} catch {
|
|
336
|
+
// eslint-disable-next-line no-console
|
|
337
|
+
console.warn('API regexp is invalid');
|
|
338
|
+
delete field.pattern;
|
|
339
|
+
}
|
|
340
|
+
} else {
|
|
341
|
+
delete field.pattern;
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
|
|
345
|
+
const prepValidationMessages = (field, validationMessages) => {
|
|
346
|
+
field.validationMessages = field.validationMessages
|
|
347
|
+
? field.validationMessages
|
|
348
|
+
: validationMessages;
|
|
349
|
+
|
|
350
|
+
if (!field.validationMessages) {
|
|
351
|
+
delete field.validationMessages;
|
|
352
|
+
return;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
if (field.validationMessages.minimum) {
|
|
356
|
+
field.validationMessages.min = field.validationMessages.minimum;
|
|
357
|
+
delete field.validationMessages.minimum;
|
|
358
|
+
}
|
|
359
|
+
if (field.validationMessages.maximum) {
|
|
360
|
+
field.validationMessages.max = field.validationMessages.maximum;
|
|
361
|
+
delete field.validationMessages.maximum;
|
|
362
|
+
}
|
|
363
|
+
};
|
|
364
|
+
|
|
365
|
+
const getControlType = (field) => {
|
|
366
|
+
if (field.control) {
|
|
367
|
+
return field.control.toLowerCase();
|
|
368
|
+
}
|
|
369
|
+
if (field.hidden) {
|
|
370
|
+
return 'hidden';
|
|
371
|
+
}
|
|
372
|
+
if (field.values && field.values.length > 0) {
|
|
373
|
+
return getSelectionType(field);
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
switch (field.type) {
|
|
377
|
+
case 'string':
|
|
378
|
+
return getControlForStringFormat(field.format);
|
|
379
|
+
case 'number':
|
|
380
|
+
case 'integer':
|
|
381
|
+
return 'number';
|
|
382
|
+
case 'boolean':
|
|
383
|
+
return 'checkbox';
|
|
384
|
+
default:
|
|
385
|
+
return 'text';
|
|
386
|
+
}
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
const getControlForStringFormat = (format) => {
|
|
390
|
+
switch (format) {
|
|
391
|
+
case 'date':
|
|
392
|
+
return 'date';
|
|
393
|
+
case 'base64url':
|
|
394
|
+
return 'file';
|
|
395
|
+
case 'password':
|
|
396
|
+
return 'password';
|
|
397
|
+
case 'uri':
|
|
398
|
+
return 'text'; // 'url'; - not implemented
|
|
399
|
+
case 'email':
|
|
400
|
+
return 'text'; // 'email'; - not implemented
|
|
401
|
+
case 'phone':
|
|
402
|
+
return 'tel';
|
|
403
|
+
default:
|
|
404
|
+
return 'text';
|
|
405
|
+
}
|
|
406
|
+
};
|
|
407
|
+
|
|
408
|
+
const getSelectionType = (field) => {
|
|
409
|
+
if (field.control) {
|
|
410
|
+
return field.control;
|
|
411
|
+
}
|
|
412
|
+
if (field.type === 'select') {
|
|
413
|
+
return 'select';
|
|
414
|
+
}
|
|
415
|
+
if (field.type === 'radio') {
|
|
416
|
+
return 'radio';
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
if (field.values) {
|
|
420
|
+
return field.values.length > 3 ? 'select' : 'radio';
|
|
421
|
+
}
|
|
422
|
+
return 'select';
|
|
423
|
+
};
|
|
424
|
+
|
|
425
|
+
const copyOf = (object) => JSON.parse(JSON.stringify(object));
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* Some older requirments formats do not include a label for alternatives
|
|
429
|
+
*
|
|
430
|
+
* @param tabType
|
|
431
|
+
*/
|
|
432
|
+
const getNameFromType = (tabType) => {
|
|
433
|
+
if (tabType && tabType.length > 0) {
|
|
434
|
+
const tabNameWithSpaces = tabType.toLowerCase().split('_').join(' '); // String.replace method only replaces first instance
|
|
435
|
+
return tabNameWithSpaces.charAt(0).toUpperCase() + tabNameWithSpaces.slice(1);
|
|
436
|
+
}
|
|
437
|
+
return '';
|
|
438
|
+
};
|
|
439
|
+
|
|
440
|
+
export { prepFields, getControlType };
|