aile-capacitor-aiff
Version:
AIFF WebView plugin for Capacitor with iframe-based web implementation
314 lines (274 loc) • 14.5 kB
CSS
:root {
--aiff-primary-color: #007bff;
--aiff-secondary-color: #6c757d;
--aiff-success-color: #28a745;
--aiff-danger-color: #dc3545;
--aiff-warning-color: #ffc107;
--aiff-info-color: #17a2b8;
--aiff-light-color: #f8f9fa;
--aiff-dark-color: #343a40;
--aiff-border-radius: 8px;
--aiff-box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
--aiff-transition: all 0.3s ease;
}
/* 深色模式变量 */
@media (prefers-color-scheme: dark) {
:root {
--aiff-bg-color: #1a1a1a;
--aiff-text-color: #ffffff;
--aiff-border-color: #333333;
--aiff-surface-color: #2d2d2d;
}
}
/* 浅色模式变量 */
@media (prefers-color-scheme: light) {
:root {
--aiff-bg-color: #ffffff;
--aiff-text-color: #333333;
--aiff-border-color: #e0e0e0;
--aiff-surface-color: #f8f9fa;
}
}
/* 强制浅色模式 */
.aiff-theme-light {
--aiff-bg-color: #ffffff ;
--aiff-text-color: #333333 ;
--aiff-border-color: #e0e0e0 ;
--aiff-surface-color: #f8f9fa ;
}
/* 强制深色模式 */
.aiff-theme-dark {
--aiff-bg-color: #1a1a1a ;
--aiff-text-color: #ffffff ;
--aiff-border-color: #333333 ;
--aiff-surface-color: #2d2d2d ;
}
/* 基础样式 */
.aiff-webview-modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
z-index: 10000;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 300ms ease-in-out;
}
.aiff-webview-container {
width: 90%;
height: 80%;
max-width: 1200px;
background: var(--aiff-bg-color);
border: 1px solid var(--aiff-border-color);
border-radius: var(--aiff-border-radius);
overflow: hidden;
display: flex;
flex-direction: column;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
transform: scale(0.9);
transition: transform 300ms ease-in-out;
}
.aiff-webview-toolbar {
height: 44px;
background: var(--aiff-surface-color);
border-bottom: 1px solid var(--aiff-border-color);
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 16px;
flex-shrink: 0;
}
.aiff-webview-toolbar button {
background: none;
border: none;
color: var(--aiff-text-color);
cursor: pointer;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
transition: var(--aiff-transition);
}
.aiff-webview-toolbar button:hover {
background: rgba(0, 0, 0, 0.1);
}
.aiff-theme-dark .aiff-webview-toolbar button:hover {
background: rgba(255, 255, 255, 0.1);
}
.aiff-webview-toolbar .close-btn {
font-size: 24px;
font-weight: bold;
}
.aiff-webview-toolbar .reload-btn {
font-size: 16px;
}
.aiff-webview-title {
font-size: 16px;
font-weight: 600;
color: var(--aiff-text-color);
flex: 1;
text-align: center;
margin: 0 16px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.aiff-webview-iframe {
flex: 1;
width: 100%;
border: none;
background: var(--aiff-bg-color);
}
/* 响应式设计 */
@media (max-width: 768px) {
.aiff-webview-container {
width: 95%;
height: 85%;
border-radius: 12px;
}
.aiff-webview-toolbar {
height: 48px;
padding: 0 12px;
}
.aiff-webview-title {
font-size: 14px;
}
}
@media (max-width: 480px) {
.aiff-webview-container {
width: 100%;
height: 100%;
max-width: none;
border-radius: 0;
margin: 0;
}
.aiff-webview-modal {
align-items: flex-end;
}
.aiff-webview-container {
transform: translateY(100%);
border-radius: 16px 16px 0 0;
}
.aiff-webview-modal.show .aiff-webview-container {
transform: translateY(0);
}
}
/* 动画效果 */
@keyframes aiff-fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes aiff-scale-in {
from {
transform: scale(0.9);
}
to {
transform: scale(1);
}
}
.aiff-webview-modal.show {
opacity: 1;
}
.aiff-webview-modal.show .aiff-webview-container {
transform: scale(1);
}
/* 加载状态 */
.aiff-loading {
display: flex;
align-items: center;
justify-content: center;
height: 100%;
color: var(--aiff-text-color);
}
.aiff-spinner {
border: 3px solid var(--aiff-border-color);
border-top: 3px solid var(--aiff-primary-color);
border-radius: 50%;
width: 40px;
height: 40px;
animation: aiff-spin 1s linear infinite;
}
@keyframes aiff-spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
/* 错误状态 */
.aiff-error {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
color: var(--aiff-danger-color);
text-align: center;
padding: 20px;
}
.aiff-error-icon {
font-size: 48px;
margin-bottom: 16px;
}
.aiff-error-message {
font-size: 16px;
margin-bottom: 8px;
}
.aiff-error-submessage {
font-size: 14px;
color: var(--aiff-secondary-color);
}
/* 工具提示 */
.aiff-tooltip {
position: relative;
display: inline-block;
}
.aiff-tooltip .aiff-tooltiptext {
visibility: hidden;
width: 120px;
background-color: var(--aiff-dark-color);
color: #fff;
text-align: center;
border-radius: 4px;
padding: 5px;
position: absolute;
z-index: 1;
bottom: 125%;
left: 50%;
margin-left: -60px;
opacity: 0;
transition: opacity 0.3s;
font-size: 12px;
}
.aiff-tooltip:hover .aiff-tooltiptext {
visibility: visible;
opacity: 1;
}
/* 无障碍支持 */
@media (prefers-reduced-motion: reduce) {
.aiff-webview-modal,
.aiff-webview-container,
.aiff-webview-toolbar button {
transition: none;
}
.aiff-spinner {
animation: none;
}
}
/* 高对比度模式 */
@media (prefers-contrast: high) {
.aiff-webview-container {
border: 2px solid var(--aiff-text-color);
}
.aiff-webview-toolbar button:hover {
border: 1px solid var(--aiff-text-color);
}
}
/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3dlYi9zdHlsZXMvYWlmZi13ZWJ2aWV3LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsImZpbGUiOiJhaWZmLXdlYnZpZXcuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiOnJvb3Qge1xuICAtLWFpZmYtcHJpbWFyeS1jb2xvcjogIzAwN2JmZjtcbiAgLS1haWZmLXNlY29uZGFyeS1jb2xvcjogIzZjNzU3ZDtcbiAgLS1haWZmLXN1Y2Nlc3MtY29sb3I6ICMyOGE3NDU7XG4gIC0tYWlmZi1kYW5nZXItY29sb3I6ICNkYzM1NDU7XG4gIC0tYWlmZi13YXJuaW5nLWNvbG9yOiAjZmZjMTA3O1xuICAtLWFpZmYtaW5mby1jb2xvcjogIzE3YTJiODtcbiAgLS1haWZmLWxpZ2h0LWNvbG9yOiAjZjhmOWZhO1xuICAtLWFpZmYtZGFyay1jb2xvcjogIzM0M2E0MDtcbiAgXG4gIC0tYWlmZi1ib3JkZXItcmFkaXVzOiA4cHg7XG4gIC0tYWlmZi1ib3gtc2hhZG93OiAwIDRweCA2cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAtLWFpZmYtdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZTtcbn1cblxuLyog5rex6Imy5qih5byP5Y+Y6YePICovXG5AbWVkaWEgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gIDpyb290IHtcbiAgICAtLWFpZmYtYmctY29sb3I6ICMxYTFhMWE7XG4gICAgLS1haWZmLXRleHQtY29sb3I6ICNmZmZmZmY7XG4gICAgLS1haWZmLWJvcmRlci1jb2xvcjogIzMzMzMzMztcbiAgICAtLWFpZmYtc3VyZmFjZS1jb2xvcjogIzJkMmQyZDtcbiAgfVxufVxuXG4vKiDmtYXoibLmqKHlvI/lj5jph48gKi9cbkBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6IGxpZ2h0KSB7XG4gIDpyb290IHtcbiAgICAtLWFpZmYtYmctY29sb3I6ICNmZmZmZmY7XG4gICAgLS1haWZmLXRleHQtY29sb3I6ICMzMzMzMzM7XG4gICAgLS1haWZmLWJvcmRlci1jb2xvcjogI2UwZTBlMDtcbiAgICAtLWFpZmYtc3VyZmFjZS1jb2xvcjogI2Y4ZjlmYTtcbiAgfVxufVxuXG4vKiDlvLrliLbmtYXoibLmqKHlvI8gKi9cbi5haWZmLXRoZW1lLWxpZ2h0IHtcbiAgLS1haWZmLWJnLWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIC0tYWlmZi10ZXh0LWNvbG9yOiAjMzMzMzMzICFpbXBvcnRhbnQ7XG4gIC0tYWlmZi1ib3JkZXItY29sb3I6ICNlMGUwZTAgIWltcG9ydGFudDtcbiAgLS1haWZmLXN1cmZhY2UtY29sb3I6ICNmOGY5ZmEgIWltcG9ydGFudDtcbn1cblxuLyog5by65Yi25rex6Imy5qih5byPICovXG4uYWlmZi10aGVtZS1kYXJrIHtcbiAgLS1haWZmLWJnLWNvbG9yOiAjMWExYTFhICFpbXBvcnRhbnQ7XG4gIC0tYWlmZi10ZXh0LWNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gIC0tYWlmZi1ib3JkZXItY29sb3I6ICMzMzMzMzMgIWltcG9ydGFudDtcbiAgLS1haWZmLXN1cmZhY2UtY29sb3I6ICMyZDJkMmQgIWltcG9ydGFudDtcbn1cblxuLyog5Z+656GA5qC35byPICovXG4uYWlmZi13ZWJ2aWV3LW1vZGFsIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgei1pbmRleDogMTAwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBvcGFjaXR5OiAwO1xuICB0cmFuc2l0aW9uOiBvcGFjaXR5IDMwMG1zIGVhc2UtaW4tb3V0O1xufVxuXG4uYWlmZi13ZWJ2aWV3LWNvbnRhaW5lciB7XG4gIHdpZHRoOiA5MCU7XG4gIGhlaWdodDogODAlO1xuICBtYXgtd2lkdGg6IDEyMDBweDtcbiAgYmFja2dyb3VuZDogdmFyKC0tYWlmZi1iZy1jb2xvcik7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWFpZmYtYm9yZGVyLWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogdmFyKC0tYWlmZi1ib3JkZXItcmFkaXVzKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAzMDBtcyBlYXNlLWluLW91dDtcbn1cblxuLmFpZmYtd2Vidmlldy10b29sYmFyIHtcbiAgaGVpZ2h0OiA0NHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1haWZmLXN1cmZhY2UtY29sb3IpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgdmFyKC0tYWlmZi1ib3JkZXItY29sb3IpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHBhZGRpbmc6IDAgMTZweDtcbiAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5haWZmLXdlYnZpZXctdG9vbGJhciBidXR0b24ge1xuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIGNvbG9yOiB2YXIoLS1haWZmLXRleHQtY29sb3IpO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRyYW5zaXRpb246IHZhcigtLWFpZmYtdHJhbnNpdGlvbik7XG59XG5cbi5haWZmLXdlYnZpZXctdG9vbGJhciBidXR0b246aG92ZXIge1xuICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuMSk7XG59XG5cbi5haWZmLXRoZW1lLWRhcmsgLmFpZmYtd2Vidmlldy10b29sYmFyIGJ1dHRvbjpob3ZlciB7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xKTtcbn1cblxuLmFpZmYtd2Vidmlldy10b29sYmFyIC5jbG9zZS1idG4ge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uYWlmZi13ZWJ2aWV3LXRvb2xiYXIgLnJlbG9hZC1idG4ge1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5haWZmLXdlYnZpZXctdGl0bGUge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGNvbG9yOiB2YXIoLS1haWZmLXRleHQtY29sb3IpO1xuICBmbGV4OiAxO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMCAxNnB4O1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLmFpZmYtd2Vidmlldy1pZnJhbWUge1xuICBmbGV4OiAxO1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1haWZmLWJnLWNvbG9yKTtcbn1cblxuLyog5ZON5bqU5byP6K6+6K6hICovXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLmFpZmYtd2Vidmlldy1jb250YWluZXIge1xuICAgIHdpZHRoOiA5NSU7XG4gICAgaGVpZ2h0OiA4NSU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgfVxuICBcbiAgLmFpZmYtd2Vidmlldy10b29sYmFyIHtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgcGFkZGluZzogMCAxMnB4O1xuICB9XG4gIFxuICAuYWlmZi13ZWJ2aWV3LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gIH1cbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5haWZmLXdlYnZpZXctY29udGFpbmVyIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWF4LXdpZHRoOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgbWFyZ2luOiAwO1xuICB9XG4gIFxuICAuYWlmZi13ZWJ2aWV3LW1vZGFsIHtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gIH1cbiAgXG4gIC5haWZmLXdlYnZpZXctY29udGFpbmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMTAwJSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweCAxNnB4IDAgMDtcbiAgfVxuICBcbiAgLmFpZmYtd2Vidmlldy1tb2RhbC5zaG93IC5haWZmLXdlYnZpZXctY29udGFpbmVyIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gIH1cbn1cblxuLyog5Yqo55S75pWI5p6cICovXG5Aa2V5ZnJhbWVzIGFpZmYtZmFkZS1pbiB7XG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cbiAgdG8ge1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbn1cblxuQGtleWZyYW1lcyBhaWZmLXNjYWxlLWluIHtcbiAgZnJvbSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjkpO1xuICB9XG4gIHRvIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG59XG5cbi5haWZmLXdlYnZpZXctbW9kYWwuc2hvdyB7XG4gIG9wYWNpdHk6IDE7XG59XG5cbi5haWZmLXdlYnZpZXctbW9kYWwuc2hvdyAuYWlmZi13ZWJ2aWV3LWNvbnRhaW5lciB7XG4gIHRyYW5zZm9ybTogc2NhbGUoMSk7XG59XG5cbi8qIOWKoOi9veeKtuaAgSAqL1xuLmFpZmYtbG9hZGluZyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGNvbG9yOiB2YXIoLS1haWZmLXRleHQtY29sb3IpO1xufVxuXG4uYWlmZi1zcGlubmVyIHtcbiAgYm9yZGVyOiAzcHggc29saWQgdmFyKC0tYWlmZi1ib3JkZXItY29sb3IpO1xuICBib3JkZXItdG9wOiAzcHggc29saWQgdmFyKC0tYWlmZi1wcmltYXJ5LWNvbG9yKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICB3aWR0aDogNDBweDtcbiAgaGVpZ2h0OiA0MHB4O1xuICBhbmltYXRpb246IGFpZmYtc3BpbiAxcyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgYWlmZi1zcGluIHtcbiAgMCUgeyB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfVxuICAxMDAlIHsgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTsgfVxufVxuXG4vKiDplJnor6/nirbmgIEgKi9cbi5haWZmLWVycm9yIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGhlaWdodDogMTAwJTtcbiAgY29sb3I6IHZhcigtLWFpZmYtZGFuZ2VyLWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4O1xufVxuXG4uYWlmZi1lcnJvci1pY29uIHtcbiAgZm9udC1zaXplOiA0OHB4O1xuICBtYXJnaW4tYm90dG9tOiAxNnB4O1xufVxuXG4uYWlmZi1lcnJvci1tZXNzYWdlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi5haWZmLWVycm9yLXN1Ym1lc3NhZ2Uge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiB2YXIoLS1haWZmLXNlY29uZGFyeS1jb2xvcik7XG59XG5cbi8qIOW3peWFt+aPkOekuiAqL1xuLmFpZmYtdG9vbHRpcCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uYWlmZi10b29sdGlwIC5haWZmLXRvb2x0aXB0ZXh0IHtcbiAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICB3aWR0aDogMTIwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWFpZmYtZGFyay1jb2xvcik7XG4gIGNvbG9yOiAjZmZmO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgcGFkZGluZzogNXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHotaW5kZXg6IDE7XG4gIGJvdHRvbTogMTI1JTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTYwcHg7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4zcztcbiAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4uYWlmZi10b29sdGlwOmhvdmVyIC5haWZmLXRvb2x0aXB0ZXh0IHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgb3BhY2l0eTogMTtcbn1cblxuLyog5peg6Zqc56KN5pSv5oyBICovXG5AbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAuYWlmZi13ZWJ2aWV3LW1vZGFsLFxuICAuYWlmZi13ZWJ2aWV3LWNvbnRhaW5lcixcbiAgLmFpZmYtd2Vidmlldy10b29sYmFyIGJ1dHRvbiB7XG4gICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgfVxuICBcbiAgLmFpZmYtc3Bpbm5lciB7XG4gICAgYW5pbWF0aW9uOiBub25lO1xuICB9XG59XG5cbi8qIOmrmOWvueavlOW6puaooeW8jyAqL1xuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gIC5haWZmLXdlYnZpZXctY29udGFpbmVyIHtcbiAgICBib3JkZXI6IDJweCBzb2xpZCB2YXIoLS1haWZmLXRleHQtY29sb3IpO1xuICB9XG4gIFxuICAuYWlmZi13ZWJ2aWV3LXRvb2xiYXIgYnV0dG9uOmhvdmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1haWZmLXRleHQtY29sb3IpO1xuICB9XG59Il19 */