@beinformed/ui 1.35.0 → 1.36.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/CHANGELOG.md +8 -0
- package/esm/constants/LayoutHintConfig.js +9 -0
- package/esm/constants/LayoutHintConfig.js.map +1 -1
- package/esm/constants/LayoutHints.js +5 -0
- package/esm/constants/LayoutHints.js.map +1 -1
- package/esm/models/actions/ActionCollection.js +1 -1
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/links/normalizeLinkJSON.js +20 -5
- package/esm/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/constants/Constants.js +33 -66
- package/lib/constants/Constants.js.map +1 -1
- package/lib/constants/LayoutHintConfig.js +10 -2
- package/lib/constants/LayoutHintConfig.js.flow +9 -0
- package/lib/constants/LayoutHintConfig.js.map +1 -1
- package/lib/constants/LayoutHints.js +24 -37
- package/lib/constants/LayoutHints.js.flow +5 -0
- package/lib/constants/LayoutHints.js.map +1 -1
- package/lib/constants/Settings.js +3 -6
- package/lib/constants/Settings.js.map +1 -1
- package/lib/exceptions/ConfigurationException.js +1 -2
- package/lib/exceptions/ConfigurationException.js.map +1 -1
- package/lib/exceptions/IllegalArgumentException.js +1 -2
- package/lib/exceptions/IllegalArgumentException.js.map +1 -1
- package/lib/exceptions/IllegalReturnException.js +1 -2
- package/lib/exceptions/IllegalReturnException.js.map +1 -1
- package/lib/exceptions/IllegalStateException.js +1 -2
- package/lib/exceptions/IllegalStateException.js.map +1 -1
- package/lib/exceptions/JsonParseException.js +1 -2
- package/lib/exceptions/JsonParseException.js.map +1 -1
- package/lib/exceptions/MissingPropertyException.js +1 -2
- package/lib/exceptions/MissingPropertyException.js.map +1 -1
- package/lib/exceptions/NetworkException.js +1 -2
- package/lib/exceptions/NetworkException.js.map +1 -1
- package/lib/exceptions/NotAllowedUriException.js +1 -2
- package/lib/exceptions/NotAllowedUriException.js.map +1 -1
- package/lib/exceptions/NotFoundException.js +1 -2
- package/lib/exceptions/NotFoundException.js.map +1 -1
- package/lib/exceptions/ServerRequestException.js +1 -2
- package/lib/exceptions/ServerRequestException.js.map +1 -1
- package/lib/exceptions/ThemePropertyException.js +1 -2
- package/lib/exceptions/ThemePropertyException.js.map +1 -1
- package/lib/exceptions/TimeoutException.js +1 -2
- package/lib/exceptions/TimeoutException.js.map +1 -1
- package/lib/exceptions/UnauthorizedException.js +1 -2
- package/lib/exceptions/UnauthorizedException.js.map +1 -1
- package/lib/exceptions/UnsupportedOperationException.js +1 -2
- package/lib/exceptions/UnsupportedOperationException.js.map +1 -1
- package/lib/hooks/useDeepCompareEffect.js +3 -4
- package/lib/hooks/useDeepCompareEffect.js.map +1 -1
- package/lib/i18n/Locale.js +1 -2
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/i18n/Locales.js +2 -4
- package/lib/i18n/Locales.js.map +1 -1
- package/lib/i18n/Message.js +1 -2
- package/lib/i18n/Message.js.map +1 -1
- package/lib/i18n/index.js +2 -2
- package/lib/i18n/index.js.map +1 -1
- package/lib/i18n/languages.js +1 -2
- package/lib/i18n/languages.js.map +1 -1
- package/lib/i18n/translations/beinformed_error_messages_en.nl.js +1 -2
- package/lib/i18n/translations/beinformed_error_messages_en.nl.js.map +1 -1
- package/lib/i18n/translations/beinformed_error_messages_nl.nl.js +1 -2
- package/lib/i18n/translations/beinformed_error_messages_nl.nl.js.map +1 -1
- package/lib/i18n/withMessage.js +1 -2
- package/lib/i18n/withMessage.js.map +1 -1
- package/lib/models/actions/ActionCollection.js +1 -1
- package/lib/models/actions/ActionCollection.js.flow +3 -1
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/application/__tests__/Application.spec.js.flow +1 -1
- package/lib/models/attributes/AttributeCollection.js +1 -2
- package/lib/models/attributes/AttributeCollection.js.map +1 -1
- package/lib/models/attributes/AttributeContent.js +1 -2
- package/lib/models/attributes/AttributeContent.js.map +1 -1
- package/lib/models/attributes/AttributeDataHelper.js +1 -2
- package/lib/models/attributes/AttributeDataHelper.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js +1 -2
- package/lib/models/attributes/ChoiceAttributeOptionCollection.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeOptionModel.js +1 -2
- package/lib/models/attributes/ChoiceAttributeOptionModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeChildCollection.js +1 -2
- package/lib/models/attributes/CompositeAttributeChildCollection.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +1 -2
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/DatetimeAttributeModel.js +1 -2
- package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
- package/lib/models/attributes/_createAttribute.js +1 -2
- package/lib/models/attributes/_createAttribute.js.map +1 -1
- package/lib/models/attributes/input-constraints/BSNConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/BSNConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/DateTimeDateFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/DateTimeTimeFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/FileExtensionConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/FileExtensionConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/FileSizeConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/FileSizeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/IBANConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/IBANConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/MandatoryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/MandatoryRangeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/NumberBoundaryConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/NumberFormatConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/NumberGroupingConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/PasswordConfirmConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/PasswordLowerAndUpperCaseConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/PasswordMinNumericCharactersConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/PasswordMinSpecialCharactersConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/PasswordThreeConsecutiveCharactersNotAllowedConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RangeConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/RangeConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/RegexConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/RegexConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/StringLengthConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/StringLengthConstraint.js.map +1 -1
- package/lib/models/attributes/input-constraints/XMLConstraint.js +1 -2
- package/lib/models/attributes/input-constraints/XMLConstraint.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js +1 -2
- package/lib/models/attributes/layouthint-rules/BaseLayoutHintRule.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js +1 -2
- package/lib/models/attributes/layouthint-rules/DependentAttribute.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js +1 -2
- package/lib/models/attributes/layouthint-rules/LayoutHintRuleCollection.js.map +1 -1
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js +1 -2
- package/lib/models/attributes/layouthint-rules/RemainingTotalUploadSize.js.map +1 -1
- package/lib/models/base/BaseCollection.js +1 -2
- package/lib/models/base/BaseCollection.js.map +1 -1
- package/lib/models/base/BaseModel.js +1 -2
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/ResourceCollection.js +1 -2
- package/lib/models/base/ResourceCollection.js.map +1 -1
- package/lib/models/base/ResourceModel.js +1 -2
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/concepts/BusinessScenarioModel.js +1 -2
- package/lib/models/concepts/BusinessScenarioModel.js.map +1 -1
- package/lib/models/concepts/ConceptTypeDetailModel.js +1 -2
- package/lib/models/concepts/ConceptTypeDetailModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceModel.js +1 -2
- package/lib/models/concepts/SourceReferenceModel.js.map +1 -1
- package/lib/models/content/SectionModel.js +1 -2
- package/lib/models/content/SectionModel.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationElements.js +1 -2
- package/lib/models/contentconfiguration/ContentConfigurationElements.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js +1 -2
- package/lib/models/contentconfiguration/ContentConfigurationEndResults.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js +1 -2
- package/lib/models/contentconfiguration/ContentConfigurationQuestions.js.map +1 -1
- package/lib/models/contentconfiguration/ContentConfigurationResults.js +1 -2
- package/lib/models/contentconfiguration/ContentConfigurationResults.js.map +1 -1
- package/lib/models/error/ErrorModel.js +1 -2
- package/lib/models/error/ErrorModel.js.map +1 -1
- package/lib/models/form/FormModel.js +1 -2
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/href/Href.js +1 -2
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/index.js +2 -2
- package/lib/models/index.js.map +1 -1
- package/lib/models/links/LinkModel.js +1 -2
- package/lib/models/links/LinkModel.js.map +1 -1
- package/lib/models/links/__tests__/normalizeLinkJSON.spec.js.flow +2 -1
- package/lib/models/links/normalizeLinkJSON.js +20 -7
- package/lib/models/links/normalizeLinkJSON.js.flow +20 -4
- package/lib/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/models/list/ListItemCollection.js +1 -2
- package/lib/models/list/ListItemCollection.js.map +1 -1
- package/lib/models/lookup/LookupOptionCollection.js +1 -2
- package/lib/models/lookup/LookupOptionCollection.js.map +1 -1
- package/lib/models/parameter/Parameter.js +1 -2
- package/lib/models/parameter/Parameter.js.map +1 -1
- package/lib/models/resolveModel.js +1 -2
- package/lib/models/resolveModel.js.map +1 -1
- package/lib/models/sorting/SortOptionModel.js +1 -2
- package/lib/models/sorting/SortOptionModel.js.map +1 -1
- package/lib/models/sorting/SortingModel.js +1 -2
- package/lib/models/sorting/SortingModel.js.map +1 -1
- package/lib/models/taskgroup/__tests__/TaskGroupModel.spec.js.flow +17 -0
- package/lib/models/user/UserServicesModel.js +1 -2
- package/lib/models/user/UserServicesModel.js.map +1 -1
- package/lib/modularui/Authenticate.js +1 -2
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/CaptchaRequest.js +1 -2
- package/lib/modularui/CaptchaRequest.js.map +1 -1
- package/lib/modularui/ModularUIError.js +1 -2
- package/lib/modularui/ModularUIError.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +1 -2
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/ModularUIResponse.js +1 -2
- package/lib/modularui/ModularUIResponse.js.map +1 -1
- package/lib/modularui/UploadRequest.js +1 -2
- package/lib/modularui/UploadRequest.js.map +1 -1
- package/lib/react/ErrorBoundary.js +1 -2
- package/lib/react/ErrorBoundary.js.map +1 -1
- package/lib/react/ErrorBoundaryFallback.js +1 -2
- package/lib/react/ErrorBoundaryFallback.js.map +1 -1
- package/lib/react-client/rehydrate.js +1 -2
- package/lib/react-client/rehydrate.js.map +1 -1
- package/lib/react-server/createSSRComplete.js +1 -2
- package/lib/react-server/createSSRComplete.js.map +1 -1
- package/lib/react-server/htmlpage.js +1 -2
- package/lib/react-server/htmlpage.js.map +1 -1
- package/lib/react-server/renderSSRComplete.js +1 -2
- package/lib/react-server/renderSSRComplete.js.map +1 -1
- package/lib/react-server/renderSSRMinimal.js +1 -2
- package/lib/react-server/renderSSRMinimal.js.map +1 -1
- package/lib/react-server/serverNoSSR.js +1 -2
- package/lib/react-server/serverNoSSR.js.map +1 -1
- package/lib/react-server/serverSSR.js +1 -2
- package/lib/react-server/serverSSR.js.map +1 -1
- package/lib/react-server/serverUtil.js +2 -2
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/react-theme/ThemeProvider.js +1 -2
- package/lib/react-theme/ThemeProvider.js.map +1 -1
- package/lib/react-theme/createTheme.js +1 -2
- package/lib/react-theme/createTheme.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js +1 -2
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/redux/_modularui/ModularUISelectors.js +1 -2
- package/lib/redux/_modularui/ModularUISelectors.js.map +1 -1
- package/lib/redux/_modularui/withModularUI.js +1 -2
- package/lib/redux/_modularui/withModularUI.js.map +1 -1
- package/lib/redux/_router/RouterConnectors.js +5 -10
- package/lib/redux/_router/RouterConnectors.js.map +1 -1
- package/lib/redux/connectors/Application.js +1 -2
- package/lib/redux/connectors/Application.js.map +1 -1
- package/lib/redux/connectors/Breadcrumb.js +1 -2
- package/lib/redux/connectors/Breadcrumb.js.map +1 -1
- package/lib/redux/connectors/CaseView.js +1 -2
- package/lib/redux/connectors/CaseView.js.map +1 -1
- package/lib/redux/connectors/ConceptDetail.js +1 -2
- package/lib/redux/connectors/ConceptDetail.js.map +1 -1
- package/lib/redux/connectors/ContentBrowser.js +1 -2
- package/lib/redux/connectors/ContentBrowser.js.map +1 -1
- package/lib/redux/connectors/ContentDetail.js +1 -2
- package/lib/redux/connectors/ContentDetail.js.map +1 -1
- package/lib/redux/connectors/ContentDetailSection.js +1 -2
- package/lib/redux/connectors/ContentDetailSection.js.map +1 -1
- package/lib/redux/connectors/Form.js +1 -2
- package/lib/redux/connectors/Form.js.map +1 -1
- package/lib/redux/connectors/FormAttributeSet.js +1 -2
- package/lib/redux/connectors/FormAttributeSet.js.map +1 -1
- package/lib/redux/connectors/ListDetail.js +1 -2
- package/lib/redux/connectors/ListDetail.js.map +1 -1
- package/lib/redux/connectors/Modal.js +1 -2
- package/lib/redux/connectors/Modal.js.map +1 -1
- package/lib/redux/connectors/ModelCatalog.js +1 -2
- package/lib/redux/connectors/ModelCatalog.js.map +1 -1
- package/lib/redux/connectors/Notification.js +1 -2
- package/lib/redux/connectors/Notification.js.map +1 -1
- package/lib/redux/connectors/PanelRenderer.js +1 -2
- package/lib/redux/connectors/PanelRenderer.js.map +1 -1
- package/lib/redux/connectors/Progress.js +1 -2
- package/lib/redux/connectors/Progress.js.map +1 -1
- package/lib/redux/connectors/ProgressIndicator.js +1 -2
- package/lib/redux/connectors/ProgressIndicator.js.map +1 -1
- package/lib/redux/connectors/QuickSearch.js +1 -2
- package/lib/redux/connectors/QuickSearch.js.map +1 -1
- package/lib/redux/connectors/SignIn.js +1 -2
- package/lib/redux/connectors/SignIn.js.map +1 -1
- package/lib/redux/connectors/SignOut.js +1 -2
- package/lib/redux/connectors/SignOut.js.map +1 -1
- package/lib/redux/connectors/Tab.js +1 -2
- package/lib/redux/connectors/Tab.js.map +1 -1
- package/lib/redux/reducers/AuthReducer.js +1 -2
- package/lib/redux/reducers/AuthReducer.js.map +1 -1
- package/lib/redux/reducers/ErrorReducer.js +1 -2
- package/lib/redux/reducers/ErrorReducer.js.map +1 -1
- package/lib/redux/reducers/ModalsReducer.js +1 -2
- package/lib/redux/reducers/ModalsReducer.js.map +1 -1
- package/lib/redux/reducers/NotificationReducer.js +1 -2
- package/lib/redux/reducers/NotificationReducer.js.map +1 -1
- package/lib/redux/reducers/PreferencesReducer.js +1 -2
- package/lib/redux/reducers/PreferencesReducer.js.map +1 -1
- package/lib/redux/reducers/ProgressIndicatorReducer.js +1 -2
- package/lib/redux/reducers/ProgressIndicatorReducer.js.map +1 -1
- package/lib/redux/store/configureStore.js +1 -2
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/utils/browser/Cache.js +1 -2
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/datetime/DateTimeUtil.js +4 -8
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js +1 -2
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js +1 -2
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/createUUID.js +1 -2
- package/lib/utils/helpers/createUUID.js.map +1 -1
- package/lib/utils/number/DecimalFormat.js +1 -2
- package/lib/utils/number/DecimalFormat.js.map +1 -1
- package/lib/utils/number/formatValue.js +1 -2
- package/lib/utils/number/formatValue.js.map +1 -1
- package/package.json +11 -10
- package/src/constants/LayoutHintConfig.js +9 -0
- package/src/constants/LayoutHints.js +5 -0
- package/src/models/actions/ActionCollection.js +3 -1
- package/src/models/application/__tests__/Application.spec.js +1 -1
- package/src/models/application/__tests__/webappContributions.json +2 -1
- package/src/models/links/__tests__/normalizeLinkJSON.spec.js +2 -1
- package/src/models/links/normalizeLinkJSON.js +20 -4
- package/src/models/taskgroup/__tests__/TaskGroupModel.spec.js +17 -0
- package/src/models/taskgroup/__tests__/taskgroup.json +25 -0
- package/src/models/taskgroup/__tests__/taskgroupContributions.json +23 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecimalFormat.js","names":["DecimalFormat","constructor","format","_defineProperty2","default","setAffix","setFractionLengths","setGroupLength","setMinLength","setPercentage","prefix","_prefix","suffix","_suffix","comma","_comma","minInt","_minInt","minFrac","_minFrac","maxFrac","_maxFrac","isPercentage","_isPercentage","beforeDigit","_includes","call","substring","indexOf","length","replace","numberStr","fracStr","intStr","lastIndexOf","intFormatStr","charAt","getNumericString","stringNumber","number","Number","string","String","precision","formatBack","formattedNumber","isNaN","tempNumber","negative","substr","hasPrefix","_startsWith","suffixIndex","scientificNumber","Infinity","getFracAsNumber","DECIMAL_RADIX","Math","round","toString","toFixed","getRoundedFrac","num","getFraction","getFracCorrectLength","frac","i","getInteger","doCarry","x","j","addGrouping","groupedIntStr","getFormattedValue","isNegative","formattedValue","arguments","undefined","toLowerCase","addZeroToFrac","lastTwoFrac","_default","exports"],"sources":["../../../src/utils/number/DecimalFormat.js"],"sourcesContent":["// @flow\n// @see: https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html\n/**\n */\nclass DecimalFormat {\n _prefix: string;\n _suffix: string;\n\n // Grouping size\n _comma: number;\n // Minimum integer digits to be displayed\n _minInt: number;\n\n // Minimum fractional digits to be displayed\n _minFrac: number;\n // Maximum fractional digits to be displayed\n _maxFrac: number;\n\n _isPercentage: boolean;\n\n /**\n */\n constructor(format: string) {\n this.setAffix(format);\n this.setFractionLengths(format);\n this.setGroupLength(format);\n this.setMinLength(format);\n\n this.setPercentage();\n }\n\n /**\n */\n get prefix(): string {\n return this._prefix;\n }\n\n /**\n */\n get suffix(): string {\n return this._suffix;\n }\n\n /**\n */\n get comma(): number {\n return this._comma;\n }\n\n /**\n */\n get minInt(): number {\n return this._minInt;\n }\n\n /**\n */\n get minFrac(): number {\n return this._minFrac;\n }\n\n /**\n */\n get maxFrac(): number {\n return this._maxFrac;\n }\n\n /**\n */\n get isPercentage(): boolean {\n return this._isPercentage;\n }\n\n /**\n */\n setAffix(format: string) {\n const beforeDigit = format.includes(\"#\")\n ? format.substring(0, format.indexOf(\"#\"))\n : format;\n\n this._prefix = beforeDigit.includes(\"0\")\n ? beforeDigit.substring(0, beforeDigit.indexOf(\"0\"))\n : beforeDigit;\n this._suffix = format\n .substring(this._prefix.length)\n .replace(/[#,.0]/gu, \"\");\n }\n\n /**\n */\n setFractionLengths(format: string) {\n this._minFrac = 0;\n this._maxFrac = 0;\n\n const numberStr = format.replace(/[^#,.0]/gu, \"\");\n if (numberStr.includes(\".\")) {\n const fracStr = numberStr.substring(numberStr.indexOf(\".\") + 1);\n\n const maxFrac = fracStr.replace(/,|\\.+/g, \"\");\n this._maxFrac = maxFrac.length;\n\n // replace all but zeros\n const minFrac = maxFrac.replace(/[^0]/gu, \"\");\n this._minFrac = minFrac.length;\n }\n }\n\n /**\n */\n setGroupLength(format: string) {\n this._comma = 0;\n\n const numberStr = format.replace(/[^#,.0]/gu, \"\");\n const intStr = numberStr.includes(\".\")\n ? numberStr.substring(0, numberStr.indexOf(\".\"))\n : numberStr;\n\n if (intStr.includes(\",\")) {\n this._comma = intStr.length - 1 - intStr.lastIndexOf(\",\");\n }\n }\n\n /**\n */\n setMinLength(format: string) {\n const intFormatStr = format.includes(\".\")\n ? format.substring(0, format.indexOf(\".\"))\n : format;\n const intStr = intFormatStr.replace(/[^0]/gu, \"\");\n\n this._minInt = intStr.length > 1 ? intStr.length : 1;\n }\n\n /**\n */\n setPercentage() {\n this._isPercentage = this.suffix.charAt(0) === \"%\";\n }\n\n /**\n * Solves problem where big numbers loose the precision:\n * e.g. Number(23423423423342234.34) => 23423423423342236\n */\n static getNumericString(stringNumber: string): string {\n const number = Number(stringNumber);\n const string = String(number);\n\n if (!string.includes(\".\") && stringNumber.includes(\".\")) {\n // check if original string has all zeros after dot or not\n const precision = stringNumber.substring(stringNumber.indexOf(\".\") + 1);\n if (precision.replace(/0/gu, \"\").length > 0) {\n return stringNumber;\n }\n\n return string;\n }\n\n return stringNumber;\n }\n\n /**\n * Converts formatted value back to non-formatted value\n * e.g. $1,223.06 --> 1223.06\n */\n formatBack(formattedNumber: string): string {\n const stringNumber = String(formattedNumber);\n\n if (!stringNumber) {\n return \"\";\n }\n\n if (!isNaN(stringNumber)) {\n return DecimalFormat.getNumericString(stringNumber);\n }\n\n let tempNumber = formattedNumber;\n\n let negative = false;\n if (formattedNumber.charAt(0) === \"-\") {\n tempNumber = formattedNumber.substr(1);\n negative = true;\n }\n\n const hasPrefix = formattedNumber.startsWith(this.prefix);\n\n const suffixIndex =\n this.suffix === \"\"\n ? formattedNumber.length\n : formattedNumber.indexOf(this.suffix, this.prefix.length + 1);\n\n if (hasPrefix && suffixIndex > 0) {\n tempNumber = tempNumber.substr(0, suffixIndex);\n tempNumber = tempNumber.substr(this.prefix.length);\n tempNumber = tempNumber.replace(/,/gu, \"\");\n\n if (negative) {\n tempNumber = `-${tempNumber}`;\n }\n\n if (!isNaN(tempNumber)) {\n return DecimalFormat.getNumericString(tempNumber);\n }\n }\n\n return tempNumber;\n }\n\n /**\n */\n static scientificNumber(stringNumber: string): string {\n if (stringNumber.includes(\"e\")) {\n const number = Number(stringNumber);\n if (number === Infinity || number === -Infinity) {\n return stringNumber;\n }\n\n return String(number);\n }\n\n return stringNumber;\n }\n\n /**\n */\n getFracAsNumber(fracStr: string): string {\n const number = Number(`0.${fracStr}`);\n const DECIMAL_RADIX = 10;\n\n return this.maxFrac === 0\n ? Math.round(number).toString(DECIMAL_RADIX)\n : number.toFixed(this.maxFrac);\n }\n\n /**\n */\n getRoundedFrac(fracStr: string): string {\n const num = this.getFracAsNumber(fracStr);\n\n // toFixed method has bugs on IE (0.7 --> 0)\n return num.substr(2);\n }\n\n /**\n */\n static getFraction(number: string): string {\n let fracStr = number.includes(\".\")\n ? number.substring(number.indexOf(\".\") + 1)\n : \"\";\n\n fracStr = fracStr.replace(/\\./, \"\");\n\n return fracStr;\n }\n\n /**\n */\n getFracCorrectLength(frac: string): string {\n let fracStr = frac;\n\n if (fracStr.length > this.maxFrac) {\n fracStr = this.getRoundedFrac(fracStr);\n }\n\n for (let i = fracStr.length; i < this.minFrac; i++) {\n // if minFrac=4 then 1.12 --> 1.1200\n fracStr = `${fracStr}0`;\n }\n\n while (\n fracStr.length > this.minFrac &&\n fracStr.charAt(fracStr.length - 1) === \"0\"\n ) {\n // if minInt=4 then 00034 --> 0034)\n fracStr = fracStr.substring(0, fracStr.length - 1);\n }\n\n return fracStr;\n }\n\n /**\n */\n getInteger(number: string): string {\n let intStr = number.includes(\".\")\n ? number.substring(0, number.indexOf(\".\"))\n : number;\n\n let doCarry = Number(this.getFracAsNumber(number)) > 1;\n let i = intStr.length - 1;\n\n while (doCarry) {\n if (i === -1) {\n intStr = `1${intStr}`;\n break;\n }\n\n let x = intStr.charAt(i);\n if (x === \"9\") {\n x = \"0\";\n } else {\n x = `${x + 1}`;\n doCarry = false;\n }\n\n intStr =\n intStr.substring(0, i) + x + intStr.substring(i + 1, intStr.length);\n\n i -= 1;\n }\n\n for (let j = intStr.length; j < this.minInt; j++) {\n // if minInt=4 then 034 --> 0034\n intStr = `0${intStr}`;\n }\n\n while (intStr.length > this.minInt && intStr.charAt(0) === \"0\") {\n // if minInt=4 then 00034 --> 0034)\n intStr = intStr.substring(1);\n }\n\n return intStr;\n }\n\n /**\n */\n addGrouping(intStr: string): string {\n let groupedIntStr = intStr;\n\n let j = 0;\n for (let i = groupedIntStr.length; i > 0; i--) {\n // add commas\n if (j !== 0 && j % this.comma === 0) {\n groupedIntStr = `${groupedIntStr.substring(\n 0,\n i,\n )},${groupedIntStr.substring(i)}`;\n j = 0;\n }\n\n j += 1;\n }\n\n return groupedIntStr;\n }\n\n /**\n */\n getFormattedValue(\n intStr: string,\n fracStr: string,\n isNegative: boolean,\n ): string {\n let formattedValue;\n if (fracStr.length > 0)\n formattedValue = `${this.prefix + intStr}.${fracStr}${this.suffix}`;\n else formattedValue = this.prefix + intStr + this.suffix;\n\n if (isNegative) {\n formattedValue = `-${formattedValue}`;\n }\n\n return formattedValue;\n }\n\n /**\n * Formats given value, using the pattern\n * e.g. $#,###.00: 1223.06 --> $1,223.06\n */\n format(stringNumber: string = \"\"): string {\n if (stringNumber === null) {\n return \"\";\n }\n\n let formattedNumber = this.formatBack(stringNumber).toLowerCase();\n\n if (isNaN(formattedNumber) || formattedNumber.length === 0) {\n return stringNumber;\n }\n\n formattedNumber = DecimalFormat.scientificNumber(formattedNumber);\n if (formattedNumber.includes(\"e\")) {\n return formattedNumber;\n }\n\n const isNegative = formattedNumber.charAt(0) === \"-\";\n if (isNegative || formattedNumber.charAt(0) === \"+\") {\n formattedNumber = formattedNumber.substring(1);\n }\n\n let fracStr = DecimalFormat.getFraction(formattedNumber);\n let intStr = this.getInteger(formattedNumber);\n if (this.isPercentage) {\n // Add zeros behind fraction to make sure we have at least two characters and take first two character:\n // 1 --> 100 --> 10\n const addZeroToFrac = `${fracStr}00`.substr(0, 2);\n // Add zeros in front of frac and get last two characters\n const lastTwoFrac = `00${addZeroToFrac}`.substr(-2);\n\n intStr = `${intStr}${lastTwoFrac}`;\n fracStr = fracStr.substr(2);\n }\n\n fracStr = this.getFracCorrectLength(fracStr);\n\n intStr = this.addGrouping(intStr);\n\n return this.getFormattedValue(intStr, fracStr, isNegative);\n }\n}\n\nexport default DecimalFormat;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DecimalFormat.js","names":["DecimalFormat","constructor","format","_defineProperty2","default","setAffix","setFractionLengths","setGroupLength","setMinLength","setPercentage","prefix","_prefix","suffix","_suffix","comma","_comma","minInt","_minInt","minFrac","_minFrac","maxFrac","_maxFrac","isPercentage","_isPercentage","beforeDigit","_includes","call","substring","indexOf","length","replace","numberStr","fracStr","intStr","lastIndexOf","intFormatStr","charAt","getNumericString","stringNumber","number","Number","string","String","precision","formatBack","formattedNumber","isNaN","tempNumber","negative","substr","hasPrefix","_startsWith","suffixIndex","scientificNumber","Infinity","getFracAsNumber","DECIMAL_RADIX","Math","round","toString","toFixed","getRoundedFrac","num","getFraction","getFracCorrectLength","frac","i","getInteger","doCarry","x","j","addGrouping","groupedIntStr","getFormattedValue","isNegative","formattedValue","arguments","undefined","toLowerCase","addZeroToFrac","lastTwoFrac","_default","exports"],"sources":["../../../src/utils/number/DecimalFormat.js"],"sourcesContent":["// @flow\n// @see: https://docs.oracle.com/javase/tutorial/i18n/format/decimalFormat.html\n/**\n */\nclass DecimalFormat {\n _prefix: string;\n _suffix: string;\n\n // Grouping size\n _comma: number;\n // Minimum integer digits to be displayed\n _minInt: number;\n\n // Minimum fractional digits to be displayed\n _minFrac: number;\n // Maximum fractional digits to be displayed\n _maxFrac: number;\n\n _isPercentage: boolean;\n\n /**\n */\n constructor(format: string) {\n this.setAffix(format);\n this.setFractionLengths(format);\n this.setGroupLength(format);\n this.setMinLength(format);\n\n this.setPercentage();\n }\n\n /**\n */\n get prefix(): string {\n return this._prefix;\n }\n\n /**\n */\n get suffix(): string {\n return this._suffix;\n }\n\n /**\n */\n get comma(): number {\n return this._comma;\n }\n\n /**\n */\n get minInt(): number {\n return this._minInt;\n }\n\n /**\n */\n get minFrac(): number {\n return this._minFrac;\n }\n\n /**\n */\n get maxFrac(): number {\n return this._maxFrac;\n }\n\n /**\n */\n get isPercentage(): boolean {\n return this._isPercentage;\n }\n\n /**\n */\n setAffix(format: string) {\n const beforeDigit = format.includes(\"#\")\n ? format.substring(0, format.indexOf(\"#\"))\n : format;\n\n this._prefix = beforeDigit.includes(\"0\")\n ? beforeDigit.substring(0, beforeDigit.indexOf(\"0\"))\n : beforeDigit;\n this._suffix = format\n .substring(this._prefix.length)\n .replace(/[#,.0]/gu, \"\");\n }\n\n /**\n */\n setFractionLengths(format: string) {\n this._minFrac = 0;\n this._maxFrac = 0;\n\n const numberStr = format.replace(/[^#,.0]/gu, \"\");\n if (numberStr.includes(\".\")) {\n const fracStr = numberStr.substring(numberStr.indexOf(\".\") + 1);\n\n const maxFrac = fracStr.replace(/,|\\.+/g, \"\");\n this._maxFrac = maxFrac.length;\n\n // replace all but zeros\n const minFrac = maxFrac.replace(/[^0]/gu, \"\");\n this._minFrac = minFrac.length;\n }\n }\n\n /**\n */\n setGroupLength(format: string) {\n this._comma = 0;\n\n const numberStr = format.replace(/[^#,.0]/gu, \"\");\n const intStr = numberStr.includes(\".\")\n ? numberStr.substring(0, numberStr.indexOf(\".\"))\n : numberStr;\n\n if (intStr.includes(\",\")) {\n this._comma = intStr.length - 1 - intStr.lastIndexOf(\",\");\n }\n }\n\n /**\n */\n setMinLength(format: string) {\n const intFormatStr = format.includes(\".\")\n ? format.substring(0, format.indexOf(\".\"))\n : format;\n const intStr = intFormatStr.replace(/[^0]/gu, \"\");\n\n this._minInt = intStr.length > 1 ? intStr.length : 1;\n }\n\n /**\n */\n setPercentage() {\n this._isPercentage = this.suffix.charAt(0) === \"%\";\n }\n\n /**\n * Solves problem where big numbers loose the precision:\n * e.g. Number(23423423423342234.34) => 23423423423342236\n */\n static getNumericString(stringNumber: string): string {\n const number = Number(stringNumber);\n const string = String(number);\n\n if (!string.includes(\".\") && stringNumber.includes(\".\")) {\n // check if original string has all zeros after dot or not\n const precision = stringNumber.substring(stringNumber.indexOf(\".\") + 1);\n if (precision.replace(/0/gu, \"\").length > 0) {\n return stringNumber;\n }\n\n return string;\n }\n\n return stringNumber;\n }\n\n /**\n * Converts formatted value back to non-formatted value\n * e.g. $1,223.06 --> 1223.06\n */\n formatBack(formattedNumber: string): string {\n const stringNumber = String(formattedNumber);\n\n if (!stringNumber) {\n return \"\";\n }\n\n if (!isNaN(stringNumber)) {\n return DecimalFormat.getNumericString(stringNumber);\n }\n\n let tempNumber = formattedNumber;\n\n let negative = false;\n if (formattedNumber.charAt(0) === \"-\") {\n tempNumber = formattedNumber.substr(1);\n negative = true;\n }\n\n const hasPrefix = formattedNumber.startsWith(this.prefix);\n\n const suffixIndex =\n this.suffix === \"\"\n ? formattedNumber.length\n : formattedNumber.indexOf(this.suffix, this.prefix.length + 1);\n\n if (hasPrefix && suffixIndex > 0) {\n tempNumber = tempNumber.substr(0, suffixIndex);\n tempNumber = tempNumber.substr(this.prefix.length);\n tempNumber = tempNumber.replace(/,/gu, \"\");\n\n if (negative) {\n tempNumber = `-${tempNumber}`;\n }\n\n if (!isNaN(tempNumber)) {\n return DecimalFormat.getNumericString(tempNumber);\n }\n }\n\n return tempNumber;\n }\n\n /**\n */\n static scientificNumber(stringNumber: string): string {\n if (stringNumber.includes(\"e\")) {\n const number = Number(stringNumber);\n if (number === Infinity || number === -Infinity) {\n return stringNumber;\n }\n\n return String(number);\n }\n\n return stringNumber;\n }\n\n /**\n */\n getFracAsNumber(fracStr: string): string {\n const number = Number(`0.${fracStr}`);\n const DECIMAL_RADIX = 10;\n\n return this.maxFrac === 0\n ? Math.round(number).toString(DECIMAL_RADIX)\n : number.toFixed(this.maxFrac);\n }\n\n /**\n */\n getRoundedFrac(fracStr: string): string {\n const num = this.getFracAsNumber(fracStr);\n\n // toFixed method has bugs on IE (0.7 --> 0)\n return num.substr(2);\n }\n\n /**\n */\n static getFraction(number: string): string {\n let fracStr = number.includes(\".\")\n ? number.substring(number.indexOf(\".\") + 1)\n : \"\";\n\n fracStr = fracStr.replace(/\\./, \"\");\n\n return fracStr;\n }\n\n /**\n */\n getFracCorrectLength(frac: string): string {\n let fracStr = frac;\n\n if (fracStr.length > this.maxFrac) {\n fracStr = this.getRoundedFrac(fracStr);\n }\n\n for (let i = fracStr.length; i < this.minFrac; i++) {\n // if minFrac=4 then 1.12 --> 1.1200\n fracStr = `${fracStr}0`;\n }\n\n while (\n fracStr.length > this.minFrac &&\n fracStr.charAt(fracStr.length - 1) === \"0\"\n ) {\n // if minInt=4 then 00034 --> 0034)\n fracStr = fracStr.substring(0, fracStr.length - 1);\n }\n\n return fracStr;\n }\n\n /**\n */\n getInteger(number: string): string {\n let intStr = number.includes(\".\")\n ? number.substring(0, number.indexOf(\".\"))\n : number;\n\n let doCarry = Number(this.getFracAsNumber(number)) > 1;\n let i = intStr.length - 1;\n\n while (doCarry) {\n if (i === -1) {\n intStr = `1${intStr}`;\n break;\n }\n\n let x = intStr.charAt(i);\n if (x === \"9\") {\n x = \"0\";\n } else {\n x = `${x + 1}`;\n doCarry = false;\n }\n\n intStr =\n intStr.substring(0, i) + x + intStr.substring(i + 1, intStr.length);\n\n i -= 1;\n }\n\n for (let j = intStr.length; j < this.minInt; j++) {\n // if minInt=4 then 034 --> 0034\n intStr = `0${intStr}`;\n }\n\n while (intStr.length > this.minInt && intStr.charAt(0) === \"0\") {\n // if minInt=4 then 00034 --> 0034)\n intStr = intStr.substring(1);\n }\n\n return intStr;\n }\n\n /**\n */\n addGrouping(intStr: string): string {\n let groupedIntStr = intStr;\n\n let j = 0;\n for (let i = groupedIntStr.length; i > 0; i--) {\n // add commas\n if (j !== 0 && j % this.comma === 0) {\n groupedIntStr = `${groupedIntStr.substring(\n 0,\n i,\n )},${groupedIntStr.substring(i)}`;\n j = 0;\n }\n\n j += 1;\n }\n\n return groupedIntStr;\n }\n\n /**\n */\n getFormattedValue(\n intStr: string,\n fracStr: string,\n isNegative: boolean,\n ): string {\n let formattedValue;\n if (fracStr.length > 0)\n formattedValue = `${this.prefix + intStr}.${fracStr}${this.suffix}`;\n else formattedValue = this.prefix + intStr + this.suffix;\n\n if (isNegative) {\n formattedValue = `-${formattedValue}`;\n }\n\n return formattedValue;\n }\n\n /**\n * Formats given value, using the pattern\n * e.g. $#,###.00: 1223.06 --> $1,223.06\n */\n format(stringNumber: string = \"\"): string {\n if (stringNumber === null) {\n return \"\";\n }\n\n let formattedNumber = this.formatBack(stringNumber).toLowerCase();\n\n if (isNaN(formattedNumber) || formattedNumber.length === 0) {\n return stringNumber;\n }\n\n formattedNumber = DecimalFormat.scientificNumber(formattedNumber);\n if (formattedNumber.includes(\"e\")) {\n return formattedNumber;\n }\n\n const isNegative = formattedNumber.charAt(0) === \"-\";\n if (isNegative || formattedNumber.charAt(0) === \"+\") {\n formattedNumber = formattedNumber.substring(1);\n }\n\n let fracStr = DecimalFormat.getFraction(formattedNumber);\n let intStr = this.getInteger(formattedNumber);\n if (this.isPercentage) {\n // Add zeros behind fraction to make sure we have at least two characters and take first two character:\n // 1 --> 100 --> 10\n const addZeroToFrac = `${fracStr}00`.substr(0, 2);\n // Add zeros in front of frac and get last two characters\n const lastTwoFrac = `00${addZeroToFrac}`.substr(-2);\n\n intStr = `${intStr}${lastTwoFrac}`;\n fracStr = fracStr.substr(2);\n }\n\n fracStr = this.getFracCorrectLength(fracStr);\n\n intStr = this.addGrouping(intStr);\n\n return this.getFormattedValue(intStr, fracStr, isNegative);\n }\n}\n\nexport default DecimalFormat;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatValue.js","names":["_exceptions","require","_DecimalFormat","_interopRequireDefault","_parseNumbers","updateGroupingSeparator","input","groupingSeparator","replace","formatValue","value","format","arguments","length","undefined","decimalSeparator","numberValue","parseToNumber","IllegalArgumentException","stringValue","parseNumberToString","formattedValue","DecimalFormat","integer","decimal","split","integerPart","_default","exports","default"],"sources":["../../../src/utils/number/formatValue.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport DecimalFormat from \"./DecimalFormat\";\nimport { parseNumberToString, parseToNumber } from \"./parseNumbers\";\n\n/**\n * @private\n */\nconst updateGroupingSeparator = (input: string, groupingSeparator: string) => {\n if (groupingSeparator == null) {\n return input;\n }\n\n return input.replace(/,/g, groupingSeparator);\n};\n\n/**\n */\nconst formatValue = (\n value: ?number | ?string,\n format: ?string = \"0\",\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\",\n): string => {\n if (value == null) {\n return \"\";\n }\n\n const numberValue =\n typeof value === \"number\"\n ? value\n : parseToNumber(value, groupingSeparator, decimalSeparator);\n\n if (typeof numberValue !== \"number\") {\n throw new IllegalArgumentException(\n `Not a valid number: ${value} for formatValue`,\n );\n }\n\n const stringValue = parseNumberToString(numberValue);\n\n if (format != null) {\n const formattedValue = new DecimalFormat(format).format(stringValue);\n\n const [integer, decimal] = formattedValue.split(\".\");\n\n const integerPart = updateGroupingSeparator(integer, groupingSeparator);\n\n if (decimal) {\n return `${integerPart}${decimalSeparator}${decimal}`;\n }\n\n return integerPart;\n }\n\n return stringValue;\n};\n\nexport default formatValue;\n"],"mappings":";;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA,MAAMI,uBAAuB,GAAGA,CAACC,KAAa,EAAEC,iBAAyB,KAAK;EAC5E,IAAIA,iBAAiB,IAAI,IAAI,EAAE;IAC7B,OAAOD,KAAK;EACd;EAEA,OAAOA,KAAK,CAACE,OAAO,CAAC,IAAI,EAAED,iBAAiB,CAAC;AAC/C,CAAC;;AAED;AACA;AACA,MAAME,WAAW,GAAG,SAAAA,CAClBC,KAAwB,EAIb;EAAA,IAHXC,MAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAAA,IACrBL,iBAAyB,GAAAK,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAAA,IAC/BG,gBAAwB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAE9B,IAAIF,KAAK,IAAI,IAAI,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,MAAMM,WAAW,GACf,OAAON,KAAK,KAAK,QAAQ,GACrBA,KAAK,GACL,IAAAO,2BAAa,EAACP,KAAK,EAAEH,iBAAiB,EAAEQ,gBAAgB,CAAC;EAE/D,IAAI,OAAOC,WAAW,KAAK,QAAQ,EAAE;IACnC,MAAM,IAAIE,oCAAwB,CAC/B,uBAAsBR,KAAM,kBAC/B,CAAC;EACH;EAEA,MAAMS,WAAW,GAAG,IAAAC,iCAAmB,EAACJ,WAAW,CAAC;EAEpD,IAAIL,MAAM,IAAI,IAAI,EAAE;IAClB,MAAMU,cAAc,GAAG,IAAIC,sBAAa,CAACX,MAAM,CAAC,CAACA,MAAM,CAACQ,WAAW,CAAC;IAEpE,MAAM,CAACI,OAAO,EAAEC,OAAO,CAAC,GAAGH,cAAc,CAACI,KAAK,CAAC,GAAG,CAAC;IAEpD,MAAMC,WAAW,GAAGrB,uBAAuB,CAACkB,OAAO,EAAEhB,iBAAiB,CAAC;IAEvE,IAAIiB,OAAO,EAAE;MACX,OAAQ,GAAEE,WAAY,GAAEX,gBAAiB,GAAES,OAAQ,EAAC;IACtD;IAEA,OAAOE,WAAW;EACpB;EAEA,OAAOP,WAAW;AACpB,CAAC;AAAC,IAAAQ,QAAA,
|
|
1
|
+
{"version":3,"file":"formatValue.js","names":["_exceptions","require","_DecimalFormat","_interopRequireDefault","_parseNumbers","updateGroupingSeparator","input","groupingSeparator","replace","formatValue","value","format","arguments","length","undefined","decimalSeparator","numberValue","parseToNumber","IllegalArgumentException","stringValue","parseNumberToString","formattedValue","DecimalFormat","integer","decimal","split","integerPart","_default","exports","default"],"sources":["../../../src/utils/number/formatValue.js"],"sourcesContent":["// @flow\nimport { IllegalArgumentException } from \"../../exceptions\";\n\nimport DecimalFormat from \"./DecimalFormat\";\nimport { parseNumberToString, parseToNumber } from \"./parseNumbers\";\n\n/**\n * @private\n */\nconst updateGroupingSeparator = (input: string, groupingSeparator: string) => {\n if (groupingSeparator == null) {\n return input;\n }\n\n return input.replace(/,/g, groupingSeparator);\n};\n\n/**\n */\nconst formatValue = (\n value: ?number | ?string,\n format: ?string = \"0\",\n groupingSeparator: string = \",\",\n decimalSeparator: string = \".\",\n): string => {\n if (value == null) {\n return \"\";\n }\n\n const numberValue =\n typeof value === \"number\"\n ? value\n : parseToNumber(value, groupingSeparator, decimalSeparator);\n\n if (typeof numberValue !== \"number\") {\n throw new IllegalArgumentException(\n `Not a valid number: ${value} for formatValue`,\n );\n }\n\n const stringValue = parseNumberToString(numberValue);\n\n if (format != null) {\n const formattedValue = new DecimalFormat(format).format(stringValue);\n\n const [integer, decimal] = formattedValue.split(\".\");\n\n const integerPart = updateGroupingSeparator(integer, groupingSeparator);\n\n if (decimal) {\n return `${integerPart}${decimalSeparator}${decimal}`;\n }\n\n return integerPart;\n }\n\n return stringValue;\n};\n\nexport default formatValue;\n"],"mappings":";;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA,MAAMI,uBAAuB,GAAGA,CAACC,KAAa,EAAEC,iBAAyB,KAAK;EAC5E,IAAIA,iBAAiB,IAAI,IAAI,EAAE;IAC7B,OAAOD,KAAK;EACd;EAEA,OAAOA,KAAK,CAACE,OAAO,CAAC,IAAI,EAAED,iBAAiB,CAAC;AAC/C,CAAC;;AAED;AACA;AACA,MAAME,WAAW,GAAG,SAAAA,CAClBC,KAAwB,EAIb;EAAA,IAHXC,MAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAAA,IACrBL,iBAAyB,GAAAK,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAAA,IAC/BG,gBAAwB,GAAAH,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,GAAG;EAE9B,IAAIF,KAAK,IAAI,IAAI,EAAE;IACjB,OAAO,EAAE;EACX;EAEA,MAAMM,WAAW,GACf,OAAON,KAAK,KAAK,QAAQ,GACrBA,KAAK,GACL,IAAAO,2BAAa,EAACP,KAAK,EAAEH,iBAAiB,EAAEQ,gBAAgB,CAAC;EAE/D,IAAI,OAAOC,WAAW,KAAK,QAAQ,EAAE;IACnC,MAAM,IAAIE,oCAAwB,CAC/B,uBAAsBR,KAAM,kBAC/B,CAAC;EACH;EAEA,MAAMS,WAAW,GAAG,IAAAC,iCAAmB,EAACJ,WAAW,CAAC;EAEpD,IAAIL,MAAM,IAAI,IAAI,EAAE;IAClB,MAAMU,cAAc,GAAG,IAAIC,sBAAa,CAACX,MAAM,CAAC,CAACA,MAAM,CAACQ,WAAW,CAAC;IAEpE,MAAM,CAACI,OAAO,EAAEC,OAAO,CAAC,GAAGH,cAAc,CAACI,KAAK,CAAC,GAAG,CAAC;IAEpD,MAAMC,WAAW,GAAGrB,uBAAuB,CAACkB,OAAO,EAAEhB,iBAAiB,CAAC;IAEvE,IAAIiB,OAAO,EAAE;MACX,OAAQ,GAAEE,WAAY,GAAEX,gBAAiB,GAAES,OAAQ,EAAC;IACtD;IAEA,OAAOE,WAAW;EACpB;EAEA,OAAOP,WAAW;AACpB,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEapB,WAAW"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beinformed/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.36.0",
|
|
4
4
|
"description": "Toolbox for be informed javascript layouts",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"bugs": "http://support.beinformed.com",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"styled-components": "^5.0.0"
|
|
83
83
|
},
|
|
84
84
|
"dependencies": {
|
|
85
|
-
"@babel/runtime-corejs3": "^7.23.
|
|
85
|
+
"@babel/runtime-corejs3": "^7.23.2",
|
|
86
86
|
"big.js": "^6.2.1",
|
|
87
87
|
"date-fns": "^2.30.0",
|
|
88
88
|
"deepmerge": "^4.3.1",
|
|
@@ -99,13 +99,13 @@
|
|
|
99
99
|
},
|
|
100
100
|
"devDependencies": {
|
|
101
101
|
"@babel/cli": "^7.23.0",
|
|
102
|
-
"@babel/core": "^7.23.
|
|
102
|
+
"@babel/core": "^7.23.2",
|
|
103
103
|
"@babel/eslint-parser": "^7.22.15",
|
|
104
104
|
"@babel/eslint-plugin": "^7.22.10",
|
|
105
105
|
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
106
106
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
107
|
-
"@babel/plugin-transform-runtime": "^7.
|
|
108
|
-
"@babel/preset-env": "^7.
|
|
107
|
+
"@babel/plugin-transform-runtime": "^7.23.2",
|
|
108
|
+
"@babel/preset-env": "^7.23.2",
|
|
109
109
|
"@babel/preset-flow": "^7.22.15",
|
|
110
110
|
"@babel/preset-react": "^7.22.15",
|
|
111
111
|
"@commitlint/cli": "^17.7.2",
|
|
@@ -115,15 +115,15 @@
|
|
|
115
115
|
"babel-jest": "^29.7.0",
|
|
116
116
|
"babel-plugin-styled-components": "^2.1.4",
|
|
117
117
|
"cherry-pick": "^0.5.0",
|
|
118
|
-
"commit-and-tag-version": "^11.
|
|
118
|
+
"commit-and-tag-version": "^11.3.0",
|
|
119
119
|
"cross-env": "^7.0.3",
|
|
120
120
|
"documentation": "^14.0.2",
|
|
121
|
-
"eslint": "^8.
|
|
121
|
+
"eslint": "^8.52.0",
|
|
122
122
|
"eslint-config-prettier": "^9.0.0",
|
|
123
123
|
"eslint-plugin-babel": "^5.3.1",
|
|
124
|
-
"eslint-plugin-ft-flow": "^3.0.
|
|
125
|
-
"eslint-plugin-import": "^2.
|
|
126
|
-
"eslint-plugin-jest": "^27.4.
|
|
124
|
+
"eslint-plugin-ft-flow": "^3.0.1",
|
|
125
|
+
"eslint-plugin-import": "^2.29.0",
|
|
126
|
+
"eslint-plugin-jest": "^27.4.3",
|
|
127
127
|
"eslint-plugin-jsdoc": "^46.8.2",
|
|
128
128
|
"eslint-plugin-react": "^7.33.2",
|
|
129
129
|
"eslint-plugin-react-hooks": "^4.5.0",
|
|
@@ -131,6 +131,7 @@
|
|
|
131
131
|
"flow-bin": "^0.200.1",
|
|
132
132
|
"flow-copy-source": "^2.0.9",
|
|
133
133
|
"flow-typed": "^3.9.0",
|
|
134
|
+
"hermes-eslint": "^0.17.0",
|
|
134
135
|
"history": "^4.0.0",
|
|
135
136
|
"husky": "^8.0.3",
|
|
136
137
|
"jest": "^29.7.0",
|
|
@@ -158,4 +158,13 @@ export const LayoutHintConfiguration = {
|
|
|
158
158
|
link: "",
|
|
159
159
|
component: ["attribute"],
|
|
160
160
|
},
|
|
161
|
+
HIDE_IN_USER_INTERFACE: {
|
|
162
|
+
hint: "hide-in-user-interface",
|
|
163
|
+
description: {
|
|
164
|
+
NL: "Verberg een link in de user interface.",
|
|
165
|
+
EN: "Hide a link in the user interface.",
|
|
166
|
+
},
|
|
167
|
+
link: "",
|
|
168
|
+
component: ["tab", "taskgroup"],
|
|
169
|
+
},
|
|
161
170
|
};
|
|
@@ -115,6 +115,11 @@ export const CASEVIEW_LINK: string = getHint("CASEVIEW_LINK");
|
|
|
115
115
|
*/
|
|
116
116
|
export const RENDER_SECTION_LABEL = "render-section-label";
|
|
117
117
|
|
|
118
|
+
/**
|
|
119
|
+
* Layout-hint: Hide a link to a component
|
|
120
|
+
*/
|
|
121
|
+
export const HIDE_IN_USER_INTERFACE: string = getHint("HIDE_IN_USER_INTERFACE");
|
|
122
|
+
|
|
118
123
|
/**
|
|
119
124
|
*/
|
|
120
125
|
export const getLayoutHintConfiguration = (): Object => LayoutHintConfiguration;
|
|
@@ -16,7 +16,9 @@ export default class ActionCollection extends BaseCollection<ActionModel> {
|
|
|
16
16
|
const actionModels = [];
|
|
17
17
|
for (const actionData of actions) {
|
|
18
18
|
const actionContribution = actionsContributions.find(
|
|
19
|
-
(actionContribution) =>
|
|
19
|
+
(actionContribution) =>
|
|
20
|
+
actionContribution.name === actionData.name &&
|
|
21
|
+
actionContribution.type !== "service-operation",
|
|
20
22
|
);
|
|
21
23
|
|
|
22
24
|
if (actionContribution) {
|
|
@@ -37,7 +37,7 @@ describe("application", () => {
|
|
|
37
37
|
|
|
38
38
|
expect(application).toBeInstanceOf(ApplicationModel);
|
|
39
39
|
expect(application.label).toBe("Webapp");
|
|
40
|
-
expect(application.tabs.size).toBe(
|
|
40
|
+
expect(application.tabs.size).toBe(3);
|
|
41
41
|
expect(application.getInitialChildModelLinks()).toHaveLength(1);
|
|
42
42
|
expect(application.modelcatalog.label).toBe("Model catalog");
|
|
43
43
|
|
|
@@ -93,6 +93,7 @@ describe("normalizeLinkJSON spec", () => {
|
|
|
93
93
|
name: "UTBookPrints",
|
|
94
94
|
label: "UT Book prints",
|
|
95
95
|
resourcetype: "Tab",
|
|
96
|
+
layouthint: ["hide-in-user-interface"],
|
|
96
97
|
},
|
|
97
98
|
{
|
|
98
99
|
name: "UsersAndOrganizations",
|
|
@@ -113,7 +114,7 @@ describe("normalizeLinkJSON spec", () => {
|
|
|
113
114
|
|
|
114
115
|
const output = normalizeLinkJSON(data, contributions);
|
|
115
116
|
|
|
116
|
-
expect(output).toHaveLength(
|
|
117
|
+
expect(output).toHaveLength(11);
|
|
117
118
|
});
|
|
118
119
|
|
|
119
120
|
it("should create an array of link json from caseview links", () => {
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// @flow
|
|
2
|
+
import { HIDE_IN_USER_INTERFACE } from "../../constants";
|
|
3
|
+
|
|
2
4
|
/**
|
|
3
5
|
* Flatten JSON structure into a one dimensional array
|
|
4
6
|
* @private
|
|
5
7
|
*/
|
|
6
8
|
const createLink = (link: Object, linkKey: string) => {
|
|
7
|
-
const newLink = link;
|
|
9
|
+
const newLink = { ...link };
|
|
8
10
|
newLink.group = linkKey;
|
|
11
|
+
newLink.layouthint = link.layouthint ? [...link.layouthint] : [];
|
|
9
12
|
return newLink;
|
|
10
13
|
};
|
|
11
14
|
|
|
@@ -51,6 +54,9 @@ const flattenContributionsJSON = (json: Object) => {
|
|
|
51
54
|
if (!newLink.group) {
|
|
52
55
|
newLink.group = linkKey;
|
|
53
56
|
}
|
|
57
|
+
if (!newLink.layouthint) {
|
|
58
|
+
newLink.layouthint = [];
|
|
59
|
+
}
|
|
54
60
|
|
|
55
61
|
flattenedJSON.push(newLink);
|
|
56
62
|
}
|
|
@@ -90,16 +96,26 @@ const normalizeLinkJSON = (
|
|
|
90
96
|
data: link,
|
|
91
97
|
contributions: flattenedContributions.find(
|
|
92
98
|
(contr) => contr.name === link.name,
|
|
93
|
-
) || {
|
|
99
|
+
) || {
|
|
100
|
+
name: link.name,
|
|
101
|
+
label: link.name ?? "",
|
|
102
|
+
layouthint: link.layouthint ?? [],
|
|
103
|
+
},
|
|
94
104
|
})),
|
|
95
105
|
...filteredContributions.map((link) => ({
|
|
96
106
|
data: {
|
|
97
107
|
...link,
|
|
98
108
|
href: link.href || "",
|
|
99
109
|
},
|
|
100
|
-
contributions: {
|
|
110
|
+
contributions: {
|
|
111
|
+
name: link.name,
|
|
112
|
+
label: link.name ?? "",
|
|
113
|
+
layouthint: link.layouthint,
|
|
114
|
+
},
|
|
101
115
|
})),
|
|
102
|
-
]
|
|
116
|
+
].filter(
|
|
117
|
+
(link) => !link.contributions.layouthint.includes(HIDE_IN_USER_INTERFACE),
|
|
118
|
+
);
|
|
103
119
|
};
|
|
104
120
|
|
|
105
121
|
export default normalizeLinkJSON;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import TaskGroupModel from "../TaskGroupModel";
|
|
2
|
+
import ModularUIResponse from "../../../modularui/ModularUIResponse";
|
|
3
|
+
import mockTaskGroup from "./taskgroup.json";
|
|
4
|
+
import mockTaskGroupContributions from "./taskgroupContributions.json";
|
|
2
5
|
|
|
3
6
|
describe("taskGroupModel", () => {
|
|
4
7
|
it("should be able to create an empty Taskgroup mode", () => {
|
|
@@ -6,4 +9,18 @@ describe("taskGroupModel", () => {
|
|
|
6
9
|
|
|
7
10
|
expect(taskgroup).toBeInstanceOf(TaskGroupModel);
|
|
8
11
|
});
|
|
12
|
+
|
|
13
|
+
it("should create an application object with links an a label on a typical modular ui response", () => {
|
|
14
|
+
const data = ModularUIResponse.create({
|
|
15
|
+
key: "TaskGroup",
|
|
16
|
+
data: mockTaskGroup,
|
|
17
|
+
contributions: mockTaskGroupContributions,
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
const taskgroup = new TaskGroupModel(data);
|
|
21
|
+
|
|
22
|
+
expect(taskgroup).toBeInstanceOf(TaskGroupModel);
|
|
23
|
+
expect(taskgroup.label).toBe("General tasks");
|
|
24
|
+
expect(taskgroup.actionCollection.size).toBe(2);
|
|
25
|
+
});
|
|
9
26
|
});
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"taskgroup": {
|
|
3
|
+
"_links": {
|
|
4
|
+
"self": { "href": "/books/GeneralTasks" },
|
|
5
|
+
"api_doc": { "href": "/api-docs/v3/books/GeneralTasks" },
|
|
6
|
+
"contributions": { "href": "/contributions/books/GeneralTasks" }
|
|
7
|
+
},
|
|
8
|
+
"actions": [
|
|
9
|
+
{
|
|
10
|
+
"name": "CreatePersonRef",
|
|
11
|
+
"method": "POST",
|
|
12
|
+
"href": "/books/GeneralTasks/CreatePersonRef"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "UpdatePasswordOfCurrentUser_ref",
|
|
16
|
+
"method": "POST",
|
|
17
|
+
"href": "/books/GeneralTasks/UpdatePasswordOfCurrentUser_ref"
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"name": "ServiceOperation",
|
|
21
|
+
"href": "/service-operation/so/task"
|
|
22
|
+
}
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"taskgroup": {
|
|
3
|
+
"label": "General tasks",
|
|
4
|
+
"resourcetype": "TaskGroup",
|
|
5
|
+
"actions": [
|
|
6
|
+
{
|
|
7
|
+
"name": "CreatePersonRef",
|
|
8
|
+
"label": "Create person",
|
|
9
|
+
"type": "form"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"name": "UpdatePasswordOfCurrentUser_ref",
|
|
13
|
+
"label": "Update password of current user",
|
|
14
|
+
"type": "form"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "ServiceOperation",
|
|
18
|
+
"label": "Service Operation",
|
|
19
|
+
"type": "service-operation"
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
23
|
+
}
|