Your IP : 216.73.216.26


Current Path : /home2/wtmwscom/public_html/post/Track and Trace_files/
Upload File :
Current File : /home2/wtmwscom/public_html/post/Track and Trace_files/OutSystemsUI_009.js

define("OutSystemsUI.Content.AccordionItem.mvc$model", ["OutSystems/ClientRuntime/Main", "OutSystemsUI.model", "OutSystemsUI.controller", "OutSystemsUI.controller$IsWebApp"], function (OutSystems, OutSystemsUIModel, OutSystemsUIController) {
var OS = OutSystems.Internal;


var VariablesRecord = (function (_super) {
__extends(VariablesRecord, _super);
function VariablesRecord(defaults) {
_super.apply(this, arguments);
}
VariablesRecord.attributesToDeclare = function () {
return [
this.attr("IsMultipleItems", "isMultipleItemsVar", "IsMultipleItems", true, false, OS.Types.Boolean, function () {
return false;
}, false), 
this.attr("AccordionObj", "accordionObjVar", "AccordionObj", true, false, OS.Types.Object, function () {
return null;
}, false), 
this.attr("HasWrapper", "hasWrapperVar", "HasWrapper", true, false, OS.Types.Boolean, function () {
return false;
}, false), 
this.attr("IsWebApp", "isWebAppVar", "IsWebApp", true, false, OS.Types.Boolean, function () {
return false;
}, false), 
this.attr("IsExpanded", "isExpandedIn", "IsExpanded", true, false, OS.Types.Boolean, function () {
return false;
}, false), 
this.attr("_isExpandedInDataFetchStatus", "_isExpandedInDataFetchStatus", "_isExpandedInDataFetchStatus", true, false, OS.Types.Integer, function () {
return /*Fetched*/ 1;
}, false), 
this.attr("UsePadding", "usePaddingIn", "UsePadding", true, false, OS.Types.Boolean, function () {
return true;
}, false), 
this.attr("_usePaddingInDataFetchStatus", "_usePaddingInDataFetchStatus", "_usePaddingInDataFetchStatus", true, false, OS.Types.Integer, function () {
return /*Fetched*/ 1;
}, false), 
this.attr("IsDisabled", "isDisabledIn", "IsDisabled", true, false, OS.Types.Boolean, function () {
return false;
}, false), 
this.attr("_isDisabledInDataFetchStatus", "_isDisabledInDataFetchStatus", "_isDisabledInDataFetchStatus", true, false, OS.Types.Integer, function () {
return /*Fetched*/ 1;
}, false), 
this.attr("ExtendedClass", "extendedClassIn", "ExtendedClass", true, false, OS.Types.Text, function () {
return "";
}, false), 
this.attr("_extendedClassInDataFetchStatus", "_extendedClassInDataFetchStatus", "_extendedClassInDataFetchStatus", true, false, OS.Types.Integer, function () {
return /*Fetched*/ 1;
}, false)
].concat(_super.attributesToDeclare.call(this));
};
VariablesRecord.init();
return VariablesRecord;
})(OS.DataTypes.GenericRecord);
var WidgetsRecord = (function (_super) {
__extends(WidgetsRecord, _super);
function WidgetsRecord() {
_super.apply(this, arguments);
}
WidgetsRecord.getWidgetsType = function () {
return {};
};

return WidgetsRecord;
})(OS.Model.BaseWidgetRecordMap);
var Model = (function (_super) {
__extends(Model, _super);
function Model() {
_super.apply(this, arguments);
}
Model.getVariablesRecordConstructor = function () {
return VariablesRecord;
};
Model.getWidgetsRecordConstructor = function () {
return WidgetsRecord;
};
Object.defineProperty(Model, "hasValidationWidgets", {
enumerable: true,
configurable: true,
get: function () {
return false;
}
});

Model.prototype.setInputs = function (inputs) {
if("IsExpanded" in inputs) {
this.variables.isExpandedIn = inputs.IsExpanded;
if("_isExpandedInDataFetchStatus" in inputs) {
this.variables._isExpandedInDataFetchStatus = inputs._isExpandedInDataFetchStatus;
}

}

if("UsePadding" in inputs) {
this.variables.usePaddingIn = inputs.UsePadding;
if("_usePaddingInDataFetchStatus" in inputs) {
this.variables._usePaddingInDataFetchStatus = inputs._usePaddingInDataFetchStatus;
}

}

if("IsDisabled" in inputs) {
this.variables.isDisabledIn = inputs.IsDisabled;
if("_isDisabledInDataFetchStatus" in inputs) {
this.variables._isDisabledInDataFetchStatus = inputs._isDisabledInDataFetchStatus;
}

}

if("ExtendedClass" in inputs) {
this.variables.extendedClassIn = inputs.ExtendedClass;
if("_extendedClassInDataFetchStatus" in inputs) {
this.variables._extendedClassInDataFetchStatus = inputs._extendedClassInDataFetchStatus;
}

}

};
return Model;
})(OS.Model.BaseViewModel);
return new OS.Model.ModelFactory(Model);
});
define("OutSystemsUI.Content.AccordionItem.mvc$view", ["OutSystems/ClientRuntime/Main", "OutSystemsUI.model", "OutSystemsUI.controller", "react", "OutSystems/ReactView/Main", "OutSystemsUI.Content.AccordionItem.mvc$model", "OutSystemsUI.Content.AccordionItem.mvc$controller", "OutSystems/ReactWidgets/Main", "OutSystemsUI.controller$IsWebApp"], function (OutSystems, OutSystemsUIModel, OutSystemsUIController, React, OSView, OutSystemsUI_Content_AccordionItem_mvc_model, OutSystemsUI_Content_AccordionItem_mvc_controller, OSWidgets) {
    var OS = OutSystems.Internal;
var PlaceholderContent = OSView.Widget.PlaceholderContent;
var IteratorPlaceholderContent = OSView.Widget.IteratorPlaceholderContent;


    var View = (function (_super) {
        __extends(View,_super);
        function View() {
            try {
                this.initialize.apply(this, arguments);
            } catch (error) {
                View.handleError(error);
                throw error;
            }
        }
        View.prototype.initialize = function() {
            _super.apply(this, arguments);
        };
        View.displayName = "Content.AccordionItem";
        View.getCssDependencies = function() {
            return ["css/OutSystemsReactWidgets.css"];
        };
        View.getJsDependencies = function() {
            return [];
        };
        View.getBlocks = function() {
            return [];
        };
        Object.defineProperty(View.prototype, "modelFactory", {
            get: function () {
                return OutSystemsUI_Content_AccordionItem_mvc_model;
            },
            enumerable: true,
            configurable: true
        });
        Object.defineProperty(View.prototype, "controllerFactory", {
            get: function () {
                return OutSystemsUI_Content_AccordionItem_mvc_controller;
            },
            enumerable: true,
            configurable: true
        });
        Object.defineProperty(View.prototype, "title", {
            get: function () {
                return "";
            },
            enumerable: true,
            configurable: true
        });
        View.prototype.internalRender = function() {
            var model = this.model;
            var controller = this.controller;
            var idService = this.idService;
            var validationService = controller.validationService;
            var widgetsRecordProvider = this.widgetsRecordProvider;
            var callContext = controller.callContext();
            var $if = View.ifWidget;
            var asPrimitiveValue = View.asPrimitiveValue;
            var _this = this;

            return React.createElement("div", this.getRootNodeProperties(), React.createElement(OSWidgets.Container, {
align: /*Default*/ 0,
animate: false,
extendedProperties: {
"data-expanded": (model.variables.isExpandedIn ? "True" : "False")
},
style: model.getCachedValue(idService.getId("SectionItem.Style"), function () {
return (((("section-expandable " + ((model.variables.isExpandedIn) ? (" open is--open") : ("is--closed"))) + ((model.variables.isDisabledIn) ? (" is--disabled") : (""))) + " ") + model.variables.extendedClassIn);
}, function () {
return model.variables.isExpandedIn;
}, function () {
return model.variables.isDisabledIn;
}, function () {
return model.variables.extendedClassIn;
}),
visible: true,
_idProps: {
service: idService,
name: "SectionItem"
},
_widgetRecordProvider: widgetsRecordProvider,
style_dataFetchStatus: OS.Model.calculateDataFetchStatus(model.variables._isExpandedInDataFetchStatus, model.variables._isDisabledInDataFetchStatus, model.variables._extendedClassInDataFetchStatus)
}, React.createElement(OSWidgets.Container, {
align: /*Default*/ 0,
animate: false,
extendedEvents: {
onClick: function () {
return Promise.resolve().then(function () {
var eventHandlerContext = callContext.clone();
controller.onClick$Action(idService.getId("SectionItem"), controller.callContext(eventHandlerContext));
});
;
}
},
style: "section-expandable-title",
visible: true,
_idProps: {
service: idService,
uuid: "1"
},
_widgetRecordProvider: widgetsRecordProvider
}, React.createElement(OSWidgets.Placeholder, {
align: /*Default*/ 0,
content: _this.props.placeholders.title,
style: model.getCachedValue(idService.getId("Title.Style"), function () {
return ("dividers full-width" + ((model.variables.isWebAppVar) ? ("") : (" text-ellipsis")));
}, function () {
return model.variables.isWebAppVar;
}),
_idProps: {
service: idService,
name: "Title"
},
_widgetRecordProvider: widgetsRecordProvider
}), React.createElement(OSWidgets.Container, {
align: /*Default*/ 0,
animate: false,
style: "section-expandable-icon",
visible: true,
_idProps: {
service: idService,
uuid: "3"
},
_widgetRecordProvider: widgetsRecordProvider
})), React.createElement(OSWidgets.Container, {
align: /*Default*/ 0,
animate: false,
style: model.getCachedValue(idService.getId("ContentWrapper.Style"), function () {
return ("section-expandable-content is--collapsed" + ((model.variables.usePaddingIn) ? ("") : (" no-padding")));
}, function () {
return model.variables.usePaddingIn;
}),
visible: true,
_idProps: {
service: idService,
name: "ContentWrapper"
},
_widgetRecordProvider: widgetsRecordProvider,
style_dataFetchStatus: OS.Model.calculateDataFetchStatus(model.variables._usePaddingInDataFetchStatus)
}, React.createElement(OSWidgets.Placeholder, {
align: /*Default*/ 0,
content: _this.props.placeholders.content,
_idProps: {
service: idService,
name: "Content"
},
_widgetRecordProvider: widgetsRecordProvider
}))));
        };
        return View;
    })(OSView.BaseView.BaseWebBlock);
	
    return View;
});
define("OutSystemsUI.Content.AccordionItem.mvc$controller", ["OutSystems/ClientRuntime/Main", "OutSystemsUI.model", "OutSystemsUI.controller", "OutSystemsUI.languageResources", "OutSystemsUI.Content.AccordionItem.mvc$controller.OnClick.CloseAllJS", "OutSystemsUI.Content.AccordionItem.mvc$controller.OnClick.UpdateAttributeJS", "OutSystemsUI.Content.AccordionItem.mvc$controller.Collapse.CollapseJS", "OutSystemsUI.Content.AccordionItem.mvc$controller.OnReady.InitJS", "OutSystemsUI.Content.AccordionItem.mvc$controller.OnReady.SetGlobalActionsJS", "OutSystemsUI.Content.AccordionItem.mvc$controller.Expand.ExpandJS", "OutSystemsUI.controller$IsWebApp"], function (OutSystems, OutSystemsUIModel, OutSystemsUIController, OutSystemsUILanguageResources, OutSystemsUI_Content_AccordionItem_mvc_controller_OnClick_CloseAllJS, OutSystemsUI_Content_AccordionItem_mvc_controller_OnClick_UpdateAttributeJS, OutSystemsUI_Content_AccordionItem_mvc_controller_Collapse_CollapseJS, OutSystemsUI_Content_AccordionItem_mvc_controller_OnReady_InitJS, OutSystemsUI_Content_AccordionItem_mvc_controller_OnReady_SetGlobalActionsJS, OutSystemsUI_Content_AccordionItem_mvc_controller_Expand_ExpandJS) {
var OS = OutSystems.Internal;
var Controller = (function (_super) {
__extends(Controller, _super);
function Controller() {
_super.apply(this, arguments);
var controller = this.controller;
this.clientActionProxies = {
collapse$Action: function () {
return controller.executeActionInsideJSNode(controller._collapse$Action.bind(controller), controller.callContext(), function (actionResults) {
return {};
});
},
expand$Action: function () {
return controller.executeActionInsideJSNode(controller._expand$Action.bind(controller), controller.callContext(), function (actionResults) {
return {};
});
}
};
this.dataFetchDependenciesOriginal = {};
this.dataFetchDependentsGraph = {};
this.useImprovedDataFetch = false;
this.hasDependenciesBetweenSources = false;
this.shouldSendClientVarsToDataSources = false;
}
// Server Actions

// Aggregates and Data Actions

Controller.prototype.dataFetchActionNames = [];
// Client Actions
Controller.prototype._onClick$Action = function (elemIdIn, callContext) {
var model = this.model;
var controller = this.controller;
var idService = this.idService;
controller.ensureControllerAlive("OnClick");
callContext = controller.callContext(callContext);
var vars = new OS.DataTypes.VariableHolder(new (controller.constructor.getVariableGroupType("OutSystemsUI.Content.AccordionItem.OnClick$vars"))());
vars.value.elemIdInLocal = elemIdIn;
return OS.Flow.executeAsyncFlow(function () {
return OS.Flow.executeSequence(function () {
if((!(model.variables.isDisabledIn))) {
if((model.variables.hasWrapperVar)) {
if((!(model.variables.isMultipleItemsVar))) {
controller.safeExecuteJSNode(OutSystemsUI_Content_AccordionItem_mvc_controller_OnClick_CloseAllJS, "CloseAll", "OnClick", {
WidgetId: OS.DataConversion.JSNodeParamConverter.to(vars.value.elemIdInLocal, OS.Types.Text),
AccordionObj: OS.DataConversion.JSNodeParamConverter.to(model.variables.accordionObjVar, OS.Types.Object)
}, function ($parameters) {
}, {}, {});
}

}

if((model.variables.isExpandedIn)) {
// Execute Action: Collapse
controller._collapse$Action(callContext);
} else {
// Execute Action: Expand
controller._expand$Action(callContext);
}

// Trigger Event: OnToggle
return controller.onToggle$Action(model.variables.isExpandedIn, callContext).then(function () {
controller.safeExecuteJSNode(OutSystemsUI_Content_AccordionItem_mvc_controller_OnClick_UpdateAttributeJS, "UpdateAttribute", "OnClick", {
IsExpanded: OS.DataConversion.JSNodeParamConverter.to(model.variables.isExpandedIn, OS.Types.Boolean),
WidgetId: OS.DataConversion.JSNodeParamConverter.to(vars.value.elemIdInLocal, OS.Types.Text)
}, function ($parameters) {
}, {}, {});
});
}

});
});
};
Controller.registerVariableGroupType("OutSystemsUI.Content.AccordionItem.OnClick$vars", [{
name: "ElemId",
attrName: "elemIdInLocal",
mandatory: true,
dataType: OS.Types.Text,
defaultValue: function () {
return "";
}
}]);
Controller.prototype._collapse$Action = function (callContext) {
var model = this.model;
var controller = this.controller;
var idService = this.idService;
controller.ensureControllerAlive("Collapse");
callContext = controller.callContext(callContext);
controller.safeExecuteJSNode(OutSystemsUI_Content_AccordionItem_mvc_controller_Collapse_CollapseJS, "Collapse", "Collapse", {
WidgetId: OS.DataConversion.JSNodeParamConverter.to(idService.getId("SectionItem"), OS.Types.Text)
}, function ($parameters) {
}, {}, {});
// IsExpanded = False
model.variables.isExpandedIn = false;
};
Controller.prototype._onReady$Action = function (idIn, callContext) {
var model = this.model;
var controller = this.controller;
var idService = this.idService;
controller.ensureControllerAlive("OnReady");
callContext = controller.callContext(callContext);
var vars = new OS.DataTypes.VariableHolder(new (controller.constructor.getVariableGroupType("OutSystemsUI.Content.AccordionItem.OnReady$vars"))());
vars.value.idInLocal = idIn;
var initJSResult = new OS.DataTypes.VariableHolder();
initJSResult.value = controller.safeExecuteJSNode(OutSystemsUI_Content_AccordionItem_mvc_controller_OnReady_InitJS, "Init", "OnReady", {
Id: OS.DataConversion.JSNodeParamConverter.to(vars.value.idInLocal, OS.Types.Text),
ContentId: OS.DataConversion.JSNodeParamConverter.to(idService.getId("ContentWrapper"), OS.Types.Text),
IsExpanded: OS.DataConversion.JSNodeParamConverter.to(model.variables.isExpandedIn, OS.Types.Boolean),
IsMultipleItems: OS.DataConversion.JSNodeParamConverter.to(false, OS.Types.Boolean),
AccordionObj: OS.DataConversion.JSNodeParamConverter.to(null, OS.Types.Object),
HasWrapper: OS.DataConversion.JSNodeParamConverter.to(false, OS.Types.Boolean)
}, function ($parameters) {
var jsNodeResult = new (controller.constructor.getVariableGroupType("OutSystemsUI.Content.AccordionItem.OnReady$initJSResult"))();
jsNodeResult.isMultipleItemsOut = OS.DataConversion.JSNodeParamConverter.from($parameters.IsMultipleItems, OS.Types.Boolean);
jsNodeResult.accordionObjOut = OS.DataConversion.JSNodeParamConverter.from($parameters.AccordionObj, OS.Types.Object);
jsNodeResult.hasWrapperOut = OS.DataConversion.JSNodeParamConverter.from($parameters.HasWrapper, OS.Types.Boolean);
return jsNodeResult;
}, {}, {});
// IsMultipleItems = Init.IsMultipleItems
model.variables.isMultipleItemsVar = initJSResult.value.isMultipleItemsOut;
// AccordionObj = Init.AccordionObj
model.variables.accordionObjVar = initJSResult.value.accordionObjOut;
// HasWrapper = Init.HasWrapper
model.variables.hasWrapperVar = initJSResult.value.hasWrapperOut;
// IsWebApp = IsWebApp()
model.variables.isWebAppVar = OutSystemsUIController.default.isWebApp$Action(callContext).isWebAppOut;
controller.safeExecuteJSNode(OutSystemsUI_Content_AccordionItem_mvc_controller_OnReady_SetGlobalActionsJS, "SetGlobalActions", "OnReady", {
WidgetId: OS.DataConversion.JSNodeParamConverter.to(idService.getId("SectionItem"), OS.Types.Text)
}, function ($parameters) {
}, {
Collapse: controller.clientActionProxies.collapse$Action,
Expand: controller.clientActionProxies.expand$Action
}, {});
};
Controller.registerVariableGroupType("OutSystemsUI.Content.AccordionItem.OnReady$vars", [{
name: "Id",
attrName: "idInLocal",
mandatory: true,
dataType: OS.Types.Text,
defaultValue: function () {
return "";
}
}]);
Controller.registerVariableGroupType("OutSystemsUI.Content.AccordionItem.OnReady$initJSResult", [{
name: "IsMultipleItems",
attrName: "isMultipleItemsOut",
mandatory: true,
dataType: OS.Types.Boolean,
defaultValue: function () {
return false;
}
}, {
name: "AccordionObj",
attrName: "accordionObjOut",
mandatory: true,
dataType: OS.Types.Object,
defaultValue: function () {
return null;
}
}, {
name: "HasWrapper",
attrName: "hasWrapperOut",
mandatory: true,
dataType: OS.Types.Boolean,
defaultValue: function () {
return false;
}
}]);
Controller.prototype._expand$Action = function (callContext) {
var model = this.model;
var controller = this.controller;
var idService = this.idService;
controller.ensureControllerAlive("Expand");
callContext = controller.callContext(callContext);
controller.safeExecuteJSNode(OutSystemsUI_Content_AccordionItem_mvc_controller_Expand_ExpandJS, "Expand", "Expand", {
WidgetId: OS.DataConversion.JSNodeParamConverter.to(idService.getId("SectionItem"), OS.Types.Text)
}, function ($parameters) {
}, {}, {});
// IsExpanded = True
model.variables.isExpandedIn = true;
};

Controller.prototype.onClick$Action = function (elemIdIn, callContext) {
var controller = this.controller;
return controller.safeExecuteClientAction(controller._onClick$Action, callContext, elemIdIn);

};
Controller.prototype.collapse$Action = function (callContext) {
var controller = this.controller;
return controller.safeExecuteClientAction(controller._collapse$Action, callContext);

};
Controller.prototype.onReady$Action = function (idIn, callContext) {
var controller = this.controller;
return controller.safeExecuteClientAction(controller._onReady$Action, callContext, idIn);

};
Controller.prototype.expand$Action = function (callContext) {
var controller = this.controller;
return controller.safeExecuteClientAction(controller._expand$Action, callContext);

};
Controller.prototype.onToggle$Action = function () {
return Promise.resolve();
};

// Event Handler Actions
Controller.prototype.onInitializeEventHandler = null;
Controller.prototype.onReadyEventHandler = function (callContext) {
var controller = this.controller;
var model = this.model;
var idService = this.idService;

return controller.onReady$Action(idService.getId("SectionItem"), callContext);

};
Controller.prototype.onRenderEventHandler = null;
Controller.prototype.onDestroyEventHandler = null;
Controller.prototype.onParametersChangedEventHandler = function (callContext) {
var controller = this.controller;
var model = this.model;
var idService = this.idService;

return controller.onReady$Action(idService.getId("SectionItem"), callContext);

};
Controller.prototype.handleError = function (ex) {
return controller.handleError(ex);
};
Controller.checkPermissions = function () {
};
Controller.prototype.getDefaultTimeout = function () {
return OutSystemsUIController.default.defaultTimeout;
};
return Controller;
})(OS.Controller.BaseViewController);
return new OS.Controller.ControllerFactory(Controller, OutSystemsUILanguageResources);
});
define("OutSystemsUI.Content.AccordionItem.mvc$controller.OnClick.CloseAllJS", [], function () {
return function ($parameters, $actions, $roles, $public) {
var accordion = $parameters.AccordionObj;
var accordionItems = accordion.querySelectorAll('.section-expandable');
var thisElem = document.getElementById($parameters.WidgetId);

var isClosed = function(currentAccordionItem) {
    if(currentAccordionItem.classList.contains('is--closed')) {
        return true;
    }
    
    return false;
};

currAccordionItem = thisElem;

for(var i = 0; i < accordionItems.length; i++) {
    var accordionItem = accordionItems[i];
    if(accordionItem !== currAccordionItem && !isClosed(accordionItem)) {
        accordionItem.CollapseItem();
    }
}






};
});
define("OutSystemsUI.Content.AccordionItem.mvc$controller.OnClick.UpdateAttributeJS", [], function () {
return function ($parameters, $actions, $roles, $public) {
var accordionItem  = document.getElementById($parameters.WidgetId);

accordionItem.setAttribute('data-expanded', $parameters.IsExpanded);


};
});
define("OutSystemsUI.Content.AccordionItem.mvc$controller.Collapse.CollapseJS", [], function () {
return function ($parameters, $actions, $roles, $public) {

var currentAccordionItem = document.getElementById($parameters.WidgetId);

var currentAccordionItemContent = currentAccordionItem.querySelector('.section-expandable-content');

currentAccordionItemContent.removeAttribute('style');

// Gets initial height value
var expandedHeight = currentAccordionItemContent.getBoundingClientRect().height;

// Toggle is--closed/is--open class from current accordion item
currentAccordionItem.classList.add('is--closed');
currentAccordionItem.classList.remove('is--open');

// Removes expanded class and adds the collapsed class to obtain the collapsed height value
currentAccordionItemContent.classList.remove('is--expanded');
currentAccordionItemContent.classList.add('is--collapsed');

var collapsedHeight = currentAccordionItemContent.getBoundingClientRect().height;

currentAccordionItemContent.style.height = expandedHeight + 'px';

// Removes collapsed class and adds the expanded class to animate
currentAccordionItemContent.classList.add('is--expanded');
currentAccordionItemContent.classList.remove('is--collapsed');

// This setTimeout (0ms) will ensure that the DOM received the height 0 before actually starts the transition
var waitDomIterateTimeout = setTimeout(function() {
    
    // Adds is--animating class to current accordion item content to obtain the final height value
    currentAccordionItemContent.classList.add('is--animating');
    
    // Removes is--expanded class from current accordion item content
    currentAccordionItemContent.classList.remove('is--expanded');
    
    currentAccordionItemContent.style.height = collapsedHeight + 'px';
    
    // Adds event listener to transition end
    currentAccordionItemContent.addEventListener('transitionend', transitionEndHandler);
    
    // Adds is--collapsed class to current accordion item content
    currentAccordionItemContent.classList.add('is--collapsed');
    
    // Clear timeout
    clearTimeout(waitDomIterateTimeout);
}, 0);

var transitionEndHandler = function() {
    var currentElement = currentAccordionItemContent;
    var currentElementHeader = currentAccordionItem.querySelector('.section-expandable-title');
    
    if(currentElement) {
        // Removes is--animating class
        currentElement.classList.remove('is--animating');
        
        // Remove height and pointer events inline style
        currentElement.style.height = '';
        currentElementHeader.style.pointerEvents = '';
        
        // Verify if the currentElement has inline-styles and remove attribute if are empty
        if(currentElement.style.cssText.length === 0) {
            currentElement.removeAttribute('style');
        }
        
        // Removes transitionend event listener
        currentElement.removeEventListener('transitionend', transitionEndHandler, false);   
    }
};
};
});
define("OutSystemsUI.Content.AccordionItem.mvc$controller.OnReady.InitJS", [], function () {
return function ($parameters, $actions, $roles, $public) {
var sectionItem = document.getElementById($parameters.Id);
var sectionContent = document.getElementById($parameters.ContentId);
var accordion;

accordion = sectionItem.parentNode.parentNode;

if(accordion.classList.contains('list')){
    accordion = accordion.parentNode;
}

var multipleItemsData = accordion.getAttribute('data-multiple-items');

// Check if is inside Accordion
if(accordion.classList.contains('accordion')) {
    $parameters.HasWrapper = true;
} 

// Check if MultipleItems is False
if(multipleItemsData === 'True') {
    $parameters.IsMultipleItems = true;
}

// Add classes if expanded set as true. Doing here, instead of using Platform If on div, to avoid conflict with FLIP animation
if($parameters.IsExpanded) {
    sectionContent.classList.remove('is--collapsed');
    sectionContent.classList.add('is--expanded');
}

$parameters.AccordionObj = accordion;
};
});
define("OutSystemsUI.Content.AccordionItem.mvc$controller.OnReady.SetGlobalActionsJS", [], function () {
return function ($parameters, $actions, $roles, $public) {
var element = document.getElementById($parameters.WidgetId);

// Add actions
element.CollapseItem = function() { 
    $actions.Collapse();
};

element.ExpandItem = function() { 
    $actions.Expand();
};
};
});
define("OutSystemsUI.Content.AccordionItem.mvc$controller.Expand.ExpandJS", [], function () {
return function ($parameters, $actions, $roles, $public) {

var currentAccordionItem = document.getElementById($parameters.WidgetId);

var currentAccordionItemContent = currentAccordionItem.querySelector('.section-expandable-content');
var currentAccordionItemHeader = currentAccordionItem.querySelector('.section-expandable-title');

// Gets initial height value
var collapsedHeight = currentAccordionItemContent.getBoundingClientRect().height;

// Toggle is--closed/is--open class from current accordion item
currentAccordionItem.classList.remove('is--closed');
currentAccordionItem.classList.add('is--open');

// Prevents multiple clicks on Accordion when it's animating
currentAccordionItemHeader.style.pointerEvents = 'none';

// Toggle is--collapsed/is--expanded class from current accordion item
currentAccordionItemContent.classList.remove('is--collapsed');
currentAccordionItemContent.classList.add('is--expanded');

currentAccordionItemContent.removeAttribute('style');

// Gets final height value
var expandedHeight = currentAccordionItemContent.getBoundingClientRect().height;

// Removes is--expanded class from current accordion item content to animate
currentAccordionItemContent.classList.remove('is--expanded');

currentAccordionItemContent.style.height = collapsedHeight + 'px';

// This setTimeout (0ms) will ensure that the DOM received the height 0 before actually starts the transition
var waitDomIterateTimeout = setTimeout(function() {
    
    // Adds is--animating class to current accordion item content to obtain the final height value
    currentAccordionItemContent.classList.add('is--animating');
    
    currentAccordionItemContent.style.height = expandedHeight + 'px';
    
    // Adds event listener to transition end
    currentAccordionItemContent.addEventListener('transitionend', transitionEndHandler);
    
    // Adds is--expanded class to current accordion item content
    currentAccordionItemContent.classList.add('is--expanded');
    
    // Clear timeout
    clearTimeout(waitDomIterateTimeout);
}, 0);

var transitionEndHandler = function() {
    var currentElement = currentAccordionItemContent;
    var currentElementHeader = currentAccordionItemHeader;
    
    if(currentElement) {
        // Removes is--animating class
        currentElement.classList.remove('is--animating');
        
        // Remove height and pointer events inline style
        currentElement.style.height = '';
        currentElementHeader.style.pointerEvents = '';
        
        // Verify if the currentElement has inline-styles and remove attribute if are empty
        if(currentElement.style.cssText.length === 0) {
            currentElement.removeAttribute('style');
        }
        
        // Removes transitionend event listener
        currentElement.removeEventListener('transitionend', transitionEndHandler, false);   
    }
};
};
});