valtech-components 4.0.978 → 4.0.980
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/esm2022/lib/components/molecules/comment/comment.component.mjs +79 -65
- package/esm2022/lib/components/molecules/invitation-card/invitation-card.component.mjs +4 -4
- package/esm2022/lib/components/organisms/account-view/account-view.component.mjs +3 -3
- package/esm2022/lib/components/organisms/comment-section/comment-section.component.mjs +3 -3
- package/esm2022/lib/services/org/types.mjs +1 -1
- package/esm2022/lib/services/qr-generator/types.mjs +9 -3
- package/esm2022/lib/version.mjs +2 -2
- package/fesm2022/valtech-components.mjs +94 -74
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/molecules/invitation-card/invitation-card.component.d.ts +1 -1
- package/lib/services/org/types.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -332,39 +332,46 @@ export class CommentComponent {
|
|
|
332
332
|
@if (!props.collapsed) {
|
|
333
333
|
<div class="comment-content" [innerHTML]="processContent(displayContent)"></div>
|
|
334
334
|
|
|
335
|
-
@if (props.reactions && props.reactions.length > 0) {
|
|
336
|
-
<div class="comment-
|
|
337
|
-
@
|
|
338
|
-
<
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
335
|
+
@if ((props.reactions && props.reactions.length > 0) || (props.actions && props.actions.length > 0)) {
|
|
336
|
+
<div class="comment-footer">
|
|
337
|
+
@if (props.reactions && props.reactions.length > 0) {
|
|
338
|
+
<div class="comment-reactions">
|
|
339
|
+
@for (reaction of props.reactions; track reaction.token) {
|
|
340
|
+
<button
|
|
341
|
+
type="button"
|
|
342
|
+
class="reaction-button"
|
|
343
|
+
[class.active]="reaction.active"
|
|
344
|
+
[class.has-count]="reaction.count > 0"
|
|
345
|
+
[style.--reaction-color]="getReactionColor(reaction)"
|
|
346
|
+
[attr.aria-label]="reaction.label"
|
|
347
|
+
(click)="onReactionClick(reaction)"
|
|
348
|
+
>
|
|
349
|
+
<ion-icon [name]="reaction.icon" aria-hidden="true"></ion-icon>
|
|
350
|
+
@if (reaction.count > 0) {
|
|
351
|
+
<span class="reaction-count">{{ formatCount(reaction.count) }}</span>
|
|
352
|
+
}
|
|
353
|
+
</button>
|
|
347
354
|
}
|
|
348
|
-
</
|
|
355
|
+
</div>
|
|
349
356
|
}
|
|
350
|
-
</div>
|
|
351
|
-
}
|
|
352
357
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
358
|
+
@if (props.actions && props.actions.length > 0) {
|
|
359
|
+
<div class="comment-actions">
|
|
360
|
+
@for (action of props.actions; track action.token) {
|
|
361
|
+
<button
|
|
362
|
+
type="button"
|
|
363
|
+
class="comment-action-button"
|
|
364
|
+
[class]="'action-color-' + (action.color || 'medium')"
|
|
365
|
+
[disabled]="action.disabled"
|
|
366
|
+
(click)="onActionClick(action)"
|
|
367
|
+
>
|
|
368
|
+
@if (action.icon) {
|
|
369
|
+
<ion-icon [name]="action.icon" aria-hidden="true"></ion-icon>
|
|
370
|
+
}
|
|
371
|
+
{{ getActionLabel(action) }}
|
|
372
|
+
</button>
|
|
365
373
|
}
|
|
366
|
-
|
|
367
|
-
</ion-button>
|
|
374
|
+
</div>
|
|
368
375
|
}
|
|
369
376
|
</div>
|
|
370
377
|
}
|
|
@@ -401,20 +408,20 @@ export class CommentComponent {
|
|
|
401
408
|
|
|
402
409
|
@if (hasMoreReplies()) {
|
|
403
410
|
<button class="load-more-button" (click)="onLoadMoreClick()">
|
|
404
|
-
<ion-icon name="chatbubble-outline" aria-hidden="true"></ion-icon>
|
|
405
411
|
<span>{{ getLoadMoreRepliesText() }}</span>
|
|
412
|
+
<ion-icon name="chevron-down" aria-hidden="true"></ion-icon>
|
|
406
413
|
</button>
|
|
407
414
|
}
|
|
408
415
|
} @else {
|
|
409
416
|
<button class="view-replies-button" (click)="onLoadMoreClick()">
|
|
410
|
-
<ion-icon name="chatbubble-outline" aria-hidden="true"></ion-icon>
|
|
411
417
|
<span>{{ getViewRepliesText() }}</span>
|
|
418
|
+
<ion-icon name="chevron-down" aria-hidden="true"></ion-icon>
|
|
412
419
|
</button>
|
|
413
420
|
}
|
|
414
421
|
</div>
|
|
415
422
|
}
|
|
416
423
|
</div>
|
|
417
|
-
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 24px;--max-indent: 72px;padding:12px 0}.comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.08);border-radius:8px;padding:12px;margin:-4px}.comment.pinned{border-left:3px solid var(--ion-color-primary);padding-left:12px}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:44px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-dark)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-dark)}.edited-label{font-size:.6875rem;color:var(--ion-color-dark);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-dark)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention){color:var(--ion-color-primary);font-weight:500;cursor:pointer}.comment-content :global(.comment-mention):hover{text-decoration:underline}.comment-content :global(.comment-hashtag){color:var(--ion-color-primary);cursor:pointer}.comment-content :global(.comment-hashtag):hover{text-decoration:underline}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reaction-button{display:flex;align-items:center;gap:4px;background:none;border:none;padding:4px 8px;border-radius:16px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:all .2s ease;background-color:transparent}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.1)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.125rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:500}.comment-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;margin-left:-8px}.comment-actions ion-button{--padding-start: 8px;--padding-end: 8px;font-size:.8125rem;height:32px;text-transform:none;font-weight:500}.expand-button,.collapse-button,.load-more-button,.view-replies-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover,.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon,.load-more-button ion-icon,.view-replies-button ion-icon{font-size:1rem}.expand-button{margin-top:4px;color:var(--ion-color-dark)}.comment-children{margin-top:12px;padding-left:min(var(--indent-size),var(--max-indent));border-left:2px solid var(--ion-color-light-shade)}.comment-children val-comment{display:block}.comment-children val-comment:first-of-type .comment{padding-top:0}.load-more-button,.view-replies-button{margin-top:8px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment.highlighted,:host-context(.ion-palette-dark) .comment.highlighted,:host-context(html.ion-palette-dark) .comment.highlighted,:host-context(body.dark) .comment.highlighted,:host-context([data-theme=dark]) .comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.12)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"], dependencies: [{ kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonPopover, selector: "ion-popover" }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
424
|
+
`, isInline: true, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 20px;--max-indent: 64px;--comment-surface: rgba(var(--ion-color-medium-rgb), .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .1);background:var(--comment-surface);border-radius:16px;padding:14px 16px}.comment.highlighted{background-color:var(--comment-surface-highlighted)}.comment.pinned{box-shadow:inset 3px 0 0 var(--ion-color-primary)}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:48px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-dark)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-dark)}.edited-label{font-size:.6875rem;color:var(--ion-color-dark);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-dark)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention),.comment-content :global(.comment-hashtag){display:inline-block;background:rgba(var(--ion-color-primary-rgb),.14);color:var(--ion-color-primary);font-weight:600;padding:1px 8px;border-radius:999px;cursor:pointer;transition:background-color .15s ease}.comment-content :global(.comment-mention):hover,.comment-content :global(.comment-hashtag):hover{background:rgba(var(--ion-color-primary-rgb),.22);text-decoration:none}.comment-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px}.reaction-button{display:flex;align-items:center;justify-content:center;gap:4px;width:32px;height:32px;padding:0;background:transparent;border:1px solid rgba(var(--ion-color-medium-rgb),.22);border-radius:999px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:background-color .15s ease,border-color .15s ease}.reaction-button.has-count{width:auto;padding:0 10px}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.12);border-color:rgba(var(--ion-color-primary-rgb),.32)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.0625rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:600}.comment-actions{display:flex;flex-wrap:wrap;gap:4px}.comment-action-button{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-color-medium);transition:background-color .15s ease}.comment-action-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.comment-action-button:disabled{opacity:.5;cursor:default}.comment-action-button ion-icon{font-size:1rem}.comment-action-button.action-color-primary{color:var(--ion-color-primary)}.comment-action-button.action-color-danger{color:var(--ion-color-danger)}.comment-action-button.action-color-dark{color:var(--ion-color-dark)}.expand-button,.collapse-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon{font-size:1rem}.load-more-button,.view-replies-button{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid rgba(var(--ion-color-medium-rgb),.24);padding:5px 10px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-text-color);border-radius:999px;transition:background-color .15s ease}.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.load-more-button ion-icon,.view-replies-button ion-icon{font-size:.9375rem}.expand-button{margin-top:4px;color:var(--ion-color-dark)}.comment-children{margin-top:10px;padding-left:min(var(--indent-size),var(--max-indent));display:flex;flex-direction:column;gap:10px}.comment-children val-comment{display:block}.load-more-button,.view-replies-button{margin-top:4px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment,:host-context(.ion-palette-dark) .comment,:host-context(html.ion-palette-dark) .comment,:host-context(body.dark) .comment,:host-context([data-theme=dark]) .comment{--comment-surface: rgba(255, 255, 255, .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .16)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"], dependencies: [{ kind: "component", type: CommentComponent, selector: "val-comment", inputs: ["props"], outputs: ["authorClick", "reactionClick", "actionClick", "menuItemClick", "loadMoreClick", "collapseToggle"] }, { kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: IonPopover, selector: "ion-popover" }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: AvatarComponent, selector: "val-avatar", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
418
425
|
}
|
|
419
426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentComponent, decorators: [{
|
|
420
427
|
type: Component,
|
|
@@ -504,39 +511,46 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
504
511
|
@if (!props.collapsed) {
|
|
505
512
|
<div class="comment-content" [innerHTML]="processContent(displayContent)"></div>
|
|
506
513
|
|
|
507
|
-
@if (props.reactions && props.reactions.length > 0) {
|
|
508
|
-
<div class="comment-
|
|
509
|
-
@
|
|
510
|
-
<
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
514
|
+
@if ((props.reactions && props.reactions.length > 0) || (props.actions && props.actions.length > 0)) {
|
|
515
|
+
<div class="comment-footer">
|
|
516
|
+
@if (props.reactions && props.reactions.length > 0) {
|
|
517
|
+
<div class="comment-reactions">
|
|
518
|
+
@for (reaction of props.reactions; track reaction.token) {
|
|
519
|
+
<button
|
|
520
|
+
type="button"
|
|
521
|
+
class="reaction-button"
|
|
522
|
+
[class.active]="reaction.active"
|
|
523
|
+
[class.has-count]="reaction.count > 0"
|
|
524
|
+
[style.--reaction-color]="getReactionColor(reaction)"
|
|
525
|
+
[attr.aria-label]="reaction.label"
|
|
526
|
+
(click)="onReactionClick(reaction)"
|
|
527
|
+
>
|
|
528
|
+
<ion-icon [name]="reaction.icon" aria-hidden="true"></ion-icon>
|
|
529
|
+
@if (reaction.count > 0) {
|
|
530
|
+
<span class="reaction-count">{{ formatCount(reaction.count) }}</span>
|
|
531
|
+
}
|
|
532
|
+
</button>
|
|
519
533
|
}
|
|
520
|
-
</
|
|
534
|
+
</div>
|
|
521
535
|
}
|
|
522
|
-
</div>
|
|
523
|
-
}
|
|
524
536
|
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
+
@if (props.actions && props.actions.length > 0) {
|
|
538
|
+
<div class="comment-actions">
|
|
539
|
+
@for (action of props.actions; track action.token) {
|
|
540
|
+
<button
|
|
541
|
+
type="button"
|
|
542
|
+
class="comment-action-button"
|
|
543
|
+
[class]="'action-color-' + (action.color || 'medium')"
|
|
544
|
+
[disabled]="action.disabled"
|
|
545
|
+
(click)="onActionClick(action)"
|
|
546
|
+
>
|
|
547
|
+
@if (action.icon) {
|
|
548
|
+
<ion-icon [name]="action.icon" aria-hidden="true"></ion-icon>
|
|
549
|
+
}
|
|
550
|
+
{{ getActionLabel(action) }}
|
|
551
|
+
</button>
|
|
537
552
|
}
|
|
538
|
-
|
|
539
|
-
</ion-button>
|
|
553
|
+
</div>
|
|
540
554
|
}
|
|
541
555
|
</div>
|
|
542
556
|
}
|
|
@@ -573,20 +587,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
573
587
|
|
|
574
588
|
@if (hasMoreReplies()) {
|
|
575
589
|
<button class="load-more-button" (click)="onLoadMoreClick()">
|
|
576
|
-
<ion-icon name="chatbubble-outline" aria-hidden="true"></ion-icon>
|
|
577
590
|
<span>{{ getLoadMoreRepliesText() }}</span>
|
|
591
|
+
<ion-icon name="chevron-down" aria-hidden="true"></ion-icon>
|
|
578
592
|
</button>
|
|
579
593
|
}
|
|
580
594
|
} @else {
|
|
581
595
|
<button class="view-replies-button" (click)="onLoadMoreClick()">
|
|
582
|
-
<ion-icon name="chatbubble-outline" aria-hidden="true"></ion-icon>
|
|
583
596
|
<span>{{ getViewRepliesText() }}</span>
|
|
597
|
+
<ion-icon name="chevron-down" aria-hidden="true"></ion-icon>
|
|
584
598
|
</button>
|
|
585
599
|
}
|
|
586
600
|
</div>
|
|
587
601
|
}
|
|
588
602
|
</div>
|
|
589
|
-
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 24px;--max-indent: 72px;padding:12px 0}.comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.08);border-radius:8px;padding:12px;margin:-4px}.comment.pinned{border-left:3px solid var(--ion-color-primary);padding-left:12px}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:44px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-dark)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-dark)}.edited-label{font-size:.6875rem;color:var(--ion-color-dark);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-dark)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention){color:var(--ion-color-primary);font-weight:500;cursor:pointer}.comment-content :global(.comment-mention):hover{text-decoration:underline}.comment-content :global(.comment-hashtag){color:var(--ion-color-primary);cursor:pointer}.comment-content :global(.comment-hashtag):hover{text-decoration:underline}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.reaction-button{display:flex;align-items:center;gap:4px;background:none;border:none;padding:4px 8px;border-radius:16px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:all .2s ease;background-color:transparent}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.1)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.125rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:500}.comment-actions{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;margin-left:-8px}.comment-actions ion-button{--padding-start: 8px;--padding-end: 8px;font-size:.8125rem;height:32px;text-transform:none;font-weight:500}.expand-button,.collapse-button,.load-more-button,.view-replies-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover,.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon,.load-more-button ion-icon,.view-replies-button ion-icon{font-size:1rem}.expand-button{margin-top:4px;color:var(--ion-color-dark)}.comment-children{margin-top:12px;padding-left:min(var(--indent-size),var(--max-indent));border-left:2px solid var(--ion-color-light-shade)}.comment-children val-comment{display:block}.comment-children val-comment:first-of-type .comment{padding-top:0}.load-more-button,.view-replies-button{margin-top:8px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment.highlighted,:host-context(.ion-palette-dark) .comment.highlighted,:host-context(html.ion-palette-dark) .comment.highlighted,:host-context(body.dark) .comment.highlighted,:host-context([data-theme=dark]) .comment.highlighted{background-color:rgba(var(--ion-color-primary-rgb),.12)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"] }]
|
|
603
|
+
`, styles: ["@charset \"UTF-8\";:root{--val-container-sm: 540px;--val-container-md: 720px;--val-container-lg: 880px;--val-container-xl: 1100px;--val-container-xl-wide: 1280px;--val-container-md-wide: 900px;--val-container-aside: 0px;--val-container-padding: 16px;--ion-color-primary: #7026df;--ion-color-primary-rgb: 112, 38, 223;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #6321c4;--ion-color-primary-tint: #7e3ce2;--ion-color-secondary: #e2ccff;--ion-color-secondary-rgb: 226, 204, 255;--ion-color-secondary-contrast: #000000;--ion-color-secondary-contrast-rgb: 0, 0, 0;--ion-color-secondary-shade: #c7b4e0;--ion-color-secondary-tint: #e5d1ff;--ion-color-texti: #354c69;--ion-color-texti-rgb: 53, 76, 105;--ion-color-texti-contrast: #ffffff;--ion-color-texti-contrast-rgb: 255, 255, 255;--ion-color-texti-shade: #2f435c;--ion-color-texti-tint: #495e78;--ion-color-darki: #090f1b;--ion-color-darki-rgb: 9, 15, 27;--ion-color-darki-contrast: #ffffff;--ion-color-darki-contrast-rgb: 255, 255, 255;--ion-color-darki-shade: #080d18;--ion-color-darki-tint: #222732;--ion-color-medium: #9e9e9e;--ion-color-medium-rgb: 158, 158, 158;--ion-color-medium-contrast: #000000;--ion-color-medium-contrast-rgb: 0, 0, 0;--ion-color-medium-shade: #8b8b8b;--ion-color-medium-tint: #a8a8a8;--ion-color-warning: #ffde38;--ion-color-warning-rgb: 255, 222, 56;--ion-color-warning-contrast: #000000;--ion-color-warning-contrast-rgb: 0, 0, 0;--ion-color-warning-shade: #e0c331;--ion-color-warning-tint: #ffe14c;--swiper-pagination-color: var(--ion-color-primary);--swiper-navigation-color: var(--ion-color-primary);--swiper-pagination-bullet-inactive-color: var(--ion-color-dark)}body.dark,html.ion-palette-dark,body[data-theme=dark]{--ion-color-texti: #8fc1ff;--ion-color-texti-rgb: 143, 193, 255;--ion-color-texti-contrast: #000000;--ion-color-texti-contrast-rgb: 0, 0, 0;--ion-color-texti-shade: #7eaae0;--ion-color-texti-tint: #9ac7ff;--ion-color-darki: #ffffff;--ion-color-darki-rgb: 255, 255, 255;--ion-color-darki-contrast: #000000;--ion-color-darki-contrast-rgb: 0, 0, 0;--ion-color-darki-shade: #e0e0e0;--ion-color-darki-tint: #ffffff;--ion-color-primary: #8f49f8;--ion-color-primary-rgb: 143, 73, 248;--ion-color-primary-contrast: #ffffff;--ion-color-primary-contrast-rgb: 255, 255, 255;--ion-color-primary-shade: #7e40da;--ion-color-primary-tint: #9a5bf9}.ion-color-texti{--ion-color-base: var(--ion-color-texti);--ion-color-base-rgb: var(--ion-color-texti-rgb);--ion-color-contrast: var(--ion-color-texti-contrast);--ion-color-contrast-rgb: var(--ion-color-texti-contrast-rgb);--ion-color-shade: var(--ion-color-texti-shade);--ion-color-tint: var(--ion-color-texti-tint)}.ion-color-darki{--ion-color-base: var(--ion-color-darki);--ion-color-base-rgb: var(--ion-color-darki-rgb);--ion-color-contrast: var(--ion-color-darki-contrast);--ion-color-contrast-rgb: var(--ion-color-darki-contrast-rgb);--ion-color-shade: var(--ion-color-darki-shade);--ion-color-tint: var(--ion-color-darki-tint)}:host{display:block}.comment{--indent-size: 20px;--max-indent: 64px;--comment-surface: rgba(var(--ion-color-medium-rgb), .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .1);background:var(--comment-surface);border-radius:16px;padding:14px 16px}.comment.highlighted{background-color:var(--comment-surface-highlighted)}.comment.pinned{box-shadow:inset 3px 0 0 var(--ion-color-primary)}.comment.collapsed{opacity:.7}.pinned-indicator{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--ion-color-primary);margin-bottom:8px;padding-left:48px}.pinned-indicator ion-icon{font-size:.875rem}.comment-main{display:flex;gap:12px}.comment-avatar{flex-shrink:0;cursor:pointer;padding:0;border:none;background:none;line-height:0;border-radius:50%}.comment-avatar:focus{outline:none}.comment-avatar:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.comment-avatar val-avatar{--size: 36px}.comment-avatar .avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--ion-color-primary),var(--ion-color-secondary));display:flex;align-items:center;justify-content:center;color:#fff;font-size:.875rem;font-weight:600}.comment-body{flex:1;min-width:0}.comment-header{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:4px}.author-info{display:flex;align-items:center;gap:4px;cursor:pointer;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:inherit}.author-info:focus{outline:none}.author-info:focus-visible{outline:.125rem solid var(--ion-color-primary, #7026df);outline-offset:2px;border-radius:inherit}.author-info:hover .author-name{text-decoration:underline}.author-name{font-weight:600;font-size:.875rem;color:var(--ion-text-color)}.verified-badge{color:var(--ion-color-primary);font-size:1rem}.author-username{font-size:.8125rem;color:var(--ion-color-dark)}.comment-meta{display:flex;align-items:center;gap:6px;margin-left:auto}.timestamp{font-size:.75rem;color:var(--ion-color-dark)}.edited-label{font-size:.6875rem;color:var(--ion-color-dark);font-style:italic}.more-button{--padding-start: 4px;--padding-end: 4px;margin:0;height:28px}.more-button ion-icon{font-size:1.125rem;color:var(--ion-color-dark)}.menu-divider{height:1px;background-color:var(--ion-color-light);margin:4px 0}.comment-content{font-size:.875rem;line-height:1.5;color:var(--ion-text-color);word-wrap:break-word;overflow-wrap:break-word}.comment-content :global(.comment-link){color:var(--ion-color-primary);text-decoration:none}.comment-content :global(.comment-link):hover{text-decoration:underline}.comment-content :global(.comment-mention),.comment-content :global(.comment-hashtag){display:inline-block;background:rgba(var(--ion-color-primary-rgb),.14);color:var(--ion-color-primary);font-weight:600;padding:1px 8px;border-radius:999px;cursor:pointer;transition:background-color .15s ease}.comment-content :global(.comment-mention):hover,.comment-content :global(.comment-hashtag):hover{background:rgba(var(--ion-color-primary-rgb),.22);text-decoration:none}.comment-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.comment-reactions{display:flex;flex-wrap:wrap;gap:8px}.reaction-button{display:flex;align-items:center;justify-content:center;gap:4px;width:32px;height:32px;padding:0;background:transparent;border:1px solid rgba(var(--ion-color-medium-rgb),.22);border-radius:999px;cursor:pointer;font-size:.8125rem;color:var(--reaction-color, var(--ion-color-medium));transition:background-color .15s ease,border-color .15s ease}.reaction-button.has-count{width:auto;padding:0 10px}.reaction-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.reaction-button.active{background-color:rgba(var(--ion-color-primary-rgb),.12);border-color:rgba(var(--ion-color-primary-rgb),.32)}.reaction-button.active ion-icon{transform:scale(1.1)}.reaction-button ion-icon{font-size:1.0625rem;transition:transform .2s ease}.reaction-button .reaction-count{font-weight:600}.comment-actions{display:flex;flex-wrap:wrap;gap:4px}.comment-action-button{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:6px 8px;border-radius:8px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-color-medium);transition:background-color .15s ease}.comment-action-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.comment-action-button:disabled{opacity:.5;cursor:default}.comment-action-button ion-icon{font-size:1rem}.comment-action-button.action-color-primary{color:var(--ion-color-primary)}.comment-action-button.action-color-danger{color:var(--ion-color-danger)}.comment-action-button.action-color-dark{color:var(--ion-color-dark)}.expand-button,.collapse-button{display:flex;align-items:center;gap:6px;background:none;border:none;padding:8px 12px;cursor:pointer;font-size:.8125rem;color:var(--ion-color-primary);border-radius:8px;transition:background-color .2s}.expand-button:hover,.collapse-button:hover{background-color:rgba(var(--ion-color-primary-rgb),.1)}.expand-button ion-icon,.collapse-button ion-icon{font-size:1rem}.load-more-button,.view-replies-button{display:inline-flex;align-items:center;gap:4px;background:none;border:1px solid rgba(var(--ion-color-medium-rgb),.24);padding:5px 10px;cursor:pointer;font-size:.8125rem;font-weight:600;color:var(--ion-text-color);border-radius:999px;transition:background-color .15s ease}.load-more-button:hover,.view-replies-button:hover{background-color:rgba(var(--ion-color-medium-rgb),.1)}.load-more-button ion-icon,.view-replies-button ion-icon{font-size:.9375rem}.expand-button{margin-top:4px;color:var(--ion-color-dark)}.comment-children{margin-top:10px;padding-left:min(var(--indent-size),var(--max-indent));display:flex;flex-direction:column;gap:10px}.comment-children val-comment{display:block}.load-more-button,.view-replies-button{margin-top:4px;margin-left:0}ion-popover{--width: 200px}ion-popover ion-list{padding:4px 0}ion-popover ion-item{--min-height: 40px;--padding-start: 12px;font-size:.875rem}ion-popover ion-item ion-icon{font-size:1.125rem;margin-right:8px}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 2px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 2px);height:max(28px,36px - 2px);font-size:max(.6875rem,.8125rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 4px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 4px);height:max(28px,36px - 4px);font-size:max(.6875rem,.75rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 6px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 6px);height:max(28px,36px - 6px);font-size:max(.6875rem,.6875rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 8px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 8px);height:max(28px,36px - 8px);font-size:max(.6875rem,.625rem)}:host-context(val-comment) .comment-avatar val-avatar{--size: max(28px, 36px - 10px)}:host-context(val-comment) .comment-avatar .avatar-placeholder{width:max(28px,36px - 10px);height:max(28px,36px - 10px);font-size:max(.6875rem,.5625rem)}:host-context(.dark) .comment,:host-context(.ion-palette-dark) .comment,:host-context(html.ion-palette-dark) .comment,:host-context(body.dark) .comment,:host-context([data-theme=dark]) .comment{--comment-surface: rgba(255, 255, 255, .06);--comment-surface-highlighted: rgba(var(--ion-color-primary-rgb), .16)}:host-context(.dark) .avatar-placeholder,:host-context(.ion-palette-dark) .avatar-placeholder,:host-context(html.ion-palette-dark) .avatar-placeholder,:host-context(body.dark) .avatar-placeholder,:host-context([data-theme=dark]) .avatar-placeholder{background:linear-gradient(135deg,var(--ion-color-primary-shade),var(--ion-color-secondary-shade))}\n"] }]
|
|
590
604
|
}], ctorParameters: () => [], propDecorators: { props: [{
|
|
591
605
|
type: Input
|
|
592
606
|
}], authorClick: [{
|
|
@@ -602,4 +616,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
602
616
|
}], collapseToggle: [{
|
|
603
617
|
type: Output
|
|
604
618
|
}] } });
|
|
605
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLEtBQUssRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULEdBQUcsRUFDSCxNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjeEIsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLEtBQUs7SUFDTCxlQUFlO0lBQ2YsUUFBUTtJQUNSLFlBQVk7SUFDWixLQUFLO0lBQ0wsVUFBVTtJQUNWLEdBQUc7SUFDSCxXQUFXO0lBQ1gsU0FBUztJQUNULEdBQUc7SUFDSCxNQUFNO0lBQ04sS0FBSztJQUNMLElBQUk7SUFDSixLQUFLO0NBQ04sQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxZQUFZLEdBQUc7SUFDbkIsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixFQUFFO0lBQzdDLEVBQUUsRUFBRSxFQUFFLGFBQWEsRUFBRSx3QkFBd0IsRUFBRTtDQUNoRCxDQUFDO0FBaUxGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBYzNCO1FBYlUsU0FBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUkzQixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUEyQixDQUFDO1FBQzFELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFDOUQsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBMkIsQ0FBQztRQUMxRCxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUE2QixDQUFDO1FBQzlELGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDekQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBeUMsQ0FBQztRQUVyRixtQkFBYyxHQUFXLEVBQUUsQ0FBQztRQUcxQixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0lBQy9FLENBQUM7SUFFRCxrRUFBa0U7SUFDbEUsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSTthQUNSLEtBQUssQ0FBQyxHQUFHLENBQUM7YUFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDZCxJQUFJLENBQUMsRUFBRSxDQUFDO2FBQ1IsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDZixXQUFXLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZSxDQUFDLFNBQXdCO1FBQ3RDLElBQUksT0FBTyxTQUFTLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDbEMsT0FBTyxTQUFTLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztRQUVwQyxJQUFJLE9BQU8sR0FBRyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLE9BQU8sR0FBRyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0YsSUFBSSxLQUFLLEdBQUcsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksSUFBSSxHQUFHLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVsRixPQUFPLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEtBQUssS0FBSyxHQUFHLENBQUM7SUFDeEQsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsS0FBSyxLQUFLLEdBQUcsQ0FBQztJQUNwRCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxLQUFLLElBQUksT0FBTyxFQUFFLENBQUM7WUFDckIsT0FBTyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDaEUsQ0FBQztRQUNELElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNyQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsQ0FBQztRQUVELG9CQUFvQjtRQUNwQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLFlBQVk7UUFDWixNQUFNLFFBQVEsR0FBRyx5Q0FBeUMsQ0FBQztRQUMzRCxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDM0IsUUFBUSxFQUNSLG9GQUFvRixDQUNyRixDQUFDO1FBRUYsWUFBWTtRQUNaLE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUMvQixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsMENBQTBDLENBQUMsQ0FBQztRQUV4RixZQUFZO1FBQ1osTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQy9CLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSwwQ0FBMEMsQ0FBQyxDQUFDO1FBRXhGLHVCQUF1QjtRQUN2QixTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFN0MsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFZO1FBQzdCLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsR0FBRyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDdkIsT0FBTyxHQUFHLENBQUMsU0FBUyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxRQUF5QjtRQUN4QyxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVDLE9BQU8sbUJBQW1CLFFBQVEsQ0FBQyxXQUFXLEdBQUcsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEIsT0FBTywwQkFBMEIsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbkIsT0FBTyxtQkFBbUIsUUFBUSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLHlCQUF5QixDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjLENBQUMsTUFBcUI7UUFDbEMsT0FBTyxNQUFNLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFxQjtRQUNwQyxPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLENBQ0wsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUN6RCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FDdkQsQ0FBQztJQUNKLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQzFDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztRQUMzQyxPQUFPLFlBQVksR0FBRyxRQUFRLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBc0I7UUFDbEMsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUM7U0FDbkMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxXQUFXLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQztRQUN6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO1FBQ2hELE9BQU8sS0FBSyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU07WUFDekIsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZUFBZSxDQUFDLFFBQXlCO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1lBQ3RCLFFBQVE7WUFDUixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQzlCLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBcUI7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsTUFBTTtZQUNOLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFxQjtRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixRQUFRLEVBQUUsSUFBSTtZQUNkLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztZQUN0QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQzlCLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDdkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztZQUN2QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EvTVUsZ0JBQWdCO21HQUFoQixnQkFBZ0IsMFNBbk5qQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0tULDhsVEEyQ1UsZ0JBQWdCLHdMQXBOakIsWUFBWSwrQkFBRSxPQUFPLDJKQUFFLFNBQVMsb1BBQUUsVUFBVSx3REFBRSxPQUFPLHlGQUFFLE9BQU8sME5BQUUsUUFBUSw2RkFBRSxlQUFlOzs0RkFvTnhGLGdCQUFnQjtrQkF2TjVCLFNBQVM7K0JBQ0UsYUFBYSxjQUNYLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLENBQUMsWUFDMUY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdLVDt3REE4Q1EsS0FBSztzQkFBYixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW9uSWNvbiwgSW9uQnV0dG9uLCBJb25Qb3BvdmVyLCBJb25MaXN0LCBJb25JdGVtLCBJb25MYWJlbCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHtcbiAgZWxsaXBzaXNIb3Jpem9udGFsLFxuICBjaGVja21hcmtDaXJjbGUsXG4gIGNoYXRidWJibGVPdXRsaW5lLFxuICBoZWFydE91dGxpbmUsXG4gIGhlYXJ0LFxuICB0aHVtYnNVcE91dGxpbmUsXG4gIHRodW1ic1VwLFxuICBoYXBweU91dGxpbmUsXG4gIGhhcHB5LFxuICBzYWRPdXRsaW5lLFxuICBzYWQsXG4gIGNoZXZyb25Eb3duLFxuICBjaGV2cm9uVXAsXG4gIHBpbixcbiAgcGVuY2lsLFxuICB0cmFzaCxcbiAgZmxhZyxcbiAgc2hhcmUsXG59IGZyb20gJ2lvbmljb25zL2ljb25zJztcbmltcG9ydCB7XG4gIENvbW1lbnRNZXRhZGF0YSxcbiAgQ29tbWVudEF1dGhvcixcbiAgQ29tbWVudFJlYWN0aW9uLFxuICBDb21tZW50QWN0aW9uLFxuICBDb21tZW50TWVudUl0ZW0sXG4gIENvbW1lbnRBdXRob3JDbGlja0V2ZW50LFxuICBDb21tZW50UmVhY3Rpb25DbGlja0V2ZW50LFxuICBDb21tZW50QWN0aW9uQ2xpY2tFdmVudCxcbiAgQ29tbWVudE1lbnVJdGVtQ2xpY2tFdmVudCxcbiAgQ29tbWVudExvYWRNb3JlRXZlbnQsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5hZGRJY29ucyh7XG4gIGVsbGlwc2lzSG9yaXpvbnRhbCxcbiAgY2hlY2ttYXJrQ2lyY2xlLFxuICBjaGF0YnViYmxlT3V0bGluZSxcbiAgaGVhcnRPdXRsaW5lLFxuICBoZWFydCxcbiAgdGh1bWJzVXBPdXRsaW5lLFxuICB0aHVtYnNVcCxcbiAgaGFwcHlPdXRsaW5lLFxuICBoYXBweSxcbiAgc2FkT3V0bGluZSxcbiAgc2FkLFxuICBjaGV2cm9uRG93bixcbiAgY2hldnJvblVwLFxuICBwaW4sXG4gIHBlbmNpbCxcbiAgdHJhc2gsXG4gIGZsYWcsXG4gIHNoYXJlLFxufSk7XG5cbi8qKlxuICogRGVmYXVsdHMgaTE4biAoZXMvZW4pIOKAlCBhdXRvLXJlZ2lzdHJhZG9zIHNpIGVsIGNvbnN1bWVyIG5vIHByb3ZlecOzIGVsXG4gKiBuYW1lc3BhY2UgYENvbW1lbnRgLiBDdWJyZSBlbCBhcmlhLWxhYmVsIGRlbCBhdXRvciAoYXZhdGFyICsgbm9tYnJlKS5cbiAqL1xuY29uc3QgQ09NTUVOVF9JMThOID0ge1xuICBlczogeyB2aWV3UHJvZmlsZU9mOiAnVmVyIHBlcmZpbCBkZSB7bmFtZX0nIH0sXG4gIGVuOiB7IHZpZXdQcm9maWxlT2Y6ICdWaWV3IHByb2ZpbGUgb2Yge25hbWV9JyB9LFxufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsLWNvbW1lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBJb25JY29uLCBJb25CdXR0b24sIElvblBvcG92ZXIsIElvbkxpc3QsIElvbkl0ZW0sIElvbkxhYmVsLCBBdmF0YXJDb21wb25lbnRdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiY29tbWVudFwiXG4gICAgICBbY2xhc3MuaGlnaGxpZ2h0ZWRdPVwicHJvcHMuaGlnaGxpZ2h0ZWRcIlxuICAgICAgW2NsYXNzLnBpbm5lZF09XCJwcm9wcy5waW5uZWRcIlxuICAgICAgW2NsYXNzLmNvbGxhcHNlZF09XCJwcm9wcy5jb2xsYXBzZWRcIlxuICAgICAgW3N0eWxlLi0tZGVwdGhdPVwicHJvcHMuZGVwdGggfHwgMFwiXG4gICAgPlxuICAgICAgQGlmIChwcm9wcy5waW5uZWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInBpbm5lZC1pbmRpY2F0b3JcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBpblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgPHNwYW4+e3sgaTE4bi50KCdwaW5uZWQnKSB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LW1haW5cIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJjb21tZW50LWF2YXRhclwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXV0aG9yTGFiZWwoKVwiIChjbGljayk9XCJvbkF1dGhvckNsaWNrKClcIj5cbiAgICAgICAgICBAaWYgKHByb3BzLmF1dGhvci5hdmF0YXIpIHtcbiAgICAgICAgICAgIDx2YWwtYXZhdGFyIFtwcm9wc109XCJwcm9wcy5hdXRob3IuYXZhdGFyXCI+PC92YWwtYXZhdGFyPlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1wbGFjZWhvbGRlclwiPlxuICAgICAgICAgICAgICB7eyBnZXRJbml0aWFscyhwcm9wcy5hdXRob3IubmFtZSkgfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtYm9keVwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWhlYWRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhdXRob3ItaW5mb1wiIFthdHRyLmFyaWEtbGFiZWxdPVwiYXV0aG9yTGFiZWwoKVwiIChjbGljayk9XCJvbkF1dGhvckNsaWNrKClcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRob3ItbmFtZVwiPnt7IHByb3BzLmF1dGhvci5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLmF1dGhvci52ZXJpZmllZCkge1xuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZVwiIGNsYXNzPVwidmVyaWZpZWQtYmFkZ2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuYXV0aG9yLnVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdXRob3ItdXNlcm5hbWVcIj4mIzY0O3t7IHByb3BzLmF1dGhvci51c2VybmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LW1ldGFcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aW1lc3RhbXBcIj57eyBmb3JtYXRUaW1lc3RhbXAocHJvcHMudGltZXN0YW1wKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5lZGl0ZWQpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVkaXRlZC1sYWJlbFwiPnt7IGkxOG4udCgnZWRpdGVkJykgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKHByb3BzLm1lbnVJdGVtcyAmJiBwcm9wcy5tZW51SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGZpbGw9XCJjbGVhclwiXG4gICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm1vcmUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbaWRdPVwiJ21lbnUtdHJpZ2dlci0nICsgcHJvcHMudG9rZW5cIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ03DoXMgb3BjaW9uZXMnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZWxsaXBzaXMtaG9yaXpvbnRhbFwiIHNsb3Q9XCJpY29uLW9ubHlcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgICAgICAgPGlvbi1wb3BvdmVyIFt0cmlnZ2VyXT1cIidtZW51LXRyaWdnZXItJyArIHByb3BzLnRva2VuXCIgW2Rpc21pc3NPblNlbGVjdF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPGlvbi1saXN0PlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChpdGVtIG9mIHByb3BzLm1lbnVJdGVtczsgdHJhY2sgaXRlbS50b2tlbikge1xuICAgICAgICAgICAgICAgICAgICAgIEBpZiAoaXRlbS5kaXZpZGVyQmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWVudS1kaXZpZGVyXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDxpb24taXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgW2J1dHRvbl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXRhaWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUl0ZW1DbGljayhpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cIml0ZW0uaWNvblwiIHNsb3Q9XCJzdGFydFwiIFtjb2xvcl09XCJpdGVtLmNvbG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWwgW2NvbG9yXT1cIml0ZW0uY29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TWVudUl0ZW1MYWJlbChpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L2lvbi1wb3BvdmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgQGlmICghcHJvcHMuY29sbGFwc2VkKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1jb250ZW50XCIgW2lubmVySFRNTF09XCJwcm9jZXNzQ29udGVudChkaXNwbGF5Q29udGVudClcIj48L2Rpdj5cblxuICAgICAgICAgICAgQGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcHJvcHMucmVhY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtcmVhY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgQGZvciAocmVhY3Rpb24gb2YgcHJvcHMucmVhY3Rpb25zOyB0cmFjayByZWFjdGlvbi50b2tlbikge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwicmVhY3Rpb24uYWN0aXZlXCJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLi0tcmVhY3Rpb24tY29sb3JdPVwiZ2V0UmVhY3Rpb25Db2xvcihyZWFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SZWFjdGlvbkNsaWNrKHJlYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJyZWFjdGlvbi5pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChyZWFjdGlvbi5jb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlYWN0aW9uLWNvdW50XCI+e3sgZm9ybWF0Q291bnQocmVhY3Rpb24uY291bnQpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKHByb3BzLmFjdGlvbnMgJiYgcHJvcHMuYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChhY3Rpb24gb2YgcHJvcHMuYWN0aW9uczsgdHJhY2sgYWN0aW9uLnRva2VuKSB7XG4gICAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBmaWxsPVwiY2xlYXJcIlxuICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiYWN0aW9uLmNvbG9yIHx8ICdtZWRpdW0nXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGFjdGlvbi5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImFjdGlvbi5pY29uXCIgc2xvdD1cInN0YXJ0XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB7eyBnZXRBY3Rpb25MYWJlbChhY3Rpb24pIH19XG4gICAgICAgICAgICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJleHBhbmQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uVG9nZ2xlQ29sbGFwc2UoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGkxOG4udCgnc2hvd0NvbW1lbnQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmICghcHJvcHMuY29sbGFwc2VkICYmIGhhc0NoaWxkcmVuKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtY2hpbGRyZW5cIj5cbiAgICAgICAgICBAaWYgKHByb3BzLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbGxhcHNlLWJ1dHRvblwiIChjbGljayk9XCJvblRvZ2dsZUNvbGxhcHNlKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLXVwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgaTE4bi50KCdoaWRlUmVwbGllcycpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChjYW5TaG93Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgQGZvciAoY2hpbGQgb2YgcHJvcHMuY2hpbGRyZW47IHRyYWNrIGNoaWxkLnRva2VuKSB7XG4gICAgICAgICAgICAgIDx2YWwtY29tbWVudFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJnZXRDaGlsZFByb3BzKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgKGF1dGhvckNsaWNrKT1cImF1dGhvckNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHJlYWN0aW9uQ2xpY2spPVwicmVhY3Rpb25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJhY3Rpb25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChtZW51SXRlbUNsaWNrKT1cIm1lbnVJdGVtQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobG9hZE1vcmVDbGljayk9XCJsb2FkTW9yZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNvbGxhcHNlVG9nZ2xlKT1cImNvbGxhcHNlVG9nZ2xlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L3ZhbC1jb21tZW50PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGhhc01vcmVSZXBsaWVzKCkpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImxvYWQtbW9yZS1idXR0b25cIiAoY2xpY2spPVwib25Mb2FkTW9yZUNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoYXRidWJibGUtb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0TG9hZE1vcmVSZXBsaWVzVGV4dCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ2aWV3LXJlcGxpZXMtYnV0dG9uXCIgKGNsaWNrKT1cIm9uTG9hZE1vcmVDbGljaygpXCI+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hhdGJ1YmJsZS1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZ2V0Vmlld1JlcGxpZXNUZXh0KCkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jb21tZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY29tbWVudFxuICpcbiAqIEEgdmVyc2F0aWxlIGNvbW1lbnQgY29tcG9uZW50IGZvciBmb3J1bXMsIHJldmlld3MsIGFuZCBzb2NpYWwgbWVkaWEuXG4gKiBTdXBwb3J0cyBhdXRob3IgaW5mbywgcmVhY3Rpb25zLCBhY3Rpb25zLCBuZXN0ZWQgcmVwbGllcywgYW5kIG1vcmUuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgY29tbWVudFxuICogPHZhbC1jb21tZW50IFtwcm9wc109XCJ7XG4gKiAgIHRva2VuOiAnMScsXG4gKiAgIGF1dGhvcjogeyBuYW1lOiAnSm9obiBEb2UnLCB1c2VybmFtZTogJ2pvaG5kJyB9LFxuICogICBjb250ZW50OiAnVGhpcyBpcyBhIGdyZWF0IHBvc3QhJyxcbiAqICAgdGltZXN0YW1wOiAnMiBob3VycyBhZ28nXG4gKiB9XCI+PC92YWwtY29tbWVudD5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHJlYWN0aW9ucyBhbmQgYWN0aW9uc1xuICogPHZhbC1jb21tZW50IFtwcm9wc109XCJ7XG4gKiAgIHRva2VuOiAnMScsXG4gKiAgIGF1dGhvcjogeyBuYW1lOiAnSmFuZScsIGF2YXRhcjogYXZhdGFyUHJvcHMsIHZlcmlmaWVkOiB0cnVlIH0sXG4gKiAgIGNvbnRlbnQ6ICdBbWF6aW5nIGNvbnRlbnQhIENoZWNrIG91dCBodHRwczovL2V4YW1wbGUuY29tJyxcbiAqICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICogICByZWFjdGlvbnM6IFtcbiAqICAgICB7IHRva2VuOiAnbGlrZScsIGljb246ICdoZWFydC1vdXRsaW5lJywgY291bnQ6IDQyLCBhY3RpdmU6IGZhbHNlIH1cbiAqICAgXSxcbiAqICAgYWN0aW9uczogW1xuICogICAgIHsgdG9rZW46ICdyZXBseScsIGxhYmVsOiAnUmVwbHknLCBpY29uOiAnY2hhdGJ1YmJsZS1vdXRsaW5lJyB9XG4gKiAgIF0sXG4gKiAgIG1lbnVJdGVtczogW1xuICogICAgIHsgdG9rZW46ICdlZGl0JywgbGFiZWw6ICdFZGl0JywgaWNvbjogJ3BlbmNpbCcgfSxcbiAqICAgICB7IHRva2VuOiAnZGVsZXRlJywgbGFiZWw6ICdEZWxldGUnLCBpY29uOiAndHJhc2gnLCBjb2xvcjogJ2RhbmdlcicgfVxuICogICBdXG4gKiB9XCI+PC92YWwtY29tbWVudD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IENvbW1lbnRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb21tZW50XG4gKiBAb3V0cHV0IGF1dGhvckNsaWNrIC0gRW1pdHMgd2hlbiBhdXRob3IgbmFtZS9hdmF0YXIgaXMgY2xpY2tlZFxuICogQG91dHB1dCByZWFjdGlvbkNsaWNrIC0gRW1pdHMgd2hlbiBhIHJlYWN0aW9uIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgYWN0aW9uQ2xpY2sgLSBFbWl0cyB3aGVuIGFuIGFjdGlvbiBidXR0b24gaXMgY2xpY2tlZFxuICogQG91dHB1dCBtZW51SXRlbUNsaWNrIC0gRW1pdHMgd2hlbiBhIG1lbnUgaXRlbSBpcyBjbGlja2VkXG4gKiBAb3V0cHV0IGxvYWRNb3JlQ2xpY2sgLSBFbWl0cyB3aGVuIGxvYWQgbW9yZSByZXBsaWVzIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgY29sbGFwc2VUb2dnbGUgLSBFbWl0cyB3aGVuIGNvbW1lbnQgaXMgY29sbGFwc2VkL2V4cGFuZGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByb3BzOiBDb21tZW50TWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIGF1dGhvckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50QXV0aG9yQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIHJlYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRSZWFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudEFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBtZW51SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TWVudUl0ZW1DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgbG9hZE1vcmVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudExvYWRNb3JlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjb2xsYXBzZVRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0b2tlbjogc3RyaW5nOyBjb2xsYXBzZWQ6IGJvb2xlYW4gfT4oKTtcblxuICBkaXNwbGF5Q29udGVudDogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ0NvbW1lbnQnLCBDT01NRU5UX0kxOE4pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IHRoaXMucHJvcHMuY29udGVudCB8fCB0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayB8fCAnJztcbiAgfVxuXG4gIC8qKiBBcmlhLWxhYmVsIGFjY2VzaWJsZSBkZWwgYXV0b3IgKGF2YXRhciArIG5vbWJyZSBjbGljYWJsZXMpLiAqL1xuICBhdXRob3JMYWJlbCgpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCd2aWV3UHJvZmlsZU9mJywgJ0NvbW1lbnQnLCB7IG5hbWU6IHRoaXMucHJvcHMuYXV0aG9yLm5hbWUgfSk7XG4gIH1cblxuICBnZXRJbml0aWFscyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBuYW1lXG4gICAgICAuc3BsaXQoJyAnKVxuICAgICAgLm1hcChuID0+IG5bMF0pXG4gICAgICAuam9pbignJylcbiAgICAgIC5zdWJzdHJpbmcoMCwgMilcbiAgICAgIC50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgZm9ybWF0VGltZXN0YW1wKHRpbWVzdGFtcDogc3RyaW5nIHwgRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB0aW1lc3RhbXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGltZXN0YW1wO1xuICAgIH1cblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGlmZiA9IG5vdy5nZXRUaW1lKCkgLSB0aW1lc3RhbXAuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKGRpZmYgLyAxMDAwKTtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuXG4gICAgaWYgKHNlY29uZHMgPCA2MCkgcmV0dXJuIHRoaXMuaTE4bi50KCdqdXN0Tm93Jyk7XG4gICAgaWYgKG1pbnV0ZXMgPCA2MCkgcmV0dXJuIHRoaXMuaTE4bi50KCdtaW51dGVzQWdvJywgJ19nbG9iYWwnLCB7IG1pbnV0ZXM6IG1pbnV0ZXMudG9TdHJpbmcoKSB9KTtcbiAgICBpZiAoaG91cnMgPCAyNCkgcmV0dXJuIHRoaXMuaTE4bi50KCdob3Vyc0FnbycsICdfZ2xvYmFsJywgeyBob3VyczogaG91cnMudG9TdHJpbmcoKSB9KTtcbiAgICBpZiAoZGF5cyA8IDcpIHJldHVybiB0aGlzLmkxOG4udCgnZGF5c0FnbycsICdfZ2xvYmFsJywgeyBkYXlzOiBkYXlzLnRvU3RyaW5nKCkgfSk7XG5cbiAgICByZXR1cm4gdGltZXN0YW1wLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICB9XG5cbiAgZ2V0TG9hZE1vcmVSZXBsaWVzVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5nZXRSZW1haW5pbmdDb3VudCgpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbG9hZE1vcmVSZXBsaWVzJykgKyBgICgke2NvdW50fSlgO1xuICB9XG5cbiAgZ2V0Vmlld1JlcGxpZXNUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnByb3BzLnJlcGx5Q291bnQgfHwgdGhpcy5wcm9wcy5jaGlsZHJlbj8ubGVuZ3RoIHx8IDA7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCd2aWV3UmVwbGllcycpICsgYCAoJHtjb3VudH0pYDtcbiAgfVxuXG4gIGZvcm1hdENvdW50KGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChjb3VudCA+PSAxMDAwMDAwKSB7XG4gICAgICByZXR1cm4gKGNvdW50IC8gMTAwMDAwMCkudG9GaXhlZCgxKS5yZXBsYWNlKC9cXC4wJC8sICcnKSArICdNJztcbiAgICB9XG4gICAgaWYgKGNvdW50ID49IDEwMDApIHtcbiAgICAgIHJldHVybiAoY291bnQgLyAxMDAwKS50b0ZpeGVkKDEpLnJlcGxhY2UoL1xcLjAkLywgJycpICsgJ0snO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByb2Nlc3NDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b0xpbmtpZnkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5lc2NhcGVIdG1sKGNvbnRlbnQpO1xuICAgIH1cblxuICAgIC8vIEVzY2FwZSBIVE1MIGZpcnN0XG4gICAgbGV0IHByb2Nlc3NlZCA9IHRoaXMuZXNjYXBlSHRtbChjb250ZW50KTtcblxuICAgIC8vIFVSTCByZWdleFxuICAgIGNvbnN0IHVybFJlZ2V4ID0gLyhodHRwcz86XFwvXFwvW15cXHM8XStbXlxcczwuLDs6IT8pXFxdJ1wiXSkvZ2k7XG4gICAgcHJvY2Vzc2VkID0gcHJvY2Vzc2VkLnJlcGxhY2UoXG4gICAgICB1cmxSZWdleCxcbiAgICAgICc8YSBocmVmPVwiJDFcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3M9XCJjb21tZW50LWxpbmtcIj4kMTwvYT4nXG4gICAgKTtcblxuICAgIC8vIEBtZW50aW9uc1xuICAgIGNvbnN0IG1lbnRpb25SZWdleCA9IC9AKFxcdyspL2c7XG4gICAgcHJvY2Vzc2VkID0gcHJvY2Vzc2VkLnJlcGxhY2UobWVudGlvblJlZ2V4LCAnPHNwYW4gY2xhc3M9XCJjb21tZW50LW1lbnRpb25cIj5AJDE8L3NwYW4+Jyk7XG5cbiAgICAvLyAjaGFzaHRhZ3NcbiAgICBjb25zdCBoYXNodGFnUmVnZXggPSAvIyhcXHcrKS9nO1xuICAgIHByb2Nlc3NlZCA9IHByb2Nlc3NlZC5yZXBsYWNlKGhhc2h0YWdSZWdleCwgJzxzcGFuIGNsYXNzPVwiY29tbWVudC1oYXNodGFnXCI+IyQxPC9zcGFuPicpO1xuXG4gICAgLy8gUHJlc2VydmUgbGluZSBicmVha3NcbiAgICBwcm9jZXNzZWQgPSBwcm9jZXNzZWQucmVwbGFjZSgvXFxuL2csICc8YnI+Jyk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVIdG1sKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZGl2LnRleHRDb250ZW50ID0gdGV4dDtcbiAgICByZXR1cm4gZGl2LmlubmVySFRNTDtcbiAgfVxuXG4gIGdldFJlYWN0aW9uQ29sb3IocmVhY3Rpb246IENvbW1lbnRSZWFjdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKHJlYWN0aW9uLmFjdGl2ZSAmJiByZWFjdGlvbi5hY3RpdmVDb2xvcikge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtyZWFjdGlvbi5hY3RpdmVDb2xvcn0pYDtcbiAgICB9XG4gICAgaWYgKHJlYWN0aW9uLmFjdGl2ZSkge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICAgIH1cbiAgICBpZiAocmVhY3Rpb24uY29sb3IpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7cmVhY3Rpb24uY29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLW1lZGl1bSknO1xuICB9XG5cbiAgZ2V0QWN0aW9uTGFiZWwoYWN0aW9uOiBDb21tZW50QWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aW9uLmxhYmVsIHx8IGFjdGlvbi5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBnZXRNZW51SXRlbUxhYmVsKGl0ZW06IENvbW1lbnRNZW51SXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWwgfHwgaXRlbS5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISEodGhpcy5wcm9wcy5jaGlsZHJlbiAmJiB0aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8XG4gICAgICAhISh0aGlzLnByb3BzLnJlcGx5Q291bnQgJiYgdGhpcy5wcm9wcy5yZXBseUNvdW50ID4gMClcbiAgICApO1xuICB9XG5cbiAgY2FuU2hvd0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1heERlcHRoID0gdGhpcy5wcm9wcy5tYXhEZXB0aCA/PyAzO1xuICAgIGNvbnN0IGN1cnJlbnREZXB0aCA9IHRoaXMucHJvcHMuZGVwdGggPz8gMDtcbiAgICByZXR1cm4gY3VycmVudERlcHRoIDwgbWF4RGVwdGggJiYgISEodGhpcy5wcm9wcy5jaGlsZHJlbiAmJiB0aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuICB9XG5cbiAgZ2V0Q2hpbGRQcm9wcyhjaGlsZDogQ29tbWVudE1ldGFkYXRhKTogQ29tbWVudE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2hpbGQsXG4gICAgICBkZXB0aDogKHRoaXMucHJvcHMuZGVwdGggPz8gMCkgKyAxLFxuICAgICAgbWF4RGVwdGg6IHRoaXMucHJvcHMubWF4RGVwdGggPz8gMyxcbiAgICB9O1xuICB9XG5cbiAgaGFzTW9yZVJlcGxpZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnJlcGx5Q291bnQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBsb2FkZWRDb3VudCA9IHRoaXMucHJvcHMuY2hpbGRyZW4/Lmxlbmd0aCA/PyAwO1xuICAgIHJldHVybiB0aGlzLnByb3BzLnJlcGx5Q291bnQgPiBsb2FkZWRDb3VudDtcbiAgfVxuXG4gIGdldFJlbWFpbmluZ0NvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnByb3BzLnJlcGx5Q291bnQgPz8gMDtcbiAgICBjb25zdCBsb2FkZWQgPSB0aGlzLnByb3BzLmNoaWxkcmVuPy5sZW5ndGggPz8gMDtcbiAgICByZXR1cm4gdG90YWwgLSBsb2FkZWQ7XG4gIH1cblxuICBvbkF1dGhvckNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aG9yQ2xpY2suZW1pdCh7XG4gICAgICBhdXRob3I6IHRoaXMucHJvcHMuYXV0aG9yLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25SZWFjdGlvbkNsaWNrKHJlYWN0aW9uOiBDb21tZW50UmVhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnJlYWN0aW9uQ2xpY2suZW1pdCh7XG4gICAgICByZWFjdGlvbixcbiAgICAgIGNvbW1lbnRUb2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGlzQWN0aXZlOiAhcmVhY3Rpb24uYWN0aXZlLFxuICAgIH0pO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IENvbW1lbnRBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xuICAgICAgYWN0aW9uLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25NZW51SXRlbUNsaWNrKGl0ZW06IENvbW1lbnRNZW51SXRlbSk6IHZvaWQge1xuICAgIHRoaXMubWVudUl0ZW1DbGljay5lbWl0KHtcbiAgICAgIG1lbnVJdGVtOiBpdGVtLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25Mb2FkTW9yZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmVDbGljay5lbWl0KHtcbiAgICAgIGNvbW1lbnRUb2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGN1cnJlbnRDb3VudDogdGhpcy5wcm9wcy5jaGlsZHJlbj8ubGVuZ3RoID8/IDAsXG4gICAgfSk7XG4gIH1cblxuICBvblRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VUb2dnbGUuZW1pdCh7XG4gICAgICB0b2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGNvbGxhcHNlZDogIXRoaXMucHJvcHMuY29sbGFwc2VkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
619
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbW9sZWN1bGVzL2NvbW1lbnQvY29tbWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixpQkFBaUIsRUFDakIsWUFBWSxFQUNaLEtBQUssRUFDTCxlQUFlLEVBQ2YsUUFBUSxFQUNSLFlBQVksRUFDWixLQUFLLEVBQ0wsVUFBVSxFQUNWLEdBQUcsRUFDSCxXQUFXLEVBQ1gsU0FBUyxFQUNULEdBQUcsRUFDSCxNQUFNLEVBQ04sS0FBSyxFQUNMLElBQUksRUFDSixLQUFLLEdBQ04sTUFBTSxnQkFBZ0IsQ0FBQzs7QUFjeEIsUUFBUSxDQUFDO0lBQ1Asa0JBQWtCO0lBQ2xCLGVBQWU7SUFDZixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLEtBQUs7SUFDTCxlQUFlO0lBQ2YsUUFBUTtJQUNSLFlBQVk7SUFDWixLQUFLO0lBQ0wsVUFBVTtJQUNWLEdBQUc7SUFDSCxXQUFXO0lBQ1gsU0FBUztJQUNULEdBQUc7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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStLVCx3MVZBMkNVLGdCQUFnQix3TEEzTmpCLFlBQVksK0JBQUUsT0FBTywySkFBRSxTQUFTLG9QQUFFLFVBQVUsd0RBQUUsT0FBTyx5RkFBRSxPQUFPLDBOQUFFLFFBQVEsNkZBQUUsZUFBZTs7NEZBMk54RixnQkFBZ0I7a0JBOU41QixTQUFTOytCQUNFLGFBQWEsY0FDWCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsZUFBZSxDQUFDLFlBQzFGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0tUO3dEQThDUSxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGNBQWM7c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJb25JY29uLCBJb25CdXR0b24sIElvblBvcG92ZXIsIElvbkxpc3QsIElvbkl0ZW0sIElvbkxhYmVsIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXIvc3RhbmRhbG9uZSc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQXZhdGFyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQge1xuICBlbGxpcHNpc0hvcml6b250YWwsXG4gIGNoZWNrbWFya0NpcmNsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGhlYXJ0T3V0bGluZSxcbiAgaGVhcnQsXG4gIHRodW1ic1VwT3V0bGluZSxcbiAgdGh1bWJzVXAsXG4gIGhhcHB5T3V0bGluZSxcbiAgaGFwcHksXG4gIHNhZE91dGxpbmUsXG4gIHNhZCxcbiAgY2hldnJvbkRvd24sXG4gIGNoZXZyb25VcCxcbiAgcGluLFxuICBwZW5jaWwsXG4gIHRyYXNoLFxuICBmbGFnLFxuICBzaGFyZSxcbn0gZnJvbSAnaW9uaWNvbnMvaWNvbnMnO1xuaW1wb3J0IHtcbiAgQ29tbWVudE1ldGFkYXRhLFxuICBDb21tZW50QXV0aG9yLFxuICBDb21tZW50UmVhY3Rpb24sXG4gIENvbW1lbnRBY3Rpb24sXG4gIENvbW1lbnRNZW51SXRlbSxcbiAgQ29tbWVudEF1dGhvckNsaWNrRXZlbnQsXG4gIENvbW1lbnRSZWFjdGlvbkNsaWNrRXZlbnQsXG4gIENvbW1lbnRBY3Rpb25DbGlja0V2ZW50LFxuICBDb21tZW50TWVudUl0ZW1DbGlja0V2ZW50LFxuICBDb21tZW50TG9hZE1vcmVFdmVudCxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmFkZEljb25zKHtcbiAgZWxsaXBzaXNIb3Jpem9udGFsLFxuICBjaGVja21hcmtDaXJjbGUsXG4gIGNoYXRidWJibGVPdXRsaW5lLFxuICBoZWFydE91dGxpbmUsXG4gIGhlYXJ0LFxuICB0aHVtYnNVcE91dGxpbmUsXG4gIHRodW1ic1VwLFxuICBoYXBweU91dGxpbmUsXG4gIGhhcHB5LFxuICBzYWRPdXRsaW5lLFxuICBzYWQsXG4gIGNoZXZyb25Eb3duLFxuICBjaGV2cm9uVXAsXG4gIHBpbixcbiAgcGVuY2lsLFxuICB0cmFzaCxcbiAgZmxhZyxcbiAgc2hhcmUsXG59KTtcblxuLyoqXG4gKiBEZWZhdWx0cyBpMThuIChlcy9lbikg4oCUIGF1dG8tcmVnaXN0cmFkb3Mgc2kgZWwgY29uc3VtZXIgbm8gcHJvdmV5w7MgZWxcbiAqIG5hbWVzcGFjZSBgQ29tbWVudGAuIEN1YnJlIGVsIGFyaWEtbGFiZWwgZGVsIGF1dG9yIChhdmF0YXIgKyBub21icmUpLlxuICovXG5jb25zdCBDT01NRU5UX0kxOE4gPSB7XG4gIGVzOiB7IHZpZXdQcm9maWxlT2Y6ICdWZXIgcGVyZmlsIGRlIHtuYW1lfScgfSxcbiAgZW46IHsgdmlld1Byb2ZpbGVPZjogJ1ZpZXcgcHJvZmlsZSBvZiB7bmFtZX0nIH0sXG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtY29tbWVudCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvbkJ1dHRvbiwgSW9uUG9wb3ZlciwgSW9uTGlzdCwgSW9uSXRlbSwgSW9uTGFiZWwsIEF2YXRhckNvbXBvbmVudF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjb21tZW50XCJcbiAgICAgIFtjbGFzcy5oaWdobGlnaHRlZF09XCJwcm9wcy5oaWdobGlnaHRlZFwiXG4gICAgICBbY2xhc3MucGlubmVkXT1cInByb3BzLnBpbm5lZFwiXG4gICAgICBbY2xhc3MuY29sbGFwc2VkXT1cInByb3BzLmNvbGxhcHNlZFwiXG4gICAgICBbc3R5bGUuLS1kZXB0aF09XCJwcm9wcy5kZXB0aCB8fCAwXCJcbiAgICA+XG4gICAgICBAaWYgKHByb3BzLnBpbm5lZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicGlubmVkLWluZGljYXRvclwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGluXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyBpMThuLnQoJ3Bpbm5lZCcpIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtbWFpblwiPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNvbW1lbnQtYXZhdGFyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRob3JMYWJlbCgpXCIgKGNsaWNrKT1cIm9uQXV0aG9yQ2xpY2soKVwiPlxuICAgICAgICAgIEBpZiAocHJvcHMuYXV0aG9yLmF2YXRhcikge1xuICAgICAgICAgICAgPHZhbC1hdmF0YXIgW3Byb3BzXT1cInByb3BzLmF1dGhvci5hdmF0YXJcIj48L3ZhbC1hdmF0YXI+XG4gICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLXBsYWNlaG9sZGVyXCI+XG4gICAgICAgICAgICAgIHt7IGdldEluaXRpYWxzKHByb3BzLmF1dGhvci5uYW1lKSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgfVxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1ib2R5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtaGVhZGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImF1dGhvci1pbmZvXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhdXRob3JMYWJlbCgpXCIgKGNsaWNrKT1cIm9uQXV0aG9yQ2xpY2soKVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dGhvci1uYW1lXCI+e3sgcHJvcHMuYXV0aG9yLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAocHJvcHMuYXV0aG9yLnZlcmlmaWVkKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCIgY2xhc3M9XCJ2ZXJpZmllZC1iYWRnZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGlmIChwcm9wcy5hdXRob3IudXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImF1dGhvci11c2VybmFtZVwiPiYjNjQ7e3sgcHJvcHMuYXV0aG9yLnVzZXJuYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtbWV0YVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpbWVzdGFtcFwiPnt7IGZvcm1hdFRpbWVzdGFtcChwcm9wcy50aW1lc3RhbXApIH19PC9zcGFuPlxuICAgICAgICAgICAgICBAaWYgKHByb3BzLmVkaXRlZCkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZWRpdGVkLWxhYmVsXCI+e3sgaTE4bi50KCdlZGl0ZWQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIEBpZiAocHJvcHMubWVudUl0ZW1zICYmIHByb3BzLm1lbnVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIDxpb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgZmlsbD1cImNsZWFyXCJcbiAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibW9yZS1idXR0b25cIlxuICAgICAgICAgICAgICAgIFtpZF09XCInbWVudS10cmlnZ2VyLScgKyBwcm9wcy50b2tlblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInTcOhcyBvcGNpb25lcydcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJlbGxpcHNpcy1ob3Jpem9udGFsXCIgc2xvdD1cImljb24tb25seVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICAgICAgICA8aW9uLXBvcG92ZXIgW3RyaWdnZXJdPVwiJ21lbnUtdHJpZ2dlci0nICsgcHJvcHMudG9rZW5cIiBbZGlzbWlzc09uU2VsZWN0XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8aW9uLWxpc3Q+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgcHJvcHMubWVudUl0ZW1zOyB0cmFjayBpdGVtLnRva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmRpdmlkZXJCZWZvcmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPGlvbi1pdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2RldGFpbF09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25NZW51SXRlbUNsaWNrKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiaXRlbS5pY29uXCIgc2xvdD1cInN0YXJ0XCIgW2NvbG9yXT1cIml0ZW0uY29sb3JcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1sYWJlbCBbY29sb3JdPVwiaXRlbS5jb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRNZW51SXRlbUxhYmVsKGl0ZW0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvaW9uLXBvcG92ZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICBAaWYgKCFwcm9wcy5jb2xsYXBzZWQpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LWNvbnRlbnRcIiBbaW5uZXJIVE1MXT1cInByb2Nlc3NDb250ZW50KGRpc3BsYXlDb250ZW50KVwiPjwvZGl2PlxuXG4gICAgICAgICAgICBAaWYgKChwcm9wcy5yZWFjdGlvbnMgJiYgcHJvcHMucmVhY3Rpb25zLmxlbmd0aCA+IDApIHx8IChwcm9wcy5hY3Rpb25zICYmIHByb3BzLmFjdGlvbnMubGVuZ3RoID4gMCkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcHJvcHMucmVhY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb21tZW50LXJlYWN0aW9uc1wiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChyZWFjdGlvbiBvZiBwcm9wcy5yZWFjdGlvbnM7IHRyYWNrIHJlYWN0aW9uLnRva2VuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlYWN0aW9uLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYWN0aXZlXT1cInJlYWN0aW9uLmFjdGl2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuaGFzLWNvdW50XT1cInJlYWN0aW9uLmNvdW50ID4gMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuLS1yZWFjdGlvbi1jb2xvcl09XCJnZXRSZWFjdGlvbkNvbG9yKHJlYWN0aW9uKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlYWN0aW9uLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlYWN0aW9uQ2xpY2socmVhY3Rpb24pXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwicmVhY3Rpb24uaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHJlYWN0aW9uLmNvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlYWN0aW9uLWNvdW50XCI+e3sgZm9ybWF0Q291bnQocmVhY3Rpb24uY291bnQpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBAaWYgKHByb3BzLmFjdGlvbnMgJiYgcHJvcHMuYWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29tbWVudC1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBwcm9wcy5hY3Rpb25zOyB0cmFjayBhY3Rpb24udG9rZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29tbWVudC1hY3Rpb24tYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCInYWN0aW9uLWNvbG9yLScgKyAoYWN0aW9uLmNvbG9yIHx8ICdtZWRpdW0nKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkFjdGlvbkNsaWNrKGFjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYWN0aW9uLmljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImFjdGlvbi5pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldEFjdGlvbkxhYmVsKGFjdGlvbikgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJleHBhbmQtYnV0dG9uXCIgKGNsaWNrKT1cIm9uVG9nZ2xlQ29sbGFwc2UoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGkxOG4udCgnc2hvd0NvbW1lbnQnKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmICghcHJvcHMuY29sbGFwc2VkICYmIGhhc0NoaWxkcmVuKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbW1lbnQtY2hpbGRyZW5cIj5cbiAgICAgICAgICBAaWYgKHByb3BzLmNvbGxhcHNlZCkge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbGxhcHNlLWJ1dHRvblwiIChjbGljayk9XCJvblRvZ2dsZUNvbGxhcHNlKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLXVwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgaTE4bi50KCdoaWRlUmVwbGllcycpIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIChjYW5TaG93Q2hpbGRyZW4oKSkge1xuICAgICAgICAgICAgQGZvciAoY2hpbGQgb2YgcHJvcHMuY2hpbGRyZW47IHRyYWNrIGNoaWxkLnRva2VuKSB7XG4gICAgICAgICAgICAgIDx2YWwtY29tbWVudFxuICAgICAgICAgICAgICAgIFtwcm9wc109XCJnZXRDaGlsZFByb3BzKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgKGF1dGhvckNsaWNrKT1cImF1dGhvckNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKHJlYWN0aW9uQ2xpY2spPVwicmVhY3Rpb25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChhY3Rpb25DbGljayk9XCJhY3Rpb25DbGljay5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgIChtZW51SXRlbUNsaWNrKT1cIm1lbnVJdGVtQ2xpY2suZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAobG9hZE1vcmVDbGljayk9XCJsb2FkTW9yZUNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgKGNvbGxhcHNlVG9nZ2xlKT1cImNvbGxhcHNlVG9nZ2xlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgID48L3ZhbC1jb21tZW50PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGhhc01vcmVSZXBsaWVzKCkpIHtcbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImxvYWQtbW9yZS1idXR0b25cIiAoY2xpY2spPVwib25Mb2FkTW9yZUNsaWNrKClcIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRMb2FkTW9yZVJlcGxpZXNUZXh0KCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ2aWV3LXJlcGxpZXMtYnV0dG9uXCIgKGNsaWNrKT1cIm9uTG9hZE1vcmVDbGljaygpXCI+XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGdldFZpZXdSZXBsaWVzVGV4dCgpIH19PC9zcGFuPlxuICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZXZyb24tZG93blwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9jb21tZW50LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuLyoqXG4gKiB2YWwtY29tbWVudFxuICpcbiAqIEEgdmVyc2F0aWxlIGNvbW1lbnQgY29tcG9uZW50IGZvciBmb3J1bXMsIHJldmlld3MsIGFuZCBzb2NpYWwgbWVkaWEuXG4gKiBTdXBwb3J0cyBhdXRob3IgaW5mbywgcmVhY3Rpb25zLCBhY3Rpb25zLCBuZXN0ZWQgcmVwbGllcywgYW5kIG1vcmUuXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgY29tbWVudFxuICogPHZhbC1jb21tZW50IFtwcm9wc109XCJ7XG4gKiAgIHRva2VuOiAnMScsXG4gKiAgIGF1dGhvcjogeyBuYW1lOiAnSm9obiBEb2UnLCB1c2VybmFtZTogJ2pvaG5kJyB9LFxuICogICBjb250ZW50OiAnVGhpcyBpcyBhIGdyZWF0IHBvc3QhJyxcbiAqICAgdGltZXN0YW1wOiAnMiBob3VycyBhZ28nXG4gKiB9XCI+PC92YWwtY29tbWVudD5cbiAqXG4gKiBAZXhhbXBsZSBXaXRoIHJlYWN0aW9ucyBhbmQgYWN0aW9uc1xuICogPHZhbC1jb21tZW50IFtwcm9wc109XCJ7XG4gKiAgIHRva2VuOiAnMScsXG4gKiAgIGF1dGhvcjogeyBuYW1lOiAnSmFuZScsIGF2YXRhcjogYXZhdGFyUHJvcHMsIHZlcmlmaWVkOiB0cnVlIH0sXG4gKiAgIGNvbnRlbnQ6ICdBbWF6aW5nIGNvbnRlbnQhIENoZWNrIG91dCBodHRwczovL2V4YW1wbGUuY29tJyxcbiAqICAgdGltZXN0YW1wOiBuZXcgRGF0ZSgpLFxuICogICByZWFjdGlvbnM6IFtcbiAqICAgICB7IHRva2VuOiAnbGlrZScsIGljb246ICdoZWFydC1vdXRsaW5lJywgY291bnQ6IDQyLCBhY3RpdmU6IGZhbHNlIH1cbiAqICAgXSxcbiAqICAgYWN0aW9uczogW1xuICogICAgIHsgdG9rZW46ICdyZXBseScsIGxhYmVsOiAnUmVwbHknLCBpY29uOiAnY2hhdGJ1YmJsZS1vdXRsaW5lJyB9XG4gKiAgIF0sXG4gKiAgIG1lbnVJdGVtczogW1xuICogICAgIHsgdG9rZW46ICdlZGl0JywgbGFiZWw6ICdFZGl0JywgaWNvbjogJ3BlbmNpbCcgfSxcbiAqICAgICB7IHRva2VuOiAnZGVsZXRlJywgbGFiZWw6ICdEZWxldGUnLCBpY29uOiAndHJhc2gnLCBjb2xvcjogJ2RhbmdlcicgfVxuICogICBdXG4gKiB9XCI+PC92YWwtY29tbWVudD5cbiAqXG4gKiBAaW5wdXQgcHJvcHM6IENvbW1lbnRNZXRhZGF0YSAtIENvbmZpZ3VyYXRpb24gZm9yIHRoZSBjb21tZW50XG4gKiBAb3V0cHV0IGF1dGhvckNsaWNrIC0gRW1pdHMgd2hlbiBhdXRob3IgbmFtZS9hdmF0YXIgaXMgY2xpY2tlZFxuICogQG91dHB1dCByZWFjdGlvbkNsaWNrIC0gRW1pdHMgd2hlbiBhIHJlYWN0aW9uIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgYWN0aW9uQ2xpY2sgLSBFbWl0cyB3aGVuIGFuIGFjdGlvbiBidXR0b24gaXMgY2xpY2tlZFxuICogQG91dHB1dCBtZW51SXRlbUNsaWNrIC0gRW1pdHMgd2hlbiBhIG1lbnUgaXRlbSBpcyBjbGlja2VkXG4gKiBAb3V0cHV0IGxvYWRNb3JlQ2xpY2sgLSBFbWl0cyB3aGVuIGxvYWQgbW9yZSByZXBsaWVzIGlzIGNsaWNrZWRcbiAqIEBvdXRwdXQgY29sbGFwc2VUb2dnbGUgLSBFbWl0cyB3aGVuIGNvbW1lbnQgaXMgY29sbGFwc2VkL2V4cGFuZGVkXG4gKi9cbmV4cG9ydCBjbGFzcyBDb21tZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIGkxOG4gPSBpbmplY3QoSTE4blNlcnZpY2UpO1xuXG4gIEBJbnB1dCgpIHByb3BzOiBDb21tZW50TWV0YWRhdGE7XG5cbiAgQE91dHB1dCgpIGF1dGhvckNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50QXV0aG9yQ2xpY2tFdmVudD4oKTtcbiAgQE91dHB1dCgpIHJlYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPENvbW1lbnRSZWFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBhY3Rpb25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudEFjdGlvbkNsaWNrRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBtZW51SXRlbUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxDb21tZW50TWVudUl0ZW1DbGlja0V2ZW50PigpO1xuICBAT3V0cHV0KCkgbG9hZE1vcmVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Q29tbWVudExvYWRNb3JlRXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBjb2xsYXBzZVRvZ2dsZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyB0b2tlbjogc3RyaW5nOyBjb2xsYXBzZWQ6IGJvb2xlYW4gfT4oKTtcblxuICBkaXNwbGF5Q29udGVudDogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5pMThuLnJlZ2lzdGVyRGVmYXVsdHMoJ0NvbW1lbnQnLCBDT01NRU5UX0kxOE4pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNwbGF5Q29udGVudCA9IHRoaXMucHJvcHMuY29udGVudCB8fCB0aGlzLnByb3BzLmNvbnRlbnRGYWxsYmFjayB8fCAnJztcbiAgfVxuXG4gIC8qKiBBcmlhLWxhYmVsIGFjY2VzaWJsZSBkZWwgYXV0b3IgKGF2YXRhciArIG5vbWJyZSBjbGljYWJsZXMpLiAqL1xuICBhdXRob3JMYWJlbCgpOiBzdHJpbmcge1xuICAgIHRoaXMuaTE4bi5sYW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCd2aWV3UHJvZmlsZU9mJywgJ0NvbW1lbnQnLCB7IG5hbWU6IHRoaXMucHJvcHMuYXV0aG9yLm5hbWUgfSk7XG4gIH1cblxuICBnZXRJbml0aWFscyhuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBuYW1lXG4gICAgICAuc3BsaXQoJyAnKVxuICAgICAgLm1hcChuID0+IG5bMF0pXG4gICAgICAuam9pbignJylcbiAgICAgIC5zdWJzdHJpbmcoMCwgMilcbiAgICAgIC50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgZm9ybWF0VGltZXN0YW1wKHRpbWVzdGFtcDogc3RyaW5nIHwgRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKHR5cGVvZiB0aW1lc3RhbXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGltZXN0YW1wO1xuICAgIH1cblxuICAgIGNvbnN0IG5vdyA9IG5ldyBEYXRlKCk7XG4gICAgY29uc3QgZGlmZiA9IG5vdy5nZXRUaW1lKCkgLSB0aW1lc3RhbXAuZ2V0VGltZSgpO1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKGRpZmYgLyAxMDAwKTtcbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApO1xuICAgIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xuICAgIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuXG4gICAgaWYgKHNlY29uZHMgPCA2MCkgcmV0dXJuIHRoaXMuaTE4bi50KCdqdXN0Tm93Jyk7XG4gICAgaWYgKG1pbnV0ZXMgPCA2MCkgcmV0dXJuIHRoaXMuaTE4bi50KCdtaW51dGVzQWdvJywgJ19nbG9iYWwnLCB7IG1pbnV0ZXM6IG1pbnV0ZXMudG9TdHJpbmcoKSB9KTtcbiAgICBpZiAoaG91cnMgPCAyNCkgcmV0dXJuIHRoaXMuaTE4bi50KCdob3Vyc0FnbycsICdfZ2xvYmFsJywgeyBob3VyczogaG91cnMudG9TdHJpbmcoKSB9KTtcbiAgICBpZiAoZGF5cyA8IDcpIHJldHVybiB0aGlzLmkxOG4udCgnZGF5c0FnbycsICdfZ2xvYmFsJywgeyBkYXlzOiBkYXlzLnRvU3RyaW5nKCkgfSk7XG5cbiAgICByZXR1cm4gdGltZXN0YW1wLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICB9XG5cbiAgZ2V0TG9hZE1vcmVSZXBsaWVzVGV4dCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvdW50ID0gdGhpcy5nZXRSZW1haW5pbmdDb3VudCgpO1xuICAgIHJldHVybiB0aGlzLmkxOG4udCgnbG9hZE1vcmVSZXBsaWVzJykgKyBgICgke2NvdW50fSlgO1xuICB9XG5cbiAgZ2V0Vmlld1JlcGxpZXNUZXh0KCk6IHN0cmluZyB7XG4gICAgY29uc3QgY291bnQgPSB0aGlzLnByb3BzLnJlcGx5Q291bnQgfHwgdGhpcy5wcm9wcy5jaGlsZHJlbj8ubGVuZ3RoIHx8IDA7XG4gICAgcmV0dXJuIHRoaXMuaTE4bi50KCd2aWV3UmVwbGllcycpICsgYCAoJHtjb3VudH0pYDtcbiAgfVxuXG4gIGZvcm1hdENvdW50KGNvdW50OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChjb3VudCA+PSAxMDAwMDAwKSB7XG4gICAgICByZXR1cm4gKGNvdW50IC8gMTAwMDAwMCkudG9GaXhlZCgxKS5yZXBsYWNlKC9cXC4wJC8sICcnKSArICdNJztcbiAgICB9XG4gICAgaWYgKGNvdW50ID49IDEwMDApIHtcbiAgICAgIHJldHVybiAoY291bnQgLyAxMDAwKS50b0ZpeGVkKDEpLnJlcGxhY2UoL1xcLjAkLywgJycpICsgJ0snO1xuICAgIH1cbiAgICByZXR1cm4gY291bnQudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHByb2Nlc3NDb250ZW50KGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b0xpbmtpZnkgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gdGhpcy5lc2NhcGVIdG1sKGNvbnRlbnQpO1xuICAgIH1cblxuICAgIC8vIEVzY2FwZSBIVE1MIGZpcnN0XG4gICAgbGV0IHByb2Nlc3NlZCA9IHRoaXMuZXNjYXBlSHRtbChjb250ZW50KTtcblxuICAgIC8vIFVSTCByZWdleFxuICAgIGNvbnN0IHVybFJlZ2V4ID0gLyhodHRwcz86XFwvXFwvW15cXHM8XStbXlxcczwuLDs6IT8pXFxdJ1wiXSkvZ2k7XG4gICAgcHJvY2Vzc2VkID0gcHJvY2Vzc2VkLnJlcGxhY2UoXG4gICAgICB1cmxSZWdleCxcbiAgICAgICc8YSBocmVmPVwiJDFcIiB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgY2xhc3M9XCJjb21tZW50LWxpbmtcIj4kMTwvYT4nXG4gICAgKTtcblxuICAgIC8vIEBtZW50aW9uc1xuICAgIGNvbnN0IG1lbnRpb25SZWdleCA9IC9AKFxcdyspL2c7XG4gICAgcHJvY2Vzc2VkID0gcHJvY2Vzc2VkLnJlcGxhY2UobWVudGlvblJlZ2V4LCAnPHNwYW4gY2xhc3M9XCJjb21tZW50LW1lbnRpb25cIj5AJDE8L3NwYW4+Jyk7XG5cbiAgICAvLyAjaGFzaHRhZ3NcbiAgICBjb25zdCBoYXNodGFnUmVnZXggPSAvIyhcXHcrKS9nO1xuICAgIHByb2Nlc3NlZCA9IHByb2Nlc3NlZC5yZXBsYWNlKGhhc2h0YWdSZWdleCwgJzxzcGFuIGNsYXNzPVwiY29tbWVudC1oYXNodGFnXCI+IyQxPC9zcGFuPicpO1xuXG4gICAgLy8gUHJlc2VydmUgbGluZSBicmVha3NcbiAgICBwcm9jZXNzZWQgPSBwcm9jZXNzZWQucmVwbGFjZSgvXFxuL2csICc8YnI+Jyk7XG5cbiAgICByZXR1cm4gcHJvY2Vzc2VkO1xuICB9XG5cbiAgcHJpdmF0ZSBlc2NhcGVIdG1sKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZGl2LnRleHRDb250ZW50ID0gdGV4dDtcbiAgICByZXR1cm4gZGl2LmlubmVySFRNTDtcbiAgfVxuXG4gIGdldFJlYWN0aW9uQ29sb3IocmVhY3Rpb246IENvbW1lbnRSZWFjdGlvbik6IHN0cmluZyB7XG4gICAgaWYgKHJlYWN0aW9uLmFjdGl2ZSAmJiByZWFjdGlvbi5hY3RpdmVDb2xvcikge1xuICAgICAgcmV0dXJuIGB2YXIoLS1pb24tY29sb3ItJHtyZWFjdGlvbi5hY3RpdmVDb2xvcn0pYDtcbiAgICB9XG4gICAgaWYgKHJlYWN0aW9uLmFjdGl2ZSkge1xuICAgICAgcmV0dXJuICd2YXIoLS1pb24tY29sb3ItcHJpbWFyeSknO1xuICAgIH1cbiAgICBpZiAocmVhY3Rpb24uY29sb3IpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7cmVhY3Rpb24uY29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiAndmFyKC0taW9uLWNvbG9yLW1lZGl1bSknO1xuICB9XG5cbiAgZ2V0QWN0aW9uTGFiZWwoYWN0aW9uOiBDb21tZW50QWN0aW9uKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYWN0aW9uLmxhYmVsIHx8IGFjdGlvbi5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBnZXRNZW51SXRlbUxhYmVsKGl0ZW06IENvbW1lbnRNZW51SXRlbSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGl0ZW0ubGFiZWwgfHwgaXRlbS5jb250ZW50RmFsbGJhY2sgfHwgJyc7XG4gIH1cblxuICBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgISEodGhpcy5wcm9wcy5jaGlsZHJlbiAmJiB0aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aCA+IDApIHx8XG4gICAgICAhISh0aGlzLnByb3BzLnJlcGx5Q291bnQgJiYgdGhpcy5wcm9wcy5yZXBseUNvdW50ID4gMClcbiAgICApO1xuICB9XG5cbiAgY2FuU2hvd0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1heERlcHRoID0gdGhpcy5wcm9wcy5tYXhEZXB0aCA/PyAzO1xuICAgIGNvbnN0IGN1cnJlbnREZXB0aCA9IHRoaXMucHJvcHMuZGVwdGggPz8gMDtcbiAgICByZXR1cm4gY3VycmVudERlcHRoIDwgbWF4RGVwdGggJiYgISEodGhpcy5wcm9wcy5jaGlsZHJlbiAmJiB0aGlzLnByb3BzLmNoaWxkcmVuLmxlbmd0aCA+IDApO1xuICB9XG5cbiAgZ2V0Q2hpbGRQcm9wcyhjaGlsZDogQ29tbWVudE1ldGFkYXRhKTogQ29tbWVudE1ldGFkYXRhIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uY2hpbGQsXG4gICAgICBkZXB0aDogKHRoaXMucHJvcHMuZGVwdGggPz8gMCkgKyAxLFxuICAgICAgbWF4RGVwdGg6IHRoaXMucHJvcHMubWF4RGVwdGggPz8gMyxcbiAgICB9O1xuICB9XG5cbiAgaGFzTW9yZVJlcGxpZXMoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnByb3BzLnJlcGx5Q291bnQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBsb2FkZWRDb3VudCA9IHRoaXMucHJvcHMuY2hpbGRyZW4/Lmxlbmd0aCA/PyAwO1xuICAgIHJldHVybiB0aGlzLnByb3BzLnJlcGx5Q291bnQgPiBsb2FkZWRDb3VudDtcbiAgfVxuXG4gIGdldFJlbWFpbmluZ0NvdW50KCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnByb3BzLnJlcGx5Q291bnQgPz8gMDtcbiAgICBjb25zdCBsb2FkZWQgPSB0aGlzLnByb3BzLmNoaWxkcmVuPy5sZW5ndGggPz8gMDtcbiAgICByZXR1cm4gdG90YWwgLSBsb2FkZWQ7XG4gIH1cblxuICBvbkF1dGhvckNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMuYXV0aG9yQ2xpY2suZW1pdCh7XG4gICAgICBhdXRob3I6IHRoaXMucHJvcHMuYXV0aG9yLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25SZWFjdGlvbkNsaWNrKHJlYWN0aW9uOiBDb21tZW50UmVhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnJlYWN0aW9uQ2xpY2suZW1pdCh7XG4gICAgICByZWFjdGlvbixcbiAgICAgIGNvbW1lbnRUb2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGlzQWN0aXZlOiAhcmVhY3Rpb24uYWN0aXZlLFxuICAgIH0pO1xuICB9XG5cbiAgb25BY3Rpb25DbGljayhhY3Rpb246IENvbW1lbnRBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGlvbkNsaWNrLmVtaXQoe1xuICAgICAgYWN0aW9uLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25NZW51SXRlbUNsaWNrKGl0ZW06IENvbW1lbnRNZW51SXRlbSk6IHZvaWQge1xuICAgIHRoaXMubWVudUl0ZW1DbGljay5lbWl0KHtcbiAgICAgIG1lbnVJdGVtOiBpdGVtLFxuICAgICAgY29tbWVudFRva2VuOiB0aGlzLnByb3BzLnRva2VuLFxuICAgIH0pO1xuICB9XG5cbiAgb25Mb2FkTW9yZUNsaWNrKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZE1vcmVDbGljay5lbWl0KHtcbiAgICAgIGNvbW1lbnRUb2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGN1cnJlbnRDb3VudDogdGhpcy5wcm9wcy5jaGlsZHJlbj8ubGVuZ3RoID8/IDAsXG4gICAgfSk7XG4gIH1cblxuICBvblRvZ2dsZUNvbGxhcHNlKCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGFwc2VUb2dnbGUuZW1pdCh7XG4gICAgICB0b2tlbjogdGhpcy5wcm9wcy50b2tlbixcbiAgICAgIGNvbGxhcHNlZDogIXRoaXMucHJvcHMuY29sbGFwc2VkLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -20,7 +20,7 @@ import * as i0 from "@angular/core";
|
|
|
20
20
|
* token: invite.orgId,
|
|
21
21
|
* orgName: invite.orgName,
|
|
22
22
|
* inviterName: invite.inviterName,
|
|
23
|
-
* role: invite.
|
|
23
|
+
* role: invite.roleLabel,
|
|
24
24
|
* accepting: accepting() === invite.orgId
|
|
25
25
|
* }"
|
|
26
26
|
* (onAccept)="accept(invite)"
|
|
@@ -99,7 +99,7 @@ export class InvitationCardComponent {
|
|
|
99
99
|
}
|
|
100
100
|
</div>
|
|
101
101
|
</div>
|
|
102
|
-
`, isInline: true, styles: [":host{display:block}.invitation-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--ion-card-background, var(--ion-background-color));border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px}.invitation-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.invitation-card__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invitation-card__subtitle{font-size:.82rem;color:rgba(var(--ion-color-dark-rgb),.7)}.invitation-card__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.invitation-card__spinner{width:20px;height:20px;color:var(--ion-color-dark)}.invitation-card__action{border:1.5px solid transparent;background:none;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 14px;border-radius:20px;white-space:nowrap;transition:opacity .15s ease}.invitation-card__action:active{opacity:.7}.invitation-card__action:disabled{opacity:.4;cursor:default}.invitation-card__action--accept{background:var(--ion-color-dark);border-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)}.invitation-card__action--decline{background:transparent;border-color:rgba(var(--ion-color-dark-rgb),.35);color:var(--ion-color-dark)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
|
|
102
|
+
`, isInline: true, styles: [":host{display:block}:host+:host{margin-top:12px}.invitation-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--ion-card-background, var(--ion-background-color));border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px}.invitation-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.invitation-card__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invitation-card__subtitle{font-size:.82rem;color:rgba(var(--ion-color-dark-rgb),.7)}.invitation-card__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.invitation-card__spinner{width:20px;height:20px;color:var(--ion-color-dark)}.invitation-card__action{border:1.5px solid transparent;background:none;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 14px;border-radius:20px;white-space:nowrap;transition:opacity .15s ease}.invitation-card__action:active{opacity:.7}.invitation-card__action:disabled{opacity:.4;cursor:default}.invitation-card__action--accept{background:var(--ion-color-dark);border-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)}.invitation-card__action--decline{background:transparent;border-color:rgba(var(--ion-color-dark-rgb),.35);color:var(--ion-color-dark)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonSpinner, selector: "ion-spinner", inputs: ["color", "duration", "name", "paused"] }] }); }
|
|
103
103
|
}
|
|
104
104
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InvitationCardComponent, decorators: [{
|
|
105
105
|
type: Component,
|
|
@@ -134,10 +134,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
134
134
|
}
|
|
135
135
|
</div>
|
|
136
136
|
</div>
|
|
137
|
-
`, styles: [":host{display:block}.invitation-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--ion-card-background, var(--ion-background-color));border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px}.invitation-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.invitation-card__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invitation-card__subtitle{font-size:.82rem;color:rgba(var(--ion-color-dark-rgb),.7)}.invitation-card__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.invitation-card__spinner{width:20px;height:20px;color:var(--ion-color-dark)}.invitation-card__action{border:1.5px solid transparent;background:none;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 14px;border-radius:20px;white-space:nowrap;transition:opacity .15s ease}.invitation-card__action:active{opacity:.7}.invitation-card__action:disabled{opacity:.4;cursor:default}.invitation-card__action--accept{background:var(--ion-color-dark);border-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)}.invitation-card__action--decline{background:transparent;border-color:rgba(var(--ion-color-dark-rgb),.35);color:var(--ion-color-dark)}\n"] }]
|
|
137
|
+
`, styles: [":host{display:block}:host+:host{margin-top:12px}.invitation-card{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--ion-card-background, var(--ion-background-color));border:1px solid rgba(var(--ion-color-dark-rgb),.14);border-radius:12px}.invitation-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.invitation-card__name{font-weight:600;font-size:.95rem;color:var(--ion-color-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invitation-card__subtitle{font-size:.82rem;color:rgba(var(--ion-color-dark-rgb),.7)}.invitation-card__actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.invitation-card__spinner{width:20px;height:20px;color:var(--ion-color-dark)}.invitation-card__action{border:1.5px solid transparent;background:none;cursor:pointer;font-size:.82rem;font-weight:600;padding:6px 14px;border-radius:20px;white-space:nowrap;transition:opacity .15s ease}.invitation-card__action:active{opacity:.7}.invitation-card__action:disabled{opacity:.4;cursor:default}.invitation-card__action--accept{background:var(--ion-color-dark);border-color:var(--ion-color-dark);color:var(--ion-color-dark-contrast)}.invitation-card__action--decline{background:transparent;border-color:rgba(var(--ion-color-dark-rgb),.35);color:var(--ion-color-dark)}\n"] }]
|
|
138
138
|
}], propDecorators: { onAccept: [{
|
|
139
139
|
type: Output
|
|
140
140
|
}], onDecline: [{
|
|
141
141
|
type: Output
|
|
142
142
|
}] } });
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52aXRhdGlvbi1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tb2xlY3VsZXMvaW52aXRhdGlvbi1jYXJkL2ludml0YXRpb24tY2FyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBK0Msd0JBQXdCLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBRWhHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQXVDSCxNQUFNLE9BQU8sdUJBQXVCO0lBdENwQztRQXVDVSxTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTFCLFVBQUssR0FBRyxLQUFLLENBQWtDLEVBQUUsQ0FBQyxDQUFDO1FBRWxELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUNuRCxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFFckQsV0FBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLEdBQUcsd0JBQXdCO1lBQzNCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRTtTQUNoQixDQUFDLENBQUMsQ0FBQztRQUVLLGFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxDQUFDLENBQUMsQ0FBQztRQUVNLGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDMUIsSUFBSSxHQUFHLENBQUMsV0FBVztnQkFBRSxPQUFPLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBRU0saUJBQVksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3BDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLEdBQUcsQ0FBQyxZQUFZO2dCQUFFLE9BQU8sR0FBRyxDQUFDLFlBQVksQ0FBQztZQUM5QyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDeEQsQ0FBQyxDQUFDLENBQUM7S0FXSjtJQVRDLFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBeENVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDhRQWxDeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQsKzJDQWhDUyxZQUFZLCtCQUFFLFVBQVU7OzRGQW1DdkIsdUJBQXVCO2tCQXRDbkMsU0FBUzsrQkFDRSxxQkFBcUIsY0FDbkIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs4QkFRUyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIGlucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElvblNwaW5uZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvaTE4bic7XG5pbXBvcnQgeyBJbnZpdGF0aW9uQ2FyZEV2ZW50LCBJbnZpdGF0aW9uQ2FyZE1ldGFkYXRhLCBJTlZJVEFUSU9OX0NBUkRfREVGQVVMVFMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiB2YWwtaW52aXRhdGlvbi1jYXJkXG4gKlxuICogVGFyamV0YSBkZSBpbnZpdGFjacOzbiBwZW5kaWVudGUgYSB1bmEgb3JnYW5pemFjacOzbi4gTXVlc3RyYSBlbCBub21icmUgZGUgbGFcbiAqIG9yZywgcXVpw6luIGludml0YSB5IGVsIHJvbCwgY29uIGFjY2lvbmVzIGFjZXB0YXIgLyByZWNoYXphci5cbiAqXG4gKiBTb3BvcnRhIGkxOG4gKG5hbWVzcGFjZSBgSW52aXRhdGlvbkNhcmRgIHBvciBkZWZlY3RvKSB5IGRhcmsgbW9kZSB2w61hXG4gKiB2YXJpYWJsZXMgSW9uaWMgYmFzYWRhcyBlbiBgZGFya2AgKHNpbiB0b25vcyBsaWdodC9tZWRpdW0pLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8dmFsLWludml0YXRpb24tY2FyZFxuICogICBbcHJvcHNdPVwie1xuICogICAgIHRva2VuOiBpbnZpdGUub3JnSWQsXG4gKiAgICAgb3JnTmFtZTogaW52aXRlLm9yZ05hbWUsXG4gKiAgICAgaW52aXRlck5hbWU6IGludml0ZS5pbnZpdGVyTmFtZSxcbiAqICAgICByb2xlOiBpbnZpdGUucm9sZUxhYmVsLFxuICogICAgIGFjY2VwdGluZzogYWNjZXB0aW5nKCkgPT09IGludml0ZS5vcmdJZFxuICogICB9XCJcbiAqICAgKG9uQWNjZXB0KT1cImFjY2VwdChpbnZpdGUpXCJcbiAqICAgKG9uRGVjbGluZSk9XCJkZWNsaW5lKGludml0ZSlcIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtaW52aXRhdGlvbi1jYXJkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSW9uU3Bpbm5lcl0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImludml0YXRpb24tY2FyZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImludml0YXRpb24tY2FyZF9fYm9keVwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImludml0YXRpb24tY2FyZF9fbmFtZVwiPnt7IGNvbmZpZygpLm9yZ05hbWUgfX08L3NwYW4+XG4gICAgICAgIEBpZiAoc3VidGl0bGUoKSkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW52aXRhdGlvbi1jYXJkX19zdWJ0aXRsZVwiPnt7IHN1YnRpdGxlKCkgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImludml0YXRpb24tY2FyZF9fYWN0aW9uc1wiPlxuICAgICAgICBAaWYgKGNvbmZpZygpLmFjY2VwdGluZykge1xuICAgICAgICAgIDxpb24tc3Bpbm5lciBuYW1lPVwiY3Jlc2NlbnRcIiBjbGFzcz1cImludml0YXRpb24tY2FyZF9fc3Bpbm5lclwiIC8+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJpbnZpdGF0aW9uLWNhcmRfX2FjdGlvbiBpbnZpdGF0aW9uLWNhcmRfX2FjdGlvbi0tYWNjZXB0XCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZW1pdEFjY2VwdCgpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBhY2NlcHRMYWJlbCgpIH19XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cImludml0YXRpb24tY2FyZF9fYWN0aW9uIGludml0YXRpb24tY2FyZF9fYWN0aW9uLS1kZWNsaW5lXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJjb25maWcoKS5kaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZW1pdERlY2xpbmUoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgZGVjbGluZUxhYmVsKCkgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL2ludml0YXRpb24tY2FyZC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJbnZpdGF0aW9uQ2FyZENvbXBvbmVudCB7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG5cbiAgcmVhZG9ubHkgcHJvcHMgPSBpbnB1dDxQYXJ0aWFsPEludml0YXRpb25DYXJkTWV0YWRhdGE+Pih7fSk7XG5cbiAgQE91dHB1dCgpIG9uQWNjZXB0ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnZpdGF0aW9uQ2FyZEV2ZW50PigpO1xuICBAT3V0cHV0KCkgb25EZWNsaW5lID0gbmV3IEV2ZW50RW1pdHRlcjxJbnZpdGF0aW9uQ2FyZEV2ZW50PigpO1xuXG4gIHJlYWRvbmx5IGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uSU5WSVRBVElPTl9DQVJEX0RFRkFVTFRTLFxuICAgIC4uLnRoaXMucHJvcHMoKSxcbiAgfSkpO1xuXG4gIHJlYWRvbmx5IHN1YnRpdGxlID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGNmZyA9IHRoaXMuY29uZmlnKCk7XG4gICAgcmV0dXJuIFtjZmcuaW52aXRlck5hbWUsIGNmZy5yb2xlXS5maWx0ZXIoQm9vbGVhbikuam9pbignIMK3ICcpO1xuICB9KTtcblxuICByZWFkb25seSBhY2NlcHRMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBjZmcgPSB0aGlzLmNvbmZpZygpO1xuICAgIGlmIChjZmcuYWNjZXB0TGFiZWwpIHJldHVybiBjZmcuYWNjZXB0TGFiZWw7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoY2ZnLmFjY2VwdEtleSwgY2ZnLmkxOG5OYW1lc3BhY2UpO1xuICB9KTtcblxuICByZWFkb25seSBkZWNsaW5lTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgY2ZnID0gdGhpcy5jb25maWcoKTtcbiAgICBpZiAoY2ZnLmRlY2xpbmVMYWJlbCkgcmV0dXJuIGNmZy5kZWNsaW5lTGFiZWw7XG4gICAgdGhpcy5pMThuLmxhbmcoKTtcbiAgICByZXR1cm4gdGhpcy5pMThuLnQoY2ZnLmRlY2xpbmVLZXksIGNmZy5pMThuTmFtZXNwYWNlKTtcbiAgfSk7XG5cbiAgZW1pdEFjY2VwdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb25maWcoKS5kaXNhYmxlZCkgcmV0dXJuO1xuICAgIHRoaXMub25BY2NlcHQuZW1pdCh7IHRva2VuOiB0aGlzLmNvbmZpZygpLnRva2VuIH0pO1xuICB9XG5cbiAgZW1pdERlY2xpbmUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29uZmlnKCkuZGlzYWJsZWQpIHJldHVybjtcbiAgICB0aGlzLm9uRGVjbGluZS5lbWl0KHsgdG9rZW46IHRoaXMuY29uZmlnKCkudG9rZW4gfSk7XG4gIH1cbn1cbiJdfQ==
|