@libs-ui/services-dynamic-component 0.2.355-9 → 0.2.356-1
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.
package/README.md
CHANGED
|
@@ -1,3 +1,210 @@
|
|
|
1
|
-
# dynamic-component
|
|
1
|
+
# @libs-ui/services-dynamic-component
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> Service để tạo và quản lý Angular components động tại runtime.
|
|
4
|
+
|
|
5
|
+
## 📦 Cài đặt
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @libs-ui/services-dynamic-component
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 🚀 Sử dụng
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { LibsUiDynamicComponentService } from '@libs-ui/services-dynamic-component';
|
|
15
|
+
|
|
16
|
+
@Component({...})
|
|
17
|
+
export class MyComponent {
|
|
18
|
+
private dynamicService = inject(LibsUiDynamicComponentService);
|
|
19
|
+
|
|
20
|
+
createComponent() {
|
|
21
|
+
const componentRef = this.dynamicService.resolveComponentFactory(MyDynamicComponent);
|
|
22
|
+
this.dynamicService.addToBody(componentRef);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 📚 API Reference
|
|
28
|
+
|
|
29
|
+
### Methods
|
|
30
|
+
|
|
31
|
+
| Method | Parameters | Returns | Description |
|
|
32
|
+
|--------|-----------|---------|-------------|
|
|
33
|
+
| `resolveComponentFactory` | `component: any` | `ComponentRef<any>` | Tạo ComponentRef từ component class |
|
|
34
|
+
| `addToBody` | `componentRef?: ComponentRef<any>, isAddParentDocument?: boolean, timerDelayUpdateStyleToParent?: number` | `string` | Thêm component vào document.body hoặc parent document |
|
|
35
|
+
| `addToElement` | `componentRef: any, elementAdd: any` | `void` | Thêm component vào element cụ thể |
|
|
36
|
+
| `addToElementLayoutContentDefault` | `componentRef: any, id?: string` | `void` | Thêm component vào element có id mặc định |
|
|
37
|
+
| `addToIdAttributeElement` | `componentRef: any, id: string` | `void` | Thêm component vào element có id cụ thể |
|
|
38
|
+
| `delete` | `componentRef: any, options?: { ignoreDestroyComponent?: boolean; timeoutDestroy?: number }` | `void` | Xóa component khỏi DOM và destroy |
|
|
39
|
+
| `remove` | `componentRef: any, _?: string, ignoreDestroyComponent?: boolean` | `void` | ⚠️ Deprecated - Dùng `delete()` thay thế |
|
|
40
|
+
|
|
41
|
+
### Properties
|
|
42
|
+
|
|
43
|
+
| Property | Type | Description |
|
|
44
|
+
|----------|------|-------------|
|
|
45
|
+
| `IdElementLayoutContentDefault` | `string` (setter) | Set ID mặc định cho element layout content |
|
|
46
|
+
|
|
47
|
+
## 🔍 Hidden Logic (Logic Ẩn)
|
|
48
|
+
|
|
49
|
+
### 1. Singleton Service & State Sharing
|
|
50
|
+
|
|
51
|
+
Service là singleton (`providedIn: 'root'`), nghĩa là:
|
|
52
|
+
- Tất cả instances trong app share cùng một state
|
|
53
|
+
- `elementLayoutContent` Map được cache và share giữa tất cả usages
|
|
54
|
+
- `elementBody` được cache một lần và reuse
|
|
55
|
+
|
|
56
|
+
**Ví dụ:**
|
|
57
|
+
```typescript
|
|
58
|
+
// Component A
|
|
59
|
+
this.dynamicService.addToIdAttributeElement(compRef, 'container-1');
|
|
60
|
+
|
|
61
|
+
// Component B - Cùng service instance
|
|
62
|
+
// elementLayoutContent Map đã có 'container-1' được cache
|
|
63
|
+
this.dynamicService.addToIdAttributeElement(compRef2, 'container-1');
|
|
64
|
+
// Không cần query DOM lại
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 2. Element Caching với Map
|
|
68
|
+
|
|
69
|
+
Service sử dụng `Map<string, HTMLElement>` để cache DOM elements:
|
|
70
|
+
- Lần đầu gọi `addToIdAttributeElement()` với id mới: Query DOM và cache
|
|
71
|
+
- Lần sau: Lấy từ cache, không query DOM lại
|
|
72
|
+
- **Lưu ý**: Nếu element bị xóa khỏi DOM, cache vẫn giữ reference cũ
|
|
73
|
+
|
|
74
|
+
**Ví dụ:**
|
|
75
|
+
```typescript
|
|
76
|
+
// Lần 1: Query DOM và cache
|
|
77
|
+
this.dynamicService.addToIdAttributeElement(compRef1, 'my-container');
|
|
78
|
+
// elementLayoutContent.set('my-container', document.getElementById('my-container'))
|
|
79
|
+
|
|
80
|
+
// Lần 2: Lấy từ cache (nhanh hơn)
|
|
81
|
+
this.dynamicService.addToIdAttributeElement(compRef2, 'my-container');
|
|
82
|
+
// elementLayoutContent.get('my-container') - không query DOM
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 3. Parent Document Handling (iframe scenarios)
|
|
86
|
+
|
|
87
|
+
Khi `isAddParentDocument = true`:
|
|
88
|
+
- Component được append vào `window.parent.document.body` (không phải current document)
|
|
89
|
+
- Styles từ current document được clone và append vào parent document
|
|
90
|
+
- WeakMap được dùng để track styles đã copy, tránh duplicate
|
|
91
|
+
|
|
92
|
+
**Ví dụ:**
|
|
93
|
+
```typescript
|
|
94
|
+
// Trong iframe
|
|
95
|
+
const compRef = this.dynamicService.resolveComponentFactory(MyComponent);
|
|
96
|
+
this.dynamicService.addToBody(compRef, true);
|
|
97
|
+
// Component xuất hiện trong parent window, không phải iframe
|
|
98
|
+
// Styles từ iframe được copy sang parent document
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 4. Style Copying Logic
|
|
102
|
+
|
|
103
|
+
Khi add component vào parent document:
|
|
104
|
+
- Tất cả `<style>` tags từ current document được clone
|
|
105
|
+
- Cloned styles được append vào parent document head
|
|
106
|
+
- WeakMap track ComponentRef → Array<Node> để cleanup sau
|
|
107
|
+
- Có debounce delay (mặc định 250ms) để tránh copy nhiều lần
|
|
108
|
+
|
|
109
|
+
**Ví dụ:**
|
|
110
|
+
```typescript
|
|
111
|
+
// Current document có 3 style tags
|
|
112
|
+
// Khi addToBody(compRef, true):
|
|
113
|
+
// - Clone 3 style tags
|
|
114
|
+
// - Append vào parent.document.head
|
|
115
|
+
// - Track trong mapStylesToParentDocument
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### 5. ComponentRef Lifecycle Management
|
|
119
|
+
|
|
120
|
+
Service quản lý lifecycle của ComponentRef:
|
|
121
|
+
- `attachView()`: Đăng ký view với ApplicationRef (change detection)
|
|
122
|
+
- `detachView()`: Hủy đăng ký view (ngừng change detection)
|
|
123
|
+
- `destroy()`: Destroy component hoàn toàn
|
|
124
|
+
|
|
125
|
+
**Ví dụ:**
|
|
126
|
+
```typescript
|
|
127
|
+
const compRef = this.dynamicService.resolveComponentFactory(MyComponent);
|
|
128
|
+
this.dynamicService.addToBody(compRef);
|
|
129
|
+
// attachView() được gọi tự động
|
|
130
|
+
|
|
131
|
+
// Sau đó
|
|
132
|
+
this.dynamicService.delete(compRef);
|
|
133
|
+
// detachView() được gọi, sau đó destroy()
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### 6. Delete Options - ignoreDestroyComponent & timeoutDestroy
|
|
137
|
+
|
|
138
|
+
`delete()` method có 2 options quan trọng:
|
|
139
|
+
|
|
140
|
+
**ignoreDestroyComponent = true:**
|
|
141
|
+
- Chỉ detach view, không destroy component
|
|
142
|
+
- Component vẫn tồn tại trong memory
|
|
143
|
+
- Dùng khi muốn reuse component sau
|
|
144
|
+
|
|
145
|
+
**timeoutDestroy:**
|
|
146
|
+
- Delay destroy component sau khi detach view
|
|
147
|
+
- Dùng khi cần animation hoặc cleanup async
|
|
148
|
+
|
|
149
|
+
**Ví dụ:**
|
|
150
|
+
```typescript
|
|
151
|
+
// Option 1: Không destroy (reuse sau)
|
|
152
|
+
this.dynamicService.delete(compRef, { ignoreDestroyComponent: true });
|
|
153
|
+
// Component vẫn tồn tại, có thể add lại
|
|
154
|
+
|
|
155
|
+
// Option 2: Delay destroy (animation)
|
|
156
|
+
this.dynamicService.delete(compRef, { timeoutDestroy: 300 });
|
|
157
|
+
// detachView() ngay, destroy() sau 300ms
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 7. Auto Cleanup trong ngOnDestroy
|
|
161
|
+
|
|
162
|
+
Service tự động cleanup khi bị destroy:
|
|
163
|
+
- Clear timeout nếu có
|
|
164
|
+
- Clear elementLayoutContent Map
|
|
165
|
+
- **Lưu ý**: Styles đã copy sang parent document KHÔNG được tự động remove
|
|
166
|
+
|
|
167
|
+
**Ví dụ:**
|
|
168
|
+
```typescript
|
|
169
|
+
// Service được destroy
|
|
170
|
+
ngOnDestroy() {
|
|
171
|
+
// Clear timeout
|
|
172
|
+
// Clear elementLayoutContent Map
|
|
173
|
+
// Nhưng styles trong parent document vẫn còn
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 8. WeakMap cho Style Tracking
|
|
178
|
+
|
|
179
|
+
Service dùng WeakMap để track styles:
|
|
180
|
+
- Key: ComponentRef (weak reference, không giữ component alive)
|
|
181
|
+
- Value: Array<Node> (cloned style tags)
|
|
182
|
+
- Khi ComponentRef bị GC, entry tự động bị xóa khỏi WeakMap
|
|
183
|
+
|
|
184
|
+
**Ví dụ:**
|
|
185
|
+
```typescript
|
|
186
|
+
const compRef = this.dynamicService.resolveComponentFactory(MyComponent);
|
|
187
|
+
this.dynamicService.addToBody(compRef, true);
|
|
188
|
+
// mapStylesToParentDocument.set(compRef, [style1, style2, style3])
|
|
189
|
+
|
|
190
|
+
// Sau khi delete
|
|
191
|
+
this.dynamicService.delete(compRef);
|
|
192
|
+
// removeStyleToParentDocument() xóa styles khỏi parent document
|
|
193
|
+
// WeakMap entry vẫn tồn tại cho đến khi compRef bị GC
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## ⚠️ Important Notes
|
|
197
|
+
|
|
198
|
+
- Service là singleton, state được share giữa tất cả usages
|
|
199
|
+
- Element caching có thể trở nên stale nếu element bị xóa khỏi DOM
|
|
200
|
+
- Styles copy sang parent document cần được cleanup thủ công nếu service bị destroy
|
|
201
|
+
- `remove()` method đã deprecated, dùng `delete()` thay thế
|
|
202
|
+
- ComponentRef cần được destroy để tránh memory leaks
|
|
203
|
+
|
|
204
|
+
## 📖 Ví dụ
|
|
205
|
+
|
|
206
|
+
Xem demo tại: [http://localhost:4500/services/dynamic-component](http://localhost:4500/services/dynamic-component)
|
|
207
|
+
|
|
208
|
+
## 📝 Version
|
|
209
|
+
|
|
210
|
+
`0.2.355-10`
|
|
@@ -138,4 +138,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
138
138
|
providedIn: 'root',
|
|
139
139
|
}]
|
|
140
140
|
}] });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQvc3JjL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQWdCLGVBQWUsRUFBbUIsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSXZDLE1BQU0sT0FBTyw2QkFBNkI7SUFDaEMsT0FBTyxDQUFVO0lBQ2pCLG9CQUFvQixHQUE2QixJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQzNELFdBQVcsQ0FBc0I7SUFDakMseUJBQXlCLEdBQTRDLElBQUksT0FBTyxFQUFFLENBQUM7SUFDbkYsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNoQyw2QkFBNkIsR0FBRyx3QkFBd0IsQ0FBQztJQUVqRSxJQUFXLDZCQUE2QixDQUFDLEVBQVU7UUFDakQsSUFBSSxDQUFDLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU0sdUJBQXVCLENBQUMsU0FBYztRQUMzQyxPQUFPLGVBQWUsQ0FBQyxTQUFTLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVNLFNBQVMsQ0FBQyxZQUFnQyxFQUFFLG1CQUE2QixFQUFFLDZCQUFzQztRQUN0SCxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFR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OlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIENvbXBvbmVudFJlZiwgY3JlYXRlQ29tcG9uZW50LCBFbWJlZGRlZFZpZXdSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlEeW5hbWljQ29tcG9uZW50U2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgdGltZU91dD86IG51bWJlcjtcbiAgcHJpdmF0ZSBlbGVtZW50TGF5b3V0Q29udGVudDogTWFwPHN0cmluZywgSFRNTEVsZW1lbnQ+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGVsZW1lbnRCb2R5ITogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwcml2YXRlIG1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQ6IFdlYWtNYXA8Q29tcG9uZW50UmVmPGFueT4sIEFycmF5PE5vZGU+PiA9IG5ldyBXZWFrTWFwKCk7XG4gIHByaXZhdGUgYXBwUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcHJpdmF0ZSBpZEVsZW1lbnRMYXlvdXRDb250ZW50RGVmYXVsdCA9ICdsaWJzLXVpLWxheW91dC1jb250ZW50JztcblxuICBwdWJsaWMgc2V0IElkRWxlbWVudExheW91dENvbnRlbnREZWZhdWx0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlkRWxlbWVudExheW91dENvbnRlbnREZWZhdWx0ID0gaWQ7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50OiBhbnkpOiBDb21wb25lbnRSZWY8YW55PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHsgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5hcHBSZWYuaW5qZWN0b3IgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9Cb2R5KGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+LCBpc0FkZFBhcmVudERvY3VtZW50PzogYm9vbGVhbiwgdGltZXJEZWxheVVwZGF0ZVN0eWxlVG9QYXJlbnQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFjb21wb25lbnRSZWYuaG9zdFZpZXcpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChpc0FkZFBhcmVudERvY3VtZW50KSB7XG4gICAgICB3aW5kb3cucGFyZW50LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0eWxlVG9QYXJlbnREb2N1bWVudChjb21wb25lbnRSZWYsIHRpbWVyRGVsYXlVcGRhdGVTdHlsZVRvUGFyZW50KTtcblxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZWxlbWVudEJvZHkpIHtcbiAgICAgIHRoaXMuZWxlbWVudEJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgIH1cbiAgICB0aGlzLmVsZW1lbnRCb2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIGFkZFRvRWxlbWVudChjb21wb25lbnRSZWY6IGFueSwgZWxlbWVudEFkZDogYW55KSB7XG4gICAgaWYgKCFjb21wb25lbnRSZWYgfHwgIWNvbXBvbmVudFJlZi5ob3N0VmlldyB8fCAhZWxlbWVudEFkZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgIHJldHVybiBlbGVtZW50QWRkLmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICB9XG5cbiAgcHVibGljIGFkZFRvRWxlbWVudExheW91dENvbnRlbnREZWZhdWx0KGNvbXBvbmVudFJlZjogYW55LCBpZDogc3RyaW5nID0gdGhpcy5pZEVsZW1lbnRMYXlvdXRDb250ZW50RGVmYXVsdCkge1xuICAgIHRoaXMuYWRkVG9JZEF0dHJpYnV0ZUVsZW1lbnQoY29tcG9uZW50UmVmLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9JZEF0dHJpYnV0ZUVsZW1lbnQoY29tcG9uZW50UmVmOiBhbnksIGlkOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudExheW91dENvbnRlbnQuaGFzKGlkKSkge1xuICAgICAgdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudC5zZXQoaWQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSBhcyBIVE1MRWxlbWVudCk7XG4gICAgfVxuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFjb21wb25lbnRSZWYuaG9zdFZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICByZXR1cm4gdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudC5nZXQoaWQpPy5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50UmVmXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqICBpZ25vcmVEZXN0cm95Q29tcG9uZW50OiBz4butIGR1bmcga2hpIGtow7RuZyBtdeG7kW4gZ+G7jWkgaMOgbSBjb21wb25lbnRSZWYuZGVzdHJveSgpXG4gICAqXG4gICAqICB0aW1lb3V0RGVzdHJveTogc+G7rSBk4bulbmcga2hpIG114buRbiBn4buNaSBow6BtIGNvbXBvbmVudFJlZi5kZXN0cm95KCkgdHLhu4UgaMahbiB0aGF5IHbDrCBuZ2F5IHNhdSBraGkgeMOzYSBlbGVtZW50IGto4buPaSBkb20oZGV0YWNoVmlldylcbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgcHVibGljIGRlbGV0ZShjb21wb25lbnRSZWY6IGFueSwgb3B0aW9ucz86IHsgaWdub3JlRGVzdHJveUNvbXBvbmVudD86IGJvb2xlYW47IHRpbWVvdXREZXN0cm95PzogbnVtYmVyIH0pIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVN0eWxlVG9QYXJlbnREb2N1bWVudChjb21wb25lbnRSZWYpO1xuICAgIGlmIChjb21wb25lbnRSZWYuaG9zdFZpZXcpIHtcbiAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICB9XG4gICAgaWYgKCFjb21wb25lbnRSZWYuZGVzdHJveSB8fCBvcHRpb25zPy5pZ25vcmVEZXN0cm95Q29tcG9uZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpc05pbChvcHRpb25zPy50aW1lb3V0RGVzdHJveSkpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIH0sIG9wdGlvbnM/LnRpbWVvdXREZXN0cm95KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBz4butIGThu6VuZyBow6BtIGBgYGRlbGV0ZSh0aGlzLmNvbXBvbmVudFJlZilgYGBcbiAgICovXG4gIHB1YmxpYyByZW1vdmUoY29tcG9uZW50UmVmOiBhbnksIF8/OiBzdHJpbmcsIGlnbm9yZURlc3Ryb3lDb21wb25lbnQ/OiBib29sZWFuKSB7XG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWxldGUoY29tcG9uZW50UmVmLCB7IGlnbm9yZURlc3Ryb3lDb21wb25lbnQgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlVG9QYXJlbnREb2N1bWVudChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+LCB0aW1lckRlbGF5VXBkYXRlU3R5bGVUb1BhcmVudD86IG51bWJlcikge1xuICAgIGlmICh0aGlzLnRpbWVPdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVPdXQpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50UGFyZW50ID0gd2luZG93LnBhcmVudC5kb2N1bWVudDtcblxuICAgICAgaWYgKGRvY3VtZW50UGFyZW50ICYmICF0aGlzLm1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQuaGFzKGNvbXBvbmVudFJlZikpIHtcbiAgICAgICAgY29uc3Qgc3R5bGVUYWdzID0gbmV3IEFycmF5PE5vZGU+KCk7XG5cbiAgICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJykpLmZvckVhY2goKHN0eWxlVGFnKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2xvbmVTdHlsZVRhZyA9IHN0eWxlVGFnLmNsb25lTm9kZSh0cnVlKTtcblxuICAgICAgICAgIHN0eWxlVGFncy5wdXNoKGNsb25lU3R5bGVUYWcpO1xuICAgICAgICAgIGRvY3VtZW50UGFyZW50Py5oZWFkLmFwcGVuZENoaWxkKGNsb25lU3R5bGVUYWcpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXBTdHlsZXNUb1BhcmVudERvY3VtZW50LnNldChjb21wb25lbnRSZWYsIHN0eWxlVGFncyk7XG4gICAgICB9XG4gICAgfSwgdGltZXJEZWxheVVwZGF0ZVN0eWxlVG9QYXJlbnQgfHwgMjUwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU3R5bGVUb1BhcmVudERvY3VtZW50KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4pIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdHlsZVRhZ3NQb3B1cCA9IHRoaXMubWFwU3R5bGVzVG9QYXJlbnREb2N1bWVudC5nZXQoY29tcG9uZW50UmVmKTtcbiAgICBjb25zdCBkb2N1bWVudFBhcmVudCA9IHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQ7XG5cbiAgICBpZiAoIXN0eWxlVGFnc1BvcHVwIHx8ICFzdHlsZVRhZ3NQb3B1cC5sZW5ndGggfHwgIWRvY3VtZW50UGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0eWxlVGFnc1BvcHVwLmZvckVhY2goKHN0eWxlVGFnKSA9PiB7XG4gICAgICBkb2N1bWVudFBhcmVudD8uaGVhZC5yZW1vdmVDaGlsZChzdHlsZVRhZyk7XG4gICAgfSk7XG4gICAgdGhpcy5tYXBTdHlsZXNUb1BhcmVudERvY3VtZW50LmRlbGV0ZShjb21wb25lbnRSZWYpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudGltZU91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZU91dCk7XG4gICAgICB0aGlzLnRpbWVPdXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudC5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1jb21wb25lbnQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQvc3JjL2R5bmFtaWMtY29tcG9uZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQWdCLGVBQWUsRUFBbUIsTUFBTSxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBSXZDLE1BQU0sT0FBTyw2QkFBNkI7SUFDaEMsT0FBTyxDQUFpQztJQUN4QyxvQkFBb0IsR0FBNkIsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUMzRCxXQUFXLENBQXNCO0lBQ2pDLHlCQUF5QixHQUE0QyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQ25GLE1BQU0sR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDaEMsNkJBQTZCLEdBQUcsd0JBQXdCLENBQUM7SUFFakUsSUFBVyw2QkFBNkIsQ0FBQyxFQUFVO1FBQ2pELElBQUksQ0FBQyw2QkFBNkIsR0FBRyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLHVCQUF1QixDQUFDLFNBQWM7UUFDM0MsT0FBTyxlQUFlLENBQUMsU0FBUyxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFTSxTQUFTLENBQUMsWUFBZ0MsRUFBRSxtQkFBNkIsRUFBRSw2QkFBc0M7UUFDdEgsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM1QyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFB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IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBDb21wb25lbnRSZWYsIGNyZWF0ZUNvbXBvbmVudCwgRW1iZWRkZWRWaWV3UmVmLCBpbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNOaWwgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpRHluYW1pY0NvbXBvbmVudFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHRpbWVPdXQ/OiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PjtcbiAgcHJpdmF0ZSBlbGVtZW50TGF5b3V0Q29udGVudDogTWFwPHN0cmluZywgSFRNTEVsZW1lbnQ+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGVsZW1lbnRCb2R5ITogSFRNTEVsZW1lbnQgfCBudWxsO1xuICBwcml2YXRlIG1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQ6IFdlYWtNYXA8Q29tcG9uZW50UmVmPGFueT4sIEFycmF5PE5vZGU+PiA9IG5ldyBXZWFrTWFwKCk7XG4gIHByaXZhdGUgYXBwUmVmID0gaW5qZWN0KEFwcGxpY2F0aW9uUmVmKTtcbiAgcHJpdmF0ZSBpZEVsZW1lbnRMYXlvdXRDb250ZW50RGVmYXVsdCA9ICdsaWJzLXVpLWxheW91dC1jb250ZW50JztcblxuICBwdWJsaWMgc2V0IElkRWxlbWVudExheW91dENvbnRlbnREZWZhdWx0KGlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmlkRWxlbWVudExheW91dENvbnRlbnREZWZhdWx0ID0gaWQ7XG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50OiBhbnkpOiBDb21wb25lbnRSZWY8YW55PiB7XG4gICAgcmV0dXJuIGNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHsgZW52aXJvbm1lbnRJbmplY3RvcjogdGhpcy5hcHBSZWYuaW5qZWN0b3IgfSk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9Cb2R5KGNvbXBvbmVudFJlZj86IENvbXBvbmVudFJlZjxhbnk+LCBpc0FkZFBhcmVudERvY3VtZW50PzogYm9vbGVhbiwgdGltZXJEZWxheVVwZGF0ZVN0eWxlVG9QYXJlbnQ/OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFjb21wb25lbnRSZWYuaG9zdFZpZXcpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmIChpc0FkZFBhcmVudERvY3VtZW50KSB7XG4gICAgICB3aW5kb3cucGFyZW50LmRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG4gICAgICB0aGlzLnVwZGF0ZVN0eWxlVG9QYXJlbnREb2N1bWVudChjb21wb25lbnRSZWYsIHRpbWVyRGVsYXlVcGRhdGVTdHlsZVRvUGFyZW50KTtcblxuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuZWxlbWVudEJvZHkpIHtcbiAgICAgIHRoaXMuZWxlbWVudEJvZHkgPSBkb2N1bWVudC5ib2R5O1xuICAgIH1cbiAgICB0aGlzLmVsZW1lbnRCb2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHVibGljIGFkZFRvRWxlbWVudChjb21wb25lbnRSZWY6IGFueSwgZWxlbWVudEFkZDogYW55KSB7XG4gICAgaWYgKCFjb21wb25lbnRSZWYgfHwgIWNvbXBvbmVudFJlZi5ob3N0VmlldyB8fCAhZWxlbWVudEFkZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29uc3QgZG9tRWxlbSA9IChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgIHJldHVybiBlbGVtZW50QWRkLmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuICB9XG5cbiAgcHVibGljIGFkZFRvRWxlbWVudExheW91dENvbnRlbnREZWZhdWx0KGNvbXBvbmVudFJlZjogYW55LCBpZDogc3RyaW5nID0gdGhpcy5pZEVsZW1lbnRMYXlvdXRDb250ZW50RGVmYXVsdCkge1xuICAgIHRoaXMuYWRkVG9JZEF0dHJpYnV0ZUVsZW1lbnQoY29tcG9uZW50UmVmLCBpZCk7XG4gIH1cblxuICBwdWJsaWMgYWRkVG9JZEF0dHJpYnV0ZUVsZW1lbnQoY29tcG9uZW50UmVmOiBhbnksIGlkOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudExheW91dENvbnRlbnQuaGFzKGlkKSkge1xuICAgICAgdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudC5zZXQoaWQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKSBhcyBIVE1MRWxlbWVudCk7XG4gICAgfVxuICAgIGlmICghY29tcG9uZW50UmVmIHx8ICFjb21wb25lbnRSZWYuaG9zdFZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICByZXR1cm4gdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudC5nZXQoaWQpPy5hcHBlbmRDaGlsZChkb21FbGVtKTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gY29tcG9uZW50UmVmXG4gICAqIEBwYXJhbSBvcHRpb25zXG4gICAqICBpZ25vcmVEZXN0cm95Q29tcG9uZW50OiBz4butIGR1bmcga2hpIGtow7RuZyBtdeG7kW4gZ+G7jWkgaMOgbSBjb21wb25lbnRSZWYuZGVzdHJveSgpXG4gICAqXG4gICAqICB0aW1lb3V0RGVzdHJveTogc+G7rSBk4bulbmcga2hpIG114buRbiBn4buNaSBow6BtIGNvbXBvbmVudFJlZi5kZXN0cm95KCkgdHLhu4UgaMahbiB0aGF5IHbDrCBuZ2F5IHNhdSBraGkgeMOzYSBlbGVtZW50IGto4buPaSBkb20oZGV0YWNoVmlldylcbiAgICogQHJldHVybnMgdm9pZFxuICAgKi9cbiAgcHVibGljIGRlbGV0ZShjb21wb25lbnRSZWY6IGFueSwgb3B0aW9ucz86IHsgaWdub3JlRGVzdHJveUNvbXBvbmVudD86IGJvb2xlYW47IHRpbWVvdXREZXN0cm95PzogbnVtYmVyIH0pIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnJlbW92ZVN0eWxlVG9QYXJlbnREb2N1bWVudChjb21wb25lbnRSZWYpO1xuICAgIGlmIChjb21wb25lbnRSZWYuaG9zdFZpZXcpIHtcbiAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICB9XG4gICAgaWYgKCFjb21wb25lbnRSZWYuZGVzdHJveSB8fCBvcHRpb25zPy5pZ25vcmVEZXN0cm95Q29tcG9uZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChpc05pbChvcHRpb25zPy50aW1lb3V0RGVzdHJveSkpIHtcbiAgICAgIGNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgIH0sIG9wdGlvbnM/LnRpbWVvdXREZXN0cm95KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBz4butIGThu6VuZyBow6BtIGBgYGRlbGV0ZSh0aGlzLmNvbXBvbmVudFJlZilgYGBcbiAgICovXG4gIHB1YmxpYyByZW1vdmUoY29tcG9uZW50UmVmOiBhbnksIF8/OiBzdHJpbmcsIGlnbm9yZURlc3Ryb3lDb21wb25lbnQ/OiBib29sZWFuKSB7XG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWxldGUoY29tcG9uZW50UmVmLCB7IGlnbm9yZURlc3Ryb3lDb21wb25lbnQgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVN0eWxlVG9QYXJlbnREb2N1bWVudChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+LCB0aW1lckRlbGF5VXBkYXRlU3R5bGVUb1BhcmVudD86IG51bWJlcikge1xuICAgIGlmICh0aGlzLnRpbWVPdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVPdXQpO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRvY3VtZW50UGFyZW50ID0gd2luZG93LnBhcmVudC5kb2N1bWVudDtcblxuICAgICAgaWYgKGRvY3VtZW50UGFyZW50ICYmICF0aGlzLm1hcFN0eWxlc1RvUGFyZW50RG9jdW1lbnQuaGFzKGNvbXBvbmVudFJlZikpIHtcbiAgICAgICAgY29uc3Qgc3R5bGVUYWdzID0gbmV3IEFycmF5PE5vZGU+KCk7XG5cbiAgICAgICAgQXJyYXkuZnJvbShkb2N1bWVudC5oZWFkLnF1ZXJ5U2VsZWN0b3JBbGwoJ3N0eWxlJykpLmZvckVhY2goKHN0eWxlVGFnKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2xvbmVTdHlsZVRhZyA9IHN0eWxlVGFnLmNsb25lTm9kZSh0cnVlKTtcblxuICAgICAgICAgIHN0eWxlVGFncy5wdXNoKGNsb25lU3R5bGVUYWcpO1xuICAgICAgICAgIGRvY3VtZW50UGFyZW50Py5oZWFkLmFwcGVuZENoaWxkKGNsb25lU3R5bGVUYWcpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5tYXBTdHlsZXNUb1BhcmVudERvY3VtZW50LnNldChjb21wb25lbnRSZWYsIHN0eWxlVGFncyk7XG4gICAgICB9XG4gICAgfSwgdGltZXJEZWxheVVwZGF0ZVN0eWxlVG9QYXJlbnQgfHwgMjUwKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU3R5bGVUb1BhcmVudERvY3VtZW50KGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPGFueT4pIHtcbiAgICBpZiAoIWNvbXBvbmVudFJlZikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBzdHlsZVRhZ3NQb3B1cCA9IHRoaXMubWFwU3R5bGVzVG9QYXJlbnREb2N1bWVudC5nZXQoY29tcG9uZW50UmVmKTtcbiAgICBjb25zdCBkb2N1bWVudFBhcmVudCA9IHdpbmRvdy5wYXJlbnQuZG9jdW1lbnQ7XG5cbiAgICBpZiAoIXN0eWxlVGFnc1BvcHVwIHx8ICFzdHlsZVRhZ3NQb3B1cC5sZW5ndGggfHwgIWRvY3VtZW50UGFyZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHN0eWxlVGFnc1BvcHVwLmZvckVhY2goKHN0eWxlVGFnKSA9PiB7XG4gICAgICBkb2N1bWVudFBhcmVudD8uaGVhZC5yZW1vdmVDaGlsZChzdHlsZVRhZyk7XG4gICAgfSk7XG4gICAgdGhpcy5tYXBTdHlsZXNUb1BhcmVudERvY3VtZW50LmRlbGV0ZShjb21wb25lbnRSZWYpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMudGltZU91dCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZU91dCk7XG4gICAgICB0aGlzLnRpbWVPdXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdGhpcy5lbGVtZW50TGF5b3V0Q29udGVudC5jbGVhcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-services-dynamic-component.mjs","sources":["../../../../../libs-ui/services/dynamic-component/src/dynamic-component.service.ts","../../../../../libs-ui/services/dynamic-component/src/set-inputs.ts","../../../../../libs-ui/services/dynamic-component/src/libs-ui-services-dynamic-component.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ApplicationRef, ComponentRef, createComponent, EmbeddedViewRef, inject, Injectable, OnDestroy } from '@angular/core';\nimport { isNil } from '@libs-ui/utils';\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiDynamicComponentService implements OnDestroy {\n private timeOut?: number;\n private elementLayoutContent: Map<string, HTMLElement> = new Map();\n private elementBody!: HTMLElement | null;\n private mapStylesToParentDocument: WeakMap<ComponentRef<any>, Array<Node>> = new WeakMap();\n private appRef = inject(ApplicationRef);\n private idElementLayoutContentDefault = 'libs-ui-layout-content';\n\n public set IdElementLayoutContentDefault(id: string) {\n this.idElementLayoutContentDefault = id;\n }\n\n public resolveComponentFactory(component: any): ComponentRef<any> {\n return createComponent(component, { environmentInjector: this.appRef.injector });\n }\n\n public addToBody(componentRef?: ComponentRef<any>, isAddParentDocument?: boolean, timerDelayUpdateStyleToParent?: number): string {\n if (!componentRef || !componentRef.hostView) {\n return '';\n }\n\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n if (isAddParentDocument) {\n window.parent.document.body.appendChild(domElem);\n this.updateStyleToParentDocument(componentRef, timerDelayUpdateStyleToParent);\n\n return '';\n }\n if (!this.elementBody) {\n this.elementBody = document.body;\n }\n this.elementBody.appendChild(domElem);\n\n return '';\n }\n\n public addToElement(componentRef: any, elementAdd: any) {\n if (!componentRef || !componentRef.hostView || !elementAdd) {\n return;\n }\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n return elementAdd.appendChild(domElem);\n }\n\n public addToElementLayoutContentDefault(componentRef: any, id: string = this.idElementLayoutContentDefault) {\n this.addToIdAttributeElement(componentRef, id);\n }\n\n public addToIdAttributeElement(componentRef: any, id: string) {\n if (!this.elementLayoutContent.has(id)) {\n this.elementLayoutContent.set(id, document.getElementById(id) as HTMLElement);\n }\n if (!componentRef || !componentRef.hostView) {\n return;\n }\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n return this.elementLayoutContent.get(id)?.appendChild(domElem);\n }\n\n /**\n *\n * @param componentRef\n * @param options\n * ignoreDestroyComponent: sử dung khi không muốn gọi hàm componentRef.destroy()\n *\n * timeoutDestroy: sử dụng khi muốn gọi hàm componentRef.destroy() trễ hơn thay vì ngay sau khi xóa element khỏi dom(detachView)\n * @returns void\n */\n public delete(componentRef: any, options?: { ignoreDestroyComponent?: boolean; timeoutDestroy?: number }) {\n if (!componentRef) {\n return;\n }\n this.removeStyleToParentDocument(componentRef);\n if (componentRef.hostView) {\n this.appRef.detachView(componentRef.hostView);\n }\n if (!componentRef.destroy || options?.ignoreDestroyComponent) {\n return;\n }\n if (isNil(options?.timeoutDestroy)) {\n componentRef.destroy();\n\n return;\n }\n setTimeout(() => {\n componentRef.destroy();\n }, options?.timeoutDestroy);\n }\n\n /**\n * @deprecated sử dụng hàm ```delete(this.componentRef)```\n */\n public remove(componentRef: any, _?: string, ignoreDestroyComponent?: boolean) {\n if (!componentRef) {\n return;\n }\n this.delete(componentRef, { ignoreDestroyComponent });\n }\n\n private updateStyleToParentDocument(componentRef: ComponentRef<any>, timerDelayUpdateStyleToParent?: number) {\n if (this.timeOut) {\n clearTimeout(this.timeOut);\n }\n this.timeOut = setTimeout(() => {\n const documentParent = window.parent.document;\n\n if (documentParent && !this.mapStylesToParentDocument.has(componentRef)) {\n const styleTags = new Array<Node>();\n\n Array.from(document.head.querySelectorAll('style')).forEach((styleTag) => {\n const cloneStyleTag = styleTag.cloneNode(true);\n\n styleTags.push(cloneStyleTag);\n documentParent?.head.appendChild(cloneStyleTag);\n });\n this.mapStylesToParentDocument.set(componentRef, styleTags);\n }\n }, timerDelayUpdateStyleToParent || 250);\n }\n\n private removeStyleToParentDocument(componentRef: ComponentRef<any>) {\n if (!componentRef) {\n return;\n }\n const styleTagsPopup = this.mapStylesToParentDocument.get(componentRef);\n const documentParent = window.parent.document;\n\n if (!styleTagsPopup || !styleTagsPopup.length || !documentParent) {\n return;\n }\n styleTagsPopup.forEach((styleTag) => {\n documentParent?.head.removeChild(styleTag);\n });\n this.mapStylesToParentDocument.delete(componentRef);\n }\n\n ngOnDestroy() {\n if (this.timeOut) {\n clearTimeout(this.timeOut);\n this.timeOut = undefined;\n }\n\n this.elementLayoutContent.clear();\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { ExtractInputs } from '@libs-ui/interfaces-types';\n\nexport const setInputs = <T, R extends boolean = true>(componentRef: ComponentRef<T>, inputs: ExtractInputs<T, R>, required?: R): void => {\n Object.entries(inputs).forEach(([key, value]) => componentRef.setInput(key, value));\n};\n\nexport const setInput = <T>(componentRef: ComponentRef<T>, input: keyof ExtractInputs<T>, value: ExtractInputs<T>[keyof ExtractInputs<T>]): void => {\n componentRef.setInput(input as string, value);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libs-ui-services-dynamic-component.mjs","sources":["../../../../../libs-ui/services/dynamic-component/src/dynamic-component.service.ts","../../../../../libs-ui/services/dynamic-component/src/set-inputs.ts","../../../../../libs-ui/services/dynamic-component/src/libs-ui-services-dynamic-component.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ApplicationRef, ComponentRef, createComponent, EmbeddedViewRef, inject, Injectable, OnDestroy } from '@angular/core';\nimport { isNil } from '@libs-ui/utils';\n@Injectable({\n providedIn: 'root',\n})\nexport class LibsUiDynamicComponentService implements OnDestroy {\n private timeOut?: ReturnType<typeof setTimeout>;\n private elementLayoutContent: Map<string, HTMLElement> = new Map();\n private elementBody!: HTMLElement | null;\n private mapStylesToParentDocument: WeakMap<ComponentRef<any>, Array<Node>> = new WeakMap();\n private appRef = inject(ApplicationRef);\n private idElementLayoutContentDefault = 'libs-ui-layout-content';\n\n public set IdElementLayoutContentDefault(id: string) {\n this.idElementLayoutContentDefault = id;\n }\n\n public resolveComponentFactory(component: any): ComponentRef<any> {\n return createComponent(component, { environmentInjector: this.appRef.injector });\n }\n\n public addToBody(componentRef?: ComponentRef<any>, isAddParentDocument?: boolean, timerDelayUpdateStyleToParent?: number): string {\n if (!componentRef || !componentRef.hostView) {\n return '';\n }\n\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n if (isAddParentDocument) {\n window.parent.document.body.appendChild(domElem);\n this.updateStyleToParentDocument(componentRef, timerDelayUpdateStyleToParent);\n\n return '';\n }\n if (!this.elementBody) {\n this.elementBody = document.body;\n }\n this.elementBody.appendChild(domElem);\n\n return '';\n }\n\n public addToElement(componentRef: any, elementAdd: any) {\n if (!componentRef || !componentRef.hostView || !elementAdd) {\n return;\n }\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n return elementAdd.appendChild(domElem);\n }\n\n public addToElementLayoutContentDefault(componentRef: any, id: string = this.idElementLayoutContentDefault) {\n this.addToIdAttributeElement(componentRef, id);\n }\n\n public addToIdAttributeElement(componentRef: any, id: string) {\n if (!this.elementLayoutContent.has(id)) {\n this.elementLayoutContent.set(id, document.getElementById(id) as HTMLElement);\n }\n if (!componentRef || !componentRef.hostView) {\n return;\n }\n this.appRef.attachView(componentRef.hostView);\n const domElem = (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n\n return this.elementLayoutContent.get(id)?.appendChild(domElem);\n }\n\n /**\n *\n * @param componentRef\n * @param options\n * ignoreDestroyComponent: sử dung khi không muốn gọi hàm componentRef.destroy()\n *\n * timeoutDestroy: sử dụng khi muốn gọi hàm componentRef.destroy() trễ hơn thay vì ngay sau khi xóa element khỏi dom(detachView)\n * @returns void\n */\n public delete(componentRef: any, options?: { ignoreDestroyComponent?: boolean; timeoutDestroy?: number }) {\n if (!componentRef) {\n return;\n }\n this.removeStyleToParentDocument(componentRef);\n if (componentRef.hostView) {\n this.appRef.detachView(componentRef.hostView);\n }\n if (!componentRef.destroy || options?.ignoreDestroyComponent) {\n return;\n }\n if (isNil(options?.timeoutDestroy)) {\n componentRef.destroy();\n\n return;\n }\n setTimeout(() => {\n componentRef.destroy();\n }, options?.timeoutDestroy);\n }\n\n /**\n * @deprecated sử dụng hàm ```delete(this.componentRef)```\n */\n public remove(componentRef: any, _?: string, ignoreDestroyComponent?: boolean) {\n if (!componentRef) {\n return;\n }\n this.delete(componentRef, { ignoreDestroyComponent });\n }\n\n private updateStyleToParentDocument(componentRef: ComponentRef<any>, timerDelayUpdateStyleToParent?: number) {\n if (this.timeOut) {\n clearTimeout(this.timeOut);\n }\n this.timeOut = setTimeout(() => {\n const documentParent = window.parent.document;\n\n if (documentParent && !this.mapStylesToParentDocument.has(componentRef)) {\n const styleTags = new Array<Node>();\n\n Array.from(document.head.querySelectorAll('style')).forEach((styleTag) => {\n const cloneStyleTag = styleTag.cloneNode(true);\n\n styleTags.push(cloneStyleTag);\n documentParent?.head.appendChild(cloneStyleTag);\n });\n this.mapStylesToParentDocument.set(componentRef, styleTags);\n }\n }, timerDelayUpdateStyleToParent || 250);\n }\n\n private removeStyleToParentDocument(componentRef: ComponentRef<any>) {\n if (!componentRef) {\n return;\n }\n const styleTagsPopup = this.mapStylesToParentDocument.get(componentRef);\n const documentParent = window.parent.document;\n\n if (!styleTagsPopup || !styleTagsPopup.length || !documentParent) {\n return;\n }\n styleTagsPopup.forEach((styleTag) => {\n documentParent?.head.removeChild(styleTag);\n });\n this.mapStylesToParentDocument.delete(componentRef);\n }\n\n ngOnDestroy() {\n if (this.timeOut) {\n clearTimeout(this.timeOut);\n this.timeOut = undefined;\n }\n\n this.elementLayoutContent.clear();\n }\n}\n","import { ComponentRef } from '@angular/core';\nimport { ExtractInputs } from '@libs-ui/interfaces-types';\n\nexport const setInputs = <T, R extends boolean = true>(componentRef: ComponentRef<T>, inputs: ExtractInputs<T, R>, required?: R): void => {\n Object.entries(inputs).forEach(([key, value]) => componentRef.setInput(key, value));\n};\n\nexport const setInput = <T>(componentRef: ComponentRef<T>, input: keyof ExtractInputs<T>, value: ExtractInputs<T>[keyof ExtractInputs<T>]): void => {\n componentRef.setInput(input as string, value);\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/services-dynamic-component",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.356-1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": ">=18.0.0",
|
|
6
|
-
"@libs-ui/utils": "0.2.
|
|
6
|
+
"@libs-ui/utils": "0.2.356-1"
|
|
7
7
|
},
|
|
8
8
|
"sideEffects": false,
|
|
9
9
|
"module": "fesm2022/libs-ui-services-dynamic-component.mjs",
|