@ng-atomic/common 19.21.7 → 19.24.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/directives/active-control/index.d.ts +52 -0
- package/directives/active-control/index.d.ts.map +1 -0
- package/fesm2022/ng-atomic-common-directives-active-control.mjs +287 -0
- package/fesm2022/ng-atomic-common-directives-active-control.mjs.map +1 -0
- package/fesm2022/ng-atomic-common-services-auth.mjs +21 -1
- package/fesm2022/ng-atomic-common-services-auth.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-editing.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-services-router.mjs.map +1 -1
- package/fesm2022/ng-atomic-common-stores-selection.mjs.map +1 -1
- package/fesm2022/ng-atomic-common.mjs +146 -39
- package/fesm2022/ng-atomic-common.mjs.map +1 -1
- package/index.d.ts +35 -17
- package/index.d.ts.map +1 -1
- package/interceptors/authorization/index.d.ts.map +1 -1
- package/interceptors/token/index.d.ts.map +1 -1
- package/models/index.d.ts.map +1 -1
- package/package.json +43 -39
- package/pipes/data-accessor/index.d.ts.map +1 -1
- package/pipes/error/index.d.ts.map +1 -1
- package/pipes/pagination/index.d.ts.map +1 -1
- package/pipes/select-id/index.d.ts.map +1 -1
- package/pipes/signal/index.d.ts.map +1 -1
- package/pipes/smart-field/index.d.ts.map +1 -1
- package/pipes/style/index.d.ts.map +1 -1
- package/services/auth/index.d.ts +6 -7
- package/services/auth/index.d.ts.map +1 -1
- package/services/breakpoint/index.d.ts.map +1 -1
- package/services/editing/index.d.ts +2 -2
- package/services/editing/index.d.ts.map +1 -1
- package/services/form/columns/index.d.ts.map +1 -1
- package/services/form/index.d.ts.map +1 -1
- package/services/form/pagination/index.d.ts.map +1 -1
- package/services/form/sort/index.d.ts.map +1 -1
- package/services/initializer/index.d.ts.map +1 -1
- package/services/language/index.d.ts.map +1 -1
- package/services/loading/index.d.ts.map +1 -1
- package/services/query-resolver/index.d.ts.map +1 -1
- package/services/router/index.d.ts +3 -4
- package/services/router/index.d.ts.map +1 -1
- package/services/side-nav-mode/index.d.ts.map +1 -1
- package/services/spreadsheet/index.d.ts.map +1 -1
- package/services/ui/index.d.ts.map +1 -1
- package/stores/entities/index.d.ts.map +1 -1
- package/stores/entity/index.d.ts.map +1 -1
- package/stores/pagination/index.d.ts.map +1 -1
- package/stores/query/index.d.ts.map +1 -1
- package/stores/selection/index.d.ts +7 -7
- package/stores/selection/index.d.ts.map +1 -1
- package/stores/sort/index.d.ts.map +1 -1
- package/utils/index.d.ts.map +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { OnDestroy } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* アクティブ状態を管理するディレクティブ
|
|
6
|
+
*
|
|
7
|
+
* クリックでアクティブ化、外部クリックで非アクティブ化し、
|
|
8
|
+
* スクロール位置の固定やイベント伝播の制御を行います。
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```html
|
|
12
|
+
* <!-- 単一セレクタ -->
|
|
13
|
+
* <div appActiveControl
|
|
14
|
+
* [scrollSelector]="'.xterm-viewport'"
|
|
15
|
+
* (activeChange)="onActiveChange($event)">
|
|
16
|
+
* <!-- content -->
|
|
17
|
+
* </div>
|
|
18
|
+
*
|
|
19
|
+
* <!-- 複数セレクタ -->
|
|
20
|
+
* <div appActiveControl
|
|
21
|
+
* [scrollSelectors]="['.xterm-viewport', '.qtp-content']"
|
|
22
|
+
* (activeChange)="onActiveChange($event)">
|
|
23
|
+
* <!-- content -->
|
|
24
|
+
* </div>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
declare class ActiveControlDirective implements OnDestroy {
|
|
28
|
+
private readonly el;
|
|
29
|
+
readonly scrollSelector: _angular_core.InputSignal<string>;
|
|
30
|
+
readonly scrollSelectors: _angular_core.InputSignal<string[]>;
|
|
31
|
+
/** mousedownでstopPropagationを呼ばない(React Flowなどのドラッグと共存するため) */
|
|
32
|
+
readonly disableStopPropagation: _angular_core.InputSignal<boolean>;
|
|
33
|
+
/** スクロール位置のロックを無効化する(常にスクロール可能にする) */
|
|
34
|
+
readonly disableScrollLock: _angular_core.InputSignal<boolean>;
|
|
35
|
+
/** nodragクラスを付与しない(React Flowのノードでドラッグを有効化するため) */
|
|
36
|
+
readonly disableNodrag: _angular_core.InputSignal<boolean>;
|
|
37
|
+
readonly activeChange: _angular_core.OutputEmitterRef<boolean>;
|
|
38
|
+
readonly isActive: _angular_core.WritableSignal<boolean>;
|
|
39
|
+
private eventCleanupFunctions;
|
|
40
|
+
private scrollCleanupFunctions;
|
|
41
|
+
private eventHandlersInitialized;
|
|
42
|
+
constructor();
|
|
43
|
+
ngOnDestroy(): void;
|
|
44
|
+
private initializeEventHandlers;
|
|
45
|
+
private setupScrollControls;
|
|
46
|
+
private getScrollSelectors;
|
|
47
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActiveControlDirective, never>;
|
|
48
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ActiveControlDirective, "[appActiveControl]", never, { "scrollSelector": { "alias": "scrollSelector"; "required": false; "isSignal": true; }; "scrollSelectors": { "alias": "scrollSelectors"; "required": false; "isSignal": true; }; "disableStopPropagation": { "alias": "disableStopPropagation"; "required": false; "isSignal": true; }; "disableScrollLock": { "alias": "disableScrollLock"; "required": false; "isSignal": true; }; "disableNodrag": { "alias": "disableNodrag"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; }, never, never, true, never>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export { ActiveControlDirective };
|
|
52
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../../../../../packages/@ng-atomic/common/src/lib/directives/active-control/active-control.directive.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAGA;;;;;;;;;;;;;;;;;;;;;;AAsBG;AACH,cAAA,sBAAA,YAAA,SAAA;AAUE;6BACuB,aAAA,CAAA,WAAA;8BACC,aAAA,CAAA,WAAA;;qCAEO,aAAA,CAAA,WAAA;;gCAEL,aAAA,CAAA,WAAA;;4BAEJ,aAAA,CAAA,WAAA;2BACD,aAAA,CAAA,gBAAA;uBACJ,aAAA,CAAA,cAAA;;;;;AAsBjB;AAKA;AAYA;AAiBA;;;AAQD;;;;"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, input, output, signal, effect, Directive } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class ActiveControlEventHandlers {
|
|
5
|
+
constructor(hostElement, isActive, onActiveChange, options = {}) {
|
|
6
|
+
this.hostElement = hostElement;
|
|
7
|
+
this.isActive = isActive;
|
|
8
|
+
this.onActiveChange = onActiveChange;
|
|
9
|
+
this.options = options;
|
|
10
|
+
this.cleanupFunctions = [];
|
|
11
|
+
}
|
|
12
|
+
setupAll() {
|
|
13
|
+
this.setupClickHandlers();
|
|
14
|
+
this.setupPreventionHandlers();
|
|
15
|
+
return this.cleanupFunctions;
|
|
16
|
+
}
|
|
17
|
+
setupClickHandlers() {
|
|
18
|
+
// ホスト要素クリック
|
|
19
|
+
const mousedownHandler = (e) => {
|
|
20
|
+
this.toggleActive();
|
|
21
|
+
// React Flowなどのドラッグと共存するため、オプションでstopPropagationを無効化
|
|
22
|
+
if (!this.options.disableStopPropagation) {
|
|
23
|
+
e.stopPropagation();
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
this.addEventListener(this.hostElement, 'mousedown', mousedownHandler);
|
|
27
|
+
// 外部クリック
|
|
28
|
+
const documentClickListener = (e) => {
|
|
29
|
+
if (!this.hostElement.contains(e.target) && this.isActive()) {
|
|
30
|
+
this.setActive(false);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
document.addEventListener('mousedown', documentClickListener, { capture: true });
|
|
34
|
+
this.cleanupFunctions.push(() => document.removeEventListener('mousedown', documentClickListener, { capture: true }));
|
|
35
|
+
}
|
|
36
|
+
setupPreventionHandlers() {
|
|
37
|
+
// ホイールイベント(スクロール対象要素以外でのみブロック)
|
|
38
|
+
// ただし、ctrlKey + wheel(トラックパッドのピンチズーム)は常にブロック
|
|
39
|
+
// 非アクティブ時はScrollControlがスクロール位置をリセットするため、ここでは処理しない
|
|
40
|
+
this.addEventListener(this.hostElement, 'wheel', (e) => {
|
|
41
|
+
if (this.isActive()) {
|
|
42
|
+
// ctrlKey + wheel = トラックパッドのピンチズーム → 常にブロック
|
|
43
|
+
if (e.ctrlKey) {
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
e.stopPropagation();
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// 通常のホイールスクロール: スクロール対象要素からのイベントは許可
|
|
49
|
+
const target = e.target;
|
|
50
|
+
const isScrollableElement = this.options.scrollSelectors?.some(selector => target.closest(selector) !== null);
|
|
51
|
+
if (!isScrollableElement) {
|
|
52
|
+
e.preventDefault();
|
|
53
|
+
e.stopPropagation();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}, { passive: false });
|
|
57
|
+
// タッチイベント(ホスト要素レベル)
|
|
58
|
+
const touchHandler = (e) => {
|
|
59
|
+
if (!this.isActive())
|
|
60
|
+
return;
|
|
61
|
+
// スクロール対象要素からのイベントは許可
|
|
62
|
+
const target = e.target;
|
|
63
|
+
const isScrollableElement = this.options.scrollSelectors?.some(selector => target.closest(selector) !== null);
|
|
64
|
+
if (!isScrollableElement) {
|
|
65
|
+
if (e.touches.length > 1) {
|
|
66
|
+
// ピンチズームなどマルチタッチ操作をブロック
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
e.stopPropagation();
|
|
69
|
+
}
|
|
70
|
+
// シングルタッチはデフォルト動作を許可(スクロールなど)
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
this.addEventListener(this.hostElement, 'touchstart', touchHandler, { passive: false });
|
|
74
|
+
this.addEventListener(this.hostElement, 'touchmove', touchHandler, { passive: false });
|
|
75
|
+
// ジェスチャーイベント(ホスト要素レベル)
|
|
76
|
+
const gestureHandler = (e) => {
|
|
77
|
+
if (this.isActive()) {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
e.stopPropagation();
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
['gesturestart', 'gesturechange', 'gestureend'].forEach(eventName => {
|
|
83
|
+
this.addEventListener(this.hostElement, eventName, gestureHandler, { passive: false });
|
|
84
|
+
});
|
|
85
|
+
// Document-level capture phaseハンドラ
|
|
86
|
+
// ブラウザのピンチズームがデフォルト動作を行う前にキャッチする
|
|
87
|
+
this.setupDocumentLevelPinchZoomPrevention();
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Document-levelでcapture phaseを使ってピンチズームを防止
|
|
91
|
+
* ホスト要素内で発生したマルチタッチ/ジェスチャーイベントのみをブロック
|
|
92
|
+
*/
|
|
93
|
+
setupDocumentLevelPinchZoomPrevention() {
|
|
94
|
+
// タッチイベント(capture phase)
|
|
95
|
+
const documentTouchHandler = (e) => {
|
|
96
|
+
if (!this.isActive())
|
|
97
|
+
return;
|
|
98
|
+
if (!this.hostElement.contains(e.target))
|
|
99
|
+
return;
|
|
100
|
+
if (e.touches.length > 1) {
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
document.addEventListener('touchstart', documentTouchHandler, { capture: true, passive: false });
|
|
105
|
+
document.addEventListener('touchmove', documentTouchHandler, { capture: true, passive: false });
|
|
106
|
+
this.cleanupFunctions.push(() => {
|
|
107
|
+
document.removeEventListener('touchstart', documentTouchHandler, { capture: true });
|
|
108
|
+
document.removeEventListener('touchmove', documentTouchHandler, { capture: true });
|
|
109
|
+
});
|
|
110
|
+
// Safari gestureイベント(capture phase)
|
|
111
|
+
const documentGestureHandler = (e) => {
|
|
112
|
+
if (!this.isActive())
|
|
113
|
+
return;
|
|
114
|
+
if (!this.hostElement.contains(e.target))
|
|
115
|
+
return;
|
|
116
|
+
e.preventDefault();
|
|
117
|
+
};
|
|
118
|
+
['gesturestart', 'gesturechange', 'gestureend'].forEach(eventName => {
|
|
119
|
+
document.addEventListener(eventName, documentGestureHandler, { capture: true, passive: false });
|
|
120
|
+
this.cleanupFunctions.push(() => document.removeEventListener(eventName, documentGestureHandler, { capture: true }));
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
addEventListener(element, event, handler, options) {
|
|
124
|
+
element.addEventListener(event, handler, options);
|
|
125
|
+
this.cleanupFunctions.push(() => element.removeEventListener(event, handler, options));
|
|
126
|
+
}
|
|
127
|
+
toggleActive() {
|
|
128
|
+
this.setActive(!this.isActive());
|
|
129
|
+
}
|
|
130
|
+
setActive(active) {
|
|
131
|
+
this.isActive.set(active);
|
|
132
|
+
this.onActiveChange(active);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
class ScrollControl {
|
|
137
|
+
constructor(scrollElement, isActive, options = {}) {
|
|
138
|
+
this.scrollElement = scrollElement;
|
|
139
|
+
this.isActive = isActive;
|
|
140
|
+
this.options = options;
|
|
141
|
+
this.lockedScrollTop = 0;
|
|
142
|
+
this.wasActive = false;
|
|
143
|
+
}
|
|
144
|
+
setup() {
|
|
145
|
+
const cleanups = [];
|
|
146
|
+
// アクティブ状態の監視
|
|
147
|
+
const checkActiveState = () => {
|
|
148
|
+
const isActiveNow = this.isActive();
|
|
149
|
+
if (!this.options.disableScrollLock) {
|
|
150
|
+
if (!isActiveNow && this.wasActive) {
|
|
151
|
+
// アクティブ → 非アクティブ: 現在位置をロック
|
|
152
|
+
this.lockedScrollTop = this.scrollElement.scrollTop;
|
|
153
|
+
}
|
|
154
|
+
else if (!isActiveNow) {
|
|
155
|
+
// 継続して非アクティブ: ロック位置を維持
|
|
156
|
+
this.scrollElement.scrollTop = this.lockedScrollTop;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// アクティブ時 or disableScrollLock時: 何もしない(自由スクロール)
|
|
160
|
+
this.wasActive = isActiveNow;
|
|
161
|
+
this.rafId = requestAnimationFrame(checkActiveState);
|
|
162
|
+
};
|
|
163
|
+
checkActiveState();
|
|
164
|
+
cleanups.push(() => {
|
|
165
|
+
if (this.rafId !== undefined) {
|
|
166
|
+
cancelAnimationFrame(this.rafId);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
// スクロールイベント監視
|
|
170
|
+
const scrollHandler = () => {
|
|
171
|
+
if (!this.options.disableScrollLock && !this.isActive()) {
|
|
172
|
+
this.scrollElement.scrollTop = this.lockedScrollTop;
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
this.scrollElement.addEventListener('scroll', scrollHandler);
|
|
176
|
+
cleanups.push(() => this.scrollElement.removeEventListener('scroll', scrollHandler));
|
|
177
|
+
return cleanups;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* アクティブ状態を管理するディレクティブ
|
|
183
|
+
*
|
|
184
|
+
* クリックでアクティブ化、外部クリックで非アクティブ化し、
|
|
185
|
+
* スクロール位置の固定やイベント伝播の制御を行います。
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```html
|
|
189
|
+
* <!-- 単一セレクタ -->
|
|
190
|
+
* <div appActiveControl
|
|
191
|
+
* [scrollSelector]="'.xterm-viewport'"
|
|
192
|
+
* (activeChange)="onActiveChange($event)">
|
|
193
|
+
* <!-- content -->
|
|
194
|
+
* </div>
|
|
195
|
+
*
|
|
196
|
+
* <!-- 複数セレクタ -->
|
|
197
|
+
* <div appActiveControl
|
|
198
|
+
* [scrollSelectors]="['.xterm-viewport', '.qtp-content']"
|
|
199
|
+
* (activeChange)="onActiveChange($event)">
|
|
200
|
+
* <!-- content -->
|
|
201
|
+
* </div>
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
class ActiveControlDirective {
|
|
205
|
+
constructor() {
|
|
206
|
+
this.el = inject(ElementRef);
|
|
207
|
+
this.scrollSelector = input();
|
|
208
|
+
this.scrollSelectors = input();
|
|
209
|
+
/** mousedownでstopPropagationを呼ばない(React Flowなどのドラッグと共存するため) */
|
|
210
|
+
this.disableStopPropagation = input(false);
|
|
211
|
+
/** スクロール位置のロックを無効化する(常にスクロール可能にする) */
|
|
212
|
+
this.disableScrollLock = input(false);
|
|
213
|
+
/** nodragクラスを付与しない(React Flowのノードでドラッグを有効化するため) */
|
|
214
|
+
this.disableNodrag = input(false);
|
|
215
|
+
this.activeChange = output();
|
|
216
|
+
this.isActive = signal(false);
|
|
217
|
+
this.eventCleanupFunctions = [];
|
|
218
|
+
this.scrollCleanupFunctions = [];
|
|
219
|
+
this.eventHandlersInitialized = false;
|
|
220
|
+
// イベントハンドラーの初期化(一度だけ)
|
|
221
|
+
effect(() => {
|
|
222
|
+
if (!this.eventHandlersInitialized) {
|
|
223
|
+
setTimeout(() => this.initializeEventHandlers(), 100);
|
|
224
|
+
this.eventHandlersInitialized = true;
|
|
225
|
+
}
|
|
226
|
+
}, { allowSignalWrites: true });
|
|
227
|
+
// スクロール制御の初期化(セレクタが変わるたびに再設定)
|
|
228
|
+
effect(() => {
|
|
229
|
+
const selectors = this.getScrollSelectors();
|
|
230
|
+
setTimeout(() => this.setupScrollControls(selectors), 150);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
ngOnDestroy() {
|
|
234
|
+
this.eventCleanupFunctions.forEach(cleanup => cleanup());
|
|
235
|
+
this.scrollCleanupFunctions.forEach(cleanup => cleanup());
|
|
236
|
+
}
|
|
237
|
+
initializeEventHandlers() {
|
|
238
|
+
const hostElement = this.el.nativeElement;
|
|
239
|
+
const scrollSelectors = this.getScrollSelectors();
|
|
240
|
+
const eventHandlers = new ActiveControlEventHandlers(hostElement, this.isActive, (active) => this.activeChange.emit(active), { disableStopPropagation: this.disableStopPropagation(), scrollSelectors });
|
|
241
|
+
this.eventCleanupFunctions.push(...eventHandlers.setupAll());
|
|
242
|
+
}
|
|
243
|
+
setupScrollControls(selectors) {
|
|
244
|
+
// 既存のスクロール制御をクリーンアップ
|
|
245
|
+
this.scrollCleanupFunctions.forEach(cleanup => cleanup());
|
|
246
|
+
this.scrollCleanupFunctions = [];
|
|
247
|
+
const hostElement = this.el.nativeElement;
|
|
248
|
+
const disableScrollLock = this.disableScrollLock();
|
|
249
|
+
for (const selector of selectors) {
|
|
250
|
+
// querySelectorAll を使用して全てのマッチする要素を取得
|
|
251
|
+
const scrollElements = hostElement.querySelectorAll(selector);
|
|
252
|
+
scrollElements.forEach(scrollElement => {
|
|
253
|
+
const scrollControl = new ScrollControl(scrollElement, this.isActive, { disableScrollLock });
|
|
254
|
+
this.scrollCleanupFunctions.push(...scrollControl.setup());
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
getScrollSelectors() {
|
|
259
|
+
const multiple = this.scrollSelectors();
|
|
260
|
+
if (multiple && multiple.length > 0) {
|
|
261
|
+
return multiple;
|
|
262
|
+
}
|
|
263
|
+
const single = this.scrollSelector();
|
|
264
|
+
return single ? [single] : [];
|
|
265
|
+
}
|
|
266
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ActiveControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
267
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.5", type: ActiveControlDirective, isStandalone: true, selector: "[appActiveControl]", inputs: { scrollSelector: { classPropertyName: "scrollSelector", publicName: "scrollSelector", isSignal: true, isRequired: false, transformFunction: null }, scrollSelectors: { classPropertyName: "scrollSelectors", publicName: "scrollSelectors", isSignal: true, isRequired: false, transformFunction: null }, disableStopPropagation: { classPropertyName: "disableStopPropagation", publicName: "disableStopPropagation", isSignal: true, isRequired: false, transformFunction: null }, disableScrollLock: { classPropertyName: "disableScrollLock", publicName: "disableScrollLock", isSignal: true, isRequired: false, transformFunction: null }, disableNodrag: { classPropertyName: "disableNodrag", publicName: "disableNodrag", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange" }, host: { properties: { "class.active": "isActive()", "class.nodrag": "!disableNodrag()", "class.nowheel": "isActive()" } }, ngImport: i0 }); }
|
|
268
|
+
}
|
|
269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.5", ngImport: i0, type: ActiveControlDirective, decorators: [{
|
|
270
|
+
type: Directive,
|
|
271
|
+
args: [{
|
|
272
|
+
selector: '[appActiveControl]',
|
|
273
|
+
standalone: true,
|
|
274
|
+
host: {
|
|
275
|
+
'[class.active]': 'isActive()',
|
|
276
|
+
'[class.nodrag]': '!disableNodrag()',
|
|
277
|
+
'[class.nowheel]': 'isActive()',
|
|
278
|
+
}
|
|
279
|
+
}]
|
|
280
|
+
}], ctorParameters: () => [] });
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Generated bundle index. Do not edit.
|
|
284
|
+
*/
|
|
285
|
+
|
|
286
|
+
export { ActiveControlDirective };
|
|
287
|
+
//# sourceMappingURL=ng-atomic-common-directives-active-control.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-directives-active-control.mjs","sources":["../tmp-esm2022/directives/active-control/handlers/event-handlers.js","../tmp-esm2022/directives/active-control/handlers/scroll-control.js","../tmp-esm2022/directives/active-control/active-control.directive.js","../tmp-esm2022/directives/active-control/ng-atomic-common-directives-active-control.js"],"sourcesContent":["export class ActiveControlEventHandlers {\n constructor(hostElement, isActive, onActiveChange, options = {}) {\n this.hostElement = hostElement;\n this.isActive = isActive;\n this.onActiveChange = onActiveChange;\n this.options = options;\n this.cleanupFunctions = [];\n }\n setupAll() {\n this.setupClickHandlers();\n this.setupPreventionHandlers();\n return this.cleanupFunctions;\n }\n setupClickHandlers() {\n // ホスト要素クリック\n const mousedownHandler = (e) => {\n this.toggleActive();\n // React Flowなどのドラッグと共存するため、オプションでstopPropagationを無効化\n if (!this.options.disableStopPropagation) {\n e.stopPropagation();\n }\n };\n this.addEventListener(this.hostElement, 'mousedown', mousedownHandler);\n // 外部クリック\n const documentClickListener = (e) => {\n if (!this.hostElement.contains(e.target) && this.isActive()) {\n this.setActive(false);\n }\n };\n document.addEventListener('mousedown', documentClickListener, { capture: true });\n this.cleanupFunctions.push(() => document.removeEventListener('mousedown', documentClickListener, { capture: true }));\n }\n setupPreventionHandlers() {\n // ホイールイベント(スクロール対象要素以外でのみブロック)\n // ただし、ctrlKey + wheel(トラックパッドのピンチズーム)は常にブロック\n // 非アクティブ時はScrollControlがスクロール位置をリセットするため、ここでは処理しない\n this.addEventListener(this.hostElement, 'wheel', (e) => {\n if (this.isActive()) {\n // ctrlKey + wheel = トラックパッドのピンチズーム → 常にブロック\n if (e.ctrlKey) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n // 通常のホイールスクロール: スクロール対象要素からのイベントは許可\n const target = e.target;\n const isScrollableElement = this.options.scrollSelectors?.some(selector => target.closest(selector) !== null);\n if (!isScrollableElement) {\n e.preventDefault();\n e.stopPropagation();\n }\n }\n }, { passive: false });\n // タッチイベント(ホスト要素レベル)\n const touchHandler = (e) => {\n if (!this.isActive())\n return;\n // スクロール対象要素からのイベントは許可\n const target = e.target;\n const isScrollableElement = this.options.scrollSelectors?.some(selector => target.closest(selector) !== null);\n if (!isScrollableElement) {\n if (e.touches.length > 1) {\n // ピンチズームなどマルチタッチ操作をブロック\n e.preventDefault();\n e.stopPropagation();\n }\n // シングルタッチはデフォルト動作を許可(スクロールなど)\n }\n };\n this.addEventListener(this.hostElement, 'touchstart', touchHandler, { passive: false });\n this.addEventListener(this.hostElement, 'touchmove', touchHandler, { passive: false });\n // ジェスチャーイベント(ホスト要素レベル)\n const gestureHandler = (e) => {\n if (this.isActive()) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n ['gesturestart', 'gesturechange', 'gestureend'].forEach(eventName => {\n this.addEventListener(this.hostElement, eventName, gestureHandler, { passive: false });\n });\n // Document-level capture phaseハンドラ\n // ブラウザのピンチズームがデフォルト動作を行う前にキャッチする\n this.setupDocumentLevelPinchZoomPrevention();\n }\n /**\n * Document-levelでcapture phaseを使ってピンチズームを防止\n * ホスト要素内で発生したマルチタッチ/ジェスチャーイベントのみをブロック\n */\n setupDocumentLevelPinchZoomPrevention() {\n // タッチイベント(capture phase)\n const documentTouchHandler = (e) => {\n if (!this.isActive())\n return;\n if (!this.hostElement.contains(e.target))\n return;\n if (e.touches.length > 1) {\n e.preventDefault();\n }\n };\n document.addEventListener('touchstart', documentTouchHandler, { capture: true, passive: false });\n document.addEventListener('touchmove', documentTouchHandler, { capture: true, passive: false });\n this.cleanupFunctions.push(() => {\n document.removeEventListener('touchstart', documentTouchHandler, { capture: true });\n document.removeEventListener('touchmove', documentTouchHandler, { capture: true });\n });\n // Safari gestureイベント(capture phase)\n const documentGestureHandler = (e) => {\n if (!this.isActive())\n return;\n if (!this.hostElement.contains(e.target))\n return;\n e.preventDefault();\n };\n ['gesturestart', 'gesturechange', 'gestureend'].forEach(eventName => {\n document.addEventListener(eventName, documentGestureHandler, { capture: true, passive: false });\n this.cleanupFunctions.push(() => document.removeEventListener(eventName, documentGestureHandler, { capture: true }));\n });\n }\n addEventListener(element, event, handler, options) {\n element.addEventListener(event, handler, options);\n this.cleanupFunctions.push(() => element.removeEventListener(event, handler, options));\n }\n toggleActive() {\n this.setActive(!this.isActive());\n }\n setActive(active) {\n this.isActive.set(active);\n this.onActiveChange(active);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaGFuZGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvYWN0aXZlLWNvbnRyb2wvaGFuZGxlcnMvZXZlbnQtaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV0EsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUNVLFdBQXdCLEVBQ3hCLFFBQWlDLEVBQ2pDLGNBQXlDLEVBQ3pDLFVBQWdDLEVBQUU7UUFIbEMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBeUI7UUFDakMsbUJBQWMsR0FBZCxjQUFjLENBQTJCO1FBQ3pDLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBTnBDLHFCQUFnQixHQUFzQixFQUFFLENBQUM7SUFPOUMsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLFlBQVk7UUFDWixNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBYSxFQUFFLEVBQUU7WUFDekMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLHFEQUFxRDtZQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2dCQUN6QyxDQUFDLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUMsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXZFLFNBQVM7UUFDVCxNQUFNLHFCQUFxQixHQUFHLENBQUMsQ0FBYSxFQUFFLEVBQUU7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QWEsRUFDYixPQUFzQixFQUN0QixPQUFpQztRQUVqQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTyxTQUFTLENBQUMsTUFBZTtRQUMvQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgQ2xlYW51cEZ1bmN0aW9uID0gKCkgPT4gdm9pZDtcblxuZXhwb3J0IGludGVyZmFjZSBBY3RpdmVDb250cm9sT3B0aW9ucyB7XG4gIC8qKiBtb3VzZWRvd27jgadzdG9wUHJvcGFnYXRpb27jgpLlkbzjgbDjgarjgYQgKi9cbiAgZGlzYWJsZVN0b3BQcm9wYWdhdGlvbj86IGJvb2xlYW47XG4gIC8qKiDjgrnjgq/jg63jg7zjg6vjgpLoqLHlj6/jgZnjgovopoHntKDjga7jgrvjg6zjgq/jgr8gKi9cbiAgc2Nyb2xsU2VsZWN0b3JzPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBBY3RpdmVDb250cm9sRXZlbnRIYW5kbGVycyB7XG4gIHByaXZhdGUgY2xlYW51cEZ1bmN0aW9uczogQ2xlYW51cEZ1bmN0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCxcbiAgICBwcml2YXRlIGlzQWN0aXZlOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPixcbiAgICBwcml2YXRlIG9uQWN0aXZlQ2hhbmdlOiAoYWN0aXZlOiBib29sZWFuKSA9PiB2b2lkLFxuICAgIHByaXZhdGUgb3B0aW9uczogQWN0aXZlQ29udHJvbE9wdGlvbnMgPSB7fVxuICApIHt9XG5cbiAgc2V0dXBBbGwoKTogQ2xlYW51cEZ1bmN0aW9uW10ge1xuICAgIHRoaXMuc2V0dXBDbGlja0hhbmRsZXJzKCk7XG4gICAgdGhpcy5zZXR1cFByZXZlbnRpb25IYW5kbGVycygpO1xuICAgIHJldHVybiB0aGlzLmNsZWFudXBGdW5jdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIHNldHVwQ2xpY2tIYW5kbGVycygpOiB2b2lkIHtcbiAgICAvLyDjg5vjgrnjg4jopoHntKDjgq/jg6rjg4Pjgq9cbiAgICBjb25zdCBtb3VzZWRvd25IYW5kbGVyID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIHRoaXMudG9nZ2xlQWN0aXZlKCk7XG4gICAgICAvLyBSZWFjdCBGbG9344Gq44Gp44Gu44OJ44Op44OD44Kw44Go5YWx5a2Y44GZ44KL44Gf44KB44CB44Kq44OX44K344On44Oz44Gnc3RvcFByb3BhZ2F0aW9u44KS54Sh5Yq55YyWXG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5kaXNhYmxlU3RvcFByb3BhZ2F0aW9uKSB7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIodGhpcy5ob3N0RWxlbWVudCwgJ21vdXNlZG93bicsIG1vdXNlZG93bkhhbmRsZXIpO1xuXG4gICAgLy8g5aSW6YOo44Kv44Oq44OD44KvXG4gICAgY29uc3QgZG9jdW1lbnRDbGlja0xpc3RlbmVyID0gKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgIGlmICghdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhlLnRhcmdldCBhcyBOb2RlKSAmJiB0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgdGhpcy5zZXRBY3RpdmUoZmFsc2UpO1xuICAgICAgfVxuICAgIH07XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZG9jdW1lbnRDbGlja0xpc3RlbmVyLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgdGhpcy5jbGVhbnVwRnVuY3Rpb25zLnB1c2goKCkgPT5cbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGRvY3VtZW50Q2xpY2tMaXN0ZW5lciwgeyBjYXB0dXJlOiB0cnVlIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBQcmV2ZW50aW9uSGFuZGxlcnMoKTogdm9pZCB7XG4gICAgLy8g44Ob44Kk44O844Or44Kk44OZ44Oz44OI77yI44K544Kv44Ot44O844Or5a++6LGh6KaB57Sg5Lul5aSW44Gn44Gu44G/44OW44Ot44OD44Kv77yJXG4gICAgLy8g44Gf44Gg44GX44CBY3RybEtleSArIHdoZWVs77yI44OI44Op44OD44Kv44OR44OD44OJ44Gu44OU44Oz44OB44K644O844Og77yJ44Gv5bi444Gr44OW44Ot44OD44KvXG4gICAgLy8g6Z2e44Ki44Kv44OG44Kj44OW5pmC44GvU2Nyb2xsQ29udHJvbOOBjOOCueOCr+ODreODvOODq+S9jee9ruOCkuODquOCu+ODg+ODiOOBmeOCi+OBn+OCgeOAgeOBk+OBk+OBp+OBr+WHpueQhuOBl+OBquOBhFxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvc3RFbGVtZW50LCAnd2hlZWwnLCAoZTogV2hlZWxFdmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuaXNBY3RpdmUoKSkge1xuICAgICAgICAvLyBjdHJsS2V5ICsgd2hlZWwgPSDjg4jjg6njg4Pjgq/jg5Hjg4Pjg4njga7jg5Tjg7Pjg4Hjgrrjg7zjg6Ag4oaSIOW4uOOBq+ODluODreODg+OCr1xuICAgICAgICBpZiAoZS5jdHJsS2V5KSB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8g6YCa5bi444Gu44Ob44Kk44O844Or44K544Kv44Ot44O844OrOiDjgrnjgq/jg63jg7zjg6vlr77osaHopoHntKDjgYvjgonjga7jgqTjg5njg7Pjg4jjga/oqLHlj69cbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGlzU2Nyb2xsYWJsZUVsZW1lbnQgPSB0aGlzLm9wdGlvbnMuc2Nyb2xsU2VsZWN0b3JzPy5zb21lKHNlbGVjdG9yID0+XG4gICAgICAgICAgdGFyZ2V0LmNsb3Nlc3Qoc2VsZWN0b3IpICE9PSBudWxsXG4gICAgICAgICk7XG4gICAgICAgIGlmICghaXNTY3JvbGxhYmxlRWxlbWVudCkge1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSwgeyBwYXNzaXZlOiBmYWxzZSB9KTtcblxuICAgIC8vIOOCv+ODg+ODgeOCpOODmeODs+ODiO+8iOODm+OCueODiOimgee0oOODrOODmeODq++8iVxuICAgIGNvbnN0IHRvdWNoSGFuZGxlciA9IChlOiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkgcmV0dXJuO1xuXG4gICAgICAvLyDjgrnjgq/jg63jg7zjg6vlr77osaHopoHntKDjgYvjgonjga7jgqTjg5njg7Pjg4jjga/oqLHlj69cbiAgICAgIGNvbnN0IHRhcmdldCA9IGUudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuICAgICAgY29uc3QgaXNTY3JvbGxhYmxlRWxlbWVudCA9IHRoaXMub3B0aW9ucy5zY3JvbGxTZWxlY3RvcnM/LnNvbWUoc2VsZWN0b3IgPT5cbiAgICAgICAgdGFyZ2V0LmNsb3Nlc3Qoc2VsZWN0b3IpICE9PSBudWxsXG4gICAgICApO1xuICAgICAgaWYgKCFpc1Njcm9sbGFibGVFbGVtZW50KSB7XG4gICAgICAgIGlmIChlLnRvdWNoZXMubGVuZ3RoID4gMSkge1xuICAgICAgICAgIC8vIOODlOODs+ODgeOCuuODvOODoOOBquOBqeODnuODq+ODgeOCv+ODg+ODgeaTjeS9nOOCkuODluODreODg+OCr1xuICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIC8vIOOCt+ODs+OCsOODq+OCv+ODg+ODgeOBr+ODh+ODleOCqeODq+ODiOWLleS9nOOCkuioseWPr++8iOOCueOCr+ODreODvOODq+OBquOBqe+8iVxuICAgICAgfVxuICAgIH07XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKHRoaXMuaG9zdEVsZW1lbnQsICd0b3VjaHN0YXJ0JywgdG91Y2hIYW5kbGVyLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcih0aGlzLmhvc3RFbGVtZW50LCAndG91Y2htb3ZlJywgdG91Y2hIYW5kbGVyLCB7IHBhc3NpdmU6IGZhbHNlIH0pO1xuXG4gICAgLy8g44K444Kn44K544OB44Oj44O844Kk44OZ44Oz44OI77yI44Ob44K544OI6KaB57Sg44Os44OZ44Or77yJXG4gICAgY29uc3QgZ2VzdHVyZUhhbmRsZXIgPSAoZTogRXZlbnQpID0+IHtcbiAgICAgIGlmICh0aGlzLmlzQWN0aXZlKCkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgfVxuICAgIH07XG4gICAgWydnZXN0dXJlc3RhcnQnLCAnZ2VzdHVyZWNoYW5nZScsICdnZXN0dXJlZW5kJ10uZm9yRWFjaChldmVudE5hbWUgPT4ge1xuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKHRoaXMuaG9zdEVsZW1lbnQsIGV2ZW50TmFtZSwgZ2VzdHVyZUhhbmRsZXIsIHsgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBEb2N1bWVudC1sZXZlbCBjYXB0dXJlIHBoYXNl44OP44Oz44OJ44OpXG4gICAgLy8g44OW44Op44Km44K244Gu44OU44Oz44OB44K644O844Og44GM44OH44OV44Kp44Or44OI5YuV5L2c44KS6KGM44GG5YmN44Gr44Kt44Oj44OD44OB44GZ44KLXG4gICAgdGhpcy5zZXR1cERvY3VtZW50TGV2ZWxQaW5jaFpvb21QcmV2ZW50aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogRG9jdW1lbnQtbGV2ZWzjgadjYXB0dXJlIHBoYXNl44KS5L2/44Gj44Gm44OU44Oz44OB44K644O844Og44KS6Ziy5q2iXG4gICAqIOODm+OCueODiOimgee0oOWGheOBp+eZuueUn+OBl+OBn+ODnuODq+ODgeOCv+ODg+ODgS/jgrjjgqfjgrnjg4Hjg6Pjg7zjgqTjg5njg7Pjg4jjga7jgb/jgpLjg5bjg63jg4Pjgq9cbiAgICovXG4gIHByaXZhdGUgc2V0dXBEb2N1bWVudExldmVsUGluY2hab29tUHJldmVudGlvbigpOiB2b2lkIHtcbiAgICAvLyDjgr/jg4Pjg4HjgqTjg5njg7Pjg4jvvIhjYXB0dXJlIHBoYXNl77yJXG4gICAgY29uc3QgZG9jdW1lbnRUb3VjaEhhbmRsZXIgPSAoZTogVG91Y2hFdmVudCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlKCkpIHJldHVybjtcbiAgICAgIGlmICghdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyhlLnRhcmdldCBhcyBOb2RlKSkgcmV0dXJuO1xuXG4gICAgICBpZiAoZS50b3VjaGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZG9jdW1lbnRUb3VjaEhhbmRsZXIsIHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2UgfSk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgZG9jdW1lbnRUb3VjaEhhbmRsZXIsIHsgY2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2UgfSk7XG5cbiAgICB0aGlzLmNsZWFudXBGdW5jdGlvbnMucHVzaCgoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgZG9jdW1lbnRUb3VjaEhhbmRsZXIsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIGRvY3VtZW50VG91Y2hIYW5kbGVyLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBTYWZhcmkgZ2VzdHVyZeOCpOODmeODs+ODiO+8iGNhcHR1cmUgcGhhc2XvvIlcbiAgICBjb25zdCBkb2N1bWVudEdlc3R1cmVIYW5kbGVyID0gKGU6IEV2ZW50KSA9PiB7XG4gICAgICBpZiAoIXRoaXMuaXNBY3RpdmUoKSkgcmV0dXJuO1xuICAgICAgaWYgKCF0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSByZXR1cm47XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIFsnZ2VzdHVyZXN0YXJ0JywgJ2dlc3R1cmVjaGFuZ2UnLCAnZ2VzdHVyZWVuZCddLmZvckVhY2goZXZlbnROYW1lID0+IHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBkb2N1bWVudEdlc3R1cmVIYW5kbGVyLCB7IGNhcHR1cmU6IHRydWUsIHBhc3NpdmU6IGZhbHNlIH0pO1xuICAgICAgdGhpcy5jbGVhbnVwRnVuY3Rpb25zLnB1c2goKCkgPT5cbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGRvY3VtZW50R2VzdHVyZUhhbmRsZXIsIHsgY2FwdHVyZTogdHJ1ZSB9KVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lcihcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IERvY3VtZW50LFxuICAgIGV2ZW50OiBzdHJpbmcsXG4gICAgaGFuZGxlcjogRXZlbnRMaXN0ZW5lcixcbiAgICBvcHRpb25zPzogQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnNcbiAgKTogdm9pZCB7XG4gICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBoYW5kbGVyLCBvcHRpb25zKTtcbiAgICB0aGlzLmNsZWFudXBGdW5jdGlvbnMucHVzaCgoKSA9PiBlbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnQsIGhhbmRsZXIsIG9wdGlvbnMpKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlQWN0aXZlKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QWN0aXZlKCF0aGlzLmlzQWN0aXZlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmUoYWN0aXZlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoYWN0aXZlKTtcbiAgICB0aGlzLm9uQWN0aXZlQ2hhbmdlKGFjdGl2ZSk7XG4gIH1cbn1cbiJdfQ==","export class ScrollControl {\n constructor(scrollElement, isActive, options = {}) {\n this.scrollElement = scrollElement;\n this.isActive = isActive;\n this.options = options;\n this.lockedScrollTop = 0;\n this.wasActive = false;\n }\n setup() {\n const cleanups = [];\n // アクティブ状態の監視\n const checkActiveState = () => {\n const isActiveNow = this.isActive();\n if (!this.options.disableScrollLock) {\n if (!isActiveNow && this.wasActive) {\n // アクティブ → 非アクティブ: 現在位置をロック\n this.lockedScrollTop = this.scrollElement.scrollTop;\n }\n else if (!isActiveNow) {\n // 継続して非アクティブ: ロック位置を維持\n this.scrollElement.scrollTop = this.lockedScrollTop;\n }\n }\n // アクティブ時 or disableScrollLock時: 何もしない(自由スクロール)\n this.wasActive = isActiveNow;\n this.rafId = requestAnimationFrame(checkActiveState);\n };\n checkActiveState();\n cleanups.push(() => {\n if (this.rafId !== undefined) {\n cancelAnimationFrame(this.rafId);\n }\n });\n // スクロールイベント監視\n const scrollHandler = () => {\n if (!this.options.disableScrollLock && !this.isActive()) {\n this.scrollElement.scrollTop = this.lockedScrollTop;\n }\n };\n this.scrollElement.addEventListener('scroll', scrollHandler);\n cleanups.push(() => this.scrollElement.removeEventListener('scroll', scrollHandler));\n return cleanups;\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9AbmctYXRvbWljL2NvbW1vbi9zcmMvbGliL2RpcmVjdGl2ZXMvYWN0aXZlLWNvbnRyb2wvaGFuZGxlcnMvc2Nyb2xsLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsTUFBTSxPQUFPLGFBQWE7SUFLeEIsWUFDVSxhQUEwQixFQUMxQixRQUF5QixFQUN6QixVQUFnQyxFQUFFO1FBRmxDLGtCQUFhLEdBQWIsYUFBYSxDQUFhO1FBQzFCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBUHBDLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFPdkIsQ0FBQztJQUVKLEtBQUs7UUFDSCxNQUFNLFFBQVEsR0FBc0IsRUFBRSxDQUFDO1FBRXZDLGFBQWE7UUFDYixNQUFNLGdCQUFnQixHQUFHLEdBQUcsRUFBRTtZQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDcEMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ25DLDJCQUEyQjtvQkFDM0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztnQkFDdEQsQ0FBQztxQkFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7b0JBQ3hCLHVCQUF1QjtvQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDdEQsQ0FBQztZQUNILENBQUM7WUFDRCwrQ0FBK0M7WUFFL0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUM7WUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQUNGLGdCQUFnQixFQUFFLENBQUM7UUFDbkIsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM3QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsY0FBYztRQUNkLE1BQU0sYUFBYSxHQUFHLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO2dCQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1lBQ3RELENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUM3RCxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFckYsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGVhbnVwRnVuY3Rpb24gfSBmcm9tICcuL2V2ZW50LWhhbmRsZXJzJztcblxuZXhwb3J0IGludGVyZmFjZSBTY3JvbGxDb250cm9sT3B0aW9ucyB7XG4gIC8qKiDjgrnjgq/jg63jg7zjg6vkvY3nva7jga7jg63jg4Pjgq/jgpLnhKHlirnljJbjgZnjgovvvIjluLjjgavjgrnjgq/jg63jg7zjg6vlj6/og73jgavjgZnjgovvvIkgKi9cbiAgZGlzYWJsZVNjcm9sbExvY2s/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgU2Nyb2xsQ29udHJvbCB7XG4gIHByaXZhdGUgbG9ja2VkU2Nyb2xsVG9wID0gMDtcbiAgcHJpdmF0ZSB3YXNBY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSByYWZJZD86IG51bWJlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHNjcm9sbEVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIHByaXZhdGUgaXNBY3RpdmU6IFNpZ25hbDxib29sZWFuPixcbiAgICBwcml2YXRlIG9wdGlvbnM6IFNjcm9sbENvbnRyb2xPcHRpb25zID0ge31cbiAgKSB7fVxuXG4gIHNldHVwKCk6IENsZWFudXBGdW5jdGlvbltdIHtcbiAgICBjb25zdCBjbGVhbnVwczogQ2xlYW51cEZ1bmN0aW9uW10gPSBbXTtcblxuICAgIC8vIOOCouOCr+ODhuOCo+ODlueKtuaFi+OBruebo+imllxuICAgIGNvbnN0IGNoZWNrQWN0aXZlU3RhdGUgPSAoKSA9PiB7XG4gICAgICBjb25zdCBpc0FjdGl2ZU5vdyA9IHRoaXMuaXNBY3RpdmUoKTtcblxuICAgICAgaWYgKCF0aGlzLm9wdGlvbnMuZGlzYWJsZVNjcm9sbExvY2spIHtcbiAgICAgICAgaWYgKCFpc0FjdGl2ZU5vdyAmJiB0aGlzLndhc0FjdGl2ZSkge1xuICAgICAgICAgIC8vIOOCouOCr+ODhuOCo+ODliDihpIg6Z2e44Ki44Kv44OG44Kj44OWOiDnj77lnKjkvY3nva7jgpLjg63jg4Pjgq9cbiAgICAgICAgICB0aGlzLmxvY2tlZFNjcm9sbFRvcCA9IHRoaXMuc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3A7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzQWN0aXZlTm93KSB7XG4gICAgICAgICAgLy8g57aZ57aa44GX44Gm6Z2e44Ki44Kv44OG44Kj44OWOiDjg63jg4Pjgq/kvY3nva7jgpLntq3mjIFcbiAgICAgICAgICB0aGlzLnNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wID0gdGhpcy5sb2NrZWRTY3JvbGxUb3A7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIOOCouOCr+ODhuOCo+ODluaZgiBvciBkaXNhYmxlU2Nyb2xsTG9ja+aZgjog5L2V44KC44GX44Gq44GE77yI6Ieq55Sx44K544Kv44Ot44O844Or77yJXG5cbiAgICAgIHRoaXMud2FzQWN0aXZlID0gaXNBY3RpdmVOb3c7XG4gICAgICB0aGlzLnJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGNoZWNrQWN0aXZlU3RhdGUpO1xuICAgIH07XG4gICAgY2hlY2tBY3RpdmVTdGF0ZSgpO1xuICAgIGNsZWFudXBzLnB1c2goKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucmFmSWQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnJhZklkKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIOOCueOCr+ODreODvOODq+OCpOODmeODs+ODiOebo+imllxuICAgIGNvbnN0IHNjcm9sbEhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICBpZiAoIXRoaXMub3B0aW9ucy5kaXNhYmxlU2Nyb2xsTG9jayAmJiAhdGhpcy5pc0FjdGl2ZSgpKSB7XG4gICAgICAgIHRoaXMuc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AgPSB0aGlzLmxvY2tlZFNjcm9sbFRvcDtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuc2Nyb2xsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxIYW5kbGVyKTtcbiAgICBjbGVhbnVwcy5wdXNoKCgpID0+IHRoaXMuc2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBzY3JvbGxIYW5kbGVyKSk7XG5cbiAgICByZXR1cm4gY2xlYW51cHM7XG4gIH1cbn1cbiJdfQ==","import { Directive, ElementRef, input, output, effect, signal, inject } from '@angular/core';\nimport { ActiveControlEventHandlers, ScrollControl } from './handlers';\nimport * as i0 from \"@angular/core\";\n/**\n * アクティブ状態を管理するディレクティブ\n *\n * クリックでアクティブ化、外部クリックで非アクティブ化し、\n * スクロール位置の固定やイベント伝播の制御を行います。\n *\n * @example\n * ```html\n * <!-- 単一セレクタ -->\n * <div appActiveControl\n * [scrollSelector]=\"'.xterm-viewport'\"\n * (activeChange)=\"onActiveChange($event)\">\n * <!-- content -->\n * </div>\n *\n * <!-- 複数セレクタ -->\n * <div appActiveControl\n * [scrollSelectors]=\"['.xterm-viewport', '.qtp-content']\"\n * (activeChange)=\"onActiveChange($event)\">\n * <!-- content -->\n * </div>\n * ```\n */\nexport class ActiveControlDirective {\n constructor() {\n this.el = inject(ElementRef);\n this.scrollSelector = input();\n this.scrollSelectors = input();\n /** mousedownでstopPropagationを呼ばない(React Flowなどのドラッグと共存するため) */\n this.disableStopPropagation = input(false);\n /** スクロール位置のロックを無効化する(常にスクロール可能にする) */\n this.disableScrollLock = input(false);\n /** nodragクラスを付与しない(React Flowのノードでドラッグを有効化するため) */\n this.disableNodrag = input(false);\n this.activeChange = output();\n this.isActive = signal(false);\n this.eventCleanupFunctions = [];\n this.scrollCleanupFunctions = [];\n this.eventHandlersInitialized = false;\n // イベントハンドラーの初期化(一度だけ)\n effect(() => {\n if (!this.eventHandlersInitialized) {\n setTimeout(() => this.initializeEventHandlers(), 100);\n this.eventHandlersInitialized = true;\n }\n }, { allowSignalWrites: true });\n // スクロール制御の初期化(セレクタが変わるたびに再設定)\n effect(() => {\n const selectors = this.getScrollSelectors();\n setTimeout(() => this.setupScrollControls(selectors), 150);\n });\n }\n ngOnDestroy() {\n this.eventCleanupFunctions.forEach(cleanup => cleanup());\n this.scrollCleanupFunctions.forEach(cleanup => cleanup());\n }\n initializeEventHandlers() {\n const hostElement = this.el.nativeElement;\n const scrollSelectors = this.getScrollSelectors();\n const eventHandlers = new ActiveControlEventHandlers(hostElement, this.isActive, (active) => this.activeChange.emit(active), { disableStopPropagation: this.disableStopPropagation(), scrollSelectors });\n this.eventCleanupFunctions.push(...eventHandlers.setupAll());\n }\n setupScrollControls(selectors) {\n // 既存のスクロール制御をクリーンアップ\n this.scrollCleanupFunctions.forEach(cleanup => cleanup());\n this.scrollCleanupFunctions = [];\n const hostElement = this.el.nativeElement;\n const disableScrollLock = this.disableScrollLock();\n for (const selector of selectors) {\n // querySelectorAll を使用して全てのマッチする要素を取得\n const scrollElements = hostElement.querySelectorAll(selector);\n scrollElements.forEach(scrollElement => {\n const scrollControl = new ScrollControl(scrollElement, this.isActive, { disableScrollLock });\n this.scrollCleanupFunctions.push(...scrollControl.setup());\n });\n }\n }\n getScrollSelectors() {\n const multiple = this.scrollSelectors();\n if (multiple && multiple.length > 0) {\n return multiple;\n }\n const single = this.scrollSelector();\n return single ? [single] : [];\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ActiveControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.0.5\", type: ActiveControlDirective, isStandalone: true, selector: \"[appActiveControl]\", inputs: { scrollSelector: { classPropertyName: \"scrollSelector\", publicName: \"scrollSelector\", isSignal: true, isRequired: false, transformFunction: null }, scrollSelectors: { classPropertyName: \"scrollSelectors\", publicName: \"scrollSelectors\", isSignal: true, isRequired: false, transformFunction: null }, disableStopPropagation: { classPropertyName: \"disableStopPropagation\", publicName: \"disableStopPropagation\", isSignal: true, isRequired: false, transformFunction: null }, disableScrollLock: { classPropertyName: \"disableScrollLock\", publicName: \"disableScrollLock\", isSignal: true, isRequired: false, transformFunction: null }, disableNodrag: { classPropertyName: \"disableNodrag\", publicName: \"disableNodrag\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: \"activeChange\" }, host: { properties: { \"class.active\": \"isActive()\", \"class.nodrag\": \"!disableNodrag()\", \"class.nowheel\": \"isActive()\" } }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: ActiveControlDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[appActiveControl]',\n standalone: true,\n host: {\n '[class.active]': 'isActive()',\n '[class.nodrag]': '!disableNodrag()',\n '[class.nowheel]': 'isActive()',\n }\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZlLWNvbnRyb2wuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2FjdGl2ZS1jb250cm9sL2FjdGl2ZS1jb250cm9sLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7O0FBRXZFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBVUgsTUFBTSxPQUFPLHNCQUFzQjtJQWlCakM7UUFoQmlCLE9BQUUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNqQyxvQkFBZSxHQUFHLEtBQUssRUFBWSxDQUFDO1FBQzdDLCtEQUErRDtRQUN0RCwyQkFBc0IsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDeEQsc0NBQXNDO1FBQzdCLHNCQUFpQixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNuRCxtREFBbUQ7UUFDMUMsa0JBQWEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdEMsaUJBQVksR0FBRyxNQUFNLEVBQVcsQ0FBQztRQUNqQyxhQUFRLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRW5DLDBCQUFxQixHQUFtQixFQUFFLENBQUM7UUFDM0MsMkJBQXNCLEdBQW1CLEVBQUUsQ0FBQztRQUM1Qyw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFHdkMsc0JBQXNCO1FBQ3RCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7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O1FBQ3JDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEMsQ0FBQzs4R0ExRVUsc0JBQXNCO2tHQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBVGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixnQkFBZ0IsRUFBRSxZQUFZO3dCQUM5QixnQkFBZ0IsRUFBRSxrQkFBa0I7d0JBQ3BDLGlCQUFpQixFQUFFLFlBQVk7cUJBQ2hDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBpbnB1dCwgb3V0cHV0LCBlZmZlY3QsIHNpZ25hbCwgT25EZXN0cm95LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2ZUNvbnRyb2xFdmVudEhhbmRsZXJzLCBTY3JvbGxDb250cm9sIH0gZnJvbSAnLi9oYW5kbGVycyc7XG5cbi8qKlxuICog44Ki44Kv44OG44Kj44OW54q25oWL44KS566h55CG44GZ44KL44OH44Kj44Os44Kv44OG44Kj44OWXG4gKlxuICog44Kv44Oq44OD44Kv44Gn44Ki44Kv44OG44Kj44OW5YyW44CB5aSW6YOo44Kv44Oq44OD44Kv44Gn6Z2e44Ki44Kv44OG44Kj44OW5YyW44GX44CBXG4gKiDjgrnjgq/jg63jg7zjg6vkvY3nva7jga7lm7rlrprjgoTjgqTjg5njg7Pjg4jkvJ3mkq3jga7liLblvqHjgpLooYzjgYTjgb7jgZnjgIJcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPCEtLSDljZjkuIDjgrvjg6zjgq/jgr8gLS0+XG4gKiA8ZGl2IGFwcEFjdGl2ZUNvbnRyb2xcbiAqICAgICAgW3Njcm9sbFNlbGVjdG9yXT1cIicueHRlcm0tdmlld3BvcnQnXCJcbiAqICAgICAgKGFjdGl2ZUNoYW5nZSk9XCJvbkFjdGl2ZUNoYW5nZSgkZXZlbnQpXCI+XG4gKiAgIDwhLS0gY29udGVudCAtLT5cbiAqIDwvZGl2PlxuICpcbiAqIDwhLS0g6KSH5pWw44K744Os44Kv44K/IC0tPlxuICogPGRpdiBhcHBBY3RpdmVDb250cm9sXG4gKiAgICAgIFtzY3JvbGxTZWxlY3RvcnNdPVwiWycueHRlcm0tdmlld3BvcnQnLCAnLnF0cC1jb250ZW50J11cIlxuICogICAgICAoYWN0aXZlQ2hhbmdlKT1cIm9uQWN0aXZlQ2hhbmdlKCRldmVudClcIj5cbiAqICAgPCEtLSBjb250ZW50IC0tPlxuICogPC9kaXY+XG4gKiBgYGBcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2FwcEFjdGl2ZUNvbnRyb2xdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MuYWN0aXZlXSc6ICdpc0FjdGl2ZSgpJyxcbiAgICAnW2NsYXNzLm5vZHJhZ10nOiAnIWRpc2FibGVOb2RyYWcoKScsXG4gICAgJ1tjbGFzcy5ub3doZWVsXSc6ICdpc0FjdGl2ZSgpJyxcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBBY3RpdmVDb250cm9sRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSByZWFkb25seSBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgc2Nyb2xsU2VsZWN0b3IgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHNjcm9sbFNlbGVjdG9ycyA9IGlucHV0PHN0cmluZ1tdPigpO1xuICAvKiogbW91c2Vkb3du44Gnc3RvcFByb3BhZ2F0aW9u44KS5ZG844Gw44Gq44GE77yIUmVhY3QgRmxvd+OBquOBqeOBruODieODqeODg+OCsOOBqOWFseWtmOOBmeOCi+OBn+OCge+8iSAqL1xuICByZWFkb25seSBkaXNhYmxlU3RvcFByb3BhZ2F0aW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiog44K544Kv44Ot44O844Or5L2N572u44Gu44Ot44OD44Kv44KS54Sh5Yq55YyW44GZ44KL77yI5bi444Gr44K544Kv44Ot44O844Or5Y+v6IO944Gr44GZ44KL77yJICovXG4gIHJlYWRvbmx5IGRpc2FibGVTY3JvbGxMb2NrID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKiogbm9kcmFn44Kv44Op44K544KS5LuY5LiO44GX44Gq44GE77yIUmVhY3QgRmxvd+OBruODjuODvOODieOBp+ODieODqeODg+OCsOOCkuacieWKueWMluOBmeOCi+OBn+OCge+8iSAqL1xuICByZWFkb25seSBkaXNhYmxlTm9kcmFnID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhY3RpdmVDaGFuZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaXNBY3RpdmUgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgZXZlbnRDbGVhbnVwRnVuY3Rpb25zOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuICBwcml2YXRlIHNjcm9sbENsZWFudXBGdW5jdGlvbnM6ICgoKSA9PiB2b2lkKVtdID0gW107XG4gIHByaXZhdGUgZXZlbnRIYW5kbGVyc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8g44Kk44OZ44Oz44OI44OP44Oz44OJ44Op44O844Gu5Yid5pyf5YyW77yI5LiA5bqm44Gg44GR77yJXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICghdGhpcy5ldmVudEhhbmRsZXJzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmluaXRpYWxpemVFdmVudEhhbmRsZXJzKCksIDEwMCk7XG4gICAgICAgIHRoaXMuZXZlbnRIYW5kbGVyc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9LCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuXG4gICAgLy8g44K544Kv44Ot44O844Or5Yi25b6h44Gu5Yid5pyf5YyW77yI44K744Os44Kv44K/44GM5aSJ44KP44KL44Gf44Gz44Gr5YaN6Kit5a6a77yJXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNlbGVjdG9ycyA9IHRoaXMuZ2V0U2Nyb2xsU2VsZWN0b3JzKCk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2V0dXBTY3JvbGxDb250cm9scyhzZWxlY3RvcnMpLCAxNTApO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5ldmVudENsZWFudXBGdW5jdGlvbnMuZm9yRWFjaChjbGVhbnVwID0+IGNsZWFudXAoKSk7XG4gICAgdGhpcy5zY3JvbGxDbGVhbnVwRnVuY3Rpb25zLmZvckVhY2goY2xlYW51cCA9PiBjbGVhbnVwKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplRXZlbnRIYW5kbGVycygpOiB2b2lkIHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBzY3JvbGxTZWxlY3RvcnMgPSB0aGlzLmdldFNjcm9sbFNlbGVjdG9ycygpO1xuICAgIGNvbnN0IGV2ZW50SGFuZGxlcnMgPSBuZXcgQWN0aXZlQ29udHJvbEV2ZW50SGFuZGxlcnMoXG4gICAgICBob3N0RWxlbWVudCxcbiAgICAgIHRoaXMuaXNBY3RpdmUsXG4gICAgICAoYWN0aXZlKSA9PiB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KGFjdGl2ZSksXG4gICAgICB7IGRpc2FibGVTdG9wUHJvcGFnYXRpb246IHRoaXMuZGlzYWJsZVN0b3BQcm9wYWdhdGlvbigpLCBzY3JvbGxTZWxlY3RvcnMgfVxuICAgICk7XG4gICAgdGhpcy5ldmVudENsZWFudXBGdW5jdGlvbnMucHVzaCguLi5ldmVudEhhbmRsZXJzLnNldHVwQWxsKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cFNjcm9sbENvbnRyb2xzKHNlbGVjdG9yczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAvLyDml6LlrZjjga7jgrnjgq/jg63jg7zjg6vliLblvqHjgpLjgq/jg6rjg7zjg7PjgqLjg4Pjg5dcbiAgICB0aGlzLnNjcm9sbENsZWFudXBGdW5jdGlvbnMuZm9yRWFjaChjbGVhbnVwID0+IGNsZWFudXAoKSk7XG4gICAgdGhpcy5zY3JvbGxDbGVhbnVwRnVuY3Rpb25zID0gW107XG5cbiAgICBjb25zdCBob3N0RWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBkaXNhYmxlU2Nyb2xsTG9jayA9IHRoaXMuZGlzYWJsZVNjcm9sbExvY2soKTtcbiAgICBmb3IgKGNvbnN0IHNlbGVjdG9yIG9mIHNlbGVjdG9ycykge1xuICAgICAgLy8gcXVlcnlTZWxlY3RvckFsbCDjgpLkvb/nlKjjgZfjgablhajjgabjga7jg57jg4Pjg4HjgZnjgovopoHntKDjgpLlj5blvpdcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnRzID0gaG9zdEVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oc2VsZWN0b3IpO1xuICAgICAgc2Nyb2xsRWxlbWVudHMuZm9yRWFjaChzY3JvbGxFbGVtZW50ID0+IHtcbiAgICAgICAgY29uc3Qgc2Nyb2xsQ29udHJvbCA9IG5ldyBTY3JvbGxDb250cm9sKHNjcm9sbEVsZW1lbnQsIHRoaXMuaXNBY3RpdmUsIHsgZGlzYWJsZVNjcm9sbExvY2sgfSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsQ2xlYW51cEZ1bmN0aW9ucy5wdXNoKC4uLnNjcm9sbENvbnRyb2wuc2V0dXAoKSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFNjcm9sbFNlbGVjdG9ycygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgbXVsdGlwbGUgPSB0aGlzLnNjcm9sbFNlbGVjdG9ycygpO1xuICAgIGlmIChtdWx0aXBsZSAmJiBtdWx0aXBsZS5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gbXVsdGlwbGU7XG4gICAgfVxuICAgIGNvbnN0IHNpbmdsZSA9IHRoaXMuc2Nyb2xsU2VsZWN0b3IoKTtcbiAgICByZXR1cm4gc2luZ2xlID8gW3NpbmdsZV0gOiBbXTtcbiAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1kaXJlY3RpdmVzLWFjdGl2ZS1jb250cm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9kaXJlY3RpdmVzL2FjdGl2ZS1jb250cm9sL25nLWF0b21pYy1jb21tb24tZGlyZWN0aXZlcy1hY3RpdmUtY29udHJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Injectable } from '@angular/core';
|
|
3
3
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import { Auth, authState, TwitterAuthProvider, signInWithPopup, GoogleAuthProvider, signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithCustomToken, signOut } from '@angular/fire/auth';
|
|
4
|
+
import { Auth, authState, TwitterAuthProvider, signInWithPopup, GoogleAuthProvider, onAuthStateChanged, signInWithEmailAndPassword, createUserWithEmailAndPassword, signInWithCustomToken, signOut } from '@angular/fire/auth';
|
|
5
5
|
import { get } from 'lodash-es';
|
|
6
6
|
import { switchMap, of, distinctUntilChanged, shareReplay, map } from 'rxjs';
|
|
7
7
|
|
|
@@ -29,12 +29,32 @@ class AuthService {
|
|
|
29
29
|
for (const scope of scopes)
|
|
30
30
|
provider.addScope(scope);
|
|
31
31
|
return signInWithPopup(this.#auth, provider).catch(async (error) => {
|
|
32
|
+
if (error.code === 'auth/popup-closed-by-user') {
|
|
33
|
+
const user = await this.#waitForAuthState();
|
|
34
|
+
if (user)
|
|
35
|
+
return { user };
|
|
36
|
+
}
|
|
32
37
|
if (error.code === 'auth/account-exists-with-different-credential') {
|
|
33
38
|
this.onFailedForAccountExistsWithDifferentCredential(error);
|
|
34
39
|
}
|
|
35
40
|
throw error;
|
|
36
41
|
});
|
|
37
42
|
}
|
|
43
|
+
#waitForAuthState(timeoutMs = 3000) {
|
|
44
|
+
return new Promise(resolve => {
|
|
45
|
+
let skip = true;
|
|
46
|
+
const timer = setTimeout(() => { unsub(); resolve(null); }, timeoutMs);
|
|
47
|
+
const unsub = onAuthStateChanged(this.#auth, user => {
|
|
48
|
+
if (skip) {
|
|
49
|
+
skip = false;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
clearTimeout(timer);
|
|
53
|
+
unsub();
|
|
54
|
+
resolve(user);
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
}
|
|
38
58
|
signInWithEmailAndPassword(email, password) {
|
|
39
59
|
return signInWithEmailAndPassword(this.#auth, email, password);
|
|
40
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-atomic-common-services-auth.mjs","sources":["../tmp-esm2022/services/auth/auth.service.js","../tmp-esm2022/services/auth/ng-atomic-common-services-auth.js"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, signInWithEmailAndPassword, createUserWithEmailAndPassword } from '@angular/fire/auth';\nimport { get } from 'lodash-es';\nimport { distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AuthService {\n constructor() {\n this.#auth = inject(Auth);\n this.auth$ = authState(this.#auth);\n this.auth = toSignal(this.auth$);\n this.accessToken$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdToken() : of(null)), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n this.accessToken = toSignal(this.accessToken$);\n this.userId$ = this.auth$.pipe(map(auth => auth?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n this.customClaims$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdTokenResult() : of(null)), map(token => token?.claims ?? {}), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n }\n #auth;\n signInWithTwitter() {\n const provider = new TwitterAuthProvider();\n return signInWithPopup(this.#auth, provider);\n }\n // signInWithGoogle() {\n // const provider = new GoogleAuthProvider();\n // return signInWithPopup(this.#auth, provider);\n // }\n async signInWithGoogle(scopes = []) {\n const provider = new GoogleAuthProvider();\n for (const scope of scopes)\n provider.addScope(scope);\n return signInWithPopup(this.#auth, provider).catch(async (error) => {\n if (error.code === 'auth/account-exists-with-different-credential') {\n this.onFailedForAccountExistsWithDifferentCredential(error);\n }\n throw error;\n });\n }\n signInWithEmailAndPassword(email, password) {\n return signInWithEmailAndPassword(this.#auth, email, password);\n }\n createUserWithEmailAndPassword(email, password) {\n return createUserWithEmailAndPassword(this.#auth, email, password);\n }\n signInWithCustomToken(customToken) {\n return signInWithCustomToken(this.#auth, customToken);\n }\n signOut() {\n return signOut(this.#auth);\n }\n onFailedForAccountExistsWithDifferentCredential(error) {\n const credential = error.customData._tokenResponse;\n // const pending = FacebookAuthProvider.credential(credential.oauthAccessToken);\n const providerId = error.customData._tokenResponse.providerId;\n // this.pends.update(pends => [...pends, {\n // credential: pending,\n // providerId: providerId,\n // email: credential.email,\n // }]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AuthService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AuthService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport function injectAuthState$() {\n return inject(AuthService).auth$;\n}\nexport function injectAuthState() {\n return toSignal(injectAuthState$());\n}\nexport function injectUserId$() {\n return inject(AuthService).userId$.pipe(distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n}\nexport function injectUserId() {\n return toSignal(injectUserId$());\n}\nexport function injectTwitterId$() {\n return inject(AuthService).auth$.pipe(map(auth => auth?.providerData?.[0]?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n}\nexport function injectClaim$(claim) {\n return inject(AuthService).customClaims$.pipe(map(token => claim ? get(token, claim) : token), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n}\nexport function injectClaim(claim) {\n return toSignal(injectClaim$(claim));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzTixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMkJ6RixNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUlXLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsVUFBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsU0FBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsaUJBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDckMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN0RCxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENB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LFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDZCxrQkFBa0IsRUFBRSxDQUNkLENBQUM7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBYSxLQUFhO0lBQ25ELE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBTaWduYWwsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwsIHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEF1dGgsIGF1dGhTdGF0ZSwgc2lnbkluV2l0aEN1c3RvbVRva2VuLCBHb29nbGVBdXRoUHJvdmlkZXIsIFR3aXR0ZXJBdXRoUHJvdmlkZXIsIHNpZ25JbldpdGhQb3B1cCwgc2lnbk91dCwgVXNlckNyZWRlbnRpYWwsIHNpZ25JbldpdGhFbWFpbEFuZFBhc3N3b3JkLCBjcmVhdGVVc2VyV2l0aEVtYWlsQW5kUGFzc3dvcmQgfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHdpdHRlckNyZWRlbnRpYWwge1xuICBjb250ZXh0OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGVtYWlsVmVyaWZpZWQ6IGJvb2xlYW47XG4gIGV4cGlyZXNJbjogc3RyaW5nO1xuICBmZWRlcmF0ZWRJZDogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICBpZFRva2VuOiBzdHJpbmc7XG4gIGtpbmQ6ICdpZGVudGl0eXRvb2xraXQjVmVyaWZ5QXNzZXJ0aW9uUmVzcG9uc2UnO1xuICBsb2NhbElkOiBzdHJpbmc7XG4gIG9hdXRoQWNjZXNzVG9rZW46IHN0cmluZztcbiAgb2F1dGhUb2tlblNlY3JldDogc3RyaW5nO1xuICBwaG90b1VybDogc3RyaW5nO1xuICBwcm92aWRlcklkOiAndHdpdHRlci5jb20nO1xuICByYXdVc2VySW5mbzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgc2NyZWVuTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSZXN1bHQgPSBVc2VyQ3JlZGVudGlhbCAmIHtfdG9rZW5SZXNwb25zZTogVHdpdHRlckNyZWRlbnRpYWx9O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIHJlYWRvbmx5ICNhdXRoID0gaW5qZWN0KEF1dGgpO1xuICByZWFkb25seSBhdXRoJCA9IGF1dGhTdGF0ZSh0aGlzLiNhdXRoKTtcbiAgcmVhZG9ubHkgYXV0aCA9IHRvU2lnbmFsKHRoaXMuYXV0aCQpO1xuICByZWFkb25seSBhY2Nlc3NUb2tlbiQgPSB0aGlzLmF1dGgkLnBpcGUoXG4gICAgc3dpdGNoTWFwKGF1dGggPT4gYXV0aCA/IGF1dGguZ2V0SWRUb2tlbigpIDogb2YobnVsbCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG4gIHJlYWRvbmx5IGFjY2Vzc1Rva2VuID0gdG9TaWduYWwodGhpcy5hY2Nlc3NUb2tlbiQpO1xuXG4gIHVzZXJJZCQgPSB0aGlzLmF1dGgkLnBpcGUoXG4gICAgbWFwKGF1dGggPT4gYXV0aD8udWlkID8/IG51bGwpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG5cbiAgcmVhZG9ubHkgY3VzdG9tQ2xhaW1zJCA9IHRoaXMuYXV0aCQucGlwZShcbiAgICBzd2l0Y2hNYXAoYXV0aCA9PiBhdXRoID8gYXV0aC5nZXRJZFRva2VuUmVzdWx0KCkgOiBvZihudWxsKSksXG4gICAgbWFwKHRva2VuID0+IHRva2VuPy5jbGFpbXMgPz8ge30pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG5cbiAgc2lnbkluV2l0aFR3aXR0ZXIoKTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBUd2l0dGVyQXV0aFByb3ZpZGVyKCk7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLiNhdXRoLCBwcm92aWRlcikgYXMgUHJvbWlzZTxSZXN1bHQ+XG4gIH1cblxuICAvLyBzaWduSW5XaXRoR29vZ2xlKCkge1xuICAvLyAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IEdvb2dsZUF1dGhQcm92aWRlcigpO1xuICAvLyAgIHJldHVybiBzaWduSW5XaXRoUG9wdXAodGhpcy4jYXV0aCwgcHJvdmlkZXIpO1xuICAvLyB9XG5cbiAgYXN5bmMgc2lnbkluV2l0aEdvb2dsZShzY29wZXM6IHN0cmluZ1tdID0gW10pIHtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBHb29nbGVBdXRoUHJvdmlkZXIoKTtcbiAgICBmb3IgKGNvbnN0IHNjb3BlIG9mIHNjb3BlcykgcHJvdmlkZXIuYWRkU2NvcGUoc2NvcGUpO1xuICAgIHJldHVybiBzaWduSW5XaXRoUG9wdXAodGhpcy4jYXV0aCwgcHJvdmlkZXIpLmNhdGNoKGFzeW5jIGVycm9yID0+IHtcbiAgICAgIGlmIChlcnJvci5jb2RlID09PSAnYXV0aC9hY2NvdW50LWV4aXN0cy13aXRoLWRpZmZlcmVudC1jcmVkZW50aWFsJykge1xuICAgICAgICB0aGlzLm9uRmFpbGVkRm9yQWNjb3VudEV4aXN0c1dpdGhEaWZmZXJlbnRDcmVkZW50aWFsKGVycm9yKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycm9yO1xuICAgIH0pO1xuICB9XG5cbiAgc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIHJldHVybiBzaWduSW5XaXRoRW1haWxBbmRQYXNzd29yZCh0aGlzLiNhdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuI2F1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBzaWduSW5XaXRoQ3VzdG9tVG9rZW4oY3VzdG9tVG9rZW46IHN0cmluZyk6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhDdXN0b21Ub2tlbih0aGlzLiNhdXRoLCBjdXN0b21Ub2tlbikgYXMgUHJvbWlzZTxSZXN1bHQ+O1xuICB9XG5cbiAgc2lnbk91dCgpIHtcbiAgICByZXR1cm4gc2lnbk91dCh0aGlzLiNhdXRoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GYWlsZWRGb3JBY2NvdW50RXhpc3RzV2l0aERpZmZlcmVudENyZWRlbnRpYWwoZXJyb3I6IGFueSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWwgPSBlcnJvci5jdXN0b21EYXRhLl90b2tlblJlc3BvbnNlO1xuICAgIC8vIGNvbnN0IHBlbmRpbmcgPSBGYWNlYm9va0F1dGhQcm92aWRlci5jcmVkZW50aWFsKGNyZWRlbnRpYWwub2F1dGhBY2Nlc3NUb2tlbik7XG4gICAgY29uc3QgcHJvdmlkZXJJZCA9IGVycm9yLmN1c3RvbURhdGEuX3Rva2VuUmVzcG9uc2UucHJvdmlkZXJJZDtcbiAgICAvLyB0aGlzLnBlbmRzLnVwZGF0ZShwZW5kcyA9PiBbLi4ucGVuZHMsIHtcbiAgICAvLyAgIGNyZWRlbnRpYWw6IHBlbmRpbmcsXG4gICAgLy8gICBwcm92aWRlcklkOiBwcm92aWRlcklkLFxuICAgIC8vICAgZW1haWw6IGNyZWRlbnRpYWwuZW1haWwsXG4gICAgLy8gfV0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBdXRoU3RhdGUkKCkge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEF1dGhTdGF0ZSgpIHtcbiAgcmV0dXJuIHRvU2lnbmFsKGluamVjdEF1dGhTdGF0ZSQoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVc2VySWQkKCk6IE9ic2VydmFibGU8c3RyaW5nIHwgbnVsbD4ge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS51c2VySWQkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFVzZXJJZCgpOiBTaWduYWw8c3RyaW5nIHwgbnVsbD4ge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0VXNlcklkJCgpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFR3aXR0ZXJJZCQoKSB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmF1dGgkLnBpcGUoXG4gICAgbWFwKGF1dGggPT4gYXV0aD8ucHJvdmlkZXJEYXRhPy5bMF0/LnVpZCA/PyBudWxsKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q2xhaW0kPFQgPSBzdHJpbmc+KGNsYWltOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgcmV0dXJuIGluamVjdChBdXRoU2VydmljZSkuY3VzdG9tQ2xhaW1zJC5waXBlKFxuICAgIG1hcCh0b2tlbiA9PiBjbGFpbSA/IGdldCh0b2tlbiwgY2xhaW0pIDogdG9rZW4pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICkgYXMgYW55O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Q2xhaW08VCA9IHN0cmluZz4oY2xhaW06IHN0cmluZyk6IFNpZ25hbDxUPiB7XG4gIHJldHVybiB0b1NpZ25hbChpbmplY3RDbGFpbSQ8VD4oY2xhaW0pKTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL25nLWF0b21pYy1jb21tb24tc2VydmljZXMtYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":";;;;;;;AAMO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,QAAQ,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;AAC1C,QAAQ,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;AACxC,QAAQ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACjK,QAAQ,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC;AACtD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACpI,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;AAC3M,IAAI;AACJ,IAAI,KAAK;AACT,IAAI,iBAAiB,GAAG;AACxB,QAAQ,MAAM,QAAQ,GAAG,IAAI,mBAAmB,EAAE;AAClD,QAAQ,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC;AACpD,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI,MAAM,gBAAgB,CAAC,MAAM,GAAG,EAAE,EAAE;AACxC,QAAQ,MAAM,QAAQ,GAAG,IAAI,kBAAkB,EAAE;AACjD,QAAQ,KAAK,MAAM,KAAK,IAAI,MAAM;AAClC,YAAY,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpC,QAAQ,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK;AAC5E,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,+CAA+C,EAAE;AAChF,gBAAgB,IAAI,CAAC,+CAA+C,CAAC,KAAK,CAAC;AAC3E,YAAY;AACZ,YAAY,MAAM,KAAK;AACvB,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE;AAChD,QAAQ,OAAO,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;AACtE,IAAI;AACJ,IAAI,8BAA8B,CAAC,KAAK,EAAE,QAAQ,EAAE;AACpD,QAAQ,OAAO,8BAA8B,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC;AAC1E,IAAI;AACJ,IAAI,qBAAqB,CAAC,WAAW,EAAE;AACvC,QAAQ,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC;AAC7D,IAAI;AACJ,IAAI,OAAO,GAAG;AACd,QAAQ,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;AAClC,IAAI;AACJ,IAAI,+CAA+C,CAAC,KAAK,EAAE;AAC3D,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc;AAC1D;AACA,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,UAAU;AACrE;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,IAAI,SAAS,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC9K,IAAI,SAAS,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AACrJ;AACA,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE;AAChC,iBAAiB;AACjB,SAAS,CAAC,EAAE,CAAC;AACN,SAAS,gBAAgB,GAAG;AACnC,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK;AACpC;AACO,SAAS,eAAe,GAAG;AAClC,IAAI,OAAO,QAAQ,CAAC,gBAAgB,EAAE,CAAC;AACvC;AACO,SAAS,aAAa,GAAG;AAChC,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;AACzG;AACO,SAAS,YAAY,GAAG;AAC/B,IAAI,OAAO,QAAQ,CAAC,aAAa,EAAE,CAAC;AACpC;AACO,SAAS,gBAAgB,GAAG;AACnC,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,EAAE,YAAY,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;AAC1J;AACO,SAAS,YAAY,CAAC,KAAK,EAAE;AACpC,IAAI,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;AAChK;AACO,SAAS,WAAW,CAAC,KAAK,EAAE;AACnC,IAAI,OAAO,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACxC;;ACvFA;AACA;AACA;;;;"}
|
|
1
|
+
{"version":3,"file":"ng-atomic-common-services-auth.mjs","sources":["../tmp-esm2022/services/auth/auth.service.js","../tmp-esm2022/services/auth/ng-atomic-common-services-auth.js"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Auth, authState, signInWithCustomToken, GoogleAuthProvider, TwitterAuthProvider, signInWithPopup, signOut, signInWithEmailAndPassword, createUserWithEmailAndPassword, onAuthStateChanged } from '@angular/fire/auth';\nimport { get } from 'lodash-es';\nimport { distinctUntilChanged, map, of, shareReplay, switchMap } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class AuthService {\n constructor() {\n this.#auth = inject(Auth);\n this.auth$ = authState(this.#auth);\n this.auth = toSignal(this.auth$);\n this.accessToken$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdToken() : of(null)), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n this.accessToken = toSignal(this.accessToken$);\n this.userId$ = this.auth$.pipe(map(auth => auth?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n this.customClaims$ = this.auth$.pipe(switchMap(auth => auth ? auth.getIdTokenResult() : of(null)), map(token => token?.claims ?? {}), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n }\n #auth;\n signInWithTwitter() {\n const provider = new TwitterAuthProvider();\n return signInWithPopup(this.#auth, provider);\n }\n // signInWithGoogle() {\n // const provider = new GoogleAuthProvider();\n // return signInWithPopup(this.#auth, provider);\n // }\n async signInWithGoogle(scopes = []) {\n const provider = new GoogleAuthProvider();\n for (const scope of scopes)\n provider.addScope(scope);\n return signInWithPopup(this.#auth, provider).catch(async (error) => {\n if (error.code === 'auth/popup-closed-by-user') {\n const user = await this.#waitForAuthState();\n if (user)\n return { user };\n }\n if (error.code === 'auth/account-exists-with-different-credential') {\n this.onFailedForAccountExistsWithDifferentCredential(error);\n }\n throw error;\n });\n }\n #waitForAuthState(timeoutMs = 3000) {\n return new Promise(resolve => {\n let skip = true;\n const timer = setTimeout(() => { unsub(); resolve(null); }, timeoutMs);\n const unsub = onAuthStateChanged(this.#auth, user => {\n if (skip) {\n skip = false;\n return;\n }\n clearTimeout(timer);\n unsub();\n resolve(user);\n });\n });\n }\n signInWithEmailAndPassword(email, password) {\n return signInWithEmailAndPassword(this.#auth, email, password);\n }\n createUserWithEmailAndPassword(email, password) {\n return createUserWithEmailAndPassword(this.#auth, email, password);\n }\n signInWithCustomToken(customToken) {\n return signInWithCustomToken(this.#auth, customToken);\n }\n signOut() {\n return signOut(this.#auth);\n }\n onFailedForAccountExistsWithDifferentCredential(error) {\n const credential = error.customData._tokenResponse;\n // const pending = FacebookAuthProvider.credential(credential.oauthAccessToken);\n const providerId = error.customData._tokenResponse.providerId;\n // this.pends.update(pends => [...pends, {\n // credential: pending,\n // providerId: providerId,\n // email: credential.email,\n // }]);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AuthService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AuthService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.0.5\", ngImport: i0, type: AuthService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\nexport function injectAuthState$() {\n return inject(AuthService).auth$;\n}\nexport function injectAuthState() {\n return toSignal(injectAuthState$());\n}\nexport function injectUserId$() {\n return inject(AuthService).userId$.pipe(distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n}\nexport function injectUserId() {\n return toSignal(injectUserId$());\n}\nexport function injectTwitterId$() {\n return inject(AuthService).auth$.pipe(map(auth => auth?.providerData?.[0]?.uid ?? null), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n}\nexport function injectClaim$(claim) {\n return inject(AuthService).customClaims$.pipe(map(token => claim ? get(token, claim) : token), distinctUntilChanged(), shareReplay(1), takeUntilDestroyed());\n}\nexport function injectClaim(claim) {\n return toSignal(injectClaim$(claim));\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL2F1dGguc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBa0IsMEJBQTBCLEVBQUUsOEJBQThCLEVBQVEsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyUCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hDLE9BQU8sRUFBYyxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBMkJ6RixNQUFNLE9BQU8sV0FBVztJQUh4QjtRQUlXLFVBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckIsVUFBSyxHQUE0QixTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELFNBQUksR0FBb0MsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3RCxpQkFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUNyQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQ3RELG9CQUFvQixFQUFF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QVUsYUFBYTtJQUMzQixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNyQyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2Qsa0JBQWtCLEVBQUUsQ0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWTtJQUMxQixPQUFPLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCO0lBQzlCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLEVBQ2pELG9CQUFvQixFQUFFLEVBQ3RCLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFDZCxrQkFBa0IsRUFBRSxDQUNyQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQWEsS0FBYTtJQUNwRCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUMvQyxvQkFBb0IsRUFBRSxFQUN0QixXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2Qsa0JBQWtCLEVBQUUsQ0FDZCxDQUFDO0FBQ1gsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQWEsS0FBYTtJQUNuRCxPQUFPLFFBQVEsQ0FBQyxZQUFZLENBQUksS0FBSyxDQUFDLENBQUMsQ0FBQztBQUMxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsLCB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBBdXRoLCBhdXRoU3RhdGUsIHNpZ25JbldpdGhDdXN0b21Ub2tlbiwgR29vZ2xlQXV0aFByb3ZpZGVyLCBUd2l0dGVyQXV0aFByb3ZpZGVyLCBzaWduSW5XaXRoUG9wdXAsIHNpZ25PdXQsIFVzZXJDcmVkZW50aWFsLCBzaWduSW5XaXRoRW1haWxBbmRQYXNzd29yZCwgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkLCBVc2VyLCBvbkF1dGhTdGF0ZUNoYW5nZWQgfSBmcm9tICdAYW5ndWxhci9maXJlL2F1dGgnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIG9mLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHdpdHRlckNyZWRlbnRpYWwge1xuICBjb250ZXh0OiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGVtYWlsVmVyaWZpZWQ6IGJvb2xlYW47XG4gIGV4cGlyZXNJbjogc3RyaW5nO1xuICBmZWRlcmF0ZWRJZDogc3RyaW5nO1xuICBmdWxsTmFtZTogc3RyaW5nO1xuICBpZFRva2VuOiBzdHJpbmc7XG4gIGtpbmQ6ICdpZGVudGl0eXRvb2xraXQjVmVyaWZ5QXNzZXJ0aW9uUmVzcG9uc2UnO1xuICBsb2NhbElkOiBzdHJpbmc7XG4gIG9hdXRoQWNjZXNzVG9rZW46IHN0cmluZztcbiAgb2F1dGhUb2tlblNlY3JldDogc3RyaW5nO1xuICBwaG90b1VybDogc3RyaW5nO1xuICBwcm92aWRlcklkOiAndHdpdHRlci5jb20nO1xuICByYXdVc2VySW5mbzogc3RyaW5nO1xuICByZWZyZXNoVG9rZW46IHN0cmluZztcbiAgc2NyZWVuTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBSZXN1bHQgPSBVc2VyQ3JlZGVudGlhbCAmIHtfdG9rZW5SZXNwb25zZTogVHdpdHRlckNyZWRlbnRpYWx9O1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoU2VydmljZSB7XG4gIHJlYWRvbmx5ICNhdXRoID0gaW5qZWN0KEF1dGgpO1xuICByZWFkb25seSBhdXRoJDogT2JzZXJ2YWJsZTxVc2VyIHwgbnVsbD4gPSBhdXRoU3RhdGUodGhpcy4jYXV0aCk7XG4gIHJlYWRvbmx5IGF1dGg6IFNpZ25hbDxVc2VyIHwgbnVsbCB8IHVuZGVmaW5lZD4gPSB0b1NpZ25hbCh0aGlzLmF1dGgkKTtcbiAgcmVhZG9ubHkgYWNjZXNzVG9rZW4kID0gdGhpcy5hdXRoJC5waXBlKFxuICAgIHN3aXRjaE1hcChhdXRoID0+IGF1dGggPyBhdXRoLmdldElkVG9rZW4oKSA6IG9mKG51bGwpKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xuICByZWFkb25seSBhY2Nlc3NUb2tlbiA9IHRvU2lnbmFsKHRoaXMuYWNjZXNzVG9rZW4kKTtcblxuICB1c2VySWQkID0gdGhpcy5hdXRoJC5waXBlKFxuICAgIG1hcChhdXRoID0+IGF1dGg/LnVpZCA/PyBudWxsKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApO1xuXG4gIHJlYWRvbmx5IGN1c3RvbUNsYWltcyQ6IE9ic2VydmFibGU8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+ID0gdGhpcy5hdXRoJC5waXBlKFxuICAgIHN3aXRjaE1hcChhdXRoID0+IGF1dGggPyBhdXRoLmdldElkVG9rZW5SZXN1bHQoKSA6IG9mKG51bGwpKSxcbiAgICBtYXAodG9rZW4gPT4gdG9rZW4/LmNsYWltcyA/PyB7fSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcblxuICBzaWduSW5XaXRoVHdpdHRlcigpOiBQcm9taXNlPFJlc3VsdD4ge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFR3aXR0ZXJBdXRoUHJvdmlkZXIoKTtcbiAgICByZXR1cm4gc2lnbkluV2l0aFBvcHVwKHRoaXMuI2F1dGgsIHByb3ZpZGVyKSBhcyBQcm9taXNlPFJlc3VsdD5cbiAgfVxuXG4gIC8vIHNpZ25JbldpdGhHb29nbGUoKSB7XG4gIC8vICAgY29uc3QgcHJvdmlkZXIgPSBuZXcgR29vZ2xlQXV0aFByb3ZpZGVyKCk7XG4gIC8vICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLiNhdXRoLCBwcm92aWRlcik7XG4gIC8vIH1cblxuICBhc3luYyBzaWduSW5XaXRoR29vZ2xlKHNjb3Blczogc3RyaW5nW10gPSBbXSkge1xuICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IEdvb2dsZUF1dGhQcm92aWRlcigpO1xuICAgIGZvciAoY29uc3Qgc2NvcGUgb2Ygc2NvcGVzKSBwcm92aWRlci5hZGRTY29wZShzY29wZSk7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhQb3B1cCh0aGlzLiNhdXRoLCBwcm92aWRlcikuY2F0Y2goYXN5bmMgZXJyb3IgPT4ge1xuICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdhdXRoL3BvcHVwLWNsb3NlZC1ieS11c2VyJykge1xuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgdGhpcy4jd2FpdEZvckF1dGhTdGF0ZSgpO1xuICAgICAgICBpZiAodXNlcikgcmV0dXJuIHsgdXNlciB9IGFzIFVzZXJDcmVkZW50aWFsO1xuICAgICAgfVxuICAgICAgaWYgKGVycm9yLmNvZGUgPT09ICdhdXRoL2FjY291bnQtZXhpc3RzLXdpdGgtZGlmZmVyZW50LWNyZWRlbnRpYWwnKSB7XG4gICAgICAgIHRoaXMub25GYWlsZWRGb3JBY2NvdW50RXhpc3RzV2l0aERpZmZlcmVudENyZWRlbnRpYWwoZXJyb3IpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfSk7XG4gIH1cblxuICAjd2FpdEZvckF1dGhTdGF0ZSh0aW1lb3V0TXMgPSAzMDAwKTogUHJvbWlzZTxVc2VyIHwgbnVsbD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGxldCBza2lwID0gdHJ1ZTtcbiAgICAgIGNvbnN0IHRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7IHVuc3ViKCk7IHJlc29sdmUobnVsbCk7IH0sIHRpbWVvdXRNcyk7XG4gICAgICBjb25zdCB1bnN1YiA9IG9uQXV0aFN0YXRlQ2hhbmdlZCh0aGlzLiNhdXRoLCB1c2VyID0+IHtcbiAgICAgICAgaWYgKHNraXApIHsgc2tpcCA9IGZhbHNlOyByZXR1cm47IH1cbiAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTsgdW5zdWIoKTsgcmVzb2x2ZSh1c2VyKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgc2lnbkluV2l0aEVtYWlsQW5kUGFzc3dvcmQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIHJldHVybiBzaWduSW5XaXRoRW1haWxBbmRQYXNzd29yZCh0aGlzLiNhdXRoLCBlbWFpbCwgcGFzc3dvcmQpO1xuICB9XG5cbiAgY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKGVtYWlsOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gY3JlYXRlVXNlcldpdGhFbWFpbEFuZFBhc3N3b3JkKHRoaXMuI2F1dGgsIGVtYWlsLCBwYXNzd29yZCk7XG4gIH1cblxuICBzaWduSW5XaXRoQ3VzdG9tVG9rZW4oY3VzdG9tVG9rZW46IHN0cmluZyk6IFByb21pc2U8UmVzdWx0PiB7XG4gICAgcmV0dXJuIHNpZ25JbldpdGhDdXN0b21Ub2tlbih0aGlzLiNhdXRoLCBjdXN0b21Ub2tlbikgYXMgUHJvbWlzZTxSZXN1bHQ+O1xuICB9XG5cbiAgc2lnbk91dCgpIHtcbiAgICByZXR1cm4gc2lnbk91dCh0aGlzLiNhdXRoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GYWlsZWRGb3JBY2NvdW50RXhpc3RzV2l0aERpZmZlcmVudENyZWRlbnRpYWwoZXJyb3I6IGFueSkge1xuICAgIGNvbnN0IGNyZWRlbnRpYWwgPSBlcnJvci5jdXN0b21EYXRhLl90b2tlblJlc3BvbnNlO1xuICAgIC8vIGNvbnN0IHBlbmRpbmcgPSBGYWNlYm9va0F1dGhQcm92aWRlci5jcmVkZW50aWFsKGNyZWRlbnRpYWwub2F1dGhBY2Nlc3NUb2tlbik7XG4gICAgY29uc3QgcHJvdmlkZXJJZCA9IGVycm9yLmN1c3RvbURhdGEuX3Rva2VuUmVzcG9uc2UucHJvdmlkZXJJZDtcbiAgICAvLyB0aGlzLnBlbmRzLnVwZGF0ZShwZW5kcyA9PiBbLi4ucGVuZHMsIHtcbiAgICAvLyAgIGNyZWRlbnRpYWw6IHBlbmRpbmcsXG4gICAgLy8gICBwcm92aWRlcklkOiBwcm92aWRlcklkLFxuICAgIC8vICAgZW1haWw6IGNyZWRlbnRpYWwuZW1haWwsXG4gICAgLy8gfV0pO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBdXRoU3RhdGUkKCk6IE9ic2VydmFibGU8VXNlciB8IG51bGw+IHtcbiAgcmV0dXJuIGluamVjdChBdXRoU2VydmljZSkuYXV0aCQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RBdXRoU3RhdGUoKTogU2lnbmFsPFVzZXIgfCBudWxsIHwgdW5kZWZpbmVkPiB7XG4gIHJldHVybiB0b1NpZ25hbChpbmplY3RBdXRoU3RhdGUkKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VXNlcklkJCgpOiBPYnNlcnZhYmxlPHN0cmluZyB8IG51bGw+IHtcbiAgcmV0dXJuIGluamVjdChBdXRoU2VydmljZSkudXNlcklkJC5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSksXG4gICAgdGFrZVVudGlsRGVzdHJveWVkKCksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RVc2VySWQoKTogU2lnbmFsPHN0cmluZyB8IG51bGw+IHtcbiAgcmV0dXJuIHRvU2lnbmFsKGluamVjdFVzZXJJZCQoKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RUd2l0dGVySWQkKCkge1xuICByZXR1cm4gaW5qZWN0KEF1dGhTZXJ2aWNlKS5hdXRoJC5waXBlKFxuICAgIG1hcChhdXRoID0+IGF1dGg/LnByb3ZpZGVyRGF0YT8uWzBdPy51aWQgPz8gbnVsbCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKSxcbiAgICB0YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENsYWltJDxUID0gc3RyaW5nPihjbGFpbTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gIHJldHVybiBpbmplY3QoQXV0aFNlcnZpY2UpLmN1c3RvbUNsYWltcyQucGlwZShcbiAgICBtYXAodG9rZW4gPT4gY2xhaW0gPyBnZXQodG9rZW4sIGNsYWltKSA6IHRva2VuKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgIHRha2VVbnRpbERlc3Ryb3llZCgpLFxuICApIGFzIGFueTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdENsYWltPFQgPSBzdHJpbmc+KGNsYWltOiBzdHJpbmcpOiBTaWduYWw8VD4ge1xuICByZXR1cm4gdG9TaWduYWwoaW5qZWN0Q2xhaW0kPFQ+KGNsYWltKSk7XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctYXRvbWljLWNvbW1vbi1zZXJ2aWNlcy1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvQG5nLWF0b21pYy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9hdXRoL25nLWF0b21pYy1jb21tb24tc2VydmljZXMtYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|