@beinformed/ui 1.65.24 → 1.65.26
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 +18 -0
- package/esm/builder/mergeLayoutHintConfigurations.js +7 -5
- package/esm/builder/mergeLayoutHintConfigurations.js.flow +12 -5
- package/esm/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/esm/constants/Settings.js +4 -1
- package/esm/constants/Settings.js.flow +3 -3
- package/esm/constants/Settings.js.map +1 -1
- package/esm/hooks/useAuthentication.js +7 -3
- package/esm/hooks/useAuthentication.js.flow +6 -3
- package/esm/hooks/useAuthentication.js.map +1 -1
- package/esm/hooks/useModelCatalog.js +1 -1
- package/esm/hooks/useModelCatalog.js.flow +1 -1
- package/esm/hooks/useModelCatalog.js.map +1 -1
- package/esm/i18n/Locale.js +7 -1
- package/esm/i18n/Locale.js.flow +4 -2
- package/esm/i18n/Locale.js.map +1 -1
- package/esm/models/actions/ActionCollection.js +1 -1
- package/esm/models/actions/ActionCollection.js.flow +3 -3
- package/esm/models/actions/ActionCollection.js.map +1 -1
- package/esm/models/application/ApplicationModel.js +6 -1
- package/esm/models/application/ApplicationModel.js.flow +7 -2
- package/esm/models/application/ApplicationModel.js.map +1 -1
- package/esm/models/attributes/ChoiceAttributeModel.js +3 -5
- package/esm/models/attributes/ChoiceAttributeModel.js.flow +3 -5
- package/esm/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js.flow +1 -1
- package/esm/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/esm/models/attributes/NumberAttributeModel.js +3 -1
- package/esm/models/attributes/NumberAttributeModel.js.flow +2 -1
- package/esm/models/attributes/NumberAttributeModel.js.map +1 -1
- package/esm/models/attributes/StringAttributeModel.js +9 -4
- package/esm/models/attributes/StringAttributeModel.js.flow +7 -4
- package/esm/models/attributes/StringAttributeModel.js.map +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.flow +1 -1
- package/esm/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/esm/models/base/BaseModel.js +8 -5
- package/esm/models/base/BaseModel.js.flow +8 -5
- package/esm/models/base/BaseModel.js.map +1 -1
- package/esm/models/base/ResourceModel.js +6 -7
- package/esm/models/base/ResourceModel.js.flow +4 -4
- package/esm/models/base/ResourceModel.js.map +1 -1
- package/esm/models/concepts/ConceptDetailModel.js +16 -16
- package/esm/models/concepts/ConceptDetailModel.js.flow +16 -19
- package/esm/models/concepts/ConceptDetailModel.js.map +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js +1 -1
- package/esm/models/concepts/SourceReferenceCollection.js.flow +1 -2
- package/esm/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/esm/models/content/ContentLinkModel.js +6 -6
- package/esm/models/content/ContentLinkModel.js.flow +6 -6
- package/esm/models/content/ContentLinkModel.js.map +1 -1
- package/esm/models/filters/BaseFilterModel.js +3 -5
- package/esm/models/filters/BaseFilterModel.js.flow +4 -5
- package/esm/models/filters/BaseFilterModel.js.map +1 -1
- package/esm/models/filters/StringFilterModel.js +4 -2
- package/esm/models/filters/StringFilterModel.js.flow +3 -2
- package/esm/models/filters/StringFilterModel.js.map +1 -1
- package/esm/models/form/FormModel.js +1 -1
- package/esm/models/form/FormModel.js.flow +1 -2
- package/esm/models/form/FormModel.js.map +1 -1
- package/esm/models/form/FormObjectModel.js +1 -1
- package/esm/models/form/FormObjectModel.js.flow +2 -3
- package/esm/models/form/FormObjectModel.js.map +1 -1
- package/esm/models/href/Href.js +2 -2
- package/esm/models/href/Href.js.flow +2 -2
- package/esm/models/href/Href.js.map +1 -1
- package/esm/models/index.js +2 -2
- package/esm/models/index.js.flow +1 -2
- package/esm/models/index.js.map +1 -1
- package/esm/models/links/normalizeLinkJSON.js +1 -1
- package/esm/models/links/normalizeLinkJSON.js.flow +1 -1
- package/esm/models/links/normalizeLinkJSON.js.map +1 -1
- package/esm/modularui/Authenticate.js +7 -2
- package/esm/modularui/Authenticate.js.flow +4 -2
- package/esm/modularui/Authenticate.js.map +1 -1
- package/esm/modularui/ModularUIRequest.js +2 -5
- package/esm/modularui/ModularUIRequest.js.flow +2 -6
- package/esm/modularui/ModularUIRequest.js.map +1 -1
- package/esm/modularui/UploadRequest.js +3 -1
- package/esm/modularui/UploadRequest.js.flow +3 -1
- package/esm/modularui/UploadRequest.js.map +1 -1
- package/esm/react-client/client.js +22 -10
- package/esm/react-client/client.js.flow +17 -11
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-client/contextPath.js +3 -1
- package/esm/react-client/contextPath.js.flow +2 -1
- package/esm/react-client/contextPath.js.map +1 -1
- package/esm/redux/_i18n/I18nReducer.js +1 -4
- package/esm/redux/_i18n/I18nReducer.js.flow +1 -4
- package/esm/redux/_i18n/I18nReducer.js.map +1 -1
- package/esm/redux/_modularui/ModularUIActions.js +1 -4
- package/esm/redux/_modularui/ModularUIActions.js.flow +1 -5
- package/esm/redux/_modularui/ModularUIActions.js.map +1 -1
- package/esm/redux/_modularui/ModularUIConnector.js +3 -4
- package/esm/redux/_modularui/ModularUIConnector.js.flow +2 -1
- package/esm/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/esm/redux/_modularui/ModularUIReducer.js +6 -3
- package/esm/redux/_modularui/ModularUIReducer.js.flow +2 -2
- package/esm/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/esm/redux/actions/Authorization.js +4 -2
- package/esm/redux/actions/Authorization.js.flow +3 -2
- package/esm/redux/actions/Authorization.js.map +1 -1
- package/esm/redux/actions/Preferences.js +4 -4
- package/esm/redux/actions/Preferences.js.flow +6 -10
- package/esm/redux/actions/Preferences.js.map +1 -1
- package/esm/redux/reducers/ModelCatalogReducer.js +7 -9
- package/esm/redux/reducers/ModelCatalogReducer.js.flow +8 -9
- package/esm/redux/reducers/ModelCatalogReducer.js.map +1 -1
- package/esm/redux/store/configureStore.js +6 -1
- package/esm/redux/store/configureStore.js.flow +4 -1
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/redux/types.js.flow +10 -1
- package/esm/redux/types.js.map +1 -1
- package/esm/utils/browser/Cache.js +3 -1
- package/esm/utils/browser/Cache.js.flow +2 -1
- package/esm/utils/browser/Cache.js.map +1 -1
- package/esm/utils/browser/__tests__/Cookies.spec.js.flow +2 -1
- package/esm/utils/datetime/DateTimeUtil.js +6 -5
- package/esm/utils/datetime/DateTimeUtil.js.flow +5 -11
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/esm/utils/datetime/__tests__/DateTimeFormat.spec.js.flow +0 -6
- package/esm/utils/fetch/universalFetch.js +7 -8
- package/esm/utils/fetch/universalFetch.js.flow +13 -14
- package/esm/utils/fetch/universalFetch.js.map +1 -1
- package/esm/utils/fetch/xhr.js +2 -5
- package/esm/utils/fetch/xhr.js.flow +2 -6
- package/esm/utils/fetch/xhr.js.map +1 -1
- package/esm/utils/helpers/createHref.js +4 -1
- package/esm/utils/helpers/createHref.js.flow +2 -1
- package/esm/utils/helpers/createHref.js.map +1 -1
- package/esm/utils/helpers/createUUID.js +2 -1
- package/esm/utils/helpers/createUUID.js.flow +1 -1
- package/esm/utils/helpers/createUUID.js.map +1 -1
- package/esm/utils/number/parseNumbers.js +6 -3
- package/esm/utils/number/parseNumbers.js.flow +4 -3
- package/esm/utils/number/parseNumbers.js.map +1 -1
- package/lib/builder/mergeLayoutHintConfigurations.js +7 -5
- package/lib/builder/mergeLayoutHintConfigurations.js.map +1 -1
- package/lib/constants/Settings.js +4 -1
- package/lib/constants/Settings.js.map +1 -1
- package/lib/hooks/useAuthentication.js +7 -3
- package/lib/hooks/useAuthentication.js.map +1 -1
- package/lib/hooks/useModelCatalog.js +1 -1
- package/lib/hooks/useModelCatalog.js.map +1 -1
- package/lib/i18n/Locale.js +7 -1
- package/lib/i18n/Locale.js.map +1 -1
- package/lib/models/actions/ActionCollection.js +1 -1
- package/lib/models/actions/ActionCollection.js.map +1 -1
- package/lib/models/application/ApplicationModel.js +6 -1
- package/lib/models/application/ApplicationModel.js.map +1 -1
- package/lib/models/attributes/ChoiceAttributeModel.js +3 -5
- package/lib/models/attributes/ChoiceAttributeModel.js.map +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js +1 -1
- package/lib/models/attributes/CompositeAttributeModel.js.map +1 -1
- package/lib/models/attributes/NumberAttributeModel.js +3 -1
- package/lib/models/attributes/NumberAttributeModel.js.map +1 -1
- package/lib/models/attributes/StringAttributeModel.js +9 -4
- package/lib/models/attributes/StringAttributeModel.js.map +1 -1
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js +1 -1
- package/lib/models/attributes/input-constraints/DatetimeFormatConstraint.js.map +1 -1
- package/lib/models/base/BaseModel.js +8 -5
- package/lib/models/base/BaseModel.js.map +1 -1
- package/lib/models/base/ResourceModel.js +6 -7
- package/lib/models/base/ResourceModel.js.map +1 -1
- package/lib/models/concepts/ConceptDetailModel.js +16 -16
- package/lib/models/concepts/ConceptDetailModel.js.map +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js +1 -1
- package/lib/models/concepts/SourceReferenceCollection.js.map +1 -1
- package/lib/models/content/ContentLinkModel.js +6 -6
- package/lib/models/content/ContentLinkModel.js.map +1 -1
- package/lib/models/filters/BaseFilterModel.js +3 -5
- package/lib/models/filters/BaseFilterModel.js.map +1 -1
- package/lib/models/filters/StringFilterModel.js +4 -2
- package/lib/models/filters/StringFilterModel.js.map +1 -1
- package/lib/models/form/FormModel.js +1 -1
- package/lib/models/form/FormModel.js.map +1 -1
- package/lib/models/form/FormObjectModel.js +1 -1
- package/lib/models/form/FormObjectModel.js.map +1 -1
- package/lib/models/href/Href.js +2 -2
- package/lib/models/href/Href.js.map +1 -1
- package/lib/models/index.js.map +1 -1
- package/lib/models/links/normalizeLinkJSON.js +1 -1
- package/lib/models/links/normalizeLinkJSON.js.map +1 -1
- package/lib/modularui/Authenticate.js +7 -2
- package/lib/modularui/Authenticate.js.map +1 -1
- package/lib/modularui/ModularUIRequest.js +2 -5
- package/lib/modularui/ModularUIRequest.js.map +1 -1
- package/lib/modularui/UploadRequest.js +3 -1
- package/lib/modularui/UploadRequest.js.map +1 -1
- package/lib/react-client/client.js +22 -10
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-client/contextPath.js +4 -1
- package/lib/react-client/contextPath.js.map +1 -1
- package/lib/redux/_i18n/I18nReducer.js +1 -4
- package/lib/redux/_i18n/I18nReducer.js.map +1 -1
- package/lib/redux/_modularui/ModularUIActions.js +1 -4
- package/lib/redux/_modularui/ModularUIActions.js.map +1 -1
- package/lib/redux/_modularui/ModularUIConnector.js +3 -4
- package/lib/redux/_modularui/ModularUIConnector.js.map +1 -1
- package/lib/redux/_modularui/ModularUIReducer.js +6 -3
- package/lib/redux/_modularui/ModularUIReducer.js.map +1 -1
- package/lib/redux/actions/Authorization.js +4 -2
- package/lib/redux/actions/Authorization.js.map +1 -1
- package/lib/redux/actions/Preferences.js +4 -4
- package/lib/redux/actions/Preferences.js.map +1 -1
- package/lib/redux/reducers/ModelCatalogReducer.js +7 -9
- package/lib/redux/reducers/ModelCatalogReducer.js.map +1 -1
- package/lib/redux/store/configureStore.js +6 -1
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/redux/types.js.map +1 -1
- package/lib/utils/browser/Cache.js +3 -1
- package/lib/utils/browser/Cache.js.map +1 -1
- package/lib/utils/datetime/DateTimeUtil.js +6 -5
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/utils/fetch/universalFetch.js +7 -8
- package/lib/utils/fetch/universalFetch.js.map +1 -1
- package/lib/utils/fetch/xhr.js +2 -5
- package/lib/utils/fetch/xhr.js.map +1 -1
- package/lib/utils/helpers/createHref.js +4 -1
- package/lib/utils/helpers/createHref.js.map +1 -1
- package/lib/utils/helpers/createUUID.js +3 -1
- package/lib/utils/helpers/createUUID.js.map +1 -1
- package/lib/utils/number/parseNumbers.js +6 -3
- package/lib/utils/number/parseNumbers.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeUtil.js","names":["_format","require","_isAfter","_isBefore","_isSameDay","_isValid","_parse","_add","_sub","_set","_startOfMonth","_endOfMonth","_startOfWeek","_getHours","_getMinutes","_getDay","_getWeek","_locale","_tz","_timezoneSoft","_interopRequireDefault","_constants","_Cookies","BaseDateTimeUtil","constructor","isoFormat","doOffsets","_defineProperty2","default","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","_doOffsets","isIncludeTimeOffsetInDateTimes","getOptions","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","getIsoFormat","DATETIME_OFFSET_FORMAT","convertFormat","javaFormat","_context","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sort","_keys","call","a","b","length","javaToken","uts35Token","regex","RegExp","replace","getLocale","defaultLocale","getEnabledLocales","locale","getCookie","nl","enGB","toDate","date","inputFormat","Date","parse","in","getDateFnsContext","toFormat","targetFormat","parsedDate","isValid","format","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","isBefore","isAfter","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isSameDay","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","isAmbiguous","dateTime","t","_map","x","newDate","add","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","sub","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","IS_GRAALJS","tz","undefined","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context2","_context3","sign","offset","absOffset","Math","abs","_trunc","round","offsetString","_padStart","String","label","name","abbr","timezone","soft","DateUtil","exports","ISO_DATE_FORMAT","DateTimeUtil","ISO_DATETIME_FORMAT","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport { format } from \"date-fns/format\";\nimport { isAfter } from \"date-fns/isAfter\";\nimport { isBefore } from \"date-fns/isBefore\";\nimport { isSameDay } from \"date-fns/isSameDay\";\nimport { isValid } from \"date-fns/isValid\";\nimport { parse } from \"date-fns/parse\";\nimport { add } from \"date-fns/add\";\nimport { sub } from \"date-fns/sub\";\nimport { set } from \"date-fns/set\";\nimport { startOfMonth } from \"date-fns/startOfMonth\";\nimport { endOfMonth } from \"date-fns/endOfMonth\";\nimport { startOfWeek } from \"date-fns/startOfWeek\";\nimport { getHours } from \"date-fns/getHours\";\nimport { getMinutes } from \"date-fns/getMinutes\";\nimport { getDay } from \"date-fns/getDay\";\nimport { getWeek } from \"date-fns/getWeek\";\n\nimport { enGB, nl } from \"date-fns/locale\";\nimport { tz } from \"@date-fns/tz\";\n\nimport soft from \"timezone-soft\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n DEFAULT_WEEK_STARTS_ON,\n getEnabledLocales,\n getSetting,\n IS_GRAALJS,\n isIncludeTimeOffsetInDateTimes,\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n} from \"../../constants\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\ntype OffsetInfoInput = {\n abbr: string,\n offset: number,\n name: string,\n};\n\nexport type OffsetInfo = {\n abbr: string,\n label: string,\n value: string,\n};\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n _doOffsets: boolean;\n\n _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string, doOffsets: boolean = false) {\n this._isoFormat = isoFormat;\n this._doOffsets = doOffsets;\n }\n\n /**\n * Indicates if offsets and timezones are relevant\n */\n get doOffsets(): boolean {\n return this._doOffsets ? isIncludeTimeOffsetInDateTimes() : false;\n }\n\n /**\n * Returns the options defined in settings\n */\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON,\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n getIsoFormat(): string {\n if (this.doOffsets) {\n return this._isoFormat + DATETIME_OFFSET_FORMAT;\n }\n return this._isoFormat;\n }\n\n /**\n */\n convertFormat(javaFormat: string): string {\n if (!javaFormat) {\n return this.getIsoFormat();\n }\n\n const javaToUTS35Map = {\n ZZZ: \"xxx\",\n ZZ: \"xx\",\n Z: \"x\",\n };\n\n // Replace Java pattern tokens with UTS #35 tokens\n let uts35Format = javaFormat;\n\n // Sort keys by length (descending) to handle multi-character tokens first\n const sortedKeys = Object.keys(javaToUTS35Map).sort(\n (a, b) => b.length - a.length,\n );\n\n for (const javaToken of sortedKeys) {\n const uts35Token = javaToUTS35Map[javaToken];\n const regex = new RegExp(javaToken, \"g\"); // Match all occurrences\n uts35Format = uts35Format.replace(regex, uts35Token);\n }\n\n return uts35Format;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const defaultLocale = getEnabledLocales()[0];\n const locale = getCookie(\"locale\") ?? defaultLocale ?? \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n /**\n */\n toDate(date: string | Date, inputFormat: string = this.getIsoFormat()): Date {\n if (date instanceof Date) {\n return date;\n }\n\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(\n date: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(date, inputFormat);\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(\n date: string | Date,\n sourceFormat: string = this.getIsoFormat(),\n ): string {\n return this.toFormat(date, this.getIsoFormat(), sourceFormat);\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n //////////// VALIDATION\n\n /**\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const parsedDate = this.toDate(date, sourceFormat);\n\n const formattedValue = this.toFormat(parsedDate, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(parsedDate, new Date(1000, 1, 1)) ||\n isAfter(parsedDate, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n /**\n */\n isValid(\n date: string | Date | null | void,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (!date) {\n return false;\n }\n\n const parsedDate = this.toDate(date, inputFormat);\n return isValid(parsedDate);\n }\n\n /**\n */\n isAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string | Date,\n compareDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat),\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string | Date): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * Checks if a given local date and time is ambiguous in the specified timezone.\n * Ambiguity happens during the end of daylight saving time (DST) transitions.\n */\n isAmbiguous(\n inputDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (inputDate == null || typeof Intl === \"undefined\") {\n return false;\n }\n\n const dateTime = this.toDate(inputDate, inputFormat);\n if (!isValid(dateTime)) {\n return false;\n }\n\n const t = [60, -60, 30, -30];\n const a = t.map((x) => {\n const newDate = add(dateTime, { minutes: x });\n return format(newDate, \"HH:mm\");\n });\n const time = format(dateTime, \"HH:mm\");\n return a.indexOf(time) > -1;\n }\n\n //////////// CALCULATIONS\n\n /**\n * @private\n */\n _calculate(\n date: string | Date,\n calculationFn: Function,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n calculationFn(\n parsedDate,\n { [property]: value },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n /**\n */\n addSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n addMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n addHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n addDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"days\", amount, inputFormat);\n }\n\n /**\n */\n addWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n addMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"months\", amount, inputFormat);\n }\n\n /**\n */\n addYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"years\", amount, inputFormat);\n }\n\n /**\n */\n subtractSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n subtractMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n subtractHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n subtractDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"days\", amount, inputFormat);\n }\n\n /**\n */\n subtractWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n subtractMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"months\", amount, inputFormat);\n }\n\n /**\n */\n subtractYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"years\", amount, inputFormat);\n }\n\n //////////// GETTERS\n\n /**\n * @private\n */\n _get(\n date: string | Date,\n method: Function,\n inputFormat: string = this.getIsoFormat(),\n options: Object = {},\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n method(parsedDate, {\n in: this.getDateFnsContext(),\n ...options,\n }),\n );\n }\n\n /**\n */\n startOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, startOfMonth, inputFormat);\n }\n\n /**\n */\n endOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, endOfMonth, inputFormat);\n }\n\n /**\n */\n startOfWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n return this._get(date, startOfWeek, inputFormat, {\n weekStartsOn,\n });\n }\n\n /**\n */\n getHours(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getHours(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getMinutes(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getMinutes(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n const parsedDate = this.toDate(date, inputFormat);\n return getWeek(parsedDate, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n //////////// SETTERS\n\n /**\n * @private\n */\n _set(\n date: string | Date,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { [property]: value },\n // {\n // in: this.getDateFnsContext(),\n // },\n ),\n );\n }\n\n /**\n */\n setYear(\n date: string | Date,\n year: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"year\", year, inputFormat);\n }\n\n /**\n */\n setMonth(\n date: string | Date,\n month: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"month\", month, inputFormat);\n }\n\n /**\n */\n setDay(\n date: string | Date,\n day: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"date\", day, inputFormat);\n }\n\n /**\n */\n setHour(\n date: string | Date,\n hour: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"hours\", hour, inputFormat);\n }\n\n /**\n */\n setMinute(\n date: string | Date,\n minute: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"minutes\", minute, inputFormat);\n }\n\n /**\n */\n setSecond(\n date: string | Date,\n second: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"seconds\", second, inputFormat);\n }\n\n /**\n */\n setMilliseconds(\n date: string | Date,\n millisecond: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"milliseconds\", millisecond, inputFormat);\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { hours, minutes, seconds, milliseconds },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n //////////// Timezone related\n\n /**\n */\n getTimeZone(): string {\n return this._timeZone;\n }\n\n /**\n */\n setTimeZone(timeZone: string) {\n this._timeZone = timeZone;\n }\n\n /**\n */\n getDateFnsContext(): null | Function {\n if (this.doOffsets && !IS_GRAALJS) {\n return tz(this.getTimeZone());\n }\n return undefined;\n }\n\n //////////// Offsets\n\n /**\n */\n getOffset(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): OffsetInfo | null {\n const parsedDate = this.toDate(date, inputFormat);\n if (isValid(parsedDate)) {\n const dateOffset = this.toFormat(parsedDate, DATETIME_OFFSET_FORMAT);\n const offsets = this.getTimezoneOffsets();\n if (\n typeof offsets.daylight !== \"undefined\" &&\n offsets.daylight.value === dateOffset\n ) {\n return offsets.daylight;\n } else if (\n typeof offsets.standard !== \"undefined\" &&\n offsets.standard.value === dateOffset\n ) {\n return offsets.standard;\n }\n }\n return null;\n }\n\n /**\n */\n getTimezoneOffsets(): {\n standard?: OffsetInfo,\n daylight?: OffsetInfo,\n } {\n const createOffsetObject = (info: OffsetInfoInput): OffsetInfo => {\n const sign = info.offset < 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(info.offset);\n const hours = Math.trunc(absOffset);\n const minutes = Math.round((absOffset % 1) * 60);\n\n const offsetString = `${sign}${String(hours + (minutes === 60 ? 1 : 0)).padStart(2, \"0\")}:${String(minutes % 60).padStart(2, \"0\")}`;\n\n return {\n label: info.name,\n abbr: info.abbr,\n value: offsetString,\n };\n };\n\n const timezone = soft(this.getTimeZone());\n\n if (timezone.length === 0) {\n return {\n standard: {\n label: \"Etc/UTC\",\n abbr: \"Etc/UTC\",\n value: \"+00:00\",\n },\n };\n }\n\n const { daylight, standard } = timezone[0];\n\n if (daylight) {\n return {\n daylight: createOffsetObject(daylight),\n standard: createOffsetObject(standard),\n };\n }\n\n return { standard: createOffsetObject(standard) };\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT,\n true,\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT,\n true,\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DateTimeUtil.js","names":["_format","require","_isAfter","_isBefore","_isSameDay","_isValid","_parse","_add","_sub","_set","_startOfMonth","_endOfMonth","_startOfWeek","_getHours","_getMinutes","_getDay","_getWeek","_locale","_tz","_timezoneSoft","_interopRequireDefault","_constants","_Cookies","BaseDateTimeUtil","constructor","isoFormat","doOffsets","_defineProperty2","default","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","_doOffsets","isIncludeTimeOffsetInDateTimes","getOptions","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","getIsoFormat","DATETIME_OFFSET_FORMAT","convertFormat","javaFormat","_context","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sort","_keys","call","a","b","length","javaToken","uts35Token","regex","RegExp","replace","getLocale","defaultLocale","getEnabledLocales","locale","getCookie","nl","enGB","toDate","date","inputFormat","Date","parse","in","getDateFnsContext","toFormat","targetFormat","parsedDate","isValid","format","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","isBefore","isAfter","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isSameDay","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","isAmbiguous","dateTime","t","_map","x","newDate","add","minutes","time","_includes","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","sub","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","IS_GRAALJS","tz","undefined","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context2","_context3","sign","offset","absOffset","Math","abs","_trunc","round","offsetString","_padStart","String","label","name","abbr","timezone","soft","DateUtil","exports","ISO_DATE_FORMAT","DateTimeUtil","ISO_DATETIME_FORMAT","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport { format } from \"date-fns/format\";\nimport { isAfter } from \"date-fns/isAfter\";\nimport { isBefore } from \"date-fns/isBefore\";\nimport { isSameDay } from \"date-fns/isSameDay\";\nimport { isValid } from \"date-fns/isValid\";\nimport { parse } from \"date-fns/parse\";\nimport { add } from \"date-fns/add\";\nimport { sub } from \"date-fns/sub\";\nimport { set } from \"date-fns/set\";\nimport { startOfMonth } from \"date-fns/startOfMonth\";\nimport { endOfMonth } from \"date-fns/endOfMonth\";\nimport { startOfWeek } from \"date-fns/startOfWeek\";\nimport { getHours } from \"date-fns/getHours\";\nimport { getMinutes } from \"date-fns/getMinutes\";\nimport { getDay } from \"date-fns/getDay\";\nimport { getWeek } from \"date-fns/getWeek\";\n\nimport { enGB, nl } from \"date-fns/locale\";\nimport { tz } from \"@date-fns/tz\";\n\nimport soft from \"timezone-soft\";\n\nimport {\n DATETIME_OFFSET_FORMAT,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n DEFAULT_WEEK_STARTS_ON,\n getEnabledLocales,\n getSetting,\n IS_GRAALJS,\n isIncludeTimeOffsetInDateTimes,\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n} from \"../../constants\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\ntype OffsetInfoInput = {\n abbr: string,\n offset: number,\n name: string,\n};\n\nexport type OffsetInfo = {\n abbr: string,\n label: string,\n value: string,\n};\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n _doOffsets: boolean;\n\n _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string, doOffsets: boolean = false) {\n this._isoFormat = isoFormat;\n this._doOffsets = doOffsets;\n }\n\n /**\n * Indicates if offsets and timezones are relevant\n */\n get doOffsets(): boolean {\n return this._doOffsets ? isIncludeTimeOffsetInDateTimes() : false;\n }\n\n /**\n * Returns the options defined in settings\n */\n getOptions(): {\n weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n firstWeekContainsDate: 1 | 2 | 3 | 4 | 5 | 6 | 7,\n } {\n // indicates on what day the week starts\n const weekStartsOn = getSetting(\n \"CALENDAR_WEEK_STARTS_ON\",\n DEFAULT_WEEK_STARTS_ON,\n );\n\n // indicates which date indicates the first week of the year\n const firstWeekContainsDate = getSetting(\n \"CALENDAR_FIRST_WEEK_CONTAINS_DATE\",\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n );\n\n return { weekStartsOn, firstWeekContainsDate };\n }\n\n /**\n */\n getIsoFormat(): string {\n if (this.doOffsets) {\n return this._isoFormat + DATETIME_OFFSET_FORMAT;\n }\n return this._isoFormat;\n }\n\n /**\n */\n convertFormat(javaFormat: string): string {\n if (!javaFormat) {\n return this.getIsoFormat();\n }\n\n const javaToUTS35Map = {\n ZZZ: \"xxx\",\n ZZ: \"xx\",\n Z: \"x\",\n };\n\n // Replace Java pattern tokens with UTS #35 tokens\n let uts35Format = javaFormat;\n\n // Sort keys by length (descending) to handle multi-character tokens first\n const sortedKeys = Object.keys(javaToUTS35Map).sort(\n (a, b) => b.length - a.length,\n );\n\n for (const javaToken of sortedKeys) {\n const uts35Token = javaToUTS35Map[javaToken];\n const regex = new RegExp(javaToken, \"g\"); // Match all occurrences\n uts35Format = uts35Format.replace(regex, uts35Token);\n }\n\n return uts35Format;\n }\n\n /**\n */\n getLocale(): typeof nl | typeof enGB {\n const defaultLocale = getEnabledLocales()[0];\n const locale = getCookie(\"locale\") ?? defaultLocale ?? \"en\";\n\n if (locale === \"nl\") {\n return nl;\n }\n\n return enGB;\n }\n\n /**\n */\n toDate(date: string | Date, inputFormat: string = this.getIsoFormat()): Date {\n if (date instanceof Date) {\n return date;\n }\n\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(\n date: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(date, inputFormat);\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(\n date: string | Date,\n sourceFormat: string = this.getIsoFormat(),\n ): string {\n return this.toFormat(date, this.getIsoFormat(), sourceFormat);\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n //////////// VALIDATION\n\n /**\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const parsedDate = this.toDate(date, sourceFormat);\n\n const formattedValue = this.toFormat(parsedDate, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(parsedDate, new Date(1000, 1, 1)) ||\n isAfter(parsedDate, new Date(9999, 11, 31));\n if (isOutsideRange) {\n return false;\n }\n\n return (\n formattedValue.replace(/0/gu, \"\").toUpperCase() ===\n date.replace(/0/gu, \"\").toUpperCase()\n );\n }\n\n /**\n */\n isValid(\n date: string | Date | null | void,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (!date) {\n return false;\n }\n\n const parsedDate = this.toDate(date, inputFormat);\n return isValid(parsedDate);\n }\n\n /**\n */\n isAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n isAfter(this.toDate(inputDate, inputFormat), this.toDate(afterISODate))\n );\n }\n\n /**\n */\n isSameOrAfter(\n inputDate: string | Date,\n afterISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n afterISODate != null &&\n (this.isAfter(inputDate, afterISODate, inputFormat) ||\n this.isSame(inputDate, afterISODate, inputFormat))\n );\n }\n\n /**\n */\n isBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n isBefore(this.toDate(inputDate, inputFormat), this.toDate(beforeISODate))\n );\n }\n\n /**\n */\n isSameOrBefore(\n inputDate: string | Date,\n beforeISODate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n beforeISODate != null &&\n (this.isBefore(inputDate, beforeISODate, inputFormat) ||\n this.isSame(inputDate, beforeISODate, inputFormat))\n );\n }\n\n /**\n */\n isSame(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n this.toDate(inputDate, inputFormat).getTime() ===\n this.toDate(compareDate).getTime()\n );\n }\n\n /**\n */\n isSameDay(\n inputDate: string | Date,\n compareDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return (\n compareDate != null &&\n isSameDay(\n this.toDate(inputDate, inputFormat),\n this.toDate(compareDate, inputFormat),\n )\n );\n }\n\n /**\n */\n isOther(\n inputDate: string | Date,\n compareDate: ?string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string | Date): boolean {\n const SATURDAY_NUMBER = 6;\n const SUNDAY_NUMBER = 0;\n const weekDay = getDay(this.toDate(inputDate));\n\n return weekDay === SATURDAY_NUMBER || weekDay === SUNDAY_NUMBER;\n }\n\n /**\n * Checks if a given local date and time is ambiguous in the specified timezone.\n * Ambiguity happens during the end of daylight saving time (DST) transitions.\n */\n isAmbiguous(\n inputDate: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): boolean {\n if (inputDate == null || typeof Intl === \"undefined\") {\n return false;\n }\n\n const dateTime = this.toDate(inputDate, inputFormat);\n if (!isValid(dateTime)) {\n return false;\n }\n\n const t = [60, -60, 30, -30];\n const a = t.map((x) => {\n const newDate = add(dateTime, { minutes: x });\n return format(newDate, \"HH:mm\");\n });\n const time = format(dateTime, \"HH:mm\");\n return a.includes(time);\n }\n\n //////////// CALCULATIONS\n\n /**\n * @private\n */\n _calculate(\n date: string | Date,\n calculationFn: Function,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n calculationFn(\n parsedDate,\n { [property]: value },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n /**\n */\n addSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n addMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n addHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n addDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"days\", amount, inputFormat);\n }\n\n /**\n */\n addWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n addMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"months\", amount, inputFormat);\n }\n\n /**\n */\n addYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, add, \"years\", amount, inputFormat);\n }\n\n /**\n */\n subtractSeconds(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"seconds\", amount, inputFormat);\n }\n\n /**\n */\n subtractMinutes(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"minutes\", amount, inputFormat);\n }\n\n /**\n */\n subtractHours(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"hours\", amount, inputFormat);\n }\n\n /**\n */\n subtractDays(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"days\", amount, inputFormat);\n }\n\n /**\n */\n subtractWeeks(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"weeks\", amount, inputFormat);\n }\n\n /**\n */\n subtractMonths(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"months\", amount, inputFormat);\n }\n\n /**\n */\n subtractYears(\n date: string,\n amount: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._calculate(date, sub, \"years\", amount, inputFormat);\n }\n\n //////////// GETTERS\n\n /**\n * @private\n */\n _get(\n date: string | Date,\n method: Function,\n inputFormat: string = this.getIsoFormat(),\n options: Object = {},\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n method(parsedDate, {\n in: this.getDateFnsContext(),\n ...options,\n }),\n );\n }\n\n /**\n */\n startOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, startOfMonth, inputFormat);\n }\n\n /**\n */\n endOfMonth(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._get(date, endOfMonth, inputFormat);\n }\n\n /**\n */\n startOfWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n return this._get(date, startOfWeek, inputFormat, {\n weekStartsOn,\n });\n }\n\n /**\n */\n getHours(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getHours(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getMinutes(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const parsedDate = this.toDate(date, inputFormat);\n return getMinutes(parsedDate, { in: this.getDateFnsContext() });\n }\n\n /**\n */\n getWeek(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n const parsedDate = this.toDate(date, inputFormat);\n return getWeek(parsedDate, {\n in: this.getDateFnsContext(),\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n //////////// SETTERS\n\n /**\n * @private\n */\n _set(\n date: string | Date,\n property: string,\n value: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { [property]: value },\n // {\n // in: this.getDateFnsContext(),\n // },\n ),\n );\n }\n\n /**\n */\n setYear(\n date: string | Date,\n year: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"year\", year, inputFormat);\n }\n\n /**\n */\n setMonth(\n date: string | Date,\n month: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"month\", month, inputFormat);\n }\n\n /**\n */\n setDay(\n date: string | Date,\n day: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"date\", day, inputFormat);\n }\n\n /**\n */\n setHour(\n date: string | Date,\n hour: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"hours\", hour, inputFormat);\n }\n\n /**\n */\n setMinute(\n date: string | Date,\n minute: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"minutes\", minute, inputFormat);\n }\n\n /**\n */\n setSecond(\n date: string | Date,\n second: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"seconds\", second, inputFormat);\n }\n\n /**\n */\n setMilliseconds(\n date: string | Date,\n millisecond: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n return this._set(date, \"milliseconds\", millisecond, inputFormat);\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const parsedDate = this.toDate(date, inputFormat);\n return this.toISO(\n set(\n parsedDate,\n { hours, minutes, seconds, milliseconds },\n {\n in: this.getDateFnsContext(),\n },\n ),\n );\n }\n\n //////////// Timezone related\n\n /**\n */\n getTimeZone(): string {\n return this._timeZone;\n }\n\n /**\n */\n setTimeZone(timeZone: string) {\n this._timeZone = timeZone;\n }\n\n /**\n */\n getDateFnsContext(): null | Function {\n if (this.doOffsets && !IS_GRAALJS) {\n return tz(this.getTimeZone());\n }\n return undefined;\n }\n\n //////////// Offsets\n\n /**\n */\n getOffset(\n date: string | Date,\n inputFormat: string = this.getIsoFormat(),\n ): OffsetInfo | null {\n const parsedDate = this.toDate(date, inputFormat);\n if (isValid(parsedDate)) {\n const dateOffset = this.toFormat(parsedDate, DATETIME_OFFSET_FORMAT);\n const offsets = this.getTimezoneOffsets();\n if (offsets.daylight?.value === dateOffset) {\n return offsets.daylight ?? null;\n } else if (offsets.standard?.value === dateOffset) {\n return offsets.standard ?? null;\n }\n }\n return null;\n }\n\n /**\n */\n getTimezoneOffsets(): {\n standard?: OffsetInfo,\n daylight?: OffsetInfo,\n } {\n const createOffsetObject = (info: OffsetInfoInput): OffsetInfo => {\n const sign = info.offset < 0 ? \"-\" : \"+\";\n const absOffset = Math.abs(info.offset);\n const hours = Math.trunc(absOffset);\n const minutes = Math.round((absOffset % 1) * 60);\n\n const offsetString = `${sign}${String(hours + (minutes === 60 ? 1 : 0)).padStart(2, \"0\")}:${String(minutes % 60).padStart(2, \"0\")}`;\n\n return {\n label: info.name,\n abbr: info.abbr,\n value: offsetString,\n };\n };\n\n const timezone = soft(this.getTimeZone());\n\n if (timezone.length === 0) {\n return {\n standard: {\n label: \"Etc/UTC\",\n abbr: \"Etc/UTC\",\n value: \"+00:00\",\n },\n };\n }\n\n const { daylight, standard } = timezone[0];\n\n if (daylight) {\n return {\n daylight: createOffsetObject(daylight),\n standard: createOffsetObject(standard),\n };\n }\n\n return { standard: createOffsetObject(standard) };\n }\n}\n\n/**\n * DateUtil\n */\nconst DateUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_DATE_FORMAT);\n\n/**\n * DateTimeUtil\n */\nconst DateTimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_DATETIME_FORMAT,\n true,\n);\n\n/**\n * TimeUtil\n */\nconst TimeUtil: BaseDateTimeUtil = new BaseDateTimeUtil(ISO_TIME_FORMAT);\n\n/**\n * TimestampUtil\n */\nconst TimestampUtil: BaseDateTimeUtil = new BaseDateTimeUtil(\n ISO_TIMESTAMP_FORMAT,\n true,\n);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise"));
|
|
9
|
-
var _objects = require("../helpers/objects");
|
|
10
9
|
var _Constants = require("../../constants/Constants");
|
|
11
10
|
var _constants = require("../../constants");
|
|
12
11
|
var _serverFetch = _interopRequireDefault(require("./serverFetch"));
|
|
@@ -45,22 +44,22 @@ const waitForCachedItem = cacheKey => {
|
|
|
45
44
|
* @private
|
|
46
45
|
*/
|
|
47
46
|
const browserFetch = args => {
|
|
48
|
-
|
|
47
|
+
const shouldCache = (0, _constants.cacheContributions)() && args.cache;
|
|
48
|
+
if (shouldCache) {
|
|
49
49
|
const cacheKey = _Cache.default.createResourceKey(args);
|
|
50
50
|
if (_Cache.default.hasItem(cacheKey)) {
|
|
51
51
|
const cacheItem = _Cache.default.getItem(cacheKey);
|
|
52
|
+
if (cacheItem === IS_FETCHING) {
|
|
53
|
+
return waitForCachedItem(cacheKey);
|
|
54
|
+
}
|
|
52
55
|
if (cacheItem != null) {
|
|
53
|
-
|
|
54
|
-
return waitForCachedItem(cacheKey);
|
|
55
|
-
} else if ((0, _objects.isPlainObject)(cacheItem)) {
|
|
56
|
-
return _promise.default.resolve(cacheItem);
|
|
57
|
-
}
|
|
56
|
+
return _promise.default.resolve(cacheItem);
|
|
58
57
|
}
|
|
59
58
|
}
|
|
60
59
|
_Cache.default.addItem(cacheKey, IS_FETCHING);
|
|
61
60
|
}
|
|
62
61
|
return (0, _xhr.default)(args).then(response => {
|
|
63
|
-
if (
|
|
62
|
+
if (shouldCache) {
|
|
64
63
|
const cacheKey = _Cache.default.createResourceKey(args);
|
|
65
64
|
_Cache.default.addItem(cacheKey, response);
|
|
66
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universalFetch.js","names":["
|
|
1
|
+
{"version":3,"file":"universalFetch.js","names":["_Constants","require","_constants","_serverFetch","_interopRequireDefault","_xhr","_Cache","IS_FETCHING","waitForCachedItem","cacheKey","TIMEOUT","CHECK_TIMEOUT","_promise","default","resolve","reject","check","Cache","getItem","cachedItem","Error","setTimeout","browserFetch","args","shouldCache","cacheContributions","cache","createResourceKey","hasItem","cacheItem","addItem","xhr","then","response","universalFetch","locale","headers","includeContext","url","IS_SYNC","serverFetch","_default","exports"],"sources":["../../../src/utils/fetch/universalFetch.js"],"sourcesContent":["// @flow\nimport { IS_SYNC } from \"../../constants/Constants\";\nimport { cacheContributions } from \"../../constants\";\n\nimport serverFetch from \"./serverFetch\";\nimport xhr from \"./xhr\";\nimport Cache from \"../browser/Cache\";\n\nimport type { RequestOptions } from \"./types\";\n\ntype CachedResponse = Object | Array<any> | string;\n\nconst IS_FETCHING = \"is-fetching\";\n\n/**\n * Checks each x ms if a cache item is set after fetching the item.\n * @private\n */\nconst waitForCachedItem = (cacheKey: string): Promise<CachedResponse> => {\n let TIMEOUT = 3000;\n const CHECK_TIMEOUT = 100;\n\n return new Promise<CachedResponse>((resolve, reject) => {\n const check = () => {\n if (Cache.getItem(cacheKey) !== IS_FETCHING) {\n const cachedItem = Cache.getItem(cacheKey);\n if (cachedItem != null) {\n resolve(cachedItem);\n } else {\n reject(new Error(\"Empty cached item\"));\n }\n } else if (TIMEOUT <= 0) {\n reject(new Error(\"Empty cached item\"));\n } else {\n TIMEOUT = TIMEOUT - CHECK_TIMEOUT;\n setTimeout(check, CHECK_TIMEOUT);\n }\n };\n\n setTimeout(check, CHECK_TIMEOUT);\n });\n};\n\n/**\n * @private\n */\nconst browserFetch = (args: RequestOptions): Promise<CachedResponse> => {\n const shouldCache = cacheContributions() && args.cache;\n\n if (shouldCache) {\n const cacheKey = Cache.createResourceKey(args);\n\n if (Cache.hasItem(cacheKey)) {\n const cacheItem = Cache.getItem(cacheKey);\n\n if (cacheItem === IS_FETCHING) {\n return waitForCachedItem(cacheKey);\n }\n\n if (cacheItem != null) {\n return Promise.resolve(cacheItem);\n }\n }\n\n Cache.addItem(cacheKey, IS_FETCHING);\n }\n\n return xhr(args).then((response: CachedResponse) => {\n if (shouldCache) {\n const cacheKey = Cache.createResourceKey(args);\n Cache.addItem(cacheKey, response);\n }\n\n return response;\n });\n};\n\n/**\n * Request data from server, uses server datafetcher or xhr in browser.\n */\nconst universalFetch = (\n args: RequestOptions,\n): Promise<CachedResponse> | Promise<any> => {\n // Set locale as Accept-Language header\n if (args.locale) {\n // $FlowFixMe\n args.headers = {\n ...args.headers,\n \"Accept-Language\": args.locale,\n };\n }\n\n if (args.includeContext) {\n args.url = `${args.url}?includeContext=true`;\n }\n\n // server side no access to the browser cache apis, no cache available\n if (IS_SYNC) {\n return serverFetch(args);\n }\n\n return browserFetch(args);\n};\n\nexport default universalFetch;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/utils/fetch/xhr.js
CHANGED
|
@@ -140,10 +140,7 @@ class XHR {
|
|
|
140
140
|
/**
|
|
141
141
|
*/
|
|
142
142
|
getBaseLocale() {
|
|
143
|
-
|
|
144
|
-
return navigator.language.split("-")[0] || "en";
|
|
145
|
-
}
|
|
146
|
-
return "en";
|
|
143
|
+
return navigator?.language?.split("-")[0] || "en";
|
|
147
144
|
}
|
|
148
145
|
|
|
149
146
|
/**
|
|
@@ -339,7 +336,7 @@ const validateInputArguments = args => {
|
|
|
339
336
|
throw new _exceptions.IllegalArgumentException("Missing request options, expecting an object as argument for xhr");
|
|
340
337
|
}
|
|
341
338
|
if (!(0, _objects.isPlainObject)(args)) {
|
|
342
|
-
throw new _exceptions.IllegalArgumentException(`Expecting an object as argument for xhr, but received: ${args
|
|
339
|
+
throw new _exceptions.IllegalArgumentException(`Expecting an object as argument for xhr, but received: ${typeof args}`);
|
|
343
340
|
}
|
|
344
341
|
if (!(0, _objects.has)(args, "url")) {
|
|
345
342
|
throw new _exceptions.IllegalArgumentException(`No url property found in arguments of xhr, received: ${(0, _stringify.default)(args)}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","toString","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n if (typeof navigator !== \"undefined\" && navigator.language) {\n return navigator.language.split(\"-\")[0] || \"en\";\n }\n\n return \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (\n this.options.withCredentials ||\n getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))\n ) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${args.toString()}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"xhr.js","names":["_objects","require","_exceptions","_Cache","_interopRequireDefault","_Constants","_Settings","NETWORK_ERROR_CODE","SUCCESS_CODE","CLIENT_ERROR_CODE","UNAUTHORIZED_CODE","REDIRECTION_CODE","NOT_FOUND_CODE","JSON_TYPE","XHR","constructor","options","_defineProperty2","default","_options","_attempts","xmlhttp","_xmlhttp","attempts","url","params","_includes","call","aUrl","split","data","method","HTTP_METHODS","GET","timeout","getSetting","responseType","onProgress","events","getBaseLocale","navigator","language","headers","baseHeaders","Accept","timeoutHandler","reject","TimeoutException","errorHandler","responseJSON","status","isReload","NetworkException","NotFoundException","UnauthorizedException","FetchException","getResponse","response","getResponseHeader","isPlainObject","JSON","parse","error","JsonParseException","responseHandler","resolve","has","setEventListeners","forEach","eventType","addEventListener","_keys","eventName","openConnection","open","setBasicAuthentication","Cache","hasItem","basicToken","getItem","setRequestHeader","headerName","setCustomHeaders","setOtherOptions","withCredentials","sendData","send","stringData","_stringify","setXMLHttpRequest","_promise","XMLHttpRequest","fetch","err","validateInputArguments","args","IllegalArgumentException","xhr","_default","exports"],"sources":["../../../src/utils/fetch/xhr.js"],"sourcesContent":["// @flow\nimport { has, isPlainObject } from \"../helpers/objects\";\n\nimport {\n IllegalArgumentException,\n UnauthorizedException,\n FetchException,\n TimeoutException,\n NotFoundException,\n JsonParseException,\n NetworkException,\n} from \"../../exceptions\";\n\nimport Cache from \"../browser/Cache\";\n\nimport { HTTP_METHODS } from \"../../constants/Constants\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport type { RequestOptions } from \"./types\";\n\nconst NETWORK_ERROR_CODE = 0;\nconst SUCCESS_CODE = 200;\nconst CLIENT_ERROR_CODE = 400;\nconst UNAUTHORIZED_CODE = 401;\nconst REDIRECTION_CODE = 300;\nconst NOT_FOUND_CODE = 404;\n\nconst JSON_TYPE = \"application/json\";\n\n/**\n * @private\n */\nclass XHR {\n _options: RequestOptions;\n _xmlhttp: XMLHttpRequest;\n _attempts: number;\n\n /**\n */\n constructor(options: RequestOptions) {\n this._options = options;\n this._attempts = 0;\n }\n\n /**\n */\n get xmlhttp(): XMLHttpRequest {\n return this._xmlhttp;\n }\n\n /**\n */\n set xmlhttp(xmlhttp: XMLHttpRequest) {\n this._xmlhttp = xmlhttp;\n }\n\n /**\n */\n get options(): RequestOptions {\n return this._options;\n }\n\n /**\n */\n set options(options: RequestOptions) {\n this._options = options;\n }\n\n /**\n */\n get attempts(): number {\n return this._attempts;\n }\n\n /**\n */\n set attempts(attempts: number) {\n this._attempts = attempts;\n }\n\n /**\n * Create and fix url when params or both querystring and params exist.\n */\n get url(): string {\n const { url } = this.options;\n if (this.params !== \"\") {\n if (url.includes(\"?\")) {\n const aUrl = url.split(\"?\");\n\n return `${aUrl[0]}?${aUrl[1]}&${this.params}`;\n }\n\n return `${url}?${this.params}`;\n }\n\n return url;\n }\n\n /**\n */\n get params(): string {\n return this.options.params || \"\";\n }\n\n /**\n */\n get data(): any | null {\n return this.options.data || null;\n }\n\n /**\n */\n get method(): $Keys<typeof HTTP_METHODS> {\n return this.options.method || HTTP_METHODS.GET;\n }\n\n /**\n */\n get timeout(): number {\n return this.options.timeout || getSetting(\"XHR_TIMEOUT_MS\", 300000);\n }\n\n /**\n */\n get responseType(): string {\n return this.options.responseType || \"json\";\n }\n\n /**\n */\n get onProgress(): ProgressEventHandler {\n if (this.options.onProgress) {\n return this.options.onProgress;\n }\n\n return () => {\n // do nothing\n };\n }\n\n /**\n */\n get events(): { [eventName: string]: () => void } {\n return this.options.events || {};\n }\n\n /**\n */\n getBaseLocale(): string {\n return navigator?.language?.split(\"-\")[0] || \"en\";\n }\n\n /**\n */\n get headers(): { [string]: string } {\n const baseHeaders = {\n Accept: JSON_TYPE,\n \"Content-Type\": JSON_TYPE,\n\n // needed for csrf, see: https://plaza.beinformed.com/amdoc/csrf-protection-in-modular-ui-services-40054554.html\n \"X-Requested-With\": \"XMLHttpRequest\",\n\n \"Accept-Language\": this.getBaseLocale(),\n };\n\n if (this.options.headers) {\n // $FlowFixMe[cannot-spread-indexer]\n return {\n ...baseHeaders,\n ...this.options.headers,\n };\n }\n\n return baseHeaders;\n }\n\n /**\n */\n timeoutHandler(reject: Function): any {\n return reject(new TimeoutException(this.url, this.method));\n }\n\n /**\n */\n errorHandler(reject: Function, responseJSON: any = null): any {\n const { status } = this.xmlhttp;\n const { isReload } = this.options;\n\n if (status === NETWORK_ERROR_CODE) {\n return reject(new NetworkException(this.url, this.method));\n }\n\n if (status === NOT_FOUND_CODE) {\n return reject(new NotFoundException(this.url, this.method, isReload));\n }\n\n if (status === UNAUTHORIZED_CODE) {\n return reject(\n new UnauthorizedException(this.url, this.method, responseJSON),\n );\n }\n\n return reject(new FetchException(responseJSON, this.xmlhttp, this.options));\n }\n\n /**\n */\n getResponse(): any {\n const { responseType, response } = this.xmlhttp;\n\n if (\n (responseType === \"\" || responseType === \"text\") &&\n this.getResponseHeader(\"Content-Type\") === JSON_TYPE\n ) {\n if (isPlainObject(response)) {\n return response;\n }\n\n try {\n return JSON.parse(response);\n } catch (error) {\n throw new JsonParseException(error);\n }\n }\n\n return response;\n }\n\n /**\n */\n responseHandler(resolve: Function, reject: Function): any {\n const { status } = this.xmlhttp;\n\n let response = null;\n try {\n response = this.getResponse();\n } catch (error) {\n return reject(error);\n }\n\n if (\n (status >= SUCCESS_CODE && status < REDIRECTION_CODE) ||\n (status === CLIENT_ERROR_CODE && has(response, \"formresponse\"))\n ) {\n return resolve(response);\n }\n\n return this.errorHandler(reject, response);\n }\n\n /**\n */\n setEventListeners(resolve: Function, reject: Function) {\n if (this.options.onProgress) {\n [\"load\", \"loadend\", \"loadstart\", \"progress\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, this.onProgress);\n });\n }\n\n [\"abort\", \"error\"].forEach((eventType) => {\n this.xmlhttp.addEventListener(eventType, () => this.errorHandler(reject));\n });\n\n this.xmlhttp.addEventListener(\"timeout\", () => this.timeoutHandler(reject));\n\n this.xmlhttp.addEventListener(\"load\", () =>\n this.responseHandler(resolve, reject),\n );\n\n // Set custom events\n Object.keys(this.events).forEach((eventName) => {\n this.xmlhttp.addEventListener(eventName, this.events[eventName]);\n });\n }\n\n /**\n */\n openConnection() {\n this.xmlhttp.open(this.method, this.url, true);\n }\n\n /**\n */\n setBasicAuthentication() {\n if (Cache.hasItem(\"basic\")) {\n const basicToken = Cache.getItem(\"basic\");\n\n if (typeof basicToken === \"string\") {\n this.xmlhttp.setRequestHeader(\"Authorization\", `Basic ${basicToken}`);\n }\n }\n }\n\n /**\n */\n getResponseHeader(headerName: string): string | null {\n return this.xmlhttp.getResponseHeader(headerName);\n }\n\n /**\n */\n setCustomHeaders() {\n Object.keys(this.headers).forEach((headerName) => {\n this.xmlhttp.setRequestHeader(headerName, this.headers[headerName]);\n });\n }\n\n /**\n */\n setOtherOptions() {\n if (\n this.options.withCredentials ||\n getSetting(\"XHR_ALWAYS_WITH_CREDENTIALS\", Cache.hasItem(\"basic\"))\n ) {\n this.xmlhttp.withCredentials = true;\n }\n this.xmlhttp.responseType = this.responseType;\n this.xmlhttp.timeout = this.timeout;\n }\n\n /**\n */\n sendData() {\n if (this.data == null) {\n this.xmlhttp.send();\n } else {\n const stringData = isPlainObject(this.data)\n ? JSON.stringify(this.data)\n : this.data;\n this.xmlhttp.send(stringData);\n }\n }\n\n /**\n */\n setXMLHttpRequest(): Promise<any> {\n return new Promise((resolve, reject) => {\n this.xmlhttp = new XMLHttpRequest();\n\n this.setEventListeners(resolve, reject);\n\n this.openConnection();\n\n this.setBasicAuthentication();\n\n this.setCustomHeaders();\n\n this.setOtherOptions();\n\n this.sendData();\n });\n }\n\n /**\n */\n async fetch(): Promise<any> {\n try {\n return await this.setXMLHttpRequest();\n } catch (err) {\n if (err instanceof NetworkException && this.attempts < 2) {\n this.attempts += 1;\n return this.fetch();\n }\n\n throw err;\n }\n }\n}\n\n/**\n */\nconst validateInputArguments = (args: RequestOptions) => {\n if (args == null) {\n throw new IllegalArgumentException(\n \"Missing request options, expecting an object as argument for xhr\",\n );\n }\n\n if (!isPlainObject(args)) {\n throw new IllegalArgumentException(\n `Expecting an object as argument for xhr, but received: ${typeof args}`,\n );\n }\n\n if (!has(args, \"url\")) {\n throw new IllegalArgumentException(\n `No url property found in arguments of xhr, received: ${JSON.stringify(\n args,\n )}`,\n );\n }\n\n return true;\n};\n\n/**\n */\nconst xhr = (args: RequestOptions): Promise<any> => {\n validateInputArguments(args);\n\n return new XHR(args).fetch();\n};\n\nexport default xhr;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ var _urlSearchParams = _interopRequireDefault(require("@babel/runtime-corejs3/co
|
|
|
10
10
|
var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
|
|
11
11
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/keys"));
|
|
12
12
|
var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
|
|
13
|
+
var _replaceAll = _interopRequireDefault(require("@babel/runtime-corejs3/core-js/instance/replace-all"));
|
|
13
14
|
var _Href = _interopRequireDefault(require("../../models/href/Href"));
|
|
14
15
|
/**
|
|
15
16
|
*/
|
|
@@ -80,7 +81,9 @@ const createHref = (context, dynamicPart, entryDate, location, allowedParameters
|
|
|
80
81
|
if (!(0, _startsWith.default)(href).call(href, `/${context}/`)) {
|
|
81
82
|
href = `/${context}/${href}`;
|
|
82
83
|
}
|
|
83
|
-
|
|
84
|
+
|
|
85
|
+
// $FlowIssue
|
|
86
|
+
href = (0, _replaceAll.default)(href).call(href, "//", "/");
|
|
84
87
|
if (location?.search && !(0, _includes.default)(href).call(href, "?")) {
|
|
85
88
|
var _context;
|
|
86
89
|
const search = (0, _startsWith.default)(_context = location.search).call(_context, "?") ? location.search.substring(1) : location.search;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createHref.js","names":["_Href","_interopRequireDefault","require","parseUrl","href","Href","path","querystring","hash","_includes","default","call","hashSplit","split","qsSplit","exports","filterParameters","allowedParameters","Array","isArray","url","filteredUrl","searchParams","_urlSearchParams","params","_from","_keys","param","delete","toString","resourcetype","origin","contextPath","createHref","context","dynamicPart","entryDate","location","_startsWith","
|
|
1
|
+
{"version":3,"file":"createHref.js","names":["_Href","_interopRequireDefault","require","parseUrl","href","Href","path","querystring","hash","_includes","default","call","hashSplit","split","qsSplit","exports","filterParameters","allowedParameters","Array","isArray","url","filteredUrl","searchParams","_urlSearchParams","params","_from","_keys","param","delete","toString","resourcetype","origin","contextPath","createHref","context","dynamicPart","entryDate","location","_startsWith","_replaceAll","search","_context","substring","finalHref","setParameter","removeParameter"],"sources":["../../../src/utils/helpers/createHref.js"],"sourcesContent":["// @flow\nimport Href from \"../../models/href/Href\";\n\nimport type { Location } from \"react-router\";\n\n/**\n */\nexport const parseUrl = (\n href: string | Href,\n): { path: string, querystring: null | string, hash: null | string } => {\n if (href instanceof Href) {\n return {\n path: href.path,\n querystring: href.querystring,\n hash: href.hash,\n };\n }\n\n let path = href;\n let hash = null;\n let querystring = null;\n if (href.includes(\"#\")) {\n const hashSplit = href.split(\"#\");\n path = hashSplit[0];\n hash = hashSplit[1];\n }\n if (href.includes(\"?\")) {\n const qsSplit = path.split(\"?\");\n path = qsSplit[0];\n querystring = qsSplit[1];\n }\n return {\n path,\n querystring,\n hash,\n };\n};\n\n/**\n */\nexport const filterParameters = (\n href: string | Href,\n allowedParameters?: Array<string>,\n): Href => {\n if (!Array.isArray(allowedParameters)) {\n return new Href(href);\n }\n\n const url = parseUrl(href);\n let filteredUrl = url.path;\n if (url.querystring) {\n const searchParams = new URLSearchParams(url.querystring);\n const params = Array.from(searchParams.keys());\n for (const param of params) {\n if (!allowedParameters.includes(param)) {\n searchParams.delete(param);\n }\n }\n filteredUrl = filteredUrl + \"?\" + searchParams.toString();\n }\n if (url.hash) {\n filteredUrl = filteredUrl + \"#\" + url.hash;\n }\n\n if (href instanceof Href) {\n return new Href(filteredUrl, href.resourcetype, {\n origin: href.origin,\n contextPath: href.contextPath,\n });\n }\n\n return new Href(filteredUrl);\n};\n\n/**\n */\nexport const createHref = (\n context: string,\n dynamicPart: string | Href,\n entryDate?: ?ISO_DATE,\n location?: ?Location,\n allowedParameters?: Array<string>,\n): Href => {\n let href = dynamicPart.toString();\n\n if (!href.startsWith(`/${context}/`)) {\n href = `/${context}/${href}`;\n }\n\n // $FlowIssue\n href = href.replaceAll(\"//\", \"/\");\n\n if (location?.search && !href.includes(\"?\")) {\n const search = location.search.startsWith(\"?\")\n ? location.search.substring(1)\n : location.search;\n href = `${href}?${search}`;\n }\n\n const finalHref =\n dynamicPart instanceof Href\n ? filterParameters(\n new Href(href, dynamicPart.resourcetype, {\n origin: dynamicPart.origin,\n contextPath: dynamicPart.contextPath,\n }),\n allowedParameters,\n )\n : filterParameters(href, allowedParameters);\n\n if (entryDate) {\n finalHref.setParameter(\"entryDate\", entryDate);\n } else {\n finalHref.removeParameter(\"entryDate\");\n }\n\n return finalHref;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
8
|
+
var _trunc = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/math/trunc"));
|
|
7
9
|
/**
|
|
8
10
|
*/
|
|
9
11
|
const createUUID = () => {
|
|
10
12
|
let d = new Date().getTime();
|
|
11
13
|
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, c => {
|
|
12
|
-
const r = (d + Math.random() * 16) % 16
|
|
14
|
+
const r = (0, _trunc.default)((d + Math.random() * 16) % 16);
|
|
13
15
|
d = Math.floor(d / 16);
|
|
14
16
|
return (c === "x" ? r : r & 0x3 | 0x8).toString(16);
|
|
15
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","Math","random","floor","toString","_default","exports"
|
|
1
|
+
{"version":3,"file":"createUUID.js","names":["createUUID","d","Date","getTime","replace","c","r","_trunc","default","Math","random","floor","toString","_default","exports"],"sources":["../../../src/utils/helpers/createUUID.js"],"sourcesContent":["// @flow\n/**\n */\nconst createUUID = (): string => {\n let d = new Date().getTime();\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.trunc((d + Math.random() * 16) % 16);\n d = Math.floor(d / 16);\n return (c === \"x\" ? r : (r & 0x3) | 0x8).toString(16);\n });\n};\n\nexport default createUUID;\n"],"mappings":";;;;;;;;AACA;AACA;AACA,MAAMA,UAAU,GAAGA,CAAA,KAAc;EAC/B,IAAIC,CAAC,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC;EAC5B,OAAO,sCAAsC,CAACC,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAK;IACpE,MAAMC,CAAC,GAAG,IAAAC,MAAA,CAAAC,OAAA,EAAW,CAACP,CAAC,GAAGQ,IAAI,CAACC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACnDT,CAAC,GAAGQ,IAAI,CAACE,KAAK,CAACV,CAAC,GAAG,EAAE,CAAC;IACtB,OAAO,CAACI,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAI,GAAG,EAAEM,QAAQ,CAAC,EAAE,CAAC;EACvD,CAAC,CAAC;AACJ,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAN,OAAA,GAEaR,UAAU","ignoreList":[]}
|
|
@@ -5,18 +5,21 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.parseToNumber = exports.parseNumberToString = void 0;
|
|
8
|
+
var _raw = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/string/raw"));
|
|
8
9
|
var _big = _interopRequireDefault(require("big.js"));
|
|
9
10
|
/**
|
|
10
11
|
* @private
|
|
11
12
|
*/
|
|
12
13
|
const removeGroupingSeparator = (input, groupingSeparator) => {
|
|
13
14
|
if (typeof input === "number") {
|
|
14
|
-
return input;
|
|
15
|
+
return input.toString();
|
|
15
16
|
}
|
|
16
17
|
if (groupingSeparator == null) {
|
|
17
18
|
return input;
|
|
18
19
|
}
|
|
19
|
-
const escapedGroupingSeparator = groupingSeparator.replace(/[$()*+.?[\\\]^{|}]/g,
|
|
20
|
+
const escapedGroupingSeparator = groupingSeparator.replace(/[$()*+.?[\\\]^{|}]/g,
|
|
21
|
+
// $FlowIssue
|
|
22
|
+
(0, _raw.default)`\$&`);
|
|
20
23
|
return input.replace(new RegExp(escapedGroupingSeparator, "g"), "");
|
|
21
24
|
};
|
|
22
25
|
|
|
@@ -25,7 +28,7 @@ const removeGroupingSeparator = (input, groupingSeparator) => {
|
|
|
25
28
|
*/
|
|
26
29
|
const updateDecimalSeparator = (input, decimalSeparator) => {
|
|
27
30
|
if (typeof input === "number") {
|
|
28
|
-
return input;
|
|
31
|
+
return input.toString();
|
|
29
32
|
}
|
|
30
33
|
if (decimalSeparator == null || decimalSeparator === "") {
|
|
31
34
|
return input;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseNumbers.js","names":["_big","_interopRequireDefault","require","removeGroupingSeparator","input","groupingSeparator","escapedGroupingSeparator","replace","RegExp","updateDecimalSeparator","decimalSeparator","parseToNumber","NaN","inputNoGrouping","inputCorrectDecimalSeparator","Number","exports","parseNumberToString","big","toFixed","error"],"sources":["../../../src/utils/number/parseNumbers.js"],"sourcesContent":["// @flow\nimport big from \"big.js\";\n\n/**\n * @private\n */\nconst removeGroupingSeparator = (\n input: string | number,\n groupingSeparator?: ?string,\n) => {\n if (typeof input === \"number\") {\n return input;\n }\n\n if (groupingSeparator == null) {\n return input;\n }\n\n const escapedGroupingSeparator = groupingSeparator.replace(\n /[$()*+.?[\\\\\\]^{|}]/g,\n \
|
|
1
|
+
{"version":3,"file":"parseNumbers.js","names":["_big","_interopRequireDefault","require","removeGroupingSeparator","input","groupingSeparator","toString","escapedGroupingSeparator","replace","_raw","default","RegExp","updateDecimalSeparator","decimalSeparator","parseToNumber","NaN","inputNoGrouping","inputCorrectDecimalSeparator","Number","exports","parseNumberToString","big","toFixed","error"],"sources":["../../../src/utils/number/parseNumbers.js"],"sourcesContent":["// @flow\nimport big from \"big.js\";\n\n/**\n * @private\n */\nconst removeGroupingSeparator = (\n input: string | number,\n groupingSeparator?: ?string,\n) => {\n if (typeof input === \"number\") {\n return input.toString();\n }\n\n if (groupingSeparator == null) {\n return input;\n }\n\n const escapedGroupingSeparator = groupingSeparator.replace(\n /[$()*+.?[\\\\\\]^{|}]/g,\n // $FlowIssue\n String.raw`\\$&`,\n );\n\n return input.replace(new RegExp(escapedGroupingSeparator, \"g\"), \"\");\n};\n\n/**\n * @private\n */\nconst updateDecimalSeparator = (\n input: string | number,\n decimalSeparator?: ?string,\n) => {\n if (typeof input === \"number\") {\n return input.toString();\n }\n\n if (decimalSeparator == null || decimalSeparator === \"\") {\n return input;\n }\n\n return input.replace(decimalSeparator, \".\");\n};\n\n/**\n * Parses input into a number, removes the grouping separator from the input and\n * replaces the decimal separator with a dot to make it a JavaScript parseable number\n */\nconst parseToNumber = (\n input: ?string | ?number,\n groupingSeparator: ?string = \",\",\n decimalSeparator: ?string = \".\",\n): number => {\n if (input == null || input === \"\") {\n return NaN;\n }\n\n const inputNoGrouping = removeGroupingSeparator(input, groupingSeparator);\n\n const inputCorrectDecimalSeparator = updateDecimalSeparator(\n inputNoGrouping,\n decimalSeparator,\n );\n\n return Number(inputCorrectDecimalSeparator);\n};\n\n/**\n * parses Numbers To String\n */\nconst parseNumberToString = (\n input: ?string | ?number,\n groupingSeparator: ?string = \",\",\n decimalSeparator: ?string = \".\",\n): string => {\n if (input == null || input === \"\") {\n return \"NaN\";\n }\n\n const inputNoGrouping = removeGroupingSeparator(input, groupingSeparator);\n\n const inputCorrectDecimalSeparator = updateDecimalSeparator(\n inputNoGrouping,\n decimalSeparator,\n );\n\n try {\n return big(inputCorrectDecimalSeparator).toFixed();\n } catch (error) {\n return \"NaN\";\n }\n};\n\nexport { parseToNumber, parseNumberToString };\n"],"mappings":";;;;;;;;AACA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA;AACA;AACA;AACA,MAAMC,uBAAuB,GAAGA,CAC9BC,KAAsB,EACtBC,iBAA2B,KACxB;EACH,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK,CAACE,QAAQ,CAAC,CAAC;EACzB;EAEA,IAAID,iBAAiB,IAAI,IAAI,EAAE;IAC7B,OAAOD,KAAK;EACd;EAEA,MAAMG,wBAAwB,GAAGF,iBAAiB,CAACG,OAAO,CACxD,qBAAqB;EACrB;EACA,IAAAC,IAAA,CAAAC,OAAA,CAAU,KACZ,CAAC;EAED,OAAON,KAAK,CAACI,OAAO,CAAC,IAAIG,MAAM,CAACJ,wBAAwB,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;AACrE,CAAC;;AAED;AACA;AACA;AACA,MAAMK,sBAAsB,GAAGA,CAC7BR,KAAsB,EACtBS,gBAA0B,KACvB;EACH,IAAI,OAAOT,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK,CAACE,QAAQ,CAAC,CAAC;EACzB;EAEA,IAAIO,gBAAgB,IAAI,IAAI,IAAIA,gBAAgB,KAAK,EAAE,EAAE;IACvD,OAAOT,KAAK;EACd;EAEA,OAAOA,KAAK,CAACI,OAAO,CAACK,gBAAgB,EAAE,GAAG,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AACA,MAAMC,aAAa,GAAGA,CACpBV,KAAwB,EACxBC,iBAA0B,GAAG,GAAG,EAChCQ,gBAAyB,GAAG,GAAG,KACpB;EACX,IAAIT,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOW,GAAG;EACZ;EAEA,MAAMC,eAAe,GAAGb,uBAAuB,CAACC,KAAK,EAAEC,iBAAiB,CAAC;EAEzE,MAAMY,4BAA4B,GAAGL,sBAAsB,CACzDI,eAAe,EACfH,gBACF,CAAC;EAED,OAAOK,MAAM,CAACD,4BAA4B,CAAC;AAC7C,CAAC;;AAED;AACA;AACA;AAFAE,OAAA,CAAAL,aAAA,GAAAA,aAAA;AAGA,MAAMM,mBAAmB,GAAGA,CAC1BhB,KAAwB,EACxBC,iBAA0B,GAAG,GAAG,EAChCQ,gBAAyB,GAAG,GAAG,KACpB;EACX,IAAIT,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAO,KAAK;EACd;EAEA,MAAMY,eAAe,GAAGb,uBAAuB,CAACC,KAAK,EAAEC,iBAAiB,CAAC;EAEzE,MAAMY,4BAA4B,GAAGL,sBAAsB,CACzDI,eAAe,EACfH,gBACF,CAAC;EAED,IAAI;IACF,OAAO,IAAAQ,YAAG,EAACJ,4BAA4B,CAAC,CAACK,OAAO,CAAC,CAAC;EACpD,CAAC,CAAC,OAAOC,KAAK,EAAE;IACd,OAAO,KAAK;EACd;AACF,CAAC;AAACJ,OAAA,CAAAC,mBAAA,GAAAA,mBAAA","ignoreList":[]}
|