@sapui5/sap.fe.macros 1.139.0 → 1.141.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.
- package/package.json +1 -1
- package/src/sap/fe/macros/.library +1 -1
- package/src/sap/fe/macros/Chart.js +53 -2
- package/src/sap/fe/macros/Chart.tsx +55 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.js +230 -0
- package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +218 -0
- package/src/sap/fe/macros/CommonHelper.js +59 -15
- package/src/sap/fe/macros/CommonHelper.ts +65 -14
- package/src/sap/fe/macros/ConditionalSwitch.js +174 -0
- package/src/sap/fe/macros/ConditionalSwitch.tsx +141 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.js +78 -0
- package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +62 -0
- package/src/sap/fe/macros/Field.js +78 -64
- package/src/sap/fe/macros/Field.ts +97 -68
- package/src/sap/fe/macros/FooterContent.js +5 -2
- package/src/sap/fe/macros/FooterContent.tsx +4 -1
- package/src/sap/fe/macros/MacroAPI.js +9 -4
- package/src/sap/fe/macros/MacroAPI.ts +9 -4
- package/src/sap/fe/macros/MessageButton.js +1 -2
- package/src/sap/fe/macros/MessageButton.tsx +0 -1
- package/src/sap/fe/macros/MultiValueField.js +10 -7
- package/src/sap/fe/macros/MultiValueField.tsx +7 -3
- package/src/sap/fe/macros/Page.js +5 -7
- package/src/sap/fe/macros/Page.tsx +4 -6
- package/src/sap/fe/macros/Paginator.js +9 -4
- package/src/sap/fe/macros/Paginator.tsx +12 -3
- package/src/sap/fe/macros/RichTextEditor.js +3 -2
- package/src/sap/fe/macros/RichTextEditor.tsx +2 -1
- package/src/sap/fe/macros/Share.js +14 -2
- package/src/sap/fe/macros/Share.tsx +13 -0
- package/src/sap/fe/macros/Status.js +251 -0
- package/src/sap/fe/macros/Status.tsx +212 -0
- package/src/sap/fe/macros/ValueHelp.js +4 -28
- package/src/sap/fe/macros/ValueHelp.tsx +2 -42
- package/src/sap/fe/macros/ai/EasyFillDialog.js +11 -17
- package/src/sap/fe/macros/ai/EasyFillDialog.tsx +11 -16
- package/src/sap/fe/macros/ai/EasyFilterBar.js +246 -97
- package/src/sap/fe/macros/ai/EasyFilterBar.tsx +302 -106
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +76 -33
- package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +89 -40
- package/src/sap/fe/macros/ai/SummarizationButton.js +2 -2
- package/src/sap/fe/macros/ai/SummarizationButton.tsx +1 -1
- package/src/sap/fe/macros/chart/Chart.js +2 -2
- package/src/sap/fe/macros/chart/Chart.tsx +1 -1
- package/src/sap/fe/macros/chart/ChartHelper.js +1 -2
- package/src/sap/fe/macros/chart/ChartHelper.ts +0 -1
- package/src/sap/fe/macros/chart/ChartRuntime.js +1 -2
- package/src/sap/fe/macros/chart/ChartRuntime.ts +0 -1
- package/src/sap/fe/macros/chart/MdcChartTemplate.js +5 -5
- package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +5 -5
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.js +9 -2
- package/src/sap/fe/macros/contentSwitcher/ContentSwitcher.tsx +8 -0
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +5 -1
- package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +4 -0
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.js +4 -2
- package/src/sap/fe/macros/controls/BuildingBlockWithTemplating.ts +3 -1
- package/src/sap/fe/macros/controls/FilterBar.js +14 -5
- package/src/sap/fe/macros/controls/FilterBar.ts +3 -0
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +2 -2
- package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -2
- package/src/sap/fe/macros/controls/RadioButtons.js +61 -38
- package/src/sap/fe/macros/controls/RadioButtons.tsx +39 -18
- package/src/sap/fe/macros/controls/Section.js +4 -3
- package/src/sap/fe/macros/controls/Section.ts +3 -2
- package/src/sap/fe/macros/controls/section/SubSection.js +63 -8
- package/src/sap/fe/macros/controls/section/SubSection.ts +67 -1
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +43 -4
- package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.js +28 -1
- package/src/sap/fe/macros/designtime/Designtime.helper.ts +27 -0
- package/src/sap/fe/macros/field/Field.js +2 -2
- package/src/sap/fe/macros/field/Field.tsx +1 -1
- package/src/sap/fe/macros/field/FieldBaseDelegate.js +13 -7
- package/src/sap/fe/macros/field/FieldBaseDelegate.ts +12 -8
- package/src/sap/fe/macros/field/FieldFormatOptions.js +25 -2
- package/src/sap/fe/macros/field/FieldFormatOptions.ts +13 -0
- package/src/sap/fe/macros/field/FieldHelper.js +2 -2
- package/src/sap/fe/macros/field/FieldHelper.ts +1 -4
- package/src/sap/fe/macros/field/FieldRuntime.js +1 -2
- package/src/sap/fe/macros/field/FieldRuntime.ts +0 -1
- package/src/sap/fe/macros/field/FieldTemplating.js +3 -3
- package/src/sap/fe/macros/field/FieldTemplating.ts +4 -2
- package/src/sap/fe/macros/filter/FilterUtils.js +233 -5
- package/src/sap/fe/macros/filter/FilterUtils.ts +291 -7
- package/src/sap/fe/macros/filterBar/FilterBar.block.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +4 -2
- package/src/sap/fe/macros/filterBar/FilterBar.js +2 -2
- package/src/sap/fe/macros/filterBar/FilterBar.tsx +1 -1
- package/src/sap/fe/macros/filterBar/FilterBarAPI.js +63 -27
- package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +49 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +5 -3
- package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +5 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +7 -2
- package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +6 -1
- package/src/sap/fe/macros/form/Form.block.js +7 -8
- package/src/sap/fe/macros/form/Form.block.ts +4 -6
- package/src/sap/fe/macros/form/Form.js +1 -4
- package/src/sap/fe/macros/form/Form.tsx +0 -3
- package/src/sap/fe/macros/form/FormContainer.block.js +555 -5
- package/src/sap/fe/macros/form/FormContainer.block.ts +665 -7
- package/src/sap/fe/macros/form/FormContainer.fragment.xml +1 -0
- package/src/sap/fe/macros/form/FormDelegate.js +24 -8
- package/src/sap/fe/macros/form/FormDelegate.ts +29 -7
- package/src/sap/fe/macros/form/FormHelper.js +1 -2
- package/src/sap/fe/macros/form/FormHelper.ts +0 -1
- package/src/sap/fe/macros/fpm/CustomFragment.block.js +1 -2
- package/src/sap/fe/macros/fpm/CustomFragment.block.ts +0 -1
- package/src/sap/fe/macros/internal/ActionCommand.block.js +1 -2
- package/src/sap/fe/macros/internal/ActionCommand.block.ts +0 -1
- package/src/sap/fe/macros/internal/DataPoint.js +3 -2
- package/src/sap/fe/macros/internal/DataPoint.tsx +10 -1
- package/src/sap/fe/macros/internal/FilterField.block.js +19 -5
- package/src/sap/fe/macros/internal/FilterField.block.ts +16 -4
- package/src/sap/fe/macros/internal/field/DisplayStyle.js +9 -3
- package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +10 -2
- package/src/sap/fe/macros/internal/field/EditStyle.js +21 -4
- package/src/sap/fe/macros/internal/field/EditStyle.tsx +18 -4
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +3 -2
- package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +5 -1
- package/src/sap/fe/macros/internal/filterField/FilterFieldTemplate.fragment.xml +1 -0
- package/src/sap/fe/macros/internal/helpers/ActionHelper.js +36 -5
- package/src/sap/fe/macros/internal/helpers/ActionHelper.ts +34 -4
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.js +46 -8
- package/src/sap/fe/macros/internal/valuehelp/AdditionalValueHelper.ts +60 -6
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +38 -2
- package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +37 -2
- package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +1 -1
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +10 -3
- package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +13 -2
- package/src/sap/fe/macros/library.js +1 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.js +2 -1
- package/src/sap/fe/macros/mdc/adapter/StateFilterToSelectionVariant.ts +1 -0
- package/src/sap/fe/macros/messagebundle.properties +24 -4
- package/src/sap/fe/macros/messagebundle_ar.properties +8 -2
- package/src/sap/fe/macros/messagebundle_bg.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ca.properties +11 -5
- package/src/sap/fe/macros/messagebundle_cnr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_cs.properties +7 -1
- package/src/sap/fe/macros/messagebundle_cy.properties +9 -3
- package/src/sap/fe/macros/messagebundle_da.properties +8 -2
- package/src/sap/fe/macros/messagebundle_de.properties +13 -7
- package/src/sap/fe/macros/messagebundle_el.properties +7 -1
- package/src/sap/fe/macros/messagebundle_en.properties +11 -5
- package/src/sap/fe/macros/messagebundle_en_GB.properties +9 -3
- package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +11 -5
- package/src/sap/fe/macros/messagebundle_es.properties +10 -4
- package/src/sap/fe/macros/messagebundle_es_MX.properties +11 -5
- package/src/sap/fe/macros/messagebundle_et.properties +9 -3
- package/src/sap/fe/macros/messagebundle_fi.properties +7 -1
- package/src/sap/fe/macros/messagebundle_fr.properties +9 -3
- package/src/sap/fe/macros/messagebundle_fr_CA.properties +8 -2
- package/src/sap/fe/macros/messagebundle_hi.properties +8 -2
- package/src/sap/fe/macros/messagebundle_hr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_hu.properties +7 -1
- package/src/sap/fe/macros/messagebundle_id.properties +15 -9
- package/src/sap/fe/macros/messagebundle_it.properties +7 -1
- package/src/sap/fe/macros/messagebundle_iw.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ja.properties +13 -7
- package/src/sap/fe/macros/messagebundle_kk.properties +11 -5
- package/src/sap/fe/macros/messagebundle_ko.properties +8 -2
- package/src/sap/fe/macros/messagebundle_lt.properties +9 -3
- package/src/sap/fe/macros/messagebundle_lv.properties +8 -2
- package/src/sap/fe/macros/messagebundle_mk.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ms.properties +7 -1
- package/src/sap/fe/macros/messagebundle_nl.properties +7 -1
- package/src/sap/fe/macros/messagebundle_no.properties +7 -1
- package/src/sap/fe/macros/messagebundle_pl.properties +8 -2
- package/src/sap/fe/macros/messagebundle_pt.properties +7 -1
- package/src/sap/fe/macros/messagebundle_pt_PT.properties +7 -1
- package/src/sap/fe/macros/messagebundle_ro.properties +8 -2
- package/src/sap/fe/macros/messagebundle_ru.properties +10 -4
- package/src/sap/fe/macros/messagebundle_sh.properties +8 -2
- package/src/sap/fe/macros/messagebundle_sk.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sl.properties +7 -1
- package/src/sap/fe/macros/messagebundle_sr.properties +8 -2
- package/src/sap/fe/macros/messagebundle_sv.properties +7 -1
- package/src/sap/fe/macros/messagebundle_th.properties +8 -2
- package/src/sap/fe/macros/messagebundle_tr.properties +7 -1
- package/src/sap/fe/macros/messagebundle_uk.properties +10 -4
- package/src/sap/fe/macros/messagebundle_vi.properties +10 -4
- package/src/sap/fe/macros/messagebundle_zh_CN.properties +7 -1
- package/src/sap/fe/macros/messagebundle_zh_TW.properties +8 -2
- package/src/sap/fe/macros/messages/MessageButton.js +39 -18
- package/src/sap/fe/macros/messages/MessageButton.ts +42 -19
- package/src/sap/fe/macros/messages/MessagePopover.js +4 -2
- package/src/sap/fe/macros/messages/MessagePopover.ts +6 -4
- package/src/sap/fe/macros/microchart/MicroChart.js +2 -2
- package/src/sap/fe/macros/microchart/MicroChart.tsx +1 -1
- package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -2
- package/src/sap/fe/macros/microchart/MicroChartContainer.ts +1 -2
- package/src/sap/fe/macros/microchart/MicroChartHelper.js +2 -3
- package/src/sap/fe/macros/microchart/MicroChartHelper.tsx +1 -2
- package/src/sap/fe/macros/share/ShareAPI.js +4 -29
- package/src/sap/fe/macros/share/ShareAPI.ts +1 -32
- package/src/sap/fe/macros/situations/SituationsPopover.js +3 -1
- package/src/sap/fe/macros/situations/SituationsPopover.ts +2 -0
- package/src/sap/fe/macros/table/ActionsTemplating.js +4 -8
- package/src/sap/fe/macros/table/ActionsTemplating.tsx +5 -8
- package/src/sap/fe/macros/table/BasicSearch.js +1 -1
- package/src/sap/fe/macros/table/BasicSearch.ts +2 -1
- package/src/sap/fe/macros/table/Column.js +14 -2
- package/src/sap/fe/macros/table/Column.ts +7 -0
- package/src/sap/fe/macros/table/ColumnExportSettings.js +83 -15
- package/src/sap/fe/macros/table/ColumnExportSettings.ts +44 -0
- package/src/sap/fe/macros/table/ColumnOverride.js +14 -2
- package/src/sap/fe/macros/table/ColumnOverride.ts +7 -0
- package/src/sap/fe/macros/table/MdcTableTemplate.js +7 -5
- package/src/sap/fe/macros/table/MdcTableTemplate.tsx +21 -11
- package/src/sap/fe/macros/table/QuickFilterSelector.js +12 -3
- package/src/sap/fe/macros/table/QuickFilterSelector.tsx +15 -2
- package/src/sap/fe/macros/table/Table.block.js +188 -147
- package/src/sap/fe/macros/table/Table.block.tsx +41 -11
- package/src/sap/fe/macros/table/Table.js +16 -10
- package/src/sap/fe/macros/table/Table.tsx +16 -10
- package/src/sap/fe/macros/table/TableAPI.js +224 -184
- package/src/sap/fe/macros/table/TableAPI.ts +63 -19
- package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -6
- package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +5 -4
- package/src/sap/fe/macros/table/TableHelper.js +2 -3
- package/src/sap/fe/macros/table/TableHelper.ts +1 -2
- package/src/sap/fe/macros/table/TableRuntime.js +24 -5
- package/src/sap/fe/macros/table/TableRuntime.ts +31 -3
- package/src/sap/fe/macros/table/TreeTable.js +16 -10
- package/src/sap/fe/macros/table/TreeTable.tsx +16 -10
- package/src/sap/fe/macros/table/Utils.js +8 -3
- package/src/sap/fe/macros/table/Utils.ts +12 -3
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/ALPTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/delegates/TableDelegate.js +69 -34
- package/src/sap/fe/macros/table/delegates/TableDelegate.ts +75 -33
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.js +1 -2
- package/src/sap/fe/macros/table/delegates/TreeTableDelegate.ts +0 -1
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +10 -10
- package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +11 -9
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +14 -12
- package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +11 -10
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +34 -4
- package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +45 -2
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +55 -12
- package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +71 -9
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +53 -2
- package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +55 -0
- package/src/sap/fe/macros/table/mixin/TableExport.js +22 -3
- package/src/sap/fe/macros/table/mixin/TableExport.ts +25 -4
- package/src/sap/fe/macros/table/mixin/TableHierarchy.js +5 -1
- package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +7 -0
- package/src/sap/fe/macros/table/mixin/TableSharing.js +4 -2
- package/src/sap/fe/macros/table/mixin/TableSharing.ts +10 -1
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +36 -10
- package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +44 -9
- package/src/sap/fe/macros/visualfilters/VisualFilter.js +5 -4
- package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +3 -2
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +2 -3
- package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +1 -2
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* SAP UI development toolkit for HTML5 (SAPUI5)
|
|
3
|
+
* (c) Copyright 2009-2025 SAP SE. All rights reserved
|
|
4
|
+
*/
|
|
5
|
+
sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingBlock", "sap/fe/core/helpers/StableIdHelper", "sap/fe/core/helpers/TypeGuards", "sap/fe/core/templating/CriticalityFormatters", "sap/fe/core/templating/DataModelPathHelper", "sap/fe/macros/field/FieldTemplating", "sap/m/ObjectStatus", "sap/fe/base/jsx-runtime/jsx"], function (ClassSupport, BuildingBlock, StableIdHelper, TypeGuards, CriticalityFormatters, DataModelPathHelper, FieldTemplating, MObjectStatus, _jsx) {
|
|
6
|
+
"use strict";
|
|
7
|
+
|
|
8
|
+
var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8;
|
|
9
|
+
var _exports = {};
|
|
10
|
+
var getVisibleExpression = FieldTemplating.getVisibleExpression;
|
|
11
|
+
var getTextBinding = FieldTemplating.getTextBinding;
|
|
12
|
+
var enhanceDataModelPath = DataModelPathHelper.enhanceDataModelPath;
|
|
13
|
+
var buildExpressionForCriticalityIcon = CriticalityFormatters.buildExpressionForCriticalityIcon;
|
|
14
|
+
var buildExpressionForCriticalityColor = CriticalityFormatters.buildExpressionForCriticalityColor;
|
|
15
|
+
var isProperty = TypeGuards.isProperty;
|
|
16
|
+
var generate = StableIdHelper.generate;
|
|
17
|
+
var property = ClassSupport.property;
|
|
18
|
+
var implementInterface = ClassSupport.implementInterface;
|
|
19
|
+
var event = ClassSupport.event;
|
|
20
|
+
var defineUI5Class = ClassSupport.defineUI5Class;
|
|
21
|
+
function _initializerDefineProperty(e, i, r, l) { r && Object.defineProperty(e, i, { enumerable: r.enumerable, configurable: r.configurable, writable: r.writable, value: r.initializer ? r.initializer.call(l) : void 0 }); }
|
|
22
|
+
function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o); }
|
|
23
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
24
|
+
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
|
|
25
|
+
function _initializerWarningHelper(r, e) { throw Error("Decorating class property failed. Please ensure that transform-class-properties is enabled and runs after the decorators transform."); }
|
|
26
|
+
/**
|
|
27
|
+
* Building block to display a status and criticality.
|
|
28
|
+
* @public
|
|
29
|
+
* @ui5-experimental-since 1.141.0
|
|
30
|
+
* @since 1.141.0
|
|
31
|
+
*/
|
|
32
|
+
let Status = (_dec = defineUI5Class("sap.fe.macros.Status"), _dec2 = implementInterface("sap.ui.core.IFormContent"), _dec3 = property({
|
|
33
|
+
type: "string",
|
|
34
|
+
required: true
|
|
35
|
+
}), _dec4 = property({
|
|
36
|
+
type: "string"
|
|
37
|
+
}), _dec5 = property({
|
|
38
|
+
type: "string",
|
|
39
|
+
allowedValues: ["Inline", "Overlay"]
|
|
40
|
+
}), _dec6 = property({
|
|
41
|
+
type: "boolean"
|
|
42
|
+
}), _dec7 = property({
|
|
43
|
+
type: "boolean"
|
|
44
|
+
}), _dec8 = property({
|
|
45
|
+
type: "boolean"
|
|
46
|
+
}), _dec9 = event(), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
|
|
47
|
+
/**
|
|
48
|
+
* Internal property to store the data model path
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Constructor for the Status building block.
|
|
53
|
+
* @param properties The properties object containing Status-specific settings and base control settings
|
|
54
|
+
* @param [others] Additional control settings that may be applied to the building block
|
|
55
|
+
*/
|
|
56
|
+
function Status(properties, others) {
|
|
57
|
+
var _this;
|
|
58
|
+
_this = _BuildingBlock.call(this, properties, others) || this;
|
|
59
|
+
_initializerDefineProperty(_this, "__implements__sap_ui_core_IFormContent", _descriptor, _this);
|
|
60
|
+
/**
|
|
61
|
+
* Metadata path to the DataField annotation or property.
|
|
62
|
+
* @public
|
|
63
|
+
*/
|
|
64
|
+
_initializerDefineProperty(_this, "metaPath", _descriptor2, _this);
|
|
65
|
+
/**
|
|
66
|
+
* Context path for the binding context.
|
|
67
|
+
* @public
|
|
68
|
+
*/
|
|
69
|
+
_initializerDefineProperty(_this, "contextPath", _descriptor3, _this);
|
|
70
|
+
/**
|
|
71
|
+
* When the Status is clickable, it defines the size of the reactive area of the clickable element:
|
|
72
|
+
*
|
|
73
|
+
* - ReactiveAreaMode.Inline - The Status is displayed as part of a sentence.
|
|
74
|
+
* - ReactiveAreaMode.Overlay - The Status is displayed as an overlay on top of other interactive parts of the page.
|
|
75
|
+
* Note: It is designed to make the clickable element easier to activate and helps meet the WCAG 2.2 Target Size requirement. It is applicable only for the SAP Horizon themes. Note: The size of the reactive area is sufficiently large to help users avoid accidentally selecting (clicking or tapping) unintended UI elements. UI elements positioned over other parts of the page may need an invisible active touch area. This ensures that no elements beneath are activated accidentally when the user tries to interact with the overlay element.
|
|
76
|
+
* @public
|
|
77
|
+
*/
|
|
78
|
+
_initializerDefineProperty(_this, "reactiveAreaMode", _descriptor4, _this);
|
|
79
|
+
/**
|
|
80
|
+
* Indicates whether the ObjectStatus should be displayed in large design mode.
|
|
81
|
+
* @public
|
|
82
|
+
*/
|
|
83
|
+
_initializerDefineProperty(_this, "largeDesign", _descriptor5, _this);
|
|
84
|
+
/**
|
|
85
|
+
* Determines whether the background color reflects the set state of the ObjectStatus instead of the control's text.
|
|
86
|
+
* @public
|
|
87
|
+
*/
|
|
88
|
+
_initializerDefineProperty(_this, "inverted", _descriptor6, _this);
|
|
89
|
+
_initializerDefineProperty(_this, "hideIcon", _descriptor7, _this);
|
|
90
|
+
/**
|
|
91
|
+
* Press event fired when the ObjectStatus is clicked.
|
|
92
|
+
* @param event The press event
|
|
93
|
+
* @public
|
|
94
|
+
*/
|
|
95
|
+
_initializerDefineProperty(_this, "press", _descriptor8, _this);
|
|
96
|
+
return _this;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Handler for the onMetadataAvailable event.
|
|
101
|
+
*/
|
|
102
|
+
_exports = Status;
|
|
103
|
+
_inheritsLoose(Status, _BuildingBlock);
|
|
104
|
+
var _proto = Status.prototype;
|
|
105
|
+
_proto.onMetadataAvailable = function onMetadataAvailable() {
|
|
106
|
+
this.getTemplatingObjects();
|
|
107
|
+
if (!this.dataModelPath && !this.valueDataModelPath) {
|
|
108
|
+
// there cannot be a static value and no datafield or datapoint
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (!this.content) {
|
|
112
|
+
this.content = this.createContent();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Function to get the templating objects and prepare data model paths.
|
|
118
|
+
*/;
|
|
119
|
+
_proto.getTemplatingObjects = function getTemplatingObjects() {
|
|
120
|
+
// Try to get as DataField first, then as DataPoint, then as Property
|
|
121
|
+
const internalDataModelPath = this.getDataModelObjectForMetaPath(this.metaPath, this.contextPath);
|
|
122
|
+
const targetObject = internalDataModelPath?.targetObject;
|
|
123
|
+
if (!internalDataModelPath) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (isProperty(targetObject)) {
|
|
127
|
+
if (targetObject?.annotations?.UI?.DataFieldDefault !== undefined) {
|
|
128
|
+
this.dataModelPath = this.getDataModelObjectForMetaPath(`${this.metaPath}@${"com.sap.vocabularies.UI.v1.DataFieldDefault"}`, this.contextPath);
|
|
129
|
+
}
|
|
130
|
+
this.valueDataModelPath = internalDataModelPath;
|
|
131
|
+
} else {
|
|
132
|
+
this.dataModelPath = internalDataModelPath;
|
|
133
|
+
if (this.dataModelPath?.targetObject?.Value?.path) {
|
|
134
|
+
this.valueDataModelPath = enhanceDataModelPath(internalDataModelPath, this.dataModelPath.targetObject.Value.path);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Gets the criticality expression for the ObjectStatus.
|
|
141
|
+
* @returns The compiled binding expression for criticality color, or undefined if no criticality is available
|
|
142
|
+
*/;
|
|
143
|
+
_proto.getCriticalityExpression = function getCriticalityExpression(specificColorMap) {
|
|
144
|
+
return this.dataModelPath === undefined ? undefined : buildExpressionForCriticalityColor(this.dataModelPath, this.dataModelPath, specificColorMap);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Gets the criticality icon expression for the ObjectStatus.
|
|
149
|
+
* @returns The compiled binding expression for criticality icon, or undefined if no criticality is available
|
|
150
|
+
*/;
|
|
151
|
+
_proto.getCriticalityIconExpression = function getCriticalityIconExpression() {
|
|
152
|
+
return this.dataModelPath === undefined ? undefined : buildExpressionForCriticalityIcon(this.dataModelPath, this.dataModelPath);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* Gets the text binding expression for the ObjectStatus.
|
|
157
|
+
* @returns The compiled binding expression for the ObjectStatus text content
|
|
158
|
+
*/;
|
|
159
|
+
_proto.getObjectStatusTextBinding = function getObjectStatusTextBinding() {
|
|
160
|
+
const propertyOrDataFieldDataModelObjectPath = this.valueDataModelPath ?? this.dataModelPath;
|
|
161
|
+
return getTextBinding(propertyOrDataFieldDataModelObjectPath, {});
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Creates the ObjectStatus control content.
|
|
166
|
+
* @returns The configured ObjectStatus control ready for rendering
|
|
167
|
+
*/;
|
|
168
|
+
_proto.createContent = function createContent() {
|
|
169
|
+
const statusConfig = this.getAppComponent()?.getAdditionalConfiguration()?.["sap.fe.macros"]?.Status;
|
|
170
|
+
const dataFieldOrPropertyDataModelObjectPath = this.dataModelPath ?? this.valueDataModelPath;
|
|
171
|
+
const visible = getVisibleExpression(dataFieldOrPropertyDataModelObjectPath);
|
|
172
|
+
const criticalityExpression = this.getCriticalityExpression(statusConfig?.colorMap);
|
|
173
|
+
const criticalityIconExpression = this.getCriticalityIconExpression();
|
|
174
|
+
const textBinding = this.getObjectStatusTextBinding();
|
|
175
|
+
const isActive = this.hasListeners("press");
|
|
176
|
+
if (this.isPropertyInitial("inverted")) {
|
|
177
|
+
// if inverted is not set, use the default from configuration
|
|
178
|
+
this.inverted = statusConfig?.invertedDefaultValue === true;
|
|
179
|
+
}
|
|
180
|
+
if (this.largeDesign) {
|
|
181
|
+
this.hideIcon = true;
|
|
182
|
+
}
|
|
183
|
+
return _jsx(MObjectStatus, {
|
|
184
|
+
id: generate([this.getId(), "ObjectStatus"]),
|
|
185
|
+
inverted: this.inverted,
|
|
186
|
+
class: this.largeDesign ? "sapMObjectStatusLarge sapMObjectStatusLongText" : undefined,
|
|
187
|
+
state: criticalityExpression,
|
|
188
|
+
icon: this.hideIcon ? undefined : criticalityIconExpression,
|
|
189
|
+
text: textBinding,
|
|
190
|
+
visible: visible,
|
|
191
|
+
active: isActive,
|
|
192
|
+
reactiveAreaMode: this.reactiveAreaMode,
|
|
193
|
+
press: pressEvent => {
|
|
194
|
+
this.fireEvent("press", pressEvent);
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
return Status;
|
|
199
|
+
}(BuildingBlock), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "__implements__sap_ui_core_IFormContent", [_dec2], {
|
|
200
|
+
configurable: true,
|
|
201
|
+
enumerable: true,
|
|
202
|
+
writable: true,
|
|
203
|
+
initializer: function () {
|
|
204
|
+
return true;
|
|
205
|
+
}
|
|
206
|
+
}), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "metaPath", [_dec3], {
|
|
207
|
+
configurable: true,
|
|
208
|
+
enumerable: true,
|
|
209
|
+
writable: true,
|
|
210
|
+
initializer: null
|
|
211
|
+
}), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "contextPath", [_dec4], {
|
|
212
|
+
configurable: true,
|
|
213
|
+
enumerable: true,
|
|
214
|
+
writable: true,
|
|
215
|
+
initializer: null
|
|
216
|
+
}), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "reactiveAreaMode", [_dec5], {
|
|
217
|
+
configurable: true,
|
|
218
|
+
enumerable: true,
|
|
219
|
+
writable: true,
|
|
220
|
+
initializer: null
|
|
221
|
+
}), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "largeDesign", [_dec6], {
|
|
222
|
+
configurable: true,
|
|
223
|
+
enumerable: true,
|
|
224
|
+
writable: true,
|
|
225
|
+
initializer: function () {
|
|
226
|
+
return false;
|
|
227
|
+
}
|
|
228
|
+
}), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "inverted", [_dec7], {
|
|
229
|
+
configurable: true,
|
|
230
|
+
enumerable: true,
|
|
231
|
+
writable: true,
|
|
232
|
+
initializer: function () {
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
}), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "hideIcon", [_dec8], {
|
|
236
|
+
configurable: true,
|
|
237
|
+
enumerable: true,
|
|
238
|
+
writable: true,
|
|
239
|
+
initializer: function () {
|
|
240
|
+
return false;
|
|
241
|
+
}
|
|
242
|
+
}), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "press", [_dec9], {
|
|
243
|
+
configurable: true,
|
|
244
|
+
enumerable: true,
|
|
245
|
+
writable: true,
|
|
246
|
+
initializer: null
|
|
247
|
+
}), _class2)) || _class);
|
|
248
|
+
_exports = Status;
|
|
249
|
+
return _exports;
|
|
250
|
+
}, false);
|
|
251
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGF0dXMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9kZWMzIiwicHJvcGVydHkiLCJ0eXBlIiwicmVxdWlyZWQiLCJfZGVjNCIsIl9kZWM1IiwiYWxsb3dlZFZhbHVlcyIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiZXZlbnQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsIl9kZXNjcmlwdG9yNyIsIl9kZXNjcmlwdG9yOCIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiZ2V0VGVtcGxhdGluZ09iamVjdHMiLCJkYXRhTW9kZWxQYXRoIiwidmFsdWVEYXRhTW9kZWxQYXRoIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJpbnRlcm5hbERhdGFNb2RlbFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aCIsIm1ldGFQYXRoIiwiY29udGV4dFBhdGgiLCJ0YXJnZXRPYmplY3QiLCJpc1Byb3BlcnR5IiwiYW5ub3RhdGlvbnMiLCJVSSIsIkRhdGFGaWVsZERlZmF1bHQiLCJ1bmRlZmluZWQiLCJWYWx1ZSIsInBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsImdldENyaXRpY2FsaXR5RXhwcmVzc2lvbiIsInNwZWNpZmljQ29sb3JNYXAiLCJidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yIiwiZ2V0Q3JpdGljYWxpdHlJY29uRXhwcmVzc2lvbiIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5SWNvbiIsImdldE9iamVjdFN0YXR1c1RleHRCaW5kaW5nIiwicHJvcGVydHlPckRhdGFGaWVsZERhdGFNb2RlbE9iamVjdFBhdGgiLCJnZXRUZXh0QmluZGluZyIsInN0YXR1c0NvbmZpZyIsImdldEFwcENvbXBvbmVudCIsImdldEFkZGl0aW9uYWxDb25maWd1cmF0aW9uIiwiZGF0YUZpZWxkT3JQcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgiLCJ2aXNpYmxlIiwiZ2V0VmlzaWJsZUV4cHJlc3Npb24iLCJjcml0aWNhbGl0eUV4cHJlc3Npb24iLCJjb2xvck1hcCIsImNyaXRpY2FsaXR5SWNvbkV4cHJlc3Npb24iLCJ0ZXh0QmluZGluZyIsImlzQWN0aXZlIiwiaGFzTGlzdGVuZXJzIiwiaXNQcm9wZXJ0eUluaXRpYWwiLCJpbnZlcnRlZCIsImludmVydGVkRGVmYXVsdFZhbHVlIiwibGFyZ2VEZXNpZ24iLCJoaWRlSWNvbiIsIl9qc3giLCJNT2JqZWN0U3RhdHVzIiwiaWQiLCJnZW5lcmF0ZSIsImdldElkIiwiY2xhc3MiLCJzdGF0ZSIsImljb24iLCJ0ZXh0IiwiYWN0aXZlIiwicmVhY3RpdmVBcmVhTW9kZSIsInByZXNzIiwicHJlc3NFdmVudCIsImZpcmVFdmVudCIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlN0YXR1cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQcm9wZXJ0eSB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhRmllbGQsIERhdGFQb2ludFR5cGUgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgeyBVSUFubm90YXRpb25UZXJtcyB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy92b2NhYnVsYXJpZXMvVUlcIjtcbmltcG9ydCB0eXBlIHsgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQmluZGluZ1Rvb2xraXRcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzLCBldmVudCwgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSwgdHlwZSBQcm9wZXJ0aWVzT2YgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9TdGFibGVJZEhlbHBlclwiO1xuaW1wb3J0IHsgaXNQcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL1R5cGVHdWFyZHNcIjtcbmltcG9ydCB7IGJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IsIGJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5SWNvbiB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0NyaXRpY2FsaXR5Rm9ybWF0dGVyc1wiO1xuaW1wb3J0IHR5cGUgeyBEYXRhTW9kZWxPYmplY3RQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZW5oYW5jZURhdGFNb2RlbFBhdGggfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9EYXRhTW9kZWxQYXRoSGVscGVyXCI7XG5pbXBvcnQgeyBnZXRUZXh0QmluZGluZywgZ2V0VmlzaWJsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZFRlbXBsYXRpbmdcIjtcbmltcG9ydCB0eXBlIHsgT2JqZWN0U3RhdHVzJFByZXNzRXZlbnQgfSBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgTU9iamVjdFN0YXR1cyBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIHRvIGRpc3BsYXkgYSBzdGF0dXMgYW5kIGNyaXRpY2FsaXR5LlxuICogQHB1YmxpY1xuICogQHVpNS1leHBlcmltZW50YWwtc2luY2UgMS4xNDEuMFxuICogQHNpbmNlIDEuMTQxLjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5TdGF0dXNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0YXR1cyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8TU9iamVjdFN0YXR1cz4gaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50ID0gdHJ1ZTtcblxuXHQvKipcblx0ICogTWV0YWRhdGEgcGF0aCB0byB0aGUgRGF0YUZpZWxkIGFubm90YXRpb24gb3IgcHJvcGVydHkuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRyZXF1aXJlZDogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgbWV0YVBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRleHQgcGF0aCBmb3IgdGhlIGJpbmRpbmcgY29udGV4dC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHQvKipcblx0ICogIFdoZW4gdGhlIFN0YXR1cyBpcyBjbGlja2FibGUsIGl0IGRlZmluZXMgdGhlIHNpemUgb2YgdGhlIHJlYWN0aXZlIGFyZWEgb2YgdGhlIGNsaWNrYWJsZSBlbGVtZW50OlxuXHQgKlxuXHQgKiAtIFJlYWN0aXZlQXJlYU1vZGUuSW5saW5lIC0gVGhlIFN0YXR1cyBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiBhIHNlbnRlbmNlLlxuXHQgKiAtIFJlYWN0aXZlQXJlYU1vZGUuT3ZlcmxheSAtIFRoZSBTdGF0dXMgaXMgZGlzcGxheWVkIGFzIGFuIG92ZXJsYXkgb24gdG9wIG9mIG90aGVyIGludGVyYWN0aXZlIHBhcnRzIG9mIHRoZSBwYWdlLlxuXHQgKiBOb3RlOiBJdCBpcyBkZXNpZ25lZCB0byBtYWtlIHRoZSBjbGlja2FibGUgZWxlbWVudCBlYXNpZXIgdG8gYWN0aXZhdGUgYW5kIGhlbHBzIG1lZXQgdGhlIFdDQUcgMi4yIFRhcmdldCBTaXplIHJlcXVpcmVtZW50LiBJdCBpcyBhcHBsaWNhYmxlIG9ubHkgZm9yIHRoZSBTQVAgSG9yaXpvbiB0aGVtZXMuIE5vdGU6IFRoZSBzaXplIG9mIHRoZSByZWFjdGl2ZSBhcmVhIGlzIHN1ZmZpY2llbnRseSBsYXJnZSB0byBoZWxwIHVzZXJzIGF2b2lkIGFjY2lkZW50YWxseSBzZWxlY3RpbmcgKGNsaWNraW5nIG9yIHRhcHBpbmcpIHVuaW50ZW5kZWQgVUkgZWxlbWVudHMuIFVJIGVsZW1lbnRzIHBvc2l0aW9uZWQgb3ZlciBvdGhlciBwYXJ0cyBvZiB0aGUgcGFnZSBtYXkgbmVlZCBhbiBpbnZpc2libGUgYWN0aXZlIHRvdWNoIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IG5vIGVsZW1lbnRzIGJlbmVhdGggYXJlIGFjdGl2YXRlZCBhY2NpZGVudGFsbHkgd2hlbiB0aGUgdXNlciB0cmllcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBvdmVybGF5IGVsZW1lbnQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGFsbG93ZWRWYWx1ZXM6IFtcIklubGluZVwiLCBcIk92ZXJsYXlcIl0gfSlcblx0cHVibGljIHJlYWN0aXZlQXJlYU1vZGU/OiBcIklubGluZVwiIHwgXCJPdmVybGF5XCI7XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBPYmplY3RTdGF0dXMgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBsYXJnZSBkZXNpZ24gbW9kZS5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cHVibGljIGxhcmdlRGVzaWduID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIERldGVybWluZXMgd2hldGhlciB0aGUgYmFja2dyb3VuZCBjb2xvciByZWZsZWN0cyB0aGUgc2V0IHN0YXRlIG9mIHRoZSBPYmplY3RTdGF0dXMgaW5zdGVhZCBvZiB0aGUgY29udHJvbCdzIHRleHQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHB1YmxpYyBpbnZlcnRlZCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHB1YmxpYyBoaWRlSWNvbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBQcmVzcyBldmVudCBmaXJlZCB3aGVuIHRoZSBPYmplY3RTdGF0dXMgaXMgY2xpY2tlZC5cblx0ICogQHBhcmFtIGV2ZW50IFRoZSBwcmVzcyBldmVudFxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAZXZlbnQoKVxuXHRwdWJsaWMgcHJlc3M/OiAoZXZlbnQ6IE9iamVjdFN0YXR1cyRQcmVzc0V2ZW50KSA9PiB2b2lkO1xuXG5cdC8qKlxuXHQgKiBJbnRlcm5hbCBwcm9wZXJ0eSB0byBzdG9yZSB0aGUgZGF0YSBtb2RlbCBwYXRoXG5cdCAqL1xuXHRwcml2YXRlIGRhdGFNb2RlbFBhdGg/OiBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFGaWVsZCB8IERhdGFQb2ludFR5cGU+O1xuXG5cdHByaXZhdGUgdmFsdWVEYXRhTW9kZWxQYXRoPzogRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT47XG5cblx0LyoqXG5cdCAqIENvbnN0cnVjdG9yIGZvciB0aGUgU3RhdHVzIGJ1aWxkaW5nIGJsb2NrLlxuXHQgKiBAcGFyYW0gcHJvcGVydGllcyBUaGUgcHJvcGVydGllcyBvYmplY3QgY29udGFpbmluZyBTdGF0dXMtc3BlY2lmaWMgc2V0dGluZ3MgYW5kIGJhc2UgY29udHJvbCBzZXR0aW5nc1xuXHQgKiBAcGFyYW0gW290aGVyc10gQWRkaXRpb25hbCBjb250cm9sIHNldHRpbmdzIHRoYXQgbWF5IGJlIGFwcGxpZWQgdG8gdGhlIGJ1aWxkaW5nIGJsb2NrXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihwcm9wZXJ0aWVzOiAkQ29udHJvbFNldHRpbmdzICYgUHJvcGVydGllc09mPFN0YXR1cz4sIG90aGVycz86ICRDb250cm9sU2V0dGluZ3MpIHtcblx0XHRzdXBlcihwcm9wZXJ0aWVzLCBvdGhlcnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXIgZm9yIHRoZSBvbk1ldGFkYXRhQXZhaWxhYmxlIGV2ZW50LlxuXHQgKi9cblx0b25NZXRhZGF0YUF2YWlsYWJsZSgpOiB2b2lkIHtcblx0XHR0aGlzLmdldFRlbXBsYXRpbmdPYmplY3RzKCk7XG5cdFx0aWYgKCF0aGlzLmRhdGFNb2RlbFBhdGggJiYgIXRoaXMudmFsdWVEYXRhTW9kZWxQYXRoKSB7XG5cdFx0XHQvLyB0aGVyZSBjYW5ub3QgYmUgYSBzdGF0aWMgdmFsdWUgYW5kIG5vIGRhdGFmaWVsZCBvciBkYXRhcG9pbnRcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKCF0aGlzLmNvbnRlbnQpIHtcblx0XHRcdHRoaXMuY29udGVudCA9IHRoaXMuY3JlYXRlQ29udGVudCgpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB0byBnZXQgdGhlIHRlbXBsYXRpbmcgb2JqZWN0cyBhbmQgcHJlcGFyZSBkYXRhIG1vZGVsIHBhdGhzLlxuXHQgKi9cblx0cHJpdmF0ZSBnZXRUZW1wbGF0aW5nT2JqZWN0cygpOiB2b2lkIHtcblx0XHQvLyBUcnkgdG8gZ2V0IGFzIERhdGFGaWVsZCBmaXJzdCwgdGhlbiBhcyBEYXRhUG9pbnQsIHRoZW4gYXMgUHJvcGVydHlcblx0XHRjb25zdCBpbnRlcm5hbERhdGFNb2RlbFBhdGggPSB0aGlzLmdldERhdGFNb2RlbE9iamVjdEZvck1ldGFQYXRoPERhdGFGaWVsZCB8IERhdGFQb2ludFR5cGUgfCBQcm9wZXJ0eT4oXG5cdFx0XHR0aGlzLm1ldGFQYXRoLFxuXHRcdFx0dGhpcy5jb250ZXh0UGF0aFxuXHRcdCk7XG5cdFx0Y29uc3QgdGFyZ2V0T2JqZWN0ID0gaW50ZXJuYWxEYXRhTW9kZWxQYXRoPy50YXJnZXRPYmplY3Q7XG5cblx0XHRpZiAoIWludGVybmFsRGF0YU1vZGVsUGF0aCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoaXNQcm9wZXJ0eSh0YXJnZXRPYmplY3QpKSB7XG5cdFx0XHRpZiAodGFyZ2V0T2JqZWN0Py5hbm5vdGF0aW9ucz8uVUk/LkRhdGFGaWVsZERlZmF1bHQgIT09IHVuZGVmaW5lZCkge1xuXHRcdFx0XHR0aGlzLmRhdGFNb2RlbFBhdGggPSB0aGlzLmdldERhdGFNb2RlbE9iamVjdEZvck1ldGFQYXRoPERhdGFGaWVsZD4oXG5cdFx0XHRcdFx0YCR7dGhpcy5tZXRhUGF0aH1AJHtVSUFubm90YXRpb25UZXJtcy5EYXRhRmllbGREZWZhdWx0fWAsXG5cdFx0XHRcdFx0dGhpcy5jb250ZXh0UGF0aFxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy52YWx1ZURhdGFNb2RlbFBhdGggPSBpbnRlcm5hbERhdGFNb2RlbFBhdGggYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxQcm9wZXJ0eT47XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuZGF0YU1vZGVsUGF0aCA9IGludGVybmFsRGF0YU1vZGVsUGF0aCBhcyBEYXRhTW9kZWxPYmplY3RQYXRoPERhdGFGaWVsZCB8IERhdGFQb2ludFR5cGU+O1xuXHRcdFx0aWYgKHRoaXMuZGF0YU1vZGVsUGF0aD8udGFyZ2V0T2JqZWN0Py5WYWx1ZT8ucGF0aCkge1xuXHRcdFx0XHR0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCA9IGVuaGFuY2VEYXRhTW9kZWxQYXRoPFByb3BlcnR5PihpbnRlcm5hbERhdGFNb2RlbFBhdGgsIHRoaXMuZGF0YU1vZGVsUGF0aC50YXJnZXRPYmplY3QuVmFsdWUucGF0aCk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGNyaXRpY2FsaXR5IGV4cHJlc3Npb24gZm9yIHRoZSBPYmplY3RTdGF0dXMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIGNyaXRpY2FsaXR5IGNvbG9yLCBvciB1bmRlZmluZWQgaWYgbm8gY3JpdGljYWxpdHkgaXMgYXZhaWxhYmxlXG5cdCAqL1xuXHRwcml2YXRlIGdldENyaXRpY2FsaXR5RXhwcmVzc2lvbihzcGVjaWZpY0NvbG9yTWFwPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5kYXRhTW9kZWxQYXRoID09PSB1bmRlZmluZWRcblx0XHRcdD8gdW5kZWZpbmVkXG5cdFx0XHQ6IGJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IodGhpcy5kYXRhTW9kZWxQYXRoLCB0aGlzLmRhdGFNb2RlbFBhdGgsIHNwZWNpZmljQ29sb3JNYXApO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIGNyaXRpY2FsaXR5IGljb24gZXhwcmVzc2lvbiBmb3IgdGhlIE9iamVjdFN0YXR1cy5cblx0ICogQHJldHVybnMgVGhlIGNvbXBpbGVkIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgY3JpdGljYWxpdHkgaWNvbiwgb3IgdW5kZWZpbmVkIGlmIG5vIGNyaXRpY2FsaXR5IGlzIGF2YWlsYWJsZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRDcml0aWNhbGl0eUljb25FeHByZXNzaW9uKCk6IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5kYXRhTW9kZWxQYXRoID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUljb24odGhpcy5kYXRhTW9kZWxQYXRoLCB0aGlzLmRhdGFNb2RlbFBhdGgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEdldHMgdGhlIHRleHQgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgT2JqZWN0U3RhdHVzLlxuXHQgKiBAcmV0dXJucyBUaGUgY29tcGlsZWQgYmluZGluZyBleHByZXNzaW9uIGZvciB0aGUgT2JqZWN0U3RhdHVzIHRleHQgY29udGVudFxuXHQgKi9cblx0cHJpdmF0ZSBnZXRPYmplY3RTdGF0dXNUZXh0QmluZGluZygpOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB7XG5cdFx0Y29uc3QgcHJvcGVydHlPckRhdGFGaWVsZERhdGFNb2RlbE9iamVjdFBhdGggPSAodGhpcy52YWx1ZURhdGFNb2RlbFBhdGggPz8gdGhpcy5kYXRhTW9kZWxQYXRoKSBhcyBEYXRhTW9kZWxPYmplY3RQYXRoPFxuXHRcdFx0UHJvcGVydHkgfCBEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlXG5cdFx0Pjtcblx0XHRyZXR1cm4gZ2V0VGV4dEJpbmRpbmcocHJvcGVydHlPckRhdGFGaWVsZERhdGFNb2RlbE9iamVjdFBhdGgsIHt9KSBhcyBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIHRoZSBPYmplY3RTdGF0dXMgY29udHJvbCBjb250ZW50LlxuXHQgKiBAcmV0dXJucyBUaGUgY29uZmlndXJlZCBPYmplY3RTdGF0dXMgY29udHJvbCByZWFkeSBmb3IgcmVuZGVyaW5nXG5cdCAqL1xuXHRjcmVhdGVDb250ZW50KCk6IE1PYmplY3RTdGF0dXMge1xuXHRcdGNvbnN0IHN0YXR1c0NvbmZpZyA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCk/LmdldEFkZGl0aW9uYWxDb25maWd1cmF0aW9uKCk/LltcInNhcC5mZS5tYWNyb3NcIl0/LlN0YXR1cztcblx0XHRjb25zdCBkYXRhRmllbGRPclByb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCA9ICh0aGlzLmRhdGFNb2RlbFBhdGggPz8gdGhpcy52YWx1ZURhdGFNb2RlbFBhdGgpIGFzIERhdGFNb2RlbE9iamVjdFBhdGg8XG5cdFx0XHRQcm9wZXJ0eSB8IERhdGFGaWVsZCB8IERhdGFQb2ludFR5cGVcblx0XHQ+O1xuXHRcdGNvbnN0IHZpc2libGUgPSBnZXRWaXNpYmxlRXhwcmVzc2lvbihkYXRhRmllbGRPclByb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCk7XG5cdFx0Y29uc3QgY3JpdGljYWxpdHlFeHByZXNzaW9uID0gdGhpcy5nZXRDcml0aWNhbGl0eUV4cHJlc3Npb24oc3RhdHVzQ29uZmlnPy5jb2xvck1hcCk7XG5cdFx0Y29uc3QgY3JpdGljYWxpdHlJY29uRXhwcmVzc2lvbiA9IHRoaXMuZ2V0Q3JpdGljYWxpdHlJY29uRXhwcmVzc2lvbigpO1xuXHRcdGNvbnN0IHRleHRCaW5kaW5nID0gdGhpcy5nZXRPYmplY3RTdGF0dXNUZXh0QmluZGluZygpO1xuXHRcdGNvbnN0IGlzQWN0aXZlID0gdGhpcy5oYXNMaXN0ZW5lcnMoXCJwcmVzc1wiKTtcblx0XHRpZiAodGhpcy5pc1Byb3BlcnR5SW5pdGlhbChcImludmVydGVkXCIpKSB7XG5cdFx0XHQvLyBpZiBpbnZlcnRlZCBpcyBub3Qgc2V0LCB1c2UgdGhlIGRlZmF1bHQgZnJvbSBjb25maWd1cmF0aW9uXG5cdFx0XHR0aGlzLmludmVydGVkID0gc3RhdHVzQ29uZmlnPy5pbnZlcnRlZERlZmF1bHRWYWx1ZSA9PT0gdHJ1ZTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubGFyZ2VEZXNpZ24pIHtcblx0XHRcdHRoaXMuaGlkZUljb24gPSB0cnVlO1xuXHRcdH1cblxuXHRcdHJldHVybiAoXG5cdFx0XHQ8TU9iamVjdFN0YXR1c1xuXHRcdFx0XHRpZD17Z2VuZXJhdGUoW3RoaXMuZ2V0SWQoKSwgXCJPYmplY3RTdGF0dXNcIl0pfVxuXHRcdFx0XHRpbnZlcnRlZD17dGhpcy5pbnZlcnRlZH1cblx0XHRcdFx0Y2xhc3M9e3RoaXMubGFyZ2VEZXNpZ24gPyBcInNhcE1PYmplY3RTdGF0dXNMYXJnZSBzYXBNT2JqZWN0U3RhdHVzTG9uZ1RleHRcIiA6IHVuZGVmaW5lZH1cblx0XHRcdFx0c3RhdGU9e2NyaXRpY2FsaXR5RXhwcmVzc2lvbn1cblx0XHRcdFx0aWNvbj17dGhpcy5oaWRlSWNvbiA/IHVuZGVmaW5lZCA6IGNyaXRpY2FsaXR5SWNvbkV4cHJlc3Npb259XG5cdFx0XHRcdHRleHQ9e3RleHRCaW5kaW5nfVxuXHRcdFx0XHR2aXNpYmxlPXt2aXNpYmxlfVxuXHRcdFx0XHRhY3RpdmU9e2lzQWN0aXZlfVxuXHRcdFx0XHRyZWFjdGl2ZUFyZWFNb2RlPXt0aGlzLnJlYWN0aXZlQXJlYU1vZGV9XG5cdFx0XHRcdHByZXNzPXsocHJlc3NFdmVudDogT2JqZWN0U3RhdHVzJFByZXNzRXZlbnQpOiB2b2lkID0+IHtcblx0XHRcdFx0XHR0aGlzLmZpcmVFdmVudChcInByZXNzXCIsIHByZXNzRXZlbnQpO1xuXHRcdFx0XHR9fVxuXHRcdFx0Lz5cblx0XHQpO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBTEEsSUFPcUJBLE1BQU0sSUFBQUMsSUFBQSxHQUQxQkMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEVBQUFDLEtBQUEsR0FFckNDLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDLEVBQUFD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
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import type { Property } from "@sap-ux/vocabularies-types";
|
|
2
|
+
import type { DataField, DataPointType } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
3
|
+
import { UIAnnotationTerms } from "@sap-ux/vocabularies-types/vocabularies/UI";
|
|
4
|
+
import type { CompiledBindingToolkitExpression } from "sap/fe/base/BindingToolkit";
|
|
5
|
+
import { defineUI5Class, event, implementInterface, property, type PropertiesOf } from "sap/fe/base/ClassSupport";
|
|
6
|
+
import BuildingBlock from "sap/fe/core/buildingBlocks/BuildingBlock";
|
|
7
|
+
import { generate } from "sap/fe/core/helpers/StableIdHelper";
|
|
8
|
+
import { isProperty } from "sap/fe/core/helpers/TypeGuards";
|
|
9
|
+
import { buildExpressionForCriticalityColor, buildExpressionForCriticalityIcon } from "sap/fe/core/templating/CriticalityFormatters";
|
|
10
|
+
import type { DataModelObjectPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
11
|
+
import { enhanceDataModelPath } from "sap/fe/core/templating/DataModelPathHelper";
|
|
12
|
+
import { getTextBinding, getVisibleExpression } from "sap/fe/macros/field/FieldTemplating";
|
|
13
|
+
import type { ObjectStatus$PressEvent } from "sap/m/ObjectStatus";
|
|
14
|
+
import MObjectStatus from "sap/m/ObjectStatus";
|
|
15
|
+
import type { $ControlSettings } from "sap/ui/core/Control";
|
|
16
|
+
import type { IFormContent } from "sap/ui/core/library";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Building block to display a status and criticality.
|
|
20
|
+
* @public
|
|
21
|
+
* @ui5-experimental-since 1.141.0
|
|
22
|
+
* @since 1.141.0
|
|
23
|
+
*/
|
|
24
|
+
@defineUI5Class("sap.fe.macros.Status")
|
|
25
|
+
export default class Status extends BuildingBlock<MObjectStatus> implements IFormContent {
|
|
26
|
+
@implementInterface("sap.ui.core.IFormContent")
|
|
27
|
+
__implements__sap_ui_core_IFormContent = true;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Metadata path to the DataField annotation or property.
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
@property({
|
|
34
|
+
type: "string",
|
|
35
|
+
required: true
|
|
36
|
+
})
|
|
37
|
+
public metaPath!: string;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Context path for the binding context.
|
|
41
|
+
* @public
|
|
42
|
+
*/
|
|
43
|
+
@property({
|
|
44
|
+
type: "string"
|
|
45
|
+
})
|
|
46
|
+
public contextPath?: string;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* When the Status is clickable, it defines the size of the reactive area of the clickable element:
|
|
50
|
+
*
|
|
51
|
+
* - ReactiveAreaMode.Inline - The Status is displayed as part of a sentence.
|
|
52
|
+
* - ReactiveAreaMode.Overlay - The Status is displayed as an overlay on top of other interactive parts of the page.
|
|
53
|
+
* Note: It is designed to make the clickable element easier to activate and helps meet the WCAG 2.2 Target Size requirement. It is applicable only for the SAP Horizon themes. Note: The size of the reactive area is sufficiently large to help users avoid accidentally selecting (clicking or tapping) unintended UI elements. UI elements positioned over other parts of the page may need an invisible active touch area. This ensures that no elements beneath are activated accidentally when the user tries to interact with the overlay element.
|
|
54
|
+
* @public
|
|
55
|
+
*/
|
|
56
|
+
@property({ type: "string", allowedValues: ["Inline", "Overlay"] })
|
|
57
|
+
public reactiveAreaMode?: "Inline" | "Overlay";
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Indicates whether the ObjectStatus should be displayed in large design mode.
|
|
61
|
+
* @public
|
|
62
|
+
*/
|
|
63
|
+
@property({ type: "boolean" })
|
|
64
|
+
public largeDesign = false;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Determines whether the background color reflects the set state of the ObjectStatus instead of the control's text.
|
|
68
|
+
* @public
|
|
69
|
+
*/
|
|
70
|
+
@property({ type: "boolean" })
|
|
71
|
+
public inverted = false;
|
|
72
|
+
|
|
73
|
+
@property({ type: "boolean" })
|
|
74
|
+
public hideIcon = false;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Press event fired when the ObjectStatus is clicked.
|
|
78
|
+
* @param event The press event
|
|
79
|
+
* @public
|
|
80
|
+
*/
|
|
81
|
+
@event()
|
|
82
|
+
public press?: (event: ObjectStatus$PressEvent) => void;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Internal property to store the data model path
|
|
86
|
+
*/
|
|
87
|
+
private dataModelPath?: DataModelObjectPath<DataField | DataPointType>;
|
|
88
|
+
|
|
89
|
+
private valueDataModelPath?: DataModelObjectPath<Property>;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Constructor for the Status building block.
|
|
93
|
+
* @param properties The properties object containing Status-specific settings and base control settings
|
|
94
|
+
* @param [others] Additional control settings that may be applied to the building block
|
|
95
|
+
*/
|
|
96
|
+
constructor(properties: $ControlSettings & PropertiesOf<Status>, others?: $ControlSettings) {
|
|
97
|
+
super(properties, others);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Handler for the onMetadataAvailable event.
|
|
102
|
+
*/
|
|
103
|
+
onMetadataAvailable(): void {
|
|
104
|
+
this.getTemplatingObjects();
|
|
105
|
+
if (!this.dataModelPath && !this.valueDataModelPath) {
|
|
106
|
+
// there cannot be a static value and no datafield or datapoint
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
if (!this.content) {
|
|
110
|
+
this.content = this.createContent();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Function to get the templating objects and prepare data model paths.
|
|
116
|
+
*/
|
|
117
|
+
private getTemplatingObjects(): void {
|
|
118
|
+
// Try to get as DataField first, then as DataPoint, then as Property
|
|
119
|
+
const internalDataModelPath = this.getDataModelObjectForMetaPath<DataField | DataPointType | Property>(
|
|
120
|
+
this.metaPath,
|
|
121
|
+
this.contextPath
|
|
122
|
+
);
|
|
123
|
+
const targetObject = internalDataModelPath?.targetObject;
|
|
124
|
+
|
|
125
|
+
if (!internalDataModelPath) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (isProperty(targetObject)) {
|
|
129
|
+
if (targetObject?.annotations?.UI?.DataFieldDefault !== undefined) {
|
|
130
|
+
this.dataModelPath = this.getDataModelObjectForMetaPath<DataField>(
|
|
131
|
+
`${this.metaPath}@${UIAnnotationTerms.DataFieldDefault}`,
|
|
132
|
+
this.contextPath
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
this.valueDataModelPath = internalDataModelPath as DataModelObjectPath<Property>;
|
|
136
|
+
} else {
|
|
137
|
+
this.dataModelPath = internalDataModelPath as DataModelObjectPath<DataField | DataPointType>;
|
|
138
|
+
if (this.dataModelPath?.targetObject?.Value?.path) {
|
|
139
|
+
this.valueDataModelPath = enhanceDataModelPath<Property>(internalDataModelPath, this.dataModelPath.targetObject.Value.path);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Gets the criticality expression for the ObjectStatus.
|
|
146
|
+
* @returns The compiled binding expression for criticality color, or undefined if no criticality is available
|
|
147
|
+
*/
|
|
148
|
+
private getCriticalityExpression(specificColorMap?: Record<string, string>): CompiledBindingToolkitExpression | undefined {
|
|
149
|
+
return this.dataModelPath === undefined
|
|
150
|
+
? undefined
|
|
151
|
+
: buildExpressionForCriticalityColor(this.dataModelPath, this.dataModelPath, specificColorMap);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* Gets the criticality icon expression for the ObjectStatus.
|
|
156
|
+
* @returns The compiled binding expression for criticality icon, or undefined if no criticality is available
|
|
157
|
+
*/
|
|
158
|
+
private getCriticalityIconExpression(): CompiledBindingToolkitExpression | undefined {
|
|
159
|
+
return this.dataModelPath === undefined ? undefined : buildExpressionForCriticalityIcon(this.dataModelPath, this.dataModelPath);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Gets the text binding expression for the ObjectStatus.
|
|
164
|
+
* @returns The compiled binding expression for the ObjectStatus text content
|
|
165
|
+
*/
|
|
166
|
+
private getObjectStatusTextBinding(): CompiledBindingToolkitExpression {
|
|
167
|
+
const propertyOrDataFieldDataModelObjectPath = (this.valueDataModelPath ?? this.dataModelPath) as DataModelObjectPath<
|
|
168
|
+
Property | DataField | DataPointType
|
|
169
|
+
>;
|
|
170
|
+
return getTextBinding(propertyOrDataFieldDataModelObjectPath, {}) as CompiledBindingToolkitExpression;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Creates the ObjectStatus control content.
|
|
175
|
+
* @returns The configured ObjectStatus control ready for rendering
|
|
176
|
+
*/
|
|
177
|
+
createContent(): MObjectStatus {
|
|
178
|
+
const statusConfig = this.getAppComponent()?.getAdditionalConfiguration()?.["sap.fe.macros"]?.Status;
|
|
179
|
+
const dataFieldOrPropertyDataModelObjectPath = (this.dataModelPath ?? this.valueDataModelPath) as DataModelObjectPath<
|
|
180
|
+
Property | DataField | DataPointType
|
|
181
|
+
>;
|
|
182
|
+
const visible = getVisibleExpression(dataFieldOrPropertyDataModelObjectPath);
|
|
183
|
+
const criticalityExpression = this.getCriticalityExpression(statusConfig?.colorMap);
|
|
184
|
+
const criticalityIconExpression = this.getCriticalityIconExpression();
|
|
185
|
+
const textBinding = this.getObjectStatusTextBinding();
|
|
186
|
+
const isActive = this.hasListeners("press");
|
|
187
|
+
if (this.isPropertyInitial("inverted")) {
|
|
188
|
+
// if inverted is not set, use the default from configuration
|
|
189
|
+
this.inverted = statusConfig?.invertedDefaultValue === true;
|
|
190
|
+
}
|
|
191
|
+
if (this.largeDesign) {
|
|
192
|
+
this.hideIcon = true;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
return (
|
|
196
|
+
<MObjectStatus
|
|
197
|
+
id={generate([this.getId(), "ObjectStatus"])}
|
|
198
|
+
inverted={this.inverted}
|
|
199
|
+
class={this.largeDesign ? "sapMObjectStatusLarge sapMObjectStatusLongText" : undefined}
|
|
200
|
+
state={criticalityExpression}
|
|
201
|
+
icon={this.hideIcon ? undefined : criticalityIconExpression}
|
|
202
|
+
text={textBinding}
|
|
203
|
+
visible={visible}
|
|
204
|
+
active={isActive}
|
|
205
|
+
reactiveAreaMode={this.reactiveAreaMode}
|
|
206
|
+
press={(pressEvent: ObjectStatus$PressEvent): void => {
|
|
207
|
+
this.fireEvent("press", pressEvent);
|
|
208
|
+
}}
|
|
209
|
+
/>
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
}
|