@openui5/sap.ui.mdc 1.130.1 → 1.131.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/THIRDPARTY.txt +1 -1
  2. package/package.json +4 -4
  3. package/src/sap/ui/mdc/.library +1 -1
  4. package/src/sap/ui/mdc/ActionToolbar.js +1 -1
  5. package/src/sap/ui/mdc/Chart.js +62 -25
  6. package/src/sap/ui/mdc/ChartDelegate.js +17 -14
  7. package/src/sap/ui/mdc/Control.js +1 -1
  8. package/src/sap/ui/mdc/DefaultTypeMap.js +1 -1
  9. package/src/sap/ui/mdc/Element.js +1 -1
  10. package/src/sap/ui/mdc/Field.js +43 -15
  11. package/src/sap/ui/mdc/FilterBar.js +1 -1
  12. package/src/sap/ui/mdc/FilterField.js +2 -2
  13. package/src/sap/ui/mdc/Link.js +1 -1
  14. package/src/sap/ui/mdc/LinkDelegate.js +1 -1
  15. package/src/sap/ui/mdc/MultiValueField.js +3 -4
  16. package/src/sap/ui/mdc/Table.js +183 -36
  17. package/src/sap/ui/mdc/TableDelegate.js +40 -18
  18. package/src/sap/ui/mdc/ValueHelp.js +1 -1
  19. package/src/sap/ui/mdc/actiontoolbar/ActionToolbarAction.js +1 -2
  20. package/src/sap/ui/mdc/chart/ChartImplementationContainer.js +1 -1
  21. package/src/sap/ui/mdc/chart/ChartSelectionDetails.js +1 -1
  22. package/src/sap/ui/mdc/chart/PropertyHelper.js +1 -1
  23. package/src/sap/ui/mdc/chart/ToolbarControlFactory.js +1 -1
  24. package/src/sap/ui/mdc/condition/Condition.js +1 -1
  25. package/src/sap/ui/mdc/condition/ConditionConverter.js +1 -1
  26. package/src/sap/ui/mdc/condition/ConditionModel.js +1 -1
  27. package/src/sap/ui/mdc/condition/FilterConverter.js +1 -1
  28. package/src/sap/ui/mdc/condition/FilterOperatorUtil.js +361 -54
  29. package/src/sap/ui/mdc/condition/Operator.js +1 -1
  30. package/src/sap/ui/mdc/condition/OperatorDynamicDateOption.js +1 -1
  31. package/src/sap/ui/mdc/condition/RangeOperator.js +1 -1
  32. package/src/sap/ui/mdc/enums/ActionToolbarActionAlignment.js +0 -1
  33. package/src/sap/ui/mdc/enums/OperatorName.js +127 -1
  34. package/src/sap/ui/mdc/field/ConditionType.js +1 -1
  35. package/src/sap/ui/mdc/field/ConditionTypeMixin.js +1 -1
  36. package/src/sap/ui/mdc/field/ConditionsType.js +1 -1
  37. package/src/sap/ui/mdc/field/CustomFieldInfo.js +1 -1
  38. package/src/sap/ui/mdc/field/DynamicDateRangeConditionsType.js +1 -1
  39. package/src/sap/ui/mdc/field/FieldBase.js +1 -1
  40. package/src/sap/ui/mdc/field/FieldBaseDelegate.js +2 -2
  41. package/src/sap/ui/mdc/field/FieldInfoBase.js +1 -1
  42. package/src/sap/ui/mdc/field/FieldInput.js +1 -1
  43. package/src/sap/ui/mdc/field/FieldInputRenderUtil.js +1 -1
  44. package/src/sap/ui/mdc/field/FieldMultiInput.js +1 -1
  45. package/src/sap/ui/mdc/field/ListFieldHelpItem.js +1 -1
  46. package/src/sap/ui/mdc/field/MultiValueFieldDelegate.js +0 -1
  47. package/src/sap/ui/mdc/field/MultiValueFieldItem.js +1 -2
  48. package/src/sap/ui/mdc/field/TokenDisplay.js +1 -1
  49. package/src/sap/ui/mdc/field/TokenizerDisplay.js +1 -1
  50. package/src/sap/ui/mdc/filterbar/FilterBarBase.js +1 -1
  51. package/src/sap/ui/mdc/filterbar/PropertyHelper.js +1 -1
  52. package/src/sap/ui/mdc/filterbar/p13n/AdaptationFilterBar.js +1 -1
  53. package/src/sap/ui/mdc/filterbar/vh/CollectiveSearchSelect.js +4 -1
  54. package/src/sap/ui/mdc/filterbar/vh/FilterBar.js +5 -2
  55. package/src/sap/ui/mdc/flexibility/Chart.flexibility.js +1 -1
  56. package/src/sap/ui/mdc/flexibility/FilterBar.flexibility.js +1 -1
  57. package/src/sap/ui/mdc/flexibility/FilterItemFlex.js +1 -1
  58. package/src/sap/ui/mdc/flexibility/actiontoolbar/CombineAction.js +1 -2
  59. package/src/sap/ui/mdc/flexibility/actiontoolbar/SplitAction.js +1 -2
  60. package/src/sap/ui/mdc/library.js +2 -2
  61. package/src/sap/ui/mdc/link/Factory.js +1 -1
  62. package/src/sap/ui/mdc/link/LinkItem.js +1 -1
  63. package/src/sap/ui/mdc/link/Panel.js +1 -1
  64. package/src/sap/ui/mdc/link/PanelItem.js +1 -1
  65. package/src/sap/ui/mdc/link/SemanticObjectMapping.js +1 -1
  66. package/src/sap/ui/mdc/link/SemanticObjectMappingItem.js +1 -1
  67. package/src/sap/ui/mdc/link/SemanticObjectUnavailableAction.js +1 -1
  68. package/src/sap/ui/mdc/messagebundle.properties +12 -148
  69. package/src/sap/ui/mdc/messagebundle_ar.properties +6 -96
  70. package/src/sap/ui/mdc/messagebundle_bg.properties +6 -96
  71. package/src/sap/ui/mdc/messagebundle_ca.properties +6 -96
  72. package/src/sap/ui/mdc/messagebundle_cnr.properties +6 -96
  73. package/src/sap/ui/mdc/messagebundle_cs.properties +6 -96
  74. package/src/sap/ui/mdc/messagebundle_cy.properties +6 -96
  75. package/src/sap/ui/mdc/messagebundle_da.properties +6 -96
  76. package/src/sap/ui/mdc/messagebundle_de.properties +6 -96
  77. package/src/sap/ui/mdc/messagebundle_el.properties +6 -96
  78. package/src/sap/ui/mdc/messagebundle_en.properties +6 -96
  79. package/src/sap/ui/mdc/messagebundle_en_GB.properties +6 -96
  80. package/src/sap/ui/mdc/messagebundle_en_US_saprigi.properties +6 -98
  81. package/src/sap/ui/mdc/messagebundle_es.properties +7 -97
  82. package/src/sap/ui/mdc/messagebundle_es_MX.properties +6 -96
  83. package/src/sap/ui/mdc/messagebundle_et.properties +6 -96
  84. package/src/sap/ui/mdc/messagebundle_fi.properties +6 -96
  85. package/src/sap/ui/mdc/messagebundle_fr.properties +6 -96
  86. package/src/sap/ui/mdc/messagebundle_fr_CA.properties +6 -96
  87. package/src/sap/ui/mdc/messagebundle_hi.properties +6 -96
  88. package/src/sap/ui/mdc/messagebundle_hr.properties +6 -96
  89. package/src/sap/ui/mdc/messagebundle_hu.properties +6 -96
  90. package/src/sap/ui/mdc/messagebundle_id.properties +6 -96
  91. package/src/sap/ui/mdc/messagebundle_it.properties +6 -96
  92. package/src/sap/ui/mdc/messagebundle_iw.properties +6 -96
  93. package/src/sap/ui/mdc/messagebundle_ja.properties +6 -96
  94. package/src/sap/ui/mdc/messagebundle_kk.properties +6 -96
  95. package/src/sap/ui/mdc/messagebundle_ko.properties +6 -96
  96. package/src/sap/ui/mdc/messagebundle_lt.properties +6 -96
  97. package/src/sap/ui/mdc/messagebundle_lv.properties +6 -96
  98. package/src/sap/ui/mdc/messagebundle_mk.properties +6 -96
  99. package/src/sap/ui/mdc/messagebundle_ms.properties +6 -96
  100. package/src/sap/ui/mdc/messagebundle_nl.properties +7 -97
  101. package/src/sap/ui/mdc/messagebundle_no.properties +6 -96
  102. package/src/sap/ui/mdc/messagebundle_pl.properties +9 -99
  103. package/src/sap/ui/mdc/messagebundle_pt.properties +6 -96
  104. package/src/sap/ui/mdc/messagebundle_pt_PT.properties +6 -96
  105. package/src/sap/ui/mdc/messagebundle_ro.properties +6 -96
  106. package/src/sap/ui/mdc/messagebundle_ru.properties +13 -103
  107. package/src/sap/ui/mdc/messagebundle_sh.properties +6 -96
  108. package/src/sap/ui/mdc/messagebundle_sk.properties +6 -96
  109. package/src/sap/ui/mdc/messagebundle_sl.properties +6 -96
  110. package/src/sap/ui/mdc/messagebundle_sr.properties +6 -96
  111. package/src/sap/ui/mdc/messagebundle_sv.properties +6 -96
  112. package/src/sap/ui/mdc/messagebundle_th.properties +6 -96
  113. package/src/sap/ui/mdc/messagebundle_tr.properties +6 -96
  114. package/src/sap/ui/mdc/messagebundle_uk.properties +6 -96
  115. package/src/sap/ui/mdc/messagebundle_vi.properties +6 -96
  116. package/src/sap/ui/mdc/messagebundle_zh_CN.properties +6 -96
  117. package/src/sap/ui/mdc/messagebundle_zh_TW.properties +6 -96
  118. package/src/sap/ui/mdc/mixin/AdaptationMixin.js +1 -1
  119. package/src/sap/ui/mdc/mixin/DelegateMixin.js +1 -1
  120. package/src/sap/ui/mdc/mixin/FilterIntegrationMixin.js +1 -1
  121. package/src/sap/ui/mdc/mixin/PromiseMixin.js +1 -1
  122. package/src/sap/ui/mdc/mixin/PropertyHelperMixin.js +1 -1
  123. package/src/sap/ui/mdc/odata/TypeMap.js +1 -1
  124. package/src/sap/ui/mdc/odata/v4/TableDelegate.js +239 -197
  125. package/src/sap/ui/mdc/odata/v4/TypeMap.js +1 -1
  126. package/src/sap/ui/mdc/odata/v4/vizChart/ChartDelegate.js +19 -19
  127. package/src/sap/ui/mdc/p13n/PropertyHelper.js +1 -1
  128. package/src/sap/ui/mdc/p13n/panels/ChartItemPanel.js +12 -19
  129. package/src/sap/ui/mdc/table/Column.js +3 -0
  130. package/src/sap/ui/mdc/table/ColumnSettings.js +1 -1
  131. package/src/sap/ui/mdc/table/CreationRow.js +1 -1
  132. package/src/sap/ui/mdc/table/DragDropConfig.js +1 -1
  133. package/src/sap/ui/mdc/table/GridTableType.js +3 -1
  134. package/src/sap/ui/mdc/table/PropertyHelper.js +14 -1
  135. package/src/sap/ui/mdc/table/ResponsiveColumnSettings.js +1 -1
  136. package/src/sap/ui/mdc/table/RowActionItem.js +1 -1
  137. package/src/sap/ui/mdc/table/RowSettings.js +3 -2
  138. package/src/sap/ui/mdc/table/TableSettings.js +26 -3
  139. package/src/sap/ui/mdc/table/V4AnalyticsPropertyHelper.js +32 -41
  140. package/src/sap/ui/mdc/table/utils/Personalization.js +1 -1
  141. package/src/sap/ui/mdc/ushell/SemanticObjectMapping.js +1 -1
  142. package/src/sap/ui/mdc/ushell/SemanticObjectMappingItem.js +1 -1
  143. package/src/sap/ui/mdc/ushell/SemanticObjectUnavailableAction.js +1 -1
  144. package/src/sap/ui/mdc/util/InfoBar.js +2 -1
  145. package/src/sap/ui/mdc/util/PromiseCache.js +1 -1
  146. package/src/sap/ui/mdc/util/PropertyHelper.js +1 -1
  147. package/src/sap/ui/mdc/valuehelp/CollectiveSearchSelect.js +2 -10
  148. package/src/sap/ui/mdc/valuehelp/Dialog.js +1 -1
  149. package/src/sap/ui/mdc/valuehelp/FilterBar.js +1 -1
  150. package/src/sap/ui/mdc/valuehelp/Popover.js +1 -1
  151. package/src/sap/ui/mdc/valuehelp/base/Container.js +1 -1
  152. package/src/sap/ui/mdc/valuehelp/base/Content.js +1 -1
  153. package/src/sap/ui/mdc/valuehelp/base/DefineConditionPanel.js +30 -32
  154. package/src/sap/ui/mdc/valuehelp/base/DialogTab.js +1 -1
  155. package/src/sap/ui/mdc/valuehelp/base/FilterableListContent.js +1 -1
  156. package/src/sap/ui/mdc/valuehelp/base/ListContent.js +1 -1
  157. package/src/sap/ui/mdc/valuehelp/content/Bool.js +1 -1
  158. package/src/sap/ui/mdc/valuehelp/content/Conditions.js +1 -1
  159. package/src/sap/ui/mdc/valuehelp/content/FixedList.js +6 -1
  160. package/src/sap/ui/mdc/valuehelp/content/FixedListItem.js +1 -1
  161. package/src/sap/ui/mdc/valuehelp/content/MDCTable.js +1 -1
  162. package/src/sap/ui/mdc/valuehelp/content/MTable.js +17 -4
@@ -19,6 +19,7 @@ sap.ui.define([
19
19
  'sap/ui/mdc/util/loadModules',
20
20
  'sap/ui/core/date/UniversalDate',
21
21
  'sap/ui/core/date/UniversalDateUtils',
22
+ 'sap/ui/core/date/UI5Date',
22
23
  'sap/ui/core/format/DateFormat',
23
24
  'sap/ui/core/StaticArea',
24
25
  'sap/ui/model/json/JSONModel',
@@ -42,6 +43,7 @@ sap.ui.define([
42
43
  loadModules,
43
44
  UniversalDate,
44
45
  UniversalDateUtils,
46
+ UI5Date,
45
47
  DateFormat,
46
48
  StaticArea,
47
49
  JSONModel,
@@ -53,8 +55,10 @@ sap.ui.define([
53
55
 
54
56
  // translation utils
55
57
  let oMessageBundle = Library.getResourceBundleFor("sap.ui.mdc");
58
+ let oMessageBundleM = Library.getResourceBundleFor("sap.m");
56
59
  Localization.attachChange(() => {
57
60
  oMessageBundle = Library.getResourceBundleFor("sap.ui.mdc");
61
+ oMessageBundleM = Library.getResourceBundleFor("sap.m");
58
62
  });
59
63
 
60
64
  /**
@@ -62,7 +66,7 @@ sap.ui.define([
62
66
  *
63
67
  * @namespace
64
68
  * @author SAP SE
65
- * @version 1.130.1
69
+ * @version 1.131.0
66
70
  * @since 1.73.0
67
71
  * @alias sap.ui.mdc.condition.FilterOperatorUtil
68
72
  *
@@ -583,7 +587,8 @@ sap.ui.define([
583
587
  */
584
588
  yesterday: new RangeOperator({
585
589
  name: OperatorName.YESTERDAY,
586
- longText: _getText(OperatorName.YESTERDAY, true),
590
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_YESTERDAY_TITLE", undefined, true),
591
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_YESTERDAY_FORMAT", undefined, true),
587
592
  valueTypes: [OperatorValueType.Static],
588
593
  calcRange: function() {
589
594
  return UniversalDateUtils.ranges.yesterday();
@@ -597,7 +602,8 @@ sap.ui.define([
597
602
  */
598
603
  today: new RangeOperator({
599
604
  name: OperatorName.TODAY,
600
- longText: _getText(OperatorName.TODAY, true),
605
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_TODAY_TITLE", undefined, true),
606
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_TODAY_FORMAT", undefined, true),
601
607
  valueTypes: [OperatorValueType.Static],
602
608
  calcRange: function() {
603
609
  return UniversalDateUtils.ranges.today();
@@ -611,7 +617,8 @@ sap.ui.define([
611
617
  */
612
618
  tomorrow: new RangeOperator({
613
619
  name: OperatorName.TOMORROW,
614
- longText: _getText(OperatorName.TOMORROW, true),
620
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_TOMORROW_TITLE", undefined, true),
621
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_TOMORROW_FORMAT", undefined, true),
615
622
  valueTypes: [OperatorValueType.Static],
616
623
  calcRange: function() {
617
624
  return UniversalDateUtils.ranges.tomorrow();
@@ -625,7 +632,7 @@ sap.ui.define([
625
632
  */
626
633
  lastDays: new RangeOperator({
627
634
  name: OperatorName.LASTDAYS,
628
- tokenText: _getText(OperatorName.LASTDAYS, false),
635
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYS_FORMAT", undefined, true),
629
636
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
630
637
  paramTypes: ["(\\d+)"],
631
638
  additionalInfo: "",
@@ -638,7 +645,8 @@ sap.ui.define([
638
645
  */
639
646
  firstDayWeek: new RangeOperator({
640
647
  name: OperatorName.FIRSTDAYWEEK,
641
- longText: _getText(OperatorName.FIRSTDAYWEEK, true),
648
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYWEEK_TITLE", undefined, true),
649
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYWEEK_FORMAT", undefined, true),
642
650
  valueTypes: [OperatorValueType.Static],
643
651
  calcRange: function() {
644
652
  return UniversalDateUtils.ranges.firstDayOfWeek();
@@ -652,7 +660,8 @@ sap.ui.define([
652
660
  */
653
661
  lastDayWeek: new RangeOperator({
654
662
  name: OperatorName.LASTDAYWEEK,
655
- longText: _getText(OperatorName.LASTDAYWEEK, true),
663
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYWEEK_TITLE", undefined, true),
664
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYWEEK_FORMAT", undefined, true),
656
665
  valueTypes: [OperatorValueType.Static],
657
666
  calcRange: function() {
658
667
  return UniversalDateUtils.ranges.lastDayOfWeek();
@@ -666,7 +675,8 @@ sap.ui.define([
666
675
  */
667
676
  firstDayMonth: new RangeOperator({
668
677
  name: OperatorName.FIRSTDAYMONTH,
669
- longText: _getText(OperatorName.FIRSTDAYMONTH, true),
678
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYMONTH_TITLE", undefined, true),
679
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYMONTH_FORMAT", undefined, true),
670
680
  valueTypes: [OperatorValueType.Static],
671
681
  calcRange: function() {
672
682
  return UniversalDateUtils.ranges.firstDayOfMonth();
@@ -680,7 +690,8 @@ sap.ui.define([
680
690
  */
681
691
  lastDayMonth: new RangeOperator({
682
692
  name: OperatorName.LASTDAYMONTH,
683
- longText: _getText(OperatorName.LASTDAYMONTH, true),
693
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYMONTH_TITLE", undefined, true),
694
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYMONTH_FORMAT", undefined, true),
684
695
  valueTypes: [OperatorValueType.Static],
685
696
  calcRange: function() {
686
697
  return UniversalDateUtils.ranges.lastDayOfMonth();
@@ -694,7 +705,8 @@ sap.ui.define([
694
705
  */
695
706
  firstDayQuarter: new RangeOperator({
696
707
  name: OperatorName.FIRSTDAYQUARTER,
697
- longText: _getText(OperatorName.FIRSTDAYQUARTER, true),
708
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYQUARTER_TITLE", undefined, true),
709
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYQUARTER_FORMAT", undefined, true),
698
710
  valueTypes: [OperatorValueType.Static],
699
711
  calcRange: function() {
700
712
  return UniversalDateUtils.ranges.firstDayOfQuarter();
@@ -708,7 +720,8 @@ sap.ui.define([
708
720
  */
709
721
  lastDayQuarter: new RangeOperator({
710
722
  name: OperatorName.LASTDAYQUARTER,
711
- longText: _getText(OperatorName.LASTDAYQUARTER, true),
723
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYQUARTER_TITLE", undefined, true),
724
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYQUARTER_FORMAT", undefined, true),
712
725
  valueTypes: [OperatorValueType.Static],
713
726
  calcRange: function() {
714
727
  return UniversalDateUtils.ranges.lastDayOfQuarter();
@@ -722,7 +735,8 @@ sap.ui.define([
722
735
  */
723
736
  firstDayYear: new RangeOperator({
724
737
  name: OperatorName.FIRSTDAYYEAR,
725
- longText: _getText(OperatorName.FIRSTDAYYEAR, true),
738
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYYEAR_TITLE", undefined, true),
739
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_FIRSTDAYYEAR_FORMAT", undefined, true),
726
740
  valueTypes: [OperatorValueType.Static],
727
741
  calcRange: function() {
728
742
  return UniversalDateUtils.ranges.firstDayOfYear();
@@ -736,7 +750,8 @@ sap.ui.define([
736
750
  */
737
751
  lastDayYear: new RangeOperator({
738
752
  name: OperatorName.LASTDAYYEAR,
739
- longText: _getText(OperatorName.LASTDAYYEAR, true),
753
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYYEAR_TITLE", undefined, true),
754
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYYEAR_FORMAT", undefined, true),
740
755
  valueTypes: [OperatorValueType.Static],
741
756
  calcRange: function() {
742
757
  return UniversalDateUtils.ranges.lastDayOfYear();
@@ -750,13 +765,47 @@ sap.ui.define([
750
765
  */
751
766
  todayFromTo: new RangeOperator({
752
767
  name: OperatorName.TODAYFROMTO,
753
- tokenText: _getText(OperatorName.TODAYFROMTO, false),
768
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_TODAYFROMTO_TITLE", undefined, true),
769
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_TODAYFROMTO_FORMAT", undefined, true),
754
770
  valueTypes: [
755
771
  { name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null } }, { name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null } }
756
772
  ],
757
773
  paramTypes: ["([-+]?\\d+)", "([-+]?\\d+)"],
758
774
  //label:["x", "y"],
759
775
  additionalInfo: "",
776
+ format: function(oCondition, oType, sDisplay, bHideOperator, aCompositeTypes, oAdditionalType, aAdditionalCompositeTypes, sCustomFormat) {
777
+ // format numbers into strings with leading "+" and "-"
778
+ let sTokenText = sCustomFormat || this.tokenFormat;
779
+ const iFrom = (oCondition.values[0] || 0) * -1;
780
+ const iTo = oCondition.values[1] || 0;
781
+ let sFrom = iFrom < 0 ? "" : "+";
782
+ sFrom = sFrom + this._formatValue(iFrom, this._createLocalType(this.valueTypes[0], oType));
783
+ let sTo = iTo < 0 ? "" : "+";
784
+ sTo = sTo + this._formatValue(iTo, this._createLocalType(this.valueTypes[1], oType));
785
+
786
+ if (iFrom <= iTo) {
787
+ sTokenText = sTokenText.replace(new RegExp("\\$" + 0 + "|" + 0 + "\\$" + "|" + "\\{" + 0 + "\\}", "g"), sFrom);
788
+ sTokenText = sTokenText.replace(new RegExp("\\$" + 1 + "|" + 1 + "\\$" + "|" + "\\{" + 1 + "\\}", "g"), sTo);
789
+ } else {
790
+ sTokenText = sTokenText.replace(new RegExp("\\$" + 0 + "|" + 0 + "\\$" + "|" + "\\{" + 0 + "\\}", "g"), sTo);
791
+ sTokenText = sTokenText.replace(new RegExp("\\$" + 1 + "|" + 1 + "\\$" + "|" + "\\{" + 1 + "\\}", "g"), sFrom);
792
+ }
793
+
794
+ return sTokenText;
795
+ },
796
+ parse: function(sText, oType, sDisplayFormat, bDefaultOperator, aCompositeTypes, oAdditionalType, aAdditionalCompositeTypes, bHideOperator) {
797
+ const aValues = this.getValues(sText, sDisplayFormat, bDefaultOperator, bHideOperator);
798
+ let iFrom = this._parseValue(aValues[0], this._createLocalType(this.valueTypes[0], oType));
799
+ let iTo = this._parseValue(aValues[1], this._createLocalType(this.valueTypes[1], oType));
800
+
801
+ if (iFrom > iTo) {
802
+ const iTemp = iFrom;
803
+ iFrom = iTo;
804
+ iTo = iTemp;
805
+ }
806
+ iFrom = iFrom * -1;
807
+ return [iFrom, iTo];
808
+ },
760
809
  calcRange: function(xDays, yDays) {
761
810
  let oStart = xDays >= 0 ? UniversalDateUtils.ranges.lastDays(xDays)[0] : UniversalDateUtils.ranges.nextDays(-xDays)[1];
762
811
  let oEnd = yDays >= 0 ? UniversalDateUtils.ranges.nextDays(yDays)[1] : UniversalDateUtils.ranges.lastDays(-yDays)[0];
@@ -773,7 +822,7 @@ sap.ui.define([
773
822
  */
774
823
  nextDays: new RangeOperator({
775
824
  name: OperatorName.NEXTDAYS,
776
- tokenText: _getText(OperatorName.NEXTDAYS, false),
825
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTDAYS_FORMAT", undefined, true),
777
826
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
778
827
  paramTypes: ["(\\d+)"],
779
828
  additionalInfo: "",
@@ -786,7 +835,8 @@ sap.ui.define([
786
835
  */
787
836
  lastWeek: new RangeOperator({
788
837
  name: OperatorName.LASTWEEK,
789
- longText: _getText(OperatorName.LASTWEEK, true),
838
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTWEEK_TITLE", undefined, true),
839
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTWEEK_FORMAT", undefined, true),
790
840
  valueTypes: [OperatorValueType.Static],
791
841
  calcRange: function() {
792
842
  return UniversalDateUtils.ranges.lastWeek();
@@ -797,7 +847,8 @@ sap.ui.define([
797
847
  */
798
848
  thisWeek: new RangeOperator({
799
849
  name: OperatorName.THISWEEK,
800
- longText: _getText(OperatorName.THISWEEK, true),
850
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_THISWEEK_TITLE", undefined, true),
851
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_THISWEEK_FORMAT", undefined, true),
801
852
  valueTypes: [OperatorValueType.Static],
802
853
  calcRange: function() {
803
854
  return UniversalDateUtils.ranges.currentWeek();
@@ -808,7 +859,8 @@ sap.ui.define([
808
859
  */
809
860
  nextWeek: new RangeOperator({
810
861
  name: OperatorName.NEXTWEEK,
811
- longText: _getText(OperatorName.NEXTWEEK, true),
862
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTWEEK_TITLE", undefined, true),
863
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTWEEK_FORMAT", undefined, true),
812
864
  valueTypes: [OperatorValueType.Static],
813
865
  calcRange: function() {
814
866
  return UniversalDateUtils.ranges.nextWeek();
@@ -819,7 +871,7 @@ sap.ui.define([
819
871
  */
820
872
  lastWeeks: new RangeOperator({
821
873
  name: OperatorName.LASTWEEKS,
822
- tokenText: _getText(OperatorName.LASTWEEKS, false),
874
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTWEEKS_FORMAT", undefined, true),
823
875
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
824
876
  paramTypes: ["(\\d+)"],
825
877
  additionalInfo: "",
@@ -832,7 +884,7 @@ sap.ui.define([
832
884
  */
833
885
  nextWeeks: new RangeOperator({
834
886
  name: OperatorName.NEXTWEEKS,
835
- tokenText: _getText(OperatorName.NEXTWEEKS, false),
887
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTWEEKS_FORMAT", undefined, true),
836
888
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
837
889
  paramTypes: ["(\\d+)"],
838
890
  additionalInfo: "",
@@ -845,7 +897,8 @@ sap.ui.define([
845
897
  */
846
898
  lastMonth: new RangeOperator({
847
899
  name: OperatorName.LASTMONTH,
848
- longText: _getText(OperatorName.LASTMONTH, true),
900
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTMONTH_TITLE", undefined, true),
901
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTMONTH_FORMAT", undefined, true),
849
902
  valueTypes: [OperatorValueType.Static],
850
903
  calcRange: function() {
851
904
  return UniversalDateUtils.ranges.lastMonth();
@@ -856,7 +909,8 @@ sap.ui.define([
856
909
  */
857
910
  thisMonth: new RangeOperator({
858
911
  name: OperatorName.THISMONTH,
859
- longText: _getText(OperatorName.THISMONTH, true),
912
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_THISMONTH_TITLE", undefined, true),
913
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_THISMONTH_FORMAT", undefined, true),
860
914
  valueTypes: [OperatorValueType.Static],
861
915
  calcRange: function() {
862
916
  return UniversalDateUtils.ranges.currentMonth();
@@ -867,7 +921,8 @@ sap.ui.define([
867
921
  */
868
922
  nextMonth: new RangeOperator({
869
923
  name: OperatorName.NEXTMONTH,
870
- longText: _getText(OperatorName.NEXTMONTH, true),
924
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTMONTH_TITLE", undefined, true),
925
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTMONTH_FORMAT", undefined, true),
871
926
  valueTypes: [OperatorValueType.Static],
872
927
  calcRange: function() {
873
928
  return UniversalDateUtils.ranges.nextMonth();
@@ -878,7 +933,7 @@ sap.ui.define([
878
933
  */
879
934
  lastMonths: new RangeOperator({
880
935
  name: OperatorName.LASTMONTHS,
881
- tokenText: _getText(OperatorName.LASTMONTHS, false),
936
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTMONTHS_FORMAT", undefined, true),
882
937
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
883
938
  paramTypes: ["(\\d+)"],
884
939
  additionalInfo: "",
@@ -891,7 +946,7 @@ sap.ui.define([
891
946
  */
892
947
  nextMonths: new RangeOperator({
893
948
  name: OperatorName.NEXTMONTHS,
894
- tokenText: _getText(OperatorName.NEXTMONTHS, false),
949
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTMONTHS_FORMAT", undefined, true),
895
950
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
896
951
  paramTypes: ["(\\d+)"],
897
952
  additionalInfo: "",
@@ -904,7 +959,8 @@ sap.ui.define([
904
959
  */
905
960
  lastQuarter: new RangeOperator({
906
961
  name: OperatorName.LASTQUARTER,
907
- longText: _getText(OperatorName.LASTQUARTER, true),
962
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTQUARTER_TITLE", undefined, true),
963
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTQUARTER_FORMAT", undefined, true),
908
964
  valueTypes: [OperatorValueType.Static],
909
965
  calcRange: function() {
910
966
  return UniversalDateUtils.ranges.lastQuarter();
@@ -915,7 +971,8 @@ sap.ui.define([
915
971
  */
916
972
  thisQuarter: new RangeOperator({
917
973
  name: OperatorName.THISQUARTER,
918
- longText: _getText(OperatorName.THISQUARTER, true),
974
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_THISQUARTER_TITLE", undefined, true),
975
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_THISQUARTER_FORMAT", undefined, true),
919
976
  valueTypes: [OperatorValueType.Static],
920
977
  calcRange: function() {
921
978
  return UniversalDateUtils.ranges.currentQuarter();
@@ -926,7 +983,8 @@ sap.ui.define([
926
983
  */
927
984
  nextQuarter: new RangeOperator({
928
985
  name: OperatorName.NEXTQUARTER,
929
- longText: _getText(OperatorName.NEXTQUARTER, true),
986
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTQUARTER_TITLE", undefined, true),
987
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTQUARTER_FORMAT", undefined, true),
930
988
  valueTypes: [OperatorValueType.Static],
931
989
  calcRange: function() {
932
990
  return UniversalDateUtils.ranges.nextQuarter();
@@ -937,7 +995,7 @@ sap.ui.define([
937
995
  */
938
996
  lastQuarters: new RangeOperator({
939
997
  name: OperatorName.LASTQUARTERS,
940
- tokenText: _getText(OperatorName.LASTQUARTERS, false),
998
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTQUARTERS_FORMAT", undefined, true),
941
999
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
942
1000
  paramTypes: ["(\\d+)"],
943
1001
  additionalInfo: "",
@@ -950,7 +1008,7 @@ sap.ui.define([
950
1008
  */
951
1009
  nextQuarters: new RangeOperator({
952
1010
  name: OperatorName.NEXTQUARTERS,
953
- tokenText: _getText(OperatorName.NEXTQUARTERS, false),
1011
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTQUARTERS_FORMAT", undefined, true),
954
1012
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
955
1013
  paramTypes: ["(\\d+)"],
956
1014
  additionalInfo: "",
@@ -963,7 +1021,8 @@ sap.ui.define([
963
1021
  */
964
1022
  quarter1: new RangeOperator({
965
1023
  name: OperatorName.QUARTER1,
966
- longText: _getText(OperatorName.QUARTER1, true),
1024
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER1_TITLE", undefined, true),
1025
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER1_FORMAT", undefined, true),
967
1026
  valueTypes: [OperatorValueType.Static],
968
1027
  calcRange: function() {
969
1028
  return UniversalDateUtils.ranges.quarter(1);
@@ -974,7 +1033,8 @@ sap.ui.define([
974
1033
  */
975
1034
  quarter2: new RangeOperator({
976
1035
  name: OperatorName.QUARTER2,
977
- longText: _getText(OperatorName.QUARTER2, true),
1036
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER2_TITLE", undefined, true),
1037
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER2_FORMAT", undefined, true),
978
1038
  valueTypes: [OperatorValueType.Static],
979
1039
  calcRange: function() {
980
1040
  return UniversalDateUtils.ranges.quarter(2);
@@ -985,7 +1045,8 @@ sap.ui.define([
985
1045
  */
986
1046
  quarter3: new RangeOperator({
987
1047
  name: OperatorName.QUARTER3,
988
- longText: _getText(OperatorName.QUARTER3, true),
1048
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER3_TITLE", undefined, true),
1049
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER3_FORMAT", undefined, true),
989
1050
  valueTypes: [OperatorValueType.Static],
990
1051
  calcRange: function() {
991
1052
  return UniversalDateUtils.ranges.quarter(3);
@@ -996,7 +1057,8 @@ sap.ui.define([
996
1057
  */
997
1058
  quarter4: new RangeOperator({
998
1059
  name: OperatorName.QUARTER4,
999
- longText: _getText(OperatorName.QUARTER4, true),
1060
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER4_TITLE", undefined, true),
1061
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_QUARTER4_FORMAT", undefined, true),
1000
1062
  valueTypes: [OperatorValueType.Static],
1001
1063
  calcRange: function() {
1002
1064
  return UniversalDateUtils.ranges.quarter(4);
@@ -1007,7 +1069,8 @@ sap.ui.define([
1007
1069
  */
1008
1070
  lastYear: new RangeOperator({
1009
1071
  name: OperatorName.LASTYEAR,
1010
- longText: _getText(OperatorName.LASTYEAR, true),
1072
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_LASTYEAR_TITLE", undefined, true),
1073
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTYEAR_FORMAT", undefined, true),
1011
1074
  valueTypes: [OperatorValueType.Static],
1012
1075
  calcRange: function() {
1013
1076
  return UniversalDateUtils.ranges.lastYear();
@@ -1018,7 +1081,8 @@ sap.ui.define([
1018
1081
  */
1019
1082
  thisYear: new RangeOperator({
1020
1083
  name: OperatorName.THISYEAR,
1021
- longText: _getText(OperatorName.THISYEAR, true),
1084
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_THISYEAR_TITLE", undefined, true),
1085
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_THISYEAR_FORMAT", undefined, true),
1022
1086
  valueTypes: [OperatorValueType.Static],
1023
1087
  calcRange: function() {
1024
1088
  return UniversalDateUtils.ranges.currentYear();
@@ -1029,7 +1093,8 @@ sap.ui.define([
1029
1093
  */
1030
1094
  nextYear: new RangeOperator({
1031
1095
  name: OperatorName.NEXTYEAR,
1032
- longText: _getText(OperatorName.NEXTYEAR, true),
1096
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTYEAR_TITLE", undefined, true),
1097
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTYEAR_FORMAT", undefined, true),
1033
1098
  valueTypes: [OperatorValueType.Static],
1034
1099
  calcRange: function() {
1035
1100
  return UniversalDateUtils.ranges.nextYear();
@@ -1040,7 +1105,7 @@ sap.ui.define([
1040
1105
  */
1041
1106
  lastYears: new RangeOperator({
1042
1107
  name: OperatorName.LASTYEARS,
1043
- tokenText: _getText(OperatorName.LASTYEARS, false),
1108
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTYEARS_FORMAT", undefined, true),
1044
1109
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1045
1110
  paramTypes: ["(\\d+)"],
1046
1111
  additionalInfo: "",
@@ -1053,7 +1118,7 @@ sap.ui.define([
1053
1118
  */
1054
1119
  nextYears: new RangeOperator({
1055
1120
  name: OperatorName.NEXTYEARS,
1056
- tokenText: _getText(OperatorName.NEXTYEARS, false),
1121
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTYEARS_FORMAT", undefined, true),
1057
1122
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1058
1123
  paramTypes: ["(\\d+)"],
1059
1124
  additionalInfo: "",
@@ -1066,10 +1131,10 @@ sap.ui.define([
1066
1131
  */
1067
1132
  specificMonth: new RangeOperator({
1068
1133
  name: OperatorName.SPECIFICMONTH,
1069
- longText: _getText(OperatorName.SPECIFICMONTH, true),
1070
- tokenText: _getText(OperatorName.SPECIFICMONTH, false),
1134
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_SPECIFICMONTH_TITLE", undefined, true),
1135
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_SPECIFICMONTH_FORMAT", undefined, true),
1071
1136
  valueTypes: [{ name: "sap.ui.model.type.Integer", constraints: { minimum: 0, maximum: 11 } }],
1072
- paramTypes: ["(.+)"],
1137
+ paramTypes: [_getMonthRegExp.call(this)],
1073
1138
  additionalInfo: "",
1074
1139
  label: [oMessageBundle.getText("operators.SPECIFICMONTH_MONTH.label")],
1075
1140
  defaultValues: function() {
@@ -1085,7 +1150,7 @@ sap.ui.define([
1085
1150
  return UniversalDateUtils.getRange(0, "MONTH", oDate);
1086
1151
  },
1087
1152
  format: function(oCondition, oType, sDisplayFormat, bHideOperator, aCompositeTypes, oAdditionalType, aAdditionalCompositeTypes) {
1088
- const iValue = oCondition.values[0];
1153
+ const [iValue] = oCondition.values;
1089
1154
  const sTokenText = this.tokenFormat;
1090
1155
  const sReplace = _getMonths.apply(this)[iValue];
1091
1156
 
@@ -1128,10 +1193,10 @@ sap.ui.define([
1128
1193
  */
1129
1194
  specificMonthInYear: new RangeOperator({
1130
1195
  name: OperatorName.SPECIFICMONTHINYEAR,
1131
- longText: _getText(OperatorName.SPECIFICMONTHINYEAR, true),
1132
- tokenText: _getText(OperatorName.SPECIFICMONTHINYEAR, false),
1196
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_SPECIFICMONTHINYEAR_TITLE", undefined, true),
1197
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_SPECIFICMONTHINYEAR_FORMAT", undefined, true),
1133
1198
  valueTypes: [{ name: "sap.ui.model.type.Integer", constraints: { minimum: 0, maximum: 11 } }, { name: "sap.ui.model.type.Integer", constraints: { minimum: 1, maximum: 9999 } }],
1134
- paramTypes: ["(.+)", "(.+)"],
1199
+ paramTypes: [_getMonthRegExp.call(this), "(.+)"],
1135
1200
  additionalInfo: "",
1136
1201
  label: [oMessageBundle.getText("operators.SPECIFICMONTHINYEAR_MONTH.label"), oMessageBundle.getText("operators.SPECIFICMONTHINYEAR_YEAR.label")],
1137
1202
  defaultValues: function() {
@@ -1148,8 +1213,7 @@ sap.ui.define([
1148
1213
  return UniversalDateUtils.getRange(0, "MONTH", oDate);
1149
1214
  },
1150
1215
  format: function(oCondition, oType, sDisplayFormat, bHideOperator, aCompositeTypes, oAdditionalType, aAdditionalCompositeTypes) {
1151
- const iValue = oCondition.values[0];
1152
- const iYear = oCondition.values[1];
1216
+ const [iValue, iYear] = oCondition.values;
1153
1217
  let sTokenText = this.tokenFormat;
1154
1218
  const sReplace = _getMonths.apply(this)[iValue];
1155
1219
 
@@ -1210,7 +1274,8 @@ sap.ui.define([
1210
1274
  */
1211
1275
  yearToDate: new RangeOperator({
1212
1276
  name: OperatorName.YEARTODATE,
1213
- longText: _getText(OperatorName.YEARTODATE, true),
1277
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_YEARTODATE_TITLE", undefined, true),
1278
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_YEARTODATE_FORMAT", undefined, true),
1214
1279
  valueTypes: [OperatorValueType.Static],
1215
1280
  calcRange: function() {
1216
1281
  return UniversalDateUtils.ranges.yearToDate();
@@ -1221,7 +1286,8 @@ sap.ui.define([
1221
1286
  */
1222
1287
  dateToYear: new RangeOperator({
1223
1288
  name: OperatorName.DATETOYEAR,
1224
- longText: _getText(OperatorName.DATETOYEAR, true),
1289
+ longText: oMessageBundleM.getText("DYNAMIC_DATE_DATETOYEAR_TITLE", undefined, true),
1290
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_DATETOYEAR_FORMAT", undefined, true),
1225
1291
  valueTypes: [OperatorValueType.Static],
1226
1292
  calcRange: function() {
1227
1293
  return UniversalDateUtils.ranges.dateToYear();
@@ -1232,7 +1298,7 @@ sap.ui.define([
1232
1298
  */
1233
1299
  lastMinutes: new RangeOperator({
1234
1300
  name: OperatorName.LASTMINUTES,
1235
- tokenText: _getText(OperatorName.LASTMINUTES, false),
1301
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTMINUTES_FORMAT", undefined, true),
1236
1302
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1237
1303
  paramTypes: ["(\\d+)"],
1238
1304
  additionalInfo: "",
@@ -1245,7 +1311,7 @@ sap.ui.define([
1245
1311
  */
1246
1312
  nextMinutes: new RangeOperator({
1247
1313
  name: OperatorName.NEXTMINUTES,
1248
- tokenText: _getText(OperatorName.NEXTMINUTES, false),
1314
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTMINUTES_FORMAT", undefined, true),
1249
1315
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1250
1316
  paramTypes: ["(\\d+)"],
1251
1317
  additionalInfo: "",
@@ -1258,7 +1324,7 @@ sap.ui.define([
1258
1324
  */
1259
1325
  lastHours: new RangeOperator({
1260
1326
  name: OperatorName.LASTHOURS,
1261
- tokenText: _getText(OperatorName.LASTHOURS, false),
1327
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTHOURS_FORMAT", undefined, true),
1262
1328
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1263
1329
  paramTypes: ["(\\d+)"],
1264
1330
  additionalInfo: "",
@@ -1271,13 +1337,223 @@ sap.ui.define([
1271
1337
  */
1272
1338
  nextHours: new RangeOperator({
1273
1339
  name: OperatorName.NEXTHOURS,
1274
- tokenText: _getText(OperatorName.NEXTHOURS, false),
1340
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTHOURS_FORMAT", undefined, true),
1275
1341
  valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1276
1342
  paramTypes: ["(\\d+)"],
1277
1343
  additionalInfo: "",
1278
1344
  calcRange: function(iDuration) {
1279
1345
  return UniversalDateUtils.ranges.nextHours(iDuration);
1280
1346
  }
1347
+ }),
1348
+ /*
1349
+ * "Last X Minutes" operator including current minute
1350
+ */
1351
+ lastMinutesIncluded: new RangeOperator({
1352
+ name: OperatorName.LASTMINUTESINCLUDED,
1353
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTMINUTESINCLUDED_FORMAT", undefined, true),
1354
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1355
+ paramTypes: ["(\\d+)"],
1356
+ additionalInfo: "",
1357
+ calcRange: function(iDuration) {
1358
+ const oResultValues = UniversalDateUtils.ranges.lastMinutes(iDuration - 1);
1359
+ oResultValues[0].setSeconds(0);
1360
+ return oResultValues;
1361
+ }
1362
+ }),
1363
+ /*
1364
+ * "Next X Minutes" operator including current minute
1365
+ */
1366
+ nextMinutesIncluded: new RangeOperator({
1367
+ name: OperatorName.NEXTMINUTESINCLUDED,
1368
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTMINUTESINCLUDED_FORMAT", undefined, true),
1369
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1370
+ paramTypes: ["(\\d+)"],
1371
+ additionalInfo: "",
1372
+ calcRange: function(iDuration) {
1373
+ const oResultValues = UniversalDateUtils.ranges.nextMinutes(iDuration - 1);
1374
+ oResultValues[1].setSeconds(59);
1375
+ return oResultValues;
1376
+ }
1377
+ }),
1378
+ /*
1379
+ * "Last X Hours" operator including current hour
1380
+ */
1381
+ lastHoursIncluded: new RangeOperator({
1382
+ name: OperatorName.LASTHOURSINCLUDED,
1383
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTHOURSINCLUDED_FORMAT", undefined, true),
1384
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1385
+ paramTypes: ["(\\d+)"],
1386
+ additionalInfo: "",
1387
+ calcRange: function(iDuration) {
1388
+ const oResultValues = UniversalDateUtils.ranges.lastHours(iDuration - 1);
1389
+ oResultValues[0].setMinutes(0, 0);
1390
+ return oResultValues;
1391
+ }
1392
+ }),
1393
+ /*
1394
+ * "Next X Hours" operator including current hour
1395
+ */
1396
+ nextHoursIncluded: new RangeOperator({
1397
+ name: OperatorName.NEXTHOURSINCLUDED,
1398
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTHOURSINCLUDED_FORMAT", undefined, true),
1399
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1400
+ paramTypes: ["(\\d+)"],
1401
+ additionalInfo: "",
1402
+ calcRange: function(iDuration) {
1403
+ const oResultValues = UniversalDateUtils.ranges.nextHours(iDuration - 1);
1404
+ oResultValues[1].setMinutes(59, 59);
1405
+ return oResultValues;
1406
+ }
1407
+ }),
1408
+ /*
1409
+ * "Last X Days" operator including current day
1410
+ */
1411
+ lastDaysIncluded: new RangeOperator({
1412
+ name: OperatorName.LASTDAYSINCLUDED,
1413
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTDAYSINCLUDED_FORMAT", undefined, true),
1414
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1415
+ paramTypes: ["(\\d+)"],
1416
+ additionalInfo: "",
1417
+ calcRange: function(iDuration) {
1418
+ const oResultValues = UniversalDateUtils.ranges.lastDays(iDuration - 1);
1419
+ oResultValues[1] = UniversalDate.getInstance(UI5Date.getInstance());
1420
+ return oResultValues;
1421
+ }
1422
+ }),
1423
+ /*
1424
+ * "Next X Days" operator including current day
1425
+ */
1426
+ nextDaysIncluded: new RangeOperator({
1427
+ name: OperatorName.NEXTDAYSINCLUDED,
1428
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTDAYSINCLUDED_FORMAT", undefined, true),
1429
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1430
+ paramTypes: ["(\\d+)"],
1431
+ additionalInfo: "",
1432
+ calcRange: function(iDuration) {
1433
+ const oResultValues = UniversalDateUtils.ranges.nextDays(iDuration - 1);
1434
+ oResultValues[0] = UniversalDate.getInstance(UI5Date.getInstance());
1435
+ return oResultValues;
1436
+ }
1437
+ }),
1438
+ /*
1439
+ * "Last X Weeks" operator including current week
1440
+ */
1441
+ lastWeeksIncluded: new RangeOperator({
1442
+ name: OperatorName.LASTWEEKSINCLUDED,
1443
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTWEEKSINCLUDED_FORMAT", undefined, true),
1444
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1445
+ paramTypes: ["(\\d+)"],
1446
+ additionalInfo: "",
1447
+ calcRange: function(iDuration) {
1448
+ const oResultValues = UniversalDateUtils.ranges.lastWeeks(iDuration - 1);
1449
+ oResultValues[1] = UniversalDate.getInstance(UI5Date.getInstance());
1450
+ return oResultValues;
1451
+ }
1452
+ }),
1453
+ /*
1454
+ * "Next X Weeks" operator including current week
1455
+ */
1456
+ nextWeeksIncluded: new RangeOperator({
1457
+ name: OperatorName.NEXTWEEKSINCLUDED,
1458
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTWEEKSINCLUDED_FORMAT", undefined, true),
1459
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1460
+ paramTypes: ["(\\d+)"],
1461
+ additionalInfo: "",
1462
+ calcRange: function(iDuration) {
1463
+ const oResultValues = UniversalDateUtils.ranges.nextWeeks(iDuration - 1);
1464
+ oResultValues[0] = UniversalDate.getInstance(UI5Date.getInstance());
1465
+ return oResultValues;
1466
+ }
1467
+ }),
1468
+ /*
1469
+ * "Last X Months" operator including current month
1470
+ */
1471
+ lastMonthsIncluded: new RangeOperator({
1472
+ name: OperatorName.LASTMONTHSINCLUDED,
1473
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTMONTHSINCLUDED_FORMAT", undefined, true),
1474
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1475
+ paramTypes: ["(\\d+)"],
1476
+ additionalInfo: "",
1477
+ calcRange: function(iDuration) {
1478
+ const oResultValues = UniversalDateUtils.ranges.lastMonths(iDuration - 1);
1479
+ oResultValues[1] = UniversalDate.getInstance(UI5Date.getInstance());
1480
+ return oResultValues;
1481
+ }
1482
+ }),
1483
+ /*
1484
+ * "Next X Months" operator including current month
1485
+ */
1486
+ nextMonthsIncluded: new RangeOperator({
1487
+ name: OperatorName.NEXTMONTHSINCLUDED,
1488
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTMONTHSINCLUDED_FORMAT", undefined, true),
1489
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1490
+ paramTypes: ["(\\d+)"],
1491
+ additionalInfo: "",
1492
+ calcRange: function(iDuration) {
1493
+ const oResultValues = UniversalDateUtils.ranges.nextMonths(iDuration - 1);
1494
+ oResultValues[0] = UniversalDate.getInstance(UI5Date.getInstance());
1495
+ return oResultValues;
1496
+ }
1497
+ }),
1498
+ /*
1499
+ * "Last X Quarters" operator including current quarter
1500
+ */
1501
+ lastQuartersIncluded: new RangeOperator({
1502
+ name: OperatorName.LASTQUARTERSINCLUDED,
1503
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTQUARTERSINCLUDED_FORMAT", undefined, true),
1504
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1505
+ paramTypes: ["(\\d+)"],
1506
+ additionalInfo: "",
1507
+ calcRange: function(iDuration) {
1508
+ const oResultValues = UniversalDateUtils.ranges.lastQuarters(iDuration - 1);
1509
+ oResultValues[1] = UniversalDate.getInstance(UI5Date.getInstance());
1510
+ return oResultValues;
1511
+ }
1512
+ }),
1513
+ /*
1514
+ * "Next X Quarters" operator including current quarter
1515
+ */
1516
+ nextQuartersIncluded: new RangeOperator({
1517
+ name: OperatorName.NEXTQUARTERSINCLUDED,
1518
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTQUARTERSINCLUDED_FORMAT", undefined, true),
1519
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1520
+ paramTypes: ["(\\d+)"],
1521
+ additionalInfo: "",
1522
+ calcRange: function(iDuration) {
1523
+ const oResultValues = UniversalDateUtils.ranges.nextQuarters(iDuration - 1);
1524
+ oResultValues[0] = UniversalDate.getInstance(UI5Date.getInstance());
1525
+ return oResultValues;
1526
+ }
1527
+ }),
1528
+ /*
1529
+ * "Last X Years" operator including current year
1530
+ */
1531
+ lastYearsIncluded: new RangeOperator({
1532
+ name: OperatorName.LASTYEARSINCLUDED,
1533
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_LASTYEARSINCLUDED_FORMAT", undefined, true),
1534
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1535
+ paramTypes: ["(\\d+)"],
1536
+ additionalInfo: "",
1537
+ calcRange: function(iDuration) {
1538
+ const oResultValues = UniversalDateUtils.ranges.lastYears(iDuration - 1);
1539
+ oResultValues[1] = UniversalDate.getInstance(UI5Date.getInstance());
1540
+ return oResultValues;
1541
+ }
1542
+ }),
1543
+ /*
1544
+ * "Next X Years" operator including current year
1545
+ */
1546
+ nextYearsIncluded: new RangeOperator({
1547
+ name: OperatorName.NEXTYEARSINCLUDED,
1548
+ tokenText: oMessageBundleM.getText("DYNAMIC_DATE_NEXTYEARSINCLUDED_FORMAT", undefined, true),
1549
+ valueTypes: [{ name: "sap.ui.model.type.Integer", formatOptions: { emptyString: null }, constraints: { minimum: 0 } }],
1550
+ paramTypes: ["(\\d+)"],
1551
+ additionalInfo: "",
1552
+ calcRange: function(iDuration) {
1553
+ const oResultValues = UniversalDateUtils.ranges.nextYears(iDuration - 1);
1554
+ oResultValues[0] = UniversalDate.getInstance(UI5Date.getInstance());
1555
+ return oResultValues;
1556
+ }
1281
1557
  })
1282
1558
 
1283
1559
  },
@@ -1931,27 +2207,35 @@ sap.ui.define([
1931
2207
  FilterOperatorUtil._mOperators.lastDayYear,
1932
2208
  FilterOperatorUtil._mOperators.todayFromTo,
1933
2209
  FilterOperatorUtil._mOperators.lastDays,
2210
+ FilterOperatorUtil._mOperators.lastDaysIncluded,
1934
2211
  FilterOperatorUtil._mOperators.nextDays,
2212
+ FilterOperatorUtil._mOperators.nextDaysIncluded,
1935
2213
 
1936
2214
  FilterOperatorUtil._mOperators.thisWeek,
1937
2215
  FilterOperatorUtil._mOperators.lastWeek,
1938
2216
  FilterOperatorUtil._mOperators.lastWeeks,
2217
+ FilterOperatorUtil._mOperators.lastWeeksIncluded,
1939
2218
  FilterOperatorUtil._mOperators.nextWeek,
1940
2219
  FilterOperatorUtil._mOperators.nextWeeks,
2220
+ FilterOperatorUtil._mOperators.nextWeeksIncluded,
1941
2221
 
1942
2222
  FilterOperatorUtil._mOperators.specificMonth,
1943
2223
  FilterOperatorUtil._mOperators.specificMonthInYear,
1944
2224
  FilterOperatorUtil._mOperators.thisMonth,
1945
2225
  FilterOperatorUtil._mOperators.lastMonth,
1946
2226
  FilterOperatorUtil._mOperators.lastMonths,
2227
+ FilterOperatorUtil._mOperators.lastMonthsIncluded,
1947
2228
  FilterOperatorUtil._mOperators.nextMonth,
1948
2229
  FilterOperatorUtil._mOperators.nextMonths,
2230
+ FilterOperatorUtil._mOperators.nextMonthsIncluded,
1949
2231
 
1950
2232
  FilterOperatorUtil._mOperators.thisQuarter,
1951
2233
  FilterOperatorUtil._mOperators.lastQuarter,
1952
2234
  FilterOperatorUtil._mOperators.lastQuarters,
2235
+ FilterOperatorUtil._mOperators.lastQuartersIncluded,
1953
2236
  FilterOperatorUtil._mOperators.nextQuarter,
1954
2237
  FilterOperatorUtil._mOperators.nextQuarters,
2238
+ FilterOperatorUtil._mOperators.nextQuartersIncluded,
1955
2239
 
1956
2240
  FilterOperatorUtil._mOperators.quarter1,
1957
2241
  FilterOperatorUtil._mOperators.quarter2,
@@ -1961,8 +2245,10 @@ sap.ui.define([
1961
2245
  FilterOperatorUtil._mOperators.thisYear,
1962
2246
  FilterOperatorUtil._mOperators.lastYear,
1963
2247
  FilterOperatorUtil._mOperators.lastYears,
2248
+ FilterOperatorUtil._mOperators.lastYearsIncluded,
1964
2249
  FilterOperatorUtil._mOperators.nextYear,
1965
2250
  FilterOperatorUtil._mOperators.nextYears,
2251
+ FilterOperatorUtil._mOperators.nextYearsIncluded,
1966
2252
 
1967
2253
  FilterOperatorUtil._mOperators.yearToDate,
1968
2254
  FilterOperatorUtil._mOperators.dateToYear
@@ -1986,9 +2272,13 @@ sap.ui.define([
1986
2272
  FilterOperatorUtil._mOperators.notGreaterEqual,
1987
2273
 
1988
2274
  FilterOperatorUtil._mOperators.lastMinutes,
2275
+ FilterOperatorUtil._mOperators.lastMinutesIncluded,
1989
2276
  FilterOperatorUtil._mOperators.nextMinutes,
2277
+ FilterOperatorUtil._mOperators.nextMinutesIncluded,
1990
2278
  FilterOperatorUtil._mOperators.lastHours,
2279
+ FilterOperatorUtil._mOperators.lastHoursIncluded,
1991
2280
  FilterOperatorUtil._mOperators.nextHours,
2281
+ FilterOperatorUtil._mOperators.nextHoursIncluded,
1992
2282
 
1993
2283
  FilterOperatorUtil._mOperators.today,
1994
2284
  FilterOperatorUtil._mOperators.yesterday,
@@ -2003,27 +2293,35 @@ sap.ui.define([
2003
2293
  FilterOperatorUtil._mOperators.lastDayYear,
2004
2294
  FilterOperatorUtil._mOperators.todayFromTo,
2005
2295
  FilterOperatorUtil._mOperators.lastDays,
2296
+ FilterOperatorUtil._mOperators.lastDaysIncluded,
2006
2297
  FilterOperatorUtil._mOperators.nextDays,
2298
+ FilterOperatorUtil._mOperators.nextDaysIncluded,
2007
2299
 
2008
2300
  FilterOperatorUtil._mOperators.thisWeek,
2009
2301
  FilterOperatorUtil._mOperators.lastWeek,
2010
2302
  FilterOperatorUtil._mOperators.lastWeeks,
2303
+ FilterOperatorUtil._mOperators.lastWeeksIncluded,
2011
2304
  FilterOperatorUtil._mOperators.nextWeek,
2012
2305
  FilterOperatorUtil._mOperators.nextWeeks,
2306
+ FilterOperatorUtil._mOperators.nextWeeksIncluded,
2013
2307
 
2014
2308
  FilterOperatorUtil._mOperators.specificMonth,
2015
2309
  FilterOperatorUtil._mOperators.specificMonthInYear,
2016
2310
  FilterOperatorUtil._mOperators.thisMonth,
2017
2311
  FilterOperatorUtil._mOperators.lastMonth,
2018
2312
  FilterOperatorUtil._mOperators.lastMonths,
2313
+ FilterOperatorUtil._mOperators.lastMonthsIncluded,
2019
2314
  FilterOperatorUtil._mOperators.nextMonth,
2020
2315
  FilterOperatorUtil._mOperators.nextMonths,
2316
+ FilterOperatorUtil._mOperators.nextMonthsIncluded,
2021
2317
 
2022
2318
  FilterOperatorUtil._mOperators.thisQuarter,
2023
2319
  FilterOperatorUtil._mOperators.lastQuarter,
2024
2320
  FilterOperatorUtil._mOperators.lastQuarters,
2321
+ FilterOperatorUtil._mOperators.lastQuartersIncluded,
2025
2322
  FilterOperatorUtil._mOperators.nextQuarter,
2026
2323
  FilterOperatorUtil._mOperators.nextQuarters,
2324
+ FilterOperatorUtil._mOperators.nextQuartersIncluded,
2027
2325
 
2028
2326
  FilterOperatorUtil._mOperators.quarter1,
2029
2327
  FilterOperatorUtil._mOperators.quarter2,
@@ -2033,8 +2331,10 @@ sap.ui.define([
2033
2331
  FilterOperatorUtil._mOperators.thisYear,
2034
2332
  FilterOperatorUtil._mOperators.lastYear,
2035
2333
  FilterOperatorUtil._mOperators.lastYears,
2334
+ FilterOperatorUtil._mOperators.lastYearsIncluded,
2036
2335
  FilterOperatorUtil._mOperators.nextYear,
2037
2336
  FilterOperatorUtil._mOperators.nextYears,
2337
+ FilterOperatorUtil._mOperators.nextYearsIncluded,
2038
2338
 
2039
2339
  FilterOperatorUtil._mOperators.yearToDate,
2040
2340
  FilterOperatorUtil._mOperators.dateToYear
@@ -2150,6 +2450,13 @@ sap.ui.define([
2150
2450
  return iIndex;
2151
2451
  }
2152
2452
 
2453
+ function _getMonthRegExp() {
2454
+ if (!this._sMonthRegExp) {
2455
+ const aMonths = _getMonths.apply(this);
2456
+ this._sMonthRegExp = "(" + aMonths.join("|") + "|[1-9]|1[0-2])";
2457
+ }
2458
+ return this._sMonthRegExp;
2459
+ }
2153
2460
 
2154
2461
  let bCreatingMonthValueHelp = false;
2155
2462