service-utilities
Version:
Utility Package for FIORI UI5
68 lines (59 loc) • 1.57 kB
JavaScript
/**
* @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
},
};
});