@openui5/sap.ui.integration 1.117.1 → 1.118.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 (146) hide show
  1. package/package.json +6 -6
  2. package/src/sap/ui/integration/.library +1 -1
  3. package/src/sap/ui/integration/ActionDefinition.js +1 -1
  4. package/src/sap/ui/integration/Designtime.js +1 -1
  5. package/src/sap/ui/integration/Extension.js +1 -1
  6. package/src/sap/ui/integration/Host.js +32 -33
  7. package/src/sap/ui/integration/cards/AdaptiveContent.js +1 -1
  8. package/src/sap/ui/integration/cards/AnalyticalContent.js +13 -9
  9. package/src/sap/ui/integration/cards/AnalyticsCloudContent.js +1 -1
  10. package/src/sap/ui/integration/cards/BaseContent.js +1 -1
  11. package/src/sap/ui/integration/cards/BaseListContent.js +10 -7
  12. package/src/sap/ui/integration/cards/CalendarContent.js +1 -1
  13. package/src/sap/ui/integration/cards/ComponentContent.js +1 -1
  14. package/src/sap/ui/integration/cards/Footer.js +1 -1
  15. package/src/sap/ui/integration/cards/Header.js +18 -1
  16. package/src/sap/ui/integration/cards/ListContent.js +8 -1
  17. package/src/sap/ui/integration/cards/NumericHeader.js +52 -4
  18. package/src/sap/ui/integration/cards/ObjectContent.js +5 -1
  19. package/src/sap/ui/integration/cards/TableContent.js +9 -2
  20. package/src/sap/ui/integration/cards/TimelineContent.js +8 -1
  21. package/src/sap/ui/integration/cards/WebPageContent.js +1 -1
  22. package/src/sap/ui/integration/cards/actions/CardActions.js +1 -1
  23. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputChoiceSet.js +1 -1
  24. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputDate.js +1 -1
  25. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputNumber.js +1 -1
  26. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputText.js +1 -1
  27. package/src/sap/ui/integration/cards/adaptivecards/elements/UI5InputToggle.js +1 -1
  28. package/src/sap/ui/integration/cards/filters/BaseFilter.js +1 -1
  29. package/src/sap/ui/integration/cards/filters/DateRangeFilter.js +1 -1
  30. package/src/sap/ui/integration/cards/filters/FilterBar.js +1 -1
  31. package/src/sap/ui/integration/cards/filters/FilterBarFactory.js +1 -1
  32. package/src/sap/ui/integration/cards/filters/SearchFilter.js +1 -1
  33. package/src/sap/ui/integration/cards/filters/SelectFilter.js +1 -1
  34. package/src/sap/ui/integration/cards/list/MicrochartsResizeHelper.js +1 -1
  35. package/src/sap/ui/integration/controls/ActionsStrip.js +1 -1
  36. package/src/sap/ui/integration/controls/ActionsToolbar.js +1 -1
  37. package/src/sap/ui/integration/controls/BlockingMessage.js +1 -1
  38. package/src/sap/ui/integration/controls/LinkWithIcon.js +1 -1
  39. package/src/sap/ui/integration/controls/ListContentItem.js +5 -2
  40. package/src/sap/ui/integration/controls/Microchart.js +1 -1
  41. package/src/sap/ui/integration/controls/MicrochartLegend.js +1 -1
  42. package/src/sap/ui/integration/controls/ObjectStatus.js +1 -1
  43. package/src/sap/ui/integration/controls/Paginator.js +1 -1
  44. package/src/sap/ui/integration/designtime/baseEditor/BaseEditor.js +1 -1
  45. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditor.js +1 -1
  46. package/src/sap/ui/integration/designtime/baseEditor/PropertyEditors.js +1 -1
  47. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/BasePropertyEditor.js +1 -1
  48. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/PropertyEditorFactory.js +1 -1
  49. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/arrayEditor/ArrayEditor.js +1 -1
  50. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/booleanEditor/BooleanEditor.js +1 -1
  51. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/codeEditor/CodeEditor.js +1 -1
  52. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateEditor/DateEditor.js +1 -1
  53. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/dateTimeEditor/DateTimeEditor.js +1 -1
  54. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/enumStringEditor/EnumStringEditor.js +1 -1
  55. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/groupEditor/GroupEditor.js +1 -1
  56. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  57. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/iconEditor/IsInIconPool.validator.js +1 -1
  58. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/integerEditor/IntegerEditor.js +1 -1
  59. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/jsonEditor/JsonEditor.js +1 -1
  60. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/listEditor/ListEditor.js +1 -1
  61. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/mapEditor/MapEditor.js +1 -1
  62. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/multiSelectEditor/MultiSelectEditor.js +1 -1
  63. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/numberEditor/NumberEditor.js +1 -1
  64. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/objectArrayEditor/ObjectArrayEditor.js +1 -1
  65. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/selectEditor/SelectEditor.js +1 -1
  66. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/separatorEditor/SeparatorEditor.js +1 -1
  67. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/stringEditor/StringEditor.js +1 -1
  68. package/src/sap/ui/integration/designtime/baseEditor/propertyEditor/textAreaEditor/TextAreaEditor.js +1 -1
  69. package/src/sap/ui/integration/designtime/baseEditor/util/binding/ObjectBinding.js +1 -1
  70. package/src/sap/ui/integration/designtime/baseEditor/util/unset.js +1 -1
  71. package/src/sap/ui/integration/designtime/baseEditor/validator/IsBoolean.js +1 -1
  72. package/src/sap/ui/integration/designtime/baseEditor/validator/IsDate.js +1 -1
  73. package/src/sap/ui/integration/designtime/baseEditor/validator/IsInteger.js +1 -1
  74. package/src/sap/ui/integration/designtime/baseEditor/validator/IsNumber.js +1 -1
  75. package/src/sap/ui/integration/designtime/baseEditor/validator/IsSelectedKey.js +1 -1
  76. package/src/sap/ui/integration/designtime/baseEditor/validator/IsStringList.js +1 -1
  77. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueKey.js +1 -1
  78. package/src/sap/ui/integration/designtime/baseEditor/validator/IsUniqueList.js +1 -1
  79. package/src/sap/ui/integration/designtime/baseEditor/validator/IsValidBinding.js +1 -1
  80. package/src/sap/ui/integration/designtime/baseEditor/validator/MaxLength.js +1 -1
  81. package/src/sap/ui/integration/designtime/baseEditor/validator/NotABinding.js +1 -1
  82. package/src/sap/ui/integration/designtime/baseEditor/validator/ValidatorRegistry.js +1 -1
  83. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/complexMapEditor/ComplexMapEditor.js +1 -1
  84. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/destinationsEditor/DestinationsEditor.js +1 -1
  85. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/filtersEditor/FiltersEditor.js +1 -1
  86. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/iconEditor/IconEditor.js +1 -1
  87. package/src/sap/ui/integration/designtime/cardEditor/propertyEditor/parametersEditor/ParametersEditor.js +1 -1
  88. package/src/sap/ui/integration/designtime/editor/Card.js +1 -1
  89. package/src/sap/ui/integration/designtime/editor/CardEditor.js +1 -1
  90. package/src/sap/ui/integration/designtime/editor/CardPreview.js +1 -2
  91. package/src/sap/ui/integration/editor/Editor.js +77 -56
  92. package/src/sap/ui/integration/editor/EditorResourceBundles.js +1 -1
  93. package/src/sap/ui/integration/editor/Extension.js +1 -1
  94. package/src/sap/ui/integration/editor/Manifest.js +1 -1
  95. package/src/sap/ui/integration/editor/Settings.js +339 -75
  96. package/src/sap/ui/integration/editor/css/Editor.css +1 -0
  97. package/src/sap/ui/integration/editor/fields/BaseField.js +17 -3
  98. package/src/sap/ui/integration/editor/fields/BooleanField.js +1 -1
  99. package/src/sap/ui/integration/editor/fields/DateField.js +1 -1
  100. package/src/sap/ui/integration/editor/fields/DateTimeField.js +1 -1
  101. package/src/sap/ui/integration/editor/fields/DestinationField.js +1 -1
  102. package/src/sap/ui/integration/editor/fields/GroupField.js +1 -1
  103. package/src/sap/ui/integration/editor/fields/IntegerField.js +1 -1
  104. package/src/sap/ui/integration/editor/fields/NumberField.js +1 -1
  105. package/src/sap/ui/integration/editor/fields/ObjectField.js +142 -40
  106. package/src/sap/ui/integration/editor/fields/ObjectListField.js +14 -10
  107. package/src/sap/ui/integration/editor/fields/StringField.js +27 -25
  108. package/src/sap/ui/integration/editor/fields/StringListField.js +1 -1
  109. package/src/sap/ui/integration/editor/fields/fragment/Controller.js +1 -1
  110. package/src/sap/ui/integration/editor/fields/viz/ColorSelect.js +1 -1
  111. package/src/sap/ui/integration/editor/fields/viz/IconSelect.js +1 -1
  112. package/src/sap/ui/integration/editor/fields/viz/ShapeSelect.js +1 -1
  113. package/src/sap/ui/integration/editor/fields/viz/VizBase.js +1 -1
  114. package/src/sap/ui/integration/library.js +29 -2
  115. package/src/sap/ui/integration/messagebundle.properties +9 -0
  116. package/src/sap/ui/integration/model/ContextModel.js +1 -1
  117. package/src/sap/ui/integration/model/ObservableModel.js +1 -1
  118. package/src/sap/ui/integration/model/PagingModelListBinding.js +1 -1
  119. package/src/sap/ui/integration/themes/base/Card.less +45 -1
  120. package/src/sap/ui/integration/util/BaseFactory.js +1 -1
  121. package/src/sap/ui/integration/util/BindingHelper.js +1 -1
  122. package/src/sap/ui/integration/util/BindingResolver.js +1 -1
  123. package/src/sap/ui/integration/util/CacheAndRequestDataProvider.js +25 -10
  124. package/src/sap/ui/integration/util/CardObserver.js +1 -1
  125. package/src/sap/ui/integration/util/ContentFactory.js +1 -1
  126. package/src/sap/ui/integration/util/CsrfTokenHandler.js +1 -1
  127. package/src/sap/ui/integration/util/DataProvider.js +1 -1
  128. package/src/sap/ui/integration/util/DataProviderFactory.js +1 -1
  129. package/src/sap/ui/integration/util/Destinations.js +1 -1
  130. package/src/sap/ui/integration/util/ErrorHandler.js +1 -1
  131. package/src/sap/ui/integration/util/ExtensionDataProvider.js +1 -1
  132. package/src/sap/ui/integration/util/Form.js +1 -1
  133. package/src/sap/ui/integration/util/HeaderFactory.js +8 -2
  134. package/src/sap/ui/integration/util/JSONBindingHelper.js +1 -1
  135. package/src/sap/ui/integration/util/LoadingProvider.js +1 -1
  136. package/src/sap/ui/integration/util/Manifest.js +1 -1
  137. package/src/sap/ui/integration/util/RequestDataProvider.js +31 -13
  138. package/src/sap/ui/integration/util/ServiceDataProvider.js +1 -1
  139. package/src/sap/ui/integration/util/ServiceManager.js +1 -1
  140. package/src/sap/ui/integration/util/SkeletonCard.js +1 -1
  141. package/src/sap/ui/integration/util/Utils.js +1 -1
  142. package/src/sap/ui/integration/util/Validators.js +1 -1
  143. package/src/sap/ui/integration/util/loadCardEditor.js +1 -1
  144. package/src/sap/ui/integration/widgets/Card.js +26 -4
  145. package/src/sap/ui/integration/widgets/CardRenderer.js +2 -0
  146. package/src/sap-ui-integration.js +1 -1
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @alias sap.ui.integration.editor.fields.BooleanField
18
18
  * @author SAP SE
19
19
  * @since 1.83.0
20
- * @version 1.117.1
20
+ * @version 1.118.0
21
21
  * @private
22
22
  * @experimental since 1.83.0
23
23
  * @ui5-restricted
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * @alias sap.ui.integration.editor.fields.DateField
19
19
  * @author SAP SE
20
20
  * @since 1.83.0
21
- * @version 1.117.1
21
+ * @version 1.118.0
22
22
  * @private
23
23
  * @experimental since 1.83.0
24
24
  * @ui5-restricted
@@ -18,7 +18,7 @@ sap.ui.define([
18
18
  * @alias sap.ui.integration.editor.fields.DateTimeField
19
19
  * @author SAP SE
20
20
  * @since 1.83.0
21
- * @version 1.117.1
21
+ * @version 1.118.0
22
22
  * @private
23
23
  * @experimental since 1.83.0
24
24
  * @ui5-restricted
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @alias sap.ui.integration.editor.fields.DestinationField
20
20
  * @author SAP SE
21
21
  * @since 1.83.0
22
- * @version 1.117.1
22
+ * @version 1.118.0
23
23
  * @private
24
24
  * @experimental since 1.83.0
25
25
  * @ui5-restricted
@@ -26,7 +26,7 @@ sap.ui.define([
26
26
  * @alias sap.ui.integration.editor.fields.GroupField
27
27
  * @author SAP SE
28
28
  * @since 1.106.0
29
- * @version 1.117.1
29
+ * @version 1.118.0
30
30
  * @private
31
31
  * @experimental since 1.106.0
32
32
  * @ui5-restricted
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @alias sap.ui.integration.editor.fields.IntegerField
18
18
  * @author SAP SE
19
19
  * @since 1.83.0
20
- * @version 1.117.1
20
+ * @version 1.118.0
21
21
  * @private
22
22
  * @experimental since 1.83.0
23
23
  * @ui5-restricted
@@ -17,7 +17,7 @@ sap.ui.define([
17
17
  * @alias sap.ui.integration.editor.fields.NumberField
18
18
  * @author SAP SE
19
19
  * @since 1.83.0
20
- * @version 1.117.1
20
+ * @version 1.118.0
21
21
  * @private
22
22
  * @experimental since 1.83.0
23
23
  * @ui5-restricted
@@ -36,7 +36,10 @@ sap.ui.define([
36
36
  "sap/m/CustomListItem",
37
37
  "sap/ui/model/Sorter",
38
38
  "sap/ui/core/CustomData",
39
- "sap/ui/integration/util/Utils"
39
+ "sap/ui/integration/util/Utils",
40
+ "sap/m/table/columnmenu/Menu",
41
+ "sap/m/ComboBox",
42
+ "sap/ui/core/ListItem"
40
43
  ], function (
41
44
  BaseField,
42
45
  Text,
@@ -69,7 +72,10 @@ sap.ui.define([
69
72
  CustomListItem,
70
73
  Sorter,
71
74
  CustomData,
72
- Utils
75
+ Utils,
76
+ Menu,
77
+ ComboBox,
78
+ ListItem
73
79
  ) {
74
80
  "use strict";
75
81
  var REGEXP_TRANSLATABLE = /\{\{(?!parameters.)(?!destinations.)([^\}\}]+)\}\}/g;
@@ -80,7 +86,7 @@ sap.ui.define([
80
86
  * @alias sap.ui.integration.editor.fields.ObjectField
81
87
  * @author SAP SE
82
88
  * @since 1.100.0
83
- * @version 1.117.1
89
+ * @version 1.118.0
84
90
  * @private
85
91
  * @experimental since 1.100.0
86
92
  * @ui5-restricted
@@ -139,6 +145,15 @@ sap.ui.define([
139
145
  }));
140
146
  } else if (oControl instanceof Table) {
141
147
  oControl.addStyleClass("sapUiIntegrationEditorItemObjectFieldTable");
148
+ // create a column header menu
149
+ that._oMenu = new Menu();
150
+ var aColumns = oControl.getColumns();
151
+ for (var i = 0; i < aColumns.length; i++) {
152
+ // if column supports filter or sort, add menu as header menu for it
153
+ if (aColumns[i].getFilterProperty() || aColumns[i].getSortProperty()) {
154
+ aColumns[i].setHeaderMenu(that._oMenu.getId());
155
+ }
156
+ }
142
157
  }
143
158
  };
144
159
 
@@ -189,7 +204,7 @@ sap.ui.define([
189
204
  columns: columns,
190
205
  selectionBehavior: "RowOnly",
191
206
  rowSelectionChange: that.onTableSelectionChange.bind(that),
192
- toolbar: oTableToolbar,
207
+ extension: oTableToolbar,
193
208
  filter: that.onFilter.bind(that)
194
209
  }
195
210
  };
@@ -361,12 +376,16 @@ sap.ui.define([
361
376
  var aKeys = Object.keys(oConfig.properties);
362
377
  if (aKeys.length > 0) {
363
378
  var oResourceBundle = that.getResourceBundle();
379
+ var bSelectionColumnVisible = typeof oConfig.values === "undefined" ? false : true;
380
+ if (bSelectionColumnVisible) {
381
+ bSelectionColumnVisible = typeof oConfig.showSelectionColumn === "undefined" ? true : oConfig.showSelectionColumn;
382
+ }
364
383
  var oSelectionColumnLabels = that.buildSelectionColumnLabels();
365
384
  var oSelectionColumn = new Column(sParameterId + "_control_table_column_selection", {
366
385
  width: "3.2rem",
367
386
  hAlign: "Center",
368
387
  // hide selection column for object list field with properties defined only
369
- visible: typeof oConfig.values === "undefined" ? false : true,
388
+ visible: bSelectionColumnVisible,
370
389
  multiLabels: [
371
390
  oSelectionColumnLabels
372
391
  ],
@@ -420,6 +439,12 @@ sap.ui.define([
420
439
  var oCellSettings;
421
440
  var oCell = deepClone(oProperty.cell) || {};
422
441
  delete oCell.type;
442
+ if (sCellType === "string" && oCell.values) {
443
+ sCellType = "ComboBox";
444
+ }
445
+ if (sCellType === "Text" && oCell.editable) {
446
+ sCellType = "Input";
447
+ }
423
448
  switch (sCellType) {
424
449
  case "int":
425
450
  case "number":
@@ -507,6 +532,37 @@ sap.ui.define([
507
532
  oCellSettings = merge(oCellSettings, oCell);
508
533
  oCellTemplate = new Link(oCellSettings);
509
534
  break;
535
+ case "ComboBox":
536
+ oCellSettings = {
537
+ width: "100%",
538
+ selectedKey: sDefaultValue,
539
+ items: {
540
+ path: "settings>" + oCell.values.data.path,
541
+ template: new ListItem(oCell.values.item)
542
+ }
543
+ };
544
+ if (oCell.values.sorter) {
545
+ oCellSettings.items.sorter = [new Sorter({
546
+ path: oCell.values.sorter
547
+ })];
548
+ }
549
+ if (oCell.change) {
550
+ oCellSettings.change = oCell.change;
551
+ }
552
+ var oComboBoxSettingsModel = new JSONModel(oCell.values.data.json);
553
+ oCellTemplate = new ComboBox(oCellSettings);
554
+ oCellTemplate.setModel(oComboBoxSettingsModel,"settings");
555
+ break;
556
+ case "Input":
557
+ oCellSettings = {
558
+ value: sDefaultValue
559
+ };
560
+ if (oCell.text) {
561
+ oCellSettings.value = oCell.text;
562
+ }
563
+ oCellSettings.tooltip = oCell.tooltip || oCellSettings.text;
564
+ oCellTemplate = new Input(oCellSettings);
565
+ break;
510
566
  default:
511
567
  oCellTemplate = new Text({
512
568
  text: sDefaultValue,
@@ -556,6 +612,7 @@ sap.ui.define([
556
612
  icon: "sap-icon://edit",
557
613
  tooltip: oResourceBundle.getText("EDITOR_FIELD_OBJECT_TABLE_BUTTON_EDIT_TOOLTIP"),
558
614
  enabled: "{= !!${/_hasTableSelected}}",
615
+ visible: that.getAllowPopover(),
559
616
  press: that.onEditOrViewDetail.bind(that)
560
617
  }),
561
618
  new Button(sParameterId + "_control_table_delete_btn", {
@@ -626,7 +683,7 @@ sap.ui.define([
626
683
  var that = this;
627
684
  var oTable = that.getAggregation("_field");
628
685
 
629
- var iSelectIndex = oTable.getSelectedIndex();
686
+ var iSelectIndex = oTable.getSelectedIndices()[0];
630
687
  var oRowContexts = oTable.getBinding("rows").getContexts();
631
688
  var oItem = oRowContexts[iSelectIndex].getObject();
632
689
  var iFirstIndex = oTable.getFirstVisibleRow();
@@ -773,7 +830,7 @@ sap.ui.define([
773
830
  var that = this;
774
831
  var oTable = that.getAggregation("_field");
775
832
  var oModel = oTable.getModel();
776
- var iSelectedRowIndex = oTable.getSelectedIndex();
833
+ var iSelectedRowIndex = oTable.getSelectedIndices()[0];
777
834
  var oSelectedRowContext = oTable.getContextByIndex(iSelectedRowIndex);
778
835
 
779
836
  var iSiblingRowIndex = iSelectedRowIndex + (sDirection === "Up" ? -1 : 1);
@@ -824,7 +881,11 @@ sap.ui.define([
824
881
  var that = this;
825
882
  var oControl = oEvent.getSource();
826
883
  that._newObjectTemplate._dt._uuid = Utils.generateUuidV4();
827
- that.openObjectDetailsPopover(that._newObjectTemplate, oControl, "add");
884
+ if (that.getAllowPopover()) {
885
+ that.openObjectDetailsPopover(that._newObjectTemplate, oControl, "add");
886
+ } else {
887
+ that.onAddDirectly(that._newObjectTemplate);
888
+ }
828
889
  };
829
890
 
830
891
  ObjectField.prototype.mergeValueWithRequestResult = function (tResult) {
@@ -1546,23 +1607,23 @@ sap.ui.define([
1546
1607
  var oResourceBundle = that.getResourceBundle();
1547
1608
  var oTranslatonsModel = new JSONModel(oTranslatedValues);
1548
1609
  oTranslatonsModel.attachPropertyChange(function(oEvent) {
1549
- //update the status of each translation for grouping
1550
- //update the isUpdated property
1551
- var oData = oTranslatonsModel.getData();
1552
- var sUpdatedStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_UPDATED");
1553
- var sNotUpdatedStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_NOTUPDATED");
1610
+ var oContext = oEvent.getParameter("context");
1611
+ var oLanguageChanged = oTranslatonsModel.getProperty(oContext.getPath());
1612
+ var sStatusStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_NOTUPDATED");
1613
+ if (oLanguageChanged.value !== oLanguageChanged.originValue) {
1614
+ sStatusStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_UPDATED");
1615
+ }
1554
1616
  var bIsUpdated = false;
1555
- oData.translatedLanguages.forEach(function(oLanguage) {
1617
+ var oData = oTranslatonsModel.getData();
1618
+ for (var i = 0; i < oData.translatedLanguages.length; i++) {
1619
+ var oLanguage = oData.translatedLanguages[i];
1556
1620
  if (oLanguage.value !== oLanguage.originValue) {
1557
- oLanguage.status = sUpdatedStr;
1558
1621
  bIsUpdated = true;
1559
- } else {
1560
- oLanguage.status = sNotUpdatedStr;
1622
+ break;
1561
1623
  }
1562
- });
1563
- oData.isUpdated = bIsUpdated;
1564
- oTranslatonsModel.setData(oData);
1565
- oTranslatonsModel.checkUpdate(true);
1624
+ }
1625
+ oTranslatonsModel.setProperty(oContext.getPath("status"), sStatusStr, null, /*async:*/true);
1626
+ oTranslatonsModel.setProperty("/isUpdated", bIsUpdated, null, /*async:*/true);
1566
1627
  });
1567
1628
  return oTranslatonsModel;
1568
1629
  };
@@ -1572,8 +1633,11 @@ sap.ui.define([
1572
1633
  var sParameterId = that.getParameterId();
1573
1634
  var sIdPrefix = bIsInTranslationPopover ? sParameterId + "_control_translation_popover" : sParameterId + "_control_objectdetails_popover_translation_page";
1574
1635
  return new List(sIdPrefix + "_value_list", {
1636
+ growing: true, // required to enable Extended Change Detection (ECD)
1637
+ growingThreshold: 60,
1575
1638
  items: {
1576
1639
  path: "languages>/translatedLanguages",
1640
+ key: "key", // ECD
1577
1641
  template: new CustomListItem({
1578
1642
  content: [
1579
1643
  new VBox({
@@ -1778,6 +1842,26 @@ sap.ui.define([
1778
1842
  that._oObjectDetailsPopover.close();
1779
1843
  };
1780
1844
 
1845
+ ObjectField.prototype.onAddDirectly = function(oItem) {
1846
+ var that = this;
1847
+ var oNewObject = deepClone(oItem, 500);
1848
+ var oControl = that.getAggregation("_field");
1849
+ var oModel = oControl.getModel();
1850
+ var sPath = oControl.getBinding("rows").getPath();
1851
+ var oData = oModel.getProperty(sPath);
1852
+ var iPositionCount = 1;
1853
+ oData.unshift(oNewObject);
1854
+ oData.forEach(function (oItem) {
1855
+ oItem._dt = oItem._dt || {};
1856
+ oItem._dt._selected = false;
1857
+ oItem._dt._position = iPositionCount;
1858
+ iPositionCount++;
1859
+ });
1860
+ oModel.checkUpdate();
1861
+ that.refreshValue();
1862
+ that.updateTable();
1863
+ };
1864
+
1781
1865
  ObjectField.prototype.onUpdate = function (oEvent) {
1782
1866
  var that = this;
1783
1867
  var oTable = that.getAggregation("_field");
@@ -1821,30 +1905,48 @@ sap.ui.define([
1821
1905
  MessageBox.error(oResourceBundle.getText("EDITOR_FIELD_OBJECT_DELETE_ERROR_MSG"));
1822
1906
  return;
1823
1907
  }
1824
- MessageBox.confirm(oResourceBundle.getText("EDITOR_FIELD_OBJECT_DELETE_CONFIRM_MSG"), {
1825
- title: oResourceBundle.getText("EDITOR_FIELD_OBJECT_DELETE_CONFIRM_TITLE"),
1826
- onClose: function(sAction) {
1827
- if (sAction === MessageBox.Action.OK) {
1828
- var sPath = oTable.getBindingContext().getPath();
1829
- var oModel = oTable.getModel();
1830
- var oData = oModel.getProperty(sPath);
1831
- var oNewData = [];
1832
- for (var i = 0; i < oData.length; i++) {
1833
- if (aSelectedIndexs.includes(i + "")) {
1834
- that.deleteTranslationValueInTexts(undefined, oData[i]._dt._uuid);
1835
- } else {
1836
- oNewData.push(oData[i]);
1908
+ if (that.getAllowPopover()) {
1909
+ MessageBox.confirm(oResourceBundle.getText("EDITOR_FIELD_OBJECT_DELETE_CONFIRM_MSG"), {
1910
+ title: oResourceBundle.getText("EDITOR_FIELD_OBJECT_DELETE_CONFIRM_TITLE"),
1911
+ onClose: function(sAction) {
1912
+ if (sAction === MessageBox.Action.OK) {
1913
+ var sPath = oTable.getBindingContext().getPath();
1914
+ var oModel = oTable.getModel();
1915
+ var oData = oModel.getProperty(sPath);
1916
+ var oNewData = [];
1917
+ for (var i = 0; i < oData.length; i++) {
1918
+ if (aSelectedIndexs.includes(i + "")) {
1919
+ that.deleteTranslationValueInTexts(undefined, oData[i]._dt._uuid);
1920
+ } else {
1921
+ oNewData.push(oData[i]);
1922
+ }
1837
1923
  }
1924
+ oModel.setProperty(sPath, oNewData);
1925
+ oModel.checkUpdate(true);
1926
+ that.refreshValue();
1927
+ that.updateTable();
1928
+ } else {
1929
+ MessageToast.show(oResourceBundle.getText("EDITOR_FIELD_OBJECT_DELETE_CONFIRM_CANCLE"));
1838
1930
  }
1839
- oModel.setProperty(sPath, oNewData);
1840
- oModel.checkUpdate(true);
1841
- that.refreshValue();
1842
- that.updateTable();
1931
+ }
1932
+ });
1933
+ } else {
1934
+ var sPath = oTable.getBinding("rows").getPath();
1935
+ var oModel = oTable.getModel();
1936
+ var oData = oModel.getProperty(sPath);
1937
+ var oNewData = [];
1938
+ for (var i = 0; i < oData.length; i++) {
1939
+ if (aSelectedIndexs.includes(i + "")) {
1940
+ that.deleteTranslationValueInTexts(undefined, oData[i]._dt._uuid);
1843
1941
  } else {
1844
- MessageToast.show(oResourceBundle.getText("EDITOR_FIELD_OBJECT_DELETE_CONFIRM_CANCLE"));
1942
+ oNewData.push(oData[i]);
1845
1943
  }
1846
1944
  }
1847
- });
1945
+ oModel.setProperty(sPath, oNewData);
1946
+ oModel.checkUpdate(true);
1947
+ that.refreshValue();
1948
+ that.updateTable();
1949
+ }
1848
1950
  };
1849
1951
 
1850
1952
  ObjectField.prototype.refreshValue = function () {
@@ -11,7 +11,8 @@ sap.ui.define([
11
11
  "sap/m/CheckBox",
12
12
  "sap/base/util/deepEqual",
13
13
  "sap/base/util/deepClone",
14
- "sap/ui/integration/util/Utils"
14
+ "sap/ui/integration/util/Utils",
15
+ "sap/m/table/columnmenu/Menu"
15
16
  ], function (
16
17
  ObjectField,
17
18
  JSONModel,
@@ -19,7 +20,8 @@ sap.ui.define([
19
20
  CheckBox,
20
21
  deepEqual,
21
22
  deepClone,
22
- Utils
23
+ Utils,
24
+ Menu
23
25
  ) {
24
26
  "use strict";
25
27
 
@@ -29,7 +31,7 @@ sap.ui.define([
29
31
  * @alias sap.ui.integration.editor.fields.ObjectListField
30
32
  * @author SAP SE
31
33
  * @since 1.100.0
32
- * @version 1.117.1
34
+ * @version 1.118.0
33
35
  * @private
34
36
  * @experimental since 1.100.0
35
37
  * @ui5-restricted
@@ -71,6 +73,15 @@ sap.ui.define([
71
73
  var oControl = that.getAggregation("_field");
72
74
  if (oControl instanceof Table) {
73
75
  oControl.addStyleClass("sapUiIntegrationEditorItemObjectListFieldTable");
76
+ // create a column header menu
77
+ that._oMenu = new Menu();
78
+ var aColumns = oControl.getColumns();
79
+ for (var i = 0; i < aColumns.length; i++) {
80
+ // if column supports filter or sort, add menu as header menu for it
81
+ if (aColumns[i].getFilterProperty() || aColumns[i].getSortProperty()) {
82
+ aColumns[i].setHeaderMenu(that._oMenu.getId());
83
+ }
84
+ }
74
85
  var oConfig = that.getConfiguration();
75
86
  // select all the results come from config.value
76
87
  if (!oConfig.values){
@@ -140,13 +151,6 @@ sap.ui.define([
140
151
  });
141
152
  };
142
153
 
143
- ObjectListField.prototype.addNewObject = function (oEvent) {
144
- var that = this;
145
- var oControl = oEvent.getSource();
146
- that._newObjectTemplate._dt._uuid = Utils.generateUuidV4();
147
- that.openObjectDetailsPopover(that._newObjectTemplate, oControl, "add");
148
- };
149
-
150
154
  ObjectListField.prototype.onSelectionColumnClick = function(oEvent) {
151
155
  var that = this;
152
156
  var bIsSelected = oEvent.getParameter("selected");
@@ -65,7 +65,7 @@ sap.ui.define([
65
65
  * @alias sap.ui.integration.editor.fields.StringField
66
66
  * @author SAP SE
67
67
  * @since 1.83.0
68
- * @version 1.117.1
68
+ * @version 1.118.0
69
69
  * @private
70
70
  * @experimental since 1.83.0
71
71
  * @ui5-restricted
@@ -464,12 +464,12 @@ sap.ui.define([
464
464
  }
465
465
  });
466
466
 
467
- var aTranslatedValues = {
467
+ var oTranslatedValues = {
468
468
  "currentLanguage": {},
469
469
  "isUpdated": false,
470
470
  "translatedLanguages": []
471
471
  };
472
- var oModel;
472
+ var oTranslatonsModel;
473
473
  if (aTempTranslatedLanguages) {
474
474
  //check the updated language list, update the data model
475
475
  aTempTranslatedLanguages.forEach(function (translatedValue) {
@@ -479,18 +479,20 @@ sap.ui.define([
479
479
  }
480
480
  if (translatedValue.key === oResourceBundle.sLocale.replaceAll('_', '-')) {
481
481
  translatedValue.value = oControl.getValue();
482
- aTranslatedValues.currentLanguage = translatedValue;
482
+ oTranslatedValues.currentLanguage = translatedValue;
483
483
  } else {
484
- aTranslatedValues.translatedLanguages.push(translatedValue);
484
+ oTranslatedValues.translatedLanguages.push(translatedValue);
485
485
  }
486
486
  });
487
487
  }
488
488
  var sPlacement = oField.getPopoverPlacement(oControl._oValueHelpIcon);
489
489
  if (!that._oTranslationPopover) {
490
490
  var oList = new List(sParameterId + "_translation_popover_value_list", {
491
- //mode: "Delete",
491
+ growing: true, // required to enable Extended Change Detection (ECD)
492
+ growingThreshold: 60,
492
493
  items: {
493
494
  path: "languages>/translatedLanguages",
495
+ key: "key", // ECD
494
496
  template: new CustomListItem({
495
497
  content: [
496
498
  new VBox({
@@ -585,32 +587,32 @@ sap.ui.define([
585
587
  ]
586
588
  })
587
589
  }).addStyleClass("sapUiIntegrationFieldTranslation");
588
- oModel = new JSONModel(aTranslatedValues);
589
- oModel.attachPropertyChange(function(oEvent) {
590
- //update the status of each translation for grouping
591
- //update the isUpdated property
592
- var oData = oModel.getData();
593
- var sUpdatedStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_UPDATED");
594
- var sNotUpdatedStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_NOTUPDATED");
590
+ oTranslatonsModel = new JSONModel(oTranslatedValues);
591
+ oTranslatonsModel.attachPropertyChange(function(oEvent) {
592
+ var oContext = oEvent.getParameter("context");
593
+ var oLanguageChanged = oTranslatonsModel.getProperty(oContext.getPath());
594
+ var sStatusStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_NOTUPDATED");
595
+ if (oLanguageChanged.value !== oLanguageChanged.originValue) {
596
+ sStatusStr = oResourceBundle.getText("EDITOR_FIELD_TRANSLATION_LIST_POPOVER_LISTITEM_GROUP_UPDATED");
597
+ }
595
598
  var bIsUpdated = false;
596
- oData.translatedLanguages.forEach(function(oLanguage) {
599
+ var oData = oTranslatonsModel.getData();
600
+ for (var i = 0; i < oData.translatedLanguages.length; i++) {
601
+ var oLanguage = oData.translatedLanguages[i];
597
602
  if (oLanguage.value !== oLanguage.originValue) {
598
- oLanguage.status = sUpdatedStr;
599
603
  bIsUpdated = true;
600
- } else {
601
- oLanguage.status = sNotUpdatedStr;
604
+ break;
602
605
  }
603
- });
604
- oData.isUpdated = bIsUpdated;
605
- oModel.setData(oData);
606
- oModel.checkUpdate(true);
606
+ }
607
+ oTranslatonsModel.setProperty(oContext.getPath("status"), sStatusStr, null, /*async:*/true);
608
+ oTranslatonsModel.setProperty("/isUpdated", bIsUpdated, null, /*async:*/true);
607
609
  });
608
- that._oTranslationPopover.setModel(oModel, "languages");
610
+ that._oTranslationPopover.setModel(oTranslatonsModel, "languages");
609
611
  } else {
610
612
  that._oTranslationPopover.setPlacement(sPlacement);
611
- oModel = that._oTranslationPopover.getModel("languages");
612
- oModel.setData(aTranslatedValues);
613
- oModel.checkUpdate(true);
613
+ oTranslatonsModel = that._oTranslationPopover.getModel("languages");
614
+ oTranslatonsModel.setData(oTranslatedValues);
615
+ oTranslatonsModel.checkUpdate(true);
614
616
  }
615
617
  that._oTranslationPopover.openBy(oControl._oValueHelpIcon);
616
618
  };
@@ -44,7 +44,7 @@ sap.ui.define([
44
44
  * @alias sap.ui.integration.editor.fields.StringListField
45
45
  * @author SAP SE
46
46
  * @since 1.83.0
47
- * @version 1.117.1
47
+ * @version 1.118.0
48
48
  * @private
49
49
  * @experimental since 1.83.0
50
50
  * @ui5-restricted
@@ -15,7 +15,7 @@ sap.ui.define([
15
15
  * @alias sap.ui.integration.editor.fields.fragment.Controller
16
16
  * @author SAP SE
17
17
  * @since 1.105.0
18
- * @version 1.117.1
18
+ * @version 1.118.0
19
19
  * @private
20
20
  * @experimental since 1.105.0
21
21
  * @ui5-restricted
@@ -21,7 +21,7 @@ sap.ui.define([
21
21
  * @alias sap.ui.integration.editor.fields.viz.ColorSelect
22
22
  * @author SAP SE
23
23
  * @since 1.84.0
24
- * @version 1.117.1
24
+ * @version 1.118.0
25
25
  * @private
26
26
  * @experimental since 1.84.0
27
27
  * @ui5-restricted
@@ -27,7 +27,7 @@ sap.ui.define([
27
27
  * @alias sap.ui.integration.editor.fields.viz.IconSelect
28
28
  * @author SAP SE
29
29
  * @since 1.84.0
30
- * @version 1.117.1
30
+ * @version 1.118.0
31
31
  * @private
32
32
  * @experimental since 1.84.0
33
33
  * @ui5-restricted
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @alias sap.ui.integration.editor.fields.viz.ShapeSelect
20
20
  * @author SAP SE
21
21
  * @since 1.84.0
22
- * @version 1.117.1
22
+ * @version 1.118.0
23
23
  * @private
24
24
  * @experimental since 1.84.0
25
25
  * @ui5-restricted
@@ -19,7 +19,7 @@ sap.ui.define([
19
19
  * @alias sap.ui.integration.editor.fields.viz.VizBase
20
20
  * @author SAP SE
21
21
  * @since 1.105.0
22
- * @version 1.117.1
22
+ * @version 1.118.0
23
23
  * @private
24
24
  * @experimental since 1.105.0
25
25
  * @ui5-restricted
@@ -25,13 +25,13 @@ sap.ui.define([
25
25
  * @namespace
26
26
  * @alias sap.ui.integration
27
27
  * @author SAP SE
28
- * @version 1.117.1
28
+ * @version 1.118.0
29
29
  * @since 1.62
30
30
  * @public
31
31
  */
32
32
  var thisLib = oCore.initLibrary({
33
33
  name: "sap.ui.integration",
34
- version: "1.117.1",
34
+ version: "1.118.0",
35
35
  dependencies: [
36
36
  "sap.ui.core",
37
37
  "sap.f",
@@ -44,6 +44,7 @@ sap.ui.define([
44
44
  "sap.ui.integration.CardDataMode",
45
45
  "sap.ui.integration.CardMenuAction",
46
46
  "sap.ui.integration.CardDesign",
47
+ "sap.ui.integration.CardDisplayVariant",
47
48
  "sap.ui.integration.CardBlockingMessageType"
48
49
  ],
49
50
  controls: [
@@ -169,6 +170,32 @@ sap.ui.define([
169
170
  Transparent: "Transparent"
170
171
  };
171
172
 
173
+ /**
174
+ * Possible variants for <code>{@link sap.ui.integration.widgets.Card}</code> rendering and behavior.
175
+ *
176
+ * @enum {string}
177
+ * @public
178
+ * @experimental Since 1.118. For usage only by Work Zone.
179
+ * @since 1.118
180
+ */
181
+ thisLib.CardDisplayVariant = {
182
+ /**
183
+ * The standard card variant.
184
+ * @public
185
+ */
186
+ Standard: "Standard",
187
+ /**
188
+ * Card renders and behaves like a tile of size 2x2.
189
+ * @public
190
+ */
191
+ TileStandard: "TileStandard",
192
+ /**
193
+ * Card renders and behaves like a tile of size 4x2.
194
+ * @public
195
+ */
196
+ TileStandardWide: "TileStandardWide"
197
+ };
198
+
172
199
  /**
173
200
  * Specifies different areas of a card where actions can be attached.
174
201
  *
@@ -316,6 +316,15 @@ EDITOR_MORE_SETTINGS_P_ADMIN_SELECT_ALL=Select all
316
316
  #XTIT: Tooltips for deselect all button
317
317
  EDITOR_MORE_SETTINGS_P_ADMIN_DESELECT_ALL=Deselect all
318
318
 
319
+ #XBUT: Activates the Transform Pane
320
+ EDITOR_MORE_TRANSFORM=Transform to a variant for Page Admin
321
+
322
+ #XTIT: Lable for Page Admin Destination
323
+ EDITOR_MORE_TRANSFORM_P_ADMIN_LABEL=Destination Label
324
+
325
+ #XTIT: Lable for Page Admin Destination Mappings
326
+ EDITOR_MORE_TRANSFORM_P_ADMIN_MAPPINGS=Destination Mappings
327
+
319
328
  #XBUT: Saves the values and closes the dialog
320
329
  EDITOR_MORE_OK=OK
321
330