var Unibase;
(function (Unibase) {
let Forms;
(function (Forms) {
let Controls;
(function (Controls) {
class CascadingAutocomplete {
constructor() {
this.cascadingArray = [];
this.loadCascading = true;
}
init(formpropertyid, prop, callback) {
var instance = CascadingAutocomplete.Instance();
var container = "control-container-" + formpropertyid;
instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
if (callback != null)
callback();
}
loadControl(containerid, prop) {
var instance = this;
var Isrequired = prop.IsRequired != true ? 'hidden' : '';
var required = prop.IsRequired != true ? '' : 'required';
var reqMark = prop.IsRequired != true ? '' : '*';
var CurrentStageId = $("#hf_" + $("#hfLayout_InstalledPageId").val() + "_StageId").val();
if (prop.StagesForRequired != null && prop.StagesForRequired != "") {
var StagesForRequired = prop.StagesForRequired.split('|');
Isrequired = StagesForRequired.find(x => x == CurrentStageId) ? '' : 'hidden';
required = StagesForRequired.find(x => x == CurrentStageId) ? 'required' : '';
reqMark = StagesForRequired.find(x => x == CurrentStageId) ? '*' : '';
}
var data = JSON.parse(prop.ControlJsonText);
var cascArray = CascadingAutocomplete.instance.cascadingArray;
var isexist = Unibase.Forms.Controls.CascadingAutocomplete.Instance().cascadingArray.find(x => x.UniqueId == prop.UniqueId) ? true : false;
data["UniqueId"] = prop.UniqueId;
if (isexist == false)
CascadingAutocomplete.instance.cascadingArray.push(data);
const { helpTooltipHtml, helpTextHtml } = Unibase.Platform.Forms.Components.FormViewer.Instance().getControlHelpHtml(prop);
var html = `
` +
'
' +
'' +
'' + helpTextHtml + '
';
$("#" + containerid).html(html);
$("#ddl_cascading_" + prop.UniqueId).select2({
placeholder: prop.Placeholder,
width: '100%',
});
$("#" + containerid).find("#ddl_cascading_" + prop.UniqueId).on('change', function () {
if (instance.loadCascading) {
Unibase.Forms.Controls.CascadingAutocomplete.Instance().ChildCascadingData(false, prop.FormPropertyId, Number($("#ddl_cascading_" + prop.UniqueId).val()), 0, '');
}
instance.loadCascading = true;
});
}
loadControlSettings(controlsettingjson, formpropertyid) {
return null;
}
loadPropertySettings(propertysettings, formpropertyid) {
return null;
}
bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
var instance = this;
if (propval != "") {
var cascInfo = JSON.parse(propval);
instance.ChildCascadingData(true, cascInfo.ParentFormPropertyId, cascInfo.ReportColumnText, cascInfo.ReportColumnValueId, cascInfo.ReportColumnValue);
if (cascInfo.ReportColumnValueId != 0) {
var cascOption = new Option(cascInfo.ReportColumnValue, cascInfo.ReportColumnValueId, true);
$("#ddl_cascading_" + formpropertyid).append(cascOption);
instance.loadCascading = false;
jQuery("#ddl_cascading_" + formpropertyid).val(cascInfo.ReportColumnValueId).trigger('change');
}
}
}
ChildCascadingData(isEditForm, ParentFormPropertyId, ParentTextColumnValue, Id, Value) {
var instance = this;
var hdn_cascading_array = CascadingAutocomplete.instance.cascadingArray;
if (hdn_cascading_array != undefined) {
var list = hdn_cascading_array.filter(x => x.ParentFormPropertyId == ParentFormPropertyId);
for (var i = 0; i < list.length; i++) {
var listitem = list[i];
var casFormPropId = listitem.UniqueId;
var response = listitem;
var reportId = response.ReportId;
var formPropertyId = response.FormPropertyId;
var parentFormPropertyId = response.ParentFormPropertyId;
var applyFor = response.ApplyFor;
var formId = Number($(".formValidate:visible").find("#hf_FormId").val());
if (!isEditForm) {
$("#ddl_cascading_" + casFormPropId).val(null).trigger("change");
}
var url = _appsettings.server_url() + '/apis/v4/unibase/platform/forms/getcascadingautocompletedata/formpropertyid/' + formPropertyId + '/parentidcolumn/' + applyFor + '/parentcolumnvalue/' + ParentTextColumnValue + '/parentformpropertyid/' + parentFormPropertyId;
AutoCompleteHelper.getHelper().Create("#ddl_cascading_" + casFormPropId, "#hfddl_cascading_" + casFormPropId, url, function (response) {
});
}
}
}
static Instance() {
if (this.instance === undefined) {
this.instance = new CascadingAutocomplete();
}
return this.instance;
}
}
Controls.CascadingAutocomplete = CascadingAutocomplete;
})(Controls = Forms.Controls || (Forms.Controls = {}));
})(Forms = Unibase.Forms || (Unibase.Forms = {}));
})(Unibase || (Unibase = {}));