@adins/ucsearch 2.2.52 → 2.2.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -212,19 +212,33 @@ var ExportTypeConstant = /** @class */ (function () {
212
212
  */
213
213
  var ListKeyValueMonth = /** @class */ (function () {
214
214
  function ListKeyValueMonth() {
215
+ this.DictOfMonth = {};
215
216
  this.ListOfMonth = new Array();
217
+ this.DictOfMonth = {};
216
218
  this.ListOfMonth.push({ key: 1, value: "January" });
219
+ this.DictOfMonth[1] = "January";
217
220
  this.ListOfMonth.push({ key: 2, value: "February" });
221
+ this.DictOfMonth[2] = "February";
218
222
  this.ListOfMonth.push({ key: 3, value: "March" });
223
+ this.DictOfMonth[3] = "March";
219
224
  this.ListOfMonth.push({ key: 4, value: "April" });
225
+ this.DictOfMonth[4] = "April";
220
226
  this.ListOfMonth.push({ key: 5, value: "May" });
227
+ this.DictOfMonth[5] = "May";
221
228
  this.ListOfMonth.push({ key: 6, value: "June" });
229
+ this.DictOfMonth[6] = "June";
222
230
  this.ListOfMonth.push({ key: 7, value: "July" });
231
+ this.DictOfMonth[7] = "July";
223
232
  this.ListOfMonth.push({ key: 8, value: "August" });
233
+ this.DictOfMonth[8] = "August";
224
234
  this.ListOfMonth.push({ key: 9, value: "September" });
235
+ this.DictOfMonth[9] = "September";
225
236
  this.ListOfMonth.push({ key: 10, value: "October" });
237
+ this.DictOfMonth[10] = "October";
226
238
  this.ListOfMonth.push({ key: 11, value: "November" });
239
+ this.DictOfMonth[11] = "November";
227
240
  this.ListOfMonth.push({ key: 12, value: "December" });
241
+ this.DictOfMonth[12] = "December";
228
242
  }
229
243
  return ListKeyValueMonth;
230
244
  }());
@@ -417,15 +431,15 @@ var UCSearchComponent = /** @class */ (function () {
417
431
  //pengecekan ddl
418
432
  if (data.component[i].type == "dropdown") {
419
433
  if (data.component[i].dtmType != undefined) {
420
- if (data.component[i].dtmType == "month") {
434
+ if (data.component[i].dtmType.includes("month")) {
421
435
  if (data.component[i].value != undefined && data.component[i].value.includes("BD")) {
422
- data.component[i].value = _this.BusinessDt.getMonth() + 1;
436
+ data.component[i].value = _this.setDefaultValueMonth(data.component[i].value);
423
437
  }
424
- data.component[i].items = _this.ListOfMonth.ListOfMonth;
438
+ data.component[i].items = _this.setMonthDDL(data.component[i].dtmType);
425
439
  }
426
440
  if (data.component[i].dtmType.includes("year")) {
427
441
  if (data.component[i].value != undefined && data.component[i].value.includes("BD")) {
428
- data.component[i].value = _this.BusinessDt.getFullYear();
442
+ data.component[i].value = _this.setDefaultValueYear(data.component[i].value);
429
443
  }
430
444
  data.component[i].items = _this.setYearDDL(data.component[i].dtmType);
431
445
  }
@@ -538,6 +552,112 @@ var UCSearchComponent = /** @class */ (function () {
538
552
  }
539
553
  this.searchInput.integrationObj.requestObj["OfficeRoleCodes"] = listOfficeRoleCodes;
540
554
  };
555
+ /**
556
+ * @param {?} value
557
+ * @return {?}
558
+ */
559
+ UCSearchComponent.prototype.setDefaultValueMonth = /**
560
+ * @param {?} value
561
+ * @return {?}
562
+ */
563
+ function (value) {
564
+ /** @type {?} */
565
+ var businessDate = new Date(this.BusinessDt);
566
+ /** @type {?} */
567
+ var operator = value.charAt(2);
568
+ /** @type {?} */
569
+ var tempValue = value.split(operator, 2);
570
+ /** @type {?} */
571
+ var numMonth = parseInt(tempValue[1]);
572
+ if (!numMonth)
573
+ numMonth = 1;
574
+ if (operator == "-") {
575
+ businessDate.setMonth(businessDate.getMonth() - numMonth);
576
+ }
577
+ else if (operator == "+") {
578
+ businessDate.setMonth(businessDate.getMonth() + numMonth);
579
+ }
580
+ return businessDate.getMonth();
581
+ };
582
+ /**
583
+ * @param {?} month
584
+ * @return {?}
585
+ */
586
+ UCSearchComponent.prototype.setMonthDDL = /**
587
+ * @param {?} month
588
+ * @return {?}
589
+ */
590
+ function (month) {
591
+ /** @type {?} */
592
+ var ListOfMonth;
593
+ /** @type {?} */
594
+ var equation = month.match("[\\/+][-]|[-][\\/+]|\\/+|-");
595
+ /** @type {?} */
596
+ var toMin = this.BusinessDt.getMonth();
597
+ /** @type {?} */
598
+ var toMax = this.BusinessDt.getMonth();
599
+ /** @type {?} */
600
+ var tempEquation = equation[0];
601
+ /** @type {?} */
602
+ var minMax = parseInt(month.substring(equation.index + equation[0].length));
603
+ if (minMax >= 12)
604
+ return this.ListOfMonth.ListOfMonth;
605
+ if ((tempEquation == "+-" || tempEquation == "-+") && minMax >= 6)
606
+ return this.ListOfMonth.ListOfMonth;
607
+ /** @type {?} */
608
+ var dictOfMonth = this.ListOfMonth.DictOfMonth;
609
+ ListOfMonth.push({ key: toMin, value: dictOfMonth[toMin] });
610
+ for (var q = 0; q < minMax; q++) {
611
+ if (tempEquation.includes("-")) {
612
+ toMin--;
613
+ if (toMin == 0)
614
+ toMin = 12;
615
+ ListOfMonth.push({ key: toMin, value: dictOfMonth[toMin] });
616
+ }
617
+ if (tempEquation.includes("+")) {
618
+ toMax++;
619
+ if (toMax == 13)
620
+ toMax = 1;
621
+ ListOfMonth.push({ key: toMax, value: dictOfMonth[toMax] });
622
+ }
623
+ }
624
+ ListOfMonth.sort((/**
625
+ * @param {?} a
626
+ * @param {?} b
627
+ * @return {?}
628
+ */
629
+ function (a, b) {
630
+ return a.key - b.key;
631
+ }));
632
+ return ListOfMonth;
633
+ };
634
+ /**
635
+ * @param {?} value
636
+ * @return {?}
637
+ */
638
+ UCSearchComponent.prototype.setDefaultValueYear = /**
639
+ * @param {?} value
640
+ * @return {?}
641
+ */
642
+ function (value) {
643
+ /** @type {?} */
644
+ var businessDate = new Date(this.BusinessDt);
645
+ /** @type {?} */
646
+ var operator = value.charAt(2);
647
+ /** @type {?} */
648
+ var tempValue = value.split(operator, 2);
649
+ /** @type {?} */
650
+ var numYear = parseInt(tempValue[1]);
651
+ if (!numYear)
652
+ numYear = 1;
653
+ if (operator == "-") {
654
+ businessDate.setFullYear(businessDate.getFullYear() - numYear);
655
+ }
656
+ else if (operator == "+") {
657
+ businessDate.setFullYear(businessDate.getFullYear() + numYear);
658
+ }
659
+ return businessDate.getFullYear();
660
+ };
541
661
  /**
542
662
  * @param {?} year
543
663
  * @return {?}
@@ -690,11 +810,11 @@ var UCSearchComponent = /** @class */ (function () {
690
810
  request.rowPerPage = rowPerPage;
691
811
  request.orderBy = orderBy;
692
812
  request.queryString = this.configuration.querystring;
693
- for (var i_1 = 0; i_1 < this.countForm; i_1++) {
813
+ for (var i = 0; i < this.countForm; i++) {
694
814
  /** @type {?} */
695
815
  var critObj = new CriteriaObj();
696
816
  /** @type {?} */
697
- var component = this.myForm.nativeElement[i_1];
817
+ var component = this.myForm.nativeElement[i];
698
818
  // // popup message if required
699
819
  // if (component.getAttribute('data-required') != null && component.getAttribute('data-required') == "true") {
700
820
  // let val = component.value.trim();
@@ -726,9 +846,9 @@ var UCSearchComponent = /** @class */ (function () {
726
846
  this.toastr.warning("Please select " + label);
727
847
  break;
728
848
  }
729
- if (this.configuration.component[i_1].type == "taskDefinitionKey" || this.configuration.component[i_1].type == "officeRoleCodes")
849
+ if (this.configuration.component[i].type == "taskDefinitionKey" || this.configuration.component[i].type == "officeRoleCodes")
730
850
  continue;
731
- if (this.configuration.component[i_1].type == "claim") {
851
+ if (this.configuration.component[i].type == "claim") {
732
852
  critObj.propName = component.getAttribute('data-name');
733
853
  critObj.restriction = text;
734
854
  critObj.value = null;
@@ -1059,145 +1179,151 @@ var UCSearchComponent = /** @class */ (function () {
1059
1179
  function (condList) {
1060
1180
  /** @type {?} */
1061
1181
  var condition = false;
1062
- for (var i = 0; i < condList.conditions.length; i++) {
1182
+ var _loop_1 = function (i) {
1063
1183
  /** @type {?} */
1064
- var idx = this.searchInput.switchValue.findIndex((/**
1184
+ var idx = this_1.searchInput.switchValue.findIndex((/**
1065
1185
  * @param {?} x
1066
1186
  * @return {?}
1067
1187
  */
1068
1188
  function (x) { return x.property == condList.conditions[i].property; }));
1069
1189
  if (condList.conditions[i].restriction == "EQ") {
1070
1190
  if (condList.conditions[i].isUser != true) {
1071
- if (this.searchInput.switchValue[idx].value == condList.conditions[i].value) {
1191
+ if (this_1.searchInput.switchValue[idx].value == condList.conditions[i].value) {
1072
1192
  condition = true;
1073
1193
  }
1074
1194
  else {
1075
1195
  condition = false;
1076
- break;
1196
+ return "break";
1077
1197
  }
1078
1198
  }
1079
1199
  else {
1080
1200
  /** @type {?} */
1081
1201
  var username = localStorage.getItem("Username");
1082
- if (this.searchInput.switchValue[idx].value == username) {
1202
+ if (this_1.searchInput.switchValue[idx].value == username) {
1083
1203
  condition = true;
1084
1204
  }
1085
1205
  else {
1086
1206
  condition = false;
1087
- break;
1207
+ return "break";
1088
1208
  }
1089
1209
  }
1090
1210
  }
1091
1211
  else if (condList.conditions[i].restriction == "NEQ") {
1092
1212
  if (condList.conditions[i].isUser != true) {
1093
- if (this.searchInput.switchValue[idx].value != condList.conditions[i].value) {
1213
+ if (this_1.searchInput.switchValue[idx].value != condList.conditions[i].value) {
1094
1214
  condition = true;
1095
1215
  }
1096
1216
  else {
1097
1217
  condition = false;
1098
- break;
1218
+ return "break";
1099
1219
  }
1100
1220
  }
1101
1221
  else {
1102
1222
  /** @type {?} */
1103
1223
  var username = localStorage.getItem("Username");
1104
- if (this.searchInput.switchValue[idx].value != username) {
1224
+ if (this_1.searchInput.switchValue[idx].value != username) {
1105
1225
  condition = true;
1106
1226
  }
1107
1227
  else {
1108
1228
  condition = false;
1109
- break;
1229
+ return "break";
1110
1230
  }
1111
1231
  }
1112
1232
  }
1113
1233
  else if (condList.conditions[i].restriction == "GT") {
1114
1234
  if (condList.conditions[i].isUser != true) {
1115
- if (this.searchInput.switchValue[idx].value > condList.conditions[i].value) {
1235
+ if (this_1.searchInput.switchValue[idx].value > condList.conditions[i].value) {
1116
1236
  condition = true;
1117
1237
  }
1118
1238
  else {
1119
1239
  condition = false;
1120
- break;
1240
+ return "break";
1121
1241
  }
1122
1242
  }
1123
1243
  else {
1124
1244
  /** @type {?} */
1125
1245
  var username = localStorage.getItem("Username");
1126
- if (this.searchInput.switchValue[idx].value > username) {
1246
+ if (this_1.searchInput.switchValue[idx].value > username) {
1127
1247
  condition = true;
1128
1248
  }
1129
1249
  else {
1130
1250
  condition = false;
1131
- break;
1251
+ return "break";
1132
1252
  }
1133
1253
  }
1134
1254
  }
1135
1255
  else if (condList.conditions[i].restriction == "GTE") {
1136
1256
  if (condList.conditions[i].isUser != true) {
1137
- if (this.searchInput.switchValue[idx].value >= condList.conditions[i].value) {
1257
+ if (this_1.searchInput.switchValue[idx].value >= condList.conditions[i].value) {
1138
1258
  condition = true;
1139
1259
  }
1140
1260
  else {
1141
1261
  condition = false;
1142
- break;
1262
+ return "break";
1143
1263
  }
1144
1264
  }
1145
1265
  else {
1146
1266
  /** @type {?} */
1147
1267
  var username = localStorage.getItem("Username");
1148
- if (this.searchInput.switchValue[idx].value >= username) {
1268
+ if (this_1.searchInput.switchValue[idx].value >= username) {
1149
1269
  condition = true;
1150
1270
  }
1151
1271
  else {
1152
1272
  condition = false;
1153
- break;
1273
+ return "break";
1154
1274
  }
1155
1275
  }
1156
1276
  }
1157
1277
  else if (condList.conditions[i].restriction == "LT") {
1158
1278
  if (condList.conditions[i].isUser != true) {
1159
- if (this.searchInput.switchValue[idx].value < condList.conditions[i].value) {
1279
+ if (this_1.searchInput.switchValue[idx].value < condList.conditions[i].value) {
1160
1280
  condition = true;
1161
1281
  }
1162
1282
  else {
1163
1283
  condition = false;
1164
- break;
1284
+ return "break";
1165
1285
  }
1166
1286
  }
1167
1287
  else {
1168
1288
  /** @type {?} */
1169
1289
  var username = localStorage.getItem("Username");
1170
- if (this.searchInput.switchValue[idx].value < username) {
1290
+ if (this_1.searchInput.switchValue[idx].value < username) {
1171
1291
  condition = true;
1172
1292
  }
1173
1293
  else {
1174
1294
  condition = false;
1175
- break;
1295
+ return "break";
1176
1296
  }
1177
1297
  }
1178
1298
  }
1179
1299
  else if (condList.conditions[i].restriction == "LTE") {
1180
1300
  if (condList.conditions[i].isUser != true) {
1181
- if (this.searchInput.switchValue[idx].value <= condList.conditions[i].value) {
1301
+ if (this_1.searchInput.switchValue[idx].value <= condList.conditions[i].value) {
1182
1302
  condition = true;
1183
1303
  }
1184
1304
  else {
1185
1305
  condition = false;
1186
- break;
1306
+ return "break";
1187
1307
  }
1188
1308
  }
1189
1309
  else {
1190
1310
  /** @type {?} */
1191
1311
  var username = localStorage.getItem("Username");
1192
- if (this.searchInput.switchValue[idx].value <= username) {
1312
+ if (this_1.searchInput.switchValue[idx].value <= username) {
1193
1313
  condition = true;
1194
1314
  }
1195
1315
  else {
1196
1316
  condition = false;
1197
- break;
1317
+ return "break";
1198
1318
  }
1199
1319
  }
1200
1320
  }
1321
+ };
1322
+ var this_1 = this;
1323
+ for (var i = 0; i < condList.conditions.length; i++) {
1324
+ var state_1 = _loop_1(i);
1325
+ if (state_1 === "break")
1326
+ break;
1201
1327
  }
1202
1328
  return condition;
1203
1329
  };
@@ -1322,7 +1448,7 @@ var UCSearchComponent = /** @class */ (function () {
1322
1448
  UCSearchComponent.decorators = [
1323
1449
  { type: Component, args: [{
1324
1450
  selector: 'lib-UCSearch',
1325
- template: "<!-- Basic form layout section start -->\r\n<section id=\"horizontal-form-layouts\">\r\n <div class=\"row text-left\">\r\n <div class=\"col-md-12\">\r\n <div class=\"card\">\r\n <div class=\"pl-3 mb-2 mt-2\" *ngIf=\"configuration?.title != undefined && configuration?.title != ''\">\r\n <h4 class=\"card-title ucSearch-title\" translate>{{configuration.title}}</h4>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"px-3\">\r\n <form class=\"form form-horizontal\" id=\"formSearch\" #formIdSearch #enjiForm=\"ngForm\"\r\n (ngSubmit)=\"enjiForm.valid && searchClick()\">\r\n <div class=\"form-body\">\r\n <h4 class=\"form-section font-weight-bold\">\r\n <div (click)=\"changeState()\" class=\"btn no-padding cursor-pointer flip\">\r\n <i class=\"fa\" style=\"font-size: 15px; margin: 0px 0px 5px -15px;\"\r\n [ngClass]=\"isHidden ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\r\n </div>\r\n <span\r\n *ngIf=\"configuration?.sectionTitle != undefined && configuration?.sectionTitle != ''; then inputSectionTitle else defaultSectionTitle\"></span>\r\n <ng-template #inputSectionTitle>\r\n {{configuration?.sectionTitle}}\r\n </ng-template>\r\n <ng-template #defaultSectionTitle>\r\n Paging\r\n </ng-template>\r\n </h4>\r\n <!-- Ini Digunakan untuk Generate Dynamic Component -->\r\n <!-- [hidden]=\"isHidden\" -->\r\n <div class=\"panel-active\" [@changeDivSize]=currentState>\r\n <div class=\"row\">\r\n <div class=\"col-md-6 form-group\" *ngFor=\"let question of configuration?.component; let i = index\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <label class=\"col-md-5 no-padding\" for=\"{{question.id}}\"\r\n [ngClass]=\"{'adins-required-label': (question.isRequired || (question?.ddlType != undefined && question.ddlType == 'one'))}\"\r\n translate>{{question.label}}</label>\r\n <div class=\"col-md-7 no-padding\">\r\n <div *ngIf=\"question.type=='textbox'\">\r\n <input type=\"text\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n attr.data-crit-datatable=\"{{question.isCriteriaDataTable}}\"\r\n attr.data-required=\"{{question.isRequired}}\" value=\"{{question.value}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-type=\"{{question.datatype}}\"\r\n attr.data-name=\"{{question.name}}\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.label=\"{{question.label}}\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question.type=='textarea'\">\r\n <textarea type=\"text\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n attr.data-required=\"{{question.isRequired}}\" attr.data-type=\"{{question.datatype}}\"\r\n attr.data-name=\"{{question.name}}\" value=\"{{question.value}}\"\r\n attr.label=\"{{question.label}}\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\"></textarea>\r\n </div>\r\n <div *ngIf=\"question.type=='numeric'\">\r\n <input type=\"number\" id=\"{{question.id}}\" (focus)=\"transformToDecimal($event)\"\r\n (blur)=\"transformAmount($event)\" class=\"form-control search-form-control\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\" name=\"{{question.name+[i]}}\"\r\n attr.data-required=\"{{question.isRequired}}\" value=\"{{question.value}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.label=\"{{question.label}}\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name+[i]]?.touched || enjiForm.form.controls[question.name+[i]]?.dirty) && enjiForm.form.controls[question.name+[i]]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question.type=='currency'\">\r\n <div *ngIf=\"question?.isCustom != undefined && question?.isCustom\">\r\n <input type=\"\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.data-required=\"{{question.isRequired}}\" currencyMask [ngModel]=\"question.value\"\r\n [(ngModel)]=\"question.value\" [ngModelOptions]=\"{standalone: true}\"\r\n attr.label=\"{{question.label}}\"\r\n [options]=\"{ thousands: question.thousands, decimal: question.decimal, align: question.align, allowNegative: question.allowNegative, allowZero: question.allowZero, precision: question.precision, nullable: question.nullable }\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question?.isCustom == undefined || !question?.isCustom\">\r\n <input type=\"text\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.data-required=\"{{question.isRequired}}\" currencyMask [ngModel]=\"question.value\"\r\n [(ngModel)]=\"question.value\" [ngModelOptions]=\"{standalone: true}\"\r\n attr.label=\"{{question.label}}\"\r\n [options]=\"{ thousands: ',', decimal: '.', align: 'right', allowNegative: false, allowZero:true, precision: 2, nullable: false }\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n </div>\r\n </div>\r\n\r\n <!-- End Hardcode Lookup didalem-->\r\n <div *ngIf=\"question.type=='datepicker'\">\r\n <input type=\"{{question.isTime ? 'datetime-local' : 'date'}}\" id=\"{{question.id}}\"\r\n class=\"form-control search-form-control btn-lookup\" name=\"{{question.name+[i]}}\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\"\r\n attr.data-required=\"{{question.isRequired}}\" value=\"{{question.value}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.label=\"{{question.label}}\" min=\"{{question.minDate | date:'yyyy-MM-dd'}}\"\r\n max=\"{{question.maxDate | date:'yyyy-MM-dd'}}\" (focusout)=\"checkInputDate(question)\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name+[i]]?.touched || enjiForm.form.controls[question.name+[i]]?.dirty) && enjiForm.form.controls[question.name+[i]]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question.type == 'taskDefinitionKey' || question.type == 'officeRoleCodes'\">\r\n <select name=\"{{question.name}}\" attr.data-required=\"{{question.isRequired}}\"\r\n [required]=\"question.isRequired\" class=\"form-control search-form-control\"\r\n attr.query-in=\"{{question.isQueryIn}}\" attr.data-type=\"{{question.datatype}}\"\r\n attr.label=\"{{question.label}}\" [hidden]=\"question?.itemsUrl?.length == 1\"\r\n (change)=\"question.type == 'taskDefinitionKey' ? SetProcessKey(i) : SetRoleOfficeCodes(i)\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n <option *ngIf=\"question.ddlType == 'one' && question?.itemsUrl?.length != 1\"\r\n value=\"one\">Select One</option>\r\n <option\r\n *ngIf=\"(question?.ddlType == undefined || question.ddlType == 'all') && question?.itemsUrl?.length != 1\"\r\n value=\"all\">All</option>\r\n <option *ngFor=\"let item of question?.itemsUrl\" value=\"{{item.Key}}\">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n <label *ngIf=\"question?.itemsUrl?.length == 1\">{{question.itemsUrl[0].Value}}</label>\r\n </div>\r\n <div *ngIf=\"question.type=='dropdown'\">\r\n <select name=\"{{question.name}}\" attr.data-required=\"{{question.isRequired}}\"\r\n [(ngModel)]=\"question.value\" [required]=\"question.isRequired\"\r\n class=\"form-control search-form-control\" attr.query-in=\"{{question.isQueryIn}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.label=\"{{question.label}}\"\r\n [hidden]=\"!question.isFromURL ? question?.items?.length == 1 : question?.itemsUrl?.length == 1\"\r\n (change)=\"question.isEvent ? onChangeEvent($event.target.value, question) : ''\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n <option\r\n *ngIf=\"question.ddlType == 'one' && (!question.isFromURL ? question?.items?.length != 1 : question?.itemsUrl?.length != 1)\"\r\n value=\"one\">\r\n Select One</option>\r\n <option\r\n *ngIf=\"(question?.ddlType == undefined || question.ddlType == 'all') && (!question.isFromURL ? question?.items?.length != 1 : question?.itemsUrl?.length != 1)\"\r\n value=\"all\">All</option>\r\n <option *ngFor=\"let item of !question.isFromURL ? question?.items : question?.itemsUrl\"\r\n value=\"{{!question.isFromURL ? item.key : item.Key}}\">\r\n {{!question.isFromURL ? item.value : item.Value}}\r\n </option>\r\n </select>\r\n <label\r\n *ngIf=\"!question.isFromURL ? question?.items?.length == 1 : question?.itemsUrl?.length == 1\">{{!question.isFromURL\r\n ? question.items[0].value : question.itemsUrl[0].Value}}</label>\r\n </div>\r\n <div *ngIf=\"question.type=='claim'\">\r\n <select name=\"{{'claim'+[i]}}\" class=\"form-control search-form-control\"\r\n attr.data-type=\"{{'text'}}\" attr.data-crit-datatable=\"{{question.isCriteriaDataTable}}\"\r\n attr.data-name=\"{{'Assignee'}}\" [hidden]=\"ClaimList?.length == 1\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls['claim'+[i]]?.touched || enjiForm.form.controls['claim'+[i]]?.dirty) && enjiForm.form.controls['claim'+[i]]?.invalid }\">\r\n <option *ngIf=\"question.ddlType == 'one' && ClaimList?.length != 1\" value=\"one\">Select\r\n One</option>\r\n <option\r\n *ngIf=\"(question?.ddlType == undefined || question.ddlType == 'all') && ClaimList?.length != 1\"\r\n value=\"all\">All</option>\r\n <option *ngFor=\"let item of ClaimList\" value=\"{{item.Key}}\">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n </div>\r\n <lib-uc-show-errors *ngIf=\"question.type!='datepicker'\"\r\n [control]=\"enjiForm.form.controls[question.name]\" [submit]=\"enjiForm.submitted\">\r\n </lib-uc-show-errors>\r\n <lib-uc-show-errors *ngIf=\"question.type=='datepicker'\"\r\n [control]=\"enjiForm.form.controls[question.name+[i]]\" [submit]=\"enjiForm.submitted\">\r\n </lib-uc-show-errors>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6 form-group\" *ngIf=\"(isReport != undefined && isReport)\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <label class=\"col-md-5 no-padding\" translate>Report Type</label>\r\n <div class=\"col-md-7 no-padding\">\r\n <select name=\"ExportType\" [(ngModel)]=\"ExportType\" class=\"form-control search-form-control\"\r\n attr.data-type=\"text\">\r\n <option *ngFor=\"let item of ExportTypeList\" [value]=\"item.key\">{{item.value}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <div class=\"form-actions right\">\r\n <button *ngIf=\"exportData == true\" type=\"button\" (click)=\"exportAsXLSX()\"\r\n class=\"btn btn-raised btn-success mr-1\" translate>\r\n <i class=\"fa ft-download\"></i>&nbsp;<span translate>Export Excel</span>\r\n </button>\r\n <button type=\"button\" (click)=\"reset()\" class=\"btn btn-raised btn-warning mr-1\" translate>\r\n <i class=\"fa fa-times\"></i>&nbsp;<span translate>Reset</span>\r\n </button>\r\n <button *ngIf=\"(isReport == undefined || !isReport)\" type=\"submit\"\r\n class=\"btn btn-raised btn-primary\" #UCSearchClick>\r\n <i class=\"fa fa-search\"></i>&nbsp;<span translate>Search</span>\r\n </button>\r\n <button *ngIf=\"(isReport != undefined && isReport)\" type=\"button\" (click)=\"GenerateReport()\"\r\n class=\"btn btn-raised btn-primary\">\r\n <i class=\"fa ft-download\"></i>&nbsp;<span translate>Generate Report</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n<br>\r\n<!-- // Basic form layout section end -->",
1451
+ template: "<!-- Basic form layout section start -->\r\n<section id=\"horizontal-form-layouts\">\r\n <div class=\"row text-left\">\r\n <div class=\"col-md-12\">\r\n <div class=\"card\">\r\n <div class=\"pl-3 mb-2 mt-2\" *ngIf=\"configuration?.title != undefined && configuration?.title != ''\">\r\n <h4 class=\"card-title ucSearch-title\" translate>{{configuration.title}}</h4>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"px-3\">\r\n <form class=\"form form-horizontal\" id=\"formSearch\" #formIdSearch #enjiForm=\"ngForm\"\r\n (ngSubmit)=\"enjiForm.valid && searchClick()\">\r\n <div class=\"form-body\">\r\n <h4 class=\"form-section font-weight-bold\">\r\n <div (click)=\"changeState()\" class=\"btn no-padding cursor-pointer flip\">\r\n <i class=\"fa\" style=\"font-size: 15px; margin: 0px 0px 5px -15px;\"\r\n [ngClass]=\"isHidden ? 'fa-chevron-right' : 'fa-chevron-down'\"></i>\r\n </div>\r\n <span\r\n *ngIf=\"configuration?.sectionTitle != undefined && configuration?.sectionTitle != ''; then inputSectionTitle else defaultSectionTitle\"></span>\r\n <ng-template #inputSectionTitle>\r\n {{configuration?.sectionTitle}}\r\n </ng-template>\r\n <ng-template #defaultSectionTitle>\r\n Paging\r\n </ng-template>\r\n </h4>\r\n <!-- Ini Digunakan untuk Generate Dynamic Component -->\r\n <!-- [hidden]=\"isHidden\" -->\r\n <div class=\"panel-active\" [@changeDivSize]=currentState>\r\n <div class=\"row\">\r\n <div class=\"col-md-6 form-group\" *ngFor=\"let question of configuration?.component; let i = index\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <label class=\"col-md-5 no-padding\" for=\"{{question.id}}\"\r\n [ngClass]=\"{'adins-required-label': (question.isRequired || (question?.ddlType != undefined && question.ddlType == 'one'))}\"\r\n translate>{{question.label}}</label>\r\n <div class=\"col-md-7 no-padding\">\r\n <div *ngIf=\"question.type=='textbox'\">\r\n <input type=\"text\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n attr.data-crit-datatable=\"{{question.isCriteriaDataTable}}\"\r\n attr.data-required=\"{{question.isRequired}}\" value=\"{{question.value}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-type=\"{{question.datatype}}\"\r\n attr.data-name=\"{{question.name}}\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.label=\"{{question.label}}\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question.type=='textarea'\">\r\n <textarea type=\"text\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n attr.data-required=\"{{question.isRequired}}\" attr.data-type=\"{{question.datatype}}\"\r\n attr.data-name=\"{{question.name}}\" value=\"{{question.value}}\"\r\n attr.label=\"{{question.label}}\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\"></textarea>\r\n </div>\r\n <div *ngIf=\"question.type=='numeric'\">\r\n <input type=\"number\" id=\"{{question.id}}\" (focus)=\"transformToDecimal($event)\"\r\n (blur)=\"transformAmount($event)\" class=\"form-control search-form-control\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\" name=\"{{question.name+[i]}}\"\r\n attr.data-required=\"{{question.isRequired}}\" value=\"{{question.value}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.label=\"{{question.label}}\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name+[i]]?.touched || enjiForm.form.controls[question.name+[i]]?.dirty) && enjiForm.form.controls[question.name+[i]]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question.type=='currency'\">\r\n <div *ngIf=\"question?.isCustom != undefined && question?.isCustom\">\r\n <input type=\"\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.data-required=\"{{question.isRequired}}\" currencyMask [ngModel]=\"question.value\"\r\n [(ngModel)]=\"question.value\" [ngModelOptions]=\"{standalone: true}\"\r\n attr.label=\"{{question.label}}\"\r\n [options]=\"{ thousands: question.thousands, decimal: question.decimal, align: question.align, allowNegative: question.allowNegative, allowZero: question.allowZero, precision: question.precision, nullable: question.nullable }\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question?.isCustom == undefined || !question?.isCustom\">\r\n <input type=\"text\" id=\"{{question.id}}\" class=\"form-control search-form-control\"\r\n [required]=\"question.isRequired\" name=\"{{question.name}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.data-required=\"{{question.isRequired}}\" currencyMask [ngModel]=\"question.value\"\r\n [(ngModel)]=\"question.value\" [ngModelOptions]=\"{standalone: true}\"\r\n attr.label=\"{{question.label}}\"\r\n [options]=\"{ thousands: ',', decimal: '.', align: 'right', allowNegative: false, allowZero:true, precision: 2, nullable: false }\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n </div>\r\n </div>\r\n\r\n <!-- End Hardcode Lookup didalem-->\r\n <div *ngIf=\"question.type=='datepicker'\">\r\n <input type=\"{{question.isTime ? 'datetime-local' : 'date'}}\" id=\"{{question.id}}\"\r\n class=\"form-control search-form-control btn-lookup\" name=\"{{question.name+[i]}}\"\r\n [ngModel]=\"question.value\" [required]=\"question.isRequired\"\r\n attr.data-required=\"{{question.isRequired}}\" value=\"{{question.value}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\" attr.data-crit-datatable=\"{{question.isCriteriaDataTable}}\"\r\n (keyup.enter)=\"searchClick()\" attr.data-restriction=\"{{question.restriction}}\"\r\n attr.label=\"{{question.label}}\" min=\"{{question.minDate | date:'yyyy-MM-dd'}}\"\r\n max=\"{{question.maxDate | date:'yyyy-MM-dd'}}\" (focusout)=\"checkInputDate(question)\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name+[i]]?.touched || enjiForm.form.controls[question.name+[i]]?.dirty) && enjiForm.form.controls[question.name+[i]]?.invalid }\">\r\n </div>\r\n <div *ngIf=\"question.type == 'taskDefinitionKey' || question.type == 'officeRoleCodes'\">\r\n <select name=\"{{question.name}}\" attr.data-required=\"{{question.isRequired}}\"\r\n [required]=\"question.isRequired\" class=\"form-control search-form-control\"\r\n attr.query-in=\"{{question.isQueryIn}}\" attr.data-type=\"{{question.datatype}}\"\r\n attr.label=\"{{question.label}}\" [hidden]=\"question?.itemsUrl?.length == 1\"\r\n (change)=\"question.type == 'taskDefinitionKey' ? SetProcessKey(i) : SetRoleOfficeCodes(i)\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n <option *ngIf=\"question.ddlType == 'one' && question?.itemsUrl?.length != 1\"\r\n value=\"one\">Select One</option>\r\n <option\r\n *ngIf=\"(question?.ddlType == undefined || question.ddlType == 'all') && question?.itemsUrl?.length != 1\"\r\n value=\"all\">All</option>\r\n <option *ngFor=\"let item of question?.itemsUrl\" value=\"{{item.Key}}\">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n <label *ngIf=\"question?.itemsUrl?.length == 1\">{{question.itemsUrl[0].Value}}</label>\r\n </div>\r\n <div *ngIf=\"question.type=='dropdown'\">\r\n <select name=\"{{question.name}}\" attr.data-required=\"{{question.isRequired}}\"\r\n [(ngModel)]=\"question.value\" [required]=\"question.isRequired\"\r\n class=\"form-control search-form-control\" attr.query-in=\"{{question.isQueryIn}}\"\r\n attr.data-type=\"{{question.datatype}}\" attr.data-name=\"{{question.name}}\"\r\n attr.label=\"{{question.label}}\"\r\n [hidden]=\"!question.isFromURL ? question?.items?.length == 1 : question?.itemsUrl?.length == 1\"\r\n (change)=\"question.isEvent ? onChangeEvent($event.target.value, question) : ''\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls[question.name]?.touched || enjiForm.form.controls[question.name]?.dirty) && enjiForm.form.controls[question.name]?.invalid }\">\r\n <option\r\n *ngIf=\"question.ddlType == 'one' && (!question.isFromURL ? question?.items?.length != 1 : question?.itemsUrl?.length != 1)\"\r\n value=\"one\">\r\n Select One</option>\r\n <option\r\n *ngIf=\"(question?.ddlType == undefined || question.ddlType == 'all') && (!question.isFromURL ? question?.items?.length != 1 : question?.itemsUrl?.length != 1)\"\r\n value=\"all\">All</option>\r\n <option *ngFor=\"let item of !question.isFromURL ? question?.items : question?.itemsUrl\"\r\n value=\"{{!question.isFromURL ? item.key : item.Key}}\">\r\n {{!question.isFromURL ? item.value : item.Value}}\r\n </option>\r\n </select>\r\n <label\r\n *ngIf=\"!question.isFromURL ? question?.items?.length == 1 : question?.itemsUrl?.length == 1\">{{!question.isFromURL\r\n ? question.items[0].value : question.itemsUrl[0].Value}}</label>\r\n </div>\r\n <div *ngIf=\"question.type=='claim'\">\r\n <select name=\"{{'claim'+[i]}}\" class=\"form-control search-form-control\"\r\n attr.data-type=\"{{'text'}}\" attr.data-crit-datatable=\"{{question.isCriteriaDataTable}}\"\r\n attr.data-name=\"{{'Assignee'}}\" [hidden]=\"ClaimList?.length == 1\"\r\n [ngClass]=\"{ 'is-invalid':(enjiForm.submitted || enjiForm.form.controls['claim'+[i]]?.touched || enjiForm.form.controls['claim'+[i]]?.dirty) && enjiForm.form.controls['claim'+[i]]?.invalid }\">\r\n <option *ngIf=\"question.ddlType == 'one' && ClaimList?.length != 1\" value=\"one\">Select\r\n One</option>\r\n <option\r\n *ngIf=\"(question?.ddlType == undefined || question.ddlType == 'all') && ClaimList?.length != 1\"\r\n value=\"all\">All</option>\r\n <option *ngFor=\"let item of ClaimList\" value=\"{{item.Key}}\">\r\n {{item.Value}}\r\n </option>\r\n </select>\r\n </div>\r\n <lib-uc-show-errors *ngIf=\"question.type!='datepicker'\"\r\n [control]=\"enjiForm.form.controls[question.name]\" [submit]=\"enjiForm.submitted\">\r\n </lib-uc-show-errors>\r\n <lib-uc-show-errors *ngIf=\"question.type=='datepicker'\"\r\n [control]=\"enjiForm.form.controls[question.name+[i]]\" [submit]=\"enjiForm.submitted\">\r\n </lib-uc-show-errors>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-6 form-group\" *ngIf=\"(isReport != undefined && isReport)\">\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <label class=\"col-md-5 no-padding\" translate>Report Type</label>\r\n <div class=\"col-md-7 no-padding\">\r\n <select name=\"ExportType\" [(ngModel)]=\"ExportType\" class=\"form-control search-form-control\"\r\n attr.data-type=\"text\">\r\n <option *ngFor=\"let item of ExportTypeList\" [value]=\"item.key\">{{item.value}}</option>\r\n </select>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 no-padding\">\r\n <div class=\"form-actions right\">\r\n <button *ngIf=\"exportData == true\" type=\"button\" (click)=\"exportAsXLSX()\"\r\n class=\"btn btn-raised btn-success mr-1\" translate>\r\n <i class=\"fa ft-download\"></i>&nbsp;<span translate>Export Excel</span>\r\n </button>\r\n <button type=\"button\" (click)=\"reset()\" class=\"btn btn-raised btn-warning mr-1\" translate>\r\n <i class=\"fa fa-times\"></i>&nbsp;<span translate>Reset</span>\r\n </button>\r\n <button *ngIf=\"(isReport == undefined || !isReport)\" type=\"submit\"\r\n class=\"btn btn-raised btn-primary\" #UCSearchClick>\r\n <i class=\"fa fa-search\"></i>&nbsp;<span translate>Search</span>\r\n </button>\r\n <button *ngIf=\"(isReport != undefined && isReport)\" type=\"button\" (click)=\"GenerateReport()\"\r\n class=\"btn btn-raised btn-primary\">\r\n <i class=\"fa ft-download\"></i>&nbsp;<span translate>Generate Report</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n<br>\r\n<!-- // Basic form layout section end -->",
1326
1452
  providers: [ExcelService, DatePipe],
1327
1453
  animations: [
1328
1454
  trigger('changeDivSize', [