@beinformed/ui 1.59.1 → 1.59.3

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.
Files changed (76) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/esm/models/attributes/DatetimeAttributeModel.js +0 -7
  3. package/esm/models/attributes/DatetimeAttributeModel.js.map +1 -1
  4. package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js +7 -2
  5. package/esm/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  6. package/esm/utils/datetime/DateTimeUtil.js +26 -4
  7. package/esm/utils/datetime/DateTimeUtil.js.map +1 -1
  8. package/lib/models/attributes/DatetimeAttributeModel.js +0 -7
  9. package/lib/models/attributes/DatetimeAttributeModel.js.flow +0 -9
  10. package/lib/models/attributes/DatetimeAttributeModel.js.map +1 -1
  11. package/lib/models/attributes/__tests__/DatetimeAttributeModel.spec.js.flow +29 -0
  12. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js +7 -2
  13. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.flow +5 -2
  14. package/lib/models/attributes/input-constraints/DateBoundaryConstraint.js.map +1 -1
  15. package/lib/utils/datetime/DateTimeUtil.js +26 -4
  16. package/lib/utils/datetime/DateTimeUtil.js.flow +26 -2
  17. package/lib/utils/datetime/DateTimeUtil.js.map +1 -1
  18. package/lib/utils/datetime/__tests__/DateTime.spec.js.flow +7 -0
  19. package/lib/utils/datetime/__tests__/DateTimeFormat.spec.js.flow +141 -0
  20. package/package.json +1 -1
  21. package/src/models/attributes/DatetimeAttributeModel.js +0 -9
  22. package/src/models/attributes/__tests__/DatetimeAttributeModel.spec.js +29 -0
  23. package/src/models/attributes/input-constraints/DateBoundaryConstraint.js +5 -2
  24. package/src/utils/datetime/DateTimeUtil.js +26 -2
  25. package/src/utils/datetime/__tests__/DateTime.spec.js +7 -0
  26. package/src/utils/datetime/__tests__/DateTimeFormat.spec.js +141 -0
  27. package/types/constants/Constants.d.ts +9 -0
  28. package/types/constants/Settings.d.ts +6 -3
  29. package/types/models/actions/ActionCollection.d.ts +2 -1
  30. package/types/models/actions/ActionModel.d.ts +1 -1
  31. package/types/models/attributes/AttributeCollection.d.ts +5 -1
  32. package/types/models/attributes/AttributeSetModel.d.ts +2 -1
  33. package/types/models/attributes/ChoiceAttributeOptionCollection.d.ts +7 -5
  34. package/types/models/attributes/ChoiceAttributeOptionModel.d.ts +7 -3
  35. package/types/models/attributes/CompositeAttributeChildCollection.d.ts +4 -3
  36. package/types/models/attributes/DatetimeAttributeModel.d.ts +66 -45
  37. package/types/models/attributes/_createAttribute.d.ts +2 -1
  38. package/types/models/attributes/input-constraints/DateBoundaryConstraint.d.ts +56 -40
  39. package/types/models/attributes/input-constraints/DatetimeFormatConstraint.d.ts +64 -42
  40. package/types/models/attributes/input-constraints/RangeConstraint.d.ts +55 -41
  41. package/types/models/base/BaseModel.d.ts +12 -1
  42. package/types/models/concepts/ConceptDetailModel.d.ts +4 -4
  43. package/types/models/concepts/ConceptIndexModel.d.ts +4 -0
  44. package/types/models/concepts/ConceptLinkModel.d.ts +2 -5
  45. package/types/models/concepts/ConceptRelationCollection.d.ts +3 -1
  46. package/types/models/concepts/ConceptRelationModel.d.ts +3 -1
  47. package/types/models/concepts/ConceptTypeDetailModel.d.ts +5 -9
  48. package/types/models/concepts/SourceReferenceCollection.d.ts +2 -1
  49. package/types/models/concepts/SourceReferenceModel.d.ts +3 -1
  50. package/types/models/content/ContentLinkModel.d.ts +2 -1
  51. package/types/models/content/SectionModel.d.ts +2 -1
  52. package/types/models/content/SubSectionModel.d.ts +6 -1
  53. package/types/models/error/ErrorResponse.d.ts +9 -1
  54. package/types/models/filters/FilterCollection.d.ts +3 -2
  55. package/types/models/grouping/GroupingModel.d.ts +4 -3
  56. package/types/models/href/Href.d.ts +26 -3
  57. package/types/models/index.d.ts +1 -0
  58. package/types/models/links/LinkCollection.d.ts +2 -1
  59. package/types/models/links/LinkModel.d.ts +3 -2
  60. package/types/models/list/ListItemModel.d.ts +2 -1
  61. package/types/models/lookup/LookupOptionCollection.d.ts +2 -1
  62. package/types/models/modelcatalog/ModelCatalogModel.d.ts +5 -0
  63. package/types/models/modelcatalog/ModelCategoryCollection.d.ts +11 -0
  64. package/types/models/modelcatalog/ModelCategoryModel.d.ts +39 -0
  65. package/types/models/taskgroup/TaskGroupModel.d.ts +2 -1
  66. package/types/models/types.d.ts +4 -0
  67. package/types/modularui/CaptchaRequest.d.ts +9 -0
  68. package/types/modularui/ModularUIRequest.d.ts +14 -1
  69. package/types/modularui/ModularUIResponse.d.ts +22 -0
  70. package/types/modularui/UploadRequest.d.ts +7 -1
  71. package/types/redux/_modularui/types.d.ts +3 -0
  72. package/types/redux/types.d.ts +8 -1
  73. package/types/utils/datetime/DateTimeUtil.d.ts +91 -45
  74. package/types/utils/fetch/types.d.ts +2 -0
  75. package/types/utils/helpers/createHref.d.ts +4 -3
  76. package/types/utils/helpers/repositoryResource.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DatetimeAttributeModel.js","names":["_objects","require","_DateTimeUtil","_StringAttributeModel","_interopRequireDefault","_ConstraintCollection","_DateTimeDateFormatConstraint","_DateTimeTimeFormatConstraint","_DatetimeFormatConstraint","_DateBoundaryConstraint","_constants","DatetimeAttributeModel","StringAttributeModel","constructor","attribute","attributeContributions","modelOptions","updateInitValue","isApplicableModel","contributions","_context","_includes","default","call","type","formatUtil","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","getInitValue","value","data","length","toFormat","getIsoFormat","toISO","hasTime","getTimeValue","_context2","_context3","_context4","_context5","timeValue","timeInputFormat","toLowerCase","setHour","setMinute","setSecond","setMilliseconds","isIncludeTimeOffsetInDateTimes","oldOffset","DATETIME_OFFSET_FORMAT","newOffset","replace","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","inputFormat","getContribution","getInputValue","toString","inputvalue","validate","format","convertFormat","hasDate","formatLabel","dateInputFormat","inputFormatWithoutOffset","_context6","_trim","_context7","dateReadonlyFormat","_context8","placeholder","_placeholder","split","timeFormatParts","push","timeFormat","join","timeReadonlyFormat","dateInputValue","timeInputValue","formatValue","hasFormat","ISO_DATE_FORMAT","dateTimeReadonlyFormat","readonlyvalue","isAmbiguous","offset","getOffset","mindate","maxdate","addServerError","error","id","message","properties","layouthint","has","_errorCollection","getFormatConstraint","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","addConstraints","constraints","ConstraintCollection","add","DateBoundaryConstraint","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","updateByAttribute","otherAttribute","reset","otherValue","inputValue","update","console","_default","exports"],"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport {\n isIncludeTimeOffsetInDateTimes,\n ATTRIBUTE_WIDTH,\n DATETIME_OFFSET_FORMAT,\n ISO_DATE_FORMAT,\n} from \"../../constants\";\n\nimport type {\n FormErrorAnchor,\n IConstraintModel,\n AttributeType,\n ModelOptions,\n} from \"../types\";\nimport type { OffsetInfo } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type,\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = TimestampUtil.toFormat(value, DateTimeUtil.getIsoFormat());\n } else {\n value = this.formatUtil.toISO(value);\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n\n if (isIncludeTimeOffsetInDateTimes()) {\n // https://github.com/date-fns/date-fns/issues/3579\n const oldOffset = this.formatUtil.toFormat(value, DATETIME_OFFSET_FORMAT);\n const newOffset = this.formatUtil.toFormat(\n timeValue,\n DATETIME_OFFSET_FORMAT,\n );\n timeValue = timeValue.replace(newOffset, oldOffset);\n }\n\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormatWithoutOffset(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get inputFormat(): string {\n if (\n isIncludeTimeOffsetInDateTimes() &&\n this.dateInputFormat !== \"\" &&\n this.timeInputFormat !== \"\"\n ) {\n return `${this.inputFormatWithoutOffset} ${DATETIME_OFFSET_FORMAT}`;\n }\n return this.inputFormatWithoutOffset;\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n * return attribute placeholder or return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n /**\n * format value in readonly rendering\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n if (this.hasDate && this.hasTime) {\n const dateTimeReadonlyFormat = `${this.dateReadonlyFormat} ${this.timeReadonlyFormat}`;\n return this.formatUtil.toFormat(value, dateTimeReadonlyFormat);\n }\n\n if (this.type === \"date\") {\n return this.formatUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n */\n get isAmbiguous(): boolean {\n if (typeof this.value === \"string\") {\n return this.formatUtil.isAmbiguous(this.value);\n }\n return false;\n }\n\n /**\n */\n get offset(): OffsetInfo | null {\n if (typeof this.value === \"string\") {\n return this.formatUtil.getOffset(this.value);\n }\n return null;\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel,\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel,\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel,\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat,\n ),\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof DatetimeAttributeModel) {\n const otherValue = otherAttribute.value;\n if (otherValue != null) {\n const inputValue = this.formatUtil.toFormat(\n otherValue,\n this.inputFormat,\n );\n this.update(inputValue);\n }\n } else {\n console.error(\n `update of datetime attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DatetimeAttributeModel.js","names":["_objects","require","_DateTimeUtil","_StringAttributeModel","_interopRequireDefault","_ConstraintCollection","_DateTimeDateFormatConstraint","_DateTimeTimeFormatConstraint","_DatetimeFormatConstraint","_DateBoundaryConstraint","_constants","DatetimeAttributeModel","StringAttributeModel","constructor","attribute","attributeContributions","modelOptions","updateInitValue","isApplicableModel","contributions","_context","_includes","default","call","type","formatUtil","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","getInitValue","value","data","length","toFormat","getIsoFormat","toISO","hasTime","getTimeValue","_context2","_context3","_context4","_context5","timeValue","timeInputFormat","toLowerCase","setHour","setMinute","setSecond","setMilliseconds","isIncludeTimeOffsetInDateTimes","oldOffset","DATETIME_OFFSET_FORMAT","newOffset","replace","_initvalue","_inputvalue","getInitialInputValue","_value","initValue","inputFormat","getContribution","getInputValue","toString","inputvalue","validate","format","convertFormat","hasDate","formatLabel","dateInputFormat","inputFormatWithoutOffset","_context6","_trim","_context7","dateReadonlyFormat","_context8","placeholder","_placeholder","split","timeFormatParts","push","timeFormat","join","timeReadonlyFormat","dateInputValue","timeInputValue","formatValue","hasFormat","ISO_DATE_FORMAT","readonlyvalue","isAmbiguous","offset","getOffset","mindate","maxdate","addServerError","error","id","message","properties","layouthint","has","_errorCollection","getFormatConstraint","DateTimeDateFormatConstraint","DateTimeTimeFormatConstraint","DatetimeFormatConstraint","addConstraints","constraints","ConstraintCollection","add","DateBoundaryConstraint","readonlyWidth","ATTRIBUTE_WIDTH","SMALL","MEDIUM","updateByAttribute","otherAttribute","reset","otherValue","inputValue","update","console","_default","exports"],"sources":["../../../src/models/attributes/DatetimeAttributeModel.js"],"sourcesContent":["// @flow\nimport { has } from \"../../utils/helpers/objects\";\n\nimport {\n DateUtil,\n DateTimeUtil,\n TimeUtil,\n TimestampUtil,\n} from \"../../utils/datetime/DateTimeUtil\";\n\nimport StringAttributeModel from \"./StringAttributeModel\";\n\nimport ConstraintCollection from \"./input-constraints/ConstraintCollection\";\nimport DateTimeDateFormatConstraint from \"./input-constraints/DateTimeDateFormatConstraint\";\nimport DateTimeTimeFormatConstraint from \"./input-constraints/DateTimeTimeFormatConstraint\";\nimport DatetimeFormatConstraint from \"./input-constraints/DatetimeFormatConstraint\";\nimport DateBoundaryConstraint from \"./input-constraints/DateBoundaryConstraint\";\n\nimport {\n isIncludeTimeOffsetInDateTimes,\n ATTRIBUTE_WIDTH,\n DATETIME_OFFSET_FORMAT,\n ISO_DATE_FORMAT,\n} from \"../../constants\";\n\nimport type {\n FormErrorAnchor,\n IConstraintModel,\n AttributeType,\n ModelOptions,\n} from \"../types\";\nimport type { OffsetInfo } from \"../../utils/datetime/DateTimeUtil\";\n\n/**\n */\nclass DatetimeAttributeModel extends StringAttributeModel {\n /**\n */\n constructor(\n attribute: Object,\n attributeContributions: Object,\n modelOptions?: ModelOptions,\n ) {\n super(attribute, attributeContributions, modelOptions);\n\n this.updateInitValue();\n }\n\n /**\n */\n static isApplicableModel(contributions: Object): boolean {\n return [\"date\", \"time\", \"datetime\", \"timestamp\"].includes(\n contributions.type,\n );\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n getInitValue(): string | null {\n let value = this.data.value;\n if (value != null) {\n if (this.type === \"time\" && value.length === 5) {\n value = `${value}:00`;\n }\n\n // handle old datetime values, which contained ms\n if (this.type === \"datetime\" && value.includes(\".\")) {\n value = TimestampUtil.toFormat(value, DateTimeUtil.getIsoFormat());\n } else {\n value = this.formatUtil.toISO(value);\n }\n\n if (this.hasTime) {\n value = this.getTimeValue(value);\n }\n }\n\n return value;\n }\n\n /**\n */\n getTimeValue(value: string): string {\n let timeValue = value;\n if (!this.timeInputFormat.toLowerCase().includes(\"h\")) {\n timeValue = this.formatUtil.setHour(value, 0);\n }\n if (!this.timeInputFormat.includes(\"m\")) {\n timeValue = this.formatUtil.setMinute(value, 0);\n }\n if (!this.timeInputFormat.includes(\"s\")) {\n timeValue = this.formatUtil.setSecond(value, 0);\n }\n if (this.type === \"timestamp\" && !this.timeInputFormat.includes(\"S\")) {\n timeValue = this.formatUtil.setMilliseconds(value, 0);\n }\n\n if (isIncludeTimeOffsetInDateTimes()) {\n // https://github.com/date-fns/date-fns/issues/3579\n const oldOffset = this.formatUtil.toFormat(value, DATETIME_OFFSET_FORMAT);\n const newOffset = this.formatUtil.toFormat(\n timeValue,\n DATETIME_OFFSET_FORMAT,\n );\n timeValue = timeValue.replace(newOffset, oldOffset);\n }\n\n return timeValue;\n }\n\n /**\n * Set time in the correct value based on available elements in the time format\n */\n updateInitValue() {\n const value = this.getInitValue();\n if (value != null) {\n this._initvalue = value;\n this._inputvalue = this.getInitialInputValue(value);\n this._value = value;\n }\n }\n\n /**\n * Get initial user input value\n */\n getInitialInputValue(value?: string): string {\n if (!value) {\n return \"\";\n }\n\n let initValue = value;\n if (this.type === \"time\" && value.length === 5) {\n initValue = `${value}:00`;\n }\n\n return this.formatUtil.toFormat(initValue, this.inputFormat);\n }\n\n /**\n * Set type to date\n */\n get type(): string {\n return this.getContribution(\"type\", \"date\");\n }\n\n /**\n * Returns the value as entered by the user. This can differ from the internal iso value that is stored\n */\n getInputValue(): string {\n return this._inputvalue ? this._inputvalue.toString() : \"\";\n }\n\n /**\n * Get input value\n */\n get inputvalue(): string {\n return this.getInputValue();\n }\n\n /**\n * Sets the input value to the value entered by the user\n */\n set inputvalue(value: string) {\n this.validate(value);\n\n this._inputvalue = value;\n\n this.value =\n value !== null && value !== \"\"\n ? this.formatUtil.toISO(value, this.inputFormat)\n : null;\n }\n\n /**\n * Get date format\n */\n get format(): string {\n const format = this.getContribution(\"format\", \"\");\n return this.formatUtil.convertFormat(format);\n }\n\n /**\n */\n get hasDate(): boolean {\n return (\n this.type === \"date\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get hasTime(): boolean {\n return (\n this.type === \"time\" ||\n this.type === \"datetime\" ||\n this.type === \"timestamp\"\n );\n }\n\n /**\n */\n get formatLabel(): string {\n switch (this.type) {\n case \"date\":\n return this.dateInputFormat.toLowerCase();\n case \"time\":\n return this.timeInputFormat.toLowerCase();\n default:\n return this.format.toLowerCase();\n }\n }\n\n /**\n */\n get inputFormatWithoutOffset(): string {\n if (this.hasDate && this.hasTime) {\n return `${this.dateInputFormat} ${this.timeInputFormat}`.trim();\n }\n\n if (this.hasDate) {\n return this.dateInputFormat;\n }\n\n if (this.hasTime) {\n return this.timeInputFormat;\n }\n\n return \"\";\n }\n\n /**\n */\n get inputFormat(): string {\n if (\n isIncludeTimeOffsetInDateTimes() &&\n this.dateInputFormat !== \"\" &&\n this.timeInputFormat !== \"\"\n ) {\n return `${this.inputFormatWithoutOffset} ${DATETIME_OFFSET_FORMAT}`;\n }\n return this.inputFormatWithoutOffset;\n }\n\n /**\n */\n get dateInputFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n */\n get dateReadonlyFormat(): string {\n if (!this.hasDate) {\n return \"\";\n }\n\n return this.hasTime\n ? this.format.replace(this.timeInputFormat, \"\").trim()\n : this.format;\n }\n\n /**\n * return attribute placeholder or return formatlabel without time input format from contributions\n */\n get placeholder(): string {\n if (this._placeholder !== \"\") {\n return this._placeholder;\n }\n\n const formatLabel = this.getContribution(\"formatlabel\", \"\");\n\n if (this.hasDate && this.hasTime && formatLabel.includes(\" \")) {\n // return first part of formatlabel to keep placeholder matching date input\n return formatLabel.split(\" \")[0];\n }\n\n return formatLabel;\n }\n\n /**\n * Set placeholder text\n */\n set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n }\n\n /**\n */\n get timeInputFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n const format = this.format;\n\n let timeFormatParts = [];\n if (format.includes(\"H\")) {\n timeFormatParts.push(\"HH\");\n } else if (format.includes(\"h\")) {\n timeFormatParts.push(\"hh\");\n }\n if (format.includes(\"m\")) {\n timeFormatParts.push(\"mm\");\n }\n if (format.includes(\"s\")) {\n timeFormatParts.push(\"ss\");\n }\n\n let timeFormat = timeFormatParts.join(\":\");\n if (format.includes(\"S\")) {\n timeFormat = `${timeFormat}.SSS`;\n }\n if (format.includes(\"a\")) {\n return `${timeFormat} a`;\n }\n return timeFormat;\n }\n\n /**\n */\n get timeReadonlyFormat(): string {\n if (!this.hasTime) {\n return \"\";\n }\n\n return this.timeInputFormat;\n }\n\n /**\n */\n get dateInputValue(): string {\n return typeof this.value === \"string\" && this.dateInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.dateInputFormat)\n : \"\";\n }\n\n /**\n */\n get timeInputValue(): string {\n return typeof this.value === \"string\" && this.timeInputFormat !== \"\"\n ? this.formatUtil.toFormat(this.value, this.timeInputFormat)\n : \"\";\n }\n\n /**\n * format value in readonly rendering\n */\n formatValue(value: ?string): string {\n if (value == null || value.toString() === \"\") {\n return \"\";\n }\n\n // when the value is exactly an iso date, render as date\n if (\n (this.type === \"datetime\" || this.type === \"timestamp\") &&\n DateUtil.hasFormat(value, ISO_DATE_FORMAT)\n ) {\n return DateUtil.toFormat(value, this.dateReadonlyFormat);\n }\n\n return this.formatUtil.toFormat(value, this.format);\n }\n\n /**\n * Retrieve readonly value, the date in the configurated format\n */\n get readonlyvalue(): string {\n if (typeof this.value === \"string\") {\n return this.formatValue(this.value.toString());\n }\n\n return \"\";\n }\n\n /**\n */\n get isAmbiguous(): boolean {\n if (typeof this.value === \"string\") {\n return this.formatUtil.isAmbiguous(this.value);\n }\n return false;\n }\n\n /**\n */\n get offset(): OffsetInfo | null {\n if (typeof this.value === \"string\") {\n return this.formatUtil.getOffset(this.value);\n }\n return null;\n }\n\n /**\n * Get minimum date\n */\n get mindate(): string | null {\n return this.getContribution(\"mindate\");\n }\n\n /**\n * Get maximum date\n */\n get maxdate(): string | null {\n return this.getContribution(\"maxdate\");\n }\n\n /**\n * Registers an error that was received from a server response\n */\n addServerError(error: FormErrorAnchor) {\n const { id, message, properties, layouthint } = error;\n if (properties && has(properties, \"format\") && this.formatLabel) {\n properties.format = this.formatLabel;\n }\n\n this._errorCollection.addServerError(id, message, properties, layouthint);\n }\n\n /**\n */\n getFormatConstraint(): IConstraintModel {\n switch (this.type) {\n case \"date\":\n return new DateTimeDateFormatConstraint(\n this.dateInputFormat,\n this.formatLabel,\n );\n case \"time\":\n return new DateTimeTimeFormatConstraint(\n this.timeInputFormat,\n this.formatLabel,\n );\n default:\n return new DatetimeFormatConstraint(\n this.type,\n this.inputFormat,\n this.formatLabel,\n );\n }\n }\n\n /**\n * Add Date constraints for attribute\n */\n addConstraints(): ConstraintCollection {\n const constraints = new ConstraintCollection();\n\n constraints.add(this.getFormatConstraint());\n\n if (this.mindate || this.maxdate) {\n constraints.add(\n new DateBoundaryConstraint(\n this.type,\n this.mindate,\n this.maxdate,\n this.inputFormat,\n ),\n );\n }\n\n return constraints;\n }\n\n /**\n */\n get readonlyWidth(): $Keys<typeof ATTRIBUTE_WIDTH> {\n if (this.type === \"date\" || this.type === \"time\") {\n return ATTRIBUTE_WIDTH.SMALL;\n }\n\n return ATTRIBUTE_WIDTH.MEDIUM;\n }\n\n /**\n */\n updateByAttribute(otherAttribute: AttributeType): void {\n this.reset();\n if (otherAttribute instanceof DatetimeAttributeModel) {\n const otherValue = otherAttribute.value;\n if (otherValue != null) {\n const inputValue = this.formatUtil.toFormat(\n otherValue,\n this.inputFormat,\n );\n this.update(inputValue);\n }\n } else {\n console.error(\n `update of datetime attribute with ${otherAttribute.type} not supported`,\n );\n }\n }\n}\n\nexport default DatetimeAttributeModel;\n"],"mappings":"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","ignoreList":[]}
@@ -153,6 +153,35 @@ describe("datetimeAttributeModel", () => {
153
153
  expect(attribute.readonlyvalue).toBe("21-12-2031 17:41");
154
154
  });
155
155
 
156
+ it("can handle custom format", () => {
157
+ const attribute = new DatetimeAttributeModel(
158
+ { value: "2031-12-21T17:41:21" },
159
+ {
160
+ type: "datetime",
161
+ format: "dd-MM-yyyy HH:mm xxx",
162
+ },
163
+ );
164
+ expect(attribute.readonlyvalue).toBe("21-12-2031 17:41 +01:00");
165
+
166
+ const attribute2 = new DatetimeAttributeModel(
167
+ { value: "2031-12-21T17:41:21" },
168
+ {
169
+ type: "datetime",
170
+ format: "dd-MM-yyyy HH:mm Z",
171
+ },
172
+ );
173
+ expect(attribute2.readonlyvalue).toBe("21-12-2031 17:41 +01");
174
+
175
+ const attribute3 = new DatetimeAttributeModel(
176
+ { value: "2031-12-21T17:41:21" },
177
+ {
178
+ type: "datetime",
179
+ format: "EEE MMM dd, yyyy h:mma ZZ",
180
+ },
181
+ );
182
+ expect(attribute3.readonlyvalue).toBe("Sun Dec 21, 2031 5:41PM +0100");
183
+ });
184
+
156
185
  it("returns date part of formatlabel as placeholder if attribute has date and time", () => {
157
186
  const attribute = new DatetimeAttributeModel(
158
187
  {},
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _trim = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/trim"));
8
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
9
10
  var _DateTimeUtil = require("../../../utils/datetime/DateTimeUtil");
10
11
  var _exceptions = require("../../../exceptions");
12
+ var _constants = require("../../../constants");
11
13
  const INEXACT_DATE_ID = "Constraint.Date.InexactDate";
12
14
  const OUT_OF_RANGE_ID = "Constraint.Date.OutOfRange";
13
15
  const BELOW_MINIMUM_ID = "Constraint.Date.BelowMinimum";
@@ -19,15 +21,18 @@ class DateBoundaryConstraint {
19
21
  /**
20
22
  */
21
23
  constructor(type) {
24
+ var _context;
22
25
  let minDate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
23
26
  let maxDate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
24
27
  let format = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : "yyyy-MM-dd";
25
28
  (0, _defineProperty2.default)(this, "_type", void 0);
26
29
  (0, _defineProperty2.default)(this, "_format", void 0);
30
+ (0, _defineProperty2.default)(this, "_formatNoOffset", void 0);
27
31
  (0, _defineProperty2.default)(this, "_minDate", void 0);
28
32
  (0, _defineProperty2.default)(this, "_maxDate", void 0);
29
33
  this._type = type;
30
34
  this._format = format;
35
+ this._formatNoOffset = (0, _trim.default)(_context = format.replace(_constants.DATETIME_OFFSET_FORMAT, "")).call(_context);
31
36
  this._minDate = minDate;
32
37
  this._maxDate = maxDate;
33
38
  }
@@ -96,8 +101,8 @@ class DateBoundaryConstraint {
96
101
  */
97
102
  get parameters() {
98
103
  return {
99
- "min-date": this.minDate ? this.formatUtil.toFormat(this.minDate, this.format) : null,
100
- "max-date": this.maxDate ? this.formatUtil.toFormat(this.maxDate, this.format) : null
104
+ "min-date": this.minDate ? this.formatUtil.toFormat(this.minDate, this._formatNoOffset) : null,
105
+ "max-date": this.maxDate ? this.formatUtil.toFormat(this.maxDate, this._formatNoOffset) : null
101
106
  };
102
107
  }
103
108
 
@@ -11,6 +11,7 @@ import {
11
11
  IllegalArgumentException,
12
12
  IllegalStateException,
13
13
  } from "../../../exceptions";
14
+ import { DATETIME_OFFSET_FORMAT } from "../../../constants";
14
15
 
15
16
  const INEXACT_DATE_ID = "Constraint.Date.InexactDate";
16
17
  const OUT_OF_RANGE_ID = "Constraint.Date.OutOfRange";
@@ -22,6 +23,7 @@ const ABOVE_MAXIMUM_ID = "Constraint.Date.AboveMaximum";
22
23
  class DateBoundaryConstraint implements IConstraintModel {
23
24
  _type: string;
24
25
  _format: string;
26
+ _formatNoOffset: string;
25
27
  _minDate: ?string;
26
28
  _maxDate: ?string;
27
29
 
@@ -35,6 +37,7 @@ class DateBoundaryConstraint implements IConstraintModel {
35
37
  ) {
36
38
  this._type = type;
37
39
  this._format = format;
40
+ this._formatNoOffset = format.replace(DATETIME_OFFSET_FORMAT, "").trim();
38
41
  this._minDate = minDate;
39
42
  this._maxDate = maxDate;
40
43
  }
@@ -105,10 +108,10 @@ class DateBoundaryConstraint implements IConstraintModel {
105
108
  get parameters(): { "max-date": string | null, "min-date": string | null } {
106
109
  return {
107
110
  "min-date": this.minDate
108
- ? this.formatUtil.toFormat(this.minDate, this.format)
111
+ ? this.formatUtil.toFormat(this.minDate, this._formatNoOffset)
109
112
  : null,
110
113
  "max-date": this.maxDate
111
- ? this.formatUtil.toFormat(this.maxDate, this.format)
114
+ ? this.formatUtil.toFormat(this.maxDate, this._formatNoOffset)
112
115
  : null,
113
116
  };
114
117
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DateBoundaryConstraint.js","names":["_DateTimeUtil","require","_exceptions","INEXACT_DATE_ID","OUT_OF_RANGE_ID","BELOW_MINIMUM_ID","ABOVE_MAXIMUM_ID","DateBoundaryConstraint","constructor","type","minDate","arguments","length","undefined","maxDate","format","_defineProperty2","default","_type","_format","_minDate","_maxDate","id","defaultMessage","parameters","formatUtil","toFormat","hasValidation","isExactDate","value","IllegalArgumentException","IllegalStateException","isSame","isBetweenDates","isSameOrAfterMinDate","isSameOrBeforeMaxDate","isSameOrAfter","isSameOrBefore","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","validate","TypeError","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/DateBoundaryConstraint.js"],"sourcesContent":["// @flow\nimport {\n TimeUtil,\n DateUtil,\n TimestampUtil,\n DateTimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { IConstraintModel } from \"../../types\";\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../../exceptions\";\n\nconst INEXACT_DATE_ID = \"Constraint.Date.InexactDate\";\nconst OUT_OF_RANGE_ID = \"Constraint.Date.OutOfRange\";\nconst BELOW_MINIMUM_ID = \"Constraint.Date.BelowMinimum\";\nconst ABOVE_MAXIMUM_ID = \"Constraint.Date.AboveMaximum\";\n\n/**\n */\nclass DateBoundaryConstraint implements IConstraintModel {\n _type: string;\n _format: string;\n _minDate: ?string;\n _maxDate: ?string;\n\n /**\n */\n constructor(\n type: string,\n minDate: ?string = null,\n maxDate: ?string = null,\n format: string = \"yyyy-MM-dd\",\n ) {\n this._type = type;\n this._format = format;\n this._minDate = minDate;\n this._maxDate = maxDate;\n }\n\n /**\n */\n get type(): string {\n return this._type;\n }\n\n /**\n */\n get id(): string {\n if (\n this.minDate !== null &&\n this.maxDate !== null &&\n this.minDate === this.maxDate\n ) {\n return INEXACT_DATE_ID;\n } else if (this.minDate !== null && this.maxDate !== null) {\n return OUT_OF_RANGE_ID;\n } else if (this.minDate !== null) {\n return BELOW_MINIMUM_ID;\n } else if (this.maxDate !== null) {\n return ABOVE_MAXIMUM_ID;\n }\n\n return \"Constraint.Date.NoBoundaryConstraint\";\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get minDate(): ?string {\n return this._minDate;\n }\n\n /**\n */\n get maxDate(): ?string {\n return this._maxDate;\n }\n\n /**\n */\n get defaultMessage(): string {\n switch (this.id) {\n case INEXACT_DATE_ID:\n return \"Date must be precisely ${min-date}\"; // NOSONAR\n case OUT_OF_RANGE_ID:\n return \"Must be between ${min-date} and ${max-date}\"; // NOSONAR\n case BELOW_MINIMUM_ID:\n return \"Must be on or after ${min-date}\"; // NOSONAR\n case ABOVE_MAXIMUM_ID:\n return \"Must be on or before ${max-date}\"; // NOSONAR\n default:\n return \"\";\n }\n }\n\n /**\n */\n get parameters(): { \"max-date\": string | null, \"min-date\": string | null } {\n return {\n \"min-date\": this.minDate\n ? this.formatUtil.toFormat(this.minDate, this.format)\n : null,\n \"max-date\": this.maxDate\n ? this.formatUtil.toFormat(this.maxDate, this.format)\n : null,\n };\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n isExactDate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isBetweenDates: Not comparing to string\",\n );\n }\n\n if (this.minDate === null) {\n throw new IllegalStateException(\"isExactDate: Min and max date not set\");\n }\n\n return this.formatUtil.isSame(value, this.minDate, this.format);\n }\n\n /**\n */\n isBetweenDates(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isBetweenDates: Not comparing to string\",\n );\n }\n\n if (this.minDate === null || this.maxDate === null) {\n throw new IllegalStateException(\"isBetweenDate: Min or max date not set\");\n }\n\n return (\n this.isSameOrAfterMinDate(value) && this.isSameOrBeforeMaxDate(value)\n );\n }\n\n /**\n */\n isSameOrAfterMinDate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isSameOrAfterMinDate: Not comparing to string\",\n );\n }\n\n if (this.minDate == null) {\n throw new IllegalStateException(\"isSameOrAfterMinDate: Min date not set\");\n }\n\n return this.formatUtil.isSameOrAfter(value, this.minDate, this.format);\n }\n\n /**\n */\n isSameOrBeforeMaxDate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isSameOrBeforeMaxDate: Not comparing to string\",\n );\n }\n\n if (this.maxDate == null) {\n throw new IllegalStateException(\n \"isSameOrBeforeMaxDate: Max date not set\",\n );\n }\n\n return this.formatUtil.isSameOrBefore(value, this.maxDate, this.format);\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n validate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new TypeError(\"isNotEmptyString: Not comparing to string\");\n }\n\n switch (this.id) {\n case INEXACT_DATE_ID:\n return this.isExactDate(value);\n case OUT_OF_RANGE_ID:\n return this.isBetweenDates(value);\n case BELOW_MINIMUM_ID:\n return this.isSameOrAfterMinDate(value);\n case ABOVE_MAXIMUM_ID:\n return this.isSameOrBeforeMaxDate(value);\n default:\n return true;\n }\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DateBoundaryConstraint;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DateBoundaryConstraint.js","names":["_DateTimeUtil","require","_exceptions","_constants","INEXACT_DATE_ID","OUT_OF_RANGE_ID","BELOW_MINIMUM_ID","ABOVE_MAXIMUM_ID","DateBoundaryConstraint","constructor","type","_context","minDate","arguments","length","undefined","maxDate","format","_defineProperty2","default","_type","_format","_formatNoOffset","_trim","replace","DATETIME_OFFSET_FORMAT","call","_minDate","_maxDate","id","defaultMessage","parameters","formatUtil","toFormat","hasValidation","isExactDate","value","IllegalArgumentException","IllegalStateException","isSame","isBetweenDates","isSameOrAfterMinDate","isSameOrBeforeMaxDate","isSameOrAfter","isSameOrBefore","TimeUtil","TimestampUtil","DateTimeUtil","DateUtil","validate","TypeError","isMandatoryConstraint","_default","exports"],"sources":["../../../../src/models/attributes/input-constraints/DateBoundaryConstraint.js"],"sourcesContent":["// @flow\nimport {\n TimeUtil,\n DateUtil,\n TimestampUtil,\n DateTimeUtil,\n} from \"../../../utils/datetime/DateTimeUtil\";\n\nimport type { IConstraintModel } from \"../../types\";\nimport {\n IllegalArgumentException,\n IllegalStateException,\n} from \"../../../exceptions\";\nimport { DATETIME_OFFSET_FORMAT } from \"../../../constants\";\n\nconst INEXACT_DATE_ID = \"Constraint.Date.InexactDate\";\nconst OUT_OF_RANGE_ID = \"Constraint.Date.OutOfRange\";\nconst BELOW_MINIMUM_ID = \"Constraint.Date.BelowMinimum\";\nconst ABOVE_MAXIMUM_ID = \"Constraint.Date.AboveMaximum\";\n\n/**\n */\nclass DateBoundaryConstraint implements IConstraintModel {\n _type: string;\n _format: string;\n _formatNoOffset: string;\n _minDate: ?string;\n _maxDate: ?string;\n\n /**\n */\n constructor(\n type: string,\n minDate: ?string = null,\n maxDate: ?string = null,\n format: string = \"yyyy-MM-dd\",\n ) {\n this._type = type;\n this._format = format;\n this._formatNoOffset = format.replace(DATETIME_OFFSET_FORMAT, \"\").trim();\n this._minDate = minDate;\n this._maxDate = maxDate;\n }\n\n /**\n */\n get type(): string {\n return this._type;\n }\n\n /**\n */\n get id(): string {\n if (\n this.minDate !== null &&\n this.maxDate !== null &&\n this.minDate === this.maxDate\n ) {\n return INEXACT_DATE_ID;\n } else if (this.minDate !== null && this.maxDate !== null) {\n return OUT_OF_RANGE_ID;\n } else if (this.minDate !== null) {\n return BELOW_MINIMUM_ID;\n } else if (this.maxDate !== null) {\n return ABOVE_MAXIMUM_ID;\n }\n\n return \"Constraint.Date.NoBoundaryConstraint\";\n }\n\n /**\n */\n get format(): string {\n return this._format;\n }\n\n /**\n */\n get minDate(): ?string {\n return this._minDate;\n }\n\n /**\n */\n get maxDate(): ?string {\n return this._maxDate;\n }\n\n /**\n */\n get defaultMessage(): string {\n switch (this.id) {\n case INEXACT_DATE_ID:\n return \"Date must be precisely ${min-date}\"; // NOSONAR\n case OUT_OF_RANGE_ID:\n return \"Must be between ${min-date} and ${max-date}\"; // NOSONAR\n case BELOW_MINIMUM_ID:\n return \"Must be on or after ${min-date}\"; // NOSONAR\n case ABOVE_MAXIMUM_ID:\n return \"Must be on or before ${max-date}\"; // NOSONAR\n default:\n return \"\";\n }\n }\n\n /**\n */\n get parameters(): { \"max-date\": string | null, \"min-date\": string | null } {\n return {\n \"min-date\": this.minDate\n ? this.formatUtil.toFormat(this.minDate, this._formatNoOffset)\n : null,\n \"max-date\": this.maxDate\n ? this.formatUtil.toFormat(this.maxDate, this._formatNoOffset)\n : null,\n };\n }\n\n /**\n */\n hasValidation(): boolean {\n return true;\n }\n\n /**\n */\n isExactDate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isBetweenDates: Not comparing to string\",\n );\n }\n\n if (this.minDate === null) {\n throw new IllegalStateException(\"isExactDate: Min and max date not set\");\n }\n\n return this.formatUtil.isSame(value, this.minDate, this.format);\n }\n\n /**\n */\n isBetweenDates(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isBetweenDates: Not comparing to string\",\n );\n }\n\n if (this.minDate === null || this.maxDate === null) {\n throw new IllegalStateException(\"isBetweenDate: Min or max date not set\");\n }\n\n return (\n this.isSameOrAfterMinDate(value) && this.isSameOrBeforeMaxDate(value)\n );\n }\n\n /**\n */\n isSameOrAfterMinDate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isSameOrAfterMinDate: Not comparing to string\",\n );\n }\n\n if (this.minDate == null) {\n throw new IllegalStateException(\"isSameOrAfterMinDate: Min date not set\");\n }\n\n return this.formatUtil.isSameOrAfter(value, this.minDate, this.format);\n }\n\n /**\n */\n isSameOrBeforeMaxDate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new IllegalArgumentException(\n \"isSameOrBeforeMaxDate: Not comparing to string\",\n );\n }\n\n if (this.maxDate == null) {\n throw new IllegalStateException(\n \"isSameOrBeforeMaxDate: Max date not set\",\n );\n }\n\n return this.formatUtil.isSameOrBefore(value, this.maxDate, this.format);\n }\n\n /**\n */\n get formatUtil():\n | typeof TimeUtil\n | typeof TimestampUtil\n | typeof DateTimeUtil\n | typeof DateUtil {\n switch (this.type) {\n case \"time\":\n return TimeUtil;\n case \"timestamp\":\n return TimestampUtil;\n case \"datetime\":\n return DateTimeUtil;\n default:\n return DateUtil;\n }\n }\n\n /**\n */\n validate(value: string): boolean {\n if (typeof value !== \"string\") {\n throw new TypeError(\"isNotEmptyString: Not comparing to string\");\n }\n\n switch (this.id) {\n case INEXACT_DATE_ID:\n return this.isExactDate(value);\n case OUT_OF_RANGE_ID:\n return this.isBetweenDates(value);\n case BELOW_MINIMUM_ID:\n return this.isSameOrAfterMinDate(value);\n case ABOVE_MAXIMUM_ID:\n return this.isSameOrBeforeMaxDate(value);\n default:\n return true;\n }\n }\n\n /**\n */\n get isMandatoryConstraint(): boolean {\n return false;\n }\n}\n\nexport default DateBoundaryConstraint;\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.TimestampUtil = exports.TimeUtil = exports.DateUtil = exports.DateTimeUtil = void 0;
8
8
  var _startsWith = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/starts-with"));
9
+ var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
10
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
9
11
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
10
12
  var _trunc = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/math/trunc"));
11
13
  var _padStart = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/pad-start"));
@@ -53,8 +55,28 @@ class BaseDateTimeUtil {
53
55
 
54
56
  /**
55
57
  */
56
- convertFormat(sourceFormat) {
57
- return sourceFormat ? sourceFormat : this.getIsoFormat();
58
+ convertFormat(javaFormat) {
59
+ var _context2;
60
+ if (!javaFormat) {
61
+ return this.getIsoFormat();
62
+ }
63
+ const javaToUTS35Map = {
64
+ ZZZ: "xxx",
65
+ ZZ: "xx",
66
+ Z: "x"
67
+ };
68
+
69
+ // Replace Java pattern tokens with UTS #35 tokens
70
+ let uts35Format = javaFormat;
71
+
72
+ // Sort keys by length (descending) to handle multi-character tokens first
73
+ const sortedKeys = (0, _sort.default)(_context2 = (0, _keys.default)(javaToUTS35Map)).call(_context2, (a, b) => b.length - a.length);
74
+ for (const javaToken of sortedKeys) {
75
+ const uts35Token = javaToUTS35Map[javaToken];
76
+ const regex = new RegExp(javaToken, "g"); // Match all occurrences
77
+ uts35Format = uts35Format.replace(regex, uts35Token);
78
+ }
79
+ return uts35Format;
58
80
  }
59
81
 
60
82
  /**
@@ -542,12 +564,12 @@ class BaseDateTimeUtil {
542
564
  */
543
565
  getTimezoneOffsets() {
544
566
  const createOffsetObject = info => {
545
- var _context2, _context3;
567
+ var _context3, _context4;
546
568
  const sign = info.offset < 0 ? "-" : "+";
547
569
  const absOffset = Math.abs(info.offset);
548
570
  const hours = (0, _trunc.default)(absOffset);
549
571
  const minutes = Math.round(absOffset % 1 * 60);
550
- const offsetString = `${sign}${(0, _padStart.default)(_context2 = String(hours + (minutes === 60 ? 1 : 0))).call(_context2, 2, "0")}:${(0, _padStart.default)(_context3 = String(minutes % 60)).call(_context3, 2, "0")}`;
572
+ const offsetString = `${sign}${(0, _padStart.default)(_context3 = String(hours + (minutes === 60 ? 1 : 0))).call(_context3, 2, "0")}:${(0, _padStart.default)(_context4 = String(minutes % 60)).call(_context4, 2, "0")}`;
551
573
  return {
552
574
  label: info.name,
553
575
  abbr: info.abbr,
@@ -99,8 +99,32 @@ class BaseDateTimeUtil {
99
99
 
100
100
  /**
101
101
  */
102
- convertFormat(sourceFormat: string): string {
103
- return sourceFormat ? sourceFormat : this.getIsoFormat();
102
+ convertFormat(javaFormat: string): string {
103
+ if (!javaFormat) {
104
+ return this.getIsoFormat();
105
+ }
106
+
107
+ const javaToUTS35Map = {
108
+ ZZZ: "xxx",
109
+ ZZ: "xx",
110
+ Z: "x",
111
+ };
112
+
113
+ // Replace Java pattern tokens with UTS #35 tokens
114
+ let uts35Format = javaFormat;
115
+
116
+ // Sort keys by length (descending) to handle multi-character tokens first
117
+ const sortedKeys = Object.keys(javaToUTS35Map).sort(
118
+ (a, b) => b.length - a.length,
119
+ );
120
+
121
+ for (const javaToken of sortedKeys) {
122
+ const uts35Token = javaToUTS35Map[javaToken];
123
+ const regex = new RegExp(javaToken, "g"); // Match all occurrences
124
+ uts35Format = uts35Format.replace(regex, uts35Token);
125
+ }
126
+
127
+ return uts35Format;
104
128
  }
105
129
 
106
130
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"DateTimeUtil.js","names":["_dateFns","require","_locale","_tz","_timezoneSoft","_interopRequireDefault","_constants","_Cookies","BaseDateTimeUtil","constructor","isoFormat","_defineProperty2","default","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","getOptions","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","getIsoFormat","_context","isIncludeTimeOffsetInDateTimes","_startsWith","call","ISO_DATETIME_FORMAT","DATETIME_OFFSET_FORMAT","convertFormat","sourceFormat","getLocale","locale","getCookie","nl","enGB","toDate","date","inputFormat","arguments","length","undefined","Date","parse","in","getDateFnsContext","toFormat","isoDate","targetFormat","parsedDate","isValid","format","toISO","now","hasFormat","formattedValue","isOutsideRange","isBefore","isAfter","replace","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isSameDay","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","isAmbiguous","dateTime","t","a","_map","x","newDate","add","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","sub","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","_set","set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","IS_GRAALJS","tz","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context2","_context3","sign","offset","absOffset","Math","abs","_trunc","round","offsetString","_padStart","String","label","name","abbr","timezone","soft","DateUtil","exports","ISO_DATE_FORMAT","DateTimeUtil","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parse,\n add,\n sub,\n set,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n} from \"date-fns\";\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 _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\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 (\n isIncludeTimeOffsetInDateTimes() &&\n this._isoFormat.startsWith(ISO_DATETIME_FORMAT)\n ) {\n return this._isoFormat + DATETIME_OFFSET_FORMAT;\n }\n return this._isoFormat;\n }\n\n /**\n */\n convertFormat(sourceFormat: string): string {\n return sourceFormat ? sourceFormat : this.getIsoFormat();\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 isoDate: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(isoDate, 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 formattedValue = this.toFormat(date, sourceFormat, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(formattedValue, new Date(1000, 1, 1)) ||\n isAfter(formattedValue, 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 (IS_GRAALJS) {\n return null; // tz method does not work in graal (yet)\n }\n return tz(this.getTimeZone());\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);\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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","ignoreList":[]}
1
+ {"version":3,"file":"DateTimeUtil.js","names":["_dateFns","require","_locale","_tz","_timezoneSoft","_interopRequireDefault","_constants","_Cookies","BaseDateTimeUtil","constructor","isoFormat","_defineProperty2","default","Intl","DateTimeFormat","resolvedOptions","timeZone","_isoFormat","getOptions","weekStartsOn","getSetting","DEFAULT_WEEK_STARTS_ON","firstWeekContainsDate","DEFAULT_FIRST_WEEK_CONTAINS_DATE","getIsoFormat","_context","isIncludeTimeOffsetInDateTimes","_startsWith","call","ISO_DATETIME_FORMAT","DATETIME_OFFSET_FORMAT","convertFormat","javaFormat","_context2","javaToUTS35Map","ZZZ","ZZ","Z","uts35Format","sortedKeys","_sort","_keys","a","b","length","javaToken","uts35Token","regex","RegExp","replace","getLocale","locale","getCookie","nl","enGB","toDate","date","inputFormat","arguments","undefined","Date","parse","in","getDateFnsContext","toFormat","isoDate","targetFormat","parsedDate","isValid","format","toISO","sourceFormat","now","hasFormat","formattedValue","isOutsideRange","isBefore","isAfter","toUpperCase","inputDate","afterISODate","isSameOrAfter","isSame","beforeISODate","isSameOrBefore","compareDate","getTime","isSameDay","isOther","isWeekend","SATURDAY_NUMBER","SUNDAY_NUMBER","weekDay","getDay","isAmbiguous","dateTime","t","_map","x","newDate","add","minutes","time","indexOf","_calculate","calculationFn","property","value","addSeconds","amount","addMinutes","addHours","addDays","addWeeks","addMonths","addYears","subtractSeconds","sub","subtractMinutes","subtractHours","subtractDays","subtractWeeks","subtractMonths","subtractYears","_get","method","options","startOfMonth","endOfMonth","startOfWeek","getHours","getMinutes","getWeek","_set","set","setYear","year","setMonth","month","setDay","day","setHour","hour","setMinute","minute","setSecond","second","setMilliseconds","millisecond","setTime","hours","seconds","milliseconds","getTimeZone","_timeZone","setTimeZone","IS_GRAALJS","tz","getOffset","dateOffset","offsets","getTimezoneOffsets","daylight","standard","createOffsetObject","info","_context3","_context4","sign","offset","absOffset","Math","abs","_trunc","round","offsetString","_padStart","String","label","name","abbr","timezone","soft","DateUtil","exports","ISO_DATE_FORMAT","DateTimeUtil","TimeUtil","ISO_TIME_FORMAT","TimestampUtil","ISO_TIMESTAMP_FORMAT"],"sources":["../../../src/utils/datetime/DateTimeUtil.js"],"sourcesContent":["// @flow\nimport {\n format,\n isAfter,\n isBefore,\n isSameDay,\n isValid,\n parse,\n add,\n sub,\n set,\n startOfMonth,\n endOfMonth,\n startOfWeek,\n getHours,\n getMinutes,\n getDay,\n getWeek,\n} from \"date-fns\";\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 _timeZone: string =\n typeof Intl === \"undefined\"\n ? \"Etc/UTC\"\n : Intl.DateTimeFormat().resolvedOptions().timeZone || \"Etc/UTC\";\n\n constructor(isoFormat: string) {\n this._isoFormat = isoFormat;\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 (\n isIncludeTimeOffsetInDateTimes() &&\n this._isoFormat.startsWith(ISO_DATETIME_FORMAT)\n ) {\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 isoDate: string | Date,\n targetFormat: string,\n inputFormat: string = this.getIsoFormat(),\n ): string {\n const { weekStartsOn } = this.getOptions();\n\n const parsedDate = this.toDate(isoDate, 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 formattedValue = this.toFormat(date, sourceFormat, sourceFormat);\n if (formattedValue === \"Invalid Date\") {\n return false;\n }\n\n const isOutsideRange =\n isBefore(formattedValue, new Date(1000, 1, 1)) ||\n isAfter(formattedValue, 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 (IS_GRAALJS) {\n return null; // tz method does not work in graal (yet)\n }\n return tz(this.getTimeZone());\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);\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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","ignoreList":[]}
@@ -613,6 +613,13 @@ describe("asserts for date/time utilities", () => {
613
613
  expect(TimestampUtil.convertFormat("yyyy-MM-dd HH:mm:ss.SSS")).toBe(
614
614
  "yyyy-MM-dd HH:mm:ss.SSS",
615
615
  );
616
+ expect(TimestampUtil.convertFormat("dd-MM-yyyy HH:mm Z")).toBe(
617
+ "dd-MM-yyyy HH:mm x",
618
+ );
619
+
620
+ expect(TimestampUtil.convertFormat("dd-MM-yyyy HH:mm zzzz")).toBe(
621
+ "dd-MM-yyyy HH:mm zzzz",
622
+ );
616
623
  });
617
624
 
618
625
  it("should render iso timestamp to specified format", () => {