@sap-ux/preview-middleware 0.16.164 → 0.16.167

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.
@@ -111,17 +111,7 @@ sap.ui.define(["../utils/error"], function (___utils_error) {
111
111
  /**
112
112
  * Writes a new annotation file to the project's workspace
113
113
  *
114
- * @param data Data to be send to the server
115
- * @returns Generic Promise<T>
116
- */
117
- async function writeAnnotationFile(data) {
118
- return request(ApiEndpoints.ANNOTATION_FILE, RequestMethod.POST, data);
119
- }
120
-
121
- /**
122
- * Writes a new annotation file to the project's workspace
123
- *
124
- * @returns Generic Promise<DataSoruceAnnotationMap>
114
+ * @returns Generic Promise<DataSourceAnnotationMap>
125
115
  */
126
116
  async function getDataSourceAnnotationFileMap() {
127
117
  return request(ApiEndpoints.ANNOTATION_FILE, RequestMethod.GET);
@@ -157,7 +147,6 @@ sap.ui.define(["../utils/error"], function (___utils_error) {
157
147
  __exports.getManifestAppdescr = getManifestAppdescr;
158
148
  __exports.readControllers = readControllers;
159
149
  __exports.writeController = writeController;
160
- __exports.writeAnnotationFile = writeAnnotationFile;
161
150
  __exports.getDataSourceAnnotationFileMap = getDataSourceAnnotationFileMap;
162
151
  __exports.getExistingController = getExistingController;
163
152
  __exports.writeChange = writeChange;
@@ -34,17 +34,20 @@ export interface CodeExtResponse {
34
34
  isRunningInBAS: boolean;
35
35
  }
36
36
 
37
- export interface AnnotationFileResponse {
37
+ export interface AnnotationFileDetails {
38
38
  annotationExistsInWS: boolean;
39
39
  annotationPath: string;
40
40
  annotationPathFromRoot: string;
41
- isRunningInBAS: boolean;
42
41
  }
43
42
 
44
- interface DataSoruceAnnotationMap {
45
- [key: string]: { serviceUrl: string; isRunningInBAS: boolean; annotationDetails: AnnotationFileResponse };
43
+ export interface AnnotationDataSourceMap {
44
+ [key: string]: { serviceUrl: string; annotationDetails: AnnotationFileDetails };
46
45
  }
47
46
 
47
+ export interface AnnotationDataSourceResponse {
48
+ isRunningInBAS: boolean;
49
+ annotationDataSourceMap: AnnotationDataSourceMap;
50
+ }
48
51
  export interface ControllersResponse {
49
52
  controllers: Controllers;
50
53
  message: string;
@@ -154,20 +157,10 @@ export async function writeController<T>(data: T): Promise<T> {
154
157
  /**
155
158
  * Writes a new annotation file to the project's workspace
156
159
  *
157
- * @param data Data to be send to the server
158
- * @returns Generic Promise<T>
159
- */
160
- export async function writeAnnotationFile<T>(data: T): Promise<T> {
161
- return request<T>(ApiEndpoints.ANNOTATION_FILE, RequestMethod.POST, data);
162
- }
163
-
164
- /**
165
- * Writes a new annotation file to the project's workspace
166
- *
167
- * @returns Generic Promise<DataSoruceAnnotationMap>
160
+ * @returns Generic Promise<DataSourceAnnotationMap>
168
161
  */
169
- export async function getDataSourceAnnotationFileMap(): Promise<DataSoruceAnnotationMap> {
170
- return request<DataSoruceAnnotationMap>(ApiEndpoints.ANNOTATION_FILE, RequestMethod.GET);
162
+ export async function getDataSourceAnnotationFileMap(): Promise<AnnotationDataSourceResponse> {
163
+ return request<AnnotationDataSourceResponse>(ApiEndpoints.ANNOTATION_FILE, RequestMethod.GET);
171
164
  }
172
165
 
173
166
  /**
@@ -24,6 +24,7 @@ sap.ui.define(["sap/ui/model/json/JSONModel", "./BaseDialog.controller", "../../
24
24
  */
25
25
  setup: async function _setup(dialog) {
26
26
  this.dialog = dialog;
27
+ this.setEscapeHandler();
27
28
  this.model.setProperty('/filePath', this.options.filePath);
28
29
  this.model.setProperty('/filePathFromRoot', this.options.fileName);
29
30
  this.model.setProperty('/isRunningInBAS', this.options.isRunningInBAS);
@@ -43,10 +44,6 @@ sap.ui.define(["sap/ui/model/json/JSONModel", "./BaseDialog.controller", "../../
43
44
  window.open(`vscode://file${annotationPath}`);
44
45
  this.handleDialogClose();
45
46
  },
46
- handleDialogClose: function _handleDialogClose() {
47
- this.dialog.close();
48
- this.dialog.destroy();
49
- },
50
47
  /**
51
48
  * Builds data that is used in the dialog.
52
49
  */
@@ -26,7 +26,6 @@ type FileExistModel = JSONModel & {
26
26
  export default class FileExistsDialog extends BaseDialog<FileExistModel> {
27
27
  private options: FileExistsDialogOptions;
28
28
  public model: JSONModel;
29
- private readonly _name: string;
30
29
  constructor(name: string, options: FileExistsDialogOptions) {
31
30
  super(name);
32
31
  this.model = new JSONModel();
@@ -40,7 +39,7 @@ export default class FileExistsDialog extends BaseDialog<FileExistModel> {
40
39
  */
41
40
  async setup(dialog: Dialog): Promise<void> {
42
41
  this.dialog = dialog;
43
-
42
+ this.setEscapeHandler();
44
43
  this.model.setProperty('/filePath', this.options.filePath);
45
44
  this.model.setProperty('/filePathFromRoot', this.options.fileName);
46
45
  this.model.setProperty('/isRunningInBAS', this.options.isRunningInBAS);
@@ -63,11 +62,6 @@ export default class FileExistsDialog extends BaseDialog<FileExistModel> {
63
62
  this.handleDialogClose();
64
63
  }
65
64
 
66
- handleDialogClose() {
67
- this.dialog.close();
68
- this.dialog.destroy();
69
- }
70
-
71
65
  /**
72
66
  * Builds data that is used in the dialog.
73
67
  */
@@ -19,6 +19,7 @@ sap.ui.define([
19
19
  const getUi5Version = _____utils_version['getUi5Version'];
20
20
  const isLowerThanMinimalUi5Version = _____utils_version['isLowerThanMinimalUi5Version'];
21
21
  const ADD_NEW_ANNOTATION_FILE = 'add-new-annotation-file';
22
+ const ADD_NEW_ANNOTATION_FILE_TITLE = 'QUICK_ACTION_ADD_NEW_ANNOTATION_FILE';
22
23
  class AddNewAnnotationFile extends QuickActionDefinitionBase {
23
24
  children = [];
24
25
  kind = NESTED_QUICK_ACTION_KIND;
@@ -29,7 +30,7 @@ sap.ui.define([
29
30
  return `${ this.context.key }-${ this.type }`;
30
31
  }
31
32
  constructor(context) {
32
- super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, 'QUICK_ACTION_ADD_NEW_ANNOTATION_FILE', context, [DIALOG_ENABLEMENT_VALIDATOR]);
33
+ super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, '', context, [DIALOG_ENABLEMENT_VALIDATOR]);
33
34
  this.context = context;
34
35
  }
35
36
  async initialize() {
@@ -42,34 +43,47 @@ sap.ui.define([
42
43
  this.isApplicable = false;
43
44
  return;
44
45
  }
45
- const dataSourceAnnotationFileMap = await getDataSourceAnnotationFileMap();
46
- if (!dataSourceAnnotationFileMap) {
46
+ this.annotationDataSourceData = await getDataSourceAnnotationFileMap();
47
+ const {annotationDataSourceMap} = this.annotationDataSourceData;
48
+ if (!Object.keys(this.annotationDataSourceData.annotationDataSourceMap).length) {
47
49
  throw new Error('No data sources found in the manifest');
48
50
  }
49
- for (const key in dataSourceAnnotationFileMap) {
50
- if (Object.prototype.hasOwnProperty.call(dataSourceAnnotationFileMap, key)) {
51
- const source = dataSourceAnnotationFileMap[key];
51
+ for (const key in annotationDataSourceMap) {
52
+ if (Object.prototype.hasOwnProperty.call(annotationDataSourceMap, key)) {
53
+ const source = annotationDataSourceMap[key];
54
+ const {annotationExistsInWS} = source.annotationDetails;
52
55
  this.children.push({
53
56
  enabled: true,
54
- label: source.annotationDetails.annotationExistsInWS ? this.context.resourceBundle.getText('SHOW_ANNOTATION_FILE', [key]) : this.context.resourceBundle.getText('ODATA_SOURCE', [key]),
57
+ label: annotationExistsInWS ? this.context.resourceBundle.getText('SHOW_ANNOTATION_FILE', [key]) : this.context.resourceBundle.getText('ADD_ANNOTATION_FILE', [key]),
55
58
  children: []
56
59
  });
57
60
  }
58
61
  }
59
62
  }
63
+ get textKey() {
64
+ let result = ADD_NEW_ANNOTATION_FILE_TITLE;
65
+ const dataSourceIds = Object.keys(this.annotationDataSourceData.annotationDataSourceMap);
66
+ if (dataSourceIds.length === 1) {
67
+ const details = this.annotationDataSourceData.annotationDataSourceMap[dataSourceIds[0]];
68
+ if (details.annotationDetails.annotationExistsInWS) {
69
+ result = 'QUICK_ACTION_SHOW_ANNOTATION_FILE';
70
+ }
71
+ }
72
+ return result;
73
+ }
60
74
  async execute(path) {
75
+ const {annotationDataSourceMap, isRunningInBAS} = this.annotationDataSourceData;
61
76
  const index = Number(path);
62
77
  if (index >= 0) {
63
- const dataSourceAnnotationFileMap = await getDataSourceAnnotationFileMap();
64
- const dataSourceId = Object.keys(dataSourceAnnotationFileMap)[index];
65
- const dataSource = dataSourceAnnotationFileMap?.[dataSourceId];
78
+ const dataSourceId = Object.keys(annotationDataSourceMap)[index];
79
+ const dataSource = annotationDataSourceMap[dataSourceId];
66
80
  if (dataSource?.annotationDetails.annotationExistsInWS) {
67
81
  const annotationFileDetails = dataSource.annotationDetails;
68
82
  const {annotationPath, annotationPathFromRoot} = annotationFileDetails;
69
83
  await DialogFactory.createDialog(OverlayRegistry.getOverlay(this.context.view), this.context.rta, DialogNames.FILE_EXISTS, undefined, {
70
84
  fileName: annotationPathFromRoot,
71
85
  filePath: annotationPath,
72
- isRunningInBAS: dataSource.isRunningInBAS
86
+ isRunningInBAS: isRunningInBAS
73
87
  });
74
88
  } else if (dataSource) {
75
89
  const timestamp = Date.now();
@@ -82,7 +96,7 @@ sap.ui.define([
82
96
  annotationsInsertPosition: 'END',
83
97
  dataSource: {
84
98
  [annotationNameSpace]: {
85
- uri: `../annotations/${ annotationFileName }`,
99
+ uri: `annotations/${ annotationFileName }`,
86
100
  type: 'ODataAnnotation'
87
101
  }
88
102
  }
@@ -106,7 +120,7 @@ sap.ui.define([
106
120
  kind: NESTED_QUICK_ACTION_KIND,
107
121
  id: this.id,
108
122
  enabled: this.isApplicable,
109
- title: this.context.resourceBundle.getText('QUICK_ACTION_ADD_NEW_ANNOTATION_FILE'),
123
+ title: this.context.resourceBundle.getText(this.textKey),
110
124
  children: this.children
111
125
  };
112
126
  }
@@ -1,6 +1,7 @@
1
1
  import FlexCommand from 'sap/ui/rta/command/FlexCommand';
2
2
 
3
3
  import { QuickActionContext, NestedQuickActionDefinition } from '../../../cpe/quick-actions/quick-action-definition';
4
+ import type { AnnotationDataSourceResponse } from '../../api-handler';
4
5
  import { getDataSourceAnnotationFileMap } from '../../api-handler';
5
6
  import {
6
7
  NESTED_QUICK_ACTION_KIND,
@@ -15,6 +16,7 @@ import CommandFactory from 'sap/ui/rta/command/CommandFactory';
15
16
  import { getUi5Version, isLowerThanMinimalUi5Version } from '../../../utils/version';
16
17
 
17
18
  export const ADD_NEW_ANNOTATION_FILE = 'add-new-annotation-file';
19
+ const ADD_NEW_ANNOTATION_FILE_TITLE = 'QUICK_ACTION_ADD_NEW_ANNOTATION_FILE';
18
20
 
19
21
  /**
20
22
  * Add New Annotation File.
@@ -31,10 +33,9 @@ export class AddNewAnnotationFile
31
33
  public get id(): string {
32
34
  return `${this.context.key}-${this.type}`;
33
35
  }
36
+ private annotationDataSourceData: AnnotationDataSourceResponse;
34
37
  constructor(protected readonly context: QuickActionContext) {
35
- super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, 'QUICK_ACTION_ADD_NEW_ANNOTATION_FILE', context, [
36
- DIALOG_ENABLEMENT_VALIDATOR
37
- ]);
38
+ super(ADD_NEW_ANNOTATION_FILE, NESTED_QUICK_ACTION_KIND, '', context, [DIALOG_ENABLEMENT_VALIDATOR]);
38
39
  }
39
40
 
40
41
  async initialize(): Promise<void> {
@@ -43,32 +44,42 @@ export class AddNewAnnotationFile
43
44
  this.isApplicable = false;
44
45
  return;
45
46
  }
46
- const dataSourceAnnotationFileMap = await getDataSourceAnnotationFileMap();
47
- if (!dataSourceAnnotationFileMap) {
47
+ this.annotationDataSourceData = await getDataSourceAnnotationFileMap();
48
+ const { annotationDataSourceMap } = this.annotationDataSourceData;
49
+ if (!Object.keys(this.annotationDataSourceData.annotationDataSourceMap).length) {
48
50
  throw new Error('No data sources found in the manifest');
49
51
  }
50
- for (const key in dataSourceAnnotationFileMap) {
51
- if (Object.prototype.hasOwnProperty.call(dataSourceAnnotationFileMap, key)) {
52
- const source = dataSourceAnnotationFileMap[key];
52
+ for (const key in annotationDataSourceMap) {
53
+ if (Object.prototype.hasOwnProperty.call(annotationDataSourceMap, key)) {
54
+ const source = annotationDataSourceMap[key];
55
+ const { annotationExistsInWS } = source.annotationDetails;
53
56
  this.children.push({
54
57
  enabled: true,
55
- label: source.annotationDetails.annotationExistsInWS
58
+ label: annotationExistsInWS
56
59
  ? this.context.resourceBundle.getText('SHOW_ANNOTATION_FILE', [key])
57
- : this.context.resourceBundle.getText('ODATA_SOURCE', [key]),
60
+ : this.context.resourceBundle.getText('ADD_ANNOTATION_FILE', [key]),
58
61
  children: []
59
62
  });
60
63
  }
61
64
  }
62
65
  }
66
+ protected get textKey() {
67
+ let result = ADD_NEW_ANNOTATION_FILE_TITLE;
68
+ const dataSourceIds = Object.keys(this.annotationDataSourceData.annotationDataSourceMap);
69
+ if (dataSourceIds.length === 1) {
70
+ const details = this.annotationDataSourceData.annotationDataSourceMap[dataSourceIds[0]];
71
+ if (details.annotationDetails.annotationExistsInWS) {
72
+ result = 'QUICK_ACTION_SHOW_ANNOTATION_FILE';
73
+ }
74
+ }
75
+ return result;
76
+ }
63
77
  async execute(path: string): Promise<FlexCommand[]> {
78
+ const { annotationDataSourceMap, isRunningInBAS } = this.annotationDataSourceData;
64
79
  const index = Number(path);
65
80
  if (index >= 0) {
66
- // Do not cache the result of getDataSourceAnnotationFileMap api,
67
- // as annotation file or datasource can be added outside using create command.
68
- // So refresh would be required for the cache to be updated.
69
- const dataSourceAnnotationFileMap = await getDataSourceAnnotationFileMap();
70
- const dataSourceId = Object.keys(dataSourceAnnotationFileMap)[index];
71
- const dataSource = dataSourceAnnotationFileMap?.[dataSourceId];
81
+ const dataSourceId = Object.keys(annotationDataSourceMap)[index];
82
+ const dataSource = annotationDataSourceMap[dataSourceId];
72
83
  if (dataSource?.annotationDetails.annotationExistsInWS) {
73
84
  const annotationFileDetails = dataSource.annotationDetails;
74
85
  const { annotationPath, annotationPathFromRoot } = annotationFileDetails;
@@ -80,7 +91,7 @@ export class AddNewAnnotationFile
80
91
  {
81
92
  fileName: annotationPathFromRoot,
82
93
  filePath: annotationPath,
83
- isRunningInBAS: dataSource.isRunningInBAS
94
+ isRunningInBAS: isRunningInBAS
84
95
  }
85
96
  );
86
97
  }
@@ -99,7 +110,7 @@ export class AddNewAnnotationFile
99
110
  annotationsInsertPosition: 'END',
100
111
  dataSource: {
101
112
  [annotationNameSpace]: {
102
- uri: `../annotations/${annotationFileName}`,
113
+ uri: `annotations/${annotationFileName}`,
103
114
  type: 'ODataAnnotation'
104
115
  }
105
116
  }
@@ -134,7 +145,7 @@ export class AddNewAnnotationFile
134
145
  kind: NESTED_QUICK_ACTION_KIND,
135
146
  id: this.id,
136
147
  enabled: this.isApplicable,
137
- title: this.context.resourceBundle.getText('QUICK_ACTION_ADD_NEW_ANNOTATION_FILE'),
148
+ title: this.context.resourceBundle.getText(this.textKey),
138
149
  children: this.children
139
150
  };
140
151
  }
@@ -4,14 +4,24 @@
4
4
  xmlns="sap.m"
5
5
  xmlns:core="sap.ui.core"
6
6
  xmlns:f="sap.ui.layout.form"
7
- title="{i18n>ANNOTATION_FILE_EXISTS}"
7
+ title="{i18n>EXTEND_WITH_ANNOTATION}"
8
8
  contentWidth="450px"
9
9
  class="sapUiRTABorder"
10
- type="Message"
11
10
  >
12
11
  <content>
13
- <Text text="{i18n>ANNOTATION_FILE_HAS_BEEN_FOUND}" />
14
- <Text text="{/filePathFromRoot}" />
12
+ <f:SimpleForm
13
+ id="showFileContentForm"
14
+ editable="true"
15
+ layout="ResponsiveGridLayout"
16
+ labelSpanS="12"
17
+ visible="false"
18
+ singleContainerFullSize="false"
19
+ >
20
+ <f:content>
21
+ <Label id="showFileFoundLabel" text="{i18n>ANNOTATION_FILE_HAS_BEEN_FOUND}" />
22
+ <Text id="showFilePathText" text="{/filePathFromRoot}" />
23
+ </f:content>
24
+ </f:SimpleForm>
15
25
  </content>
16
26
  <beginButton>
17
27
  <Button
@@ -635,9 +635,7 @@ export class ChangeService extends EventTarget {
635
635
  return undefined;
636
636
  }
637
637
 
638
- const { fileName } = change.getDefinition
639
- ? change.getDefinition()
640
- : (change.getJson() as { fileName: string });
638
+ const { fileName } = change.getDefinition ? change.getDefinition() : (change.getJson() as { fileName: string });
641
639
  if ((changeType === 'propertyChange' || changeType === 'propertyBindingChange') && selectorId) {
642
640
  let value = '';
643
641
  switch (changeType) {
@@ -11,6 +11,7 @@ sap.ui.define([
11
11
  const SIMPLE_QUICK_ACTION_KIND = ___sap_ux_private_control_property_editor_common['SIMPLE_QUICK_ACTION_KIND'];
12
12
  const NESTED_QUICK_ACTION_KIND = ___sap_ux_private_control_property_editor_common['NESTED_QUICK_ACTION_KIND'];
13
13
  const updateQuickAction = ___sap_ux_private_control_property_editor_common['updateQuickAction'];
14
+ const externalFileChange = ___sap_ux_private_control_property_editor_common['externalFileChange'];
14
15
  const getTextBundle = ____i18n['getTextBundle'];
15
16
  const DialogFactory = ____adp_dialog_factory['DialogFactory'];
16
17
  class QuickActionService {
@@ -41,6 +42,9 @@ sap.ui.define([
41
42
  this.sendAction(updateQuickAction(actionInstance.getActionObject()));
42
43
  }
43
44
  }
45
+ if (externalFileChange.match(action)) {
46
+ await this.reloadQuickActions(this.controlTreeIndex);
47
+ }
44
48
  });
45
49
  this.outlineService.onOutlineChange(async event => {
46
50
  this.controlTreeIndex = event.detail.controlIndex;
@@ -10,7 +10,8 @@ import {
10
10
  NESTED_QUICK_ACTION_KIND,
11
11
  QuickActionExecutionPayload,
12
12
  QuickActionGroup,
13
- updateQuickAction
13
+ updateQuickAction,
14
+ externalFileChange
14
15
  } from '@sap-ux-private/control-property-editor-common';
15
16
 
16
17
  import { ActionSenderFunction, ControlTreeIndex, Service, SubscribeFunction } from '../types';
@@ -76,6 +77,10 @@ export class QuickActionService implements Service {
76
77
  this.sendAction(updateQuickAction(actionInstance.getActionObject()));
77
78
  }
78
79
  }
80
+ if (externalFileChange.match(action)) {
81
+ await this.reloadQuickActions(this.controlTreeIndex);
82
+ }
83
+
79
84
  });
80
85
 
81
86
  this.outlineService.onOutlineChange(async (event) => {
@@ -7,7 +7,8 @@ QUICK_ACTION_OP_ADD_CUSTOM_SECTION=Add Custom Section
7
7
  QUICK_ACTION_ADD_CUSTOM_PAGE_ACTION=Add Custom Page Action
8
8
  QUICK_ACTION_ADD_CUSTOM_TABLE_ACTION=Add Custom Table Action
9
9
  QUICK_ACTION_ADD_CUSTOM_TABLE_COLUMN=Add Custom Table Column
10
- QUICK_ACTION_ADD_NEW_ANNOTATION_FILE=Add New Annotation File
10
+ QUICK_ACTION_ADD_NEW_ANNOTATION_FILE=Add Local Annotation File
11
+ QUICK_ACTION_SHOW_ANNOTATION_FILE=Show Local Annotation File
11
12
  QUICK_ACTION_ENABLE_TABLE_FILTERING=Enable Table Filtering for Page Variants
12
13
  QUICK_ACTION_ENABLE_TABLE_EMPTY_ROW_MODE=Enable Empty Row Mode for Tables
13
14
 
@@ -47,8 +48,8 @@ TABLE_FILTERING_CHANGE_HAS_ALREADY_BEEN_MADE=This option is disabled because tab
47
48
  EMPTY_ROW_MODE_IS_ALREADY_ENABLED=This option has been disabled because empty row mode is already enabled for this table
48
49
  EMPTY_ROW_MODE_IS_NOT_SUPPORTED=This action is disabled because empty row mode is not supported for analytical and tree tables
49
50
 
50
- ODATA_SOURCE=''{0}'' datasource
51
- SHOW_ANNOTATION_FILE=Show ''{0}'' annotation file
52
- ANNOTATION_FILE_EXISTS=Annotation File Exists
53
- ANNOTATION_FILE_HAS_BEEN_FOUND=An Annotation file has been found.
51
+ ADD_ANNOTATION_FILE=Add Annotation File for ''{0}''
52
+ SHOW_ANNOTATION_FILE=Show Annotation File for ''{0}''
53
+ EXTEND_WITH_ANNOTATION=Extend With Annotation
54
+ ANNOTATION_FILE_HAS_BEEN_FOUND=An annotation file has been found.
54
55
  SHOW_FILE_IN_VSCODE=Show File in VSCode
@@ -8,7 +8,7 @@ sap.ui.define((function () { 'use strict';
8
8
 
9
9
  (function (exports) {
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.setApplicationRequiresReload = exports.executeQuickAction = exports.updateQuickAction = exports.quickActionListChanged = exports.save = exports.redo = exports.undo = exports.appLoaded = exports.setSaveEnablement = exports.setUndoRedoEnablement = exports.applicationModeChanged = exports.setAppMode = exports.storageFileChanged = exports.reloadApplication = exports.showMessage = exports.changeStackModified = exports.propertyChangeFailed = exports.propertyChanged = exports.changeProperty = exports.outlineChanged = exports.deletePropertyChanges = exports.addExtensionPoint = exports.selectControl = exports.controlSelected = exports.iconsLoaded = exports.EXTERNAL_ACTION_PREFIX = exports.NESTED_QUICK_ACTION_KIND = exports.SIMPLE_QUICK_ACTION_KIND = exports.CONTROL_CHANGE_KIND = exports.UNKNOWN_CHANGE_KIND = exports.CONFIGURATION_CHANGE_KIND = exports.PROPERTY_CHANGE_KIND = exports.SAVED_CHANGE_TYPE = exports.PENDING_CHANGE_TYPE = exports.PropertyType = exports.SCENARIO = exports.CHECKBOX_EDITOR_TYPE = exports.DROPDOWN_EDITOR_TYPE = exports.INPUT_EDITOR_TYPE = exports.STRING_VALUE_TYPE = exports.FLOAT_VALUE_TYPE = exports.INTEGER_VALUE_TYPE = exports.BOOLEAN_VALUE_TYPE = void 0;
11
+ exports.externalFileChange = exports.setApplicationRequiresReload = exports.executeQuickAction = exports.updateQuickAction = exports.quickActionListChanged = exports.save = exports.redo = exports.undo = exports.appLoaded = exports.setSaveEnablement = exports.setUndoRedoEnablement = exports.applicationModeChanged = exports.setAppMode = exports.storageFileChanged = exports.reloadApplication = exports.showMessage = exports.changeStackModified = exports.propertyChangeFailed = exports.propertyChanged = exports.changeProperty = exports.outlineChanged = exports.deletePropertyChanges = exports.addExtensionPoint = exports.selectControl = exports.controlSelected = exports.iconsLoaded = exports.EXTERNAL_ACTION_PREFIX = exports.NESTED_QUICK_ACTION_KIND = exports.SIMPLE_QUICK_ACTION_KIND = exports.CONTROL_CHANGE_KIND = exports.UNKNOWN_CHANGE_KIND = exports.CONFIGURATION_CHANGE_KIND = exports.PROPERTY_CHANGE_KIND = exports.SAVED_CHANGE_TYPE = exports.PENDING_CHANGE_TYPE = exports.PropertyType = exports.SCENARIO = exports.CHECKBOX_EDITOR_TYPE = exports.DROPDOWN_EDITOR_TYPE = exports.INPUT_EDITOR_TYPE = exports.STRING_VALUE_TYPE = exports.FLOAT_VALUE_TYPE = exports.INTEGER_VALUE_TYPE = exports.BOOLEAN_VALUE_TYPE = void 0;
12
12
  exports.BOOLEAN_VALUE_TYPE = 'boolean';
13
13
  exports.INTEGER_VALUE_TYPE = 'integer';
14
14
  exports.FLOAT_VALUE_TYPE = 'float';
@@ -99,6 +99,7 @@ sap.ui.define((function () { 'use strict';
99
99
  exports.updateQuickAction = createExternalAction('update-quick-action');
100
100
  exports.executeQuickAction = createExternalAction('execute-quick-action');
101
101
  exports.setApplicationRequiresReload = createExternalAction('set-application-requires-reload');
102
+ exports.externalFileChange = createExternalAction('external-file-change');
102
103
 
103
104
  } (api));
104
105
 
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "bugs": {
10
10
  "url": "https://github.com/SAP/open-ux-tools/issues?q=is%3Aopen+is%3Aissue+label%3Abug+label%3Apreview-middleware"
11
11
  },
12
- "version": "0.16.164",
12
+ "version": "0.16.167",
13
13
  "license": "Apache-2.0",
14
14
  "author": "@SAP/ux-tools-team",
15
15
  "main": "dist/index.js",
@@ -25,12 +25,12 @@
25
25
  "ejs": "3.1.10",
26
26
  "mem-fs": "2.1.0",
27
27
  "mem-fs-editor": "9.4.0",
28
- "@sap-ux/logger": "0.6.0",
29
28
  "@sap-ux/feature-toggle": "0.2.3",
30
29
  "@sap-ux/btp-utils": "0.17.2",
31
- "@sap-ux/adp-tooling": "0.12.106",
32
- "@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.5.31",
33
- "@sap-ux/project-access": "1.28.10"
30
+ "@sap-ux/adp-tooling": "0.12.108",
31
+ "@sap-ux/control-property-editor-sources": "npm:@sap-ux/control-property-editor@0.5.32",
32
+ "@sap-ux/project-access": "1.28.10",
33
+ "@sap-ux/logger": "0.6.0"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/ejs": "3.1.2",
@@ -46,7 +46,7 @@
46
46
  "supertest": "6.3.3",
47
47
  "@sap-ux-private/playwright": "0.1.0",
48
48
  "dotenv": "16.3.1",
49
- "@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.11.47",
49
+ "@private/preview-middleware-client": "npm:@sap-ux-private/preview-middleware-client@0.11.48",
50
50
  "@sap-ux/axios-extension": "1.18.0",
51
51
  "@sap-ux/store": "1.0.0",
52
52
  "@sap-ux/ui5-info": "0.8.3",