@dev-tcloud/tcloud-ui 0.0.5 → 0.0.7

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 (46) hide show
  1. package/README.md +5 -0
  2. package/esm2020/lib/_directives/directives.module.mjs +16 -0
  3. package/esm2020/lib/_directives/tooltip/tooltip.directive.mjs +165 -0
  4. package/esm2020/lib/_modules/tcloud-ui-data-list/services/data-list.service.mjs +39 -0
  5. package/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.mjs +56 -0
  6. package/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.mjs +250 -0
  7. package/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.mjs +3 -0
  8. package/esm2020/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module.mjs +36 -0
  9. package/esm2020/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.mjs +73 -0
  10. package/esm2020/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module.mjs +27 -0
  11. package/esm2020/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.mjs +79 -0
  12. package/esm2020/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module.mjs +20 -0
  13. package/esm2020/lib/_pipes/cnpj.mjs +37 -0
  14. package/esm2020/lib/_pipes/cpf.mjs +37 -0
  15. package/esm2020/lib/_pipes/index.mjs +6 -0
  16. package/esm2020/lib/_pipes/monthname.mjs +25 -0
  17. package/esm2020/lib/_pipes/respective.mjs +68 -0
  18. package/esm2020/lib/_pipes/statusinfo.mjs +78 -0
  19. package/esm2020/lib/_pipes/tcloud-pipes.module.mjs +47 -0
  20. package/esm2020/lib/tcloud-ui.module.mjs +54 -7
  21. package/esm2020/public-api.mjs +21 -1
  22. package/fesm2015/dev-tcloud-tcloud-ui.mjs +1061 -11
  23. package/fesm2015/dev-tcloud-tcloud-ui.mjs.map +1 -1
  24. package/fesm2020/dev-tcloud-tcloud-ui.mjs +1054 -11
  25. package/fesm2020/dev-tcloud-tcloud-ui.mjs.map +1 -1
  26. package/lib/_directives/directives.module.d.ts +7 -0
  27. package/lib/_directives/tooltip/tooltip.directive.d.ts +34 -0
  28. package/lib/_modules/tcloud-ui-data-list/services/data-list.service.d.ts +20 -0
  29. package/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list-option/tcloud-ui-data-list-option.component.d.ts +22 -0
  30. package/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.component.d.ts +61 -0
  31. package/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.d.ts +4 -0
  32. package/lib/_modules/tcloud-ui-data-list/tcloud-ui-data-list.module.d.ts +10 -0
  33. package/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.component.d.ts +19 -0
  34. package/lib/_modules/tcloud-ui-multi-input/tcloud-ui-multi-input.module.d.ts +9 -0
  35. package/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.component.d.ts +18 -0
  36. package/lib/_modules/tcloud-ui-multi-select/tcloud-ui-multi-select.module.d.ts +8 -0
  37. package/lib/_pipes/cnpj.d.ts +9 -0
  38. package/lib/_pipes/cpf.d.ts +9 -0
  39. package/lib/_pipes/index.d.ts +5 -0
  40. package/lib/_pipes/monthname.d.ts +8 -0
  41. package/lib/_pipes/respective.d.ts +11 -0
  42. package/lib/_pipes/statusinfo.d.ts +15 -0
  43. package/lib/_pipes/tcloud-pipes.module.d.ts +11 -0
  44. package/lib/tcloud-ui.module.d.ts +6 -1
  45. package/package.json +1 -1
  46. package/public-api.d.ts +11 -0
package/README.md CHANGED
@@ -17,7 +17,12 @@ npm install @dev-tcloud/tlcoud-ui --save
17
17
  - TCloudUiTabMenuModule
18
18
  - TCloudUiLinhaLogoModule
19
19
  - TCloudUiLineStepCircleModule
20
+ - TCloudUiMultiSelectModule
21
+ - TCloudUiDataListModule
22
+ - TCloudUiMultiInputModule
20
23
 
24
+ ## tcloud-ui directives
25
+ - TCloudUiTooltipDirective
21
26
 
22
27
  ## Example of use
23
28
 
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TCloudUiTooltipDirective } from './tooltip/tooltip.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class TCloudUiDirectiveModule {
5
+ }
6
+ TCloudUiDirectiveModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ TCloudUiDirectiveModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule, declarations: [TCloudUiTooltipDirective], exports: [TCloudUiTooltipDirective] });
8
+ TCloudUiDirectiveModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule });
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDirectiveModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [TCloudUiTooltipDirective],
13
+ exports: [TCloudUiTooltipDirective],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU12RSxNQUFNLE9BQU8sdUJBQXVCOztxSEFBdkIsdUJBQXVCO3NIQUF2Qix1QkFBdUIsaUJBSG5CLHdCQUF3QixhQUM3Qix3QkFBd0I7c0hBRXZCLHVCQUF1Qjs0RkFBdkIsdUJBQXVCO2tCQUpuQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztpQkFDcEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUQ2xvdWRVaVRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtUQ2xvdWRVaVRvb2x0aXBEaXJlY3RpdmVdLFxyXG4gIGV4cG9ydHM6IFtUQ2xvdWRVaVRvb2x0aXBEaXJlY3RpdmVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEaXJlY3RpdmVNb2R1bGUge30iXX0=
@@ -0,0 +1,165 @@
1
+ import { Directive, Input, HostListener } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TCloudUiTooltipDirective {
4
+ constructor(el, renderer) {
5
+ this.el = el;
6
+ this.renderer = renderer;
7
+ this._direction = 'top';
8
+ // main
9
+ this.el_height = 0;
10
+ this.el_width = 0;
11
+ this.el_center = 0;
12
+ this.el_position = 0;
13
+ // tooltip
14
+ this.target_height = 0;
15
+ this.target_width = 0;
16
+ this.target_center = 0;
17
+ this.ID = '';
18
+ this.info_text = '';
19
+ }
20
+ onMouseOver() {
21
+ if (this.getElement()) {
22
+ this.renderer.addClass(this.el.nativeElement, 'main-tooltip');
23
+ const el = this.getElement();
24
+ el.style.display = 'inline';
25
+ setTimeout(() => {
26
+ this.el_height = this.el.nativeElement.offsetHeight;
27
+ this.el_width = this.el.nativeElement.offsetWidth;
28
+ this.el_center = this.el_width / 2;
29
+ const rect = this.el.nativeElement?.getBoundingClientRect();
30
+ this.el_position = rect?.left || 0;
31
+ // console.log('this.el_width', this.el_width);
32
+ // console.log('this.el_center', this.el_center);
33
+ // console.log('this.el_position', this.el_position);
34
+ this.target_height = el.offsetHeight;
35
+ this.target_width = el.offsetWidth;
36
+ this.target_center = this.target_width / 2;
37
+ // console.log('target_heigth', this.target_height);
38
+ // console.log('target_width', this.target_width);
39
+ // console.log('target_center', this.target_center);
40
+ // this.renderer.setStyle(el, 'bottom', `${this.el_position}px`);
41
+ switch (this._direction) {
42
+ case 'top':
43
+ this.to_top(el);
44
+ break;
45
+ case 'bottom':
46
+ this.to_bottom(el);
47
+ break;
48
+ case 'left':
49
+ this.to_left(el);
50
+ break;
51
+ case 'right':
52
+ this.to_right(el);
53
+ break;
54
+ }
55
+ });
56
+ }
57
+ }
58
+ onMouseOut() {
59
+ if (this.getElement()) {
60
+ const el = this.getElement();
61
+ el.style.display = 'none';
62
+ this.renderer.removeClass(this.el.nativeElement, 'main-tooltip');
63
+ }
64
+ }
65
+ set tooltip(tooltip) {
66
+ if (tooltip) {
67
+ this.check(tooltip);
68
+ }
69
+ }
70
+ ;
71
+ set direction(direction) {
72
+ if (direction) {
73
+ this._direction = direction;
74
+ }
75
+ }
76
+ ;
77
+ ngOnInit() {
78
+ }
79
+ generateID() {
80
+ return `tc-tooltip-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
81
+ }
82
+ getElement() {
83
+ return document.getElementById(this.ID) || undefined;
84
+ }
85
+ check(tooltip) {
86
+ this.ID = this.generateID();
87
+ this.info_text = tooltip;
88
+ let el = this.el.nativeElement;
89
+ this.main_el = el;
90
+ if (el) {
91
+ this.create_tooltip(tooltip, el);
92
+ }
93
+ else {
94
+ console.log("TCL: tooltip -> el", this.el.nativeElement);
95
+ }
96
+ }
97
+ setStyle(el) {
98
+ // this.renderer.setStyle(el, 'position', 'relative');
99
+ // this.renderer.setStyle(el, 'display', 'inline');
100
+ }
101
+ create_tooltip(tip, el) {
102
+ this.setStyle(el);
103
+ const tooltip = document.createElement("div");
104
+ tooltip.setAttribute('id', this.ID);
105
+ tooltip.setAttribute('style', `
106
+ position: absolute;
107
+ display: none;
108
+ padding: 10px;
109
+ border-radius: 10px;
110
+ text-align: center;
111
+ width: max-content;
112
+ max-width: 250px;
113
+ background-color: transparent;
114
+ color: transparent;
115
+ z-index: 1090;
116
+ bottom: ${this.el_position}px;
117
+ left: ${this.target_center}px;
118
+ `);
119
+ tooltip.innerHTML = tip;
120
+ el.insertBefore(tooltip, null);
121
+ }
122
+ to_top(el) {
123
+ const pos = this.el_center - (this.target_center);
124
+ this.renderer.setStyle(el, 'left', `${(pos)}px`);
125
+ this.renderer.setStyle(el, 'bottom', `${(this.el_height + 7)}px`);
126
+ el.setAttribute('class', 'tc-directive-tooltip tc-directive-tooltip-top');
127
+ }
128
+ to_bottom(el) {
129
+ const pos = this.el_center - (this.target_center);
130
+ this.renderer.setStyle(el, 'left', `${(pos)}px`);
131
+ this.renderer.setStyle(el, 'bottom', `-${(this.target_height + 7)}px`);
132
+ el.setAttribute('class', 'tc-directive-tooltip tc-directive-tooltip-bottom');
133
+ }
134
+ to_right(el) {
135
+ const pos = this.el_width;
136
+ this.renderer.setStyle(el, 'left', `${(pos + 11)}px`);
137
+ this.renderer.setStyle(el, 'bottom', `-${(((this.target_height) / 2) - (this.el_height / 2))}px`);
138
+ el.setAttribute('class', 'tc-directive-tooltip tc-directive-tooltip-right');
139
+ }
140
+ to_left(el) {
141
+ const pos = -((this.target_width));
142
+ this.renderer.setStyle(el, 'left', `${(pos - 11)}px`);
143
+ this.renderer.setStyle(el, 'bottom', `-${(((this.target_height) / 2) - (this.el_height / 2))}px`);
144
+ el.setAttribute('class', 'tc-directive-tooltip tc-directive-tooltip-left');
145
+ }
146
+ }
147
+ TCloudUiTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
148
+ TCloudUiTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiTooltipDirective, selector: "[tooltip]", inputs: { tooltip: "tooltip", direction: "direction" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseout": "onMouseOut()" } }, ngImport: i0 });
149
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiTooltipDirective, decorators: [{
150
+ type: Directive,
151
+ args: [{
152
+ selector: '[tooltip]'
153
+ }]
154
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { onMouseOver: [{
155
+ type: HostListener,
156
+ args: ['mouseover']
157
+ }], onMouseOut: [{
158
+ type: HostListener,
159
+ args: ['mouseout']
160
+ }], tooltip: [{
161
+ type: Input
162
+ }], direction: [{
163
+ type: Input
164
+ }] } });
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fZGlyZWN0aXZlcy90b29sdGlwL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWlDLEtBQUssRUFBRSxZQUFZLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBTTdGLE1BQU0sT0FBTyx3QkFBd0I7SUFpRm5DLFlBQ1UsRUFBYyxFQUNkLFFBQW1CO1FBRG5CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDZCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBakZyQixlQUFVLEdBQXdDLEtBQUssQ0FBQztRQUloRSxPQUFPO1FBQ1AsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUN0QixhQUFRLEdBQVcsQ0FBQyxDQUFDO1FBQ3JCLGNBQVMsR0FBVyxDQUFDLENBQUM7UUFDdEIsZ0JBQVcsR0FBVyxDQUFDLENBQUM7UUFHeEIsVUFBVTtRQUNWLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBQzFCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLGtCQUFhLEdBQVcsQ0FBQyxDQUFDO1FBRTFCLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFpRGhCLGNBQVMsR0FBVyxFQUFFLENBQUM7SUFpQmxCLENBQUM7SUFoRXFCLFdBQVc7UUFDcEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFFOUQsTUFBTSxFQUFFLEdBQVMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ25DLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQztZQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLElB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RSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBRSxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUMsQ0FBQyxDQUFDLENBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEcsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUMsZ0RBQWdELENBQUMsQ0FBQztJQUM1RSxDQUFDOztzSEExS1Usd0JBQXdCOzBHQUF4Qix3QkFBd0I7NEZBQXhCLHdCQUF3QjtrQkFIcEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsV0FBVztpQkFDdEI7eUhBcUI0QixXQUFXO3NCQUFyQyxZQUFZO3VCQUFDLFdBQVc7Z0JBdUNDLFVBQVU7c0JBQW5DLFlBQVk7dUJBQUMsVUFBVTtnQkFVWCxPQUFPO3NCQUFuQixLQUFLO2dCQU1PLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uSW5pdCwgUmVuZGVyZXIyLCBJbnB1dCwgSG9zdExpc3RlbmVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1t0b29sdGlwXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRDbG91ZFVpVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdHtcclxuXHJcbiAgcHJpdmF0ZSBfZGlyZWN0aW9uOiAndG9wJyB8ICdib3R0b20nIHwgJ2xlZnQnIHwgJ3JpZ2h0JyA9ICd0b3AnO1xyXG5cclxuICBtYWluX2VsOiBhbnk7XHJcblxyXG4gIC8vIG1haW5cclxuICBlbF9oZWlnaHQ6IG51bWJlciA9IDA7XHJcbiAgZWxfd2lkdGg6IG51bWJlciA9IDA7XHJcbiAgZWxfY2VudGVyOiBudW1iZXIgPSAwO1xyXG4gIGVsX3Bvc2l0aW9uOiBudW1iZXIgPSAwO1xyXG5cclxuICBcclxuICAvLyB0b29sdGlwXHJcbiAgdGFyZ2V0X2hlaWdodDogbnVtYmVyID0gMDsgXHJcbiAgdGFyZ2V0X3dpZHRoOiBudW1iZXIgPSAwOyBcclxuICB0YXJnZXRfY2VudGVyOiBudW1iZXIgPSAwO1xyXG5cclxuICBJRDogc3RyaW5nID0gJyc7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicpIG9uTW91c2VPdmVyKCkge1xyXG4gICAgaWYoIHRoaXMuZ2V0RWxlbWVudCgpICl7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnbWFpbi10b29sdGlwJyk7XHJcblxyXG4gICAgICBjb25zdCBlbCA9IDxhbnk+IHRoaXMuZ2V0RWxlbWVudCgpO1xyXG4gICAgICBlbC5zdHlsZS5kaXNwbGF5ID0gJ2lubGluZSc7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWxfaGVpZ2h0ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgICB0aGlzLmVsX3dpZHRoID0gIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICB0aGlzLmVsX2NlbnRlciA9IHRoaXMuZWxfd2lkdGggLyAyO1xyXG5cclxuICAgICAgICBjb25zdCByZWN0ICA9IHRoaXMuZWwubmF0aXZlRWxlbWVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgICAgdGhpcy5lbF9wb3NpdGlvbiA9IHJlY3Q/LmxlZnQgfHwgMDsgXHJcblxyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLmVsX3dpZHRoJywgdGhpcy5lbF93aWR0aCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3RoaXMuZWxfY2VudGVyJywgdGhpcy5lbF9jZW50ZXIpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0aGlzLmVsX3Bvc2l0aW9uJywgdGhpcy5lbF9wb3NpdGlvbik7XHJcblxyXG4gICAgICAgIHRoaXMudGFyZ2V0X2hlaWdodCA9IGVsLm9mZnNldEhlaWdodDtcclxuICAgICAgICB0aGlzLnRhcmdldF93aWR0aCA9IGVsLm9mZnNldFdpZHRoO1xyXG4gICAgICAgIHRoaXMudGFyZ2V0X2NlbnRlciA9IHRoaXMudGFyZ2V0X3dpZHRoIC8gMjtcclxuXHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3RhcmdldF9oZWlndGgnLCB0aGlzLnRhcmdldF9oZWlnaHQpO1xyXG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCd0YXJnZXRfd2lkdGgnLCB0aGlzLnRhcmdldF93aWR0aCk7XHJcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3RhcmdldF9jZW50ZXInLCB0aGlzLnRhcmdldF9jZW50ZXIpO1xyXG4gICAgICAgIC8vIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWwsICdib3R0b20nLCBgJHt0aGlzLmVsX3Bvc2l0aW9ufXB4YCk7XHJcbiAgICAgICAgXHJcbiAgICAgICAgc3dpdGNoICh0aGlzLl9kaXJlY3Rpb24pIHtcclxuICAgICAgICAgIGNhc2UgJ3RvcCc6IHRoaXMudG9fdG9wKGVsKTsgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlICdib3R0b20nOiB0aGlzLnRvX2JvdHRvbShlbCk7IGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAnbGVmdCc6IHRoaXMudG9fbGVmdChlbCk7IGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSAncmlnaHQnOiB0aGlzLnRvX3JpZ2h0KGVsKTsgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgXHJcbiAgICAgIFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdXQnKSBvbk1vdXNlT3V0KCkge1xyXG4gICAgaWYoIHRoaXMuZ2V0RWxlbWVudCgpICl7XHJcbiAgICAgIGNvbnN0IGVsID0gPGFueT4gdGhpcy5nZXRFbGVtZW50KCk7XHJcbiAgICAgIGVsLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnbWFpbi10b29sdGlwJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbmZvX3RleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBzZXQgdG9vbHRpcCAodG9vbHRpcDogYW55KXtcclxuICAgIGlmICh0b29sdGlwKXtcclxuICAgICAgdGhpcy5jaGVjayh0b29sdGlwKTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBzZXQgZGlyZWN0aW9uIChkaXJlY3Rpb246IGFueSl7XHJcbiAgICBpZiAoZGlyZWN0aW9uKXtcclxuICAgICAgdGhpcy5fZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xyXG4gICAgfVxyXG4gIH07XHJcbiAgXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgXHJcbiAgfVxyXG5cclxuICBnZW5lcmF0ZUlEKCk6IHN0cmluZ3tcclxuICAgIHJldHVybiBgdGMtdG9vbHRpcC0ke01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIERhdGUubm93KCkpKX1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZHtcclxuICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLklEKSB8fCB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBjaGVjayh0b29sdGlwOiBhbnkpe1xyXG4gICAgdGhpcy5JRCA9IHRoaXMuZ2VuZXJhdGVJRCgpO1xyXG5cclxuICAgIHRoaXMuaW5mb190ZXh0ID0gdG9vbHRpcDtcclxuXHJcbiAgICBsZXQgZWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICB0aGlzLm1haW5fZWwgPSBlbDtcclxuICAgIGlmIChlbCl7XHJcbiAgICAgIHRoaXMuY3JlYXRlX3Rvb2x0aXAodG9vbHRpcCwgZWwpOyAgICAgICAgXHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc29sZS5sb2coXCJUQ0w6IHRvb2x0aXAgLT4gZWxcIiwgdGhpcy5lbC5uYXRpdmVFbGVtZW50KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0U3R5bGUoZWw6IGFueSl7XHJcbiAgICAvLyB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAncG9zaXRpb24nLCAncmVsYXRpdmUnKTtcclxuICAgIC8vIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWwsICdkaXNwbGF5JywgJ2lubGluZScpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlX3Rvb2x0aXAodGlwOiBhbnksIGVsOiBhbnkpe1xyXG5cclxuICAgIHRoaXMuc2V0U3R5bGUoZWwpO1xyXG5cclxuICAgIGNvbnN0IHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG4gICAgdG9vbHRpcC5zZXRBdHRyaWJ1dGUoJ2lkJywgdGhpcy5JRCk7XHJcbiAgICB0b29sdGlwLnNldEF0dHJpYnV0ZSgnc3R5bGUnLGBcclxuICAgICAgcG9zaXRpb246IGFic29sdXRlOyAgXHJcbiAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIHBhZGRpbmc6IDEwcHg7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgICAgd2lkdGg6IG1heC1jb250ZW50O1xyXG4gICAgICBtYXgtd2lkdGg6IDI1MHB4O1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcclxuICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgICB6LWluZGV4OiAxMDkwO1xyXG4gICAgICBib3R0b206ICR7dGhpcy5lbF9wb3NpdGlvbn1weDtcclxuICAgICAgbGVmdDogJHt0aGlzLnRhcmdldF9jZW50ZXJ9cHg7XHJcbiAgICBgKTtcclxuICAgIHRvb2x0aXAuaW5uZXJIVE1MID0gdGlwOyBcclxuICAgIFxyXG4gICAgZWwuaW5zZXJ0QmVmb3JlKHRvb2x0aXAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgdG9fdG9wKGVsOiBhbnkpe1xyXG4gICAgY29uc3QgcG9zID0gdGhpcy5lbF9jZW50ZXIgLSAodGhpcy50YXJnZXRfY2VudGVyKSA7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnbGVmdCcsIGAkeyhwb3MpfXB4YCk7XHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnYm90dG9tJywgYCR7KHRoaXMuZWxfaGVpZ2h0ICsgNyl9cHhgKTtcclxuICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCd0Yy1kaXJlY3RpdmUtdG9vbHRpcCB0Yy1kaXJlY3RpdmUtdG9vbHRpcC10b3AnKTtcclxuICAgIFxyXG4gIH0gXHJcblxyXG4gIHRvX2JvdHRvbShlbDogYW55KXtcclxuICAgIGNvbnN0IHBvcyA9IHRoaXMuZWxfY2VudGVyIC0gKHRoaXMudGFyZ2V0X2NlbnRlcikgO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ2xlZnQnLCBgJHsocG9zKX1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ2JvdHRvbScsIGAtJHsodGhpcy50YXJnZXRfaGVpZ2h0ICsgNyl9cHhgKTtcclxuICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCd0Yy1kaXJlY3RpdmUtdG9vbHRpcCB0Yy1kaXJlY3RpdmUtdG9vbHRpcC1ib3R0b20nKTtcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgdG9fcmlnaHQoZWw6IGFueSl7XHJcbiAgICBjb25zdCBwb3MgPSB0aGlzLmVsX3dpZHRoO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ2xlZnQnLCBgJHsocG9zICsgMTEgKX1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ2JvdHRvbScsIGAtJHsoICgodGhpcy50YXJnZXRfaGVpZ2h0KS8yKSAtICh0aGlzLmVsX2hlaWdodC8yKSApfXB4YCk7XHJcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywndGMtZGlyZWN0aXZlLXRvb2x0aXAgdGMtZGlyZWN0aXZlLXRvb2x0aXAtcmlnaHQnKTsgICAgXHJcbiAgfSBcclxuXHJcbiAgdG9fbGVmdChlbDogYW55KXtcclxuICAgIGNvbnN0IHBvcyA9IC0oICh0aGlzLnRhcmdldF93aWR0aCkgKTtcclxuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWwsICdsZWZ0JywgYCR7KHBvcyAtIDExKX1weGApO1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ2JvdHRvbScsIGAtJHsoICgodGhpcy50YXJnZXRfaGVpZ2h0KS8yKSAtICh0aGlzLmVsX2hlaWdodC8yKSApfXB4YCk7XHJcbiAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywndGMtZGlyZWN0aXZlLXRvb2x0aXAgdGMtZGlyZWN0aXZlLXRvb2x0aXAtbGVmdCcpOyAgICBcclxuICB9XHJcblxyXG59Il19
@@ -0,0 +1,39 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class DataListService {
5
+ constructor() {
6
+ this._stateSourceValue = new Subject();
7
+ this.stateValue$ = this._stateSourceValue.asObservable();
8
+ this._stateSourceDescription = new Subject();
9
+ this.stateDescription$ = this._stateSourceDescription.asObservable();
10
+ this._stateSourceOptions = new Subject();
11
+ this.stateOptions$ = this._stateSourceOptions.asObservable();
12
+ this._stateSourceActive = new Subject();
13
+ this.stateActive$ = this._stateSourceActive.asObservable();
14
+ }
15
+ setItemValue(v) {
16
+ this.actived_value = v;
17
+ this._stateSourceValue.next(v);
18
+ }
19
+ setItemDescription(v) {
20
+ this._stateSourceDescription.next(v);
21
+ }
22
+ registerSelectionOptionsDescription(v) {
23
+ this._stateSourceOptions.next(v);
24
+ }
25
+ setActiveItem(v) {
26
+ // console.log('setActiveItem', v);
27
+ this._stateSourceActive.next(v);
28
+ }
29
+ getActiveItem() {
30
+ // console.log('getActiveItem', this.actived_value);
31
+ return this.actived_value;
32
+ }
33
+ }
34
+ DataListService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataListService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
35
+ DataListService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataListService });
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DataListService, decorators: [{
37
+ type: Injectable
38
+ }] });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3NlcnZpY2VzL2RhdGEtbGlzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHM0MsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFFVSxzQkFBaUIsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUN0RCxnQkFBVyxHQUE2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFN0UsNEJBQXVCLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7UUFDNUQsc0JBQWlCLEdBQTZCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6Rix3QkFBbUIsR0FBaUIsSUFBSSxPQUFPLEVBQU8sQ0FBQztRQUN4RCxrQkFBYSxHQUE2QixJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFakYsdUJBQWtCLEdBQWlCLElBQUksT0FBTyxFQUFPLENBQUM7UUFDdkQsaUJBQVksR0FBNkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0tBMkJ4RjtJQXZCUSxZQUFZLENBQUMsQ0FBTTtRQUN4QixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxDQUFNO1FBQzlCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLG1DQUFtQyxDQUFDLENBQU07UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sYUFBYSxDQUFDLENBQU07UUFDekIsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsb0RBQW9EO1FBQ3BELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDOzs2R0FwQ1UsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIERhdGFMaXN0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSBfc3RhdGVTb3VyY2VWYWx1ZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHB1YmxpYyBzdGF0ZVZhbHVlJDogT2JzZXJ2YWJsZTxTdWJqZWN0PGFueT4+ID0gdGhpcy5fc3RhdGVTb3VyY2VWYWx1ZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RhdGVTb3VyY2VEZXNjcmlwdGlvbjogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHB1YmxpYyBzdGF0ZURlc2NyaXB0aW9uJDogT2JzZXJ2YWJsZTxTdWJqZWN0PGFueT4+ID0gdGhpcy5fc3RhdGVTb3VyY2VEZXNjcmlwdGlvbi5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RhdGVTb3VyY2VPcHRpb25zOiBTdWJqZWN0PGFueT4gPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcbiAgcHVibGljIHN0YXRlT3B0aW9ucyQ6IE9ic2VydmFibGU8U3ViamVjdDxhbnk+PiA9IHRoaXMuX3N0YXRlU291cmNlT3B0aW9ucy5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3RhdGVTb3VyY2VBY3RpdmU6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwdWJsaWMgc3RhdGVBY3RpdmUkOiBPYnNlcnZhYmxlPFN1YmplY3Q8YW55Pj4gPSB0aGlzLl9zdGF0ZVNvdXJjZUFjdGl2ZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmVkX3ZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBzZXRJdGVtVmFsdWUodjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmFjdGl2ZWRfdmFsdWUgPSB2O1xyXG4gICAgdGhpcy5fc3RhdGVTb3VyY2VWYWx1ZS5uZXh0KHYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEl0ZW1EZXNjcmlwdGlvbih2OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0YXRlU291cmNlRGVzY3JpcHRpb24ubmV4dCh2KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3RlclNlbGVjdGlvbk9wdGlvbnNEZXNjcmlwdGlvbih2OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N0YXRlU291cmNlT3B0aW9ucy5uZXh0KHYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEFjdGl2ZUl0ZW0odjogYW55KTogdm9pZCB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnc2V0QWN0aXZlSXRlbScsIHYpO1xyXG4gICAgdGhpcy5fc3RhdGVTb3VyY2VBY3RpdmUubmV4dCh2KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRBY3RpdmVJdGVtKCk6IGFueSB7XHJcbiAgICAvLyBjb25zb2xlLmxvZygnZ2V0QWN0aXZlSXRlbScsIHRoaXMuYWN0aXZlZF92YWx1ZSk7XHJcbiAgICByZXR1cm4gdGhpcy5hY3RpdmVkX3ZhbHVlO1xyXG4gIH1cclxuIFxyXG59Il19
@@ -0,0 +1,56 @@
1
+ import { ISelectOptions } from './../tcloud-ui-data-list';
2
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../services/data-list.service";
5
+ export class TCloudUiDataListOptionComponent {
6
+ constructor(dataListService) {
7
+ this.dataListService = dataListService;
8
+ this.id = '';
9
+ this.select_options = new ISelectOptions();
10
+ this.selected = new EventEmitter();
11
+ this.subscription_active = dataListService.stateValue$.subscribe(v => { this.actived_value = v; });
12
+ }
13
+ ngOnInit() {
14
+ this.id = this.generateID();
15
+ this.setSelectOptions();
16
+ }
17
+ generateID() {
18
+ return `data-list-option-${Math.floor(Math.random() * Math.floor(Math.random() * Date.now()))}`;
19
+ }
20
+ setSelectedItem(value) {
21
+ if (value === '') {
22
+ this.value = '';
23
+ }
24
+ this.dataListService.setItemValue(this.value);
25
+ const description = document.getElementById(this.id)?.innerText || '';
26
+ this.dataListService.setItemDescription(description);
27
+ this.setSelectOptions();
28
+ }
29
+ setSelectOptions() {
30
+ setTimeout(() => {
31
+ try {
32
+ const description = document.getElementById(this.id)?.innerText;
33
+ this.select_options.value = this.value;
34
+ this.select_options.description = description;
35
+ this.dataListService.registerSelectionOptionsDescription(this.select_options);
36
+ }
37
+ catch (error) { }
38
+ });
39
+ }
40
+ ngOnDestroy() {
41
+ if (this.subscription_active) {
42
+ this.subscription_active.unsubscribe();
43
+ }
44
+ }
45
+ }
46
+ TCloudUiDataListOptionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDataListOptionComponent, deps: [{ token: i1.DataListService }], target: i0.ɵɵFactoryTarget.Component });
47
+ TCloudUiDataListOptionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiDataListOptionComponent, selector: "tcloud-ui-data-list-option", inputs: { value: "value" }, outputs: { selected: "selected" }, ngImport: i0, template: "<button \r\n [title]=\"select_options.description\"\r\n id=\"{{id}}\"\r\n [attr.data-description]=\"select_options.description\"\r\n class=\"dropdown-item\" \r\n [class.null-value]=\"value === undefined || value === null || value === ''\"\r\n [class.active]=\"value === actived_value\" \r\n type=\"button\" \r\n [value]=\"value\"\r\n (click)=\"setSelectedItem(value)\" >\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: ["button{color:#666;width:100%;padding:10px;font-size:14px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}button:hover{background-color:#e5f5f9;color:#333}button.active{background-color:#ceedf5;color:#333}.null-value{height:35px}\n"] });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiDataListOptionComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: 'tcloud-ui-data-list-option', template: "<button \r\n [title]=\"select_options.description\"\r\n id=\"{{id}}\"\r\n [attr.data-description]=\"select_options.description\"\r\n class=\"dropdown-item\" \r\n [class.null-value]=\"value === undefined || value === null || value === ''\"\r\n [class.active]=\"value === actived_value\" \r\n type=\"button\" \r\n [value]=\"value\"\r\n (click)=\"setSelectedItem(value)\" >\r\n <ng-content></ng-content>\r\n</button>\r\n", styles: ["button{color:#666;width:100%;padding:10px;font-size:14px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}button:hover{background-color:#e5f5f9;color:#333}button.active{background-color:#ceedf5;color:#333}.null-value{height:35px}\n"] }]
51
+ }], ctorParameters: function () { return [{ type: i1.DataListService }]; }, propDecorators: { value: [{
52
+ type: Input
53
+ }], selected: [{
54
+ type: Output
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGNsb3VkLXVpLWRhdGEtbGlzdC1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGNsb3VkLXVpL3NyYy9saWIvX21vZHVsZXMvdGNsb3VkLXVpLWRhdGEtbGlzdC90Y2xvdWQtdWktZGF0YS1saXN0LW9wdGlvbi90Y2xvdWQtdWktZGF0YS1saXN0LW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90Y2xvdWQtdWkvc3JjL2xpYi9fbW9kdWxlcy90Y2xvdWQtdWktZGF0YS1saXN0L3RjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uL3RjbG91ZC11aS1kYXRhLWxpc3Qtb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFTL0UsTUFBTSxPQUFPLCtCQUErQjtJQVcxQyxZQUFxQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFUckQsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUVoQixtQkFBYyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFLNUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHM0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxvQkFBb0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2xHLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBVTtRQUV4QixJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUFFO1FBRXRDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM5QyxNQUFNLFdBQVcsR0FBUyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxTQUFTLElBQUksRUFBRSxDQUFDO1FBQzVFLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJO2dCQUNGLE1BQU0sV0FBVyxHQUFTLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsZUFBZSxDQUFDLG1DQUFtQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUMvRTtZQUFDLE9BQU8sS0FBSyxFQUFFLEdBQUc7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO1lBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQUU7SUFDM0UsQ0FBQzs7NkhBL0NVLCtCQUErQjtpSEFBL0IsK0JBQStCLGlJQ1g1Qyw2YUFZQTs0RkREYSwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsNEJBQTRCO3NHQVc3QixLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJU2VsZWN0T3B0aW9ucyB9IGZyb20gJy4vLi4vdGNsb3VkLXVpLWRhdGEtbGlzdCc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0YUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZGF0YS1saXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGNsb3VkLXVpLWRhdGEtbGlzdC1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90Y2xvdWQtdWktZGF0YS1saXN0LW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGNsb3VkLXVpLWRhdGEtbGlzdC1vcHRpb24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVENsb3VkVWlEYXRhTGlzdE9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgaWQ6IHN0cmluZyA9ICcnOyAgXHJcbiAgYWN0aXZlZF92YWx1ZTogYW55O1xyXG4gIHNlbGVjdF9vcHRpb25zID0gbmV3IElTZWxlY3RPcHRpb25zKCk7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25fYWN0aXZlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnkgfCB1bmRlZmluZWQ7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyAgXHJcblxyXG4gIGNvbnN0cnVjdG9yKCBwcml2YXRlIGRhdGFMaXN0U2VydmljZTogRGF0YUxpc3RTZXJ2aWNlICkgeyBcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uX2FjdGl2ZSA9IGRhdGFMaXN0U2VydmljZS5zdGF0ZVZhbHVlJC5zdWJzY3JpYmUodiA9PiB7IHRoaXMuYWN0aXZlZF92YWx1ZSA9IHY7IH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlkID0gdGhpcy5nZW5lcmF0ZUlEKCk7XHJcbiAgICB0aGlzLnNldFNlbGVjdE9wdGlvbnMoKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlSUQoKTogc3RyaW5ne1xyXG4gICAgcmV0dXJuIGBkYXRhLWxpc3Qtb3B0aW9uLSR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogRGF0ZS5ub3coKSkpfWA7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZEl0ZW0odmFsdWU6IGFueSl7XHJcblxyXG4gICAgaWYoIHZhbHVlID09PSAnJyApeyB0aGlzLnZhbHVlID0gJyc7IH1cclxuXHJcbiAgICB0aGlzLmRhdGFMaXN0U2VydmljZS5zZXRJdGVtVmFsdWUodGhpcy52YWx1ZSk7XHJcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IDxhbnk+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5pbm5lclRleHQgfHwgJyc7XHJcbiAgICB0aGlzLmRhdGFMaXN0U2VydmljZS5zZXRJdGVtRGVzY3JpcHRpb24oZGVzY3JpcHRpb24pO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RPcHRpb25zKCk7ICAgIFxyXG4gIH1cclxuXHJcbiAgc2V0U2VsZWN0T3B0aW9ucygpe1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSA8YW55PiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmlkKT8uaW5uZXJUZXh0O1xyXG4gICAgICAgIHRoaXMuc2VsZWN0X29wdGlvbnMudmFsdWUgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0X29wdGlvbnMuZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbjsgIFxyXG4gICAgICAgIHRoaXMuZGF0YUxpc3RTZXJ2aWNlLnJlZ2lzdGVyU2VsZWN0aW9uT3B0aW9uc0Rlc2NyaXB0aW9uKHRoaXMuc2VsZWN0X29wdGlvbnMpO1xyXG4gICAgICB9IGNhdGNoIChlcnJvcikgeyB9XHJcbiAgICB9KTsgICAgXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIGlmKCB0aGlzLnN1YnNjcmlwdGlvbl9hY3RpdmUgKXsgdGhpcy5zdWJzY3JpcHRpb25fYWN0aXZlLnVuc3Vic2NyaWJlKCk7IH0gICAgXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8YnV0dG9uIFxyXG4gIFt0aXRsZV09XCJzZWxlY3Rfb3B0aW9ucy5kZXNjcmlwdGlvblwiXHJcbiAgaWQ9XCJ7e2lkfX1cIlxyXG4gIFthdHRyLmRhdGEtZGVzY3JpcHRpb25dPVwic2VsZWN0X29wdGlvbnMuZGVzY3JpcHRpb25cIlxyXG4gIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiIFxyXG4gIFtjbGFzcy5udWxsLXZhbHVlXT1cInZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnXCJcclxuICBbY2xhc3MuYWN0aXZlXT1cInZhbHVlID09PSBhY3RpdmVkX3ZhbHVlXCIgXHJcbiAgdHlwZT1cImJ1dHRvblwiIFxyXG4gIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgKGNsaWNrKT1cInNldFNlbGVjdGVkSXRlbSh2YWx1ZSlcIiA+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2J1dHRvbj5cclxuIl19