@adins/ucsearch 2.9.23 → 2.11.0

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.
Files changed (66) hide show
  1. package/README.md +3 -82
  2. package/adins-ucsearch.d.ts +2 -1
  3. package/adins-ucsearch.metadata.json +1 -0
  4. package/bundles/adins-ucsearch.umd.js +1604 -0
  5. package/bundles/adins-ucsearch.umd.js.map +1 -0
  6. package/bundles/adins-ucsearch.umd.min.js +2 -0
  7. package/bundles/adins-ucsearch.umd.min.js.map +1 -0
  8. package/esm2015/adins-ucsearch.js +11 -0
  9. package/esm2015/lib/model/adins-constant.js +68 -0
  10. package/esm2015/lib/model/criteria-obj.model.js +31 -0
  11. package/esm2015/lib/model/input-search-obj.model.js +105 -0
  12. package/esm2015/lib/model/integration-obj.model.js +30 -0
  13. package/esm2015/lib/model/key-value-report.model.js +36 -0
  14. package/esm2015/lib/model/key-value-uc-search.model.js +54 -0
  15. package/esm2015/lib/model/request-criteria-obj.model.js +42 -0
  16. package/esm2015/lib/pipe/text-search.pipe.js +33 -0
  17. package/esm2015/lib/services/excel-service/excel-service.js +49 -0
  18. package/esm2015/lib/ucsearch.component.js +1273 -0
  19. package/esm2015/lib/ucsearch.module.js +43 -0
  20. package/esm2015/lib/ucsearch.service.js +18 -0
  21. package/esm2015/public-api.js +11 -0
  22. package/esm5/adins-ucsearch.js +11 -0
  23. package/esm5/lib/model/adins-constant.js +72 -0
  24. package/esm5/lib/model/criteria-obj.model.js +33 -0
  25. package/esm5/lib/model/input-search-obj.model.js +117 -0
  26. package/esm5/lib/model/integration-obj.model.js +32 -0
  27. package/esm5/lib/model/key-value-report.model.js +42 -0
  28. package/esm5/lib/model/key-value-uc-search.model.js +58 -0
  29. package/esm5/lib/model/request-criteria-obj.model.js +44 -0
  30. package/esm5/lib/pipe/text-search.pipe.js +42 -0
  31. package/esm5/lib/services/excel-service/excel-service.js +63 -0
  32. package/esm5/lib/ucsearch.component.js +1390 -0
  33. package/esm5/lib/ucsearch.module.js +47 -0
  34. package/esm5/lib/ucsearch.service.js +21 -0
  35. package/esm5/public-api.js +11 -0
  36. package/fesm2015/adins-ucsearch.js +1461 -0
  37. package/fesm2015/adins-ucsearch.js.map +1 -0
  38. package/fesm5/adins-ucsearch.js +1614 -0
  39. package/fesm5/adins-ucsearch.js.map +1 -0
  40. package/lib/model/adins-constant.d.ts +0 -21
  41. package/lib/model/key-value-report.model.d.ts +0 -1
  42. package/lib/pipe/text-search.pipe.d.ts +0 -3
  43. package/lib/services/excel-service/excel-service.d.ts +5 -0
  44. package/lib/ucsearch.component.d.ts +18 -26
  45. package/lib/ucsearch.module.d.ts +0 -12
  46. package/lib/ucsearch.service.d.ts +0 -3
  47. package/package.json +13 -24
  48. package/esm2020/adins-ucsearch.mjs +0 -5
  49. package/esm2020/lib/model/adins-constant.mjs +0 -52
  50. package/esm2020/lib/model/criteria-obj.model.mjs +0 -9
  51. package/esm2020/lib/model/input-search-obj.model.mjs +0 -45
  52. package/esm2020/lib/model/integration-obj.model.mjs +0 -12
  53. package/esm2020/lib/model/key-value-report.model.mjs +0 -15
  54. package/esm2020/lib/model/key-value-uc-search.model.mjs +0 -38
  55. package/esm2020/lib/model/request-criteria-obj.model.mjs +0 -14
  56. package/esm2020/lib/pipe/text-search.pipe.mjs +0 -24
  57. package/esm2020/lib/services/export-file.service.mjs +0 -61
  58. package/esm2020/lib/ucsearch.component.mjs +0 -1043
  59. package/esm2020/lib/ucsearch.module.mjs +0 -55
  60. package/esm2020/lib/ucsearch.service.mjs +0 -14
  61. package/esm2020/public-api.mjs +0 -7
  62. package/fesm2015/adins-ucsearch.mjs +0 -1371
  63. package/fesm2015/adins-ucsearch.mjs.map +0 -1
  64. package/fesm2020/adins-ucsearch.mjs +0 -1360
  65. package/fesm2020/adins-ucsearch.mjs.map +0 -1
  66. package/lib/services/export-file.service.d.ts +0 -12
package/README.md CHANGED
@@ -3,66 +3,8 @@
3
3
  This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
4
4
 
5
5
  ## Version
6
- Version 2.9.23 (angular 13) & 2.13.6 (angular 7)
7
- 1. Fix bug error ketikat isSearched true
8
-
9
- Version 2.9.22 (angular 13) & 2.13.5 (angular 7)
10
- 1. Fix bug ketika melakukan sort, hasil table berubah sesuai dengan crit. hasil table berubah jika hanya tombol search diklik
11
-
12
- Version 2.9.21 (angular 13) & 2.13.4 (angular 7)
13
- 1. add option autofill for auto input based on source
14
-
15
- Version 2.9.20 (angular 13)
16
- 1. add option export file as csv and json
17
- 2. Fix bug ketika export excel untuk type action - selain button / icon
18
-
19
- Version 2.9.19 (angular 13)
20
- 1. Fix header in export excel - nama header dalam file excel akan sesuai dengan nama header pada gridview
21
-
22
- Version 2.9.18 (angular 13)
23
- 1. Fix bug ketika export excel untuk type action
24
-
25
- Version 2.9.17 (angular 13)
26
- 1. Export excel button will appear if only user has click search button.
27
- 2. Export excel data will display the same data as grid view.
28
- 3. Export excel file name will adjust the json file title.
29
-
30
- Version 2.9.16 (angular 13)
31
- 1. bug fix - type numeric untuk value > 1000
32
-
33
- Version 2.9.15 (angular 13)
34
- 1. bug fix - check required when generate report
35
-
36
- Version 2.9.14 (angular 13) & 2.13.3 (angular 7)
37
- 1. add option on ExportTypeList for Justify PDF
38
- 2. remove option XLS & DOC from ExportTypeList
39
-
40
- Version 2.9.13 (angular 13) & 2.13.2 (angular 7)
41
- 1. tambah penjagaan criteria ketika export excel
42
-
43
- Version 2.9.11
44
- 1. tambah penjagaan check gte/lte/gt/lt
45
-
46
- Version 2.9.10
47
- 1. kasih penjagaan check gte/lte/gt/lt
48
-
49
- Version 2.9.9
50
- 1. add validation check gte/lte/gt/lt if numeric
51
-
52
- Version 2.13.1
53
- 1. add validation buat numeric, from gbs > dari to
54
-
55
- Version 2.12.1
56
- 1. wfKeyFilter harus string with split delimiter (xania;yoan;apsari)
57
-
58
- Version 2.11.28
59
- 1. async ngOnInit, initiateForm, reset
60
-
61
- Version 2.11.26
6
+ Version 2.11.0
62
7
  1. type dropdownsearch
63
- 1.
64
- 1.
65
- 1.
66
8
 
67
9
  Version 2.9.0
68
10
  1. Update new attribute readonly buat datepicker
@@ -565,7 +507,7 @@ search.json :
565
507
  "type" : "datepicker",
566
508
  "label" : "Date From",
567
509
  "name" : "dateDt",
568
- "id" : "uniqueId", //*mandatory di ucReport
510
+ "id" : "uniqueId",
569
511
  "value" : "", // BD : set value base on BusinessDate. format: BD + (+|-) + number.
570
512
  "isTime" : "" // boolean: true|false
571
513
  "restriction" : "gte",
@@ -606,7 +548,7 @@ search.json :
606
548
  "id" : "uniqueId",
607
549
  "value" : "",
608
550
  "datatype" : "date",
609
- "ddlType" : "all", // string: (one, all, blank) // (select one, select all, 'no select option') | default select all
551
+ "dllType" : "true",
610
552
  "items" : [],
611
553
  "isEvent" : "true", // boolean: true|false, if true dropdown criteria affect other dropdown criteria
612
554
  "affectedFilter" : ["dropdownId", "searchId"], // affected filter check by name
@@ -619,27 +561,6 @@ search.json :
619
561
  "itemsUrl" : [],
620
562
  "exclude" : [] // list value to exclude from list
621
563
  },
622
- {
623
- "type" : "dropdownSearch",
624
- "label" : "dropdown",
625
- "name" : "dropdownId",
626
- "value" : "",
627
- "descr" : "", // value yg tampilin di inputan dds(drop-down-search)
628
- "ddsType" : "true", // string: (one, all, blank) // (select one, select all, 'no select option') | default select all
629
- "placeholder": "FILTER",
630
- "size": 10, // height of dds, *mandatory
631
- "isListHide": true, // default setting, *mandatory
632
- "isFromURL": true,
633
- "isQueryIn": true,
634
- "environment": "", // key name from listEnvironments
635
- "path": "", // path api
636
- "items" : [],
637
- "itemsUrl" : [],
638
- "criteriaPropName": "", // criteria property name
639
- "criteriaPropValue": "", // criteria value
640
- "exclude" : [] // list value to exclude from list
641
-
642
- },
643
564
  {
644
565
  "type": "taskDefinitionKey",
645
566
  "label" : "taskDefinitionKey",
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
- /// <amd-module name="@adins/ucsearch" />
5
4
  export * from './public-api';
5
+ export { TextSearchPipe as ɵb } from './lib/pipe/text-search.pipe';
6
+ export { ExcelService as ɵa } from './lib/services/excel-service/excel-service';
@@ -0,0 +1 @@
1
+ {"__symbolic":"module","version":4,"metadata":{"UCSearchService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":2,"character":1},"arguments":[{"providedIn":"root"}]}],"members":{"__ctor__":[{"__symbolic":"constructor"}]},"statics":{"ngInjectableDef":{}}},"UCSearchComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":18,"character":1},"arguments":[{"selector":"lib-UCSearch","providers":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":22,"character":28}],"animations":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"trigger","line":24,"character":4},"arguments":["changeDivSize",[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":25,"character":6},"arguments":["initial",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":25,"character":23},"arguments":[{"height":"*","opacity":"1"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"state","line":29,"character":6},"arguments":["final",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"style","line":29,"character":21},"arguments":[{"height":"0px","opacity":"0","overflow":"hidden"}]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":34,"character":6},"arguments":["initial=>final",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":34,"character":35},"arguments":["300ms"]}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"transition","line":35,"character":6},"arguments":["final=>initial",{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/animations","name":"animate","line":35,"character":35},"arguments":["300ms"]}]}]]}],"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.data-numericpair=\"{{question.numericPair}}\"\r\n attr.data-crit-datatable=\"{{question.isCriteriaDataTable}}\"\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 [readonly]=\"question.readonly\" attr.data-type=\"{{question.datatype}}\"\r\n attr.data-name=\"{{question.name}}\"\r\n attr.data-datepickerpair=\"{{question.datepickerPair}}\"\r\n 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'}}\"\r\n (focusout)=\"question.restriction != undefined && 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\r\n *ngIf=\"question.type == 'taskDefinitionKey' || question.type == 'processKey' || 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' || question.type == 'processKey') ? SetProcessKey(i,question.wfKeyFilter) : 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 attr.data-crit-datatable=\"{{question.isCriteriaDataTable}}\"\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 :\r\n question.itemsUrl[0].Value}}</label>\r\n </div>\r\n <div *ngIf=\"question.type=='dropdownSearch'\">\r\n <div class=\"dds-display-item\">\r\n <input type=\"text\" class=\"form-control search-form-control dds-input\"\r\n [(ngModel)]=\"question.value\" readonly\r\n (click)=\"question.isListHide = !question.isListHide; question.searchText=''\">\r\n </div>\r\n <div class=\"dds-list-container\" [hidden]=\"question.isListHide\">\r\n <input type=\"text\" class=\"form-control\" [(ngModel)]=\"question.searchText\"\r\n placeholder=\"FILTER\">\r\n <div class=\"dds-items-container\">\r\n <!-- blm tentu bisa -->\r\n <div class=\"dds-list-item\" (click)=\"selectedOption({key:'',value:''},question)\">\r\n Select One\r\n </div>\r\n <div class=\"dds-list-item\"\r\n *ngFor=\"let item of question?.items | textSearch : question.searchText; let i=index\"\r\n (click)=\"selectedOption(item,question)\"\r\n [ngClass]=\"{'dds-active': isSelected(item, question.value)}\">\r\n {{item?.value}}\r\n </div>\r\n </div>\r\n </div>\r\n\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\r\n 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 -->","styles":[".ucSearch-title{margin:3px}.dds-input{background-color:#fff;text-transform:uppercase}.dds-display-item:after{content:'\\e929';font-family:feather;font-size:1rem;display:inline-block;position:absolute;right:20px;top:10px;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.dds-list-container{position:relative}.dds-items-container{border:1px solid #00b7d4;background-color:#fff;position:absolute;font-size:1rem;overflow:auto;height:500%;width:100%;z-index:9;top:100%}.dds-list-item{padding:2px 5px;cursor:pointer}.dds-list-item:hover{background-color:#1a73e8;color:#fff}.dds-active{background-color:#ddd}"]}]}],"members":{"content":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":43,"character":3},"arguments":["enjiForm"]}]}],"myForm":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":49,"character":3},"arguments":["formIdSearch"]}]}],"searchInput":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":50,"character":3}}]}],"pageSize":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":51,"character":3}}]}],"isReport":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":52,"character":3}}]}],"result":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":53,"character":3}}]}],"genRpt":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":54,"character":3}}]}],"reqGetAllData":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":55,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":115,"character":5},"arguments":[{"__symbolic":"reference","module":"@angular/platform-browser","name":"DOCUMENT","line":115,"character":12}]}],null,null,null],"parameters":[{"__symbolic":"reference","module":"@angular/common/http","name":"HttpClient","line":114,"character":28},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","module":"@angular/core","name":"Renderer2","line":114,"character":96},null,{"__symbolic":"reference","module":"ngx-toastr","name":"ToastrService","line":115,"character":56},{"__symbolic":"reference","module":"ngx-cookie","name":"CookieService","line":115,"character":94},{"__symbolic":"reference","module":"@angular/common","name":"DatePipe","line":116,"character":22}]}],"changeState":[{"__symbolic":"method"}],"ngOnInit":[{"__symbolic":"method"}],"initiateForm":[{"__symbolic":"method"}],"SetRoleOfficeCodes":[{"__symbolic":"method"}],"setDefaultValueMonth":[{"__symbolic":"method"}],"setMonthDDL":[{"__symbolic":"method"}],"setDefaultValueYear":[{"__symbolic":"method"}],"setYearDDL":[{"__symbolic":"method"}],"getJSON":[{"__symbolic":"method"}],"postJSON":[{"__symbolic":"method"}],"searchClick":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"search":[{"__symbolic":"method"}],"GenerateReport":[{"__symbolic":"method"}],"lessThanFour":[{"__symbolic":"method"}],"resolveObject":[{"__symbolic":"method"}],"transformAmount":[{"__symbolic":"method"}],"transformToDecimal":[{"__symbolic":"method"}],"exportAsXLSX":[{"__symbolic":"method"}],"onChangeEvent":[{"__symbolic":"method"}],"SetProcessKey":[{"__symbolic":"method"}],"switchCase":[{"__symbolic":"method"}],"DecryptString":[{"__symbolic":"method"}],"checkInputDate":[{"__symbolic":"method"}],"selectedOption":[{"__symbolic":"method"}],"isSelected":[{"__symbolic":"method"}]}},"customCurrencyMaskConfig":{"align":"right","allowNegative":false,"allowZero":true,"decimal":".","precision":2,"prefix":"","suffix":"","thousands":",","nullable":false,"inputMode":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-currency","name":"CurrencyMaskInputMode","line":20,"character":13},"member":"NATURAL"}},"UCSearchModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":22,"character":1},"arguments":[{"declarations":[{"__symbolic":"reference","name":"UCSearchComponent"},{"__symbolic":"reference","name":"ɵb"}],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":25,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"FormsModule","line":26,"character":4},{"__symbolic":"reference","module":"@adins/uc-show-errors","name":"UcShowErrorsModule","line":27,"character":4},{"__symbolic":"reference","module":"@adins/uc-directive-upper-case","name":"UcDirectiveUpperCaseModule","line":28,"character":4},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"ngx-currency","name":"NgxCurrencyModule","line":29,"character":4},"member":"forRoot"},"arguments":[{"__symbolic":"reference","name":"customCurrencyMaskConfig"}]},{"__symbolic":"call","expression":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@ngx-translate/core","name":"TranslateModule","line":30,"character":4},"member":"forChild"}}],"exports":[{"__symbolic":"reference","name":"UCSearchComponent"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"exportAsExcelFile":[{"__symbolic":"method"}],"saveAsExcelFile":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Pipe","line":2,"character":1},"arguments":[{"name":"textSearch"}]}],"members":{"transform":[{"__symbolic":"method"}]}}},"origins":{"UCSearchService":"./lib/ucsearch.service","UCSearchComponent":"./lib/ucsearch.component","customCurrencyMaskConfig":"./lib/ucsearch.module","UCSearchModule":"./lib/ucsearch.module","ɵa":"./lib/services/excel-service/excel-service","ɵb":"./lib/pipe/text-search.pipe"},"importAs":"@adins/ucsearch"}