raise-common-lib-new 0.0.3

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 (64) hide show
  1. package/README.md +24 -0
  2. package/esm2022/lib/common-grid/index.component.mjs +439 -0
  3. package/esm2022/lib/constant/index.mjs +11 -0
  4. package/esm2022/lib/float-box/index.component.mjs +217 -0
  5. package/esm2022/lib/form/checkbox-group/index.component.mjs +57 -0
  6. package/esm2022/lib/form/radio-group/index.component.mjs +42 -0
  7. package/esm2022/lib/form/switch-input/index.component.mjs +42 -0
  8. package/esm2022/lib/form/tag-input/index.component.mjs +62 -0
  9. package/esm2022/lib/layout/common-list/index.component.mjs +43 -0
  10. package/esm2022/lib/layout/main-container/index.component.mjs +18 -0
  11. package/esm2022/lib/layout/rs-aside/index.component.mjs +31 -0
  12. package/esm2022/lib/layout/rs-footer/index.component.mjs +16 -0
  13. package/esm2022/lib/layout/rs-header/index.component.mjs +47 -0
  14. package/esm2022/lib/raise-common-lib.module.mjs +385 -0
  15. package/esm2022/lib/service/common-function.service.mjs +17 -0
  16. package/esm2022/lib/service/icon-loader.service.mjs +20 -0
  17. package/esm2022/public-api.mjs +18 -0
  18. package/esm2022/raise-common-lib-new.mjs +5 -0
  19. package/fesm2022/raise-common-lib-new.mjs +1391 -0
  20. package/fesm2022/raise-common-lib-new.mjs.map +1 -0
  21. package/index.d.ts +5 -0
  22. package/lib/common-grid/index.component.d.ts +119 -0
  23. package/lib/constant/index.d.ts +54 -0
  24. package/lib/float-box/index.component.d.ts +33 -0
  25. package/lib/form/checkbox-group/index.component.d.ts +22 -0
  26. package/lib/form/radio-group/index.component.d.ts +19 -0
  27. package/lib/form/switch-input/index.component.d.ts +15 -0
  28. package/lib/form/tag-input/index.component.d.ts +19 -0
  29. package/lib/layout/common-list/index.component.d.ts +15 -0
  30. package/lib/layout/main-container/index.component.d.ts +8 -0
  31. package/lib/layout/rs-aside/index.component.d.ts +14 -0
  32. package/lib/layout/rs-footer/index.component.d.ts +8 -0
  33. package/lib/layout/rs-header/index.component.d.ts +21 -0
  34. package/lib/raise-common-lib.module.d.ts +35 -0
  35. package/lib/service/common-function.service.d.ts +7 -0
  36. package/lib/service/icon-loader.service.d.ts +9 -0
  37. package/package.json +25 -0
  38. package/public-api.d.ts +14 -0
  39. package/src/assets/img/arrow_right.svg +4 -0
  40. package/src/assets/img/calendar.svg +6 -0
  41. package/src/assets/img/calendar_arrow_left.svg +3 -0
  42. package/src/assets/img/calendar_arrow_right.svg +3 -0
  43. package/src/assets/img/checked-vector.svg +3 -0
  44. package/src/assets/img/delete.svg +14 -0
  45. package/src/assets/img/dropdown-arrow-disabled.svg +3 -0
  46. package/src/assets/img/dropdown-arrow.svg +3 -0
  47. package/src/assets/img/export.svg +5 -0
  48. package/src/assets/img/notification-close.svg +4 -0
  49. package/src/assets/img/notification-collapse.svg +14 -0
  50. package/src/assets/img/notification-status-error.svg +5 -0
  51. package/src/assets/img/notification-status-loading.svg +9 -0
  52. package/src/assets/img/notification-status-success.svg +4 -0
  53. package/src/assets/img/notification-status-warning.svg +5 -0
  54. package/src/assets/img/plus.svg +4 -0
  55. package/src/assets/img/raise_logo_main.svg +13 -0
  56. package/src/assets/img/search.svg +4 -0
  57. package/src/assets/img/tag-remove.svg +4 -0
  58. package/src/assets/img/toggle-menu-icon.svg +3 -0
  59. package/src/assets/style/reset/button.scss +119 -0
  60. package/src/assets/style/reset/dropdown.scss +514 -0
  61. package/src/assets/style/reset/input.scss +32 -0
  62. package/src/assets/style/style.scss +29 -0
  63. package/src/assets/style/syncfusion.min.css +1 -0
  64. package/src/assets/style/variables.scss +58 -0
@@ -0,0 +1,217 @@
1
+ import { Component, EventEmitter, Input, Output, ViewChild, } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class FloatBoxComponent {
4
+ ref;
5
+ _placement;
6
+ _position;
7
+ _trigger = "hover";
8
+ _animation = "no";
9
+ _fixed = "no";
10
+ get placement() {
11
+ if (["top", "left", "right", "bottom"].includes(this._placement)) {
12
+ return this._placement;
13
+ }
14
+ return "bottom";
15
+ }
16
+ get position() {
17
+ if (["start", "center", "end"].includes(this._position)) {
18
+ return this._position;
19
+ }
20
+ return "center";
21
+ }
22
+ get trigger() {
23
+ if (this._trigger === "click") {
24
+ return "click";
25
+ }
26
+ return "hover";
27
+ }
28
+ get animation() {
29
+ if (this._animation === "yes") {
30
+ return "yes";
31
+ }
32
+ return "no";
33
+ }
34
+ get fixed() {
35
+ if (this._fixed === "yes") {
36
+ return "yes";
37
+ }
38
+ return "no";
39
+ }
40
+ openChange = new EventEmitter();
41
+ rootElement;
42
+ contentElement;
43
+ constructor(ref) {
44
+ this.ref = ref;
45
+ }
46
+ ngAfterViewInit() {
47
+ this.fixedContainerEl = this.getFixedContainer();
48
+ if (this.fixed === "yes") {
49
+ this.fixedContainerEl.append(this.contentElement.nativeElement);
50
+ }
51
+ }
52
+ ngOnDestroy() {
53
+ this.contentElement.nativeElement.remove();
54
+ }
55
+ FIXED_CONTAINER_ID = "kt-float-box-fixed-container";
56
+ fixedContainerEl;
57
+ getFixedContainer() {
58
+ let containerElement = document.getElementById(this.FIXED_CONTAINER_ID);
59
+ if (!containerElement) {
60
+ containerElement = document.createElement("div");
61
+ containerElement.setAttribute("id", this.FIXED_CONTAINER_ID);
62
+ document.body.append(containerElement);
63
+ }
64
+ return containerElement;
65
+ }
66
+ setFixedContentPosition() {
67
+ if (this.fixed === "no") {
68
+ return;
69
+ }
70
+ const { top: y, left: x, width, height, } = this.rootElement.nativeElement.getBoundingClientRect();
71
+ let top = "0";
72
+ let left = "0";
73
+ let translateX = "0";
74
+ let translateY = "0";
75
+ switch (this.placement + "_" + this.position) {
76
+ case "top_start":
77
+ top = y + "px";
78
+ left = x - 8 + "px";
79
+ translateY = "-100%";
80
+ break;
81
+ case "top_center":
82
+ top = y + "px";
83
+ left = x + width / 2 + "px";
84
+ translateX = "-50%";
85
+ translateY = "-100%";
86
+ break;
87
+ case "top_end":
88
+ top = y + "px";
89
+ left = x + width + 8 + "px";
90
+ translateX = "-100%";
91
+ translateY = "-100%";
92
+ break;
93
+ case "left_start":
94
+ top = y - 8 + "px";
95
+ left = x + "px";
96
+ translateX = "-100%";
97
+ break;
98
+ case "left_center":
99
+ top = y + height / 2 + "px";
100
+ left = x + "px";
101
+ translateX = "-100%";
102
+ translateY = "-50%";
103
+ break;
104
+ case "left_end":
105
+ top = y + height + 8 + "px";
106
+ left = x + "px";
107
+ translateX = "-100%";
108
+ translateY = "-100%";
109
+ break;
110
+ case "right_start":
111
+ top = y - 8 + "px";
112
+ left = x + width + "px";
113
+ break;
114
+ case "right_center":
115
+ top = y + height / 2 + "px";
116
+ left = x + width + "px";
117
+ translateY = "-50%";
118
+ break;
119
+ case "right_end":
120
+ top = y + height + 8 + "px";
121
+ left = x + width + "px";
122
+ translateY = "-100%";
123
+ break;
124
+ case "bottom_start":
125
+ top = y + height + "px";
126
+ left = x - 8 + "px";
127
+ break;
128
+ case "bottom_center":
129
+ top = y + height + "px";
130
+ left = x + width / 2 + "px";
131
+ translateX = "-50%";
132
+ break;
133
+ case "bottom_end":
134
+ top = y + height + "px";
135
+ left = x + width + 8 + "px";
136
+ translateX = "-100%";
137
+ break;
138
+ }
139
+ this.contentElement.nativeElement.style.top = top;
140
+ this.contentElement.nativeElement.style.left = left;
141
+ this.contentElement.nativeElement.style.transform = `translate(${translateX}, ${translateY})`;
142
+ }
143
+ opened = "no";
144
+ onClickContainer() {
145
+ if (this.trigger !== "click") {
146
+ return;
147
+ }
148
+ this.opened = "yes";
149
+ this.openChange.emit(true);
150
+ this.setFixedContentPosition();
151
+ window.addEventListener("click", this.onClickOutside);
152
+ }
153
+ onClickOutside = (event) => {
154
+ if (!this.rootElement.nativeElement.contains(event.target) &&
155
+ !this.fixedContainerEl.contains(event.target)) {
156
+ this.opened = "no";
157
+ this.openChange.emit(false);
158
+ window.removeEventListener("click", this.onClickOutside);
159
+ this.ref.markForCheck();
160
+ }
161
+ };
162
+ onMouseEnter() {
163
+ if (this.fixed === "no" || this.trigger !== "hover") {
164
+ return;
165
+ }
166
+ this.opened = "yes";
167
+ this.openChange.emit(true);
168
+ this.setFixedContentPosition();
169
+ window.addEventListener("mousemove", this.onMoveOutside);
170
+ }
171
+ onMoveOutside = (event) => {
172
+ if (!this.rootElement.nativeElement.contains(event.target) &&
173
+ !this.contentElement.nativeElement.contains(event.target)) {
174
+ this.opened = "no";
175
+ this.openChange.emit(false);
176
+ window.removeEventListener("click", this.onMoveOutside);
177
+ this.ref.markForCheck();
178
+ }
179
+ };
180
+ close() {
181
+ setTimeout(() => {
182
+ this.opened = "no";
183
+ this.openChange.emit(false);
184
+ }, 0);
185
+ }
186
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatBoxComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
187
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FloatBoxComponent, selector: "rs-float-box", inputs: { _placement: ["placement", "_placement"], _position: ["position", "_position"], _trigger: ["trigger", "_trigger"], _animation: ["animation", "_animation"], _fixed: ["fixed", "_fixed"] }, outputs: { openChange: "openChange" }, viewQueries: [{ propertyName: "rootElement", first: true, predicate: ["element"], descendants: true }, { propertyName: "contentElement", first: true, predicate: ["content"], descendants: true }], ngImport: i0, template: "<div\r\n #element\r\n class=\"float-box-container\"\r\n [attr.data-trigger]=\"trigger\"\r\n (click)=\"onClickContainer()\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n>\r\n <ng-content></ng-content>\r\n <div\r\n #content\r\n class=\"float-box-content\"\r\n [attr.data-placement]=\"placement\"\r\n [attr.data-position]=\"position\"\r\n [attr.data-animation]=\"animation\"\r\n [attr.data-fixed]=\"fixed\"\r\n [attr.data-opened]=\"opened\"\r\n >\r\n <div class=\"float-box-show-content\">\r\n <ng-content select=\"[float-content]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".float-box-container{position:relative}.float-box-container[data-trigger=hover]:not(:hover)>.float-box-content,.float-box-container[data-trigger=click]>.float-box-content[data-opened=no]{display:none}.float-box-container>.float-box-content[data-fixed=no]{padding:8px;--top: 0;--left: 0;--translate-x: 0;--translate-y: 0;position:absolute;top:var(--top);left:var(--left);transform:translate(var(--translate-x),var(--translate-y));z-index:10}.float-box-container>.float-box-content[data-fixed=no][data-animation=yes]{animation:ease-in-out .25s}.float-box-container>.float-box-content[data-fixed=no][data-placement=top]{--translate-y: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-animation=true]{animation-name:open-from-top}.float-box-container>.float-box-content[data-fixed=no][data-placement=left]{--translate-x: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=right]{--left: 100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom]{--top: 100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-animation=yes]{animation-name:open-from-bottom}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-position=start],.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-position=start]{--left: -8px}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-position=center],.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-position=center]{--left: 50%;--translate-x: -50%}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-position=end],.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-position=end]{--left: calc(100% + 8px) ;--translate-x: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=start],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=start]{--top: -8px}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=start][data-animation=yes],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=start][data-animation=yes]{animation-name:open-from-bottom}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=center],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=center]{--top: 50%;--translate-y: -50%}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=center][data-animation=yes],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=center][data-animation=yes]{animation-name:open-from-bottom}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=end],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=end]{--top: calc(100% + 8px) ;--translate-y: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=end][data-animation=yes],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=end][data-animation=yes]{animation-name:open-from-top}@keyframes open-from-top{0%{margin-top:-8px;opacity:.4}to{margin:0;opacity:1}}@keyframes open-from-bottom{0%{margin-top:8px;opacity:.4}to{margin:0;opacity:1}}::ng-deep #kt-float-box-fixed-container{width:0;height:0;z-index:100000}::ng-deep #kt-float-box-fixed-container .float-box-content[data-fixed=yes]{padding:8px;position:fixed;z-index:10}::ng-deep #kt-float-box-fixed-container .float-box-content[data-fixed=yes][data-opened=no]{display:none}.float-box-show-content{padding:8px 8px 12px;border-radius:8px;background:#fff;box-shadow:0 0 8px #00000040}\n"] });
188
+ }
189
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FloatBoxComponent, decorators: [{
190
+ type: Component,
191
+ args: [{ selector: "rs-float-box", template: "<div\r\n #element\r\n class=\"float-box-container\"\r\n [attr.data-trigger]=\"trigger\"\r\n (click)=\"onClickContainer()\"\r\n (mouseenter)=\"onMouseEnter()\"\r\n>\r\n <ng-content></ng-content>\r\n <div\r\n #content\r\n class=\"float-box-content\"\r\n [attr.data-placement]=\"placement\"\r\n [attr.data-position]=\"position\"\r\n [attr.data-animation]=\"animation\"\r\n [attr.data-fixed]=\"fixed\"\r\n [attr.data-opened]=\"opened\"\r\n >\r\n <div class=\"float-box-show-content\">\r\n <ng-content select=\"[float-content]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".float-box-container{position:relative}.float-box-container[data-trigger=hover]:not(:hover)>.float-box-content,.float-box-container[data-trigger=click]>.float-box-content[data-opened=no]{display:none}.float-box-container>.float-box-content[data-fixed=no]{padding:8px;--top: 0;--left: 0;--translate-x: 0;--translate-y: 0;position:absolute;top:var(--top);left:var(--left);transform:translate(var(--translate-x),var(--translate-y));z-index:10}.float-box-container>.float-box-content[data-fixed=no][data-animation=yes]{animation:ease-in-out .25s}.float-box-container>.float-box-content[data-fixed=no][data-placement=top]{--translate-y: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-animation=true]{animation-name:open-from-top}.float-box-container>.float-box-content[data-fixed=no][data-placement=left]{--translate-x: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=right]{--left: 100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom]{--top: 100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-animation=yes]{animation-name:open-from-bottom}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-position=start],.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-position=start]{--left: -8px}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-position=center],.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-position=center]{--left: 50%;--translate-x: -50%}.float-box-container>.float-box-content[data-fixed=no][data-placement=top][data-position=end],.float-box-container>.float-box-content[data-fixed=no][data-placement=bottom][data-position=end]{--left: calc(100% + 8px) ;--translate-x: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=start],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=start]{--top: -8px}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=start][data-animation=yes],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=start][data-animation=yes]{animation-name:open-from-bottom}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=center],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=center]{--top: 50%;--translate-y: -50%}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=center][data-animation=yes],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=center][data-animation=yes]{animation-name:open-from-bottom}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=end],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=end]{--top: calc(100% + 8px) ;--translate-y: -100%}.float-box-container>.float-box-content[data-fixed=no][data-placement=left][data-position=end][data-animation=yes],.float-box-container>.float-box-content[data-fixed=no][data-placement=right][data-position=end][data-animation=yes]{animation-name:open-from-top}@keyframes open-from-top{0%{margin-top:-8px;opacity:.4}to{margin:0;opacity:1}}@keyframes open-from-bottom{0%{margin-top:8px;opacity:.4}to{margin:0;opacity:1}}::ng-deep #kt-float-box-fixed-container{width:0;height:0;z-index:100000}::ng-deep #kt-float-box-fixed-container .float-box-content[data-fixed=yes]{padding:8px;position:fixed;z-index:10}::ng-deep #kt-float-box-fixed-container .float-box-content[data-fixed=yes][data-opened=no]{display:none}.float-box-show-content{padding:8px 8px 12px;border-radius:8px;background:#fff;box-shadow:0 0 8px #00000040}\n"] }]
192
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _placement: [{
193
+ type: Input,
194
+ args: ["placement"]
195
+ }], _position: [{
196
+ type: Input,
197
+ args: ["position"]
198
+ }], _trigger: [{
199
+ type: Input,
200
+ args: ["trigger"]
201
+ }], _animation: [{
202
+ type: Input,
203
+ args: ["animation"]
204
+ }], _fixed: [{
205
+ type: Input,
206
+ args: ["fixed"]
207
+ }], openChange: [{
208
+ type: Output,
209
+ args: ["openChange"]
210
+ }], rootElement: [{
211
+ type: ViewChild,
212
+ args: ["element", { static: false }]
213
+ }], contentElement: [{
214
+ type: ViewChild,
215
+ args: ["content", { static: false }]
216
+ }] } });
217
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zsb2F0LWJveC9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvZmxvYXQtYm94L2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxHQUNULE1BQU0sZUFBZSxDQUFDOztBQU92QixNQUFNLE9BQU8saUJBQWlCO0lBaURUO0lBaERBLFVBQVUsQ0FBc0M7SUFDakQsU0FBUyxDQUE2QjtJQUN2QyxRQUFRLEdBQXNCLE9BQU8sQ0FBQztJQUNwQyxVQUFVLEdBQWlCLElBQUksQ0FBQztJQUNwQyxNQUFNLEdBQWlCLElBQUksQ0FBQztJQUU1QyxJQUFJLFNBQVM7UUFDWixJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNqRSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDdkI7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1gsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN4RCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDdEI7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1YsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLE9BQU8sRUFBRTtZQUM5QixPQUFPLE9BQU8sQ0FB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QUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG5cdEFmdGVyVmlld0luaXQsXHJcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXHJcblx0Q29tcG9uZW50LFxyXG5cdEVsZW1lbnRSZWYsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdElucHV0LFxyXG5cdE9uRGVzdHJveSxcclxuXHRPdXRwdXQsXHJcblx0Vmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogXCJycy1mbG9hdC1ib3hcIixcclxuXHR0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcblx0c3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmxvYXRCb3hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBJbnB1dChcInBsYWNlbWVudFwiKSBfcGxhY2VtZW50OiBcInRvcFwiIHwgXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiO1xyXG5cdEBJbnB1dChcInBvc2l0aW9uXCIpIF9wb3NpdGlvbjogXCJzdGFydFwiIHwgXCJjZW50ZXJcIiB8IFwiZW5kXCI7XHJcblx0QElucHV0KFwidHJpZ2dlclwiKSBfdHJpZ2dlcjogXCJob3ZlclwiIHwgXCJjbGlja1wiID0gXCJob3ZlclwiO1xyXG5cdEBJbnB1dChcImFuaW1hdGlvblwiKSBfYW5pbWF0aW9uOiBcInllc1wiIHwgXCJub1wiID0gXCJub1wiO1xyXG5cdEBJbnB1dChcImZpeGVkXCIpIF9maXhlZDogXCJ5ZXNcIiB8IFwibm9cIiA9IFwibm9cIjtcclxuXHJcblx0Z2V0IHBsYWNlbWVudCgpIHtcclxuXHRcdGlmIChbXCJ0b3BcIiwgXCJsZWZ0XCIsIFwicmlnaHRcIiwgXCJib3R0b21cIl0uaW5jbHVkZXModGhpcy5fcGxhY2VtZW50KSkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5fcGxhY2VtZW50O1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIFwiYm90dG9tXCI7XHJcblx0fVxyXG5cclxuXHRnZXQgcG9zaXRpb24oKSB7XHJcblx0XHRpZiAoW1wic3RhcnRcIiwgXCJjZW50ZXJcIiwgXCJlbmRcIl0uaW5jbHVkZXModGhpcy5fcG9zaXRpb24pKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLl9wb3NpdGlvbjtcclxuXHRcdH1cclxuXHRcdHJldHVybiBcImNlbnRlclwiO1xyXG5cdH1cclxuXHJcblx0Z2V0IHRyaWdnZXIoKSB7XHJcblx0XHRpZiAodGhpcy5fdHJpZ2dlciA9PT0gXCJjbGlja1wiKSB7XHJcblx0XHRcdHJldHVybiBcImNsaWNrXCI7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gXCJob3ZlclwiO1xyXG5cdH1cclxuXHJcblx0Z2V0IGFuaW1hdGlvbigpIHtcclxuXHRcdGlmICh0aGlzLl9hbmltYXRpb24gPT09IFwieWVzXCIpIHtcclxuXHRcdFx0cmV0dXJuIFwieWVzXCI7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gXCJub1wiO1xyXG5cdH1cclxuXHJcblx0Z2V0IGZpeGVkKCkge1xyXG5cdFx0aWYgKHRoaXMuX2ZpeGVkID09PSBcInllc1wiKSB7XHJcblx0XHRcdHJldHVybiBcInllc1wiO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIFwibm9cIjtcclxuXHR9XHJcblxyXG5cdEBPdXRwdXQoXCJvcGVuQ2hhbmdlXCIpIG9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG5cdEBWaWV3Q2hpbGQoXCJlbGVtZW50XCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG5cdHJvb3RFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHRAVmlld0NoaWxkKFwiY29udGVudFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuXHRjb250ZW50RWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0dGhpcy5maXhlZENvbnRhaW5lckVsID0gdGhpcy5nZXRGaXhlZENvbnRhaW5lcigpO1xyXG5cdFx0aWYgKHRoaXMuZml4ZWQgPT09IFwieWVzXCIpIHtcclxuXHRcdFx0dGhpcy5maXhlZENvbnRhaW5lckVsLmFwcGVuZCh0aGlzLmNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmNvbnRlbnRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQucmVtb3ZlKCk7XHJcblx0fVxyXG5cclxuXHRGSVhFRF9DT05UQUlORVJfSUQgPSBcImt0LWZsb2F0LWJveC1maXhlZC1jb250YWluZXJcIjtcclxuXHRmaXhlZENvbnRhaW5lckVsOiBIVE1MRWxlbWVudDtcclxuXHRnZXRGaXhlZENvbnRhaW5lcigpIHtcclxuXHRcdGxldCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5GSVhFRF9DT05UQUlORVJfSUQpO1xyXG5cdFx0aWYgKCFjb250YWluZXJFbGVtZW50KSB7XHJcblx0XHRcdGNvbnRhaW5lckVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5cdFx0XHRjb250YWluZXJFbGVtZW50LnNldEF0dHJpYnV0ZShcImlkXCIsIHRoaXMuRklYRURfQ09OVEFJTkVSX0lEKTtcclxuXHRcdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmQoY29udGFpbmVyRWxlbWVudCk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gY29udGFpbmVyRWxlbWVudDtcclxuXHR9XHJcblxyXG5cdHNldEZpeGVkQ29udGVudFBvc2l0aW9uKCkge1xyXG5cdFx0aWYgKHRoaXMuZml4ZWQgPT09IFwibm9cIikge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Y29uc3Qge1xyXG5cdFx0XHR0b3A6IHksXHJcblx0XHRcdGxlZnQ6IHgsXHJcblx0XHRcdHdpZHRoLFxyXG5cdFx0XHRoZWlnaHQsXHJcblx0XHR9ID0gdGhpcy5yb290RWxlbWVudC5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG5cclxuXHRcdGxldCB0b3AgPSBcIjBcIjtcclxuXHRcdGxldCBsZWZ0ID0gXCIwXCI7XHJcblx0XHRsZXQgdHJhbnNsYXRlWCA9IFwiMFwiO1xyXG5cdFx0bGV0IHRyYW5zbGF0ZVkgPSBcIjBcIjtcclxuXHRcdHN3aXRjaCAodGhpcy5wbGFjZW1lbnQgKyBcIl9cIiArIHRoaXMucG9zaXRpb24pIHtcclxuXHRcdFx0Y2FzZSBcInRvcF9zdGFydFwiOlxyXG5cdFx0XHRcdHRvcCA9IHkgKyBcInB4XCI7XHJcblx0XHRcdFx0bGVmdCA9IHggLSA4ICsgXCJweFwiO1xyXG5cdFx0XHRcdHRyYW5zbGF0ZVkgPSBcIi0xMDAlXCI7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJ0b3BfY2VudGVyXCI6XHJcblx0XHRcdFx0dG9wID0geSArIFwicHhcIjtcclxuXHRcdFx0XHRsZWZ0ID0geCArIHdpZHRoIC8gMiArIFwicHhcIjtcclxuXHRcdFx0XHR0cmFuc2xhdGVYID0gXCItNTAlXCI7XHJcblx0XHRcdFx0dHJhbnNsYXRlWSA9IFwiLTEwMCVcIjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcInRvcF9lbmRcIjpcclxuXHRcdFx0XHR0b3AgPSB5ICsgXCJweFwiO1xyXG5cdFx0XHRcdGxlZnQgPSB4ICsgd2lkdGggKyA4ICsgXCJweFwiO1xyXG5cdFx0XHRcdHRyYW5zbGF0ZVggPSBcIi0xMDAlXCI7XHJcblx0XHRcdFx0dHJhbnNsYXRlWSA9IFwiLTEwMCVcIjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImxlZnRfc3RhcnRcIjpcclxuXHRcdFx0XHR0b3AgPSB5IC0gOCArIFwicHhcIjtcclxuXHRcdFx0XHRsZWZ0ID0geCArIFwicHhcIjtcclxuXHRcdFx0XHR0cmFuc2xhdGVYID0gXCItMTAwJVwiO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwibGVmdF9jZW50ZXJcIjpcclxuXHRcdFx0XHR0b3AgPSB5ICsgaGVpZ2h0IC8gMiArIFwicHhcIjtcclxuXHRcdFx0XHRsZWZ0ID0geCArIFwicHhcIjtcclxuXHRcdFx0XHR0cmFuc2xhdGVYID0gXCItMTAwJVwiO1xyXG5cdFx0XHRcdHRyYW5zbGF0ZVkgPSBcIi01MCVcIjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImxlZnRfZW5kXCI6XHJcblx0XHRcdFx0dG9wID0geSArIGhlaWdodCArIDggKyBcInB4XCI7XHJcblx0XHRcdFx0bGVmdCA9IHggKyBcInB4XCI7XHJcblx0XHRcdFx0dHJhbnNsYXRlWCA9IFwiLTEwMCVcIjtcclxuXHRcdFx0XHR0cmFuc2xhdGVZID0gXCItMTAwJVwiO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwicmlnaHRfc3RhcnRcIjpcclxuXHRcdFx0XHR0b3AgPSB5IC0gOCArIFwicHhcIjtcclxuXHRcdFx0XHRsZWZ0ID0geCArIHdpZHRoICsgXCJweFwiO1xyXG5cdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRjYXNlIFwicmlnaHRfY2VudGVyXCI6XHJcblx0XHRcdFx0dG9wID0geSArIGhlaWdodCAvIDIgKyBcInB4XCI7XHJcblx0XHRcdFx0bGVmdCA9IHggKyB3aWR0aCArIFwicHhcIjtcclxuXHRcdFx0XHR0cmFuc2xhdGVZID0gXCItNTAlXCI7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJyaWdodF9lbmRcIjpcclxuXHRcdFx0XHR0b3AgPSB5ICsgaGVpZ2h0ICsgOCArIFwicHhcIjtcclxuXHRcdFx0XHRsZWZ0ID0geCArIHdpZHRoICsgXCJweFwiO1xyXG5cdFx0XHRcdHRyYW5zbGF0ZVkgPSBcIi0xMDAlXCI7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdGNhc2UgXCJib3R0b21fc3RhcnRcIjpcclxuXHRcdFx0XHR0b3AgPSB5ICsgaGVpZ2h0ICsgXCJweFwiO1xyXG5cdFx0XHRcdGxlZnQgPSB4IC0gOCArIFwicHhcIjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImJvdHRvbV9jZW50ZXJcIjpcclxuXHRcdFx0XHR0b3AgPSB5ICsgaGVpZ2h0ICsgXCJweFwiO1xyXG5cdFx0XHRcdGxlZnQgPSB4ICsgd2lkdGggLyAyICsgXCJweFwiO1xyXG5cdFx0XHRcdHRyYW5zbGF0ZVggPSBcIi01MCVcIjtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0Y2FzZSBcImJvdHRvbV9lbmRcIjpcclxuXHRcdFx0XHR0b3AgPSB5ICsgaGVpZ2h0ICsgXCJweFwiO1xyXG5cdFx0XHRcdGxlZnQgPSB4ICsgd2lkdGggKyA4ICsgXCJweFwiO1xyXG5cdFx0XHRcdHRyYW5zbGF0ZVggPSBcIi0xMDAlXCI7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5jb250ZW50RWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLnRvcCA9IHRvcDtcclxuXHRcdHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gbGVmdDtcclxuXHRcdHRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7dHJhbnNsYXRlWH0sICR7dHJhbnNsYXRlWX0pYDtcclxuXHR9XHJcblxyXG5cdG9wZW5lZDogXCJ5ZXNcIiB8IFwibm9cIiA9IFwibm9cIjtcclxuXHRvbkNsaWNrQ29udGFpbmVyKCkge1xyXG5cdFx0aWYgKHRoaXMudHJpZ2dlciAhPT0gXCJjbGlja1wiKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLm9wZW5lZCA9IFwieWVzXCI7XHJcblx0XHR0aGlzLm9wZW5DaGFuZ2UuZW1pdCh0cnVlKTtcclxuXHRcdHRoaXMuc2V0Rml4ZWRDb250ZW50UG9zaXRpb24oKTtcclxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5vbkNsaWNrT3V0c2lkZSk7XHJcblx0fVxyXG5cclxuXHRvbkNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xyXG5cdFx0aWYgKFxyXG5cdFx0XHQhdGhpcy5yb290RWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KSAmJlxyXG5cdFx0XHQhdGhpcy5maXhlZENvbnRhaW5lckVsLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBFbGVtZW50KVxyXG5cdFx0KSB7XHJcblx0XHRcdHRoaXMub3BlbmVkID0gXCJub1wiO1xyXG5cdFx0XHR0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XHJcblx0XHRcdHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgdGhpcy5vbkNsaWNrT3V0c2lkZSk7XHJcblx0XHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdG9uTW91c2VFbnRlcigpIHtcclxuXHRcdGlmICh0aGlzLmZpeGVkID09PSBcIm5vXCIgfHwgdGhpcy50cmlnZ2VyICE9PSBcImhvdmVyXCIpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMub3BlbmVkID0gXCJ5ZXNcIjtcclxuXHRcdHRoaXMub3BlbkNoYW5nZS5lbWl0KHRydWUpO1xyXG5cdFx0dGhpcy5zZXRGaXhlZENvbnRlbnRQb3NpdGlvbigpO1xyXG5cdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtb3VzZW1vdmVcIiwgdGhpcy5vbk1vdmVPdXRzaWRlKTtcclxuXHR9XHJcblxyXG5cdG9uTW92ZU91dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcclxuXHRcdGlmIChcclxuXHRcdFx0IXRoaXMucm9vdEVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudCkgJiZcclxuXHRcdFx0IXRoaXMuY29udGVudEVsZW1lbnQubmF0aXZlRWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudClcclxuXHRcdCkge1xyXG5cdFx0XHR0aGlzLm9wZW5lZCA9IFwibm9cIjtcclxuXHRcdFx0dGhpcy5vcGVuQ2hhbmdlLmVtaXQoZmFsc2UpO1xyXG5cdFx0XHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIHRoaXMub25Nb3ZlT3V0c2lkZSk7XHJcblx0XHRcdHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdGNsb3NlKCkge1xyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB7XHJcblx0XHRcdHRoaXMub3BlbmVkID0gXCJub1wiO1xyXG5cdFx0XHR0aGlzLm9wZW5DaGFuZ2UuZW1pdChmYWxzZSk7XHJcblx0XHR9LCAwKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdlxyXG4gICNlbGVtZW50XHJcbiAgY2xhc3M9XCJmbG9hdC1ib3gtY29udGFpbmVyXCJcclxuICBbYXR0ci5kYXRhLXRyaWdnZXJdPVwidHJpZ2dlclwiXHJcbiAgKGNsaWNrKT1cIm9uQ2xpY2tDb250YWluZXIoKVwiXHJcbiAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxyXG4+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDxkaXZcclxuICAgICNjb250ZW50XHJcbiAgICBjbGFzcz1cImZsb2F0LWJveC1jb250ZW50XCJcclxuICAgIFthdHRyLmRhdGEtcGxhY2VtZW50XT1cInBsYWNlbWVudFwiXHJcbiAgICBbYXR0ci5kYXRhLXBvc2l0aW9uXT1cInBvc2l0aW9uXCJcclxuICAgIFthdHRyLmRhdGEtYW5pbWF0aW9uXT1cImFuaW1hdGlvblwiXHJcbiAgICBbYXR0ci5kYXRhLWZpeGVkXT1cImZpeGVkXCJcclxuICAgIFthdHRyLmRhdGEtb3BlbmVkXT1cIm9wZW5lZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsb2F0LWJveC1zaG93LWNvbnRlbnRcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Zsb2F0LWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,57 @@
1
+ // 组件类
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@syncfusion/ej2-angular-buttons";
6
+ export class CheckboxGroupComponent {
7
+ ref;
8
+ constructor(ref) {
9
+ this.ref = ref;
10
+ }
11
+ name; // 分组凭证
12
+ value = [];
13
+ dataSource = [];
14
+ orientation = "horizontal";
15
+ fields = { text: "text", value: "value", disabled: "disabled" };
16
+ disabled = false;
17
+ error = false;
18
+ valueChange = new EventEmitter();
19
+ ngOnInit() {
20
+ console.log('first', this.value);
21
+ }
22
+ onChange(event, option) {
23
+ const originalValue = this.value;
24
+ let result;
25
+ if (event.checked) {
26
+ result = [...originalValue, option[this.fields.value]];
27
+ }
28
+ else {
29
+ result = originalValue.filter((val) => val !== option[this.fields.value]);
30
+ }
31
+ this.valueChange.emit(result);
32
+ this.ref.markForCheck();
33
+ }
34
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
35
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckboxGroupComponent, selector: "rs-checkbox-group", inputs: { name: "name", value: "value", dataSource: "dataSource", orientation: "orientation", fields: "fields", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n", styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group .checkbox-item .e-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);font-weight:400;line-height:14px}.checkbox-group .checkbox-item .e-checkbox-wrapper.e-checkbox-disabled .e-icons{border-color:#d1d1d180;background-color:#eaedf059}.checkbox-group .checkbox-item .e-icons{box-shadow:none!important}.checkbox-group .checkbox-item .e-icons.e-check{background-color:var(--rs-active-color);border-color:var(--rs-active-color)}.checkbox-group .checkbox-item .e-icons.e-check:before{content:\"\"!important;display:block;width:11px;height:8px;background-image:url(/assets/img/checked-vector.svg);background-size:cover;background-position:center;background-color:transparent;margin:2px auto}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i2.CheckBoxComponent, selector: "ejs-checkbox", inputs: ["checked", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "htmlAttributes", "indeterminate", "label", "labelPosition", "locale", "name", "value"], outputs: ["focus", "blur", "change", "created", "checkedChange", "indeterminateChange"] }] });
36
+ }
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: "rs-checkbox-group", template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n", styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group .checkbox-item .e-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);font-weight:400;line-height:14px}.checkbox-group .checkbox-item .e-checkbox-wrapper.e-checkbox-disabled .e-icons{border-color:#d1d1d180;background-color:#eaedf059}.checkbox-group .checkbox-item .e-icons{box-shadow:none!important}.checkbox-group .checkbox-item .e-icons.e-check{background-color:var(--rs-active-color);border-color:var(--rs-active-color)}.checkbox-group .checkbox-item .e-icons.e-check:before{content:\"\"!important;display:block;width:11px;height:8px;background-image:url(/assets/img/checked-vector.svg);background-size:cover;background-position:center;background-color:transparent;margin:2px auto}\n"] }]
40
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { name: [{
41
+ type: Input
42
+ }], value: [{
43
+ type: Input
44
+ }], dataSource: [{
45
+ type: Input
46
+ }], orientation: [{
47
+ type: Input
48
+ }], fields: [{
49
+ type: Input
50
+ }], disabled: [{
51
+ type: Input
52
+ }], error: [{
53
+ type: Input
54
+ }], valueChange: [{
55
+ type: Output
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vY2hlY2tib3gtZ3JvdXAvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vY2hlY2tib3gtZ3JvdXAvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBT2xHLE1BQU0sT0FBTyxzQkFBc0I7SUFFdkI7SUFEVixZQUNVLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO0lBQzdCLENBQUM7SUFDSyxJQUFJLENBQUMsQ0FBQyxPQUFPO0lBQ2IsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDaEIsV0FBVyxHQUE4QixZQUFZLENBQUM7SUFDdEQsTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUNoRSxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFHdkIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakMsUUFBUTtRQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNqQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLEtBQUssRUFBRSxNQUFNO1FBQ3BCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDakMsSUFBSSxNQUFNLENBQUM7UUFDWCxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDakIsTUFBTSxHQUFHLENBQUMsR0FBRyxhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN4RDthQUFNO1lBQ0wsTUFBTSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQzNFO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMxQixDQUFDO3dHQTVCVSxzQkFBc0I7NEZBQXRCLHNCQUFzQiwwUENSbkMsbWZBWUE7OzRGREphLHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxtQkFBbUI7d0dBUXBCLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFHTixXQUFXO3NCQURWLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtY2hlY2tib3gtZ3JvdXBcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7fVxyXG4gIEBJbnB1dCgpIG5hbWU7IC8vIOWIhue7hOWHreivgVxyXG4gIEBJbnB1dCgpIHZhbHVlID0gW107XHJcbiAgQElucHV0KCkgZGF0YVNvdXJjZSA9IFtdO1xyXG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIiA9IFwiaG9yaXpvbnRhbFwiO1xyXG4gIEBJbnB1dCgpIGZpZWxkcyA9IHsgdGV4dDogXCJ0ZXh0XCIsIHZhbHVlOiBcInZhbHVlXCIsIGRpc2FibGVkOiBcImRpc2FibGVkXCIgfTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVycm9yID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGNvbnNvbGUubG9nKCdmaXJzdCcsdGhpcy52YWx1ZSlcclxuICB9XHJcbiAgb25DaGFuZ2UoZXZlbnQsIG9wdGlvbikge1xyXG4gICAgY29uc3Qgb3JpZ2luYWxWYWx1ZSA9IHRoaXMudmFsdWU7XHJcbiAgICBsZXQgcmVzdWx0O1xyXG4gICAgaWYgKGV2ZW50LmNoZWNrZWQpIHtcclxuICAgICAgcmVzdWx0ID0gWy4uLm9yaWdpbmFsVmFsdWUsIG9wdGlvblt0aGlzLmZpZWxkcy52YWx1ZV1dO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzdWx0ID0gb3JpZ2luYWxWYWx1ZS5maWx0ZXIoKHZhbCkgPT4gdmFsICE9PSBvcHRpb25bdGhpcy5maWVsZHMudmFsdWVdKTtcclxuICAgIH1cclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChyZXN1bHQpO1xyXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjaGVja2JveC1ncm91cFwiIFtuZ0NsYXNzXT1cIltvcmllbnRhdGlvbiwgZXJyb3IgPyAnZXJyb3InIDogJyddXCI+XHJcbiAgPGRpdiBjbGFzcz1cImNoZWNrYm94LWl0ZW1cIiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGRhdGFTb3VyY2VcIj5cclxuICAgIDxlanMtY2hlY2tib3hcclxuICAgICAgW25hbWVdPVwibmFtZVwiXHJcbiAgICAgIFtsYWJlbF09XCJvcHRpb25bZmllbGRzLnRleHRdXCJcclxuICAgICAgW3ZhbHVlXT1cIm9wdGlvbltmaWVsZHMudmFsdWVdXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbltmaWVsZHMuZGlzYWJsZWRdIHx8IGRpc2FibGVkXCJcclxuICAgICAgW2NoZWNrZWRdPVwidmFsdWUuaW5jbHVkZXMob3B0aW9uW2ZpZWxkcy52YWx1ZV0pXCJcclxuICAgICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQsIG9wdGlvbilcIlxyXG4gICAgPjwvZWpzLWNoZWNrYm94PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,42 @@
1
+ // 组件类
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@syncfusion/ej2-angular-buttons";
7
+ export class RadioGroupComponent {
8
+ value;
9
+ dataSource = [];
10
+ orientation = 'horizontal';
11
+ fields = { text: 'text', value: 'value', disabled: 'disabled' };
12
+ disabled = false;
13
+ error = false;
14
+ valueChange = new EventEmitter();
15
+ ngOnInit() {
16
+ }
17
+ onChange(event) {
18
+ const value = event.value;
19
+ this.valueChange.emit(value);
20
+ }
21
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
22
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioGroupComponent, selector: "rs-radio-group", inputs: { value: "value", dataSource: "dataSource", orientation: "orientation", fields: "fields", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"radio-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"radio-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-radiobutton\r\n [label]=\"option[fields.text]\"\r\n [(ngModel)]=\"value\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-radiobutton>\r\n </div>\r\n</div>\r\n", styles: [".radio-group{display:flex;padding-left:4px}.radio-group.horizontal{flex-direction:row;gap:35px}.radio-group.vertical{flex-direction:column;gap:14px}.radio-group .radio-item .e-radio:disabled+label:before{border-color:#d1d1d180;background-color:#eaedf059}.radio-group .radio-item .e-radio:checked+label:before{background-color:var(--rs-active-color);border-color:var(--rs-active-color);box-shadow:none}.radio-group .radio-item .e-radio:checked+label:after{content:\"\"!important;display:block;width:11px;height:8px;background-image:url(/assets/img/checked-vector.svg);background-size:cover;background-position:center;background-color:transparent;transform:scale(1);left:2px;top:3px;border:0;border-radius:0}.radio-group .radio-item .e-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);font-weight:400;line-height:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.RadioButtonComponent, selector: "ejs-radiobutton", inputs: ["checked", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "htmlAttributes", "label", "labelPosition", "locale", "name", "value"], outputs: ["focus", "blur", "change", "created", "valueChange"] }] });
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioGroupComponent, decorators: [{
25
+ type: Component,
26
+ args: [{ selector: "rs-radio-group", template: "<div class=\"radio-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"radio-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-radiobutton\r\n [label]=\"option[fields.text]\"\r\n [(ngModel)]=\"value\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-radiobutton>\r\n </div>\r\n</div>\r\n", styles: [".radio-group{display:flex;padding-left:4px}.radio-group.horizontal{flex-direction:row;gap:35px}.radio-group.vertical{flex-direction:column;gap:14px}.radio-group .radio-item .e-radio:disabled+label:before{border-color:#d1d1d180;background-color:#eaedf059}.radio-group .radio-item .e-radio:checked+label:before{background-color:var(--rs-active-color);border-color:var(--rs-active-color);box-shadow:none}.radio-group .radio-item .e-radio:checked+label:after{content:\"\"!important;display:block;width:11px;height:8px;background-image:url(/assets/img/checked-vector.svg);background-size:cover;background-position:center;background-color:transparent;transform:scale(1);left:2px;top:3px;border:0;border-radius:0}.radio-group .radio-item .e-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);font-weight:400;line-height:14px}\n"] }]
27
+ }], propDecorators: { value: [{
28
+ type: Input
29
+ }], dataSource: [{
30
+ type: Input
31
+ }], orientation: [{
32
+ type: Input
33
+ }], fields: [{
34
+ type: Input
35
+ }], disabled: [{
36
+ type: Input
37
+ }], error: [{
38
+ type: Input
39
+ }], valueChange: [{
40
+ type: Output
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vcmFkaW8tZ3JvdXAvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTTtBQUNOLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTy9FLE1BQU0sT0FBTyxtQkFBbUI7SUFDckIsS0FBSyxDQUFDO0lBQ04sVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixXQUFXLEdBQThCLFlBQVksQ0FBQztJQUN0RCxNQUFNLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFBO0lBQy9ELFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUd2QixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVqQyxRQUFRO0lBQ1IsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFLO1FBQ1osTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQTtRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQixDQUFDO3dHQWhCVSxtQkFBbUI7NEZBQW5CLG1CQUFtQix5T0NSaEMscWJBV0E7OzRGREhhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxnQkFBZ0I7OEJBS2pCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXJhZGlvLWdyb3VwXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFJhZGlvR3JvdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHZhbHVlO1xyXG4gIEBJbnB1dCgpIGRhdGFTb3VyY2UgPSBbXTtcclxuICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcclxuICBASW5wdXQoKSBmaWVsZHMgPSB7IHRleHQ6ICd0ZXh0JywgdmFsdWU6ICd2YWx1ZScsIGRpc2FibGVkOiAnZGlzYWJsZWQnIH1cclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGVycm9yID0gZmFsc2U7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICB9XHJcbiAgb25DaGFuZ2UoZXZlbnQpe1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC52YWx1ZVxyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCIgW25nQ2xhc3NdPVwiW29yaWVudGF0aW9uLCBlcnJvciA/ICdlcnJvcicgOiAnJ11cIj5cclxuICA8ZGl2IGNsYXNzPVwicmFkaW8taXRlbVwiICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZGF0YVNvdXJjZVwiPlxyXG4gICAgPGVqcy1yYWRpb2J1dHRvblxyXG4gICAgICBbbGFiZWxdPVwib3B0aW9uW2ZpZWxkcy50ZXh0XVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICBbdmFsdWVdPVwib3B0aW9uW2ZpZWxkcy52YWx1ZV1cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwib3B0aW9uW2ZpZWxkcy5kaXNhYmxlZF0gfHwgZGlzYWJsZWRcIlxyXG4gICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxyXG4gICAgPjwvZWpzLXJhZGlvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,42 @@
1
+ // 组件类
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "@syncfusion/ej2-angular-buttons";
7
+ export class SwitchInputComponent {
8
+ value;
9
+ text;
10
+ orientation = 'front';
11
+ disabled = false;
12
+ error = false;
13
+ valueChange = new EventEmitter();
14
+ ngOnInit() { }
15
+ onChange(event) {
16
+ const value = event.checked;
17
+ this.valueChange.emit(value);
18
+ }
19
+ onClick() {
20
+ const value = !this.value;
21
+ this.valueChange.emit(value);
22
+ }
23
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
24
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SwitchInputComponent, selector: "rs-switch-input", inputs: { value: "value", text: "text", orientation: "orientation", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"rs-switch\" [ngClass]=\"[orientation, error ? 'error' : '', disabled ? 'disabled' : '']\">\r\n <label class=\"switch-label\" (click)=\"onClick()\"> {{ text }} </label>\r\n <ejs-switch\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-switch>\r\n</div>\r\n", styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}.rs-switch .e-switch-wrapper{width:28px}.rs-switch .e-switch-wrapper .e-switch-inner{border:1px solid rgb(173,181,189)}.rs-switch .e-switch-wrapper .e-switch-inner.e-switch-active{background-color:var(--rs-active-color);border-color:var(--rs-active-color)}.rs-switch .e-switch-wrapper .e-switch-handle{background-color:#fff;border:1px solid rgb(173,181,189);left:2px}.rs-switch .e-switch-wrapper .e-switch-handle.e-switch-active{background-color:#fff;border-color:var(--rs-active-color);left:100%}.rs-switch .e-switch-wrapper.e-switch-disabled .e-switch-handle{background-color:#e9ecef;opacity:.5}.rs-switch .e-switch-wrapper.e-switch-disabled .e-switch-handle.e-switch-active{border-color:#0081ff80}.rs-switch .e-switch-wrapper .e-switch-on{background-color:var(--rs-active-color);color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SwitchComponent, selector: "ejs-switch", inputs: ["checked", "cssClass", "disabled", "enablePersistence", "enableRtl", "htmlAttributes", "locale", "name", "offLabel", "onLabel", "value"], outputs: ["focus", "blur", "change", "created", "checkedChange"] }] });
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, decorators: [{
27
+ type: Component,
28
+ args: [{ selector: "rs-switch-input", template: "<div class=\"rs-switch\" [ngClass]=\"[orientation, error ? 'error' : '', disabled ? 'disabled' : '']\">\r\n <label class=\"switch-label\" (click)=\"onClick()\"> {{ text }} </label>\r\n <ejs-switch\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-switch>\r\n</div>\r\n", styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}.rs-switch .e-switch-wrapper{width:28px}.rs-switch .e-switch-wrapper .e-switch-inner{border:1px solid rgb(173,181,189)}.rs-switch .e-switch-wrapper .e-switch-inner.e-switch-active{background-color:var(--rs-active-color);border-color:var(--rs-active-color)}.rs-switch .e-switch-wrapper .e-switch-handle{background-color:#fff;border:1px solid rgb(173,181,189);left:2px}.rs-switch .e-switch-wrapper .e-switch-handle.e-switch-active{background-color:#fff;border-color:var(--rs-active-color);left:100%}.rs-switch .e-switch-wrapper.e-switch-disabled .e-switch-handle{background-color:#e9ecef;opacity:.5}.rs-switch .e-switch-wrapper.e-switch-disabled .e-switch-handle.e-switch-active{border-color:#0081ff80}.rs-switch .e-switch-wrapper .e-switch-on{background-color:var(--rs-active-color);color:#fff}\n"] }]
29
+ }], propDecorators: { value: [{
30
+ type: Input
31
+ }], text: [{
32
+ type: Input
33
+ }], orientation: [{
34
+ type: Input
35
+ }], disabled: [{
36
+ type: Input
37
+ }], error: [{
38
+ type: Input
39
+ }], valueChange: [{
40
+ type: Output
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vc3dpdGNoLWlucHV0L2luZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhaXNlLWNvbW1vbi1saWIvc3JjL2xpYi9mb3JtL3N3aXRjaC1pbnB1dC9pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFPL0UsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixLQUFLLENBQUM7SUFDTixJQUFJLENBQUM7SUFDTCxXQUFXLEdBQXVCLE9BQU8sQ0FBQztJQUMxQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFHdkIsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFakMsUUFBUSxLQUFJLENBQUM7SUFDYixRQUFRLENBQUMsS0FBSztRQUNaLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUNELE9BQU87UUFDTCxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzt3R0FsQlUsb0JBQW9COzRGQUFwQixvQkFBb0IsNE1DUmpDLDJVQVFBOzs0RkRBYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtsQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR04sV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtc3dpdGNoLWlucHV0XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFN3aXRjaElucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSB2YWx1ZTtcclxuICBASW5wdXQoKSB0ZXh0O1xyXG4gIEBJbnB1dCgpIG9yaWVudGF0aW9uOiAnZnJvbnQnIHwgJ2JlaGluZCcgPSAnZnJvbnQnO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuICBvbkNoYW5nZShldmVudCkge1xyXG4gICAgY29uc3QgdmFsdWUgPSBldmVudC5jaGVja2VkO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgb25DbGljaygpe1xyXG4gICAgY29uc3QgdmFsdWUgPSAhdGhpcy52YWx1ZTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJycy1zd2l0Y2hcIiBbbmdDbGFzc109XCJbb3JpZW50YXRpb24sIGVycm9yID8gJ2Vycm9yJyA6ICcnLCBkaXNhYmxlZCA/ICdkaXNhYmxlZCcgOiAnJ11cIj5cclxuICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2gtbGFiZWxcIiAoY2xpY2spPVwib25DbGljaygpXCI+IHt7IHRleHQgfX0gPC9sYWJlbD5cclxuICA8ZWpzLXN3aXRjaFxyXG4gICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcclxuICA+PC9lanMtc3dpdGNoPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,62 @@
1
+ // 组件类
2
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class TagInputComponent {
6
+ value = [];
7
+ fields;
8
+ disabled = false;
9
+ error = false;
10
+ inputMinlength = 3;
11
+ inputMaxlength = 30;
12
+ valueChange = new EventEmitter();
13
+ ngOnInit() {
14
+ }
15
+ onRemoveTag(tag) {
16
+ const tagsList = this.value.filter((i) => i !== tag);
17
+ this.valueChange.emit(tagsList);
18
+ }
19
+ onAddTag(event) {
20
+ const inputValue = event.target.value;
21
+ if (inputValue && this.verifyInputValue(inputValue)) {
22
+ this.valueChange.emit([...this.value, inputValue]);
23
+ event.target.value = "";
24
+ }
25
+ }
26
+ inputError = false;
27
+ verifyInputValue(inputValue) {
28
+ this.inputError = false;
29
+ const inputValueLength = inputValue.length;
30
+ if (this.value.includes(inputValue) ||
31
+ inputValueLength > this.inputMaxlength ||
32
+ inputValueLength < this.inputMinlength) {
33
+ this.inputError = true;
34
+ return false;
35
+ }
36
+ return true;
37
+ }
38
+ onInput() {
39
+ this.inputError = false;
40
+ }
41
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TagInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
42
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TagInputComponent, selector: "rs-tag-input", inputs: { value: "value", fields: "fields", disabled: "disabled", error: "error", inputMinlength: "inputMinlength", inputMaxlength: "inputMaxlength" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div\r\n class=\"form-tags\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n error: inputError || error\r\n }\"\r\n>\r\n <div class=\"form-tags-item\" *ngFor=\"let tag of value\">\r\n <span>{{ tag }}</span>\r\n <span class=\"form-tags-remove\" (click)=\"onRemoveTag(tag)\"></span>\r\n </div>\r\n <input\r\n class=\"form-tags-input\"\r\n (keyup.enter)=\"onAddTag($event)\"\r\n (input)=\"onInput()\"\r\n (blur)=\"onAddTag($event)\"\r\n autocomplete=\"off\"\r\n [minLength]=\"inputMinlength\"\r\n [maxLength]=\"inputMaxlength\"\r\n />\r\n</div>\r\n", styles: [".form-tags{display:flex;flex-flow:row wrap;border-radius:4px;overflow:hidden;gap:4px 8px;padding:3px 4px;min-height:28px;box-shadow:none;border-radius:var(--rs-input-border-radius);border:1px solid var(--rs-input-border-color);cursor:pointer}.form-tags:not(.error):not(.disabled):hover{box-shadow:0 0 3px #1f7bff66;border-color:var(--rs-input-hover-border-color)}.form-tags.error{border-color:var(--rs-input-error-border-color)!important}.form-tags.disabled{pointer-events:none;border-color:var(--rs-input-border-color)!important;font-size:var(--rs-input-font-size);color:var(--rs-input-disabled-color)!important;background-color:var(--rs-input-disabled-bg)!important;-webkit-text-fill-color:var(--rs-input-disabled-color)!important}.form-tags.disabled .form-tags-input{background-color:var(--rs-input-disabled-bg)!important}.form-tags .form-tags-input{flex:auto;width:auto;padding:0 4px;border:none;outline:none;font-size:var(--rs-input-font-size);color:var(--rs-input-color)!important}.form-tags .form-tags-item{box-sizing:border-box;height:20px;padding:0 8px;border:1px solid #eaedf0;border-radius:12px;background-color:#f8fafb;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:12px;display:flex;flex-flow:row nowrap;align-items:center;position:relative}.form-tags .form-tags-item .form-tags-remove{visibility:hidden;width:20px;height:20px;border:1px solid #dbe1e7;border-radius:20px;background-color:#fff;line-height:18px;text-align:center;position:absolute;top:-1px;right:-1px}.form-tags .form-tags-item .form-tags-remove:after{content:url(/assets/img/tag-remove.svg);cursor:pointer}.form-tags .form-tags-item:hover .form-tags-remove{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TagInputComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: "rs-tag-input", template: "<div\r\n class=\"form-tags\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n error: inputError || error\r\n }\"\r\n>\r\n <div class=\"form-tags-item\" *ngFor=\"let tag of value\">\r\n <span>{{ tag }}</span>\r\n <span class=\"form-tags-remove\" (click)=\"onRemoveTag(tag)\"></span>\r\n </div>\r\n <input\r\n class=\"form-tags-input\"\r\n (keyup.enter)=\"onAddTag($event)\"\r\n (input)=\"onInput()\"\r\n (blur)=\"onAddTag($event)\"\r\n autocomplete=\"off\"\r\n [minLength]=\"inputMinlength\"\r\n [maxLength]=\"inputMaxlength\"\r\n />\r\n</div>\r\n", styles: [".form-tags{display:flex;flex-flow:row wrap;border-radius:4px;overflow:hidden;gap:4px 8px;padding:3px 4px;min-height:28px;box-shadow:none;border-radius:var(--rs-input-border-radius);border:1px solid var(--rs-input-border-color);cursor:pointer}.form-tags:not(.error):not(.disabled):hover{box-shadow:0 0 3px #1f7bff66;border-color:var(--rs-input-hover-border-color)}.form-tags.error{border-color:var(--rs-input-error-border-color)!important}.form-tags.disabled{pointer-events:none;border-color:var(--rs-input-border-color)!important;font-size:var(--rs-input-font-size);color:var(--rs-input-disabled-color)!important;background-color:var(--rs-input-disabled-bg)!important;-webkit-text-fill-color:var(--rs-input-disabled-color)!important}.form-tags.disabled .form-tags-input{background-color:var(--rs-input-disabled-bg)!important}.form-tags .form-tags-input{flex:auto;width:auto;padding:0 4px;border:none;outline:none;font-size:var(--rs-input-font-size);color:var(--rs-input-color)!important}.form-tags .form-tags-item{box-sizing:border-box;height:20px;padding:0 8px;border:1px solid #eaedf0;border-radius:12px;background-color:#f8fafb;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:12px;display:flex;flex-flow:row nowrap;align-items:center;position:relative}.form-tags .form-tags-item .form-tags-remove{visibility:hidden;width:20px;height:20px;border:1px solid #dbe1e7;border-radius:20px;background-color:#fff;line-height:18px;text-align:center;position:absolute;top:-1px;right:-1px}.form-tags .form-tags-item .form-tags-remove:after{content:url(/assets/img/tag-remove.svg);cursor:pointer}.form-tags .form-tags-item:hover .form-tags-remove{visibility:visible}\n"] }]
47
+ }], propDecorators: { value: [{
48
+ type: Input
49
+ }], fields: [{
50
+ type: Input
51
+ }], disabled: [{
52
+ type: Input
53
+ }], error: [{
54
+ type: Input
55
+ }], inputMinlength: [{
56
+ type: Input
57
+ }], inputMaxlength: [{
58
+ type: Input
59
+ }], valueChange: [{
60
+ type: Output
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vdGFnLWlucHV0L2luZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhaXNlLWNvbW1vbi1saWIvc3JjL2xpYi9mb3JtL3RhZy1pbnB1dC9pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTy9FLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLE1BQU0sQ0FBQztJQUNQLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNkLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsY0FBYyxHQUFHLEVBQUUsQ0FBQztJQUc3QixXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVqQyxRQUFRO0lBRVIsQ0FBQztJQUNELFdBQVcsQ0FBQyxHQUFHO1FBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNuRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBQ0QsVUFBVSxHQUFHLEtBQUssQ0FBQTtJQUNsQixnQkFBZ0IsQ0FBQyxVQUFVO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFBO1FBQ3ZCLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUMzQyxJQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztZQUMvQixnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYztZQUN0QyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUN0QztZQUNBLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO1lBQ3RCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7SUFDekIsQ0FBQzt3R0ExQ1UsaUJBQWlCOzRGQUFqQixpQkFBaUIscVBDUjlCLHlrQkFxQkE7OzRGRGJhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSxjQUFjOzhCQUtmLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdOLFdBQVc7c0JBRFYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcInJzLXRhZy1pbnB1dFwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaW5kZXguY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vaW5kZXguY29tcG9uZW50LnNjc3NcIl0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWdJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdmFsdWUgPSBbXTtcclxuICBASW5wdXQoKSBmaWVsZHM7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBlcnJvciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGlucHV0TWlubGVuZ3RoID0gMztcclxuICBASW5wdXQoKSBpbnB1dE1heGxlbmd0aCA9IDMwO1xyXG5cclxuICBAT3V0cHV0KClcclxuICB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgIFxyXG4gIH1cclxuICBvblJlbW92ZVRhZyh0YWcpIHtcclxuICAgIGNvbnN0IHRhZ3NMaXN0ID0gdGhpcy52YWx1ZS5maWx0ZXIoKGkpID0+IGkgIT09IHRhZyk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGFnc0xpc3QpO1xyXG4gIH1cclxuXHJcbiAgb25BZGRUYWcoZXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICBpZiAoaW5wdXRWYWx1ZSAmJiB0aGlzLnZlcmlmeUlucHV0VmFsdWUoaW5wdXRWYWx1ZSkpIHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFsuLi50aGlzLnZhbHVlLCBpbnB1dFZhbHVlXSk7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlucHV0RXJyb3IgPSBmYWxzZVxyXG4gIHZlcmlmeUlucHV0VmFsdWUoaW5wdXRWYWx1ZSkge1xyXG4gICAgdGhpcy5pbnB1dEVycm9yID0gZmFsc2VcclxuICAgIGNvbnN0IGlucHV0VmFsdWVMZW5ndGggPSBpbnB1dFZhbHVlLmxlbmd0aDtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy52YWx1ZS5pbmNsdWRlcyhpbnB1dFZhbHVlKSB8fFxyXG4gICAgICBpbnB1dFZhbHVlTGVuZ3RoID4gdGhpcy5pbnB1dE1heGxlbmd0aCB8fFxyXG4gICAgICBpbnB1dFZhbHVlTGVuZ3RoIDwgdGhpcy5pbnB1dE1pbmxlbmd0aFxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRFcnJvciA9IHRydWVcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIG9uSW5wdXQoKXtcclxuICAgIHRoaXMuaW5wdXRFcnJvciA9IGZhbHNlXHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImZvcm0tdGFnc1wiXHJcbiAgW25nQ2xhc3NdPVwie1xyXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxyXG4gICAgZXJyb3I6IGlucHV0RXJyb3IgfHwgZXJyb3JcclxuICB9XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLXRhZ3MtaXRlbVwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdmFsdWVcIj5cclxuICAgIDxzcGFuPnt7IHRhZyB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS10YWdzLXJlbW92ZVwiIChjbGljayk9XCJvblJlbW92ZVRhZyh0YWcpXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxpbnB1dFxyXG4gICAgY2xhc3M9XCJmb3JtLXRhZ3MtaW5wdXRcIlxyXG4gICAgKGtleXVwLmVudGVyKT1cIm9uQWRkVGFnKCRldmVudClcIlxyXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAoYmx1cik9XCJvbkFkZFRhZygkZXZlbnQpXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICBbbWluTGVuZ3RoXT1cImlucHV0TWlubGVuZ3RoXCJcclxuICAgIFttYXhMZW5ndGhdPVwiaW5wdXRNYXhsZW5ndGhcIlxyXG4gIC8+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,43 @@
1
+ // 组件类
2
+ import { Component, ContentChild, Input, } from '@angular/core';
3
+ import { CommonGridComponent } from '../../common-grid/index.component';
4
+ import { debounce } from 'lodash';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@syncfusion/ej2-angular-inputs";
9
+ export class CommonListComponent {
10
+ gridContent;
11
+ pageTitle;
12
+ customPageTitle = false;
13
+ isInner = false;
14
+ debouncedInput;
15
+ ngOnInit() {
16
+ this.debouncedInput = debounce(() => {
17
+ this.onSeach();
18
+ }, 300);
19
+ }
20
+ searchValue;
21
+ onSeach() {
22
+ this.gridContent.grid.search(this.searchValue);
23
+ }
24
+ onInput() {
25
+ this.debouncedInput();
26
+ }
27
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
28
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommonListComponent, selector: "rs-common-list", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", isInner: "isInner" }, queries: [{ propertyName: "gridContent", first: true, predicate: CommonGridComponent, descendants: true, static: true }], ngImport: i0, template: "<div class=\"page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <div class=\"content-wrap\">\r\n <ng-content select=\"[tabSlot]\"></ng-content>\r\n <div class=\"toolbar-wrap\">\r\n <div class=\"left-col\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"right-col\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.page-list-wrap .page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.page-list-wrap .content-wrap{display:flex;flex-direction:column;flex:1;height:0}.page-list-wrap .content-wrap .toolbar-wrap{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.page-list-wrap .content-wrap .toolbar-wrap .left-col,.page-list-wrap .content-wrap .toolbar-wrap .right-col{display:flex;gap:12px}.page-list-wrap .content-wrap .toolbar-wrap .left-col ::ng-deep .e-btn,.page-list-wrap .content-wrap .toolbar-wrap .right-col ::ng-deep .e-btn{height:28px}.page-list-wrap .content-wrap .grid-wrap{flex:1;height:0}.page-list-wrap .content-wrap .grid-wrap .employee-grid-container{height:100%}.page-list-wrap.is-not-inner .content-wrap{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.page-list-wrap .search-input{width:240px}.page-list-wrap .search-input ::ng-deep .e-input-group{border-radius:14px!important}.page-list-wrap .search-input ::ng-deep .e-input-group.e-input-focus,.page-list-wrap .search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.page-list-wrap .search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.page-list-wrap .search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.page-list-wrap .search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.page-list-wrap .search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TextBoxComponent, selector: "ejs-textbox", inputs: ["autocomplete", "cssClass", "enablePersistence", "enableRtl", "enabled", "floatLabelType", "htmlAttributes", "locale", "multiline", "placeholder", "readonly", "showClearButton", "type", "value", "width"], outputs: ["blur", "change", "created", "destroyed", "focus", "input", "valueChange"] }] });
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonListComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'rs-common-list', template: "<div class=\"page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <div class=\"content-wrap\">\r\n <ng-content select=\"[tabSlot]\"></ng-content>\r\n <div class=\"toolbar-wrap\">\r\n <div class=\"left-col\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"right-col\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.page-list-wrap .page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.page-list-wrap .content-wrap{display:flex;flex-direction:column;flex:1;height:0}.page-list-wrap .content-wrap .toolbar-wrap{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.page-list-wrap .content-wrap .toolbar-wrap .left-col,.page-list-wrap .content-wrap .toolbar-wrap .right-col{display:flex;gap:12px}.page-list-wrap .content-wrap .toolbar-wrap .left-col ::ng-deep .e-btn,.page-list-wrap .content-wrap .toolbar-wrap .right-col ::ng-deep .e-btn{height:28px}.page-list-wrap .content-wrap .grid-wrap{flex:1;height:0}.page-list-wrap .content-wrap .grid-wrap .employee-grid-container{height:100%}.page-list-wrap.is-not-inner .content-wrap{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.page-list-wrap .search-input{width:240px}.page-list-wrap .search-input ::ng-deep .e-input-group{border-radius:14px!important}.page-list-wrap .search-input ::ng-deep .e-input-group.e-input-focus,.page-list-wrap .search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.page-list-wrap .search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.page-list-wrap .search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.page-list-wrap .search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.page-list-wrap .search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"] }]
33
+ }], propDecorators: { gridContent: [{
34
+ type: ContentChild,
35
+ args: [CommonGridComponent, { static: true }]
36
+ }], pageTitle: [{
37
+ type: Input
38
+ }], customPageTitle: [{
39
+ type: Input
40
+ }], isInner: [{
41
+ type: Input
42
+ }] } });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9jb21tb24tbGlzdC9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L2NvbW1vbi1saXN0L2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7QUFPbEMsTUFBTSxPQUFPLG1CQUFtQjtJQUN1QixXQUFXLENBQUM7SUFDeEQsU0FBUyxDQUFDO0lBQ1YsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUN4QixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWpCLGNBQWMsQ0FBVztJQUVqQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNoQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBSUQsV0FBVyxDQUFDO0lBQ1osT0FBTztRQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUE7SUFDdkIsQ0FBQzt3R0F2QlUsbUJBQW1COzRGQUFuQixtQkFBbUIsMkxBQ2hCLG1CQUFtQiw4RENoQm5DLG10Q0FpQ0E7OzRGRGxCYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQUsyQixXQUFXO3NCQUEvRCxZQUFZO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDMUMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8vIOe7hOS7tuexu1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBDb250ZW50Q2hpbGQsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25HcmlkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tbW9uLWdyaWQvaW5kZXguY29tcG9uZW50JztcclxuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdycy1jb21tb24tbGlzdCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2luZGV4LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbmRleC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbW9uTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQENvbnRlbnRDaGlsZChDb21tb25HcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBncmlkQ29udGVudDtcclxuICBASW5wdXQoKSBwYWdlVGl0bGU7XHJcbiAgQElucHV0KCkgY3VzdG9tUGFnZVRpdGxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNJbm5lciA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlYm91bmNlZElucHV0OiBGdW5jdGlvbjtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRlYm91bmNlZElucHV0ID0gZGVib3VuY2UoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uU2VhY2goKVxyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc2VhcmNoVmFsdWU7XHJcbiAgb25TZWFjaCgpIHtcclxuICAgIHRoaXMuZ3JpZENvbnRlbnQuZ3JpZC5zZWFyY2godGhpcy5zZWFyY2hWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbklucHV0KCl7XHJcbiAgICB0aGlzLmRlYm91bmNlZElucHV0KClcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInBhZ2UtbGlzdC13cmFwXCIgW25nQ2xhc3NdPVwieyAnaXMtbm90LWlubmVyJzogIWlzSW5uZXIgfVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21QYWdlVGl0bGU7IGVsc2UgZGVmYXVsdFRpdGxlXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbdGl0bGVTbG90XVwiPjwvbmctY29udGVudD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRUaXRsZT5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWdlLXRpdGxlXCIgKm5nSWY9XCJwYWdlVGl0bGVcIj57eyBwYWdlVGl0bGUgfX08L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50LXdyYXBcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt0YWJTbG90XVwiPjwvbmctY29udGVudD5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b29sYmFyLXdyYXBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImxlZnQtY29sXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2xlZnRUb29sYmFyQnRuU2xvdF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmlnaHQtY29sXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0VG9vbGJhckJ0blNsb3RdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIj5cclxuICAgICAgICAgIDxlanMtdGV4dGJveFxyXG4gICAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZS1pbnB1dFwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxyXG4gICAgICAgICAgICAoaW5wdXQpPVwib25JbnB1dCgpXCJcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYWxsIGZpZWxkc1wiXHJcbiAgICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICA+PC9lanMtdGV4dGJveD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJncmlkLXdyYXBcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2dyaWRTbG90XVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19