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.

default.js 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. var Unibase;
  2. (function (Unibase) {
  3. let Themes;
  4. (function (Themes) {
  5. let Compact;
  6. (function (Compact) {
  7. let DetailWidgets;
  8. (function (DetailWidgets) {
  9. class Default extends Unibase.Platform.Core.BaseComponent {
  10. jsFiles() {
  11. return [];
  12. }
  13. cssFiles() {
  14. return [];
  15. }
  16. html(id, containerid) {
  17. let title = id[0].WidgetName, html = "";
  18. if (id[0].PortletWidgetId == 22501) {
  19. html = '<div id="widget_details_' + id[0].PortletWidgetId + '" class="card h-160p shadow-hover mb-0">' +
  20. '<div class="card-header card-header-action border-bottom-0 px-20">' +
  21. '<span class="biz-highlight-bg-color" id="hf-widget-title_' + id[0].PortletWidgetId + '">' + title + '</span>' +
  22. '<div class="d-flex align-items-center card-action-wrap" id="div_detail_addnew_' + id[0].PortletWidgetId + '">' +
  23. '</div>' +
  24. '</div>' +
  25. '<div class="card-body py-0">' +
  26. '<div class="row biz-transparent-text-color">' +
  27. '<div class="col-md-6">' +
  28. '<ul class="list-group list-group-flush px-30" id="widget_details_' + id[0].PortletWidgetId + '_col1">' +
  29. '<li class="list-group-item widget_details_item' + id[0].PortletWidgetId + '_col1 py-1" id="widget_details_item_' + id[0].PortletWidgetId + '_col1"><ul class="list-group list-group-flush"><li class="d-flex justify-content-between align-items-center px-0 py-2" style="border-top: 1px dashed black; font-size: 14px;"><span class="pl-0">Organization</span><span class="text-overflow text-right" title="shanvi">shanvi</span></li><li class="d-flex justify-content-between align-items-center px-0 py-2" style="border-top: 1px dashed black; font-size: 14px;"><span class="pl-0">Cin</span><span class="text-overflow text-right" title="GCIN350">GCIN350</span></li></ul></li>' +
  30. '</ul>' +
  31. '</div>' +
  32. '<div class="col-md-6">' +
  33. '<ul class="list-group list-group-flush px-30" id="widget_details_' + id[0].PortletWidgetId + '_col2">' +
  34. '<li class="list-group-item widget_details_item' + id[0].PortletWidgetId + '_col2 py-1" id="widget_details_item_' + id[0].PortletWidgetId + '_col2"><ul class="list-group list-group-flush"><li class="d-flex justify-content-between align-items-center px-0 py-2" style="border-top: 1px dashed black; font-size: 14px;"><span class="pl-0">Organization</span><span class="text-overflow text-right" title="shanvi">shanvi</span></li><li class="d-flex justify-content-between align-items-center px-0 py-2" style="border-top: 1px dashed black; font-size: 14px;"><span class="pl-0">Cin</span><span class="text-overflow text-right" title="GCIN350">GCIN350</span></li></ul></li>' +
  35. '</ul>' +
  36. '</div>' +
  37. '</div>' +
  38. '</div>' +
  39. '</div>';
  40. }
  41. else {
  42. html = '<div id="widget_details_' + id[0].PortletWidgetId + '" class="card h-160p shadow-hover mb-0">' +
  43. '<div class="card-header card-header-action border-bottom-0 px-20 ml-5">' +
  44. '<span class="biz-highlight-bg-color" id="hf-widget-title_' + id[0].PortletWidgetId + '">' + title + '</span>' +
  45. '<div class="d-flex align-items-center card-action-wrap" id="div_detail_addnew_' + id[0].PortletWidgetId + '">' +
  46. '</div>' +
  47. '</div>' +
  48. '<div class="card-body py-0">' +
  49. '<div class="row biz-transparent-text-color">' +
  50. '<div class="col-md-6">' +
  51. '<ul class="list-group list-group-flush px-0" id="widget_details_' + id[0].PortletWidgetId + '_col1">' +
  52. '<li class="list-group-item widget_details_item' + id[0].PortletWidgetId + '_col1 py-1" id="widget_details_item_' + id[0].PortletWidgetId + '_col1"></li>' +
  53. '</ul>' +
  54. '</div>' +
  55. '<div class="col-md-6">' +
  56. '<ul class="list-group list-group-flush px-0" id="widget_details_' + id[0].PortletWidgetId + '_col2">' +
  57. '<li class="list-group-item widget_details_item' + id[0].PortletWidgetId + '_col2 py-1" id="widget_details_item_' + id[0].PortletWidgetId + '_col2"></li>' +
  58. '</ul>' +
  59. '</div>' +
  60. '</div>' +
  61. '</div>' +
  62. '</div>';
  63. }
  64. return html;
  65. }
  66. load(id, containerid, callback) {
  67. let instance = this;
  68. let inputparameters = Unibase.Themes.Providers.DashboardHelper.Instance().replaceWidgetParameterValues(id[0].WidgetParameters, id[0].InstalledAppId);
  69. let fromDate = "", toDate = "";
  70. var cf_fromDate = Unibase.Platform.Membership.Infos.Identity.currentUser.fromDate;
  71. var cf_toDate = Unibase.Platform.Membership.Infos.Identity.currentUser.toDate;
  72. if (cf_fromDate != null && cf_toDate != null) {
  73. fromDate = cf_fromDate.toString();
  74. toDate = cf_toDate.toString();
  75. }
  76. else {
  77. fromDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  78. toDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(new Date(Unibase.Platform.Helpers.DateTimeHelper.Instance().currentDate()), "YYYY/MM/DD");
  79. }
  80. var parameters = {
  81. WidgetId: id[0].WidgetId,
  82. PortletWidgetId: id[0].PortletWidgetId,
  83. InstalledAppId: id[0].InstalledAppId,
  84. InputParameters: inputparameters,
  85. FromDate: fromDate,
  86. ToDate: toDate
  87. };
  88. instance.loadResponseData(id[0].PortletWidgetId, containerid, parameters);
  89. }
  90. loadResponseData(portletwidgetid, detailContainer, parameters, _portletwidgetid) {
  91. let instance = this;
  92. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getDetailWidgetData(parameters).then(function (response) {
  93. if (_portletwidgetid == undefined) {
  94. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(portletwidgetid).then(function (portletresponse) {
  95. instance.loadData(portletwidgetid, detailContainer, parameters, false, response, portletresponse);
  96. });
  97. }
  98. else {
  99. if (_portletwidgetid != 0) {
  100. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(_portletwidgetid).then(function (portletresponse) {
  101. instance.loadData(portletwidgetid, detailContainer, parameters, false, response, portletresponse);
  102. });
  103. }
  104. else {
  105. instance.loadData(portletwidgetid, detailContainer, parameters, false, response);
  106. }
  107. }
  108. });
  109. }
  110. loadData(portletwidgetid, detailContainer, parameters, IsPreview, response, portletresponse) {
  111. let instance = this, list1 = '', list2 = '', count = 0, labelArray1 = [], labelArray2 = [];
  112. var result = response.result.Data;
  113. var cssproperty;
  114. if (portletresponse != undefined) {
  115. if (portletresponse != undefined) {
  116. if (portletresponse.result.PortletWidgetCss != null && portletresponse.result.PortletWidgetCss != '') {
  117. cssproperty = JSON.parse(portletresponse.result.PortletWidgetCss);
  118. }
  119. else {
  120. cssproperty = JSON.parse(response.result.CssProperty);
  121. }
  122. }
  123. else {
  124. cssproperty = JSON.parse(response.result.CssProperty);
  125. }
  126. }
  127. else {
  128. cssproperty = JSON.parse(response.result.CssProperty);
  129. }
  130. $("." + detailContainer).find('#widget_details_' + portletwidgetid).removeClass('h-160p').css({ "background-color": cssproperty[0].BackgroundColor, "border": cssproperty[0].DetailsBorderWidth + ' ' + cssproperty[0].DetailsBorderType + ' ' + cssproperty[0].DetailsBorderColor, "border-radius": cssproperty[0].DetailsBorderRadius });
  131. let borderTop = cssproperty[0].BorderWidth + ' ' + cssproperty[0].BorderType + ' ' + cssproperty[0].BorderColor;
  132. let iconhtml = '';
  133. let icon = '';
  134. let onlickurl = "";
  135. let systemLock = Unibase.Themes.Compact.Components.Details.Instance().isSystemLock;
  136. if (!systemLock || (systemLock && response.result.AppConfiguration.ExcludeFromLock)) {
  137. if (response.result.AppConfiguration != null && response.result.AppConfiguration.AppConfigurationId != 0) {
  138. onlickurl = instance.load_appconfigurations(response.result.AppConfiguration, response.result.Data, portletwidgetid);
  139. iconhtml = '<a href="javascript:;" class="btn-icon" onclick="' + onlickurl + '"> <i class="' + response.result.AppConfiguration.Icon + '"></i></a>';
  140. $("#div_detail_addnew_" + portletwidgetid).html(iconhtml);
  141. }
  142. else
  143. iconhtml = '<a href="javascript:;" class="btn-icon" onclick="' + onlickurl + '"> <i class="' + icon + '"></i></a>';
  144. iconhtml = Unibase.Core.Helpers.PropertyHelper.Instance().replace(iconhtml, response.result.Data[0]);
  145. }
  146. $("#div_detail_addnew_" + portletwidgetid).html(iconhtml);
  147. var properties = response.result.DetailWidgetProperties;
  148. var titletoken = "";
  149. var tokenarray = [];
  150. var labelarray = [];
  151. var propertyarray = [];
  152. var HyperLink = [];
  153. var arraylength = 0;
  154. for (var i = 0; i < properties.length; i++) {
  155. var model = properties[i];
  156. var propertyindex = model.PropertyIndex;
  157. if (model.Value != null) {
  158. if (model.ConverterType == 2) {
  159. var format = model.ConverterValue;
  160. if (model.ConverterValue == null || model.ConverterValue == "")
  161. format = "DD/MM/YYYY";
  162. var token = "Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate1('" + model.Value + "'," + format + ")";
  163. }
  164. else if (model.ConverterType == 1) {
  165. var format = model.ConverterValue;
  166. if (model.ConverterValue == null || model.ConverterValue == "")
  167. format = "2";
  168. var token = "Unibase.Core.Helpers.NumberHelper.Instance().roundNumber('" + model.Value + "'," + format + ")";
  169. }
  170. else
  171. var token = model.Value;
  172. }
  173. labelarray.push(model.Label);
  174. tokenarray.push(token);
  175. propertyarray.push(propertyindex);
  176. HyperLink.push(model.HyperLink);
  177. arraylength = arraylength + 1;
  178. }
  179. if (arraylength % 2 === 0) {
  180. arraylength = arraylength;
  181. }
  182. else {
  183. arraylength = arraylength + 1;
  184. }
  185. var arrayindex = (arraylength / 2);
  186. var slicedarray = tokenarray.splice(0, arrayindex);
  187. var labelslice = labelarray.splice(0, arrayindex);
  188. var propertyslice = propertyarray.splice(0, arrayindex);
  189. for (var k = 0; k < propertyslice.length; k++) {
  190. for (var i = k; i <= k; i++) {
  191. var model = properties[i];
  192. for (var j = i; j <= i; j++) {
  193. if (j == 0) {
  194. $(detailContainer).find('#widget_details_' + portletwidgetid + '_col1 li:not(:first-child)').remove();
  195. }
  196. var replace = slicedarray[i];
  197. var data = null;
  198. if (result != null) {
  199. data = response.result.Data[0];
  200. }
  201. let token = Unibase.Core.Helpers.PropertyHelper.Instance().replace(replace, data);
  202. if (response.result.Js != null || response.result.Js != "") {
  203. eval(response.result.Js);
  204. }
  205. if (model.ConverterType == 3) {
  206. token = moment(token).format('LT');
  207. }
  208. if (token == "" || token == " " || token == "0 NA" || token == "0NA" || token == "null" || token == "Invalid date" || token == "1900/01/01" || token == "01/01/1900" || token == "01/01/1900 05:21:10" || token == "[object Object]" || token == "01/01/0001" || token == "0001/01/01" || token == "1901/01/01" || token == "01/01/1901" || token == "1901/01/01" || token == "01/01/1901" || token == "01/01/0001 12:01:00" || token == "01/01/0001 12:01" || token == "01/01/0001 00:00" || token == "01/01/0001 12:00:00 AM" || token == "01/01/0001 05:30:00 AM" || token == "0001-01-01T00:00:00") {
  209. token = "NA";
  210. }
  211. if (token == "true") {
  212. token = "True";
  213. }
  214. else if (token == "false") {
  215. token = "False";
  216. }
  217. else if (data == undefined) {
  218. token = "NA";
  219. }
  220. titletoken = token;
  221. if (HyperLink[propertyslice[k]] != null && HyperLink[propertyslice[k]] != "") {
  222. var HL = Unibase.Core.Helpers.TokenHelper.Instance().replace(HyperLink[propertyslice[k]], data);
  223. var href = "javascript:;";
  224. var target = "";
  225. if (HyperLink[propertyslice[k]].includes('href')) {
  226. var target = "target='_blank'";
  227. href = HL.replace(/href=/, '');
  228. if (href == "NA") {
  229. href = "javascript:;";
  230. target = "";
  231. }
  232. HL = '';
  233. }
  234. token = '<u><a href="' + href + '" ' + target + ' onclick="' + HL + '"><font class="text-ul text-dark">' + token + '</font></a></u>';
  235. }
  236. if (labelslice[j] != "") {
  237. list1 += '<li class="Twocolumn-listgroup-1-item Twocolumn-listgroup-1-addeditem li-' + propertyslice[k] + ' px-0 py-2 detailProperty_' + portletwidgetid + ' widget_details_item' + portletwidgetid + '_col1"><div class="d-flex justify-content-between align-items-center"><span class="col-5 pl-2 text-light">' + labelslice[j] + '</span><span class="text-overflow text-right d-none d-md-block" title="' + titletoken + '">' + token + '</span><span class="text-overflow text-right col-7 pr-0 d-md-none font-weight-600" title="' + titletoken + '">' + token + '</span></div></li>';
  238. }
  239. else {
  240. labelArray1.push(labelslice[j]);
  241. list1 += '<li class="Twocolumn-listgroup-1-item Twocolumn-listgroup-1-addeditem li-' + propertyslice[k] + ' px-0 py-2 detailProperty_' + portletwidgetid + ' widget_details_item' + portletwidgetid + '_col1"><div class="d-flex justify-content-between align-items-center"><span class="text-overflow text-left" title="' + titletoken + '">' + token + '</span></div></li>';
  242. }
  243. $("." + detailContainer).find(`#widget_details_${portletwidgetid}_col1`).html(list1);
  244. $("." + detailContainer).find(`#widget_details_${portletwidgetid}_col2`).empty();
  245. if (screen.width < 1198 && (cssproperty[0].FontSize == '14px' || cssproperty[0].FontSize == 14)) {
  246. $("." + detailContainer).find('.widget_details_item' + portletwidgetid + '_col1').css({ "border-top": borderTop, "font-size": '11px', "font-family": cssproperty[0].FontStyle, "background-color": cssproperty[0].BackgroundColor, "list-style-type": cssproperty[0].ListStyleType });
  247. }
  248. else {
  249. $("." + detailContainer).find('.widget_details_item' + portletwidgetid + '_col1').css({ "border-top": borderTop, "font-size": cssproperty[0].FontSize + 'px', "font-family": cssproperty[0].FontStyle, "background-color": cssproperty[0].BackgroundColor, "list-style-type": cssproperty[0].ListStyleType });
  250. }
  251. }
  252. if (labelArray1.length == j) {
  253. $("." + detailContainer).find(`#widget_details_${portletwidgetid}_col1`).removeClass('px-30').addClass('px-10');
  254. }
  255. }
  256. }
  257. for (var k = 0; k < propertyarray.length; k++) {
  258. for (var i = k; i <= k; i++) {
  259. for (var j = i; j <= i; j++) {
  260. if (j == 0) {
  261. $(detailContainer).find('#widget_details_' + portletwidgetid + '_col2 li:not(:first-child)').remove();
  262. }
  263. var replace = tokenarray[i];
  264. data = response.result.Data[0];
  265. let token = Unibase.Core.Helpers.PropertyHelper.Instance().replace(replace, data);
  266. if (response.result.Js != null || response.result.Js != "") {
  267. eval(response.result.Js);
  268. }
  269. if (token == "" || token == "0 NA" || token == "0NA" || token == "null" || token == "Invalid date" || token == "1900/01/01" || token == "01/01/1900" || token == "01/01/1900 05:21:10" || token == "[object Object]" || token == " " || token == "01/01/0001" || token == "0001/01/01" || token == "1901/01/01" || token == "01/01/1901" || token == "1901/01/01" || token == "01/01/1901" || token == "01/01/0001 12:01:00" || token == "01/01/0001 00:00" || token == "01/01/0001 12:00:00 AM" || token == "01/01/0001 05:30:00 AM") {
  270. token = "NA";
  271. }
  272. if (token == "true") {
  273. token = "True";
  274. }
  275. else if (token == "false") {
  276. token = "False";
  277. }
  278. else if (data == undefined) {
  279. token = "NA";
  280. }
  281. titletoken = token;
  282. if (HyperLink[propertyarray[k]] != null && HyperLink[propertyarray[k]] != "") {
  283. var HL = Unibase.Core.Helpers.TokenHelper.Instance().replace(HyperLink[propertyarray[k]], data);
  284. var href = "javascript:;";
  285. var target = "";
  286. if (HyperLink[propertyslice[k]].includes('href')) {
  287. var target = "target='_blank'";
  288. href = HL.replace(/href=/, '');
  289. if (href == "NA") {
  290. href = "javascript:;";
  291. target = "";
  292. }
  293. HL = '';
  294. }
  295. token = '<u><a href="' + href + '" ' + target + ' onclick="' + HL + '"><font class="text-ul text-dark">' + token + '</font></a></u>';
  296. }
  297. if (labelarray[j] != '') {
  298. list2 += '<li class="Twocolumn-listgroup-2-item Twocolumn-listgroup-2-addeditem li-' + propertyarray[k] + ' px-0 py-2 detailProperty_' + portletwidgetid + ' widget_details_item' + portletwidgetid + '_col2"> <div class="d-flex justify-content-between align-items-center "> <span class="col-5 pl-2 text-light">' + labelarray[j] + '</span> <span class="text-overflow text-right d-none d-md-block" title="' + titletoken + '">' + token + '</span> <span class="text-overflow text-right col-sm-7 pr-0 d-md-none" title="' + titletoken + '">' + token + '</span> </div></li>';
  299. }
  300. else {
  301. labelArray2.push(labelarray[j]);
  302. list2 += '<li class="Twocolumn-listgroup-2-item Twocolumn-listgroup-2-addeditem li-' + propertyarray[k] + ' px-0 py-2 detailProperty_' + portletwidgetid + ' widget_details_item' + portletwidgetid + '_col2"> <div class="d-flex justify-content-between align-items-center "><span class="text-overflow" title="' + titletoken + '">' + token + '</span> </div></li>';
  303. }
  304. $("." + detailContainer).find(`#widget_details_${portletwidgetid}_col2`).html(list2);
  305. if (screen.width < 1198 && (cssproperty[0].FontSize == '14px' || cssproperty[0].FontSize == 14)) {
  306. $("." + detailContainer).find('.widget_details_item' + portletwidgetid + '_col2').css({ "border-top": borderTop, "font-size": '11px', "font-family": cssproperty[0].FontStyle, "background-color": cssproperty[0].BackgroundColor, "list-style-type": cssproperty[0].ListStyleType });
  307. }
  308. else {
  309. $("." + detailContainer).find('.widget_details_item' + portletwidgetid + '_col2').css({ "border-top": borderTop, "font-size": cssproperty[0].FontSize + 'px', "font-family": cssproperty[0].FontStyle, "background-color": cssproperty[0].BackgroundColor, "list-style-type": cssproperty[0].ListStyleType });
  310. }
  311. }
  312. if (labelArray2.length == j) {
  313. $("." + detailContainer).find(`#widget_details_${portletwidgetid}_col2`).removeClass('px-30').addClass('px-10');
  314. }
  315. }
  316. }
  317. if (cssproperty[0].IsDetailsHeader != undefined && cssproperty[0].IsDetailsHeader == true) {
  318. $("#hf-widget-title_" + portletwidgetid).parent('.card-header').remove();
  319. }
  320. $('.' + detailContainer).siblings('.line-loader').remove();
  321. $('.' + detailContainer).removeClass('hidden');
  322. $("[title='na' i]").find("a").removeAttr("href");
  323. $("[title='na' i]").find("u").css("text-decoration", "none");
  324. $("[title='na' i]").find("font").text("NA");
  325. }
  326. load_appconfigurations(config, data, portletwidgetid) {
  327. var instance = this;
  328. let settingurltype = config.SettingUrlType;
  329. var appconfigurationid = config.AppConfigurationId;
  330. var settingUrl = config.SettingUrl;
  331. var jsfunction = config.JsFunction;
  332. var formid = config.FormId;
  333. let editformid;
  334. var formpkname = config.FormPrimaryColumn;
  335. if (data.length <= 0) {
  336. editformid = 0;
  337. }
  338. else if (formpkname != "" && formpkname != null) {
  339. editformid = "{{" + formpkname + "}}";
  340. }
  341. else
  342. editformid = 0;
  343. var onclick = "";
  344. if (settingurltype == 2) {
  345. onclick = "this.fileCacheHelper.loadJsFile('" + config.SettingUrl + "', function () {var html = Unibase.Apps.Components.Stages.Instance().init();NavigationHelper.Instance().loadPopupHtml(html, Helpers.Size.DockLeft, function(containerid) {" + config.JsFunction + " ;});});";
  346. }
  347. else if (settingurltype == 1) {
  348. onclick = 'Unibase.Platform.Helpers.NavigationHelper.Instance().loadForm(' + formid + ', ' + editformid + ',' + appconfigurationid + ',' + portletwidgetid + ' )';
  349. }
  350. else if (settingurltype == 3) {
  351. let variablename = "Widget_" + config.SettingUrl.split(",")[0].split(".")[0].trim();
  352. let methodname = config.SettingUrl.split(",")[1];
  353. var onclickurl = "Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile('widgets/" + config.SettingUrl.split(",")[0] + "', function () { " + variablename + "." + methodname + " });";
  354. onclick = onclickurl;
  355. }
  356. else if (settingurltype == 10) {
  357. onclick = "Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(" + config.LinkDashboardId + ",'" + config.DashboardName + "')";
  358. }
  359. else if (settingurltype == 11) {
  360. onclick = "Unibase.Themes.Compact.Components.Nav.Instance().loadDashboardsInDashboard(" + config.LinkDashboardGroupId + ",0,true)";
  361. }
  362. return onclick;
  363. }
  364. static Instance() {
  365. this.instance = new Default();
  366. return this.instance;
  367. }
  368. }
  369. DetailWidgets.Default = Default;
  370. })(DetailWidgets = Compact.DetailWidgets || (Compact.DetailWidgets = {}));
  371. })(Compact = Themes.Compact || (Themes.Compact = {}));
  372. })(Themes = Unibase.Themes || (Unibase.Themes = {}));
  373. })(Unibase || (Unibase = {}));