var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var Unibase;
(function (Unibase) {
let Forms;
(function (Forms) {
let Controls;
(function (Controls) {
class Dropdown extends Unibase.Platform.Core.BaseComponent {
constructor() {
super(...arguments);
this.loadCascading = true;
}
init(formpropertyid, prop, callback) {
var instance = new Dropdown();
instance.loadControlSettings(prop, prop.UniqueId).then(function () {
if (callback != null)
callback();
});
$('#ddl_' + prop.DocPropertyName + '').focusin(function () {
$('#ddl_' + prop.DocPropertyName + '').attr('style', 'border:solid 2px rgb(0, 165, 230);border-radius:5px;border-shadow: 3px 3px 3px 3px;');
});
$('#ddl_' + prop.DocPropertyName + '').focusout(function () {
$('#ddl_' + prop.DocPropertyName + '').attr('style', 'none');
});
}
loadControl(containerid, prop) {
var instance = this;
var jsfiles = ["platform/controls/cascadingautocomplete/cascadingautocomplete.component.js", "platform/controls/cascadingautocomplete/cascadingautocomplete.settings.js"];
var Isrequired = prop.IsRequired != true ? 'hidden' : '';
var required = prop.IsRequired != true ? '' : 'required';
var CurrentStageId = '';
if (prop.IncludedStages != null && prop.IncludedStages != "") {
var StagesForRequired = prop.IncludedStages.split('|');
Isrequired = StagesForRequired.find(x => x == CurrentStageId) ? '' : 'hidden';
required = StagesForRequired.find(x => x == CurrentStageId) ? 'required' : '';
}
var dropdownJson = JSON.parse(prop.ControlJsonText);
const { helpTooltipHtml, helpTextHtml } = Unibase.Platform.Forms.Components.FormViewer.Instance().getControlHelpHtml(prop);
var html = '
' +
'' +
'' + helpTextHtml +
'
';
$("#" + containerid).html(html);
$("#" + containerid).find("#ddl_" + prop.UniqueId).on('change', function () {
instance.fileCacheHelper.loadJsFiles(jsfiles, function () {
if (instance.loadCascading) {
Unibase.Forms.Controls.CascadingAutocomplete.Instance().ChildCascadingData(false, prop.FormPropertyId, 0, 0, '');
}
instance.loadCascading = true;
});
});
}
loadControlSettings(controlsettingjson, formpropertyid) {
return __awaiter(this, void 0, void 0, function* () {
if (controlsettingjson != "" && controlsettingjson != null && controlsettingjson != undefined) {
var container = "control-container-" + formpropertyid;
var response = JSON.parse(controlsettingjson.ControlJsonText);
if (response != null) {
if ((response.length == 1) && (response[0].ReportId != 0)) {
yield Unibase.Platform.Forms.Managers.FormManager.Instance().dynamicDropDown(response[0].DropDownColumnId).then(function (res) {
var drpDwnData = [];
let result = res.result;
for (let i = 0; i < result.length; i++) {
var drpDwn = result[i];
drpDwnData.push({ id: drpDwn.ColumnText, text: drpDwn.ColumnValue });
}
$('#' + container).find("#ddl_" + formpropertyid).select2({
placeholder: 'Select',
theme: "default select2ErrorClass",
data: drpDwnData,
width: '100%',
});
});
}
else {
$('#' + container).find("#ddl_" + controlsettingjson.DocPropertyName).find('option').remove();
var data = '';
for (var i = 0; i < response.length; i++) {
var columnvalue = controlsettingjson.datatypeid == 3 ? response[i].ColumnNumber : response[i].ColumnValue;
if (response[i].IsParent == true) {
$('#' + container).find("#ddl_" + controlsettingjson.DocPropertyName).data("isparent", response[i].IsParent);
}
data += '';
}
$('#' + container).find("#ddl_" + formpropertyid).append(data);
}
}
}
});
}
loadPropertySettings(propertysettings, formpropertyid) {
return null;
}
bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
var instance = this;
instance.loadCascading = false;
$("#ddl_" + formpropertyid).val(propval).trigger('change');
}
static Instance() {
if (this._instance === undefined)
this._instance = new Dropdown();
return this._instance;
}
}
Controls.Dropdown = Dropdown;
})(Controls = Forms.Controls || (Forms.Controls = {}));
})(Forms = Unibase.Forms || (Unibase.Forms = {}));
})(Unibase || (Unibase = {}));