Built files from Bizgaze WebServer
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rulebuilder.event.min.js 26KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. var __awaiter=this&&this.__awaiter||function(n,t,i,r){function u(n){return n instanceof i?n:new i(function(t){t(n)})}return new(i||(i=Promise))(function(i,f){function o(n){try{e(r.next(n))}catch(t){f(t)}}function s(n){try{e(r["throw"](n))}catch(t){f(t)}}function e(n){n.done?i(n.value):u(n.value).then(o,s)}e((r=r.apply(n,t||[])).next())})},Unibase;(function(n){let t;(function(t){let i;(function(i){let r;(function(r){class u extends t.Core.BaseComponent{constructor(){super(...arguments);this.RuleProviderId=0}cssFiles(){return[]}jsFiles(){return["platform/automation/managers/rulemanager.js","platform/automation/enums/eventtype.js","platform/automation/enums/automationmode.js","platform/automation/enums/expop.js","platform/automation/requests/ruleevent.js","platform/automation/requests/rulecondition.js","platform/automation/requests/eventgroup.js","platform/automation/components/rulebuilder/rulebuilder.condition.js","platform/automation/components/rulebuilder/rulebuilder.advrule.js"]}html(){return`<form id="frmUnibase_RuleEvent" data-validate="parsley" data-isdynamic="false">
  2. <div id="Validate_RuleEvent" class="clear"></div>
  3. <div class="card bg-light">
  4. <div class="b-b bg-white card-header header">
  5. <strong class="text-dark title" id="Form_RuleEvent">Create Event</strong>
  6. </div>
  7. <div class="card-body scrollable" style="overflow-y: scroll;">
  8. <div class="bg-white card" id="divRuleEventDetails">
  9. <div class="card-body">
  10. <div class="row">
  11. <div class="col-sm-6">
  12. <div class="custom-control custom-radio">
  13. <input type="radio" id="rdb_Instant" name="SchedulerType" value="1" class="custom-control-input" checked="checked">
  14. <label class="custom-control-label" for="rdb_Instant">Instant</label>
  15. <input type="hidden" id="hfId_Instant" value="">
  16. </div>
  17. </div>
  18. <div class="col-sm-6">
  19. <div class="custom-control custom-radio">
  20. <input type="radio" id="rdb_Scheduled" name="SchedulerType" value="2" class="custom-control-input">
  21. <label class="custom-control-label" for="rdb_Scheduled">Scheduled</label>
  22. <input type="hidden" id="hfId_Scheduled" value="">
  23. </div>
  24. </div>
  25. </div>
  26. <div class="row mt-30" id="EventColumnsdiv">
  27. <div class="col-sm-12" id="ECAutocomplete">
  28. <div id="div_EventColumns" class="floating-label-form-group-with-value floating-validate" style="border-bottom:0;">
  29. <select id="select2_EventColumns" class="select2_EventColumns required value-control form-control text-control" multiple="multiple" style="width:100%;"></select>
  30. <input type="hidden" id="hfSelect2Id_EventColumns" value="" class="form-control text-control" data-isdynamic="true" />
  31. <input type="hidden" id="hfId_EventColumns" value=""><label for="Validation" id="lblValidation_EventColumns"></label>
  32. </div>
  33. </div>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="bg-white card hidden" id="divEventDetails">
  38. <div class="card-header">Event Type Details</div>
  39. <div class="card-body">
  40. <div class="row" id="div_Scheduler">
  41. <div class="col-sm-6">
  42. <div class="floating-label-form-group floating-label-form-group-with-value">
  43. <label for="lblSchedulerType" id="lbl_SchedulerType" class="font-bold">Scheduler Type<span class="text-danger">*</span></label>
  44. <select id="ddl_SchedulerType" class="form-control value-control" data-isdynamic="true" placeholder="Select" data-placeholder="Select" data-label="Select">
  45. <option value="">Select</option>
  46. <option value="2">Daily</option>
  47. <option value="3">FifteenMinute</option>
  48. <option value="4">FiveMinute</option>
  49. <option value="5">FortyFiveMinute</option>
  50. <option value="6">HalfYearly</option>
  51. <option value="7">Monthly</option>
  52. <option value="8">NineHour</option>
  53. <option value="9">OneHour</option>
  54. <option value="10">OneMinute</option>
  55. <option value="11">Quarterly</option>
  56. <option value="12">SixHour</option>
  57. <option value="13">ThirtyMinute</option>
  58. <option value="14">ThreeHour</option>
  59. <option value="15">ThreeMinute</option>
  60. <option value="16">TwelveHour</option>
  61. <option value="17">TwoHour</option>
  62. <option value="18">TwoMinute</option>
  63. <option value="19">Yearly</option>
  64. <option value="20">Week</option>
  65. </select>
  66. <input type="hidden" id="hf_SchedulerType" />
  67. </div>
  68. </div>
  69. <div class="col-sm-6">
  70. <div class="input-group">
  71. <label for="User" class="font-bold">User</label>
  72. <select id="txtAutoComplete_Users" class="form-control text-control" style="width:100%;" placeholder="User" data-placeholder="User" data-label="" data-istagselect="true"></select>
  73. <input type="hidden" id="hf_Autocomplete_Users" class="form-control value-control" data-isdynamic="true" />
  74. </div>
  75. </div>
  76. </div>
  77. <div class="row" id="div_Dates">
  78. <div id="" class="col-sm-6">
  79. <div class="floating-label-form-group" id="div_StartDate">
  80. <label for="lbl" id="lbl_StartDate">Start Date<span class="text-danger" id="spnIsRequired_StartDate"> *</span></label>
  81. <div class="input-group">
  82. <input type="text" id="date_StartDate" class="form-control type-control datepicker-input hasDatepicker value-control floating-label-control" placeholder="Start Date *" data-placeholder="dd/mm/yyyy hh:mm" data-label="Start Date *">
  83. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  84. <input type="hidden" id="hf_StartDate" />
  85. </div>
  86. </div>
  87. </div>
  88. <div id="" class="col-sm-6">
  89. <div class="floating-label-form-group" id="div_EndDate">
  90. <label for="lbl" id="lbl_EndDate">End Date<span class="text-danger" id="spnIsRequired_EndDate"> *</span></label>
  91. <div class="input-group">
  92. <input type="text" id="date_EndDate" class="form-control type-control datepicker-input hasDatepicker value-control floating-label-control" placeholder="End Date *" data-placeholder="dd/mm/yyyy hh:mm" data-label="End Date *">
  93. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span>
  94. <input type="hidden" id="hf_EndDate" />
  95. </div>
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. </div>
  101. <div class="bg-white card" id="btn_Conditions">
  102. <button type="button" class="btn btn-primary" onclick="Unibase.Platform.Automation.Components.RuleEvent.Instance().ToggleRuleEventConditions();">Conditions</button>
  103. </div>
  104. <div class="bg-white card hidden" id="ConditionDetailsDiv">
  105. <div class="card-header">Global Condition Details</div>
  106. <div class="card-body">
  107. <div class="ConditionDetails">
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="bg-white card-footer footer" id="CreateEventFooter">
  113. <a href="javascript:;" id="btnCloseEvent" class="btn btn-light btn-sm mr-auto "> Close</a>
  114. <a href="javascript:;" id="btnSaveEvent" class="btn btn-primary btn-sm"> Save</a>
  115. </div>
  116. </div>
  117. </form>`}load(t,i){var o=this,e;let f=eval("bizgaze_automation_flow_main.getruleid()");n.Platform.Automation.Components.RuleEvent.Instance().RuleProviderId=this.RuleProviderId;$("#btnCloseEvent").click(function(){$("#"+i).modal("hide");$("#"+i).remove();n.Platform.Automation.Components.RuleEvent.EventColumnData=[];eval("bizgaze_automation_flow_main.getpopupclosed()")});$("#btnSaveEvent").click(function(){let r=n.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("frmUnibase_RuleEvent");if(r==!1)return MessageHelper.Instance().showError("Mandatory fields are missing","Validate_RuleEvent"),!1;let r=Number(eval("bizgaze_automation_flow_main.getruleid()"));r==0?n.Platform.Automation.Components.AdvRule.Instance().SaveRule(t,i):u.Instance().SaveRuleEvent(t,i)});e=_appsettings.server_url()+"/apis/v4/unibase/platform/followers/reports_followersauto";AutoCompleteHelper.getHelper().Create("#txtAutoComplete_Users","#hf_Autocomplete_Users",e,function(n){var t=n});let r=n.Platform.Automation.Components.RuleEvent.Instance().RuleProviderId;r!=0&&(n.Platform.Automation.Components.RuleEvent.Instance().loadEventColomns(r).then(function(){t!=""&&n.Platform.Automation.Components.RuleEvent.Instance().EditEvent(t)}),n.Platform.Automation.Components.RuleEvent.Instance().loadQueryBuilder(r,null));f!=0&&n.Platform.Automation.Managers.RuleManager.Instance().getRule(f).then(function(t){n.Platform.Automation.Components.RuleEvent.RuleDataArray=t;n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleTypeId==Number(n.Platform.Automation.Enums.RuleType.Event)?n.Platform.Automation.Enums.RuleType.Event:n.Platform.Automation.Enums.RuleType.Scheduler});$("#rdb_Instant").click(function(){$("#divEventDetails").addClass("hidden");$("#ddl_SchedulerType").removeClass("required");$("#date_StartDate").removeClass("required");$("#date_EndDate").removeClass("required");$("#select2_EventColumns").addClass("required");$("#EventColumnsdiv").removeClass("hidden")});$("#rdb_Scheduled").change(function(){$("#divEventDetails").removeClass("hidden");$("#ddl_SchedulerType").addClass("required");$("#date_StartDate").addClass("required");$("#date_EndDate").addClass("required");$("#EventColumnsdiv").addClass("hidden");$("#select2_EventColumns").removeClass("required");$("#ddl_SchedulerType").val("");$("#date_StartDate").val("");$("#date_EndDate").val("")});$("#date_StartDate").daterangepicker({autoUpdateInput:!1,timePicker:!0,timePicker24Hour:!0,locale:{format:"DD/MM/YYYY HH:mm"},singleDatePicker:!0,showDropdowns:!0,minYear:1901,maxDate:new Date(2050,11,31)});$("#date_EndDate").daterangepicker({autoUpdateInput:!1,timePicker:!0,timePicker24Hour:!0,locale:{format:"DD/MM/YYYY HH:mm"},singleDatePicker:!0,showDropdowns:!0,minYear:1901,maxDate:new Date(2050,11,31)});$("#date_StartDate").on("apply.daterangepicker",function(){$("#div_StartDate").addClass("floating-label-form-group-with-value")});$("#date_EndDate").on("apply.daterangepicker",function(){$("#div_EndDate").addClass("floating-label-form-group-with-value")})}ToggleRuleEventConditions(){$("#ConditionDetailsDiv").toggle(function(){$("#btn_Conditions").addClass("hidden");$("#ConditionDetailsDiv").removeClass("hidden")})}loadEventColomns(t){return __awaiter(this,void 0,void 0,function*(){return yield n.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(t).then(function(t){n.Platform.Automation.Components.RuleEvent.EventColumnData.push({id:t.DoctypeName+" Created",text:t.DoctypeName+" Created"});n.Platform.Automation.Components.RuleEvent.EventColumnData.push({id:t.DoctypeName+" Deleted",text:t.DoctypeName+" Deleted"});n.Platform.DataSources.Managers.DocTypeManager.Instance().getDocProperties(t.DoctypeId).then(function(t){let i=t.result;for(let t=0;t<i.length;t++){var r=i[t];n.Platform.Automation.Components.RuleEvent.EventColumnData.push({id:i[t].PropColumnName+" Changed",text:i[t].PropColumnName+" Changed"})}return $("#select2_EventColumns").select2({placeholder:"Select",data:n.Platform.Automation.Components.RuleEvent.EventColumnData})})})})}GetEventColumns(){var i,n;let t=[];for(t=$("#select2_EventColumns").val(),i="",n=0;n<t.length;n++)i+=t[n]+",";return i.slice(0,-1)}EditEvent(t){$("#Form_RuleEvent").text("Edit Event");let r=eval("bizgaze_automation_flow_main.getruleid()"),i;n.Platform.Automation.Managers.RuleManager.Instance().getRule(r).then(function(u){if(i=u,t!=r)n.Platform.Automation.Managers.RuleManager.Instance().getRuleEventsByEventGroupId(t).then(function(n){let i=[],r=0;for(var t=0;t<=n.length-1;t++){r=n[t].RuleId;let u=n[t].EventName;if(n[t].EventColumnName!=null&&n[t].EventColumnName!="")u=u.split("_")[2],i.push(""+u+" Changed");else{let n=u.split("_")[2];n.toLowerCase()=="created"?(u=u.split("_created")[0],i.push(""+u+" Created")):(u=u.split("_deleted")[0],i.push(""+u+" Deleted"))}}$("#select2_EventColumns").val(i).trigger("change");$("input[type=radio]").attr("disabled",1)});else{$("#rdb_Scheduled").attr("checked",1);$("#hf_SchedulerType").val(i.SchedulerId);$("#divEventDetails").removeClass("hidden");$("#EventColumnsdiv").addClass("hidden");$("#select2_EventColumns").removeClass("required");$("#date_StartDate").val(n.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(i.StartDate));$("#date_EndDate").val(n.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithoutSeconds(i.EndDate));$("#ddl_SchedulerType").val($("#hf_SchedulerType").val());$("input[type=radio]").attr("disabled",1);var f=new Option(i.UserName,i.IdentityUserId.toString(),!0,!0);$("#txtAutoComplete_Users").append(f)}i.SqlWhere!=null&&i.SqlWhere!=""&&(n.Platform.Automation.Components.RuleEvent.Instance().loadQueryBuilder(i.RuleProviderId,i.SqlWhere),$("#btn_Conditions").addClass("hidden"),$("#ConditionDetailsDiv").removeClass("hidden"));$("#div_StartDate").addClass("floating-label-form-group-with-value");$("#div_EndDate").addClass("floating-label-form-group-with-value");eval("_floatingLabelHelper.init();")})}RuleEventArray(){let r=[],i=n.Platform.Automation.Components.RuleEvent.Instance().GetEventColumns().split(",");for(var t=0;t<i.length;t++){let u={},f,o=i[t].split(" ")[1],e="";o=="Created"?f=n.Platform.Automation.Enums.EventType.Created:o=="Deleted"?f=n.Platform.Automation.Enums.EventType.Deleted:i[t].toLowerCase()=="stageid changed"?(f=n.Platform.Automation.Enums.EventType.StageEvent,e=i[t].split(" ")[0]):(f=n.Platform.Automation.Enums.EventType.Updated,e=i[t].split(" ")[0]);u.RuleEventId=0;u.EventColumnName=e;u.EventType=f;u.RuleId=eval("bizgaze_automation_flow_main.getruleid()");r.push(u)}return r}Ruledata(){return __awaiter(this,void 0,void 0,function*(){let t=eval("bizgaze_automation_flow_main.getruleid()");t!=0&&yield n.Platform.Automation.Managers.RuleManager.Instance().getRule(t).then(function(t){n.Platform.Automation.Components.RuleEvent.RuleDataArray=t;n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleTypeId==Number(n.Platform.Automation.Enums.RuleType.Event)?n.Platform.Automation.Enums.RuleType.Event:n.Platform.Automation.Enums.RuleType.Scheduler})})}SaveRuleEvent(t,r){return __awaiter(this,void 0,void 0,function*(){var e="";let s=Number(t),f=[],o=[];yield n.Platform.Automation.Components.RuleEvent.Instance().Ruledata();let h=Number($("input[name=SchedulerType]:checked").val());if(h==2){let t=n.Platform.Automation.Components.RuleEvent.Instance().GetSRuleData();for(let n=0;n<t.length;n++)f.push({RuleId:t[n].RuleId,RuleProviderId:t[n].RuleProviderId,DocTypeId:t[n].DocTypeId,RuleName:t[n].RuleName,SchedulerId:t[n].SchedulerId,RuleType:t[n].RuleType,Notes:t[n].Notes,RuleFlow:t[n].RuleFlow,StartDate:t[n].StartDate,EndDate:t[n].EndDate,RuleConditionData:t[n].RuleConditionData,EventGroupData:t[n].EventGroupData,AutomationModeId:t[n].AutomationModeId,SqlWhere:t[n].SqlWhere,SqlWhereJson:t[n].SqlWhereJson,IdentityUserId:t[n].IdentityUserId})}else{let i=n.Platform.Automation.Components.RuleEvent.Instance().RuleEventArray();for(let n=0;n<i.length;n++)o.push({RuleEventId:i[n].RuleEventId,RuleId:i[n].RuleId,EventId:i[n].EventId,EventColumnName:i[n].EventColumnName,EventType:i[n].EventType,RuleType:i[n].RuleType}),i[n].EventColumnName!=""&&(e+=i[n].EventColumnName+" Changed ,");let t=n.Platform.Automation.Components.RuleEvent.Instance().GetRuleData();for(let n=0;n<t.length;n++)f.push({RuleId:t[n].RuleId,RuleProviderId:t[n].RuleProviderId,DocTypeId:t[n].DocTypeId,RuleName:t[n].RuleName,SchedulerId:t[n].SchedulerId,RuleType:t[n].RuleType,Notes:t[n].Notes,RuleFlow:t[n].RuleFlow,StartDate:t[n].StartDate,EndDate:t[n].EndDate,RuleConditionData:t[n].RuleConditionData,EventGroupData:t[n].EventGroupData,AutomationModeId:t[n].AutomationModeId,SqlWhere:t[n].SqlWhere,SqlWhereJson:t[n].SqlWhereJson,IdentityUserId:t[n].IdentityUserId})}let u=new n.Platform.Automation.Requests.EventGroup;u.EventGroupId=s;u.RuleId=eval("bizgaze_automation_flow_main.getruleid()");u.RuleEventData=o;u.RuleType=$("#ddl_SchedulerType").val()!=0?n.Platform.Automation.Enums.RuleType.Scheduler:n.Platform.Automation.Enums.RuleType.Event;u.RuleData=f;yield i.Managers.RuleManager.Instance().saveAdvRuleEvent(u).then(function(t){if(t.status==n.Data.Status.Error)MessageHelper.Instance().showError(t.message,"Validate_Rule");else{t.result.EventGroupId!=0?(MessageHelper.Instance().showSuccess(t.message,"Validate_Rule"),eval("bizgaze_automation_flow_main.saveeventblock('"+t.result.EventGroupId+"','Event Configured')")):(MessageHelper.Instance().showSuccess(t.message,"Validate_Rule"),eval("bizgaze_automation_flow_main.saveeventblock('"+t.result.RuleId+"','Event Configured')"));let i=$("#builder");i.queryBuilder("destroy");$("#QueryBuilder").remove();$("#"+r).modal("hide");$("#"+r).remove();n.Platform.Automation.Components.RuleEvent.EventColumnData=[];eval("bizgaze_automation_flow_main.saveeventname('"+e+"')")}})})}GetSRuleData(){let r=[],i=$("#builder"),t={};t.RuleId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleId;t.RuleProviderId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleProviderId;t.DocTypeId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.DocTypeId;t.RuleName=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleName;t.SchedulerId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.SchedulerId;t.RuleType=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType;t.Notes=n.Platform.Automation.Components.RuleEvent.RuleDataArray.Notes;t.RuleFlow=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleFlow;t.AutomationModeId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.AutomationModeId;$("#ddl_SchedulerType").val()!=0?(t.SchedulerId=Number($("#ddl_SchedulerType").val()),t.RuleType=n.Platform.Automation.Enums.RuleType.Scheduler):(t.SchedulerId=1,t.RuleType=n.Platform.Automation.Enums.RuleType.Event);let u=n.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_StartDate").val());t.StartDate=new Date(u);let f=n.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime($("#date_EndDate").val());t.EndDate=new Date(f);t.IdentityUserId=$("#txtAutoComplete_Users option:selected").val()==null||""?0:Number($("#txtAutoComplete_Users option:selected").val());let e=i.queryBuilder("getSQL",!1,!0);return e!=null?(t.SqlWhere=i.queryBuilder("getSQL",!1,!0).sql.replace(/\n/g," ").replace(/LIKE/g,"ILIKE"),t.SqlWhereJson=JSON.stringify(i.queryBuilder("getSQL",!1,!0))):(t.SqlWhere="",t.SqlWhereJson=""),r.push(t),r}GetRuleData(){let r=[],i=$("#builder"),t={};t.RuleId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleId;t.RuleProviderId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleProviderId;t.DocTypeId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.DocTypeId;t.RuleName=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleName;t.AutomationModeId=n.Platform.Automation.Components.RuleEvent.RuleDataArray.AutomationModeId;t.SchedulerId=1;t.RuleType=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleType;t.Notes=n.Platform.Automation.Components.RuleEvent.RuleDataArray.Notes;t.RuleFlow=n.Platform.Automation.Components.RuleEvent.RuleDataArray.RuleFlow;t.StartDate=n.Platform.Automation.Components.RuleEvent.RuleDataArray.StartDate;t.EndDate=n.Platform.Automation.Components.RuleEvent.RuleDataArray.EndDate;let u=i.queryBuilder("getSQL",!1,!0);return u!=null?(t.SqlWhere=i.queryBuilder("getSQL",!1,!0).sql.replace(/\n/g," ").replace(/LIKE/g,"ILIKE"),t.SqlWhereJson=JSON.stringify(i.queryBuilder("getSQL",!1,!0))):(t.SqlWhere="",t.SqlWhereJson=""),r.push(t),r}loadQueryBuilder(t,i){return __awaiter(this,void 0,void 0,function*(){return yield n.Platform.Automation.Managers.RuleManager.Instance().getRuleProvider(t).then(function(t){let u=n.Platform.DataSources.Components.QueryBuilder.Instance().html(null,null);jQuery(".ConditionDetails").html(u);var r=n.Platform.DataSources.Components.QueryBuilder.Instance();r.QueryBuilder_Columns=[];r.QueryBuilder_Filters=[];r.queryBuilderString="";t.ReportId!=0?(r.ReportId=t.ReportId,r.loadQueryBuilderDiv(i)):(r.DoctypeId=t.DoctypeId,r.loadQueryBuilderDivByDoctypeId(i));$("#QueryBuilder").removeClass("hidden")})})}static Instance(){return this.instance===undefined&&(this.instance=new u),this.instance}}u.EventColumnData=[];u.RuleDataArray=[];r.RuleEvent=u})(r=i.Components||(i.Components={}))})(i=t.Automation||(t.Automation={}))})(t=n.Platform||(n.Platform={}))})(Unibase||(Unibase={}));