UNPKG

service-utilities

Version:

Utility Package for FIORI UI5

68 lines (59 loc) 1.57 kB
/** * @module FragmentController * @description Controller dedicated for Fragments * @author jpanti * @version 1.0.0 * @created 2025-08-01 * @lastModified 2025-08-01 * @license ISC */ sap.ui.define([], () => { "use strict"; var oFragmentControls = {}; var that; var sNamespace; return { async onStart(namespace, oController, aFragmentControls = []) { sNamespace = namespace; that = oController; await Promise.all( aFragmentControls.map((oFragmentControl) => this.add(oFragmentControl.name, oFragmentControl.target) ) ); }, async onAwake() {}, async onPreUpdate() {}, async onPostUpdate() {}, onDestroy() {}, async loadFragment(sName) { return FragmentDirective.load({ name: `${sNamespace}.${sName}`, controller: that, }); }, async add(sName, targetID) { if (!sName || sName.trim().length === 0) return; const oFragment = await this.loadFragment(sName); oFragmentControls[sName] = { key: sName, value: oFragment, target: targetID, }; oFragmentControls[sName].value.onInit(that); }, remove(sName) { if (!oFragmentControls.hasOwnProperty(sName)) return; oFragmentControls[sName].value.onExit(); delete oFragmentControls[sName]; }, show(sName) { if (!oFragmentControls.hasOwnProperty(sName)) return; // add Item }, hide(sName) { if (!oFragmentControls.hasOwnProperty(sName)) return; // remove Item }, }; });