@beinformed/ui 1.19.5 → 1.20.2
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 +19 -0
- package/esm/constants/Constants.js +5 -0
- package/esm/constants/Constants.js.map +1 -1
- package/esm/hooks/useContent.js +2 -6
- package/esm/hooks/useContent.js.map +1 -1
- package/esm/hooks/useI18n.js +10 -11
- package/esm/hooks/useI18n.js.map +1 -1
- package/esm/hooks/useModularUI.js +2 -3
- package/esm/hooks/useModularUI.js.map +1 -1
- package/esm/hooks/useModularUIRequest.js +2 -5
- package/esm/hooks/useModularUIRequest.js.map +1 -1
- package/esm/i18n/Message.js.map +1 -1
- package/esm/i18n/withMessage.js +2 -10
- package/esm/i18n/withMessage.js.map +1 -1
- package/esm/redux/_modularui/connector.js +3 -4
- package/esm/redux/_modularui/connector.js.map +1 -1
- package/esm/redux/_modularui/selectors.js +22 -5
- package/esm/redux/_modularui/selectors.js.map +1 -1
- package/esm/redux/_modularui/withModularUI.js +2 -10
- package/esm/redux/_modularui/withModularUI.js.map +1 -1
- package/esm/redux/actions/Application.js +26 -7
- package/esm/redux/actions/Application.js.map +1 -1
- package/esm/redux/selectors/i18n.js +16 -0
- package/esm/redux/selectors/i18n.js.map +1 -0
- package/esm/utils/datetime/DateTimeUtil.js +3 -1
- package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
- package/lib/constants/Constants.js +8 -2
- package/lib/constants/Constants.js.flow +5 -0
- package/lib/constants/Constants.js.map +1 -1
- package/lib/hooks/__tests__/useAuthentication.spec.js.flow +0 -8
- package/lib/hooks/useContent.js +3 -7
- package/lib/hooks/useContent.js.flow +2 -2
- package/lib/hooks/useContent.js.map +1 -1
- package/lib/hooks/useI18n.js +12 -9
- package/lib/hooks/useI18n.js.flow +10 -11
- package/lib/hooks/useI18n.js.map +1 -1
- package/lib/hooks/useModularUI.js +3 -3
- package/lib/hooks/useModularUI.js.flow +3 -2
- package/lib/hooks/useModularUI.js.map +1 -1
- package/lib/hooks/useModularUIRequest.js +2 -4
- package/lib/hooks/useModularUIRequest.js.flow +8 -10
- package/lib/hooks/useModularUIRequest.js.map +1 -1
- package/lib/i18n/Message.js.flow +1 -1
- package/lib/i18n/Message.js.map +1 -1
- package/lib/i18n/withMessage.js +2 -8
- package/lib/i18n/withMessage.js.flow +3 -4
- package/lib/i18n/withMessage.js.map +1 -1
- package/lib/redux/_modularui/connector.js +3 -3
- package/lib/redux/_modularui/connector.js.flow +3 -2
- package/lib/redux/_modularui/connector.js.map +1 -1
- package/lib/redux/_modularui/selectors.js +26 -6
- package/lib/redux/_modularui/selectors.js.flow +19 -1
- package/lib/redux/_modularui/selectors.js.map +1 -1
- package/lib/redux/_modularui/withModularUI.js +3 -9
- package/lib/redux/_modularui/withModularUI.js.flow +3 -5
- package/lib/redux/_modularui/withModularUI.js.map +1 -1
- package/lib/redux/actions/Application.js +31 -8
- package/lib/redux/actions/Application.js.flow +6 -8
- package/lib/redux/actions/Application.js.map +1 -1
- package/lib/redux/actions/__tests__/Application.spec.js.flow +1 -5
- package/lib/redux/actions/__tests__/Authorization.spec.js.flow +1 -1
- package/lib/redux/selectors/i18n.js +28 -0
- package/lib/redux/selectors/i18n.js.flow +15 -0
- package/lib/redux/selectors/i18n.js.map +1 -0
- package/lib/utils/datetime/DateTimeUtil.js +3 -1
- package/lib/utils/datetime/DateTimeUtil.js.flow +1 -1
- package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
- package/package.json +1 -1
- package/src/constants/Constants.js +5 -0
- package/src/hooks/__tests__/useAuthentication.spec.js +0 -8
- package/src/hooks/useContent.js +2 -2
- package/src/hooks/useI18n.js +10 -11
- package/src/hooks/useModularUI.js +3 -2
- package/src/hooks/useModularUIRequest.js +8 -10
- package/src/i18n/Message.js +1 -1
- package/src/i18n/withMessage.js +3 -4
- package/src/redux/_modularui/connector.js +3 -2
- package/src/redux/_modularui/selectors.js +19 -1
- package/src/redux/_modularui/withModularUI.js +3 -5
- package/src/redux/actions/Application.js +6 -8
- package/src/redux/actions/__tests__/Application.spec.js +1 -5
- package/src/redux/actions/__tests__/Authorization.spec.js +1 -1
- package/src/redux/selectors/i18n.js +15 -0
- package/src/utils/datetime/DateTimeUtil.js +1 -1
|
@@ -39,7 +39,9 @@ var BaseDateTimeUtil = /*#__PURE__*/function () {
|
|
|
39
39
|
(0, _createClass2.default)(BaseDateTimeUtil, [{
|
|
40
40
|
key: "getLocale",
|
|
41
41
|
value: function getLocale() {
|
|
42
|
-
var
|
|
42
|
+
var _getCookie;
|
|
43
|
+
|
|
44
|
+
var locale = (_getCookie = (0, _Cookies.getCookie)("locale")) !== null && _getCookie !== void 0 ? _getCookie : "en";
|
|
43
45
|
|
|
44
46
|
if (locale === "nl") {
|
|
45
47
|
return _locale.nl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateTimeUtil.js","names":["BaseDateTimeUtil","isoFormat","_isoFormat","locale","getCookie","nl","enGB","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","date","inputFormat","getOptions","parse","Date","targetFormat","parsedDate","toDate","isValid","format","getLocale","sourceFormat","toISO","realDate","formattedValue","isOutsideRange","isBefore","isAfter","replace","toUpperCase","inputDate","afterISODate","isSame","beforeISODate","compareDate","getTime","isSameDay","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","amount","addSeconds","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subSeconds","subMinutes","subHours","subDays","subWeeks","subMonths","subYears","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","year","setYear","month","setMonth","hour","setHours","minute","setMinutes","second","setSeconds","milliseconds","setMilliseconds","hours","minutes","seconds","set","DateUtil","ISO_DATE_FORMAT","DateTimeUtil","ISO_DATETIME_FORMAT","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n parse,\n format,\n isValid,\n isAfter,\n isBefore,\n isSameDay,\n addSeconds,\n addMinutes,\n addHours,\n addDays,\n addWeeks,\n addMonths,\n addYears,\n subSeconds,\n subMinutes,\n subHours,\n subDays,\n subWeeks,\n subMonths,\n subYears,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n setMilliseconds,\n setSeconds,\n setMinutes,\n setHours,\n setMonth,\n setYear,\n set,\n} from \"date-fns\";\nimport { nl, enGB } from \"date-fns/locale\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport {\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n DEFAULT_WEEK_STARTS_ON,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n} from \"../../constants\";\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\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 // returns the options defined in settings\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 toDate(date: string, inputFormat: string = this._isoFormat): Date {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(date: string | Date, targetFormat: string): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(date: string | Date, sourceFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate =\n typeof date === \"string\" ? this.toDate(date, sourceFormat) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, this._isoFormat, {\n weekStartsOn,\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n /**\n */\n convertFormat(sourceFormat: string): string {\n return sourceFormat ? sourceFormat : this._isoFormat;\n }\n\n /**\n * VALIDATION\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const { weekStartsOn } = this.getOptions();\n\n const realDate = this.toDate(date, sourceFormat);\n if (isValid(realDate)) {\n const formattedValue = format(realDate, sourceFormat, {\n weekStartsOn,\n });\n\n const isOutsideRange =\n isBefore(realDate, new Date(1000, 1, 1)) ||\n isAfter(realDate, 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 return false;\n }\n\n /**\n */\n isValid(date: string, inputFormat: string = this._isoFormat): boolean {\n return isValid(this.toDate(date, inputFormat));\n }\n\n /**\n */\n isAfter(\n inputDate: string,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\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,\n compareDate: string,\n inputFormat: string = this._isoFormat\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,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string): 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 * CALCULATIONS\n */\n addSeconds(date: string, amount: number): string {\n return this.toISO(addSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n addMinutes(date: string, amount: number): string {\n return this.toISO(addMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n addHours(date: string, amount: number): string {\n return this.toISO(addHours(this.toDate(date), amount));\n }\n\n /**\n */\n addDays(date: string, amount: number): string {\n return this.toISO(addDays(this.toDate(date), amount));\n }\n\n /**\n */\n addWeeks(date: string, amount: number): string {\n return this.toISO(addWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n addMonths(date: string, amount: number): string {\n return this.toISO(addMonths(this.toDate(date), amount));\n }\n\n /**\n */\n addYears(date: string, amount: number): string {\n return this.toISO(addYears(this.toDate(date), amount));\n }\n\n /**\n */\n subtractSeconds(date: string, amount: number): string {\n return this.toISO(subSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMinutes(date: string, amount: number): string {\n return this.toISO(subMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n subtractHours(date: string, amount: number): string {\n return this.toISO(subHours(this.toDate(date), amount));\n }\n\n /**\n */\n subtractDays(date: string, amount: number): string {\n return this.toISO(subDays(this.toDate(date), amount));\n }\n\n /**\n */\n subtractWeeks(date: string, amount: number): string {\n return this.toISO(subWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMonths(date: string, amount: number): string {\n return this.toISO(subMonths(this.toDate(date), amount));\n }\n\n /**\n */\n subtractYears(date: string, amount: number): string {\n return this.toISO(subYears(this.toDate(date), amount));\n }\n\n /**\n * GETTERS\n */\n startOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(startOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n endOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(endOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n startOfWeek(date: string, inputFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n return this.toISO(\n startOfWeek(this.toDate(date, inputFormat), {\n weekStartsOn,\n })\n );\n }\n\n /**\n */\n getHours(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getHours(parsedDate);\n }\n\n /**\n */\n getMinutes(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getMinutes(parsedDate);\n }\n\n /**\n */\n getWeek(date: string): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return getWeek(this.toDate(date), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n * SETTERS\n */\n setYear(date: string, year: number): string {\n return this.toISO(setYear(this.toDate(date), year));\n }\n\n /**\n */\n setMonth(date: string, month: number): string {\n return this.toISO(setMonth(this.toDate(date), month));\n }\n\n /**\n */\n setHour(date: string, hour: number): string {\n return this.toISO(setHours(this.toDate(date), hour));\n }\n\n /**\n */\n setMinute(date: string, minute: number): string {\n return this.toISO(setMinutes(this.toDate(date), minute));\n }\n\n /**\n */\n setSecond(date: string, second: number): string {\n return this.toISO(setSeconds(this.toDate(date), second));\n }\n\n /**\n */\n setMilliseconds(date: string, milliseconds: number): string {\n return this.toISO(setMilliseconds(this.toDate(date), milliseconds));\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number\n ): string {\n return this.toISO(\n set(this.toDate(date), {\n hours,\n minutes,\n seconds,\n milliseconds,\n })\n );\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);\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);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":";;;;;;;;;;;;;;;AACA;;AAoCA;;AAEA;;AAEA;;AAEA;;AASA;AACA;AACA;IACMA,gB;EAGJ,0BAAYC,SAAZ,EAA+B;IAAA;IAAA;IAC7B,KAAKC,UAAL,GAAkBD,SAAlB;EACD;EAED;AACF;;;;;WACE,qBAAqC;MACnC,IAAME,MAAM,GAAG,IAAAC,kBAAA,EAAU,QAAV,KAAuB,IAAtC;;MAEA,IAAID,MAAM,KAAK,IAAf,EAAqB;QACnB,OAAOE,UAAP;MACD;;MAED,OAAOC,YAAP;IACD,C,CAED;;;;WACA,sBAGE;MACA;MACA,IAAMC,YAAY,GAAG,IAAAC,oBAAA,EACnB,yBADmB,EAEnBC,iCAFmB,CAArB,CAFA,CAOA;;MACA,IAAMC,qBAAqB,GAAG,IAAAF,oBAAA,EAC5B,mCAD4B,EAE5BG,2CAF4B,CAA9B;MAKA,OAAO;QAAEJ,YAAY,EAAZA,YAAF;QAAgBG,qBAAqB,EAArBA;MAAhB,CAAP;IACD;IAED;AACF;;;;WACE,gBAAOE,IAAP,EAAkE;MAAA,IAA7CC,WAA6C,uEAAvB,KAAKX,UAAkB;;MAChE,uBAAgD,KAAKY,UAAL,EAAhD;MAAA,IAAQP,YAAR,oBAAQA,YAAR;MAAA,IAAsBG,qBAAtB,oBAAsBA,qBAAtB;;MAEA,OAAO,IAAAK,cAAA,EAAMH,IAAN,EAAYC,WAAZ,EAAyB,IAAIG,IAAJ,EAAzB,EAAqC;QAC1CT,YAAY,EAAZA,YAD0C;QAE1CG,qBAAqB,EAArBA;MAF0C,CAArC,CAAP;IAID;IAED;AACF;;;;WACE,kBAASE,IAAT,EAA8BK,YAA9B,EAA4D;MAC1D,wBAAyB,KAAKH,UAAL,EAAzB;MAAA,IAAQP,YAAR,qBAAQA,YAAR;;MAEA,IAAMW,UAAU,GAAG,OAAON,IAAP,KAAgB,QAAhB,GAA2B,KAAKO,MAAL,CAAYP,IAAZ,CAA3B,GAA+CA,IAAlE;;MAEA,IAAI,IAAAQ,gBAAA,EAAQF,UAAR,CAAJ,EAAyB;QACvB,OAAO,IAAAG,eAAA,EAAOH,UAAP,EAAmBD,YAAnB,EAAiC;UACtCV,YAAY,EAAZA,YADsC;UAEtCJ,MAAM,EAAE,KAAKmB,SAAL;QAF8B,CAAjC,CAAP;MAID;;MAED,OAAO,cAAP;IACD;IAED;AACF;;;;WACE,eAAMV,IAAN,EAA2E;MAAA,IAAhDW,YAAgD,uEAAzB,KAAKrB,UAAoB;;MACzE,wBAAyB,KAAKY,UAAL,EAAzB;MAAA,IAAQP,YAAR,qBAAQA,YAAR;;MAEA,IAAMW,UAAU,GACd,OAAON,IAAP,KAAgB,QAAhB,GAA2B,KAAKO,MAAL,CAAYP,IAAZ,EAAkBW,YAAlB,CAA3B,GAA6DX,IAD/D;;MAGA,IAAI,IAAAQ,gBAAA,EAAQF,UAAR,CAAJ,EAAyB;QACvB,OAAO,IAAAG,eAAA,EAAOH,UAAP,EAAmB,KAAKhB,UAAxB,EAAoC;UACzCK,YAAY,EAAZA;QADyC,CAApC,CAAP;MAGD;;MAED,OAAO,cAAP;IACD;IAED;AACF;;;;WACE,eAAc;MACZ,OAAO,KAAKiB,KAAL,CAAW,IAAIR,IAAJ,EAAX,CAAP;IACD;IAED;AACF;;;;WACE,uBAAcO,YAAd,EAA4C;MAC1C,OAAOA,YAAY,GAAGA,YAAH,GAAkB,KAAKrB,UAA1C;IACD;IAED;AACF;AACA;;;;WACE,mBAAUU,IAAV,EAAwBW,YAAxB,EAAuD;MACrD,wBAAyB,KAAKT,UAAL,EAAzB;MAAA,IAAQP,YAAR,qBAAQA,YAAR;;MAEA,IAAMkB,QAAQ,GAAG,KAAKN,MAAL,CAAYP,IAAZ,EAAkBW,YAAlB,CAAjB;;MACA,IAAI,IAAAH,gBAAA,EAAQK,QAAR,CAAJ,EAAuB;QACrB,IAAMC,cAAc,GAAG,IAAAL,eAAA,EAAOI,QAAP,EAAiBF,YAAjB,EAA+B;UACpDhB,YAAY,EAAZA;QADoD,CAA/B,CAAvB;QAIA,IAAMoB,cAAc,GAClB,IAAAC,iBAAA,EAASH,QAAT,EAAmB,IAAIT,IAAJ,CAAS,IAAT,EAAe,CAAf,EAAkB,CAAlB,CAAnB,KACA,IAAAa,gBAAA,EAAQJ,QAAR,EAAkB,IAAIT,IAAJ,CAAS,IAAT,EAAe,EAAf,EAAmB,EAAnB,CAAlB,CAFF;;QAGA,IAAIW,cAAJ,EAAoB;UAClB,OAAO,KAAP;QACD;;QAED,OACED,cAAc,CAACI,OAAf,CAAuB,IAAvB,EAA8B,EAA9B,EAAkCC,WAAlC,OACAnB,IAAI,CAACkB,OAAL,CAAa,IAAb,EAAoB,EAApB,EAAwBC,WAAxB,EAFF;MAID;;MAED,OAAO,KAAP;IACD;IAED;AACF;;;;WACE,iBAAQnB,IAAR,EAAsE;MAAA,IAAhDC,WAAgD,uEAA1B,KAAKX,UAAqB;MACpE,OAAO,IAAAkB,gBAAA,EAAQ,KAAKD,MAAL,CAAYP,IAAZ,EAAkBC,WAAlB,CAAR,CAAP;IACD;IAED;AACF;;;;WACE,iBACEmB,SADF,EAEEC,YAFF,EAIW;MAAA,IADTpB,WACS,uEADa,KAAKX,UAClB;MACT,OACE+B,YAAY,IAAI,IAAhB,IACA,IAAAJ,gBAAA,EAAQ,KAAKV,MAAL,CAAYa,SAAZ,EAAuBnB,WAAvB,CAAR,EAA6C,KAAKM,MAAL,CAAYc,YAAZ,CAA7C,CAFF;IAID;IAED;AACF;;;;WACE,uBACED,SADF,EAEEC,YAFF,EAIW;MAAA,IADTpB,WACS,uEADa,KAAKX,UAClB;MACT,OACE+B,YAAY,IAAI,IAAhB,KACC,KAAKJ,OAAL,CAAaG,SAAb,EAAwBC,YAAxB,EAAsCpB,WAAtC,KACC,KAAKqB,MAAL,CAAYF,SAAZ,EAAuBC,YAAvB,EAAqCpB,WAArC,CAFF,CADF;IAKD;IAED;AACF;;;;WACE,kBACEmB,SADF,EAEEG,aAFF,EAIW;MAAA,IADTtB,WACS,uEADa,KAAKX,UAClB;MACT,OACEiC,aAAa,IAAI,IAAjB,IACA,IAAAP,iBAAA,EAAS,KAAKT,MAAL,CAAYa,SAAZ,EAAuBnB,WAAvB,CAAT,EAA8C,KAAKM,MAAL,CAAYgB,aAAZ,CAA9C,CAFF;IAID;IAED;AACF;;;;WACE,wBACEH,SADF,EAEEG,aAFF,EAIW;MAAA,IADTtB,WACS,uEADa,KAAKX,UAClB;MACT,OACEiC,aAAa,IAAI,IAAjB,KACC,KAAKP,QAAL,CAAcI,SAAd,EAAyBG,aAAzB,EAAwCtB,WAAxC,KACC,KAAKqB,MAAL,CAAYF,SAAZ,EAAuBG,aAAvB,EAAsCtB,WAAtC,CAFF,CADF;IAKD;IAED;AACF;;;;WACE,gBACEmB,SADF,EAEEI,WAFF,EAIW;MAAA,IADTvB,WACS,uEADa,KAAKX,UAClB;MACT,OACEkC,WAAW,IAAI,IAAf,IACA,KAAKjB,MAAL,CAAYa,SAAZ,EAAuBnB,WAAvB,EAAoCwB,OAApC,OACE,KAAKlB,MAAL,CAAYiB,WAAZ,EAAyBC,OAAzB,EAHJ;IAKD;IAED;AACF;;;;WACE,mBACEL,SADF,EAEEI,WAFF,EAIW;MAAA,IADTvB,WACS,uEADa,KAAKX,UAClB;MACT,OACEkC,WAAW,IAAI,IAAf,IACA,IAAAE,kBAAA,EACE,KAAKnB,MAAL,CAAYa,SAAZ,EAAuBnB,WAAvB,CADF,EAEE,KAAKM,MAAL,CAAYiB,WAAZ,EAAyBvB,WAAzB,CAFF,CAFF;IAOD;IAED;AACF;;;;WACE,iBACEmB,SADF,EAEEI,WAFF,EAIW;MAAA,IADTvB,WACS,uEADa,KAAKX,UAClB;MACT,OAAO,CAAC,KAAKgC,MAAL,CAAYF,SAAZ,EAAuBI,WAAvB,EAAoCvB,WAApC,CAAR;IACD;IAED;AACF;;;;WACE,mBAAUmB,SAAV,EAAsC;MACpC,IAAMO,eAAe,GAAG,CAAxB;MACA,IAAMC,aAAa,GAAG,CAAtB;MACA,IAAMC,OAAO,GAAG,IAAAC,eAAA,EAAO,KAAKvB,MAAL,CAAYa,SAAZ,CAAP,CAAhB;MAEA,OAAOS,OAAO,KAAKF,eAAZ,IAA+BE,OAAO,KAAKD,aAAlD;IACD;IAED;AACF;AACA;;;;WACE,oBAAW5B,IAAX,EAAyB+B,MAAzB,EAAiD;MAC/C,OAAO,KAAKnB,KAAL,CAAW,IAAAoB,mBAAA,EAAW,KAAKzB,MAAL,CAAYP,IAAZ,CAAX,EAA8B+B,MAA9B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,oBAAW/B,IAAX,EAAyB+B,MAAzB,EAAiD;MAC/C,OAAO,KAAKnB,KAAL,CAAW,IAAAqB,mBAAA,EAAW,KAAK1B,MAAL,CAAYP,IAAZ,CAAX,EAA8B+B,MAA9B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,kBAAS/B,IAAT,EAAuB+B,MAAvB,EAA+C;MAC7C,OAAO,KAAKnB,KAAL,CAAW,IAAAsB,iBAAA,EAAS,KAAK3B,MAAL,CAAYP,IAAZ,CAAT,EAA4B+B,MAA5B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,iBAAQ/B,IAAR,EAAsB+B,MAAtB,EAA8C;MAC5C,OAAO,KAAKnB,KAAL,CAAW,IAAAuB,gBAAA,EAAQ,KAAK5B,MAAL,CAAYP,IAAZ,CAAR,EAA2B+B,MAA3B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,kBAAS/B,IAAT,EAAuB+B,MAAvB,EAA+C;MAC7C,OAAO,KAAKnB,KAAL,CAAW,IAAAwB,iBAAA,EAAS,KAAK7B,MAAL,CAAYP,IAAZ,CAAT,EAA4B+B,MAA5B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,mBAAU/B,IAAV,EAAwB+B,MAAxB,EAAgD;MAC9C,OAAO,KAAKnB,KAAL,CAAW,IAAAyB,kBAAA,EAAU,KAAK9B,MAAL,CAAYP,IAAZ,CAAV,EAA6B+B,MAA7B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,kBAAS/B,IAAT,EAAuB+B,MAAvB,EAA+C;MAC7C,OAAO,KAAKnB,KAAL,CAAW,IAAA0B,iBAAA,EAAS,KAAK/B,MAAL,CAAYP,IAAZ,CAAT,EAA4B+B,MAA5B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,yBAAgB/B,IAAhB,EAA8B+B,MAA9B,EAAsD;MACpD,OAAO,KAAKnB,KAAL,CAAW,IAAA2B,mBAAA,EAAW,KAAKhC,MAAL,CAAYP,IAAZ,CAAX,EAA8B+B,MAA9B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,yBAAgB/B,IAAhB,EAA8B+B,MAA9B,EAAsD;MACpD,OAAO,KAAKnB,KAAL,CAAW,IAAA4B,mBAAA,EAAW,KAAKjC,MAAL,CAAYP,IAAZ,CAAX,EAA8B+B,MAA9B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,uBAAc/B,IAAd,EAA4B+B,MAA5B,EAAoD;MAClD,OAAO,KAAKnB,KAAL,CAAW,IAAA6B,iBAAA,EAAS,KAAKlC,MAAL,CAAYP,IAAZ,CAAT,EAA4B+B,MAA5B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,sBAAa/B,IAAb,EAA2B+B,MAA3B,EAAmD;MACjD,OAAO,KAAKnB,KAAL,CAAW,IAAA8B,gBAAA,EAAQ,KAAKnC,MAAL,CAAYP,IAAZ,CAAR,EAA2B+B,MAA3B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,uBAAc/B,IAAd,EAA4B+B,MAA5B,EAAoD;MAClD,OAAO,KAAKnB,KAAL,CAAW,IAAA+B,iBAAA,EAAS,KAAKpC,MAAL,CAAYP,IAAZ,CAAT,EAA4B+B,MAA5B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,wBAAe/B,IAAf,EAA6B+B,MAA7B,EAAqD;MACnD,OAAO,KAAKnB,KAAL,CAAW,IAAAgC,kBAAA,EAAU,KAAKrC,MAAL,CAAYP,IAAZ,CAAV,EAA6B+B,MAA7B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,uBAAc/B,IAAd,EAA4B+B,MAA5B,EAAoD;MAClD,OAAO,KAAKnB,KAAL,CAAW,IAAAiC,iBAAA,EAAS,KAAKtC,MAAL,CAAYP,IAAZ,CAAT,EAA4B+B,MAA5B,CAAX,CAAP;IACD;IAED;AACF;AACA;;;;WACE,sBAAa/B,IAAb,EAA0E;MAAA,IAA/CC,WAA+C,uEAAzB,KAAKX,UAAoB;MACxE,OAAO,KAAKsB,KAAL,CAAW,IAAAkC,qBAAA,EAAa,KAAKvC,MAAL,CAAYP,IAAZ,EAAkBC,WAAlB,CAAb,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,oBAAWD,IAAX,EAAwE;MAAA,IAA/CC,WAA+C,uEAAzB,KAAKX,UAAoB;MACtE,OAAO,KAAKsB,KAAL,CAAW,IAAAmC,mBAAA,EAAW,KAAKxC,MAAL,CAAYP,IAAZ,EAAkBC,WAAlB,CAAX,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,qBAAYD,IAAZ,EAAyE;MAAA,IAA/CC,WAA+C,uEAAzB,KAAKX,UAAoB;;MACvE,wBAAyB,KAAKY,UAAL,EAAzB;MAAA,IAAQP,YAAR,qBAAQA,YAAR;;MAEA,OAAO,KAAKiB,KAAL,CACL,IAAAoC,oBAAA,EAAY,KAAKzC,MAAL,CAAYP,IAAZ,EAAkBC,WAAlB,CAAZ,EAA4C;QAC1CN,YAAY,EAAZA;MAD0C,CAA5C,CADK,CAAP;IAKD;IAED;AACF;;;;WACE,kBAASK,IAAT,EAAsC;MACpC,IAAMM,UAAU,GAAG,OAAON,IAAP,KAAgB,QAAhB,GAA2B,KAAKO,MAAL,CAAYP,IAAZ,CAA3B,GAA+CA,IAAlE;MACA,OAAO,IAAAiD,iBAAA,EAAS3C,UAAT,CAAP;IACD;IAED;AACF;;;;WACE,oBAAWN,IAAX,EAAwC;MACtC,IAAMM,UAAU,GAAG,OAAON,IAAP,KAAgB,QAAhB,GAA2B,KAAKO,MAAL,CAAYP,IAAZ,CAA3B,GAA+CA,IAAlE;MACA,OAAO,IAAAkD,mBAAA,EAAW5C,UAAX,CAAP;IACD;IAED;AACF;;;;WACE,iBAAQN,IAAR,EAA8B;MAC5B,wBAAgD,KAAKE,UAAL,EAAhD;MAAA,IAAQP,YAAR,qBAAQA,YAAR;MAAA,IAAsBG,qBAAtB,qBAAsBA,qBAAtB;;MAEA,OAAO,IAAAqD,gBAAA,EAAQ,KAAK5C,MAAL,CAAYP,IAAZ,CAAR,EAA2B;QAChCL,YAAY,EAAZA,YADgC;QAEhCG,qBAAqB,EAArBA;MAFgC,CAA3B,CAAP;IAID;IAED;AACF;AACA;;;;WACE,iBAAQE,IAAR,EAAsBoD,IAAtB,EAA4C;MAC1C,OAAO,KAAKxC,KAAL,CAAW,IAAAyC,gBAAA,EAAQ,KAAK9C,MAAL,CAAYP,IAAZ,CAAR,EAA2BoD,IAA3B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,kBAASpD,IAAT,EAAuBsD,KAAvB,EAA8C;MAC5C,OAAO,KAAK1C,KAAL,CAAW,IAAA2C,iBAAA,EAAS,KAAKhD,MAAL,CAAYP,IAAZ,CAAT,EAA4BsD,KAA5B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,iBAAQtD,IAAR,EAAsBwD,IAAtB,EAA4C;MAC1C,OAAO,KAAK5C,KAAL,CAAW,IAAA6C,iBAAA,EAAS,KAAKlD,MAAL,CAAYP,IAAZ,CAAT,EAA4BwD,IAA5B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,mBAAUxD,IAAV,EAAwB0D,MAAxB,EAAgD;MAC9C,OAAO,KAAK9C,KAAL,CAAW,IAAA+C,mBAAA,EAAW,KAAKpD,MAAL,CAAYP,IAAZ,CAAX,EAA8B0D,MAA9B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,mBAAU1D,IAAV,EAAwB4D,MAAxB,EAAgD;MAC9C,OAAO,KAAKhD,KAAL,CAAW,IAAAiD,mBAAA,EAAW,KAAKtD,MAAL,CAAYP,IAAZ,CAAX,EAA8B4D,MAA9B,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,yBAAgB5D,IAAhB,EAA8B8D,YAA9B,EAA4D;MAC1D,OAAO,KAAKlD,KAAL,CAAW,IAAAmD,wBAAA,EAAgB,KAAKxD,MAAL,CAAYP,IAAZ,CAAhB,EAAmC8D,YAAnC,CAAX,CAAP;IACD;IAED;AACF;;;;WACE,iBACE9D,IADF,EAEEgE,KAFF,EAGEC,OAHF,EAIEC,OAJF,EAKEJ,YALF,EAMU;MACR,OAAO,KAAKlD,KAAL,CACL,IAAAuD,YAAA,EAAI,KAAK5D,MAAL,CAAYP,IAAZ,CAAJ,EAAuB;QACrBgE,KAAK,EAALA,KADqB;QAErBC,OAAO,EAAPA,OAFqB;QAGrBC,OAAO,EAAPA,OAHqB;QAIrBJ,YAAY,EAAZA;MAJqB,CAAvB,CADK,CAAP;IAQD;;;;AAGH;AACA;AACA;;;AACA,IAAMM,QAA0B,GAAG,IAAIhF,gBAAJ,CAAqBiF,0BAArB,CAAnC;AAEA;AACA;AACA;;;AACA,IAAMC,YAA8B,GAAG,IAAIlF,gBAAJ,CACrCmF,8BADqC,CAAvC;AAIA;AACA;AACA;;;AACA,IAAMC,QAA0B,GAAG,IAAIpF,gBAAJ,CAAqBqF,0BAArB,CAAnC;AAEA;AACA;AACA;;;AACA,IAAMC,aAA+B,GAAG,IAAItF,gBAAJ,CACtCuF,+BADsC,CAAxC"}
|
|
1
|
+
{"version":3,"file":"DateTimeUtil.js","names":["BaseDateTimeUtil","isoFormat","_isoFormat","locale","getCookie","nl","enGB","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","date","inputFormat","getOptions","parse","Date","targetFormat","parsedDate","toDate","isValid","format","getLocale","sourceFormat","toISO","realDate","formattedValue","isOutsideRange","isBefore","isAfter","replace","toUpperCase","inputDate","afterISODate","isSame","beforeISODate","compareDate","getTime","isSameDay","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","amount","addSeconds","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subSeconds","subMinutes","subHours","subDays","subWeeks","subMonths","subYears","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","year","setYear","month","setMonth","hour","setHours","minute","setMinutes","second","setSeconds","milliseconds","setMilliseconds","hours","minutes","seconds","set","DateUtil","ISO_DATE_FORMAT","DateTimeUtil","ISO_DATETIME_FORMAT","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n parse,\n format,\n isValid,\n isAfter,\n isBefore,\n isSameDay,\n addSeconds,\n addMinutes,\n addHours,\n addDays,\n addWeeks,\n addMonths,\n addYears,\n subSeconds,\n subMinutes,\n subHours,\n subDays,\n subWeeks,\n subMonths,\n subYears,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n setMilliseconds,\n setSeconds,\n setMinutes,\n setHours,\n setMonth,\n setYear,\n set,\n} from \"date-fns\";\nimport { nl, enGB } from \"date-fns/locale\";\n\nimport { getCookie } from \"../browser/Cookies\";\n\nimport { getSetting } from \"../../constants/Settings\";\n\nimport {\n ISO_DATE_FORMAT,\n ISO_DATETIME_FORMAT,\n ISO_TIME_FORMAT,\n ISO_TIMESTAMP_FORMAT,\n DEFAULT_WEEK_STARTS_ON,\n DEFAULT_FIRST_WEEK_CONTAINS_DATE,\n} from \"../../constants\";\n\n/**\n * @hideconstructor\n */\nclass BaseDateTimeUtil {\n _isoFormat: string;\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\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 // returns the options defined in settings\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 toDate(date: string, inputFormat: string = this._isoFormat): Date {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return parse(date, inputFormat, new Date(), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n */\n toFormat(date: string | Date, targetFormat: string): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, targetFormat, {\n weekStartsOn,\n locale: this.getLocale(),\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n toISO(date: string | Date, sourceFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate =\n typeof date === \"string\" ? this.toDate(date, sourceFormat) : date;\n\n if (isValid(parsedDate)) {\n return format(parsedDate, this._isoFormat, {\n weekStartsOn,\n });\n }\n\n return \"Invalid Date\";\n }\n\n /**\n */\n now(): string {\n return this.toISO(new Date());\n }\n\n /**\n */\n convertFormat(sourceFormat: string): string {\n return sourceFormat ? sourceFormat : this._isoFormat;\n }\n\n /**\n * VALIDATION\n */\n hasFormat(date: string, sourceFormat: string): boolean {\n const { weekStartsOn } = this.getOptions();\n\n const realDate = this.toDate(date, sourceFormat);\n if (isValid(realDate)) {\n const formattedValue = format(realDate, sourceFormat, {\n weekStartsOn,\n });\n\n const isOutsideRange =\n isBefore(realDate, new Date(1000, 1, 1)) ||\n isAfter(realDate, 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 return false;\n }\n\n /**\n */\n isValid(date: string, inputFormat: string = this._isoFormat): boolean {\n return isValid(this.toDate(date, inputFormat));\n }\n\n /**\n */\n isAfter(\n inputDate: string,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n afterISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n beforeISODate: ?string,\n inputFormat: string = this._isoFormat\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,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\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,\n compareDate: string,\n inputFormat: string = this._isoFormat\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,\n compareDate: ?string,\n inputFormat: string = this._isoFormat\n ): boolean {\n return !this.isSame(inputDate, compareDate, inputFormat);\n }\n\n /**\n */\n isWeekend(inputDate: string): 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 * CALCULATIONS\n */\n addSeconds(date: string, amount: number): string {\n return this.toISO(addSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n addMinutes(date: string, amount: number): string {\n return this.toISO(addMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n addHours(date: string, amount: number): string {\n return this.toISO(addHours(this.toDate(date), amount));\n }\n\n /**\n */\n addDays(date: string, amount: number): string {\n return this.toISO(addDays(this.toDate(date), amount));\n }\n\n /**\n */\n addWeeks(date: string, amount: number): string {\n return this.toISO(addWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n addMonths(date: string, amount: number): string {\n return this.toISO(addMonths(this.toDate(date), amount));\n }\n\n /**\n */\n addYears(date: string, amount: number): string {\n return this.toISO(addYears(this.toDate(date), amount));\n }\n\n /**\n */\n subtractSeconds(date: string, amount: number): string {\n return this.toISO(subSeconds(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMinutes(date: string, amount: number): string {\n return this.toISO(subMinutes(this.toDate(date), amount));\n }\n\n /**\n */\n subtractHours(date: string, amount: number): string {\n return this.toISO(subHours(this.toDate(date), amount));\n }\n\n /**\n */\n subtractDays(date: string, amount: number): string {\n return this.toISO(subDays(this.toDate(date), amount));\n }\n\n /**\n */\n subtractWeeks(date: string, amount: number): string {\n return this.toISO(subWeeks(this.toDate(date), amount));\n }\n\n /**\n */\n subtractMonths(date: string, amount: number): string {\n return this.toISO(subMonths(this.toDate(date), amount));\n }\n\n /**\n */\n subtractYears(date: string, amount: number): string {\n return this.toISO(subYears(this.toDate(date), amount));\n }\n\n /**\n * GETTERS\n */\n startOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(startOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n endOfMonth(date: string, inputFormat: string = this._isoFormat): string {\n return this.toISO(endOfMonth(this.toDate(date, inputFormat)));\n }\n\n /**\n */\n startOfWeek(date: string, inputFormat: string = this._isoFormat): string {\n const { weekStartsOn } = this.getOptions();\n\n return this.toISO(\n startOfWeek(this.toDate(date, inputFormat), {\n weekStartsOn,\n })\n );\n }\n\n /**\n */\n getHours(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getHours(parsedDate);\n }\n\n /**\n */\n getMinutes(date: string | Date): number {\n const parsedDate = typeof date === \"string\" ? this.toDate(date) : date;\n return getMinutes(parsedDate);\n }\n\n /**\n */\n getWeek(date: string): number {\n const { weekStartsOn, firstWeekContainsDate } = this.getOptions();\n\n return getWeek(this.toDate(date), {\n weekStartsOn,\n firstWeekContainsDate,\n });\n }\n\n /**\n * SETTERS\n */\n setYear(date: string, year: number): string {\n return this.toISO(setYear(this.toDate(date), year));\n }\n\n /**\n */\n setMonth(date: string, month: number): string {\n return this.toISO(setMonth(this.toDate(date), month));\n }\n\n /**\n */\n setHour(date: string, hour: number): string {\n return this.toISO(setHours(this.toDate(date), hour));\n }\n\n /**\n */\n setMinute(date: string, minute: number): string {\n return this.toISO(setMinutes(this.toDate(date), minute));\n }\n\n /**\n */\n setSecond(date: string, second: number): string {\n return this.toISO(setSeconds(this.toDate(date), second));\n }\n\n /**\n */\n setMilliseconds(date: string, milliseconds: number): string {\n return this.toISO(setMilliseconds(this.toDate(date), milliseconds));\n }\n\n /**\n */\n setTime(\n date: string,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number\n ): string {\n return this.toISO(\n set(this.toDate(date), {\n hours,\n minutes,\n seconds,\n milliseconds,\n })\n );\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);\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);\n\nexport { DateUtil, DateTimeUtil, TimeUtil, TimestampUtil };\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -56,6 +56,11 @@ export const CAPTCHA_PATH = `${BASE}/captchaServices`;
|
|
|
56
56
|
*/
|
|
57
57
|
export const LOGIN_PATH = "/signin";
|
|
58
58
|
|
|
59
|
+
/**
|
|
60
|
+
* Path to administrator login page / component
|
|
61
|
+
*/
|
|
62
|
+
export const ADMINISTRATOR_LOGIN_PATH = null;
|
|
63
|
+
|
|
59
64
|
/**
|
|
60
65
|
* Path to logout page / component
|
|
61
66
|
*/
|
|
@@ -61,10 +61,6 @@ describe("authentication hooks", () => {
|
|
|
61
61
|
|
|
62
62
|
expect(store.getActions()).toStrictEqual([
|
|
63
63
|
{ type: "START_PROGRESS" },
|
|
64
|
-
{
|
|
65
|
-
type: "MODULARUI/REMOVE_KEY",
|
|
66
|
-
payload: "application(/)(en)",
|
|
67
|
-
},
|
|
68
64
|
{
|
|
69
65
|
type: "MODULARUI/STATUS",
|
|
70
66
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -112,10 +108,6 @@ describe("authentication hooks", () => {
|
|
|
112
108
|
expect(store.getActions()).toStrictEqual([
|
|
113
109
|
{ type: "START_PROGRESS" },
|
|
114
110
|
{ type: "MODULARUI/RESET" },
|
|
115
|
-
{
|
|
116
|
-
type: "MODULARUI/REMOVE_KEY",
|
|
117
|
-
payload: "application(/)(en)",
|
|
118
|
-
},
|
|
119
111
|
{
|
|
120
112
|
type: "MODULARUI/STATUS",
|
|
121
113
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
package/src/hooks/useContent.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import { useState, useEffect } from "react";
|
|
3
|
-
import { useSelector } from "react-redux";
|
|
4
3
|
|
|
5
4
|
import SourceReferenceCollection from "../models/concepts/SourceReferenceCollection";
|
|
6
5
|
import ModularUIRequest from "../modularui/ModularUIRequest";
|
|
7
6
|
|
|
8
7
|
import { useProgressIndicator } from "../hooks/useProgressIndicator";
|
|
8
|
+
import { useLocale } from "../hooks/useI18n";
|
|
9
9
|
|
|
10
10
|
import type ContentModel from "../models/content/ContentModel";
|
|
11
11
|
|
|
@@ -17,7 +17,7 @@ export const useContentFromSourceReferences = (
|
|
|
17
17
|
renderChildSections: boolean
|
|
18
18
|
): Array<ContentModel> => {
|
|
19
19
|
const [content, setContent] = useState([]);
|
|
20
|
-
const localeCode =
|
|
20
|
+
const localeCode = useLocale();
|
|
21
21
|
|
|
22
22
|
const { start, finish } = useProgressIndicator();
|
|
23
23
|
|
package/src/hooks/useI18n.js
CHANGED
|
@@ -3,18 +3,13 @@ import { useSelector } from "react-redux";
|
|
|
3
3
|
import { createSelector } from "reselect";
|
|
4
4
|
import memoize from "lodash/memoize";
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
const getLocales = (state) => state.i18n.locales;
|
|
6
|
+
import { getLocales, getLocale } from "../redux/selectors/i18n";
|
|
8
7
|
|
|
9
8
|
const getMessage = createSelector(
|
|
10
|
-
[getLocales,
|
|
9
|
+
[getLocales, getLocale],
|
|
11
10
|
(locales, localeCode) =>
|
|
12
11
|
memoize(
|
|
13
|
-
(
|
|
14
|
-
id?: string | null,
|
|
15
|
-
defaultMessage?: string | null,
|
|
16
|
-
placeholders?: Object
|
|
17
|
-
) =>
|
|
12
|
+
(id: string, defaultMessage?: string, placeholders?: Object) =>
|
|
18
13
|
locales
|
|
19
14
|
.getLocale(localeCode)
|
|
20
15
|
.getMessage(id, defaultMessage, placeholders),
|
|
@@ -25,8 +20,8 @@ const getMessage = createSelector(
|
|
|
25
20
|
/**
|
|
26
21
|
*/
|
|
27
22
|
const useMessage = (
|
|
28
|
-
id
|
|
29
|
-
defaultMessage?: string
|
|
23
|
+
id: string,
|
|
24
|
+
defaultMessage?: string,
|
|
30
25
|
placeholders?: Object | null
|
|
31
26
|
): any => useSelector(getMessage)(id, defaultMessage, placeholders);
|
|
32
27
|
|
|
@@ -34,4 +29,8 @@ const useMessage = (
|
|
|
34
29
|
*/
|
|
35
30
|
const useTranslate = (): ((...any) => any) => useSelector(getMessage);
|
|
36
31
|
|
|
37
|
-
|
|
32
|
+
/**
|
|
33
|
+
*/
|
|
34
|
+
const useLocale = (): string => useSelector(getLocale);
|
|
35
|
+
|
|
36
|
+
export { useTranslate, useMessage, useLocale };
|
|
@@ -7,14 +7,15 @@ import { loadModularUI, removeModelByKey } from "../redux/_modularui/actions";
|
|
|
7
7
|
|
|
8
8
|
import useDeepCompareEffect from "./useDeepCompareEffect";
|
|
9
9
|
|
|
10
|
+
import { useLocale } from "./useI18n";
|
|
11
|
+
|
|
10
12
|
import type Href from "../models/href/Href";
|
|
11
13
|
import type { RequestBaseOptions } from "../utils";
|
|
12
14
|
|
|
13
15
|
/**
|
|
14
16
|
*/
|
|
15
17
|
const useKeyForHook = (modelKey: string, url: string) => {
|
|
16
|
-
const locale =
|
|
17
|
-
|
|
18
|
+
const locale = useLocale();
|
|
18
19
|
return `${modelKey}(${url.split("?")[0]})(${locale})`;
|
|
19
20
|
};
|
|
20
21
|
|
|
@@ -3,20 +3,18 @@ import { createSelector } from "reselect";
|
|
|
3
3
|
import { useSelector } from "react-redux";
|
|
4
4
|
|
|
5
5
|
import ModularUIRequest from "../modularui/ModularUIRequest";
|
|
6
|
+
import { getLocale } from "../redux/selectors/i18n";
|
|
6
7
|
|
|
7
8
|
import type { RequestBaseOptions } from "../utils";
|
|
8
9
|
import type Href from "../models/href/Href";
|
|
9
10
|
|
|
10
|
-
const getModularUIRequest = createSelector(
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
);
|
|
11
|
+
const getModularUIRequest = createSelector([getLocale], (localeCode) => {
|
|
12
|
+
return (href: Href, options?: $Shape<RequestBaseOptions>) => {
|
|
13
|
+
const request = new ModularUIRequest(href, options);
|
|
14
|
+
request.locale = localeCode;
|
|
15
|
+
return request;
|
|
16
|
+
};
|
|
17
|
+
});
|
|
20
18
|
|
|
21
19
|
/**
|
|
22
20
|
* Creates a ModularUIRequest with the locale as available in the redux store
|
package/src/i18n/Message.js
CHANGED
package/src/i18n/withMessage.js
CHANGED
|
@@ -4,6 +4,8 @@ import { connect } from "react-redux";
|
|
|
4
4
|
import { createSelector } from "reselect";
|
|
5
5
|
import memoize from "lodash/memoize";
|
|
6
6
|
|
|
7
|
+
import { getLocales, getLocale } from "../redux/selectors/i18n";
|
|
8
|
+
|
|
7
9
|
import type { ReduxState } from "../redux/types";
|
|
8
10
|
import type { ComponentType } from "react";
|
|
9
11
|
|
|
@@ -20,11 +22,8 @@ type Props = {
|
|
|
20
22
|
...
|
|
21
23
|
};
|
|
22
24
|
|
|
23
|
-
const getLocaleCode = (state) => state.i18n.locale || "en";
|
|
24
|
-
const getLocales = (state) => state.i18n.locales;
|
|
25
|
-
|
|
26
25
|
const getMessage = createSelector(
|
|
27
|
-
[getLocales,
|
|
26
|
+
[getLocales, getLocale],
|
|
28
27
|
(locales, localeCode) =>
|
|
29
28
|
memoize(
|
|
30
29
|
(id: string, defaultMessage?: string, placeholders?: Object) =>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
-
import { useDispatch
|
|
3
|
+
import { useDispatch } from "react-redux";
|
|
4
4
|
import { useLocation } from "react-router";
|
|
5
5
|
|
|
6
6
|
import { loadModularUI, reloadModel, removeModelByKey } from "./actions";
|
|
@@ -10,6 +10,7 @@ import { getDisplayName } from "../../react/utils";
|
|
|
10
10
|
|
|
11
11
|
import { useUrl, useReload } from "./modularuiUtils";
|
|
12
12
|
import { useModularUI } from "../../hooks/useModularUI";
|
|
13
|
+
import { useLocale } from "../../hooks/useI18n";
|
|
13
14
|
|
|
14
15
|
import type { ComponentType, Node } from "react";
|
|
15
16
|
import type { Location } from "react-router";
|
|
@@ -88,7 +89,7 @@ const connector = (
|
|
|
88
89
|
}, [dispatch, modelKey]);
|
|
89
90
|
|
|
90
91
|
// Create new properties object to inject modularui properties to own props
|
|
91
|
-
const locale =
|
|
92
|
+
const locale = useLocale();
|
|
92
93
|
const newProps: InjectedProps = {
|
|
93
94
|
modelKey,
|
|
94
95
|
[propName]: modelEntry ? modelEntry.model : null,
|
|
@@ -150,7 +150,6 @@ export const keyByHref = (state: ReduxState, href: Href | string): ?string => {
|
|
|
150
150
|
|
|
151
151
|
return Object.keys(state.modularui).find((key) => {
|
|
152
152
|
const { model } = state.modularui[key];
|
|
153
|
-
|
|
154
153
|
return model && model.selfhref && model.selfhref.equals(findHref);
|
|
155
154
|
});
|
|
156
155
|
}
|
|
@@ -158,6 +157,25 @@ export const keyByHref = (state: ReduxState, href: Href | string): ?string => {
|
|
|
158
157
|
return null;
|
|
159
158
|
};
|
|
160
159
|
|
|
160
|
+
/**
|
|
161
|
+
* Returns all model keys found in the store, restrict on href
|
|
162
|
+
*/
|
|
163
|
+
export const allKeysByHref = (
|
|
164
|
+
state: ReduxState,
|
|
165
|
+
href: Href | string
|
|
166
|
+
): Array<string> => {
|
|
167
|
+
if (state && state.modularui) {
|
|
168
|
+
const findHref = href instanceof Href ? href : new Href(href);
|
|
169
|
+
|
|
170
|
+
return Object.keys(state.modularui).filter((key) => {
|
|
171
|
+
const { model } = state.modularui[key];
|
|
172
|
+
return model && model.selfhref && model.selfhref.equals(findHref);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
return [];
|
|
177
|
+
};
|
|
178
|
+
|
|
161
179
|
/**
|
|
162
180
|
*/
|
|
163
181
|
const getLocation = (state): string => state?.router?.location.pathname;
|
|
@@ -9,6 +9,8 @@ import { startProgress, finishProgress } from "../actions/ProgressIndicator";
|
|
|
9
9
|
|
|
10
10
|
import { handleError } from "../actions/Error";
|
|
11
11
|
|
|
12
|
+
import { getLocale } from "../selectors/i18n";
|
|
13
|
+
|
|
12
14
|
import { reloadModel } from "./actions";
|
|
13
15
|
|
|
14
16
|
import type {
|
|
@@ -43,12 +45,8 @@ type Props = {
|
|
|
43
45
|
...DispatchProps,
|
|
44
46
|
};
|
|
45
47
|
|
|
46
|
-
/**
|
|
47
|
-
*/
|
|
48
|
-
const getLocaleCode = (state) => state.i18n.locale ?? "en";
|
|
49
|
-
|
|
50
48
|
const modularui = createSelector(
|
|
51
|
-
[
|
|
49
|
+
[getLocale],
|
|
52
50
|
(localeCode) =>
|
|
53
51
|
(href, options = {}) => {
|
|
54
52
|
const modularuiRequest = new ModularUIRequest(href, options);
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
import { loadModularUI, removeModelByKey } from "../_modularui/actions";
|
|
3
|
-
import {
|
|
3
|
+
import { allKeysByHref } from "../_modularui/selectors";
|
|
4
4
|
import { ApplicationModel, Href } from "../../models";
|
|
5
|
+
import { getLocale } from "../selectors/i18n";
|
|
5
6
|
|
|
6
7
|
import type { Dispatch, GetState, ThunkAction } from "../types";
|
|
7
8
|
|
|
@@ -9,15 +10,12 @@ import type { Dispatch, GetState, ThunkAction } from "../types";
|
|
|
9
10
|
*/
|
|
10
11
|
export const reloadApplication =
|
|
11
12
|
(): ThunkAction => (dispatch: Dispatch, getState: GetState) => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const locale = getState().i18n?.locale;
|
|
16
|
-
modelKey = `application(/)(${locale})`;
|
|
13
|
+
const allKeys = allKeysByHref(getState(), "/");
|
|
14
|
+
for (const key of allKeys) {
|
|
15
|
+
dispatch(removeModelByKey(key));
|
|
17
16
|
}
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const modelKey = `application(/)(${getLocale(getState())})`;
|
|
21
19
|
return dispatch(
|
|
22
20
|
loadModularUI(modelKey, new Href("/", "Application"), {
|
|
23
21
|
targetModel: ApplicationModel,
|
|
@@ -16,10 +16,6 @@ describe("application actions", () => {
|
|
|
16
16
|
await store.dispatch(reloadApplication());
|
|
17
17
|
|
|
18
18
|
expect(store.getActions()).toStrictEqual([
|
|
19
|
-
{
|
|
20
|
-
type: "MODULARUI/REMOVE_KEY",
|
|
21
|
-
payload: "application(/)(en)",
|
|
22
|
-
},
|
|
23
19
|
{
|
|
24
20
|
type: "MODULARUI/STATUS",
|
|
25
21
|
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
@@ -49,7 +45,7 @@ describe("application actions", () => {
|
|
|
49
45
|
},
|
|
50
46
|
{
|
|
51
47
|
type: "MODULARUI/STATUS",
|
|
52
|
-
payload: { key: "/", status: "LOADING" },
|
|
48
|
+
payload: { key: "application(/)(en)", status: "LOADING" },
|
|
53
49
|
},
|
|
54
50
|
{ type: "START_PROGRESS" },
|
|
55
51
|
expect.objectContaining({
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// @flow
|
|
2
|
+
import type Locales from "../../i18n/Locales";
|
|
3
|
+
import type { ReduxState } from "../types";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Retrieve the locale from state
|
|
7
|
+
*/
|
|
8
|
+
export const getLocale = (state: ReduxState): string => {
|
|
9
|
+
return state.i18n?.locale ?? "en";
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Retrieve all available locales in the store
|
|
14
|
+
*/
|
|
15
|
+
export const getLocales = (state: ReduxState): Locales => state.i18n.locales;
|