valtech-components 2.0.983 → 2.0.985
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/organisms/bottom-nav/bottom-nav.component.mjs +3 -3
- package/esm2022/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.mjs +298 -0
- package/esm2022/lib/components/organisms/security-view/security-view.component.mjs +819 -0
- package/esm2022/lib/components/organisms/security-view/security-view.i18n.mjs +105 -0
- package/esm2022/lib/components/organisms/security-view/security.routes.mjs +29 -0
- package/esm2022/lib/components/organisms/security-view/types.mjs +2 -0
- package/esm2022/lib/components/organisms/session-list-modal/session-list-modal.component.mjs +206 -0
- package/esm2022/lib/components/organisms/session-list-modal/types.mjs +2 -0
- package/esm2022/lib/services/font-size/font-size.service.mjs +3 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/public-api.mjs +7 -1
- package/fesm2022/valtech-components.mjs +2397 -990
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.d.ts +58 -0
- package/lib/components/organisms/security-view/security-view.component.d.ts +130 -0
- package/lib/components/organisms/security-view/security-view.i18n.d.ts +12 -0
- package/lib/components/organisms/security-view/security.routes.d.ts +24 -0
- package/lib/components/organisms/security-view/types.d.ts +48 -0
- package/lib/components/organisms/session-list-modal/session-list-modal.component.d.ts +56 -0
- package/lib/components/organisms/session-list-modal/types.d.ts +27 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +6 -0
|
@@ -300,7 +300,7 @@ export class BottomNavComponent {
|
|
|
300
300
|
}
|
|
301
301
|
</div>
|
|
302
302
|
</nav>
|
|
303
|
-
`, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 56px;--bottom-nav-fab-size: 56px;--bottom-nav-max-width: var(--val-container-md, 720px);--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px;max-width:var(--bottom-nav-max-width);margin:0 auto}@media (min-width: 576px){.bottom-nav{--bottom-nav-height: 64px}}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 auto 8px;width:calc(100% - 32px);border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0));padding-bottom:0;height:var(--bottom-nav-height)}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:1.5rem;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:.6875rem;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:.625rem;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.75rem;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:1.5rem;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:1.625rem}:host-context(.dark) .bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(.ion-palette-dark) .bottom-nav--elevated,:host-context(html.ion-palette-dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(.ion-palette-dark) .bottom-nav--floating,:host-context(html.ion-palette-dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(.ion-palette-dark) .bottom-nav__fab,:host-context(html.ion-palette-dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(.ion-palette-dark) .bottom-nav__fab:hover,:host-context(html.ion-palette-dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
|
|
303
|
+
`, isInline: true, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 56px;--bottom-nav-fab-size: 56px;--bottom-nav-max-width: var(--val-container-md, 720px);--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px;max-width:var(--bottom-nav-max-width);margin:0 auto}@media (min-width: 576px){.bottom-nav{--bottom-nav-height: 64px}}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 auto 8px;width:calc(100% - 32px);border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0));padding-bottom:0;height:var(--bottom-nav-height)}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:1.5rem;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:.6875rem;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:.625rem;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.75rem;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:1.5rem;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:1.625rem}:host-context(body.font-large) .bottom-nav{--bottom-nav-height: 56px}:host-context(body.font-large) .bottom-nav .bottom-nav__tab-label{display:none}:host-context(body.font-large) .bottom-nav .bottom-nav__tab-icon{font-size:1.625rem}:host-context(.dark) .bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(.ion-palette-dark) .bottom-nav--elevated,:host-context(html.ion-palette-dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(.ion-palette-dark) .bottom-nav--floating,:host-context(html.ion-palette-dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(.ion-palette-dark) .bottom-nav__fab,:host-context(html.ion-palette-dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(.ion-palette-dark) .bottom-nav__fab:hover,:host-context(html.ion-palette-dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonRippleEffect, selector: "ion-ripple-effect", inputs: ["type"] }] }); }
|
|
304
304
|
}
|
|
305
305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BottomNavComponent, decorators: [{
|
|
306
306
|
type: Component,
|
|
@@ -374,10 +374,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
374
374
|
}
|
|
375
375
|
</div>
|
|
376
376
|
</nav>
|
|
377
|
-
`, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 56px;--bottom-nav-fab-size: 56px;--bottom-nav-max-width: var(--val-container-md, 720px);--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px;max-width:var(--bottom-nav-max-width);margin:0 auto}@media (min-width: 576px){.bottom-nav{--bottom-nav-height: 64px}}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 auto 8px;width:calc(100% - 32px);border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0));padding-bottom:0;height:var(--bottom-nav-height)}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:1.5rem;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:.6875rem;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:.625rem;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.75rem;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:1.5rem;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:1.625rem}:host-context(.dark) .bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(.ion-palette-dark) .bottom-nav--elevated,:host-context(html.ion-palette-dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(.ion-palette-dark) .bottom-nav--floating,:host-context(html.ion-palette-dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(.ion-palette-dark) .bottom-nav__fab,:host-context(html.ion-palette-dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(.ion-palette-dark) .bottom-nav__fab:hover,:host-context(html.ion-palette-dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
|
|
377
|
+
`, styles: [":host{display:block;position:fixed;bottom:0;left:0;right:0;z-index:100;pointer-events:none}.bottom-nav{--bottom-nav-bg: var(--ion-background-color);--bottom-nav-active: var(--ion-color-primary);--bottom-nav-inactive: var(--ion-color-medium);--bottom-nav-radius: 16px 16px 0 0;--bottom-nav-height: 56px;--bottom-nav-fab-size: 56px;--bottom-nav-max-width: var(--val-container-md, 720px);--fab-color: var(--ion-color-primary);pointer-events:auto;background:var(--bottom-nav-bg);border-radius:var(--bottom-nav-radius);height:var(--bottom-nav-height);padding:0 8px;max-width:var(--bottom-nav-max-width);margin:0 auto}@media (min-width: 576px){.bottom-nav{--bottom-nav-height: 64px}}.bottom-nav--elevated{box-shadow:0 -4px 20px #00000014}.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.75);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-top:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.06)}.bottom-nav--floating{margin:0 auto 8px;width:calc(100% - 32px);border-radius:32px;border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08);box-shadow:0 4px 24px #00000014,0 8px 32px #0000000a;--bottom-nav-radius: 32px}.bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 255, 255, 255),.82);backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid rgba(var(--ion-text-color-rgb, 0, 0, 0),.08)}.bottom-nav--floating.bottom-nav--elevated{box-shadow:0 4px 24px #0000001a,0 12px 48px #00000014}.bottom-nav--safe-area{padding-bottom:env(safe-area-inset-bottom,0);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0))}.bottom-nav--floating.bottom-nav--safe-area{margin-bottom:calc(8px + env(safe-area-inset-bottom,0));padding-bottom:0;height:var(--bottom-nav-height)}.bottom-nav__container{display:flex;align-items:center;justify-content:space-around;height:var(--bottom-nav-height);max-width:500px;margin:0 auto}.bottom-nav__tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:100%;padding:8px 4px;background:transparent;border:none;cursor:pointer;position:relative;overflow:hidden;color:var(--bottom-nav-inactive);transition:color .2s ease;max-width:80px;--ripple-color: var(--bottom-nav-active)}.bottom-nav__tab:focus-visible{outline:2px solid var(--bottom-nav-active);outline-offset:-2px;border-radius:8px}.bottom-nav__tab--active{color:var(--bottom-nav-active)}.bottom-nav__tab--disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.bottom-nav__tab[data-animation=scale] .bottom-nav__tab-icon{transition:transform .2s cubic-bezier(.4,0,.2,1)}.bottom-nav__tab[data-animation=scale].bottom-nav__tab--active .bottom-nav__tab-icon{transform:scale(1.15)}.bottom-nav__tab[data-animation=fade]{transition:opacity .2s ease,color .2s ease}.bottom-nav__tab[data-animation=fade]:not(.bottom-nav__tab--active){opacity:.6}.bottom-nav__tab[data-animation=slide] .bottom-nav__tab-label{transition:transform .2s ease,opacity .2s ease;transform:translateY(6px);opacity:0}.bottom-nav__tab[data-animation=slide].bottom-nav__tab--active .bottom-nav__tab-label{transform:translateY(0);opacity:1}.bottom-nav__tab-icon{position:relative;font-size:1.5rem;line-height:1}.bottom-nav__tab-icon ion-icon{display:block}.bottom-nav__tab-label{font-size:.6875rem;font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;letter-spacing:.01em}.bottom-nav__badge{position:absolute;top:-4px;right:-10px;min-width:18px;height:18px;padding:0 5px;font-size:.625rem;font-weight:600;line-height:18px;text-align:center;color:#fff;background-color:var(--ion-color-danger);border-radius:9px;box-shadow:0 1px 3px #0003}.bottom-nav__badge--dot{min-width:10px;width:10px;height:10px;padding:0;top:-2px;right:-4px;border-radius:50%}.bottom-nav__fab{position:relative;flex-shrink:0;width:var(--bottom-nav-fab-size);height:var(--bottom-nav-fab-size);margin:0 12px;margin-top:calc(var(--bottom-nav-fab-size) * -.35);background:var(--fab-color);border:none;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.75rem;box-shadow:0 4px 14px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.4);transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s ease;overflow:hidden;--ripple-color: rgba(255, 255, 255, .3)}.bottom-nav__fab:hover{transform:scale(1.08);box-shadow:0 6px 20px rgba(var(--ion-color-primary-rgb, 56, 128, 255),.5)}.bottom-nav__fab:active{transform:scale(.95)}.bottom-nav__fab:focus-visible{outline:3px solid white;outline-offset:2px}.bottom-nav__fab--small{--bottom-nav-fab-size: 48px;font-size:1.5rem;margin-top:-14.4px}.bottom-nav__fab ion-icon{display:block}.bottom-nav--hide-labels{--bottom-nav-height: 56px}.bottom-nav--hide-labels .bottom-nav__tab-label{display:none}.bottom-nav--hide-labels .bottom-nav__tab-icon{font-size:1.625rem}:host-context(body.font-large) .bottom-nav{--bottom-nav-height: 56px}:host-context(body.font-large) .bottom-nav .bottom-nav__tab-label{display:none}:host-context(body.font-large) .bottom-nav .bottom-nav__tab-icon{font-size:1.625rem}:host-context(.dark) .bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--translucent,:host-context(body.dark) .bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.85);border-top-color:#ffffff14}:host-context(.dark) .bottom-nav--elevated,:host-context(.ion-palette-dark) .bottom-nav--elevated,:host-context(html.ion-palette-dark) .bottom-nav--elevated,:host-context(body.dark) .bottom-nav--elevated,:host-context([data-theme=dark]) .bottom-nav--elevated{box-shadow:0 -4px 20px #0000004d}:host-context(.dark) .bottom-nav--floating,:host-context(.ion-palette-dark) .bottom-nav--floating,:host-context(html.ion-palette-dark) .bottom-nav--floating,:host-context(body.dark) .bottom-nav--floating,:host-context([data-theme=dark]) .bottom-nav--floating{border-color:#ffffff1a;box-shadow:0 4px 24px #0003,0 8px 32px #00000026}:host-context(.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(html.ion-palette-dark) .bottom-nav--floating.bottom-nav--translucent,:host-context(body.dark) .bottom-nav--floating.bottom-nav--translucent,:host-context([data-theme=dark]) .bottom-nav--floating.bottom-nav--translucent{background:rgba(var(--ion-background-color-rgb, 18, 18, 18),.88);border-color:#ffffff1a}:host-context(.dark) .bottom-nav__fab,:host-context(.ion-palette-dark) .bottom-nav__fab,:host-context(html.ion-palette-dark) .bottom-nav__fab,:host-context(body.dark) .bottom-nav__fab,:host-context([data-theme=dark]) .bottom-nav__fab{box-shadow:0 4px 14px #00000080}:host-context(.dark) .bottom-nav__fab:hover,:host-context(.ion-palette-dark) .bottom-nav__fab:hover,:host-context(html.ion-palette-dark) .bottom-nav__fab:hover,:host-context(body.dark) .bottom-nav__fab:hover,:host-context([data-theme=dark]) .bottom-nav__fab:hover{box-shadow:0 6px 20px #0009}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav--safe-area .bottom-nav__container{height:var(--bottom-nav-height)}}\n"] }]
|
|
378
378
|
}], propDecorators: { tabClick: [{
|
|
379
379
|
type: Output
|
|
380
380
|
}], fabClick: [{
|
|
381
381
|
type: Output
|
|
382
382
|
}] } });
|
|
383
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQXdELG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXBHLG1DQUFtQztBQUNuQyxPQUFPLEVBQ0wsSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLEVBQ04sYUFBYSxFQUNiLE1BQU0sRUFDTixhQUFhLEVBQ2IsUUFBUSxFQUNSLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFlBQVksRUFDWixJQUFJLEVBQ0osV0FBVyxFQUNYLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsT0FBTyxFQUNQLGNBQWMsRUFDZCxJQUFJLEVBQ0osV0FBVyxF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QkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvblJpcHBsZUVmZmVjdCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBCb3R0b21OYXZNZXRhZGF0YSwgQm90dG9tTmF2VGFiLCBCb3R0b21OYXZDbGlja0V2ZW50LCBCT1RUT01fTkFWX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIFJlZ2lzdGVyIGNvbW1vbiBuYXZpZ2F0aW9uIGljb25zXG5pbXBvcnQge1xuICBob21lLFxuICBob21lT3V0bGluZSxcbiAgc2VhcmNoLFxuICBzZWFyY2hPdXRsaW5lLFxuICBwZXJzb24sXG4gIHBlcnNvbk91dGxpbmUsXG4gIHNldHRpbmdzLFxuICBzZXR0aW5nc091dGxpbmUsXG4gIG5vdGlmaWNhdGlvbnMsXG4gIG5vdGlmaWNhdGlvbnNPdXRsaW5lLFxuICBhZGQsXG4gIGFkZE91dGxpbmUsXG4gIGhlYXJ0LFxuICBoZWFydE91dGxpbmUsXG4gIGNhcnQsXG4gIGNhcnRPdXRsaW5lLFxuICBjaGF0YnViYmxlLFxuICBjaGF0YnViYmxlT3V0bGluZSxcbiAgY29tcGFzcyxcbiAgY29tcGFzc091dGxpbmUsXG4gIGdyaWQsXG4gIGdyaWRPdXRsaW5lLFxuICBsaXN0LFxuICBsaXN0T3V0bGluZSxcbiAgY2FsZW5kYXIsXG4gIGNhbGVuZGFyT3V0bGluZSxcbiAgZm9sZGVyLFxuICBmb2xkZXJPdXRsaW5lLFxuICBkb2N1bWVudHMsXG4gIGRvY3VtZW50c091dGxpbmUsXG4gIHN0YXRzQ2hhcnQsXG4gIHN0YXRzQ2hhcnRPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmFkZEljb25zKHtcbiAgaG9tZSxcbiAgaG9tZU91dGxpbmUsXG4gIHNlYXJjaCxcbiAgc2VhcmNoT3V0bGluZSxcbiAgcGVyc29uLFxuICBwZXJzb25PdXRsaW5lLFxuICBzZXR0aW5ncyxcbiAgc2V0dGluZ3NPdXRsaW5lLFxuICBub3RpZmljYXRpb25zLFxuICBub3RpZmljYXRpb25zT3V0bGluZSxcbiAgYWRkLFxuICBhZGRPdXRsaW5lLFxuICBoZWFydCxcbiAgaGVhcnRPdXRsaW5lLFxuICBjYXJ0LFxuICBjYXJ0T3V0bGluZSxcbiAgY2hhdGJ1YmJsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGNvbXBhc3MsXG4gIGNvbXBhc3NPdXRsaW5lLFxuICBncmlkLFxuICBncmlkT3V0bGluZSxcbiAgbGlzdCxcbiAgbGlzdE91dGxpbmUsXG4gIGNhbGVuZGFyLFxuICBjYWxlbmRhck91dGxpbmUsXG4gIGZvbGRlcixcbiAgZm9sZGVyT3V0bGluZSxcbiAgZG9jdW1lbnRzLFxuICBkb2N1bWVudHNPdXRsaW5lLFxuICBzdGF0c0NoYXJ0LFxuICBzdGF0c0NoYXJ0T3V0bGluZSxcbn0pO1xuXG4vKipcbiAqIHZhbC1ib3R0b20tbmF2XG4gKlxuICogQSBtb2Rlcm4gYm90dG9tIG5hdmlnYXRpb24gYmFyIGNvbXBvbmVudCB3aXRoIHN1cHBvcnQgZm9yIHRhYnMsXG4gKiBvcHRpb25hbCBjZW50cmFsIEZBQiBidXR0b24sIGJhZGdlcywgYW5kIHJvdXRlLWJhc2VkIGFjdGl2ZSBzdGF0ZSBkZXRlY3Rpb24uXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtYm90dG9tLW5hdlxuICogICBbcHJvcHNdPVwie1xuICogICAgIHRhYnM6IFtcbiAqICAgICAgIHsgdG9rZW46ICdob21lJywgaWNvbjogeyBkZWZhdWx0OiAnaG9tZS1vdXRsaW5lJywgYWN0aXZlOiAnaG9tZScgfSwgbGFiZWw6ICdIb21lJywgcm91dGU6ICcvYXBwL2hvbWUnIH0sXG4gKiAgICAgICB7IHRva2VuOiAnc2V0dGluZ3MnLCBpY29uOiB7IGRlZmF1bHQ6ICdzZXR0aW5ncy1vdXRsaW5lJywgYWN0aXZlOiAnc2V0dGluZ3MnIH0sIGxhYmVsOiAnU2V0dGluZ3MnLCByb3V0ZTogJy9hcHAvc2V0dGluZ3MnIH1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogICAodGFiQ2xpY2spPVwib25UYWJDbGljaygkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGkxOG4gYW5kIHRyYW5zbHVjZW50IHRoZW1lXG4gKiBgYGBodG1sXG4gKiA8dmFsLWJvdHRvbS1uYXZcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YWJzOiBbXG4gKiAgICAgICB7IHRva2VuOiAnaG9tZScsIGljb246IHsgZGVmYXVsdDogJ2hvbWUtb3V0bGluZScgfSwgbGFiZWxLZXk6ICdtZW51SG9tZScsIHJvdXRlOiAnL2FwcC9ob21lJyB9LFxuICogICAgICAgeyB0b2tlbjogJ3NldHRpbmdzJywgaWNvbjogeyBkZWZhdWx0OiAnc2V0dGluZ3Mtb3V0bGluZScgfSwgbGFiZWxLZXk6ICdtZW51U2V0dGluZ3MnLCByb3V0ZTogJy9hcHAvc2V0dGluZ3MnIH1cbiAqICAgICBdLFxuICogICAgIGkxOG5OYW1lc3BhY2U6ICdNZW51JyxcbiAqICAgICB0aGVtZTogeyB0cmFuc2x1Y2VudDogdHJ1ZSB9XG4gKiAgIH1cIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYm90dG9tLW5hdicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvblJpcHBsZUVmZmVjdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJib3R0b20tbmF2XCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1lbGV2YXRlZF09XCJjb25maWcoKS50aGVtZS5lbGV2YXRlZFwiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tdHJhbnNsdWNlbnRdPVwiY29uZmlnKCkudGhlbWUudHJhbnNsdWNlbnRcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLWZsb2F0aW5nXT1cImNvbmZpZygpLnRoZW1lLmZsb2F0aW5nXCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1zYWZlLWFyZWFdPVwiY29uZmlnKCkuc2FmZUFyZWFcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLWhpZGUtbGFiZWxzXT1cImNvbmZpZygpLmhpZGVMYWJlbHNcIlxuICAgICAgW25nU3R5bGVdPVwiZ2V0VGhlbWVTdHlsZXMoKVwiXG4gICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiQm90dG9tIG5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tbmF2X19jb250YWluZXJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBkaXNwbGF5VGFicygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICBAaWYgKGl0ZW0gPT09IG51bGwgJiYgY29uZmlnKCkuZmFiKSB7XG4gICAgICAgICAgICA8IS0tIEZBQiBCdXR0b24gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm90dG9tLW5hdl9fZmFiXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX2ZhYi0tc21hbGxdPVwiY29uZmlnKCkuZmFiIS5zaXplID09PSAnc21hbGwnXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tZmFiLWNvbG9yXT1cInJlc29sdmVDb2xvcihjb25maWcoKS5mYWIhLmNvbG9yIHx8ICdwcmltYXJ5JylcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25GYWJDbGljaygpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcoKS5mYWIhLmFyaWFMYWJlbCB8fCAnQWN0aW9uIGJ1dHRvbidcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJjb25maWcoKS5mYWIhLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbSkge1xuICAgICAgICAgICAgPCEtLSBUYWIgSXRlbSAtLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJib3R0b20tbmF2X190YWJcIlxuICAgICAgICAgICAgICBbY2xhc3MuYm90dG9tLW5hdl9fdGFiLS1hY3RpdmVdPVwiaXNBY3RpdmUoaXRlbSlcIlxuICAgICAgICAgICAgICBbY2xhc3MuYm90dG9tLW5hdl9fdGFiLS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hbmltYXRpb25dPVwiY29uZmlnKCkuYW5pbWF0aW9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsIHx8IGdldExhYmVsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQWN0aXZlKGl0ZW0pID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tbmF2X190YWItaWNvblwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJnZXRJY29uKGl0ZW0pXCI+PC9pb24taWNvbj5cblxuICAgICAgICAgICAgICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmJhZGdlKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJvdHRvbS1uYXZfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX2JhZGdlLS1kb3RdPVwiaXRlbS5iYWRnZS5kb3RcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaXRlbS5iYWRnZS5jb2xvciA/IHJlc29sdmVDb2xvcihpdGVtLmJhZGdlLmNvbG9yKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLmJhZGdlLmJhY2tncm91bmRDb2xvciA/IHJlc29sdmVDb2xvcihpdGVtLmJhZGdlLmJhY2tncm91bmRDb2xvcikgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWl0ZW0uYmFkZ2UuZG90ICYmIGl0ZW0uYmFkZ2UudGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICBAaWYgKCFjb25maWcoKS5oaWRlTGFiZWxzICYmIGdldExhYmVsKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tbmF2X190YWItbGFiZWxcIj57eyBnZXRMYWJlbChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYm90dG9tLW5hdi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEJvdHRvbU5hdk1ldGFkYXRhPih7IHRhYnM6IFtdIH0pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSB0YWIgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgdGFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEJvdHRvbU5hdkNsaWNrRXZlbnQ+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgRkFCIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBmYWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ3VycmVudCBhY3RpdmUgcm91dGUgc2lnbmFsIGZvciByZWFjdGl2ZSB1cGRhdGVzICovXG4gIHByaXZhdGUgY3VycmVudFJvdXRlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQk9UVE9NX05BVl9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gICAgdGhlbWU6IHtcbiAgICAgIC4uLkJPVFRPTV9OQVZfREVGQVVMVFMudGhlbWUsXG4gICAgICAuLi50aGlzLnByb3BzKCkudGhlbWUsXG4gICAgfSxcbiAgfSkpO1xuXG4gIC8qKiBDb21wdXRlZCB0YWJzIHdpdGggRkFCIGluc2VydGVkIGlmIHByZXNlbnQgKi9cbiAgZGlzcGxheVRhYnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuY29uZmlnKCkudGFicztcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcblxuICAgIGlmICghZmFiKSByZXR1cm4gdGFicztcblxuICAgIC8vIEluc2VydCBwbGFjZWhvbGRlciBhdCBjZW50ZXIgZm9yIEZBQiBwb3NpdGlvbmluZ1xuICAgIGNvbnN0IG1pZHBvaW50ID0gTWF0aC5mbG9vcih0YWJzLmxlbmd0aCAvIDIpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi50YWJzLnNsaWNlKDAsIG1pZHBvaW50KSxcbiAgICAgIG51bGwgYXMgdW5rbm93biBhcyBCb3R0b21OYXZUYWIsIC8vIEZBQiBwbGFjZWhvbGRlclxuICAgICAgLi4udGFicy5zbGljZShtaWRwb2ludCksXG4gICAgXTtcbiAgfSk7XG5cbiAgLyoqIENoZWNrIGlmIGEgdGFiIGlzIGN1cnJlbnRseSBhY3RpdmUgKi9cbiAgaXNBY3RpdmUodGFiOiBCb3R0b21OYXZUYWIpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuY3VycmVudFJvdXRlKCk7XG4gICAgaWYgKCFyb3V0ZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgbWFpbiByb3V0ZVxuICAgIGNvbnN0IHRhYlJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlLmpvaW4oJy8nKSA6IHRhYi5yb3V0ZTtcbiAgICBpZiAocm91dGUuc3RhcnRzV2l0aCh0YWJSb3V0ZSkpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25hbCBhY3RpdmUgcm91dGVzXG4gICAgaWYgKHRhYi5hY3RpdmVSb3V0ZXMpIHtcbiAgICAgIHJldHVybiB0YWIuYWN0aXZlUm91dGVzLnNvbWUociA9PiByb3V0ZS5zdGFydHNXaXRoKHIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogR2V0IHRoZSBhcHByb3ByaWF0ZSBpY29uIGZvciBhIHRhYiBiYXNlZCBvbiBhY3RpdmUgc3RhdGUgKi9cbiAgZ2V0SWNvbih0YWI6IEJvdHRvbU5hdlRhYik6IHN0cmluZyB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSh0YWIpO1xuICAgIGlmIChhY3RpdmUgJiYgdGFiLmljb24uYWN0aXZlKSB7XG4gICAgICByZXR1cm4gdGFiLmljb24uYWN0aXZlO1xuICAgIH1cbiAgICByZXR1cm4gdGFiLmljb24uZGVmYXVsdDtcbiAgfVxuXG4gIC8qKiBHZXQgdHJhbnNsYXRlZCBsYWJlbCBmb3IgYSB0YWIgKi9cbiAgZ2V0TGFiZWwodGFiOiBCb3R0b21OYXZUYWIpOiBzdHJpbmcge1xuICAgIGlmICh0YWIubGFiZWwpIHJldHVybiB0YWIubGFiZWw7XG4gICAgaWYgKHRhYi5sYWJlbEtleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KHRhYi5sYWJlbEtleSwgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLyoqIEdldCBDU1MgdmFyaWFibGVzIGZvciB0aGVtaW5nICovXG4gIGdldFRoZW1lU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IHRoZW1lID0gdGhpcy5jb25maWcoKS50aGVtZTtcbiAgICByZXR1cm4ge1xuICAgICAgJy0tYm90dG9tLW5hdi1iZyc6IHRoZW1lLmJhY2tncm91bmQgfHwgJycsXG4gICAgICAnLS1ib3R0b20tbmF2LWFjdGl2ZSc6IHRoaXMucmVzb2x2ZUNvbG9yKHRoZW1lLmFjdGl2ZUNvbG9yKSxcbiAgICAgICctLWJvdHRvbS1uYXYtaW5hY3RpdmUnOiB0aGlzLnJlc29sdmVDb2xvcih0aGVtZS5pbmFjdGl2ZUNvbG9yKSxcbiAgICAgICctLWJvdHRvbS1uYXYtcmFkaXVzJzogdGhlbWUuYm9yZGVyUmFkaXVzIHx8ICcnLFxuICAgICAgJy0tYm90dG9tLW5hdi1tYXgtd2lkdGgnOiB0aGlzLnJlc29sdmVNYXhXaWR0aCh0aGlzLmNvbmZpZygpLm1heFdpZHRoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIFJlc29sdmUgbWF4V2lkdGggdG9rZW4gKHNtfG1kfGxnfHhsfGZ1bGwpIHRvIENTUyB2YXIgb3IgcmF3IHZhbHVlICovXG4gIHJlc29sdmVNYXhXaWR0aCh2Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHYpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12YWwtY29udGFpbmVyLXNtLCA1NDBweCknO1xuICAgICAgY2FzZSAnbWQnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXZhbC1jb250YWluZXItbWQsIDcyMHB4KSc7XG4gICAgICBjYXNlICdsZyc6XG4gICAgICAgIHJldHVybiAndmFyKC0tdmFsLWNvbnRhaW5lci1sZywgODgwcHgpJztcbiAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12YWwtY29udGFpbmVyLXhsLCAxMTAwcHgpJztcbiAgICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICBjYXNlICcnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXZhbC1jb250YWluZXItbWQsIDcyMHB4KSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTZXQgaW5pdGlhbCByb3V0ZVxuICAgIHRoaXMuY3VycmVudFJvdXRlLnNldCh0aGlzLnJvdXRlci51cmwpO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHJvdXRlIGNoYW5nZXNcbiAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KChldmVudCBhcyBOYXZpZ2F0aW9uRW5kKS51cmxBZnRlclJlZGlyZWN0cyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSB0YWIgY2xpY2sgKi9cbiAgb25UYWJDbGljayh0YWI6IEJvdHRvbU5hdlRhYik6IHZvaWQge1xuICAgIGlmICh0YWIuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLnRhYkNsaWNrLmVtaXQoe1xuICAgICAgdG9rZW46IHRhYi50b2tlbixcbiAgICAgIGlzRmFiOiBmYWxzZSxcbiAgICAgIHJvdXRlOiB0YWIucm91dGUsXG4gICAgfSk7XG5cbiAgICAvLyBOYXZpZ2F0ZVxuICAgIGNvbnN0IHJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlIDogW3RhYi5yb3V0ZV07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBGQUIgY2xpY2sgKi9cbiAgb25GYWJDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcbiAgICBpZiAoIWZhYikgcmV0dXJuO1xuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMuZmFiQ2xpY2suZW1pdCgpO1xuXG4gICAgLy8gTmF2aWdhdGUgaWYgcm91dGUgaXMgZGVmaW5lZCBhbmQgbm90IGFuIGFjdGlvbi1vbmx5IGJ1dHRvblxuICAgIGlmIChmYWIucm91dGUgJiYgIWZhYi5pc0FjdGlvbikge1xuICAgICAgY29uc3Qgcm91dGUgPSBBcnJheS5pc0FycmF5KGZhYi5yb3V0ZSkgPyBmYWIucm91dGUgOiBbZmFiLnJvdXRlXTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVzb2x2ZSBJb25pYyBjb2xvciBuYW1lIHRvIENTUyB2YXJpYWJsZSAqL1xuICByZXNvbHZlQ29sb3IoY29sb3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghY29sb3IpIHJldHVybiAnJztcbiAgICBjb25zdCBpb25pY0NvbG9ycyA9IFsncHJpbWFyeScsICdzZWNvbmRhcnknLCAndGVydGlhcnknLCAnc3VjY2VzcycsICd3YXJuaW5nJywgJ2RhbmdlcicsICdsaWdodCcsICdtZWRpdW0nLCAnZGFyayddO1xuICAgIGlmIChpb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvcikpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Y29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxufVxuIl19
|
|
383
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm90dG9tLW5hdi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2JvdHRvbS1uYXYvYm90dG9tLW5hdi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQXdELG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXBHLG1DQUFtQztBQUNuQyxPQUFPLEVBQ0wsSUFBSSxFQUNKLFdBQVcsRUFDWCxNQUFNLEVBQ04sYUFBYSxFQUNiLE1BQU0sRUFDTixhQUFhLEVBQ2IsUUFBUSxFQUNSLGVBQWUsRUFDZixhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLEdBQUcsRUFDSCxVQUFVLEVBQ1YsS0FBSyxFQUNMLFlBQVksRUFDWixJQUFJLEVBQ0osV0FBVyxFQUNYLFVBQVUsRUFDVixpQkFBaUIsRUFDakIsT0FBTyxFQUNQLGNBQWMsRUFDZCxJQUFJLEVBQ0osV0FBVyxF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QkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElvbkljb24sIElvblJpcHBsZUVmZmVjdCB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyL3N0YW5kYWxvbmUnO1xuaW1wb3J0IHsgYWRkSWNvbnMgfSBmcm9tICdpb25pY29ucyc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9pMThuJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBCb3R0b21OYXZNZXRhZGF0YSwgQm90dG9tTmF2VGFiLCBCb3R0b21OYXZDbGlja0V2ZW50LCBCT1RUT01fTkFWX0RFRkFVTFRTIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8vIFJlZ2lzdGVyIGNvbW1vbiBuYXZpZ2F0aW9uIGljb25zXG5pbXBvcnQge1xuICBob21lLFxuICBob21lT3V0bGluZSxcbiAgc2VhcmNoLFxuICBzZWFyY2hPdXRsaW5lLFxuICBwZXJzb24sXG4gIHBlcnNvbk91dGxpbmUsXG4gIHNldHRpbmdzLFxuICBzZXR0aW5nc091dGxpbmUsXG4gIG5vdGlmaWNhdGlvbnMsXG4gIG5vdGlmaWNhdGlvbnNPdXRsaW5lLFxuICBhZGQsXG4gIGFkZE91dGxpbmUsXG4gIGhlYXJ0LFxuICBoZWFydE91dGxpbmUsXG4gIGNhcnQsXG4gIGNhcnRPdXRsaW5lLFxuICBjaGF0YnViYmxlLFxuICBjaGF0YnViYmxlT3V0bGluZSxcbiAgY29tcGFzcyxcbiAgY29tcGFzc091dGxpbmUsXG4gIGdyaWQsXG4gIGdyaWRPdXRsaW5lLFxuICBsaXN0LFxuICBsaXN0T3V0bGluZSxcbiAgY2FsZW5kYXIsXG4gIGNhbGVuZGFyT3V0bGluZSxcbiAgZm9sZGVyLFxuICBmb2xkZXJPdXRsaW5lLFxuICBkb2N1bWVudHMsXG4gIGRvY3VtZW50c091dGxpbmUsXG4gIHN0YXRzQ2hhcnQsXG4gIHN0YXRzQ2hhcnRPdXRsaW5lLFxufSBmcm9tICdpb25pY29ucy9pY29ucyc7XG5cbmFkZEljb25zKHtcbiAgaG9tZSxcbiAgaG9tZU91dGxpbmUsXG4gIHNlYXJjaCxcbiAgc2VhcmNoT3V0bGluZSxcbiAgcGVyc29uLFxuICBwZXJzb25PdXRsaW5lLFxuICBzZXR0aW5ncyxcbiAgc2V0dGluZ3NPdXRsaW5lLFxuICBub3RpZmljYXRpb25zLFxuICBub3RpZmljYXRpb25zT3V0bGluZSxcbiAgYWRkLFxuICBhZGRPdXRsaW5lLFxuICBoZWFydCxcbiAgaGVhcnRPdXRsaW5lLFxuICBjYXJ0LFxuICBjYXJ0T3V0bGluZSxcbiAgY2hhdGJ1YmJsZSxcbiAgY2hhdGJ1YmJsZU91dGxpbmUsXG4gIGNvbXBhc3MsXG4gIGNvbXBhc3NPdXRsaW5lLFxuICBncmlkLFxuICBncmlkT3V0bGluZSxcbiAgbGlzdCxcbiAgbGlzdE91dGxpbmUsXG4gIGNhbGVuZGFyLFxuICBjYWxlbmRhck91dGxpbmUsXG4gIGZvbGRlcixcbiAgZm9sZGVyT3V0bGluZSxcbiAgZG9jdW1lbnRzLFxuICBkb2N1bWVudHNPdXRsaW5lLFxuICBzdGF0c0NoYXJ0LFxuICBzdGF0c0NoYXJ0T3V0bGluZSxcbn0pO1xuXG4vKipcbiAqIHZhbC1ib3R0b20tbmF2XG4gKlxuICogQSBtb2Rlcm4gYm90dG9tIG5hdmlnYXRpb24gYmFyIGNvbXBvbmVudCB3aXRoIHN1cHBvcnQgZm9yIHRhYnMsXG4gKiBvcHRpb25hbCBjZW50cmFsIEZBQiBidXR0b24sIGJhZGdlcywgYW5kIHJvdXRlLWJhc2VkIGFjdGl2ZSBzdGF0ZSBkZXRlY3Rpb24uXG4gKlxuICogQGV4YW1wbGUgQmFzaWMgdXNhZ2VcbiAqIGBgYGh0bWxcbiAqIDx2YWwtYm90dG9tLW5hdlxuICogICBbcHJvcHNdPVwie1xuICogICAgIHRhYnM6IFtcbiAqICAgICAgIHsgdG9rZW46ICdob21lJywgaWNvbjogeyBkZWZhdWx0OiAnaG9tZS1vdXRsaW5lJywgYWN0aXZlOiAnaG9tZScgfSwgbGFiZWw6ICdIb21lJywgcm91dGU6ICcvYXBwL2hvbWUnIH0sXG4gKiAgICAgICB7IHRva2VuOiAnc2V0dGluZ3MnLCBpY29uOiB7IGRlZmF1bHQ6ICdzZXR0aW5ncy1vdXRsaW5lJywgYWN0aXZlOiAnc2V0dGluZ3MnIH0sIGxhYmVsOiAnU2V0dGluZ3MnLCByb3V0ZTogJy9hcHAvc2V0dGluZ3MnIH1cbiAqICAgICBdXG4gKiAgIH1cIlxuICogICAodGFiQ2xpY2spPVwib25UYWJDbGljaygkZXZlbnQpXCJcbiAqIC8+XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZSBXaXRoIGkxOG4gYW5kIHRyYW5zbHVjZW50IHRoZW1lXG4gKiBgYGBodG1sXG4gKiA8dmFsLWJvdHRvbS1uYXZcbiAqICAgW3Byb3BzXT1cIntcbiAqICAgICB0YWJzOiBbXG4gKiAgICAgICB7IHRva2VuOiAnaG9tZScsIGljb246IHsgZGVmYXVsdDogJ2hvbWUtb3V0bGluZScgfSwgbGFiZWxLZXk6ICdtZW51SG9tZScsIHJvdXRlOiAnL2FwcC9ob21lJyB9LFxuICogICAgICAgeyB0b2tlbjogJ3NldHRpbmdzJywgaWNvbjogeyBkZWZhdWx0OiAnc2V0dGluZ3Mtb3V0bGluZScgfSwgbGFiZWxLZXk6ICdtZW51U2V0dGluZ3MnLCByb3V0ZTogJy9hcHAvc2V0dGluZ3MnIH1cbiAqICAgICBdLFxuICogICAgIGkxOG5OYW1lc3BhY2U6ICdNZW51JyxcbiAqICAgICB0aGVtZTogeyB0cmFuc2x1Y2VudDogdHJ1ZSB9XG4gKiAgIH1cIlxuICogLz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtYm90dG9tLW5hdicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIElvbkljb24sIElvblJpcHBsZUVmZmVjdF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5hdlxuICAgICAgY2xhc3M9XCJib3R0b20tbmF2XCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1lbGV2YXRlZF09XCJjb25maWcoKS50aGVtZS5lbGV2YXRlZFwiXG4gICAgICBbY2xhc3MuYm90dG9tLW5hdi0tdHJhbnNsdWNlbnRdPVwiY29uZmlnKCkudGhlbWUudHJhbnNsdWNlbnRcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLWZsb2F0aW5nXT1cImNvbmZpZygpLnRoZW1lLmZsb2F0aW5nXCJcbiAgICAgIFtjbGFzcy5ib3R0b20tbmF2LS1zYWZlLWFyZWFdPVwiY29uZmlnKCkuc2FmZUFyZWFcIlxuICAgICAgW2NsYXNzLmJvdHRvbS1uYXYtLWhpZGUtbGFiZWxzXT1cImNvbmZpZygpLmhpZGVMYWJlbHNcIlxuICAgICAgW25nU3R5bGVdPVwiZ2V0VGhlbWVTdHlsZXMoKVwiXG4gICAgICByb2xlPVwibmF2aWdhdGlvblwiXG4gICAgICBhcmlhLWxhYmVsPVwiQm90dG9tIG5hdmlnYXRpb25cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tbmF2X19jb250YWluZXJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBkaXNwbGF5VGFicygpOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICBAaWYgKGl0ZW0gPT09IG51bGwgJiYgY29uZmlnKCkuZmFiKSB7XG4gICAgICAgICAgICA8IS0tIEZBQiBCdXR0b24gLS0+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiYm90dG9tLW5hdl9fZmFiXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX2ZhYi0tc21hbGxdPVwiY29uZmlnKCkuZmFiIS5zaXplID09PSAnc21hbGwnXCJcbiAgICAgICAgICAgICAgW3N0eWxlLi0tZmFiLWNvbG9yXT1cInJlc29sdmVDb2xvcihjb25maWcoKS5mYWIhLmNvbG9yIHx8ICdwcmltYXJ5JylcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25GYWJDbGljaygpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJjb25maWcoKS5mYWIhLmFyaWFMYWJlbCB8fCAnQWN0aW9uIGJ1dHRvbidcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGlvbi1yaXBwbGUtZWZmZWN0PjwvaW9uLXJpcHBsZS1lZmZlY3Q+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJjb25maWcoKS5mYWIhLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbSkge1xuICAgICAgICAgICAgPCEtLSBUYWIgSXRlbSAtLT5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJib3R0b20tbmF2X190YWJcIlxuICAgICAgICAgICAgICBbY2xhc3MuYm90dG9tLW5hdl9fdGFiLS1hY3RpdmVdPVwiaXNBY3RpdmUoaXRlbSlcIlxuICAgICAgICAgICAgICBbY2xhc3MuYm90dG9tLW5hdl9fdGFiLS1kaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hbmltYXRpb25dPVwiY29uZmlnKCkuYW5pbWF0aW9uXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2xpY2soaXRlbSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0uYXJpYUxhYmVsIHx8IGdldExhYmVsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cImlzQWN0aXZlKGl0ZW0pID8gJ3BhZ2UnIDogbnVsbFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpdGVtLmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxpb24tcmlwcGxlLWVmZmVjdD48L2lvbi1yaXBwbGUtZWZmZWN0PlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tbmF2X190YWItaWNvblwiPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJnZXRJY29uKGl0ZW0pXCI+PC9pb24taWNvbj5cblxuICAgICAgICAgICAgICAgIDwhLS0gQmFkZ2UgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLmJhZGdlKSB7XG4gICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJvdHRvbS1uYXZfX2JhZGdlXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmJvdHRvbS1uYXZfX2JhZGdlLS1kb3RdPVwiaXRlbS5iYWRnZS5kb3RcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiaXRlbS5iYWRnZS5jb2xvciA/IHJlc29sdmVDb2xvcihpdGVtLmJhZGdlLmNvbG9yKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtLmJhZGdlLmJhY2tncm91bmRDb2xvciA/IHJlc29sdmVDb2xvcihpdGVtLmJhZGdlLmJhY2tncm91bmRDb2xvcikgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWl0ZW0uYmFkZ2UuZG90ICYmIGl0ZW0uYmFkZ2UudGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0uYmFkZ2UudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICBAaWYgKCFjb25maWcoKS5oaWRlTGFiZWxzICYmIGdldExhYmVsKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib3R0b20tbmF2X190YWItbGFiZWxcIj57eyBnZXRMYWJlbChpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L25hdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbJy4vYm90dG9tLW5hdi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBCb3R0b21OYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgbmF2aWdhdGlvbiA9IGluamVjdChOYXZpZ2F0aW9uU2VydmljZSk7XG4gIHByaXZhdGUgaTE4biA9IGluamVjdChJMThuU2VydmljZSk7XG4gIHByaXZhdGUgcm91dGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBDb21wb25lbnQgY29uZmlndXJhdGlvbiAqL1xuICByZWFkb25seSBwcm9wcyA9IGlucHV0PEJvdHRvbU5hdk1ldGFkYXRhPih7IHRhYnM6IFtdIH0pO1xuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gYSB0YWIgaXMgY2xpY2tlZCAqL1xuICBAT3V0cHV0KCkgdGFiQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEJvdHRvbU5hdkNsaWNrRXZlbnQ+KCk7XG5cbiAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgRkFCIGJ1dHRvbiBpcyBjbGlja2VkICovXG4gIEBPdXRwdXQoKSBmYWJDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKiogQ3VycmVudCBhY3RpdmUgcm91dGUgc2lnbmFsIGZvciByZWFjdGl2ZSB1cGRhdGVzICovXG4gIHByaXZhdGUgY3VycmVudFJvdXRlID0gc2lnbmFsPHN0cmluZz4oJycpO1xuXG4gIC8qKiBNZXJnZWQgY29uZmlndXJhdGlvbiB3aXRoIGRlZmF1bHRzICovXG4gIGNvbmZpZyA9IGNvbXB1dGVkKCgpID0+ICh7XG4gICAgLi4uQk9UVE9NX05BVl9ERUZBVUxUUyxcbiAgICAuLi50aGlzLnByb3BzKCksXG4gICAgdGhlbWU6IHtcbiAgICAgIC4uLkJPVFRPTV9OQVZfREVGQVVMVFMudGhlbWUsXG4gICAgICAuLi50aGlzLnByb3BzKCkudGhlbWUsXG4gICAgfSxcbiAgfSkpO1xuXG4gIC8qKiBDb21wdXRlZCB0YWJzIHdpdGggRkFCIGluc2VydGVkIGlmIHByZXNlbnQgKi9cbiAgZGlzcGxheVRhYnMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgdGFicyA9IHRoaXMuY29uZmlnKCkudGFicztcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcblxuICAgIGlmICghZmFiKSByZXR1cm4gdGFicztcblxuICAgIC8vIEluc2VydCBwbGFjZWhvbGRlciBhdCBjZW50ZXIgZm9yIEZBQiBwb3NpdGlvbmluZ1xuICAgIGNvbnN0IG1pZHBvaW50ID0gTWF0aC5mbG9vcih0YWJzLmxlbmd0aCAvIDIpO1xuICAgIHJldHVybiBbXG4gICAgICAuLi50YWJzLnNsaWNlKDAsIG1pZHBvaW50KSxcbiAgICAgIG51bGwgYXMgdW5rbm93biBhcyBCb3R0b21OYXZUYWIsIC8vIEZBQiBwbGFjZWhvbGRlclxuICAgICAgLi4udGFicy5zbGljZShtaWRwb2ludCksXG4gICAgXTtcbiAgfSk7XG5cbiAgLyoqIENoZWNrIGlmIGEgdGFiIGlzIGN1cnJlbnRseSBhY3RpdmUgKi9cbiAgaXNBY3RpdmUodGFiOiBCb3R0b21OYXZUYWIpOiBib29sZWFuIHtcbiAgICBjb25zdCByb3V0ZSA9IHRoaXMuY3VycmVudFJvdXRlKCk7XG4gICAgaWYgKCFyb3V0ZSkgcmV0dXJuIGZhbHNlO1xuXG4gICAgLy8gQ2hlY2sgbWFpbiByb3V0ZVxuICAgIGNvbnN0IHRhYlJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlLmpvaW4oJy8nKSA6IHRhYi5yb3V0ZTtcbiAgICBpZiAocm91dGUuc3RhcnRzV2l0aCh0YWJSb3V0ZSkpIHJldHVybiB0cnVlO1xuXG4gICAgLy8gQ2hlY2sgYWRkaXRpb25hbCBhY3RpdmUgcm91dGVzXG4gICAgaWYgKHRhYi5hY3RpdmVSb3V0ZXMpIHtcbiAgICAgIHJldHVybiB0YWIuYWN0aXZlUm91dGVzLnNvbWUociA9PiByb3V0ZS5zdGFydHNXaXRoKHIpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogR2V0IHRoZSBhcHByb3ByaWF0ZSBpY29uIGZvciBhIHRhYiBiYXNlZCBvbiBhY3RpdmUgc3RhdGUgKi9cbiAgZ2V0SWNvbih0YWI6IEJvdHRvbU5hdlRhYik6IHN0cmluZyB7XG4gICAgY29uc3QgYWN0aXZlID0gdGhpcy5pc0FjdGl2ZSh0YWIpO1xuICAgIGlmIChhY3RpdmUgJiYgdGFiLmljb24uYWN0aXZlKSB7XG4gICAgICByZXR1cm4gdGFiLmljb24uYWN0aXZlO1xuICAgIH1cbiAgICByZXR1cm4gdGFiLmljb24uZGVmYXVsdDtcbiAgfVxuXG4gIC8qKiBHZXQgdHJhbnNsYXRlZCBsYWJlbCBmb3IgYSB0YWIgKi9cbiAgZ2V0TGFiZWwodGFiOiBCb3R0b21OYXZUYWIpOiBzdHJpbmcge1xuICAgIGlmICh0YWIubGFiZWwpIHJldHVybiB0YWIubGFiZWw7XG4gICAgaWYgKHRhYi5sYWJlbEtleSkge1xuICAgICAgdGhpcy5pMThuLmxhbmcoKTsgLy8gVHJhY2sgbGFuZ3VhZ2UgY2hhbmdlcyBmb3IgcmVhY3Rpdml0eVxuICAgICAgcmV0dXJuIHRoaXMuaTE4bi50KHRhYi5sYWJlbEtleSwgdGhpcy5jb25maWcoKS5pMThuTmFtZXNwYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLyoqIEdldCBDU1MgdmFyaWFibGVzIGZvciB0aGVtaW5nICovXG4gIGdldFRoZW1lU3R5bGVzKCk6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IHRoZW1lID0gdGhpcy5jb25maWcoKS50aGVtZTtcbiAgICByZXR1cm4ge1xuICAgICAgJy0tYm90dG9tLW5hdi1iZyc6IHRoZW1lLmJhY2tncm91bmQgfHwgJycsXG4gICAgICAnLS1ib3R0b20tbmF2LWFjdGl2ZSc6IHRoaXMucmVzb2x2ZUNvbG9yKHRoZW1lLmFjdGl2ZUNvbG9yKSxcbiAgICAgICctLWJvdHRvbS1uYXYtaW5hY3RpdmUnOiB0aGlzLnJlc29sdmVDb2xvcih0aGVtZS5pbmFjdGl2ZUNvbG9yKSxcbiAgICAgICctLWJvdHRvbS1uYXYtcmFkaXVzJzogdGhlbWUuYm9yZGVyUmFkaXVzIHx8ICcnLFxuICAgICAgJy0tYm90dG9tLW5hdi1tYXgtd2lkdGgnOiB0aGlzLnJlc29sdmVNYXhXaWR0aCh0aGlzLmNvbmZpZygpLm1heFdpZHRoKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqIFJlc29sdmUgbWF4V2lkdGggdG9rZW4gKHNtfG1kfGxnfHhsfGZ1bGwpIHRvIENTUyB2YXIgb3IgcmF3IHZhbHVlICovXG4gIHJlc29sdmVNYXhXaWR0aCh2Pzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHYpIHtcbiAgICAgIGNhc2UgJ3NtJzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12YWwtY29udGFpbmVyLXNtLCA1NDBweCknO1xuICAgICAgY2FzZSAnbWQnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXZhbC1jb250YWluZXItbWQsIDcyMHB4KSc7XG4gICAgICBjYXNlICdsZyc6XG4gICAgICAgIHJldHVybiAndmFyKC0tdmFsLWNvbnRhaW5lci1sZywgODgwcHgpJztcbiAgICAgIGNhc2UgJ3hsJzpcbiAgICAgICAgcmV0dXJuICd2YXIoLS12YWwtY29udGFpbmVyLXhsLCAxMTAwcHgpJztcbiAgICAgIGNhc2UgJ2Z1bGwnOlxuICAgICAgICByZXR1cm4gJ25vbmUnO1xuICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICBjYXNlICcnOlxuICAgICAgICByZXR1cm4gJ3ZhcigtLXZhbC1jb250YWluZXItbWQsIDcyMHB4KSc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdjtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTZXQgaW5pdGlhbCByb3V0ZVxuICAgIHRoaXMuY3VycmVudFJvdXRlLnNldCh0aGlzLnJvdXRlci51cmwpO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIHJvdXRlIGNoYW5nZXNcbiAgICB0aGlzLnJvdXRlclN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50c1xuICAgICAgLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgdGhpcy5jdXJyZW50Um91dGUuc2V0KChldmVudCBhcyBOYXZpZ2F0aW9uRW5kKS51cmxBZnRlclJlZGlyZWN0cyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSB0YWIgY2xpY2sgKi9cbiAgb25UYWJDbGljayh0YWI6IEJvdHRvbU5hdlRhYik6IHZvaWQge1xuICAgIGlmICh0YWIuZGlzYWJsZWQpIHJldHVybjtcblxuICAgIC8vIEVtaXQgZXZlbnRcbiAgICB0aGlzLnRhYkNsaWNrLmVtaXQoe1xuICAgICAgdG9rZW46IHRhYi50b2tlbixcbiAgICAgIGlzRmFiOiBmYWxzZSxcbiAgICAgIHJvdXRlOiB0YWIucm91dGUsXG4gICAgfSk7XG5cbiAgICAvLyBOYXZpZ2F0ZVxuICAgIGNvbnN0IHJvdXRlID0gQXJyYXkuaXNBcnJheSh0YWIucm91dGUpID8gdGFiLnJvdXRlIDogW3RhYi5yb3V0ZV07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUocm91dGUpO1xuICB9XG5cbiAgLyoqIEhhbmRsZSBGQUIgY2xpY2sgKi9cbiAgb25GYWJDbGljaygpOiB2b2lkIHtcbiAgICBjb25zdCBmYWIgPSB0aGlzLmNvbmZpZygpLmZhYjtcbiAgICBpZiAoIWZhYikgcmV0dXJuO1xuXG4gICAgLy8gRW1pdCBldmVudFxuICAgIHRoaXMuZmFiQ2xpY2suZW1pdCgpO1xuXG4gICAgLy8gTmF2aWdhdGUgaWYgcm91dGUgaXMgZGVmaW5lZCBhbmQgbm90IGFuIGFjdGlvbi1vbmx5IGJ1dHRvblxuICAgIGlmIChmYWIucm91dGUgJiYgIWZhYi5pc0FjdGlvbikge1xuICAgICAgY29uc3Qgcm91dGUgPSBBcnJheS5pc0FycmF5KGZhYi5yb3V0ZSkgPyBmYWIucm91dGUgOiBbZmFiLnJvdXRlXTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKHJvdXRlKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVzb2x2ZSBJb25pYyBjb2xvciBuYW1lIHRvIENTUyB2YXJpYWJsZSAqL1xuICByZXNvbHZlQ29sb3IoY29sb3I/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghY29sb3IpIHJldHVybiAnJztcbiAgICBjb25zdCBpb25pY0NvbG9ycyA9IFsncHJpbWFyeScsICdzZWNvbmRhcnknLCAndGVydGlhcnknLCAnc3VjY2VzcycsICd3YXJuaW5nJywgJ2RhbmdlcicsICdsaWdodCcsICdtZWRpdW0nLCAnZGFyayddO1xuICAgIGlmIChpb25pY0NvbG9ycy5pbmNsdWRlcyhjb2xvcikpIHtcbiAgICAgIHJldHVybiBgdmFyKC0taW9uLWNvbG9yLSR7Y29sb3J9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxufVxuIl19
|
package/esm2022/lib/components/organisms/login-attempt-modal/login-attempt-modal.component.mjs
ADDED
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, Input, signal } from '@angular/core';
|
|
3
|
+
import { IonButton, IonButtons, IonContent, IonHeader, IonIcon, IonToolbar } from '@ionic/angular/standalone';
|
|
4
|
+
import { addIcons } from 'ionicons';
|
|
5
|
+
import { checkmarkCircleOutline, shieldCheckmarkOutline } from 'ionicons/icons';
|
|
6
|
+
import { ButtonComponent } from '../../atoms/button/button.component';
|
|
7
|
+
import { DisplayComponent } from '../../atoms/display/display.component';
|
|
8
|
+
import { TextComponent } from '../../atoms/text/text.component';
|
|
9
|
+
import { ComponentStates } from '../../types';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
addIcons({ shieldCheckmarkOutline, checkmarkCircleOutline });
|
|
12
|
+
/**
|
|
13
|
+
* `val-login-attempt-modal` — modal de confirmación de intento de inicio de sesión.
|
|
14
|
+
*
|
|
15
|
+
* Se abre cuando el usuario llega a la vista Seguridad vía
|
|
16
|
+
* `?token=...` desde el email/push de "nuevo acceso". Muestra el dispositivo
|
|
17
|
+
* detectado y dos acciones: confirmar que fue uno mismo (cierra sin hacer nada)
|
|
18
|
+
* o bloquear el dispositivo (ejecuta el token de acción).
|
|
19
|
+
*
|
|
20
|
+
* Inputs vía `componentProps` del ModalService. Sin `@Output` (no funcionan con
|
|
21
|
+
* `modalController.create()`) — usa callback `onBlock` y `_modalRef.dismiss`.
|
|
22
|
+
* Recibe los labels ya traducidos (agnóstico a i18n).
|
|
23
|
+
*
|
|
24
|
+
* Header canónico (Regla #5): sin `ion-title`, botón Cerrar texto en `slot=end`,
|
|
25
|
+
* título en el body con `val-display`.
|
|
26
|
+
*/
|
|
27
|
+
export class LoginAttemptModalComponent {
|
|
28
|
+
constructor() {
|
|
29
|
+
/** Título del modal (i18n ya resuelto). */
|
|
30
|
+
this.title = '';
|
|
31
|
+
/** Texto explicativo. */
|
|
32
|
+
this.body = '';
|
|
33
|
+
/** Descripción del dispositivo (navegador · OS · ubicación). */
|
|
34
|
+
this.deviceLabel = '';
|
|
35
|
+
/** Metadata secundaria (fecha, IP). Opcional. */
|
|
36
|
+
this.metaLabel = '';
|
|
37
|
+
/** Mensaje mostrado tras bloquear. */
|
|
38
|
+
this.doneLabel = '';
|
|
39
|
+
/** Labels de botones. */
|
|
40
|
+
this.mineLabel = '';
|
|
41
|
+
this.blockLabel = '';
|
|
42
|
+
this.closeLabel = '';
|
|
43
|
+
/** `true` si el dispositivo es móvil — cambia el icono. */
|
|
44
|
+
this.isMobile = false;
|
|
45
|
+
/** `true` tras bloquear con éxito — cambia el modal a estado "hecho". */
|
|
46
|
+
this.done = signal(false);
|
|
47
|
+
this.working = false;
|
|
48
|
+
}
|
|
49
|
+
get deviceIcon() {
|
|
50
|
+
return this.isMobile ? 'phone-portrait-outline' : 'laptop-outline';
|
|
51
|
+
}
|
|
52
|
+
/** "Sí, fui yo" — cierra sin acción. El dispositivo ya está activo. */
|
|
53
|
+
confirmMine() {
|
|
54
|
+
this._modalRef?.dismiss(undefined, 'mine');
|
|
55
|
+
}
|
|
56
|
+
/** "No fui yo" — ejecuta el bloqueo y pasa a estado done. */
|
|
57
|
+
async confirmBlock() {
|
|
58
|
+
if (this.working || !this.onBlock)
|
|
59
|
+
return;
|
|
60
|
+
this.working = true;
|
|
61
|
+
try {
|
|
62
|
+
await this.onBlock();
|
|
63
|
+
this.done.set(true);
|
|
64
|
+
}
|
|
65
|
+
catch {
|
|
66
|
+
// El parent muestra el toast de error; cerramos el modal.
|
|
67
|
+
this._modalRef?.dismiss(undefined, 'error');
|
|
68
|
+
}
|
|
69
|
+
finally {
|
|
70
|
+
this.working = false;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
close() {
|
|
74
|
+
this._modalRef?.dismiss(undefined, this.done() ? 'blocked' : 'close');
|
|
75
|
+
}
|
|
76
|
+
get mineBtn() {
|
|
77
|
+
return {
|
|
78
|
+
text: this.mineLabel,
|
|
79
|
+
color: 'medium',
|
|
80
|
+
fill: 'outline',
|
|
81
|
+
size: 'default',
|
|
82
|
+
type: 'button',
|
|
83
|
+
state: ComponentStates.ENABLED,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
get blockBtn() {
|
|
87
|
+
return {
|
|
88
|
+
text: this.blockLabel,
|
|
89
|
+
color: 'danger',
|
|
90
|
+
fill: 'solid',
|
|
91
|
+
size: 'default',
|
|
92
|
+
type: 'button',
|
|
93
|
+
state: ComponentStates.ENABLED,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
get closeBtn() {
|
|
97
|
+
return {
|
|
98
|
+
text: this.closeLabel,
|
|
99
|
+
color: 'dark',
|
|
100
|
+
fill: 'solid',
|
|
101
|
+
size: 'default',
|
|
102
|
+
type: 'button',
|
|
103
|
+
state: ComponentStates.ENABLED,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoginAttemptModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
107
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LoginAttemptModalComponent, isStandalone: true, selector: "val-login-attempt-modal", inputs: { title: "title", body: "body", deviceLabel: "deviceLabel", metaLabel: "metaLabel", doneLabel: "doneLabel", mineLabel: "mineLabel", blockLabel: "blockLabel", closeLabel: "closeLabel", isMobile: "isMobile", onBlock: "onBlock", _modalRef: "_modalRef" }, ngImport: i0, template: `
|
|
108
|
+
<ion-header>
|
|
109
|
+
<ion-toolbar>
|
|
110
|
+
<ion-buttons slot="end">
|
|
111
|
+
<ion-button fill="clear" color="dark" (click)="close()">
|
|
112
|
+
<strong>{{ closeLabel }}</strong>
|
|
113
|
+
</ion-button>
|
|
114
|
+
</ion-buttons>
|
|
115
|
+
</ion-toolbar>
|
|
116
|
+
</ion-header>
|
|
117
|
+
<ion-content class="ion-padding">
|
|
118
|
+
<val-display [props]="{ content: title, size: 'small', color: 'dark' }" />
|
|
119
|
+
<div class="attempt">
|
|
120
|
+
<div class="attempt__hero">
|
|
121
|
+
<ion-icon name="shield-checkmark-outline" aria-hidden="true" />
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<val-text
|
|
125
|
+
[props]="{
|
|
126
|
+
content: body,
|
|
127
|
+
size: 'medium',
|
|
128
|
+
color: 'dark',
|
|
129
|
+
bold: false,
|
|
130
|
+
}"
|
|
131
|
+
/>
|
|
132
|
+
|
|
133
|
+
<div class="attempt__device">
|
|
134
|
+
<ion-icon [name]="deviceIcon" aria-hidden="true" />
|
|
135
|
+
<div class="attempt__device-body">
|
|
136
|
+
<val-text
|
|
137
|
+
[props]="{
|
|
138
|
+
content: deviceLabel,
|
|
139
|
+
size: 'medium',
|
|
140
|
+
color: 'dark',
|
|
141
|
+
bold: true,
|
|
142
|
+
}"
|
|
143
|
+
/>
|
|
144
|
+
@if (metaLabel) {
|
|
145
|
+
<val-text
|
|
146
|
+
[props]="{
|
|
147
|
+
content: metaLabel,
|
|
148
|
+
size: 'small',
|
|
149
|
+
color: 'medium',
|
|
150
|
+
bold: false,
|
|
151
|
+
}"
|
|
152
|
+
/>
|
|
153
|
+
}
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
@if (done()) {
|
|
158
|
+
<div class="attempt__done">
|
|
159
|
+
<ion-icon name="checkmark-circle-outline" aria-hidden="true" />
|
|
160
|
+
<val-text
|
|
161
|
+
[props]="{
|
|
162
|
+
content: doneLabel,
|
|
163
|
+
size: 'small',
|
|
164
|
+
color: 'medium',
|
|
165
|
+
bold: false,
|
|
166
|
+
}"
|
|
167
|
+
/>
|
|
168
|
+
</div>
|
|
169
|
+
}
|
|
170
|
+
</div>
|
|
171
|
+
</ion-content>
|
|
172
|
+
|
|
173
|
+
@if (!done()) {
|
|
174
|
+
<div class="attempt__actions">
|
|
175
|
+
<val-button [props]="mineBtn" (click)="confirmMine()" />
|
|
176
|
+
<val-button [props]="blockBtn" (click)="confirmBlock()" />
|
|
177
|
+
</div>
|
|
178
|
+
} @else {
|
|
179
|
+
<div class="attempt__actions">
|
|
180
|
+
<val-button [props]="closeBtn" (click)="close()" />
|
|
181
|
+
</div>
|
|
182
|
+
}
|
|
183
|
+
`, isInline: true, styles: [":host{display:block}.attempt{display:flex;flex-direction:column;gap:18px;align-items:flex-start}.attempt__hero{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#7026df1a}.attempt__hero ion-icon{font-size:30px;color:var(--ion-color-primary, #7026df)}.attempt__device{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.attempt__device ion-icon{font-size:26px;color:var(--ion-color-dark);flex-shrink:0}.attempt__device-body{display:flex;flex-direction:column;gap:2px;min-width:0}.attempt__done{display:flex;align-items:center;gap:8px}.attempt__done ion-icon{font-size:20px;color:var(--ion-color-success);flex-shrink:0}.attempt__actions{display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.attempt__actions val-button{flex:1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { 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: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: DisplayComponent, selector: "val-display", inputs: ["props"] }, { kind: "component", type: TextComponent, selector: "val-text", inputs: ["props"] }, { kind: "component", type: ButtonComponent, selector: "val-button", inputs: ["preset", "props"], outputs: ["onClick"] }] }); }
|
|
184
|
+
}
|
|
185
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LoginAttemptModalComponent, decorators: [{
|
|
186
|
+
type: Component,
|
|
187
|
+
args: [{ selector: 'val-login-attempt-modal', standalone: true, imports: [
|
|
188
|
+
CommonModule,
|
|
189
|
+
IonContent,
|
|
190
|
+
IonHeader,
|
|
191
|
+
IonToolbar,
|
|
192
|
+
IonButtons,
|
|
193
|
+
IonButton,
|
|
194
|
+
IonIcon,
|
|
195
|
+
DisplayComponent,
|
|
196
|
+
TextComponent,
|
|
197
|
+
ButtonComponent,
|
|
198
|
+
], template: `
|
|
199
|
+
<ion-header>
|
|
200
|
+
<ion-toolbar>
|
|
201
|
+
<ion-buttons slot="end">
|
|
202
|
+
<ion-button fill="clear" color="dark" (click)="close()">
|
|
203
|
+
<strong>{{ closeLabel }}</strong>
|
|
204
|
+
</ion-button>
|
|
205
|
+
</ion-buttons>
|
|
206
|
+
</ion-toolbar>
|
|
207
|
+
</ion-header>
|
|
208
|
+
<ion-content class="ion-padding">
|
|
209
|
+
<val-display [props]="{ content: title, size: 'small', color: 'dark' }" />
|
|
210
|
+
<div class="attempt">
|
|
211
|
+
<div class="attempt__hero">
|
|
212
|
+
<ion-icon name="shield-checkmark-outline" aria-hidden="true" />
|
|
213
|
+
</div>
|
|
214
|
+
|
|
215
|
+
<val-text
|
|
216
|
+
[props]="{
|
|
217
|
+
content: body,
|
|
218
|
+
size: 'medium',
|
|
219
|
+
color: 'dark',
|
|
220
|
+
bold: false,
|
|
221
|
+
}"
|
|
222
|
+
/>
|
|
223
|
+
|
|
224
|
+
<div class="attempt__device">
|
|
225
|
+
<ion-icon [name]="deviceIcon" aria-hidden="true" />
|
|
226
|
+
<div class="attempt__device-body">
|
|
227
|
+
<val-text
|
|
228
|
+
[props]="{
|
|
229
|
+
content: deviceLabel,
|
|
230
|
+
size: 'medium',
|
|
231
|
+
color: 'dark',
|
|
232
|
+
bold: true,
|
|
233
|
+
}"
|
|
234
|
+
/>
|
|
235
|
+
@if (metaLabel) {
|
|
236
|
+
<val-text
|
|
237
|
+
[props]="{
|
|
238
|
+
content: metaLabel,
|
|
239
|
+
size: 'small',
|
|
240
|
+
color: 'medium',
|
|
241
|
+
bold: false,
|
|
242
|
+
}"
|
|
243
|
+
/>
|
|
244
|
+
}
|
|
245
|
+
</div>
|
|
246
|
+
</div>
|
|
247
|
+
|
|
248
|
+
@if (done()) {
|
|
249
|
+
<div class="attempt__done">
|
|
250
|
+
<ion-icon name="checkmark-circle-outline" aria-hidden="true" />
|
|
251
|
+
<val-text
|
|
252
|
+
[props]="{
|
|
253
|
+
content: doneLabel,
|
|
254
|
+
size: 'small',
|
|
255
|
+
color: 'medium',
|
|
256
|
+
bold: false,
|
|
257
|
+
}"
|
|
258
|
+
/>
|
|
259
|
+
</div>
|
|
260
|
+
}
|
|
261
|
+
</div>
|
|
262
|
+
</ion-content>
|
|
263
|
+
|
|
264
|
+
@if (!done()) {
|
|
265
|
+
<div class="attempt__actions">
|
|
266
|
+
<val-button [props]="mineBtn" (click)="confirmMine()" />
|
|
267
|
+
<val-button [props]="blockBtn" (click)="confirmBlock()" />
|
|
268
|
+
</div>
|
|
269
|
+
} @else {
|
|
270
|
+
<div class="attempt__actions">
|
|
271
|
+
<val-button [props]="closeBtn" (click)="close()" />
|
|
272
|
+
</div>
|
|
273
|
+
}
|
|
274
|
+
`, styles: [":host{display:block}.attempt{display:flex;flex-direction:column;gap:18px;align-items:flex-start}.attempt__hero{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#7026df1a}.attempt__hero ion-icon{font-size:30px;color:var(--ion-color-primary, #7026df)}.attempt__device{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;border-radius:12px;background:var(--ion-color-light, #f4f5f8);border:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.attempt__device ion-icon{font-size:26px;color:var(--ion-color-dark);flex-shrink:0}.attempt__device-body{display:flex;flex-direction:column;gap:2px;min-width:0}.attempt__done{display:flex;align-items:center;gap:8px}.attempt__done ion-icon{font-size:20px;color:var(--ion-color-success);flex-shrink:0}.attempt__actions{display:flex;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--val-border-color, rgba(0, 0, 0, .08))}.attempt__actions val-button{flex:1}\n"] }]
|
|
275
|
+
}], propDecorators: { title: [{
|
|
276
|
+
type: Input
|
|
277
|
+
}], body: [{
|
|
278
|
+
type: Input
|
|
279
|
+
}], deviceLabel: [{
|
|
280
|
+
type: Input
|
|
281
|
+
}], metaLabel: [{
|
|
282
|
+
type: Input
|
|
283
|
+
}], doneLabel: [{
|
|
284
|
+
type: Input
|
|
285
|
+
}], mineLabel: [{
|
|
286
|
+
type: Input
|
|
287
|
+
}], blockLabel: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], closeLabel: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}], isMobile: [{
|
|
292
|
+
type: Input
|
|
293
|
+
}], onBlock: [{
|
|
294
|
+
type: Input
|
|
295
|
+
}], _modalRef: [{
|
|
296
|
+
type: Input
|
|
297
|
+
}] } });
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tYXR0ZW1wdC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvb3JnYW5pc21zL2xvZ2luLWF0dGVtcHQtbW9kYWwvbG9naW4tYXR0ZW1wdC1tb2RhbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxFQUFrQixlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBRTlELFFBQVEsQ0FBQyxFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLENBQUMsQ0FBQztBQUU3RDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQWdLSCxNQUFNLE9BQU8sMEJBQTBCO0lBL0p2QztRQWdLRSwyQ0FBMkM7UUFDbEMsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNwQix5QkFBeUI7UUFDaEIsU0FBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQixnRUFBZ0U7UUFDdkQsZ0JBQVcsR0FBRyxFQUFF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Q1AsZ0JBQWdCLDJFQUNoQixhQUFhLHdFQUNiLGVBQWU7OzRGQWtKTiwwQkFBMEI7a0JBL0p0QyxTQUFTOytCQUNFLHlCQUF5QixjQUN2QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLFNBQVM7d0JBQ1QsT0FBTzt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEIsWUFDUzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRFVDs4QkFzRVEsS0FBSztzQkFBYixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFFRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQU1HLE9BQU87c0JBQWYsS0FBSztnQkFHRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW9uQnV0dG9uLCBJb25CdXR0b25zLCBJb25Db250ZW50LCBJb25IZWFkZXIsIElvbkljb24sIElvblRvb2xiYXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhci9zdGFuZGFsb25lJztcbmltcG9ydCB7IGFkZEljb25zIH0gZnJvbSAnaW9uaWNvbnMnO1xuaW1wb3J0IHsgY2hlY2ttYXJrQ2lyY2xlT3V0bGluZSwgc2hpZWxkQ2hlY2ttYXJrT3V0bGluZSB9IGZyb20gJ2lvbmljb25zL2ljb25zJztcblxuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYXRvbXMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGlzcGxheUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL2Rpc3BsYXkvZGlzcGxheS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2F0b21zL3RleHQvdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uTWV0YWRhdGEsIENvbXBvbmVudFN0YXRlcyB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuYWRkSWNvbnMoeyBzaGllbGRDaGVja21hcmtPdXRsaW5lLCBjaGVja21hcmtDaXJjbGVPdXRsaW5lIH0pO1xuXG4vKipcbiAqIGB2YWwtbG9naW4tYXR0ZW1wdC1tb2RhbGAg4oCUIG1vZGFsIGRlIGNvbmZpcm1hY2nDs24gZGUgaW50ZW50byBkZSBpbmljaW8gZGUgc2VzacOzbi5cbiAqXG4gKiBTZSBhYnJlIGN1YW5kbyBlbCB1c3VhcmlvIGxsZWdhIGEgbGEgdmlzdGEgU2VndXJpZGFkIHbDrWFcbiAqIGA/dG9rZW49Li4uYCBkZXNkZSBlbCBlbWFpbC9wdXNoIGRlIFwibnVldm8gYWNjZXNvXCIuIE11ZXN0cmEgZWwgZGlzcG9zaXRpdm9cbiAqIGRldGVjdGFkbyB5IGRvcyBhY2Npb25lczogY29uZmlybWFyIHF1ZSBmdWUgdW5vIG1pc21vIChjaWVycmEgc2luIGhhY2VyIG5hZGEpXG4gKiBvIGJsb3F1ZWFyIGVsIGRpc3Bvc2l0aXZvIChlamVjdXRhIGVsIHRva2VuIGRlIGFjY2nDs24pLlxuICpcbiAqIElucHV0cyB2w61hIGBjb21wb25lbnRQcm9wc2AgZGVsIE1vZGFsU2VydmljZS4gU2luIGBAT3V0cHV0YCAobm8gZnVuY2lvbmFuIGNvblxuICogYG1vZGFsQ29udHJvbGxlci5jcmVhdGUoKWApIOKAlCB1c2EgY2FsbGJhY2sgYG9uQmxvY2tgIHkgYF9tb2RhbFJlZi5kaXNtaXNzYC5cbiAqIFJlY2liZSBsb3MgbGFiZWxzIHlhIHRyYWR1Y2lkb3MgKGFnbsOzc3RpY28gYSBpMThuKS5cbiAqXG4gKiBIZWFkZXIgY2Fuw7NuaWNvIChSZWdsYSAjNSk6IHNpbiBgaW9uLXRpdGxlYCwgYm90w7NuIENlcnJhciB0ZXh0byBlbiBgc2xvdD1lbmRgLFxuICogdMOtdHVsbyBlbiBlbCBib2R5IGNvbiBgdmFsLWRpc3BsYXlgLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWwtbG9naW4tYXR0ZW1wdC1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uQ29udGVudCxcbiAgICBJb25IZWFkZXIsXG4gICAgSW9uVG9vbGJhcixcbiAgICBJb25CdXR0b25zLFxuICAgIElvbkJ1dHRvbixcbiAgICBJb25JY29uLFxuICAgIERpc3BsYXlDb21wb25lbnQsXG4gICAgVGV4dENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnQsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGlvbi1oZWFkZXI+XG4gICAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgPGlvbi1idXR0b24gZmlsbD1cImNsZWFyXCIgY29sb3I9XCJkYXJrXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgICAgIDxzdHJvbmc+e3sgY2xvc2VMYWJlbCB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuICAgIDxpb24tY29udGVudCBjbGFzcz1cImlvbi1wYWRkaW5nXCI+XG4gICAgICA8dmFsLWRpc3BsYXkgW3Byb3BzXT1cInsgY29udGVudDogdGl0bGUsIHNpemU6ICdzbWFsbCcsIGNvbG9yOiAnZGFyaycgfVwiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0ZW1wdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0ZW1wdF9faGVyb1wiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwic2hpZWxkLWNoZWNrbWFyay1vdXRsaW5lXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgIGNvbnRlbnQ6IGJvZHksXG4gICAgICAgICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgICAgICAgIGNvbG9yOiAnZGFyaycsXG4gICAgICAgICAgICBib2xkOiBmYWxzZSxcbiAgICAgICAgICB9XCJcbiAgICAgICAgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiYXR0ZW1wdF9fZGV2aWNlXCI+XG4gICAgICAgICAgPGlvbi1pY29uIFtuYW1lXT1cImRldmljZUljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIiAvPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRlbXB0X19kZXZpY2UtYm9keVwiPlxuICAgICAgICAgICAgPHZhbC10ZXh0XG4gICAgICAgICAgICAgIFtwcm9wc109XCJ7XG4gICAgICAgICAgICAgICAgY29udGVudDogZGV2aWNlTGFiZWwsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdkYXJrJyxcbiAgICAgICAgICAgICAgICBib2xkOiB0cnVlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICBAaWYgKG1ldGFMYWJlbCkge1xuICAgICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgICBbcHJvcHNdPVwie1xuICAgICAgICAgICAgICAgICAgY29udGVudDogbWV0YUxhYmVsLFxuICAgICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAnbWVkaXVtJyxcbiAgICAgICAgICAgICAgICAgIGJvbGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKGRvbmUoKSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdHRlbXB0X19kb25lXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNoZWNrbWFyay1jaXJjbGUtb3V0bGluZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIC8+XG4gICAgICAgICAgICA8dmFsLXRleHRcbiAgICAgICAgICAgICAgW3Byb3BzXT1cIntcbiAgICAgICAgICAgICAgICBjb250ZW50OiBkb25lTGFiZWwsXG4gICAgICAgICAgICAgICAgc2l6ZTogJ3NtYWxsJyxcbiAgICAgICAgICAgICAgICBjb2xvcjogJ21lZGl1bScsXG4gICAgICAgICAgICAgICAgYm9sZDogZmFsc2UsXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9pb24tY29udGVudD5cblxuICAgIEBpZiAoIWRvbmUoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImF0dGVtcHRfX2FjdGlvbnNcIj5cbiAgICAgICAgPHZhbC1idXR0b24gW3Byb3BzXT1cIm1pbmVCdG5cIiAoY2xpY2spPVwiY29uZmlybU1pbmUoKVwiIC8+XG4gICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJibG9ja0J0blwiIChjbGljayk9XCJjb25maXJtQmxvY2soKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJhdHRlbXB0X19hY3Rpb25zXCI+XG4gICAgICAgIDx2YWwtYnV0dG9uIFtwcm9wc109XCJjbG9zZUJ0blwiIChjbGljayk9XCJjbG9zZSgpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgYCxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIC5hdHRlbXB0IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAxOHB4O1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICAgIH1cbiAgICAgIC5hdHRlbXB0X19oZXJvIHtcbiAgICAgICAgd2lkdGg6IDU2cHg7XG4gICAgICAgIGhlaWdodDogNTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGJhY2tncm91bmQ6IHJnYmEoMTEyLCAzOCwgMjIzLCAwLjEpO1xuICAgICAgfVxuICAgICAgLmF0dGVtcHRfX2hlcm8gaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSwgIzcwMjZkZik7XG4gICAgICB9XG4gICAgICAuYXR0ZW1wdF9fZGV2aWNlIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiAxMnB4O1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pb24tY29sb3ItbGlnaHQsICNmNGY1ZjgpO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS12YWwtYm9yZGVyLWNvbG9yLCByZ2JhKDAsIDAsIDAsIDAuMDgpKTtcbiAgICAgIH1cbiAgICAgIC5hdHRlbXB0X19kZXZpY2UgaW9uLWljb24ge1xuICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1pb24tY29sb3ItZGFyayk7XG4gICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgfVxuICAgICAgLmF0dGVtcHRfX2RldmljZS1ib2R5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAycHg7XG4gICAgICAgIG1pbi13aWR0aDogMDtcbiAgICAgIH1cbiAgICAgIC5hdHRlbXB0X19kb25lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgICB9XG4gICAgICAuYXR0ZW1wdF9fZG9uZSBpb24taWNvbiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgY29sb3I6IHZhcigtLWlvbi1jb2xvci1zdWNjZXNzKTtcbiAgICAgICAgZmxleC1zaHJpbms6IDA7XG4gICAgICB9XG4gICAgICAuYXR0ZW1wdF9fYWN0aW9ucyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4IGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tLCAwcHgpKTtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLXZhbC1ib3JkZXItY29sb3IsIHJnYmEoMCwgMCwgMCwgMC4wOCkpO1xuICAgICAgfVxuICAgICAgLmF0dGVtcHRfX2FjdGlvbnMgdmFsLWJ1dHRvbiB7XG4gICAgICAgIGZsZXg6IDE7XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTG9naW5BdHRlbXB0TW9kYWxDb21wb25lbnQge1xuICAvKiogVMOtdHVsbyBkZWwgbW9kYWwgKGkxOG4geWEgcmVzdWVsdG8pLiAqL1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICAvKiogVGV4dG8gZXhwbGljYXRpdm8uICovXG4gIEBJbnB1dCgpIGJvZHkgPSAnJztcbiAgLyoqIERlc2NyaXBjacOzbiBkZWwgZGlzcG9zaXRpdm8gKG5hdmVnYWRvciDCtyBPUyDCtyB1YmljYWNpw7NuKS4gKi9cbiAgQElucHV0KCkgZGV2aWNlTGFiZWwgPSAnJztcbiAgLyoqIE1ldGFkYXRhIHNlY3VuZGFyaWEgKGZlY2hhLCBJUCkuIE9wY2lvbmFsLiAqL1xuICBASW5wdXQoKSBtZXRhTGFiZWwgPSAnJztcbiAgLyoqIE1lbnNhamUgbW9zdHJhZG8gdHJhcyBibG9xdWVhci4gKi9cbiAgQElucHV0KCkgZG9uZUxhYmVsID0gJyc7XG4gIC8qKiBMYWJlbHMgZGUgYm90b25lcy4gKi9cbiAgQElucHV0KCkgbWluZUxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIGJsb2NrTGFiZWwgPSAnJztcbiAgQElucHV0KCkgY2xvc2VMYWJlbCA9ICcnO1xuICAvKiogYHRydWVgIHNpIGVsIGRpc3Bvc2l0aXZvIGVzIG3Ds3ZpbCDigJQgY2FtYmlhIGVsIGljb25vLiAqL1xuICBASW5wdXQoKSBpc01vYmlsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBxdWUgZWplY3V0YSBlbCBibG9xdWVvIChleGVjdXRlQWN0aW9uIGNvbiBlbCB0b2tlbikgY29udHJhIGVsXG4gICAqIGJhY2tlbmQuIExvIHByb3ZlZSBlbCBwYXJlbnQgdsOtYSBgY29tcG9uZW50UHJvcHNgLiBEZWJlIGxhbnphciBzaSBmYWxsYS5cbiAgICovXG4gIEBJbnB1dCgpIG9uQmxvY2s/OiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKiBJbnllY3RhZG8gcG9yIGBNb2RhbFNlcnZpY2Uub3BlbmAg4oCUIHJlZmVyZW5jaWEgcGFyYSBjZXJyYXIuICovXG4gIEBJbnB1dCgpIF9tb2RhbFJlZj86IHsgZGlzbWlzczogKGRhdGE/OiB1bmtub3duLCByb2xlPzogc3RyaW5nKSA9PiB2b2lkIH07XG5cbiAgLyoqIGB0cnVlYCB0cmFzIGJsb3F1ZWFyIGNvbiDDqXhpdG8g4oCUIGNhbWJpYSBlbCBtb2RhbCBhIGVzdGFkbyBcImhlY2hvXCIuICovXG4gIHByb3RlY3RlZCByZWFkb25seSBkb25lID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSB3b3JraW5nID0gZmFsc2U7XG5cbiAgZ2V0IGRldmljZUljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc01vYmlsZSA/ICdwaG9uZS1wb3J0cmFpdC1vdXRsaW5lJyA6ICdsYXB0b3Atb3V0bGluZSc7XG4gIH1cblxuICAvKiogXCJTw60sIGZ1aSB5b1wiIOKAlCBjaWVycmEgc2luIGFjY2nDs24uIEVsIGRpc3Bvc2l0aXZvIHlhIGVzdMOhIGFjdGl2by4gKi9cbiAgY29uZmlybU1pbmUoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWxSZWY/LmRpc21pc3ModW5kZWZpbmVkLCAnbWluZScpO1xuICB9XG5cbiAgLyoqIFwiTm8gZnVpIHlvXCIg4oCUIGVqZWN1dGEgZWwgYmxvcXVlbyB5IHBhc2EgYSBlc3RhZG8gZG9uZS4gKi9cbiAgYXN5bmMgY29uZmlybUJsb2NrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLndvcmtpbmcgfHwgIXRoaXMub25CbG9jaykgcmV0dXJuO1xuICAgIHRoaXMud29ya2luZyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMub25CbG9jaygpO1xuICAgICAgdGhpcy5kb25lLnNldCh0cnVlKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIEVsIHBhcmVudCBtdWVzdHJhIGVsIHRvYXN0IGRlIGVycm9yOyBjZXJyYW1vcyBlbCBtb2RhbC5cbiAgICAgIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKHVuZGVmaW5lZCwgJ2Vycm9yJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMud29ya2luZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX21vZGFsUmVmPy5kaXNtaXNzKHVuZGVmaW5lZCwgdGhpcy5kb25lKCkgPyAnYmxvY2tlZCcgOiAnY2xvc2UnKTtcbiAgfVxuXG4gIGdldCBtaW5lQnRuKCk6IFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogdGhpcy5taW5lTGFiZWwsXG4gICAgICBjb2xvcjogJ21lZGl1bScsXG4gICAgICBmaWxsOiAnb3V0bGluZScsXG4gICAgICBzaXplOiAnZGVmYXVsdCcsXG4gICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgIHN0YXRlOiBDb21wb25lbnRTdGF0ZXMuRU5BQkxFRCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0IGJsb2NrQnRuKCk6IFBhcnRpYWw8QnV0dG9uTWV0YWRhdGE+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdGV4dDogdGhpcy5ibG9ja0xhYmVsLFxuICAgICAgY29sb3I6ICdkYW5nZXInLFxuICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG4gIH1cblxuICBnZXQgY2xvc2VCdG4oKTogUGFydGlhbDxCdXR0b25NZXRhZGF0YT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0ZXh0OiB0aGlzLmNsb3NlTGFiZWwsXG4gICAgICBjb2xvcjogJ2RhcmsnLFxuICAgICAgZmlsbDogJ3NvbGlkJyxcbiAgICAgIHNpemU6ICdkZWZhdWx0JyxcbiAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgc3RhdGU6IENvbXBvbmVudFN0YXRlcy5FTkFCTEVELFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|