@beinformed/ui 1.62.7 → 1.62.8
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 +9 -0
- package/esm/constants/Settings.d.ts +1 -0
- package/esm/constants/Settings.js +4 -0
- package/esm/constants/Settings.js.flow +5 -1
- package/esm/constants/Settings.js.map +1 -1
- package/esm/react-client/client.d.ts +1 -1
- package/esm/react-client/client.js +19 -0
- package/esm/react-client/client.js.flow +23 -1
- package/esm/react-client/client.js.map +1 -1
- package/esm/react-server/serverUtil.js +2 -2
- package/esm/react-server/serverUtil.js.flow +2 -2
- package/esm/react-server/serverUtil.js.map +1 -1
- package/esm/redux/_i18n/I18nActions.js.flow +0 -1
- package/esm/redux/_i18n/I18nActions.js.map +1 -1
- package/esm/redux/_i18n/I18nReducer.js +11 -3
- package/esm/redux/_i18n/I18nReducer.js.flow +11 -3
- package/esm/redux/_i18n/I18nReducer.js.map +1 -1
- package/esm/redux/reducers/createReducer.js +2 -2
- package/esm/redux/reducers/createReducer.js.flow +1 -1
- package/esm/redux/reducers/createReducer.js.map +1 -1
- package/esm/redux/store/configureStore.js +0 -5
- package/esm/redux/store/configureStore.js.flow +0 -7
- package/esm/redux/store/configureStore.js.map +1 -1
- package/esm/utils/datetime/DateTimeUtil.js +3 -2
- package/esm/utils/datetime/DateTimeUtil.js.flow +3 -1
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/constants/Settings.d.ts +1 -0
- package/lib/constants/Settings.js +7 -2
- package/lib/constants/Settings.js.map +1 -1
- package/lib/react-client/client.d.ts +1 -1
- package/lib/react-client/client.js +20 -1
- package/lib/react-client/client.js.map +1 -1
- package/lib/react-server/serverUtil.js +1 -1
- package/lib/react-server/serverUtil.js.map +1 -1
- package/lib/redux/_i18n/I18nActions.js.map +1 -1
- package/lib/redux/_i18n/I18nReducer.js +10 -2
- package/lib/redux/_i18n/I18nReducer.js.map +1 -1
- package/lib/redux/reducers/createReducer.js +2 -2
- package/lib/redux/reducers/createReducer.js.map +1 -1
- package/lib/redux/store/configureStore.js +0 -5
- package/lib/redux/store/configureStore.js.map +1 -1
- package/lib/utils/datetime/DateTimeUtil.js +2 -1
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/package.json +8 -8
- package/src/constants/Settings.js +5 -1
- package/src/react-client/client.js +23 -1
- package/src/react-server/serverUtil.js +2 -2
- package/src/redux/_i18n/I18nActions.js +0 -1
- package/src/redux/_i18n/I18nReducer.js +11 -3
- package/src/redux/reducers/createReducer.js +1 -1
- package/src/redux/store/configureStore.js +0 -7
- package/src/utils/datetime/DateTimeUtil.js +3 -1
|
@@ -4,7 +4,6 @@ import { routerMiddleware } from "../_router/RouterMiddleware";
|
|
|
4
4
|
import { modularUIMiddleware } from "../_modularui/ModularUIMiddleware";
|
|
5
5
|
import { createReducer } from "../reducers/createReducer";
|
|
6
6
|
import { locationChange } from "../_router/RouterActions";
|
|
7
|
-
import { updateLocale } from "../_i18n/I18nActions";
|
|
8
7
|
/**
|
|
9
8
|
*/
|
|
10
9
|
const configureStore = (routerHistory, customReducers, initialState) => {
|
|
@@ -22,10 +21,6 @@ const configureStore = (routerHistory, customReducers, initialState) => {
|
|
|
22
21
|
if (!initialState?.router) {
|
|
23
22
|
store.dispatch(locationChange(routerHistory.location, "PUSH"));
|
|
24
23
|
}
|
|
25
|
-
const locale = initialState?.i18n.locale;
|
|
26
|
-
if (locale) {
|
|
27
|
-
store.dispatch(updateLocale(locale));
|
|
28
|
-
}
|
|
29
24
|
return {
|
|
30
25
|
routerHistory,
|
|
31
26
|
store
|
|
@@ -13,8 +13,6 @@ import { modularUIMiddleware } from "../_modularui/ModularUIMiddleware";
|
|
|
13
13
|
import { createReducer } from "../reducers/createReducer";
|
|
14
14
|
import { locationChange } from "../_router/RouterActions";
|
|
15
15
|
|
|
16
|
-
import { updateLocale } from "../_i18n/I18nActions";
|
|
17
|
-
|
|
18
16
|
import type { RouterHistory } from "react-router";
|
|
19
17
|
import type { ReduxAction, ReduxState, ReduxStore } from "../types";
|
|
20
18
|
import type { Reducer } from "redux";
|
|
@@ -55,11 +53,6 @@ const configureStore = (
|
|
|
55
53
|
store.dispatch(locationChange(routerHistory.location, "PUSH"));
|
|
56
54
|
}
|
|
57
55
|
|
|
58
|
-
const locale = initialState?.i18n.locale;
|
|
59
|
-
if (locale) {
|
|
60
|
-
store.dispatch(updateLocale(locale));
|
|
61
|
-
}
|
|
62
|
-
|
|
63
56
|
return { routerHistory, store };
|
|
64
57
|
};
|
|
65
58
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureStore.js","names":["applyMiddleware","compose","combineReducers","createStore","createReduxStore","thunk","routerMiddleware","modularUIMiddleware","createReducer","locationChange","
|
|
1
|
+
{"version":3,"file":"configureStore.js","names":["applyMiddleware","compose","combineReducers","createStore","createReduxStore","thunk","routerMiddleware","modularUIMiddleware","createReducer","locationChange","configureStore","routerHistory","customReducers","initialState","composeEnhancers","process","env","NODE_ENV","window","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","combinedReducers","middleware","enhancers","store","router","dispatch","location"],"sources":["../../../src/redux/store/configureStore.js"],"sourcesContent":["// @flow\nimport {\n applyMiddleware,\n compose,\n combineReducers,\n createStore as createReduxStore,\n} from \"redux\";\nimport thunk from \"redux-thunk\";\n\nimport { routerMiddleware } from \"../_router/RouterMiddleware\";\nimport { modularUIMiddleware } from \"../_modularui/ModularUIMiddleware\";\n\nimport { createReducer } from \"../reducers/createReducer\";\nimport { locationChange } from \"../_router/RouterActions\";\n\nimport type { RouterHistory } from \"react-router\";\nimport type { ReduxAction, ReduxState, ReduxStore } from \"../types\";\nimport type { Reducer } from \"redux\";\n\n/**\n */\nconst configureStore = (\n routerHistory: RouterHistory,\n customReducers?: Object,\n initialState?: $Shape<ReduxState>,\n): { routerHistory: RouterHistory, store: ReduxStore } => {\n let composeEnhancers = compose;\n\n if (process.env.NODE_ENV !== \"production\" && typeof window !== \"undefined\") {\n composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n }\n\n const combinedReducers: Reducer<ReduxState, ReduxAction> = combineReducers({\n ...customReducers,\n ...createReducer(),\n });\n\n const middleware = applyMiddleware(\n modularUIMiddleware,\n routerMiddleware(routerHistory),\n thunk,\n );\n\n const enhancers = composeEnhancers(middleware);\n\n const store: ReduxStore = createReduxStore(\n combinedReducers,\n initialState,\n enhancers,\n );\n\n if (!initialState?.router) {\n store.dispatch(locationChange(routerHistory.location, \"PUSH\"));\n }\n\n return { routerHistory, store };\n};\n\nexport default configureStore;\n"],"mappings":"AACA,SACEA,eAAe,EACfC,OAAO,EACPC,eAAe,EACfC,WAAW,IAAIC,gBAAgB,QAC1B,OAAO;AACd,OAAOC,KAAK,MAAM,aAAa;AAE/B,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,mBAAmB,QAAQ,mCAAmC;AAEvE,SAASC,aAAa,QAAQ,2BAA2B;AACzD,SAASC,cAAc,QAAQ,0BAA0B;AAMzD;AACA;AACA,MAAMC,cAAc,GAAGA,CACrBC,aAA4B,EAC5BC,cAAuB,EACvBC,YAAiC,KACuB;EACxD,IAAIC,gBAAgB,GAAGb,OAAO;EAE9B,IAAIc,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,IAAI,OAAOC,MAAM,KAAK,WAAW,EAAE;IAC1EJ,gBAAgB,GAAGI,MAAM,CAACC,oCAAoC,IAAIlB,OAAO;EAC3E;EAEA,MAAMmB,gBAAkD,GAAGlB,eAAe,CAAC;IACzE,GAAGU,cAAc;IACjB,GAAGJ,aAAa,CAAC;EACnB,CAAC,CAAC;EAEF,MAAMa,UAAU,GAAGrB,eAAe,CAChCO,mBAAmB,EACnBD,gBAAgB,CAACK,aAAa,CAAC,EAC/BN,KACF,CAAC;EAED,MAAMiB,SAAS,GAAGR,gBAAgB,CAACO,UAAU,CAAC;EAE9C,MAAME,KAAiB,GAAGnB,gBAAgB,CACxCgB,gBAAgB,EAChBP,YAAY,EACZS,SACF,CAAC;EAED,IAAI,CAACT,YAAY,EAAEW,MAAM,EAAE;IACzBD,KAAK,CAACE,QAAQ,CAAChB,cAAc,CAACE,aAAa,CAACe,QAAQ,EAAE,MAAM,CAAC,CAAC;EAChE;EAEA,OAAO;IAAEf,aAAa;IAAEY;EAAM,CAAC;AACjC,CAAC;AAED,eAAeb,cAAc","ignoreList":[]}
|
|
@@ -23,7 +23,7 @@ import { getWeek } from "date-fns/getWeek";
|
|
|
23
23
|
import { enGB, nl } from "date-fns/locale";
|
|
24
24
|
import { tz } from "@date-fns/tz";
|
|
25
25
|
import soft from "timezone-soft";
|
|
26
|
-
import { DATETIME_OFFSET_FORMAT, DEFAULT_FIRST_WEEK_CONTAINS_DATE, DEFAULT_WEEK_STARTS_ON, getSetting, IS_GRAALJS, isIncludeTimeOffsetInDateTimes, ISO_DATE_FORMAT, ISO_DATETIME_FORMAT, ISO_TIME_FORMAT, ISO_TIMESTAMP_FORMAT } from "../../constants";
|
|
26
|
+
import { DATETIME_OFFSET_FORMAT, DEFAULT_FIRST_WEEK_CONTAINS_DATE, DEFAULT_WEEK_STARTS_ON, getEnabledLocales, getSetting, IS_GRAALJS, isIncludeTimeOffsetInDateTimes, ISO_DATE_FORMAT, ISO_DATETIME_FORMAT, ISO_TIME_FORMAT, ISO_TIMESTAMP_FORMAT } from "../../constants";
|
|
27
27
|
import { getCookie } from "../browser/Cookies";
|
|
28
28
|
/**
|
|
29
29
|
* @hideconstructor
|
|
@@ -98,7 +98,8 @@ class BaseDateTimeUtil {
|
|
|
98
98
|
/**
|
|
99
99
|
*/
|
|
100
100
|
getLocale() {
|
|
101
|
-
const
|
|
101
|
+
const defaultLocale = getEnabledLocales()[0];
|
|
102
|
+
const locale = getCookie("locale") ?? defaultLocale ?? "en";
|
|
102
103
|
if (locale === "nl") {
|
|
103
104
|
return nl;
|
|
104
105
|
}
|
|
@@ -25,6 +25,7 @@ import {
|
|
|
25
25
|
DATETIME_OFFSET_FORMAT,
|
|
26
26
|
DEFAULT_FIRST_WEEK_CONTAINS_DATE,
|
|
27
27
|
DEFAULT_WEEK_STARTS_ON,
|
|
28
|
+
getEnabledLocales,
|
|
28
29
|
getSetting,
|
|
29
30
|
IS_GRAALJS,
|
|
30
31
|
isIncludeTimeOffsetInDateTimes,
|
|
@@ -136,7 +137,8 @@ class BaseDateTimeUtil {
|
|
|
136
137
|
/**
|
|
137
138
|
*/
|
|
138
139
|
getLocale(): typeof nl | typeof enGB {
|
|
139
|
-
const
|
|
140
|
+
const defaultLocale = getEnabledLocales()[0];
|
|
141
|
+
const locale = getCookie("locale") ?? defaultLocale ?? "en";
|
|
140
142
|
|
|
141
143
|
if (locale === "nl") {
|
|
142
144
|
return nl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeUtil.js","names":["format","isAfter","isBefore","isSameDay","isValid","parse","add","sub","set","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getDay","getWeek","enGB","nl","tz","soft","DATETIME_OFFSET_FORMAT","DEFAULT_FIRST_WEEK_CONTAINS_DATE","DEFAULT_WEEK_STARTS_ON","getSetting","IS_GRAALJS","isIncludeTimeOffsetInDateTimes","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","ISO_TIME_FORMAT","ISO_TIMESTAMP_FORMAT","getCookie","BaseDateTimeUtil","constructor","isoFormat","doOffsets","arguments","length","undefined","_defineProperty","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","_doOffsets","getOptions","weekStartsOn","firstWeekContainsDate","getIsoFormat","convertFormat","javaFormat","_context","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sortInstanceProperty","_Object$keys","call","a","b","javaToken","uts35Token","regex","RegExp","replace","getLocale","locale","toDate","date","inputFormat","Date","in","getDateFnsContext","toFormat","targetFormat","parsedDate","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","isAmbiguous","dateTime","t","_mapInstanceProperty","x","newDate","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","_set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context2","_context3","sign","offset","absOffset","Math","abs","_Math$trunc","round","offsetString","_padStartInstanceProperty","String","label","name","abbr","timezone","DateUtil","DateTimeUtil","TimeUtil","TimestampUtil"],"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 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 locale = getCookie(\"locale\") ?? \"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","isAfter","isBefore","isSameDay","isValid","parse","add","sub","set","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getDay","getWeek","enGB","nl","tz","soft","DATETIME_OFFSET_FORMAT","DEFAULT_FIRST_WEEK_CONTAINS_DATE","DEFAULT_WEEK_STARTS_ON","getEnabledLocales","getSetting","IS_GRAALJS","isIncludeTimeOffsetInDateTimes","ISO_DATE_FORMAT","ISO_DATETIME_FORMAT","ISO_TIME_FORMAT","ISO_TIMESTAMP_FORMAT","getCookie","BaseDateTimeUtil","constructor","isoFormat","doOffsets","arguments","length","undefined","_defineProperty","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","_doOffsets","getOptions","weekStartsOn","firstWeekContainsDate","getIsoFormat","convertFormat","javaFormat","_context","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sortInstanceProperty","_Object$keys","call","a","b","javaToken","uts35Token","regex","RegExp","replace","getLocale","defaultLocale","locale","toDate","date","inputFormat","Date","in","getDateFnsContext","toFormat","targetFormat","parsedDate","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","isAmbiguous","dateTime","t","_mapInstanceProperty","x","newDate","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","_set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context2","_context3","sign","offset","absOffset","Math","abs","_Math$trunc","round","offsetString","_padStartInstanceProperty","String","label","name","abbr","timezone","DateUtil","DateTimeUtil","TimeUtil","TimestampUtil"],"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":[]}
|
|
@@ -12,6 +12,7 @@ export function getUploadPath(contextPath?: string, origin?: string): string;
|
|
|
12
12
|
export function getCaptchaPath(contextPath?: string, origin?: string): string;
|
|
13
13
|
export function hasAllContentInData(): boolean;
|
|
14
14
|
export function isIncludeTimeOffsetInDateTimes(): boolean;
|
|
15
|
+
export function getEnabledLocales(): Array<string>;
|
|
15
16
|
export function loginType(): string;
|
|
16
17
|
export function loginPath(clientName?: string): string;
|
|
17
18
|
export function loginUsernameField(): string;
|
|
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.setSettings = exports.setSetting = exports.setContextPath = exports.logoutPath = exports.loginUsernameField = exports.loginType = exports.loginPath = exports.loginPasswordField = exports.isIncludeTimeOffsetInDateTimes = exports.hasAllContentInData = exports.getUploadPath = exports.getSwimLaneDiagramConfiguration = exports.getSetting = exports.getCaptchaPath = exports.getBasePathServer = exports.getBasePathModularUI = exports.getBasePath = exports.cacheContributions = exports.allSettings = exports.LOGOUT_PATH = exports.LOGIN_PATH = exports.BASE = void 0;
|
|
7
|
+
exports.setSettings = exports.setSetting = exports.setContextPath = exports.logoutPath = exports.loginUsernameField = exports.loginType = exports.loginPath = exports.loginPasswordField = exports.isIncludeTimeOffsetInDateTimes = exports.hasAllContentInData = exports.getUploadPath = exports.getSwimLaneDiagramConfiguration = exports.getSetting = exports.getEnabledLocales = exports.getCaptchaPath = exports.getBasePathServer = exports.getBasePathModularUI = exports.getBasePath = exports.cacheContributions = exports.allSettings = exports.LOGOUT_PATH = exports.LOGIN_PATH = exports.BASE = void 0;
|
|
8
8
|
var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign"));
|
|
9
9
|
var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
|
|
10
10
|
var _objects = require("../utils/helpers/objects");
|
|
@@ -162,12 +162,17 @@ const hasAllContentInData = () => getSetting(_Constants.ALL_CONTENT_IN_DATA_SETT
|
|
|
162
162
|
exports.hasAllContentInData = hasAllContentInData;
|
|
163
163
|
const isIncludeTimeOffsetInDateTimes = () => getSetting(_Constants.INCLUDE_TIME_OFFSET, false);
|
|
164
164
|
|
|
165
|
+
/**
|
|
166
|
+
*/
|
|
167
|
+
exports.isIncludeTimeOffsetInDateTimes = isIncludeTimeOffsetInDateTimes;
|
|
168
|
+
const getEnabledLocales = () => getSetting("ENABLED_LOCALES", ["en"]);
|
|
169
|
+
|
|
165
170
|
/**
|
|
166
171
|
* Login type, only available when pac4j is configured
|
|
167
172
|
*
|
|
168
173
|
* Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS
|
|
169
174
|
*/
|
|
170
|
-
exports.
|
|
175
|
+
exports.getEnabledLocales = getEnabledLocales;
|
|
171
176
|
const loginType = () => getSetting(_Constants.LOGIN_TYPE, _Constants.INTERNAL_LOGIN_TYPE.JAAS);
|
|
172
177
|
|
|
173
178
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Settings.js","names":["_objects","require","_repositoryResource","_Constants","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","XHR_ALWAYS_WITH_CREDENTIALS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","COMPLETE_SOURCE","settings","setSettings","config","isPlainObject","_assign","default","exports","getSetting","key","defaultValue","has","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getBasePathModularUI","getBasePathServer","getUploadPath","arguments","length","origin","UPLOAD_PATH","getCaptchaPath","CAPTCHA_PATH","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING","isIncludeTimeOffsetInDateTimes","INCLUDE_TIME_OFFSET","loginType","LOGIN_TYPE","INTERNAL_LOGIN_TYPE","JAAS","loginPath","clientName","LOGIN_PATH_SETTING","loginUsernameField","LOGIN_USERNAME_SETTING","loginPasswordField","LOGIN_PASSWORD_SETTING","logoutPath","LOGOUT_PATH_SETTING","getSwimLaneDiagramConfiguration","configLocation","_startsWith","call","getRepositoryResourceUrl","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INCLUDE_TIME_OFFSET,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n XHR_ALWAYS_WITH_CREDENTIALS: false,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n\n COMPLETE_SOURCE: false,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * The context path is retrieved on the server using the context path property as set in the runtime properties\n * This can be manually override by setting the UI setting 'CONTEXT_PATH'\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * The context path to modular ui rest services\n */\nexport const getBasePathModularUI = (): string =>\n getSetting(\"CONTEXT_PATH_SERVER\", getBasePath());\n\n/**\n * Used to link the css and js files in the server templates\n */\nexport const getBasePathServer = (): string =>\n getSetting(\"CONTEXT_PATH_SERVER\", getBasePath());\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (\n contextPath: string = getBasePathModularUI(),\n origin: string = \"\",\n): string => `${origin}${contextPath}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (\n contextPath: string = getBasePathModularUI(),\n origin: string = \"\",\n): string => `${origin}${contextPath}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n */\nexport const isIncludeTimeOffsetInDateTimes = (): boolean =>\n getSetting(INCLUDE_TIME_OFFSET, false);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (clientName: string = \"FormClient\"): string =>\n getSetting(LOGIN_PATH_SETTING, `/callback?client_name=${clientName}`);\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Settings.js","names":["_objects","require","_repositoryResource","_Constants","serverBase","__CONTEXT_PATH__","defaultSettings","CONTEXT_PATH","window","contextPath","CACHE_CONTRIBUTIONS","DEBUG_I18N_MESSAGE_NOT_FOUND","HIDE_NOTIFICATION_TIMEOUT","ALWAYS_COMMIT_FORM","RENDER_QUESTION_LABELS","RENDER_MANDATORY_ATTRIBUTE_INDICATION","RENDER_OPTIONAL_ATTRIBUTE_INDICATION","AVAILABLE_LIST_VIEWS","USE_CLIENTSIDE_VALIDATION","USE_INSTANT_SERVER_VALIDATION","ENABLED_LOCALES","RENDER_GLOBAL_LOGIN_PAGE","RENDER_GLOBAL_LOGOUT_PAGE","RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE","LOGIN_PATH","ADMINISTRATOR_LOGIN_PATH","LOGOUT_PATH","RENDER_FORMS_IN_MODAL","SHOW_SUBMIT_WAIT_TIMEOUT","SWIM_LANE_DIAGRAM_CONFIGURATION","BUSINESS_SCENARIO_CONCEPT_TYPE","BUSINESS_SCENARIO_STEP_CONCEPT_TYPE","BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE","BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE","CALENDAR_WEEK_STARTS_ON","CALENDAR_FIRST_WEEK_CONTAINS_DATE","UI_PARAMETERS","ALLOW_HIDE_WHEN_EMPTY_ON_TABS","PAGE_RELOAD_ON_UNAUTHORIZED_ERROR","XHR_TIMEOUT_MS","XHR_ALWAYS_WITH_CREDENTIALS","HIDE_WHEN_EMPTY_IGNORE_TASKS","SHOW_AVATARS","COMPLETE_SOURCE","settings","setSettings","config","isPlainObject","_assign","default","exports","getSetting","key","defaultValue","has","undefined","Error","setSetting","value","allSettings","cacheContributions","getBasePath","getBasePathModularUI","getBasePathServer","getUploadPath","arguments","length","origin","UPLOAD_PATH","getCaptchaPath","CAPTCHA_PATH","hasAllContentInData","ALL_CONTENT_IN_DATA_SETTING","isIncludeTimeOffsetInDateTimes","INCLUDE_TIME_OFFSET","getEnabledLocales","loginType","LOGIN_TYPE","INTERNAL_LOGIN_TYPE","JAAS","loginPath","clientName","LOGIN_PATH_SETTING","loginUsernameField","LOGIN_USERNAME_SETTING","loginPasswordField","LOGIN_PASSWORD_SETTING","logoutPath","LOGOUT_PATH_SETTING","getSwimLaneDiagramConfiguration","configLocation","_startsWith","call","getRepositoryResourceUrl","setContextPath","BASE"],"sources":["../../src/constants/Settings.js"],"sourcesContent":["// @flow\nimport { isPlainObject, has } from \"../utils/helpers/objects\";\nimport { getRepositoryResourceUrl } from \"../utils/helpers/repositoryResource\";\nimport {\n ALL_CONTENT_IN_DATA_SETTING,\n INCLUDE_TIME_OFFSET,\n INTERNAL_LOGIN_TYPE,\n LOGIN_TYPE,\n LOGIN_PATH_SETTING,\n LOGIN_USERNAME_SETTING,\n LOGIN_PASSWORD_SETTING,\n LOGOUT_PATH_SETTING,\n UPLOAD_PATH,\n CAPTCHA_PATH,\n} from \"./Constants\";\n\ntype Setting = boolean | string | number | Array<string>;\n\nconst serverBase =\n typeof __CONTEXT_PATH__ === \"undefined\" ? null : __CONTEXT_PATH__;\n\nconst defaultSettings: { [name: string]: Setting } = {\n // This uses contextPath set from property from server\n CONTEXT_PATH:\n serverBase ??\n (typeof window !== \"undefined\" && window.contextPath\n ? window.contextPath\n : \"/BeInformed\"),\n\n // Indicates if contributions should be cached\n CACHE_CONTRIBUTIONS: true,\n\n // Debug missing i18n messages in layout\n DEBUG_I18N_MESSAGE_NOT_FOUND: true,\n\n // Time to show the notification bar\n HIDE_NOTIFICATION_TIMEOUT: 5000,\n\n // Always commit form, does not show result pages for instruments\n ALWAYS_COMMIT_FORM: false,\n\n // Render instrument and event question labels on forms (might result in duplicate labels)\n RENDER_QUESTION_LABELS: true,\n\n // Render mandatory indications on attributes\n RENDER_MANDATORY_ATTRIBUTE_INDICATION: true,\n\n // Render optional indications on attributes\n RENDER_OPTIONAL_ATTRIBUTE_INDICATION: false,\n\n // Renders a toggle with supported list views, options are ListView and TableView\n AVAILABLE_LIST_VIEWS: [\"ListView\", \"TableView\"],\n\n // Toggle client side validation\n USE_CLIENTSIDE_VALIDATION: true,\n\n // Indicates if server validation should be used when a form field is changed\n USE_INSTANT_SERVER_VALIDATION: true,\n\n // Indicates which locales are enabled\n ENABLED_LOCALES: [\"en\", \"nl\"],\n\n // Renders the global log in page\n RENDER_GLOBAL_LOGIN_PAGE: false,\n\n // Renders the global log out page\n RENDER_GLOBAL_LOGOUT_PAGE: false,\n\n // Renders the login variants as option on the global logout page\n RENDER_MULTI_LOGIN_ON_GLOBAL_LOGOUT_PAGE: false,\n\n // Path to login page / component\n LOGIN_PATH: \"/signin\",\n\n // Path to administrator login page / component\n ADMINISTRATOR_LOGIN_PATH: \"\",\n\n // Path to logout page / component\n LOGOUT_PATH: \"/signout\",\n\n // Render forms in a modal\n RENDER_FORMS_IN_MODAL: true,\n\n // Wait timeout before rendering submit wait icon\n SHOW_SUBMIT_WAIT_TIMEOUT: 300,\n\n // Swim lane diagram configuration file\n SWIM_LANE_DIAGRAM_CONFIGURATION: \"/Library/Diagrams/Overviews.json\",\n\n // Business scenario concept types\n BUSINESS_SCENARIO_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/BusinessScenario\",\n ],\n BUSINESS_SCENARIO_STEP_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/ScenarioStep\",\n ],\n BUSINESS_SCENARIO_PERSONA_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/Persona\",\n ],\n BUSINESS_SCENARIO_SYSTEM_CONCEPT_TYPE: [\n \"/Library/KMTs/Business scenarios.bixml/System\",\n ],\n\n // indicates on what day the week starts (0 = Sunday)\n CALENDAR_WEEK_STARTS_ON: 1,\n\n // indicates which date indicates the first week of the year\n CALENDAR_FIRST_WEEK_CONTAINS_DATE: 1,\n\n // parameters that are added for the ui state, but should not be send to the modular ui\n UI_PARAMETERS: [],\n\n // disable hide-when-empty hint for layouts running on Be Informed versions older than 21.1\n ALLOW_HIDE_WHEN_EMPTY_ON_TABS: true,\n\n // reload the complete page on signout, usefull when third party authentication is in place\n PAGE_RELOAD_ON_UNAUTHORIZED_ERROR: false,\n\n XHR_TIMEOUT_MS: 300000,\n\n XHR_ALWAYS_WITH_CREDENTIALS: false,\n\n HIDE_WHEN_EMPTY_IGNORE_TASKS: false,\n\n SHOW_AVATARS: true,\n\n COMPLETE_SOURCE: false,\n};\n\nlet settings = defaultSettings;\n\n/**\n */\nexport const setSettings = (config: Object) => {\n if (isPlainObject(config)) {\n settings = Object.assign(defaultSettings, config);\n }\n};\n\n/**\n */\nexport const getSetting = (key: string, defaultValue?: any): any => {\n if (!has(settings, key) && defaultValue === undefined) {\n throw new Error(\n `Setting with name ${key} not found and no defaultValue given`,\n );\n }\n return settings[key] ?? defaultValue;\n};\n\n/**\n */\nexport const setSetting = (key: string, value: any) => {\n settings[key] = value;\n};\n\n/**\n */\nexport const allSettings = (): { [name: string]: Setting } => settings;\n\n/**\n * Indicates if contributions must be cached\n */\nexport const cacheContributions = (): boolean =>\n getSetting(\"CACHE_CONTRIBUTIONS\", true);\n\n/**\n * The context path is retrieved on the server using the context path property as set in the runtime properties\n * This can be manually override by setting the UI setting 'CONTEXT_PATH'\n */\nexport const getBasePath = (): string =>\n getSetting(\"CONTEXT_PATH\", \"/BeInformed\");\n\n/**\n * The context path to modular ui rest services\n */\nexport const getBasePathModularUI = (): string =>\n getSetting(\"CONTEXT_PATH_SERVER\", getBasePath());\n\n/**\n * Used to link the css and js files in the server templates\n */\nexport const getBasePathServer = (): string =>\n getSetting(\"CONTEXT_PATH_SERVER\", getBasePath());\n\n/**\n * Path to upload service\n */\nexport const getUploadPath = (\n contextPath: string = getBasePathModularUI(),\n origin: string = \"\",\n): string => `${origin}${contextPath}${UPLOAD_PATH}`;\n\n/**\n * Path to captcha service\n */\nexport const getCaptchaPath = (\n contextPath: string = getBasePathModularUI(),\n origin: string = \"\",\n): string => `${origin}${contextPath}${CAPTCHA_PATH}`;\n\n/**\n */\nexport const hasAllContentInData = (): boolean =>\n getSetting(ALL_CONTENT_IN_DATA_SETTING, true);\n\n/**\n */\nexport const isIncludeTimeOffsetInDateTimes = (): boolean =>\n getSetting(INCLUDE_TIME_OFFSET, false);\n\n/**\n */\nexport const getEnabledLocales = (): Array<string> =>\n getSetting(\"ENABLED_LOCALES\", [\"en\"]);\n\n/**\n * Login type, only available when pac4j is configured\n *\n * Preview does not support pac4j, thus is probably not configured when started, which results in login type JAAS\n */\nexport const loginType = (): string =>\n getSetting(LOGIN_TYPE, INTERNAL_LOGIN_TYPE.JAAS);\n\n/**\n */\nexport const loginPath = (clientName: string = \"FormClient\"): string =>\n getSetting(LOGIN_PATH_SETTING, `/callback?client_name=${clientName}`);\n/**\n */\nexport const loginUsernameField = (): string =>\n getSetting(LOGIN_USERNAME_SETTING, \"j_username\");\n/**\n */\nexport const loginPasswordField = (): string =>\n getSetting(LOGIN_PASSWORD_SETTING, \"j_password\");\n/**\n */\nexport const logoutPath = (): string =>\n getSetting(LOGOUT_PATH_SETTING, \"/logout\");\n\nexport const LOGIN_PATH: string = loginPath();\nexport const LOGOUT_PATH: string = logoutPath();\n\n/**\n * Model overview swim lane configuration\n */\nexport const getSwimLaneDiagramConfiguration: Object = () => {\n let configLocation = getSetting(\n \"SWIM_LANE_DIAGRAM_CONFIGURATION\",\n \"/Library/Diagrams/Overviews.json\",\n );\n if (!configLocation.startsWith(\"/\")) {\n configLocation = `/${configLocation}`;\n }\n return getRepositoryResourceUrl(configLocation);\n};\n\n/**\n * Set the context path for requests to be informed\n */\nexport const setContextPath = (contextPath: string) => {\n setSetting(\"CONTEXT_PATH\", contextPath);\n};\n\n/**\n * Backwards compatible export of BASE constant\n */\nexport const BASE: string = getBasePath();\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function setUnhandledRejectionEvent(store: ReduxStore): void;
|
|
2
2
|
export function setModelCatalogEntryDate(store: ReduxStore): void;
|
|
3
|
-
export function setupClient(customReducers: CustomReducers | undefined, beforeRenderHooks: Array<BeforeRenderHook> | null): {
|
|
3
|
+
export function setupClient(customReducers: CustomReducers | undefined, beforeRenderHooks: Array<BeforeRenderHook> | null, theme?: Theme | Array<Theme>): {
|
|
4
4
|
store: ReduxStore;
|
|
5
5
|
routerHistory: RouterHistory;
|
|
6
6
|
};
|
|
@@ -25,6 +25,8 @@ var _RouterActions = require("../redux/_router/RouterActions");
|
|
|
25
25
|
var _exceptions = require("../exceptions");
|
|
26
26
|
var _Init = require("./Init");
|
|
27
27
|
var _beforeRenderHooks = require("../redux/store/beforeRenderHooks");
|
|
28
|
+
var _createTheme = _interopRequireDefault(require("../react-theme/createTheme"));
|
|
29
|
+
var _redux = require("../redux");
|
|
28
30
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
29
31
|
// eslint-disable-next-line react/no-deprecated
|
|
30
32
|
/*
|
|
@@ -63,11 +65,25 @@ const setUnhandledRejectionEvent = store => {
|
|
|
63
65
|
};
|
|
64
66
|
};
|
|
65
67
|
|
|
68
|
+
/**
|
|
69
|
+
*/
|
|
70
|
+
exports.setUnhandledRejectionEvent = setUnhandledRejectionEvent;
|
|
71
|
+
const initThemeSettings = (state, theme) => {
|
|
72
|
+
const storedTheme = state.preferences.theme;
|
|
73
|
+
// $FlowFixMe
|
|
74
|
+
(0, _createTheme.default)(storedTheme, theme); // on theme creation, the settings are set
|
|
75
|
+
};
|
|
76
|
+
const handleLocale = store => {
|
|
77
|
+
const locale = store.getState().i18n.locale;
|
|
78
|
+
if (locale) {
|
|
79
|
+
store.dispatch((0, _redux.receiveLocale)(locale));
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
|
|
66
83
|
/**
|
|
67
84
|
* The redirectURI querystring parameter is available when the server is redirecting an unauthorized deep link
|
|
68
85
|
* @param store
|
|
69
86
|
*/
|
|
70
|
-
exports.setUnhandledRejectionEvent = setUnhandledRejectionEvent;
|
|
71
87
|
const handleRedirectURI = store => {
|
|
72
88
|
const urlParams = new _urlSearchParams.default(window.location.search);
|
|
73
89
|
const redirectURI = urlParams.get("redirectURI");
|
|
@@ -107,6 +123,7 @@ exports.setModelCatalogEntryDate = setModelCatalogEntryDate;
|
|
|
107
123
|
const setupClient = function () {
|
|
108
124
|
let customReducers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
109
125
|
let beforeRenderHooks = arguments.length > 1 ? arguments[1] : undefined;
|
|
126
|
+
let theme = arguments.length > 2 ? arguments[2] : undefined;
|
|
110
127
|
if (typeof window.contextPath === "undefined") {
|
|
111
128
|
throw new Error("Missing contextPath on window object");
|
|
112
129
|
}
|
|
@@ -123,6 +140,8 @@ const setupClient = function () {
|
|
|
123
140
|
routerHistory,
|
|
124
141
|
store
|
|
125
142
|
} = (0, _configureStore.default)(browserHistory, customReducers, (0, _rehydrate.default)(data));
|
|
143
|
+
initThemeSettings(store.getState(), theme);
|
|
144
|
+
handleLocale(store);
|
|
126
145
|
handleRedirectURI(store);
|
|
127
146
|
setModelCatalogEntryDate(store);
|
|
128
147
|
(0, _Preferences.setAllContentInDataSetting)(store.getState());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","names":["_client","require","_objects","_setimmediate","_interopRequireDefault","_Cache","_xhr","_history","_configureStore","_rehydrate","_Settings","_Preferences","_Notification","_Error","_SignIn","_ModelCatalog","_RouterActions","_exceptions","_Init","_beforeRenderHooks","_jsxRuntime","parseDataToJSON","data","JSON","parse","error","JsonParseException","getDataFromServer","_context","dataElement","document","querySelector","Error","_trim","default","textContent","call","setUnhandledRejectionEvent","store","window","onunhandledrejection","event","detail","setImmediate","errorMessage","reason","message","toString","dispatch","showXHRErrorNotification","exports","handleRedirectURI","urlParams","_urlSearchParams","location","search","redirectURI","get","xhr","url","getBasePathModularUI","catch","e","id","LOGIN_PATH","getSetting","replace","from","pathname","modal","setModelCatalogEntryDate","entryDateFromUrl","updateEntryDate","Cache","hasItem","getItem","setupClient","customReducers","arguments","length","undefined","beforeRenderHooks","contextPath","clear","browserHistory","createBrowserHistory","basename","getBasePathServer","routerHistory","configureStore","rehydrate","setAllContentInDataSetting","getState","setLoginPreferences","setDateTimeSettings","loadOtherBrowserTabs","loginSuccess","has","FetchException","response","handleError","listen","action","locationChange","body","className","handleBeforeRenderHooks","addContentLoadedEvent","theme","render","ErrorFallbackComponent","mount","addEventListener","applicationNode","jsx","Init","children","mountClient","element","isSSR","hydrateRoot","root","createRoot","client","_ref"],"sources":["../../src/react-client/client.js"],"sourcesContent":["// @flow\n// eslint-disable-next-line react/no-deprecated\nimport { hydrateRoot, createRoot } from \"react-dom/client\";\n\nimport { has } from \"../utils/helpers/objects\";\nimport setImmediate from \"setimmediate\";\n\nimport Cache from \"../utils/browser/Cache\";\n\nimport xhr from \"../utils/fetch/xhr\";\n\nimport { createBrowserHistory } from \"history\";\nimport configureStore from \"../redux/store/configureStore\";\n\nimport rehydrate from \"./rehydrate\";\nimport {\n getBasePathModularUI,\n getBasePathServer,\n getSetting,\n} from \"../constants/Settings\";\n\nimport {\n setAllContentInDataSetting,\n setDateTimeSettings,\n setLoginPreferences,\n} from \"../redux/actions/Preferences\";\nimport { showXHRErrorNotification } from \"../redux/actions/Notification\";\nimport { handleError } from \"../redux/actions/Error\";\nimport { loginSuccess } from \"../redux/actions/SignIn\";\nimport { updateEntryDate } from \"../redux/actions/ModelCatalog\";\n\nimport { locationChange, replace } from \"../redux/_router/RouterActions\";\n\nimport { JsonParseException, FetchException } from \"../exceptions\";\n\nimport { Init } from \"./Init\";\n\nimport { handleBeforeRenderHooks } from \"../redux/store/beforeRenderHooks\";\n\nimport type {\n ComponentType,\n Element as ReactElement,\n ElementType,\n} from \"react\";\nimport type { Theme } from \"../react-theme/types\";\nimport type { CustomReducers, ReduxStore } from \"../redux/types\";\nimport type { RouterHistory } from \"react-router\";\nimport type { BeforeRenderHook } from \"../redux/store/beforeRenderHooks\";\nimport type { Props as FallbackProps } from \"../react/ErrorBoundaryFallback\";\n\ntype RenderFunction = () => ReactElement<ElementType>;\ntype MountFunction = (\n applicationNode: Element,\n element: ReactElement<ElementType>,\n) => void;\ntype Props = {\n customReducers?: CustomReducers,\n theme?: Theme | Array<Theme>,\n render: RenderFunction,\n mount: MountFunction,\n beforeRenderHooks?: Array<BeforeRenderHook>,\n ErrorFallbackComponent?: ComponentType<FallbackProps>,\n};\n\n/*\n * deserialize serialized data from the server to provide a smooth dehydration.\n */\nconst parseDataToJSON = (data: string) => {\n try {\n return JSON.parse(data);\n } catch (error) {\n throw new JsonParseException(`Error parsing content ${data}`);\n }\n};\n\nconst getDataFromServer = () => {\n const dataElement = document.querySelector(\n 'script[type=\"application/json\"][data-app-state=\"app-json\"]',\n );\n\n if (!dataElement) {\n throw new Error(\"Error loading state, json not found\");\n } else if (dataElement.textContent.trim() === \"\") {\n return {};\n }\n\n return parseDataToJSON(dataElement.textContent);\n};\n\n/**\n */\nexport const setUnhandledRejectionEvent = (store: ReduxStore) => {\n window.onunhandledrejection = (event) => {\n if (event.detail) {\n return setImmediate(() => {\n const errorMessage = event.detail.reason.message.toString();\n\n store.dispatch(showXHRErrorNotification(errorMessage));\n throw event.detail.reason;\n });\n }\n\n return event;\n };\n};\n\n/**\n * The redirectURI querystring parameter is available when the server is redirecting an unauthorized deep link\n * @param store\n */\nconst handleRedirectURI = (store: ReduxStore) => {\n const urlParams = new URLSearchParams(window.location.search);\n const redirectURI = urlParams.get(\"redirectURI\");\n if (redirectURI) {\n xhr({ url: `${getBasePathModularUI()}${redirectURI}` }).catch((e) => {\n if (\n e.id === \"UnauthorizedException\" ||\n e.id === \"Error.NotAuthorized\" ||\n e.id === \"Error.Authentication.Required\" ||\n e.id === \"Error.Authentication.InvalidCredentials\"\n ) {\n const LOGIN_PATH = getSetting(\"LOGIN_PATH\", \"/signin\");\n store.dispatch(\n replace(LOGIN_PATH, {\n from: { pathname: redirectURI },\n modal: false,\n }),\n );\n }\n });\n }\n};\n\n/**\n */\nexport const setModelCatalogEntryDate = (store: ReduxStore) => {\n if (typeof window !== \"undefined\") {\n const entryDateFromUrl = new URLSearchParams(window.location?.search).get(\n \"entryDate\",\n );\n if (entryDateFromUrl) {\n store.dispatch(updateEntryDate(entryDateFromUrl));\n } else if (Cache.hasItem(\"ModelCatalogEntryDate\")) {\n store.dispatch(Cache.getItem(\"ModelCatalogEntryDate\"));\n }\n }\n};\n\n/**\n */\nexport const setupClient = (\n customReducers: CustomReducers = {},\n beforeRenderHooks: ?Array<BeforeRenderHook>,\n): { store: ReduxStore, routerHistory: RouterHistory } => {\n if (typeof window.contextPath === \"undefined\") {\n throw new Error(\"Missing contextPath on window object\");\n }\n\n const data = getDataFromServer();\n\n // remove all resources from cache\n Cache.clear(\"^res:\");\n\n // $FlowExpectedError\n const browserHistory: RouterHistory = createBrowserHistory({\n basename: getBasePathServer(),\n });\n const { routerHistory, store } = configureStore(\n browserHistory,\n customReducers,\n rehydrate(data),\n );\n\n handleRedirectURI(store);\n setModelCatalogEntryDate(store);\n\n setAllContentInDataSetting(store.getState());\n setLoginPreferences(store.getState());\n setDateTimeSettings(store.getState());\n\n // load existing cache from other browser tabs\n Cache.loadOtherBrowserTabs(() => {\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n });\n\n if (has(data, \"error.name\")) {\n const error = new FetchException(data?.error?.response);\n store.dispatch(handleError(error));\n }\n\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n\n // listen to history change and update the redux router store\n routerHistory.listen((location, action) => {\n store.dispatch(locationChange(location, action));\n });\n\n setUnhandledRejectionEvent(store);\n\n if (document.body) {\n document.body.className = \"js\";\n }\n\n if (beforeRenderHooks) {\n handleBeforeRenderHooks(beforeRenderHooks, { store });\n }\n\n return { store, routerHistory };\n};\n\n/**\n */\nexport const addContentLoadedEvent = (\n store: ReduxStore,\n routerHistory: RouterHistory,\n theme?: Theme | Array<Theme>,\n render: RenderFunction,\n ErrorFallbackComponent?: ComponentType<FallbackProps>,\n mount: MountFunction,\n) => {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const applicationNode = document.querySelector(\"#application\");\n if (!applicationNode) {\n throw new Error(\n \"No DOM element with id application found to attach client to\",\n );\n }\n\n mount(\n applicationNode,\n <Init\n store={store}\n routerHistory={routerHistory}\n contextPath={window.contextPath}\n theme={theme}\n ErrorFallbackComponent={ErrorFallbackComponent}\n >\n {render()}\n </Init>,\n );\n });\n};\n\n/**\n */\nconst mountClient = (\n applicationNode: Element,\n element: ReactElement<ElementType>,\n) => {\n const isSSR = applicationNode.querySelector(\".application\");\n if (isSSR) {\n hydrateRoot(element, applicationNode);\n } else {\n const root = createRoot(element);\n root.render(applicationNode);\n }\n};\n\n/**\n * Mount the webapplication to the DOM, setup redux store and caches, add unhandledRejectionEvent, used client side when JavaScript is enabled.\n */\nexport const client = ({\n customReducers,\n theme,\n render,\n beforeRenderHooks,\n ErrorFallbackComponent,\n mount,\n}: Props) => {\n const { store, routerHistory } = setupClient(\n customReducers,\n beforeRenderHooks,\n );\n\n addContentLoadedEvent(\n store,\n routerHistory,\n theme,\n render,\n ErrorFallbackComponent,\n mount ?? mountClient,\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"client.js","names":["_client","require","_objects","_setimmediate","_interopRequireDefault","_Cache","_xhr","_history","_configureStore","_rehydrate","_Settings","_Preferences","_Notification","_Error","_SignIn","_ModelCatalog","_RouterActions","_exceptions","_Init","_beforeRenderHooks","_createTheme","_redux","_jsxRuntime","parseDataToJSON","data","JSON","parse","error","JsonParseException","getDataFromServer","_context","dataElement","document","querySelector","Error","_trim","default","textContent","call","setUnhandledRejectionEvent","store","window","onunhandledrejection","event","detail","setImmediate","errorMessage","reason","message","toString","dispatch","showXHRErrorNotification","exports","initThemeSettings","state","theme","storedTheme","preferences","createTheme","handleLocale","locale","getState","i18n","receiveLocale","handleRedirectURI","urlParams","_urlSearchParams","location","search","redirectURI","get","xhr","url","getBasePathModularUI","catch","e","id","LOGIN_PATH","getSetting","replace","from","pathname","modal","setModelCatalogEntryDate","entryDateFromUrl","updateEntryDate","Cache","hasItem","getItem","setupClient","customReducers","arguments","length","undefined","beforeRenderHooks","contextPath","clear","browserHistory","createBrowserHistory","basename","getBasePathServer","routerHistory","configureStore","rehydrate","setAllContentInDataSetting","setLoginPreferences","setDateTimeSettings","loadOtherBrowserTabs","loginSuccess","has","FetchException","response","handleError","listen","action","locationChange","body","className","handleBeforeRenderHooks","addContentLoadedEvent","render","ErrorFallbackComponent","mount","addEventListener","applicationNode","jsx","Init","children","mountClient","element","isSSR","hydrateRoot","root","createRoot","client","_ref"],"sources":["../../src/react-client/client.js"],"sourcesContent":["// @flow\n// eslint-disable-next-line react/no-deprecated\nimport { hydrateRoot, createRoot } from \"react-dom/client\";\n\nimport { has } from \"../utils/helpers/objects\";\nimport setImmediate from \"setimmediate\";\n\nimport Cache from \"../utils/browser/Cache\";\n\nimport xhr from \"../utils/fetch/xhr\";\n\nimport { createBrowserHistory } from \"history\";\nimport configureStore from \"../redux/store/configureStore\";\n\nimport rehydrate from \"./rehydrate\";\nimport {\n getBasePathModularUI,\n getBasePathServer,\n getSetting,\n} from \"../constants/Settings\";\n\nimport {\n setAllContentInDataSetting,\n setDateTimeSettings,\n setLoginPreferences,\n} from \"../redux/actions/Preferences\";\nimport { showXHRErrorNotification } from \"../redux/actions/Notification\";\nimport { handleError } from \"../redux/actions/Error\";\nimport { loginSuccess } from \"../redux/actions/SignIn\";\nimport { updateEntryDate } from \"../redux/actions/ModelCatalog\";\n\nimport { locationChange, replace } from \"../redux/_router/RouterActions\";\n\nimport { JsonParseException, FetchException } from \"../exceptions\";\n\nimport { Init } from \"./Init\";\n\nimport { handleBeforeRenderHooks } from \"../redux/store/beforeRenderHooks\";\n\nimport type {\n ComponentType,\n Element as ReactElement,\n ElementType,\n} from \"react\";\nimport type { Theme } from \"../react-theme/types\";\nimport type { CustomReducers, ReduxState, ReduxStore } from \"../redux/types\";\nimport type { RouterHistory } from \"react-router\";\nimport type { BeforeRenderHook } from \"../redux/store/beforeRenderHooks\";\nimport type { Props as FallbackProps } from \"../react/ErrorBoundaryFallback\";\nimport createTheme from \"../react-theme/createTheme\";\nimport { receiveLocale } from \"../redux\";\n\ntype RenderFunction = () => ReactElement<ElementType>;\ntype MountFunction = (\n applicationNode: Element,\n element: ReactElement<ElementType>,\n) => void;\ntype Props = {\n customReducers?: CustomReducers,\n theme?: Theme | Array<Theme>,\n render: RenderFunction,\n mount: MountFunction,\n beforeRenderHooks?: Array<BeforeRenderHook>,\n ErrorFallbackComponent?: ComponentType<FallbackProps>,\n};\n\n/*\n * deserialize serialized data from the server to provide a smooth dehydration.\n */\nconst parseDataToJSON = (data: string) => {\n try {\n return JSON.parse(data);\n } catch (error) {\n throw new JsonParseException(`Error parsing content ${data}`);\n }\n};\n\nconst getDataFromServer = () => {\n const dataElement = document.querySelector(\n 'script[type=\"application/json\"][data-app-state=\"app-json\"]',\n );\n\n if (!dataElement) {\n throw new Error(\"Error loading state, json not found\");\n } else if (dataElement.textContent.trim() === \"\") {\n return {};\n }\n\n return parseDataToJSON(dataElement.textContent);\n};\n\n/**\n */\nexport const setUnhandledRejectionEvent = (store: ReduxStore) => {\n window.onunhandledrejection = (event) => {\n if (event.detail) {\n return setImmediate(() => {\n const errorMessage = event.detail.reason.message.toString();\n\n store.dispatch(showXHRErrorNotification(errorMessage));\n throw event.detail.reason;\n });\n }\n\n return event;\n };\n};\n\n/**\n */\nconst initThemeSettings = (state: ReduxState, theme?: Theme | Array<Theme>) => {\n const storedTheme = state.preferences.theme;\n // $FlowFixMe\n createTheme(storedTheme, theme); // on theme creation, the settings are set\n};\n\nconst handleLocale = (store: ReduxStore) => {\n const locale = store.getState().i18n.locale;\n if (locale) {\n store.dispatch(receiveLocale(locale));\n }\n};\n\n/**\n * The redirectURI querystring parameter is available when the server is redirecting an unauthorized deep link\n * @param store\n */\nconst handleRedirectURI = (store: ReduxStore) => {\n const urlParams = new URLSearchParams(window.location.search);\n const redirectURI = urlParams.get(\"redirectURI\");\n if (redirectURI) {\n xhr({ url: `${getBasePathModularUI()}${redirectURI}` }).catch((e) => {\n if (\n e.id === \"UnauthorizedException\" ||\n e.id === \"Error.NotAuthorized\" ||\n e.id === \"Error.Authentication.Required\" ||\n e.id === \"Error.Authentication.InvalidCredentials\"\n ) {\n const LOGIN_PATH = getSetting(\"LOGIN_PATH\", \"/signin\");\n store.dispatch(\n replace(LOGIN_PATH, {\n from: { pathname: redirectURI },\n modal: false,\n }),\n );\n }\n });\n }\n};\n\n/**\n */\nexport const setModelCatalogEntryDate = (store: ReduxStore) => {\n if (typeof window !== \"undefined\") {\n const entryDateFromUrl = new URLSearchParams(window.location?.search).get(\n \"entryDate\",\n );\n if (entryDateFromUrl) {\n store.dispatch(updateEntryDate(entryDateFromUrl));\n } else if (Cache.hasItem(\"ModelCatalogEntryDate\")) {\n store.dispatch(Cache.getItem(\"ModelCatalogEntryDate\"));\n }\n }\n};\n\n/**\n */\nexport const setupClient = (\n customReducers: CustomReducers = {},\n beforeRenderHooks: ?Array<BeforeRenderHook>,\n theme?: Theme | Array<Theme>,\n): { store: ReduxStore, routerHistory: RouterHistory } => {\n if (typeof window.contextPath === \"undefined\") {\n throw new Error(\"Missing contextPath on window object\");\n }\n\n const data = getDataFromServer();\n\n // remove all resources from cache\n Cache.clear(\"^res:\");\n\n // $FlowExpectedError\n const browserHistory: RouterHistory = createBrowserHistory({\n basename: getBasePathServer(),\n });\n const { routerHistory, store } = configureStore(\n browserHistory,\n customReducers,\n rehydrate(data),\n );\n\n initThemeSettings(store.getState(), theme);\n\n handleLocale(store);\n\n handleRedirectURI(store);\n setModelCatalogEntryDate(store);\n\n setAllContentInDataSetting(store.getState());\n setLoginPreferences(store.getState());\n setDateTimeSettings(store.getState());\n\n // load existing cache from other browser tabs\n Cache.loadOtherBrowserTabs(() => {\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n });\n\n if (has(data, \"error.name\")) {\n const error = new FetchException(data?.error?.response);\n store.dispatch(handleError(error));\n }\n\n if (Cache.getItem(\"auth\")) {\n store.dispatch(loginSuccess());\n }\n\n // listen to history change and update the redux router store\n routerHistory.listen((location, action) => {\n store.dispatch(locationChange(location, action));\n });\n\n setUnhandledRejectionEvent(store);\n\n if (document.body) {\n document.body.className = \"js\";\n }\n\n if (beforeRenderHooks) {\n handleBeforeRenderHooks(beforeRenderHooks, { store });\n }\n\n return { store, routerHistory };\n};\n\n/**\n */\nexport const addContentLoadedEvent = (\n store: ReduxStore,\n routerHistory: RouterHistory,\n theme?: Theme | Array<Theme>,\n render: RenderFunction,\n ErrorFallbackComponent?: ComponentType<FallbackProps>,\n mount: MountFunction,\n) => {\n window.addEventListener(\"DOMContentLoaded\", () => {\n const applicationNode = document.querySelector(\"#application\");\n if (!applicationNode) {\n throw new Error(\n \"No DOM element with id application found to attach client to\",\n );\n }\n\n mount(\n applicationNode,\n <Init\n store={store}\n routerHistory={routerHistory}\n contextPath={window.contextPath}\n theme={theme}\n ErrorFallbackComponent={ErrorFallbackComponent}\n >\n {render()}\n </Init>,\n );\n });\n};\n\n/**\n */\nconst mountClient = (\n applicationNode: Element,\n element: ReactElement<ElementType>,\n) => {\n const isSSR = applicationNode.querySelector(\".application\");\n if (isSSR) {\n hydrateRoot(element, applicationNode);\n } else {\n const root = createRoot(element);\n root.render(applicationNode);\n }\n};\n\n/**\n * Mount the webapplication to the DOM, setup redux store and caches, add unhandledRejectionEvent, used client side when JavaScript is enabled.\n */\nexport const client = ({\n customReducers,\n theme,\n render,\n beforeRenderHooks,\n ErrorFallbackComponent,\n mount,\n}: Props) => {\n const { store, routerHistory } = setupClient(\n customReducers,\n beforeRenderHooks,\n );\n\n addContentLoadedEvent(\n store,\n routerHistory,\n theme,\n render,\n ErrorFallbackComponent,\n mount ?? mountClient,\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -67,7 +67,7 @@ const setI18n = function (store) {
|
|
|
67
67
|
});
|
|
68
68
|
const enabledLocales = (0, _filter.default)(mergedLocales).call(mergedLocales, locale => {
|
|
69
69
|
var _context;
|
|
70
|
-
return (0, _includes.default)(_context = (0, _Settings.
|
|
70
|
+
return (0, _includes.default)(_context = (0, _Settings.getEnabledLocales)()).call(_context, locale.code);
|
|
71
71
|
});
|
|
72
72
|
const localesInstance = new _Locales.default(enabledLocales);
|
|
73
73
|
const preferredLocale = (0, _requestInformation.getPreferredLocale)(request, localesInstance);
|