diff --git a/.changeset/serious-beans-dream.md b/.changeset/serious-beans-dream.md new file mode 100644 index 00000000000..0d2811e5bee --- /dev/null +++ b/.changeset/serious-beans-dream.md @@ -0,0 +1,5 @@ +--- +"@sap-ux/fe-fpm-writer": patch +--- + +fpm-writer - Update ControllerExtension.d.ts for easier usage diff --git a/packages/fe-fpm-writer/templates/controller-extension/ControllerExtension.d.ts b/packages/fe-fpm-writer/templates/controller-extension/ControllerExtension.d.ts index 9f5de304992..3da988c3379 100644 --- a/packages/fe-fpm-writer/templates/controller-extension/ControllerExtension.d.ts +++ b/packages/fe-fpm-writer/templates/controller-extension/ControllerExtension.d.ts @@ -1,11 +1,38 @@ /** - * Helper to be able to define how to get the page specific extension API when writing a controller extension. - */ +* Helper to be able to define how to get the page specific extension API when writing a controller extension. +*/ declare module 'sap/ui/core/mvc/ControllerExtension' { - export default class ControllerExtension { - static overrides: unknown; - base: { - getExtensionAPI(): API; - } - } -} + import View from 'sap/ui/core/mvc/View'; + import AppComponent from 'sap/fe/core/AppComponent'; + import Controller from 'sap/ui/core/mvc/Controller'; + import EditFlow from 'sap/fe/core/controllerextensions/EditFlow'; + import IntentBasedNavigation from 'sap/fe/core/controllerextensions/IntentBasedNavigation'; + import MessageHandler from 'sap/fe/core/controllerextensions/MessageHandler'; + import Paginator from 'sap/fe/core/controllerextensions/Paginator'; + import Recommendations from 'sap/fe/core/controllerextensions/Recommendations'; + import Routing from 'sap/fe/core/controllerextensions/Routing'; + import Share from 'sap/fe/core/controllerextensions/Share'; + import ViewState from 'sap/fe/core/controllerextensions/ViewState'; + import CoreElement from 'sap/ui/core/Element'; + + export default class ControllerExtension { + override?: Overrides; + base: { + getExtensionAPI(): ExtensionAPI; + getView(): View; + getAppComponent(): AppComponent; + byId(id: string): CoreElement + }; + } + + export type Overrides = { + editFlow?: Partial; + intentBasedNavigation?: Partial; + messageHandler?: Partial; + paginator?: Partial; + recommendations?: Partial; + routing?: Partial; + share?: Partial; + viewState?: Partial; + } & Partial; +} \ No newline at end of file diff --git a/packages/fe-fpm-writer/test/unit/__snapshots__/controller-extension.test.ts.snap b/packages/fe-fpm-writer/test/unit/__snapshots__/controller-extension.test.ts.snap index 6ea8447e5ec..4dcb877ef1d 100644 --- a/packages/fe-fpm-writer/test/unit/__snapshots__/controller-extension.test.ts.snap +++ b/packages/fe-fpm-writer/test/unit/__snapshots__/controller-extension.test.ts.snap @@ -635,17 +635,43 @@ exports[`ControllerExtension generateControllerExtension New controller extensio exports[`ControllerExtension generateControllerExtension Typescript controller Check "ControllerExtension.d.ts" file 1`] = ` "/** - * Helper to be able to define how to get the page specific extension API when writing a controller extension. - */ +* Helper to be able to define how to get the page specific extension API when writing a controller extension. +*/ declare module 'sap/ui/core/mvc/ControllerExtension' { - export default class ControllerExtension { - static overrides: unknown; - base: { - getExtensionAPI(): API; - } - } -} -" + import View from 'sap/ui/core/mvc/View'; + import AppComponent from 'sap/fe/core/AppComponent'; + import Controller from 'sap/ui/core/mvc/Controller'; + import EditFlow from 'sap/fe/core/controllerextensions/EditFlow'; + import IntentBasedNavigation from 'sap/fe/core/controllerextensions/IntentBasedNavigation'; + import MessageHandler from 'sap/fe/core/controllerextensions/MessageHandler'; + import Paginator from 'sap/fe/core/controllerextensions/Paginator'; + import Recommendations from 'sap/fe/core/controllerextensions/Recommendations'; + import Routing from 'sap/fe/core/controllerextensions/Routing'; + import Share from 'sap/fe/core/controllerextensions/Share'; + import ViewState from 'sap/fe/core/controllerextensions/ViewState'; + import CoreElement from 'sap/ui/core/Element'; + + export default class ControllerExtension { + override?: Overrides; + base: { + getExtensionAPI(): ExtensionAPI; + getView(): View; + getAppComponent(): AppComponent; + byId(id: string): CoreElement + }; + } + + export type Overrides = { + editFlow?: Partial; + intentBasedNavigation?: Partial; + messageHandler?: Partial; + paginator?: Partial; + recommendations?: Partial; + routing?: Partial; + share?: Partial; + viewState?: Partial; + } & Partial; +}" `; exports[`ControllerExtension generateControllerExtension Typescript controller New controller extension - ListReport 1`] = `