From 7bf3fa71d660fc2279f9de204e7509cbfa8c5da4 Mon Sep 17 00:00:00 2001 From: or-else Date: Sat, 4 Jul 2026 15:19:03 +0300 Subject: [PATCH] partially dependencies updated --- .babelrc | 11 +- css/base.min.css | 2 +- package-lock.json | 5108 +-- package.json | 27 +- src/i18n.min/pt.json | 1 + src/index.js | 7 +- src/lib/formatters.js | 33 +- src/version.js | 2 +- umd/0.prod.js | 2 +- umd/0.prod.js.map | 2 +- umd/271.prod.js | 2 +- umd/271.prod.js.map | 2 +- umd/316.prod.js | 2 +- umd/316.prod.js.map | 2 +- umd/330.prod.js | 2 +- umd/330.prod.js.map | 2 +- umd/352.prod.js | 2 +- umd/352.prod.js.map | 2 +- umd/371.prod.js | 2 +- umd/371.prod.js.map | 2 +- umd/429.prod.js | 2 +- umd/429.prod.js.map | 2 +- umd/472.prod.js | 2 +- umd/472.prod.js.map | 2 +- umd/537.prod.js | 3 +- umd/537.prod.js.map | 2 +- umd/747.prod.js | 2 +- umd/747.prod.js.map | 2 +- umd/827.prod.js | 2 +- umd/827.prod.js.map | 2 +- umd/836.prod.js | 2 +- umd/836.prod.js.map | 2 +- umd/889.prod.js | 2 +- umd/889.prod.js.map | 2 +- umd/892.prod.js | 2 +- umd/892.prod.js.map | 2 +- umd/942.prod.js | 2 +- umd/942.prod.js.map | 2 +- umd/993.prod.js | 2 +- umd/993.prod.js.map | 2 +- umd/996.prod.js | 2 +- umd/996.prod.js.map | 2 +- umd/index.dev.js | 26584 ++++++++-------- umd/index.dev.js.map | 2 +- umd/index.prod.js | 3 +- umd/index.prod.js.map | 2 +- umd/src_views_acc-security-view_jsx.dev.js | 546 +- ...src_views_acc-security-view_jsx.dev.js.map | 2 +- ...src_views_account-settings-view_jsx.dev.js | 817 +- ...views_account-settings-view_jsx.dev.js.map | 2 +- umd/src_views_create-account-view_jsx.dev.js | 367 +- ...c_views_create-account-view_jsx.dev.js.map | 2 +- umd/src_views_info-view_jsx.dev.js | 1586 +- umd/src_views_info-view_jsx.dev.js.map | 2 +- umd/src_views_messages-view_jsx.dev.js | 1700 +- umd/src_views_messages-view_jsx.dev.js.map | 2 +- umd/src_views_password-reset-view_jsx.dev.js | 414 +- ...c_views_password-reset-view_jsx.dev.js.map | 2 +- umd/src_views_wallpapers_jsx.dev.js | 220 +- umd/src_views_wallpapers_jsx.dev.js.map | 2 +- umd/src_widgets_audio-recorder_jsx.dev.js | 124 +- umd/src_widgets_audio-recorder_jsx.dev.js.map | 2 +- umd/src_widgets_call-panel_jsx.dev.js | 168 +- umd/src_widgets_call-panel_jsx.dev.js.map | 2 +- umd/src_widgets_doc-preview_jsx.dev.js | 105 +- umd/src_widgets_doc-preview_jsx.dev.js.map | 2 +- umd/src_widgets_image-preview_jsx.dev.js | 153 +- umd/src_widgets_image-preview_jsx.dev.js.map | 2 +- ..._widgets_phone-country-selector_jsx.dev.js | 57 +- ...gets_phone-country-selector_jsx.dev.js.map | 2 +- umd/src_widgets_phone-edit_jsx.dev.js | 143 + umd/src_widgets_phone-edit_jsx.dev.js.map | 1 + umd/src_widgets_the-card-preview_jsx.dev.js | 214 +- ...rc_widgets_the-card-preview_jsx.dev.js.map | 2 +- umd/src_widgets_video-preview_jsx.dev.js | 147 +- umd/src_widgets_video-preview_jsx.dev.js.map | 2 +- umd/tinode.dev.js | 60 +- umd/tinode.dev.js.map | 2 +- umd/tinode.prod.js | 2 +- umd/tinode.prod.js.map | 2 +- ...de_modules_libphonenumber-js-883e54.dev.js | 438 +- ...odules_libphonenumber-js-883e54.dev.js.map | 2 +- ...xports_parsePhoneNumberWithError_js.dev.js | 1124 +- ...ts_parsePhoneNumberWithError_js.dev.js.map | 2 +- ...ules_webm-duration-fix_lib_index_js.dev.js | 632 +- ..._webm-duration-fix_lib_index_js.dev.js.map | 2 +- version.js | 2 +- webpack.config.js | 32 +- 88 files changed, 21664 insertions(+), 19277 deletions(-) create mode 100644 src/i18n.min/pt.json create mode 100644 umd/src_widgets_phone-edit_jsx.dev.js create mode 100644 umd/src_widgets_phone-edit_jsx.dev.js.map diff --git a/.babelrc b/.babelrc index dadaf7ac..5d4b0be2 100644 --- a/.babelrc +++ b/.babelrc @@ -1,13 +1,4 @@ { "presets": ["@babel/preset-react", "@babel/preset-env"], - "comments": false, - "plugins": [ - [ - "formatjs", - { - "idInterpolationPattern": "[sha512:contenthash:base64:6]", - "ast": true - } - ] - ] + "comments": false } diff --git a/css/base.min.css b/css/base.min.css index 702b3934..97711afc 100644 --- a/css/base.min.css +++ b/css/base.min.css @@ -1 +1 @@ -:root{color-scheme:light dark;--message-text-size:10pt;--caption-panel-height:4rem;--wallpaper-url:url(../img/bkg/a00.png);--wallpaper-repeat:repeat;--wallpaper-blur:0px;--wallpaper-invert:0;--wallpaper-brightness:1;--wallpaper-size:contain;--wallpaper-position:center;--clr-bright:light-dark(#fff,#181818);--clr-dark:light-dark(#000,#fff);--clr-transparent:transparent;--clr-std-gray:grey;--clr-std-ltgray:light-dark(silver,#3f3f3f);--clr-std-teal:teal;--clr-std-grey:grey;--clr-std-orange:orange;--clr-primary-accent:light-dark(#2094f3,#0e6dba);--clr-primary-accent-hover:light-dark(#0a6ebd,#116ab4);--clr-primary-accent-focus-shadow:light-dark(rgba(33,150,243,.25),rgba(3,7,12,.25));--clr-primary-accent-transparent-medium:light-dark(rgba(33,150,243,.3),rgba(20,70,120,.3));--clr-primary-action:light-dark(#1e89e6,#1571c1);--clr-primary-action-hover:light-dark(#2962ff,#0037b8);--clr-secondary-accent:light-dark(#0097a8,#006570);--clr-primary-light-blue:light-dark(#bcdefb,#78a0be);--clr-light-blue-accent:light-dark(#0398e2,#0379b5);--clr-body-background:var(--clr-std-ltgray);--clr-text-primary:light-dark(#666,#999);--clr-text-secondary:light-dark(#757575,#8a8a8a);--clr-text-tertiary:light-dark(#999,#787878);--clr-text-tertiary-activated:#888;--clr-text-placeholder:light-dark(#bbb,#555);--clr-text-disabled:light-dark(#888,#777);--clr-border-light:light-dark(#ccc,#555);--clr-border-muted:light-dark(#ddd,#444);--clr-background-off-white:light-dark(#fafafa,#222);--clr-background-light-gray:light-dark(#f0f0f0,#0f0f0f);--clr-background-extra-light-gray:light-dark(#eee,#222);--clr-background-blue-gray-50:light-dark(#edf0f2,#202c33);--clr-background-blue-gray-75:light-dark(#e1e8eb,#182124);--clr-background-blue-gray-100:light-dark(#cfd8dc,#20272a);--clr-background-blue-gray-300:light-dark(#b0bec5,#354146);--clr-blue-wash-light:light-dark(#f0f0ff,#22222d);--clr-blue-wash-medium:light-dark(#d8e8ff,#123550);--clr-primary-wash:light-dark(#e3f2fd,#072f45);--clr-indigo-50:light-dark(#e8eaf6,#1a2c44);--clr-danger-text:light-dark(#d33131,#931f1f);--clr-danger-text-hover:light-dark(#f44034,#c10);--clr-error-text-muted:light-dark(#c66,#933);--clr-error-bg-light:light-dark(#ffccd1,#ff6675);--clr-error-border-light:light-dark(#ffbdc6,#ff334e);--clr-error-text-dark:light-dark(#b51c1c,#de2323);--clr-error-icon:light-dark(#ef5552,#d81b0e);--clr-warning-accent:light-dark(#ffc107,#808020);--clr-warning-bg-light:light-dark(#fff9c4,#00060c);--clr-warning-border-light:light-dark(#fff59d,#000a2b);--clr-warning-text-dark:light-dark(#6d4c41,#a08356);--clr-warning-icon:light-dark(#fbc02d,#b48204);--clr-info-bg-light:light-dark(#e1f5fe,#010a0e);--clr-info-border-light:light-dark(#b3e5fc,#001824);--clr-info-text-dark:light-dark(#0288d1,#00151f);--clr-header-stripe-bg:light-dark(#3949ab,#12152f);--clr-scrollbar-thumb:light-dark(rgba(0,0,0,.3),hsla(0,0%,100%,.3));--clr-scrollbar-track:light-dark(hsla(0,0%,100%,.1),rgba(0,0,0,.1));--clr-menu-item-hover-bg:light-dark(#f5f5f5,#0a0a0a);--clr-alert-overlay-bg:light-dark(hsla(0,0%,94%,.85),hsla(0,0%,6%,.85));--clr-verified-accent:light-dark(#02a6f2,#027db6);--clr-staff-accent:light-dark(#689f38,#598830);--clr-badge-inv:light-dark(#fffd,#cccd);--clr-cyan-50:light-dark(#e0f7fa,#2f3e43);--clr-overlay-white-strong:light-dark(hsla(0,0%,100%,.9),rgba(0,0,0,.9));--clr-gray-medium-bg:light-dark(#777,#444);--clr-toast-bg:#333;--clr-toast-text:light-dark(#eee,#aaa);--clr-online:#4caf50;--clr-offline:light-dark(#ccc,#999);--clr-shadow-input-underline:rgba(0,0,0,.1);--clr-shadow-hr-inset:rgba(0,0,0,.15);--clr-shadow-scrollbar-track-webkit:rgba(0,0,0,.2);--clr-shadow-button:rgba(0,0,0,.25);--clr-shadow-button-inset-active:rgba(0,0,0,.125);--clr-shadow-dialog:rgba(0,0,0,.45);--clr-shadow-panel-divider:rgba(0,0,0,.1);--clr-shadow-gray-strong:light-dark(var(--clr-std-gray),#333);--clr-shadow-silver-subtle:light-dark(var(--clr-std-ltgray),#333);--clr-shadow-bubble-drop:rgba(0,0,0,.3);--clr-button-primary-bg:var(--clr-primary-action);--clr-button-primary-text:var(--clr-bright);--clr-button-primary-hover-bg:var(--clr-primary-action-hover);--clr-button-secondary-bg:var(--clr-bright);--clr-button-secondary-text:var(--clr-primary-accent);--clr-button-secondary-hover-bg:var(--clr-primary-wash);--clr-button-outline-text:var(--clr-primary-accent);--clr-button-outline-border:var(--clr-std-ltgray);--clr-button-outline-hover-bg:var(--clr-indigo-50);--clr-button-danger-bg:light-dark(#ec645f,#d74742);--clr-button-danger-text:var(--clr-bright);--clr-button-danger-hover-bg:light-dark(#f77,#a55);--clr-button-positive-bg:light-dark(#71c46f,#3f983e);--clr-button-positive-text:var(--clr-bright);--clr-button-positive-hover-bg:light-dark(#7fed7f,#6ec26e);--clr-input-text:var(--clr-text-primary);--clr-input-border:var(--clr-border-light);--clr-input-border-focus:var(--clr-primary-accent);--clr-input-shadow:var(--clr-shadow-input-underline);--clr-input-shadow-focus:var(--clr-primary-accent-focus-shadow);--clr-input-invalid-border:light-dark(#e57171,#561010);--clr-input-invalid-shadow:light-dark(#e5737340,#1a0c0c40);--clr-input-placeholder-text:var(--clr-text-placeholder);--clr-bubble-left-bg:light-dark(#c4e0a3,#3e5c1f);--clr-bubble-left-bg-flash:light-dark(#94a97c,#2c4517);--clr-bubble-right-bg:var(--clr-background-off-white);--clr-bubble-right-bg-flash:var(--clr-border-light);--clr-bubble-text:light-dark(#212121,#bbc);--clr-bubble-meta-text:var(--clr-text-primary);--clr-bubble-meta-deleted-bg:var(--clr-primary-wash);--clr-bubble-meta-date-bg:light-dark(hsla(0,0%,100%,.8),rgba(40,40,40,.8));--clr-bubble-timestamp-text:light-dark(#777,#888);--clr-bubble-author-text:light-dark(#777,#666);--clr-reply-quote-border:var(--clr-light-blue-accent);--clr-reply-quote-text:var(--clr-text-primary);--clr-reply-quote-left-bg:light-dark(hsla(0,0%,100%,.4),rgba(0,0,0,.4));--clr-reply-quote-right-bg:light-dark(#8080801f,#c4c4c42e);--clr-reply-quote-preview-bg:var(--clr-background-off-white);--clr-badge-default-bg:light-dark(#e8e8e8,#171717);--clr-badge-default-text:var(--clr-text-primary);--clr-badge-default-border:var(--clr-std-ltgray);--clr-badge-green-bg:light-dark(#efe,#131);--clr-badge-green-text:light-dark(#383,#363);--clr-badge-green-border:light-dark(#aca,#242);--clr-badge-yellow-bg:light-dark(#ffe,#331);--clr-badge-yellow-text:light-dark(#660,#660);--clr-badge-yellow-border:light-dark(#cc9,#552);--clr-badge-blue-bg:light-dark(#f0f0ff,#224);--clr-badge-blue-text:light-dark(#339,#447);--clr-badge-blue-border:light-dark(#aad,#336);--clr-badge-red-bg:light-dark(#fee,#522);--clr-badge-red-text:light-dark(#933,#744);--clr-badge-red-border:light-dark(#c99,#633);--clr-badge-magenta-bg:light-dark(#fef,#535);--clr-badge-magenta-text:light-dark(#939,#747);--clr-badge-magenta-border:light-dark(#c9c,#636);--clr-chip-bg:var(--clr-background-extra-light-gray);--clr-chip-invalid-text:var(--clr-error-text-muted);--clr-chip-invalid-bg:var(--clr-badge-red-bg);--clr-chip-remove-icon-bg:light-dark(#aaa,#555);--clr-chip-remove-icon-text:var(--clr-background-extra-light-gray);--clr-chip-remove-icon-hover-bg:var(--clr-text-placeholder);--clr-chip-remove-icon-hover-text:var(--clr-bright);--clr-tabbar-bg:var(--clr-background-extra-light-gray);--clr-tabbar-inactive-text:light-dark(rgba(33,150,243,.6),#165aa0);--clr-tabbar-active-text:var(--clr-primary-accent);--clr-tabbar-inactive-border:var(--clr-border-light);--clr-tabbar-active-border:var(--clr-primary-accent);--clr-highlight-text:var(--clr-std-teal);--clr-highlight-preview-text:light-dark(#5f9ea0,#205e60);--clr-spinner-track:light-dark(#f3f3f3,#0c0c0c);--clr-spinner-active:var(--clr-primary-action);--clr-cropper-bounding-box-border:var(--clr-primary-action);--clr-cropper-bounding-box-bg:var(--clr-text-tertiary);--clr-cropper-cutout-border:var(--clr-text-tertiary);--clr-cropper-cutout-shadow:light-dark(rgba(230,246,255,.66),rgba(25,10,0,.66));--clr-audio-bg:var(--clr-background-extra-light-gray);--clr-audio-icon:light-dark(hsla(180,7%,43%,.8),hsla(0,7%,57%,.8));--clr-audio-icon-disabled:light-dark(hsla(0,0%,60%,.75),hsla(0,0%,40%,.75));--clr-audio-timer-text:light-dark(hsla(0,0%,40%,.75),hsla(0,0%,60%,.75));--clr-pinned-menu-bg:light-dark(#f8f8f8,#1a1a1a);--clr-drag-n-drop-border:var(--clr-std-grey);--clr-drag-n-drop-text:var(--clr-std-grey);--clr-drag-n-drop-bg:light-dark(hsla(0,0%,100%,.95),rgba(0,0,0,.95));--clr-drag-n-drop-outline:light-dark(hsla(0,0%,100%,.95),rgba(0,0,0,.95));--clr-lettertile-default-text:light-dark(#fafafacc,#dcdcdccc);--clr-lettertile-hover-text:var(--clr-bright);--clr-lt-bg-0:#ef9a9a;--clr-lt-bg-1:#90caf9;--clr-lt-bg-2:#b0bec4;--clr-lt-bg-3:#b49edb;--clr-lt-bg-4:#ffa98f;--clr-lt-bg-5:#a4d5a6;--clr-lt-bg-6:#ededed;--clr-lt-bg-7:#e6ee9b;--clr-lt-bg-8:#c4e0a3;--clr-lt-bg-9:#f0e57f;--clr-lt-bg-10:#f490b1;--clr-lt-bg-11:#a0a8da;--clr-lt-bg-12:#ffdf80;--clr-lt-bg-13:#bcaaa4;--clr-lt-bg-14:#80deea;--clr-lt-bg-15:#cd92d8;--clr-dk-bg-0:#c72929;--clr-dk-bg-1:#ad1457;--clr-dk-bg-2:#681b98;--clr-dk-bg-3:#4527a0;--clr-dk-bg-4:#293594;--clr-dk-bg-5:#1565c1;--clr-dk-bg-6:#0277bb;--clr-dk-bg-7:#00838f;--clr-dk-bg-8:#006b5f;--clr-dk-bg-9:#2f7f33;--clr-dk-bg-10:#54892f;--clr-dk-bg-11:#9e9e24;--clr-dk-bg-12:#f9a824;--clr-dk-bg-13:#ff9100;--clr-dk-bg-14:#f06c00;--clr-dk-bg-15:#d54215;--clr-lt-fg-0:var(--clr-lt-bg-0);--clr-lt-fg-1:var(--clr-lt-bg-1);--clr-lt-fg-2:var(--clr-lt-bg-2);--clr-lt-fg-3:var(--clr-lt-bg-3);--clr-lt-fg-4:var(--clr-lt-bg-4);--clr-lt-fg-5:var(--clr-lt-bg-5);--clr-lt-fg-6:var(--clr-lt-bg-6);--clr-lt-fg-7:var(--clr-lt-bg-7);--clr-lt-fg-8:var(--clr-lt-bg-8);--clr-lt-fg-9:var(--clr-lt-bg-9);--clr-lt-fg-10:var(--clr-lt-bg-10);--clr-lt-fg-11:var(--clr-lt-bg-11);--clr-lt-fg-12:var(--clr-lt-bg-12);--clr-lt-fg-13:var(--clr-lt-bg-13);--clr-lt-fg-14:var(--clr-lt-bg-14);--clr-lt-fg-15:var(--clr-lt-bg-15);--clr-dk-fg-0:var(--clr-dk-bg-0);--clr-dk-fg-1:var(--clr-dk-bg-1);--clr-dk-fg-2:var(--clr-dk-bg-2);--clr-dk-fg-3:var(--clr-dk-bg-3);--clr-dk-fg-4:var(--clr-dk-bg-4);--clr-dk-fg-5:var(--clr-dk-bg-5);--clr-dk-fg-6:var(--clr-dk-bg-6);--clr-dk-fg-7:var(--clr-dk-bg-7);--clr-dk-fg-8:var(--clr-dk-bg-8);--clr-dk-fg-9:var(--clr-dk-bg-9);--clr-dk-fg-10:var(--clr-dk-bg-10);--clr-dk-fg-11:var(--clr-dk-bg-11);--clr-dk-fg-12:var(--clr-dk-bg-12);--clr-dk-fg-13:var(--clr-dk-bg-13);--clr-dk-fg-14:var(--clr-dk-bg-14);--clr-dk-fg-15:var(--clr-dk-bg-15)}*{box-sizing:border-box;font-family:Roboto,Arial,sans-serif;margin:0;padding:0;scrollbar-color:var(--clr-scrollbar-thumb) var(--clr-scrollbar-track);scrollbar-width:thin;text-rendering:optimizeLegibility}body,html{background-color:var(--clr-body-background);box-shadow:inset 0 10rem var(--clr-header-stripe-bg);color:var(--clr-text-primary);font-size:10pt;height:100%;height:100dvh;overflow:hidden;width:100%;width:100dvw}tt{font-family:Roboto Mono,Courier,monospace}a{color:var(--clr-primary-accent);text-decoration:none}a:focus,a:hover{color:var(--clr-primary-accent-hover);text-decoration:underline}a.danger{color:var(--clr-danger-text)}a.danger:focus,a.danger:hover{color:var(--clr-danger-text-hover)}a.gray:focus,a.gray:hover{color:var(--clr-text-tertiary)}form{line-height:1.5;padding:.5rem .75rem}form,label{font-size:1.1rem}label{margin-right:auto}label.small{font-size:.95rem}label.large,label.small{color:var(--clr-primary-action)}label.large{font-size:1.1rem}label.invalid{color:var(--clr-danger-text)}img.avatar{border-radius:50%;height:100%;width:100%}img.avatar.self{padding:7%}button{border:1px solid var(--clr-transparent);border-radius:4px;box-shadow:0 1px 3px 0 var(--clr-shadow-button);cursor:pointer;display:inline-block;font-family:inherit;font-size:1.05rem;font-weight:400;height:2.2rem;line-height:2.2rem;margin:0 .35rem;min-width:5rem;padding-left:1.2rem;padding-right:1.2rem;text-align:center;text-transform:uppercase;touch-action:manipulation;vertical-align:middle;white-space:nowrap}button[disabled],html input[disabled]{box-shadow:none;cursor:default;filter:grayscale(50%);opacity:.65}button.round{border-radius:50%;box-shadow:0 2px .5rem 0 var(--clr-shadow-button);height:3rem;line-height:3.5rem;margin:0;outline:none;padding:0;width:3rem;z-index:2}button.round.small{box-shadow:0 2px .35rem 0 var(--clr-shadow-button);height:2rem;line-height:2rem;width:2rem}button:active:not([disabled]),button:hover:not([disabled]){color:var(--clr-bright)}button:active{box-shadow:inset 0 3px .5rem var(--clr-shadow-button-inset-active)}button:active.round.small{box-shadow:inset 0 2px .35rem var(--clr-shadow-button-inset-active)}button.primary{background-color:var(--clr-button-primary-bg);color:var(--clr-button-primary-text)}button.primary:active:not([disabled]),button.primary:hover:not([disabled]){background-color:var(--clr-button-primary-hover-bg)}button.secondary{background-color:var(--clr-button-secondary-bg);color:var(--clr-button-secondary-text)}button.secondary:active:not([disabled]),button.secondary:hover:not([disabled]){background-color:var(--clr-button-secondary-hover-bg)}button.outline{background-color:var(--clr-transparent);border:1px solid var(--clr-button-outline-border);box-shadow:none;color:var(--clr-button-outline-text)}button.outline:active:not([disabled]),button.outline:hover:not([disabled]){background-color:var(--clr-button-outline-hover-bg);color:var(--clr-button-outline-text)}button.danger{background-color:var(--clr-button-danger-bg);color:var(--clr-button-danger-text)}button.danger:active:not([disabled]),button.danger:hover:not([disabled]){background-color:var(--clr-button-danger-hover-bg)}button.positive{background-color:var(--clr-button-positive-bg);color:var(--clr-button-positive-text)}button.positive:active:not([disabled]),button.positive:hover:not([disabled]){background-color:var(--clr-button-positive-hover-bg)}input,textarea{background:var(--clr-transparent);border:none;color:var(--clr-input-text);font-family:inherit;font-size:1.1rem;margin:.25rem 0;outline:none;padding:0 .125rem}input[type=email],input[type=password],input[type=search],input[type=tel],input[type=text],textarea{border-bottom:1px solid var(--clr-input-border);box-shadow:0 1px 0 var(--clr-input-shadow);height:2.5rem;transition:all .1s ease-in-out,height 0s}input[type=email],input[type=password],input[type=tel],input[type=text],textarea{width:100%}input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,textarea:focus{border-bottom:1px solid var(--clr-input-border-focus);box-shadow:0 1px 0 var(--clr-input-shadow-focus)}input[type=email].invalid,input[type=password].invalid,input[type=search].invalid,input[type=tel].invalid,input[type=text].invalid,textarea.invalid{border-bottom:1px solid var(--clr-input-invalid-border);box-shadow:0 1px 0 var(--clr-input-invalid-shadow)}input[type=email]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,textarea::placeholder{color:var(--clr-input-placeholder-text);font-weight:lighter}input[type=password].with-icon-right,input[type=text].with-icon-right{margin-right:-2rem;padding-right:2rem}input[type=password].with-icon-left,input[type=text].with-icon-left{margin-left:-1.45rem;padding-left:1.75rem}textarea{padding-top:.45rem;resize:none}input[type=range]{width:90%}option{padding:0}datalist{display:flex;flex-direction:row;justify-content:space-between;width:100%}::-webkit-scrollbar{width:.6rem}::-webkit-scrollbar-track{background-color:var(--clr-scrollbar-track);-webkit-box-shadow:inset 0 0 6px var(--clr-shadow-scrollbar-track-webkit);box-shadow:inset 0 0 6px var(--clr-shadow-scrollbar-track-webkit)}::-webkit-scrollbar-thumb{background-color:var(--clr-scrollbar-thumb)}ul.menu{background-color:var(--clr-bright);border-radius:.2rem;box-shadow:0 1px 6px var(--clr-shadow-dialog);list-style:none;padding-bottom:.35rem;padding-top:.35rem;position:absolute;width:12rem;z-index:4}ul.menu>li{cursor:pointer;padding:.75rem .75rem .75rem 1.25rem}ul.menu>li:hover{background-color:var(--clr-menu-item-hover-bg)}ul.menu>li.separator{height:1px;margin:2px;padding:0}ul.menu>li.separator,ul.menu>li.separator:hover{background-color:var(--clr-border-light)}ul.menu>li.disabled{opacity:.6;pointer-events:none}.menuTrigger{background-color:inherit;border-radius:.7rem;height:1.4rem;line-height:1.4rem;opacity:0;position:absolute;right:.25rem;text-align:center;user-select:none;width:1.4rem}.menuTrigger a{color:var(--clr-text-secondary)}li .menuTrigger{top:.25rem}li:hover .menuTrigger{opacity:.9}li:hover .menuTrigger a{color:var(--clr-text-secondary)}div.alert-container{align-items:center;background:var(--clr-alert-overlay-bg);display:flex;height:100%;justify-content:center;overflow:hidden;padding:1rem;position:absolute;width:100%;z-index:3}div.alert{background-color:var(--clr-bright);border-radius:.3rem;box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);height:min-content;margin:auto 2rem;max-height:40rem;max-width:24rem;min-width:16rem;overflow:hidden;padding:1rem;position:relative;width:fit-content}div.alert-container .title{color:var(--clr-primary-accent);font-size:1.2rem;font-weight:500;padding:0 0 .35rem;position:relative;width:100%}div.alert-container .title.with-control{align-items:center;display:flex;flex:none;justify-content:space-between;padding:.5rem .5rem 0;position:relative}div.alert-container .content{padding:.5rem 0;position:relative}div.trusted-badge{margin:.25rem 0}.blue{color:var(--clr-primary-accent)!important}.lt-blue{color:var(--clr-lt-fg-1)!important}.orange{color:var(--clr-std-orange)!important}.verified-color{color:var(--clr-verified-accent)!important}.staff-color{color:var(--clr-staff-accent)!important}.danger-color{color:var(--clr-warning-accent)!important}.green{color:light-dark(#388e3c,#1a9a1d)}.white{color:var(--clr-bright)!important}.red{color:var(--clr-danger-text)!important}.badge-inv{color:var(--clr-badge-inv)!important}.gray{color:var(--clr-text-secondary)!important}.light-gray{color:var(--clr-text-placeholder)!important}.large{font-size:120%}.small{font-size:90%}.float-right{position:absolute;right:.5rem}.hr{background-color:var(--clr-background-light-gray);box-shadow:inset 0 .25rem .25rem -.25rem var(--clr-shadow-hr-inset),inset 0 -.25rem .25rem -.25rem var(--clr-shadow-hr-inset);display:block;height:.45rem;min-height:.3rem;width:100%}.hr.thin{height:.015rem}.divider{border-left:1.5px groove var(--clr-border-muted);display:inline-block;margin:0 .25rem;width:1px}.ellipsized{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.flat-button{align-items:center;background-color:var(--clr-bright);display:flex;font-weight:400;height:2em;line-height:2em;margin:.15rem .35rem;text-align:center;text-transform:uppercase;touch-action:manipulation;vertical-align:middle;white-space:nowrap;z-index:1}.flat-button:focus,.flat-button:hover{text-decoration:none}.flat-button.disabled,.flat-button.disabled:focus,.flat-button.disabled:hover{color:var(--clr-primary-accent);cursor:default;filter:grayscale(75%);opacity:.75}.flat-button.faux{background-color:var(--clr-background-extra-light-gray);border:1px solid var(--clr-text-tertiary);border-radius:3px;display:inline-block;height:1.4em;line-height:1.4em;margin:.15rem;padding:0 .35rem;text-transform:none}.action-button{background-color:var(--clr-background-off-white);border-radius:50%;box-shadow:0 2px .5rem 0 var(--clr-shadow-button);color:var(--clr-text-secondary);display:block;font-size:1.8rem;height:3.25rem;margin:0;min-height:unset;min-width:unset;outline:none;padding:0;position:absolute;transition:all .15s;width:3.25rem;z-index:2}.action-button:active:not([disabled]),.action-button:focus,.action-button:hover,.action-button:hover:not([disabled]){background-color:var(--clr-primary-action-hover);color:var(--clr-text-tertiary-activated)}.action-button:active{background-color:var(--clr-primary-action);color:var(--clr-text-tertiary-activated)}.action-button.hidden{bottom:2.625rem;font-size:1px;height:1px;line-height:1px;opacity:0;right:2.625rem;width:1px}.group-focus{outline:none}#mountPoint{height:100%;padding-bottom:1rem;padding-top:1rem}#noscript-message{background-color:var(--clr-bright);border-radius:.25rem;box-shadow:1px 2px .3rem var(--clr-shadow-gray-strong);display:flex;flex-direction:column;margin-left:auto;margin-right:auto;margin-top:5rem;max-width:30rem;overflow:hidden;position:relative}#noscript-title{background-color:var(--clr-primary-accent);color:var(--clr-primary-light-blue);font-size:120%;font-weight:bolder;padding:1rem}#noscript-content{padding:1rem}#app-container{background-color:var(--clr-bright);border-radius:.25rem;box-shadow:1px 2px .3rem var(--clr-shadow-gray-strong);display:flex;height:100%;margin-left:auto;margin-right:auto;max-width:84rem;overflow:hidden;position:relative}#sidepanel{flex-grow:0;flex-shrink:0.3;min-width:18rem;width:24rem}#sidepanel,#topic-view{display:flex;flex-direction:column;height:100%;position:relative}#topic-view{overflow-x:hidden;width:100%}#info-view{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0.3;height:100%;min-width:18rem;position:relative;width:24rem}.center-medium-text{align-items:center;display:flex;font-size:1.4rem;height:100%;justify-content:center;text-align:center;width:100%}.nodisplay{display:none!important}.quoted{margin-left:1rem}.space-right{margin-right:.25rem}.rounded-container{background-color:var(--clr-background-off-white);border-radius:.1rem;margin:.25rem;padding:.25rem;position:relative}div.in-place-edit,span.in-place-edit{border-bottom:1px dashed var(--clr-border-muted);cursor:pointer;display:inline-block;font-family:inherit;font-size:1rem;margin:.25rem .125rem 0;vertical-align:baseline;width:100%}.in-place-edit.short{align-items:center;display:inline-flex;font-size:1.1rem;height:2.5rem;line-height:2.25;white-space:nowrap}.in-place-edit.disabled{border-bottom:none;color:var(--clr-text-disabled);cursor:default}.in-place-edit.placeholder{color:var(--clr-text-placeholder)}.in-place-edit span{display:inline-block}.in-place-edit.short span{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%}.in-place-edit .material-icons{display:inline-block}.material-icons.invalid{color:var(--clr-error-text-muted)}textarea.in-place-edit{font-size:unset;height:unset}input.in-place-edit.invalid{color:var(--clr-error-text-muted)}table.permission-editor{width:100%}table.permission-editor td{font-size:1.1rem;margin:.35rem 0;vertical-align:middle}table.permission-editor td.checkbox{color:var(--clr-text-tertiary);text-align:center}.permission-editor .material-icons{font-size:1.3rem;line-height:1.3rem}.material-icons.clickable{border-bottom:none;cursor:pointer}.clickable{border-bottom:1px dashed var(--clr-border-muted)}.clean-clickable,.clickable,.image-clickable{cursor:pointer}.panel-title{font-size:1.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-title.deleted{text-decoration:line-through}.caption-panel{box-shadow:0 1px 2px var(--clr-shadow-gray-strong);flex:none;height:var(--caption-panel-height);overflow-x:hidden;white-space:nowrap;z-index:1}.caption-panel,.dialog-buttons{align-items:center;display:flex;padding:.5rem}.dialog-buttons{justify-content:flex-end}.dialog-buttons button{margin:0 .5rem}.avatar-box{flex-grow:0;flex-shrink:0;position:relative}.bot-form{display:flex;flex-direction:column;line-height:2rem;min-width:8rem;overflow:hidden}.bot-form div{min-height:2rem;vertical-align:middle}.bot-form button{background-color:var(--clr-blue-wash-light);color:var(--clr-primary-accent);display:inline-block;font-size:inherit;height:2rem;line-height:2rem;margin:.15rem;text-transform:none}.bot-form>div>button{width:auto}.bot-form button:active,.bot-form button:focus,.bot-form button:hover{background-color:var(--clr-primary-wash);color:var(--clr-dk-fg-5);outline:0}#side-caption-panel{background-color:var(--clr-primary-accent);color:var(--clr-primary-light-blue)}#side-caption-panel a{color:var(--clr-primary-light-blue);line-height:1;padding-left:.5rem}#side-caption-panel :hover{color:var(--clr-bright)}#sidepanel-title{margin-left:.5rem;margin-right:auto}#self-avatar{border-radius:50%;flex:none;height:3rem;min-width:3rem;width:3rem}#self-avatar.avatar-box{font-size:1.8rem}#settings-form ul{list-style:none}#settings-form li{vertical-align:middle}#settings-form label{display:inline-block;padding-left:.5rem}input#host-name{width:100%}input.search{text-indent:1.4rem}i.search{left:.6rem;position:absolute}.info-box{display:none;overflow:hidden;padding:1rem 1.5rem .75rem .5rem;position:relative}.info-box>span{line-height:1.35rem}.info-box .cancel{position:absolute;right:.25rem;top:.5rem}.info-box.error{background-color:var(--clr-error-bg-light);border-bottom:1px solid var(--clr-error-border-light);color:var(--clr-error-text-dark);display:flex}.info-box.warning{background-color:var(--clr-warning-bg-light);border-bottom:1px solid var(--clr-warning-border-light);color:var(--clr-warning-text-dark);display:flex}.info-box.info{background-color:var(--clr-info-bg-light);border-bottom:1px solid var(--clr-info-border-light);color:var(--clr-info-text-dark);display:flex}.info-box .cancel .material-icons{color:var(--clr-text-secondary);font-size:1rem}.info-box.error .cancel .material-icons{color:var(--clr-error-text-dark)}.info-box .icon{display:block;margin-right:.5rem}.info-box .icon .material-icons{font-size:1.5rem}.info-box.warning .icon .material-icons{color:var(--clr-warning-icon)}.info-box.error .icon .material-icons{color:var(--clr-error-icon)}.info-box.info .icon .material-icons{color:var(--clr-info-text-dark)}.flex-column{display:flex;flex-direction:column;height:100%;overflow-x:hidden}.flex-column.narrow{height:auto}.scrollable-panel{height:100%;margin-bottom:auto;margin-top:.25rem;overflow-x:hidden;overflow-y:auto;scroll-behavior:smooth}.contact-box{list-style:none;overflow-x:hidden}.contact-box>li{background:linear-gradient(to right,var(--clr-transparent) 3.5rem,var(--clr-background-extra-light-gray) 1px,var(--clr-background-extra-light-gray) 100%) 0 100% /100% 1px no-repeat,var(--clr-bright);cursor:pointer;display:flex;flex-grow:0;flex-shrink:0;min-height:3.75rem;overflow-x:hidden;padding:.35rem .25rem .5rem .35rem;position:relative}.contact-box.small>li{min-height:2.5rem;padding:.25rem .25rem .35rem .35rem}.contact-box>li:last-child{background:var(--clr-bright)}.contact-box>li:hover{background-color:var(--clr-background-blue-gray-50)}.contact-box>li.selected{background-color:var(--clr-background-blue-gray-100)}.contact-box>li.tpinned{background-color:var(--clr-background-blue-gray-75);border-right:1.5px solid var(--clr-secondary-accent)}.contact-box>li.action{border-bottom:none;min-height:2.5rem}.contact-box .text-box{overflow-x:hidden}.contact-box .contact-title{font-size:1.05rem;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-box .contact-title.deleted{opacity:.66;text-decoration:line-through;text-decoration-thickness:.5px}.contact-box .contact-comment{font-weight:lighter}.contact-box .contact-comment,.contact-box .contact-comment>span{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-box .contact-comment b{font-weight:bolder}.contact-box .contact-comment .material-icons{color:light-dark(#777,#666);margin-bottom:.2rem}.contact-box .avatar-box{font-size:1.8rem;height:3rem;margin-right:.35rem;min-height:3rem;min-width:3rem;overflow:hidden;padding:0;position:relative;width:3rem}.contact-box .avatar{border-radius:50%;height:3rem;width:3rem}.contact-box.small .avatar-box{font-size:1.2rem;height:2rem;min-height:2rem;min-width:2rem;width:2rem}.contact-box.small .avatar{height:2rem;width:2rem}.avatar.deleted{filter:grayscale(1);opacity:.75}.contact-box .avatar-box>.material-icons{display:flex;flex-direction:column;font-size:2.4rem;justify-content:space-around;line-height:3rem}.contact-box .avatar-box>.checkmark.material-icons{line-height:unset}.contact-box.small .avatar-box>.material-icons{font-size:1.6rem;line-height:2rem}.contact-box .text-box{display:flex;flex-direction:column;justify-content:space-around}.contact-box .text-box>div{align-items:center;display:flex;flex-direction:row}.contact-box .action-text{cursor:pointer;font-size:.95rem;line-height:2.5rem;margin:0 auto;text-align:center}img.channel{height:1.25rem;margin-left:.3rem;vertical-align:middle;width:1.25rem}.large img.channel{height:1.45rem;margin-bottom:.15rem;margin-left:.5rem;width:1.45rem}.avatar-box .online,.offline{border-radius:50%;bottom:.1rem;flex-shrink:0;height:.75rem;min-height:.75rem;min-width:.75rem;position:absolute;right:0;width:.75rem}.avatar-box .online{background-color:var(--clr-online)}.avatar-box .offline{background-color:var(--clr-offline)}.online.typing{animation:typing .5s infinite}@keyframes typing{0%,to{transform:translateX(0)}50%{transform:translateX(-.3rem)}}.contact-box .checkmark.material-icons{border:0 solid var(--clr-transparent);color:var(--clr-secondary-accent);overflow:visible;padding-left:.5px}.contact-box .checkmark.material-icons,.contact-box .deleted.material-icons{background-color:var(--clr-bright);bottom:0;font-size:1.5rem;height:1.5rem;position:absolute;right:0;width:1.5rem}.contact-box .deleted.material-icons{color:var(--clr-text-tertiary)}#add-topic{bottom:1rem;position:absolute;right:1rem}.panel-form{display:flex;flex-direction:column;padding:0;position:relative}.panel-form-row{align-items:center;flex-shrink:0}.panel-form-column,.panel-form-row{display:flex;flex-grow:0;line-height:1.5;padding:.5rem .75rem;position:relative}.panel-form-column{flex-direction:column;overflow-x:clip}.panel-form-column>.panel-form-column,.panel-form-row>.panel-form-column{flex-grow:1;padding:0!important}.panel-form-column>.panel-form-row,.panel-form-row>.panel-form-row{padding:0!important}.panel-form-column>.group{margin-bottom:.25rem;margin-top:.25rem}.avatar-upload{display:flex;flex-direction:column;flex-shrink:0;font-size:4.5rem;height:10.5rem;margin:.25rem;padding:0;position:relative;width:10rem}.avatar-upload.read-only{height:auto}.avatar-upload .clear-avatar{background-image:radial-gradient(var(--clr-bright) 40%,var(--clr-transparent) 75%);font-size:1rem;opacity:0;position:absolute;right:0;top:0}.avatar-upload:hover .clear-avatar{opacity:1}.avatar-upload .avatar-box{height:10rem;position:relative;width:10rem}.avatar-upload .avatar-box>.material-icons{font-size:4rem;line-height:10rem;position:relative;vertical-align:middle}.avatar-upload:after{clear:both;content:".";display:block;height:0;visibility:hidden}.avatar-upload .blank{border:1px dashed var(--clr-text-tertiary);color:var(--clr-text-tertiary);flex-shrink:0;font-size:1rem;line-height:10rem;text-align:center;vertical-align:middle}.avatar-upload .blank,.avatar-upload img.preview{border-radius:50%;height:10rem;overflow:hidden;width:10rem}.avatar-upload img.preview:before{background:50% no-repeat url(../img/broken_image.png);border-radius:50%;color:var(--clr-text-primary);content:" ";display:flex;font-size:.9rem;font-weight:lighter;height:10rem;justify-content:center;left:0;position:absolute;top:0;width:10rem}.avatar-upload .inputfile.hidden{height:.1px;opacity:0;overflow:hidden;position:absolute;width:.1px}.avatar-upload .inputfile+label.round{align-items:center;background-color:var(--clr-background-off-white);border-radius:50%;bottom:0;box-shadow:0 1px 4px var(--clr-shadow-dialog);cursor:pointer;display:flex;height:3rem;justify-content:center;line-height:3rem;position:absolute;right:0;width:3rem;z-index:1}.avatar-upload .inputfile:focus+label.round{outline:none}.avatar-upload .inputfile+label:hover,.avatar-upload .inputfile:focus+label{background-color:var(--clr-primary-wash);color:var(--clr-primary-accent)}#topic-caption-panel{background-color:var(--clr-background-blue-gray-300)}#topic-caption-panel a{color:var(--clr-text-secondary);text-decoration:none}#topic-caption-panel :hover{color:var(--clr-dark)}#topic-caption-panel .avatar-box{font-size:1.8rem;height:3rem;margin-right:.35rem;min-width:3rem;position:relative;width:3rem}#topic-caption-panel .avatar-box>.material-icons{font-size:2.4rem;line-height:3rem}#topic-title-group{overflow-x:hidden}#hide-message-view{display:block;margin-right:.35rem}#topic-users{margin-left:auto;margin-right:1rem;width:min-content}#topic-users .avatar-box{display:inline-block;font-size:1rem;height:1.8rem;margin-right:.2rem;min-height:1.8rem;min-width:1.8rem;width:1.8rem}#topic-users .avatar-box>.material-icons{font-size:1.4rem;line-height:1.8rem}#topic-users>span{line-height:2rem;vertical-align:top}.qr-code{align-self:center}#messages-container{height:100%;overflow-y:hidden;position:relative}#messages-container:before{background-color:var(--clr-background-blue-gray-50);background-image:var(--wallpaper-url);background-position:var(--wallpaper-position);background-repeat:var(--wallpaper-repeat);background-size:var(--wallpaper-size);content:"";filter:blur(var(--wallpaper-blur)) invert(var(--wallpaper-invert)) brightness(var(--wallpaper-brightness));height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:0}#messages-panel{height:100%;overflow-y:scroll;padding:.75rem;position:relative}#write-only-background{background-image:repeating-linear-gradient(45deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.5) .5rem,hsla(0,0%,100%,.8) 0,hsla(0,0%,100%,.8) 1rem);height:100%;left:0;position:absolute;top:0;width:100%}#write-only-note{height:auto;top:50%;transform:translate(-50%,-50%);width:auto}#peer-messaging-disabled-note,#write-only-note{background-color:var(--clr-bright);border-radius:.5rem;box-shadow:0 1px .5px var(--clr-shadow-button-inset-active);color:var(--clr-text-primary);left:50%;line-height:2rem;padding:.75rem 1.25rem;position:absolute;text-align:center}#peer-messaging-disabled-note{bottom:4.3rem;transform:translate(-50%);width:fit-content}#send-message-panel{align-items:center;background-color:var(--clr-background-blue-gray-50);display:flex;flex:none;min-height:4rem;padding:.4rem .4rem .4rem .6rem;z-index:2}#send-message-panel #writing-disabled{font-size:1.2rem;text-align:center;width:100%}#send-message-wrapper{background-color:var(--clr-background-blue-gray-50);box-shadow:0 -2px 3px -1px var(--clr-shadow-panel-divider);z-index:2}#sendMessage{overflow:hidden;overflow-wrap:break-word}#send-message-panel .material-icons{font-size:1.6rem;min-width:2rem}#send-message-panel .material-icons.secondary,.material-icons.disabled{color:var(--clr-text-tertiary)!important}#send-message-panel .material-icons.secondary:hover{color:var(--clr-primary-accent)!important}#send-message-input{max-height:6rem;min-height:2.5rem;overflow:hidden auto}.accept-invite-panel{background-color:var(--clr-background-blue-gray-50);box-shadow:0 -2px 3px -1px var(--clr-shadow-panel-divider);width:100%;z-index:1}.accept-invite-panel .title{font-size:1.2rem;padding:.75rem}.accept-invite-panel .footer{background-color:var(--clr-background-off-white);padding-bottom:.35rem;text-align:center;white-space:nowrap}.accept-invite-panel button{border:1px solid var(--clr-transparent);box-shadow:0 1px 2px 0 var(--clr-shadow-button);font-size:1rem;height:2em;line-height:2em;margin:.25rem}#dummy-view{align-items:center;background-color:var(--clr-cyan-50);display:flex;height:100%;justify-content:center;width:100%}#dummy-view a{display:block;text-align:center;text-decoration:none}#image-preview{background-color:var(--clr-overlay-white-strong);display:flex;flex-direction:column;height:100%;left:0;position:absolute;top:0;width:100%;z-index:2}#preview-caption-panel{background-color:var(--clr-background-blue-gray-50);box-shadow:0 1px 2px var(--clr-shadow-silver-subtle);display:flex;flex-grow:0;flex-shrink:0;font-size:120%;height:var(--caption-panel-height);justify-content:space-between;line-height:2rem;padding:1rem .75rem 0;z-index:3}#preview-caption-panel a{color:var(--clr-text-secondary);text-decoration:none}#preview-caption-panel a:hover{color:var(--clr-dark)}#image-preview-container{align-items:center;background-color:var(--clr-gray-medium-bg);display:flex;height:100%;justify-content:space-around;overflow:hidden;width:100%}#image-preview-footer{background-color:var(--clr-background-blue-gray-50);box-shadow:0 -2px 3px -1px var(--clr-shadow-panel-divider);display:flex;flex-grow:0;flex-shrink:0;height:3.2rem;justify-content:space-around;line-height:1.5rem;z-index:1}#image-preview-container .material-icons{font-size:6rem}#image-preview-container .doc-card{background-color:var(--clr-std-ltgray);border-radius:.5rem;display:flex;flex-direction:column;max-width:30rem;overflow-x:hidden;padding:1rem}.doc-card .avatar-box{font-size:4.5rem;height:10rem;width:10rem}.doc-card .avatar-box .material-icons{line-height:10rem}#video-container{background-color:var(--clr-overlay-white-strong);display:flex;flex-direction:column;height:100%;justify-content:space-between;left:0;position:absolute;top:0;width:100%;z-index:3}#video-container.minimized{background-color:unset;border-radius:.5rem;box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);cursor:grab;height:18rem;left:auto;right:1rem;top:1rem;user-select:none;width:18rem}#controls{align-items:center;align-self:center;bottom:2.5rem;column-gap:1rem;display:flex;justify-content:center;position:absolute;z-index:1}#controls.minimized{bottom:1.75rem;column-gap:.5rem}.incoming-call #controls{bottom:1rem}#controls button{align-items:center;border-radius:50%;box-shadow:0 3px 6px 0 var(--clr-shadow-button);display:flex;height:4rem;justify-content:center;min-width:auto;position:relative;width:4rem}#controls.minimized button{box-shadow:0 2px 4px 0 var(--clr-shadow-button);height:2.75rem;width:2.75rem}#controls button .material-icons{font-size:1.8rem}#controls.minimized button .material-icons{font-size:1.4rem}button.full-screen{background-color:transparent;border-radius:.5rem;box-shadow:none;height:2.5rem;left:2rem;min-width:unset;padding:0;position:absolute;top:2rem;width:2.5rem;z-index:1}.minimized button.full-screen{height:2rem;left:1rem;top:1rem;width:2rem}button.full-screen:hover:not([disabled]),button:active:not([disabled]){color:var(--clr-text-secondary)}button.full-screen .material-icons{font-size:x-large}.minimized button.full-screen .material-icons{font-size:large}#video-container-panel{height:100%;position:relative;width:100%}.call-party{background-color:var(--clr-background-extra-light-gray);border:2px solid var(--clr-border-light);border-radius:.5rem;overflow:hidden}.call-party:hover{border-color:var(--clr-primary-accent)}.minimized .call-party{border-width:1px}.call-party.peer{bottom:1rem;left:1rem;position:absolute;right:1rem;top:1rem;z-index:1}.minimized .call-party.peer{bottom:0;left:0;right:0;top:0}.call-party.self{bottom:.5rem;height:10rem;position:absolute;right:.5rem;width:10rem;z-index:2}.call-party.self[disabled]{display:none}video{height:100%;object-fit:contain;width:100%}.call-party.self video{transform:scaleX(-1)}.call-party[disabled] video{display:none}.caller-card{align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.caller-card .avatar-box{font-size:6rem;height:10rem;width:10rem}.caller-card.pulse .lettertile,.caller-card.pulse img.avatar{animation:active-call 1.5s linear infinite}.caller-card .avatar-box .material-icons{font-size:6rem;line-height:1.6}.minimized .caller-card .avatar-box{font-size:3.6rem;height:6rem;width:6rem}.call-party .caller-name{background-color:var(--clr-background-off-white);border-radius:.35rem;max-width:12rem;overflow-x:hidden;padding:.15rem .5rem;text-overflow:ellipsis;text-shadow:0 0 1px var(--clr-bright);white-space:nowrap;z-index:1}.call-party.self .caller-name.inactive{bottom:.25rem;position:absolute;right:.25rem}.caller-card .caller-name{font-size:larger;margin-top:.5rem}.caller-card .trusted-badge{display:inline-block}.call-party.peer .caller-name.inactive{bottom:.5rem;font-size:larger;left:1rem;margin:0 auto;position:absolute}.minimized .caller-name{border-radius:.25rem;font-weight:lighter;padding:.1rem .35rem}.incoming-call{background-color:var(--clr-bright);border-radius:.3rem;box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);margin:auto 2rem;max-width:24rem;min-width:16rem;width:fit-content}.incoming-call,.incoming-call .caller-card{display:flex;flex-direction:column;position:relative}.incoming-call .caller-card{align-items:center;height:100%;justify-content:center;left:auto;padding:4rem 3.5rem 5.5rem;top:auto;width:100%}.incoming-call .caller-name{background-color:var(--clr-background-off-white);border-radius:.35rem;overflow-x:hidden;padding:.15rem .5rem;text-overflow:ellipsis;text-shadow:0 0 1px var(--clr-bright);white-space:nowrap;z-index:1}.call-message{display:flex;flex-direction:row}.call-message .duration{font-weight:lighter}#go-to-latest{bottom:1rem;right:1.5rem}@keyframes active-call{0%{box-shadow:0 0 0 .1rem var(--clr-primary-accent-transparent-medium),0 0 0 .3rem var(--clr-primary-accent-transparent-medium),0 0 0 .5rem var(--clr-primary-accent-transparent-medium)}to{box-shadow:0 0 0 .4rem var(--clr-primary-accent-transparent-medium),0 0 0 2rem rgba(33,150,243,0),0 0 0 3rem rgba(33,150,243,0)}}.chat-box{list-style:none;margin:0 .5rem;padding:0 0 3.5rem;scroll-behavior:smooth}.chat-box.group{margin-left:-.4rem}.chat-box li{align-items:flex-end;display:flex;margin:0;padding:0}.chat-box .right{justify-content:flex-end}.bubble{border-radius:.5rem;color:var(--clr-bubble-text);display:flex;filter:drop-shadow(.5px .5px .7px var(--clr-shadow-bubble-drop));height:auto;margin:0;max-width:36rem;min-width:9rem;padding:.75rem .5rem;position:relative;text-align:left;transition:background-color .5s ease-out;transition-delay:.3s}.chat-box li.single{margin-bottom:.75rem;margin-top:.25rem}.chat-box li.first{margin-bottom:.15rem;margin-top:.25rem}.chat-box li.middle{margin-bottom:.15rem;margin-top:.15rem}.chat-box li.last{margin-bottom:.75rem;margin-top:.15rem}.left .bubble{background-color:var(--clr-bubble-left-bg);margin-right:.5rem}.left.flash .bubble{background-color:var(--clr-bubble-left-bg-flash)}.left .bubble.tip{border-bottom-left-radius:0}.right .bubble{background-color:var(--clr-bubble-right-bg);margin-left:1.75rem}.right.flash .bubble{background-color:var(--clr-bubble-right-bg-flash)}.right .bubble.tip{border-bottom-right-radius:0}.chat-box .meta{justify-content:center;margin-bottom:.5rem;margin-top:.5rem}.chat-box .meta .bubble{color:var(--clr-bubble-meta-text);min-width:unset}.meta .bubble.deleted{background-color:var(--clr-bubble-meta-deleted-bg);padding:.75rem .75rem .5rem}.meta .bubble.date{background-color:var(--clr-bubble-meta-date-bg);font-size:smaller;padding:.5rem;text-transform:uppercase;user-select:none}.left .bubble.tip:before{background-color:var(--clr-bubble-left-bg);border-bottom-left-radius:.3rem;bottom:0;clip-path:polygon(100% 0,0 110%,100% 110%);-webkit-clip-path:polygon(100% 0,0 110%,100% 110%);content:"";height:.85rem;left:-.8rem;position:absolute;transition:background-color .5s ease-out;transition-delay:.3s;width:.85rem}.left.flash .bubble.tip:before{background-color:var(--clr-bubble-left-bg-flash)}.right .bubble.tip:before{background-color:var(--clr-bubble-right-bg);border-bottom-right-radius:.3rem;bottom:0;clip-path:polygon(0 0,100% 110%,0 110%);-webkit-clip-path:polygon(0 0,100% 110%,0 110%);content:"";height:.85rem;left:99.8%;position:absolute;transition:background-color .5s ease-out;transition-delay:.3s;width:.85rem}.right.flash .bubble.tip:before{background-color:var(--clr-bubble-right-bg-flash)}.chat-box .avatar-box{font-size:.8rem;height:1.4rem;margin-bottom:.8rem;margin-right:.8rem;min-height:1.4rem;min-width:1.4rem;position:relative;width:1.4rem}.bubble div.content-meta{width:100%}.bubble div.message-content{font-size:var(--message-text-size);margin:0;max-width:36rem;overflow-wrap:anywhere;padding:0 .75rem;position:relative;width:100%}.bubble div.message-content.emoji-1{font-size:300%}.bubble div.message-content.emoji-2{font-size:241%}.bubble div.message-content.emoji-3{font-size:193%}.bubble div.message-content.emoji-4{font-size:155%}.bubble div.message-content.emoji-5{font-size:125%}.bubble div.message-content:after{clear:both;content:".";display:block;height:0;visibility:hidden}.chat-box .timestamp-padding{display:inline-block;height:0;width:4rem}.chat-box .timestamp{color:var(--clr-bubble-timestamp-text);float:right;font-size:80%;position:relative;top:.35rem;user-select:none;white-space:nowrap}.chat-box .author{color:var(--clr-bubble-author-text);font-size:80%;max-width:12em;overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.image-preview,.inline-image{border-radius:.1rem;overflow:hidden;position:relative}.inline-image{max-height:24rem;max-width:36rem}.inline-image>.rounded-container{border-left:.25rem solid var(--clr-transparent);border-right:.25rem solid var(--clr-transparent);bottom:2rem;margin:.25rem auto;position:relative}img.image-preview:before,img.inline-image:before{background:center no-repeat var(--clr-border-light) url(../img/broken_image.png);color:var(--clr-text-primary);display:flex;font-size:.9rem;font-weight:lighter;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}img.inline-image:before{background-size:3rem 3rem;content:attr(alt)}img.image-preview:before{background-size:10rem 10rem;content:" "}.inline-image.video>img.inline-image:before,img.image-preview.video:before{background:center no-repeat var(--clr-border-light) url(../img/broken_video.png)}.inline-image.video>img.inline-image:before{background-size:3rem 3rem}.inline-video{align-items:center;display:flex;justify-content:center;position:relative}.inline-video>img.inline-image:before{background:var(--clr-border-light)}.inline-video .duration{background-color:hsla(0,0%,100%,.5);border-radius:.3rem;bottom:.25rem;color:var(--clr-toast-bg);font-size:80%;left:.25rem;padding:.25rem .5rem;position:absolute}.inline-video .play-control{align-items:center;background-color:rgba(0,0,0,.4);border-radius:50%;cursor:pointer;display:flex;height:4rem;justify-content:center;pointer-events:none;position:absolute;width:4rem}.attachment{display:flex}.attachment:last-of-type{margin-bottom:-.45rem}#info-caption-panel{background-color:var(--clr-background-blue-gray-300)}#info-caption-panel a{color:var(--clr-text-secondary);line-height:1;text-decoration:none}#info-caption-panel :hover{color:var(--clr-dark)}#info-title{margin-right:auto}#group-manager{display:flex;flex-direction:column;height:100%;overflow-y:hidden;position:relative}#group-manager-buttons{background-color:var(--clr-background-blue-gray-50);border-left:1px solid var(--clr-border-light);box-shadow:0 -1px var(--clr-shadow-panel-divider);display:flex;height:4rem;justify-content:space-around;padding:.4rem;z-index:2}ul.tabbar{background:var(--clr-tabbar-bg);display:flex;flex-grow:0;flex-shrink:0;list-style:none;margin:0;overflow:hidden;padding:0 0 0 1rem;width:100%}ul.tabbar>li{box-shadow:inset 0 -2px 2.5px -1px var(--clr-shadow-button);height:2.4rem;position:relative}ul.tabbar li.active{background:var(--clr-bright)}ul.tabbar li:after{background:var(--clr-tabbar-inactive-border);bottom:0;content:"";height:.1rem;left:0;position:absolute;width:100%}ul.tabbar li.active:after{animation:tabbar-border-expand .2s cubic-bezier(.4,0,.4,1) 0s alternate forwards;background:var(--clr-tabbar-active-border);bottom:0;content:"";height:.15rem;left:0;position:absolute}@keyframes tabbar-border-expand{0%{opacity:0;width:0}to{opacity:1;width:100%}}ul.tabbar>li>a{color:var(--clr-tabbar-inactive-text);font-size:1.3rem;font-variant:small-caps;font-weight:400;line-height:2.4rem;overflow:hidden;padding-left:1rem;padding-right:1rem;position:relative;text-align:center;text-decoration:none}ul.tabbar li.active>a{color:var(--clr-tabbar-active-text)}.unread{background-color:var(--clr-secondary-accent);border-radius:50%;color:var(--clr-bright);display:inline-block;font-size:.75rem;font-weight:bolder;height:1.35rem;line-height:1.45rem;margin-left:.5rem;text-align:center;vertical-align:middle;width:1.35rem}.material-icons.as-badge{color:var(--clr-chip-remove-icon-bg);font-size:1.15rem;padding-left:.2rem}.badge{align-self:flex-start;background-color:var(--clr-badge-default-bg);border:1px solid var(--clr-badge-default-border);border-radius:.2rem;color:var(--clr-badge-default-text);display:inline-block;font-family:Roboto Mono,Courier,monospace,sans-serif;font-size:.8rem;margin:.05rem .1rem;padding:.05rem .25rem}.badge.green{background-color:var(--clr-badge-green-bg);border-color:var(--clr-badge-green-border);color:var(--clr-badge-green-text)}.badge.yellow{background-color:var(--clr-badge-yellow-bg);border-color:var(--clr-badge-yellow-border);color:var(--clr-badge-yellow-text)}.badge.blue{background-color:var(--clr-badge-blue-bg);border-color:var(--clr-badge-blue-border);color:var(--clr-badge-blue-text)}.badge.red{background-color:var(--clr-badge-red-bg);border-color:var(--clr-badge-red-border);color:var(--clr-badge-red-text)}.badge.magenta{background-color:var(--clr-badge-magenta-bg);border-color:var(--clr-badge-magenta-border);color:var(--clr-badge-magenta-text)}.lettertile{border-radius:50%;padding-bottom:100%;user-select:none;width:100%}.lettertile>div{align-items:center;border-radius:50%;bottom:0;color:var(--clr-lettertile-default-text);display:flex;flex-grow:0;flex-shrink:0;justify-content:center;left:0;line-height:1;padding-top:.1em;position:absolute;right:0;text-align:center;text-transform:uppercase;top:0}.lettertile:hover{color:var(--clr-lettertile-hover-text)}.lettertile.disabled{opacity:.5}.lt-bg-0{background-color:var(--clr-lt-bg-0)}.lt-bg-1{background-color:var(--clr-lt-bg-1)}.lt-bg-2{background-color:var(--clr-lt-bg-2)}.lt-bg-3{background-color:var(--clr-lt-bg-3)}.lt-bg-4{background-color:var(--clr-lt-bg-4)}.lt-bg-5{background-color:var(--clr-lt-bg-5)}.lt-bg-6{background-color:var(--clr-lt-bg-6)}.lt-bg-7{background-color:var(--clr-lt-bg-7)}.lt-bg-8{background-color:var(--clr-lt-bg-8)}.lt-bg-9{background-color:var(--clr-lt-bg-9)}.lt-bg-10{background-color:var(--clr-lt-bg-10)}.lt-bg-11{background-color:var(--clr-lt-bg-11)}.lt-bg-12{background-color:var(--clr-lt-bg-12)}.lt-bg-13{background-color:var(--clr-lt-bg-13)}.lt-bg-14{background-color:var(--clr-lt-bg-14)}.lt-bg-15{background-color:var(--clr-lt-bg-15)}.dk-bg-0{background-color:var(--clr-dk-bg-0)}.dk-bg-1{background-color:var(--clr-dk-bg-1)}.dk-bg-2{background-color:var(--clr-dk-bg-2)}.dk-bg-3{background-color:var(--clr-dk-bg-3)}.dk-bg-4{background-color:var(--clr-dk-bg-4)}.dk-bg-5{background-color:var(--clr-dk-bg-5)}.dk-bg-6{background-color:var(--clr-dk-bg-6)}.dk-bg-7{background-color:var(--clr-dk-bg-7)}.dk-bg-8{background-color:var(--clr-dk-bg-8)}.dk-bg-9{background-color:var(--clr-dk-bg-9)}.dk-bg-10{background-color:var(--clr-dk-bg-10)}.dk-bg-11{background-color:var(--clr-dk-bg-11)}.dk-bg-12{background-color:var(--clr-dk-bg-12)}.dk-bg-13{background-color:var(--clr-dk-bg-13)}.dk-bg-14{background-color:var(--clr-dk-bg-14)}.dk-bg-15{background-color:var(--clr-dk-bg-15)}.lt-fg-0{color:var(--clr-lt-fg-0)!important}.lt-fg-1{color:var(--clr-lt-fg-1)!important}.lt-fg-2{color:var(--clr-lt-fg-2)!important}.lt-fg-3{color:var(--clr-lt-fg-3)!important}.lt-fg-4{color:var(--clr-lt-fg-4)!important}.lt-fg-5{color:var(--clr-lt-fg-5)!important}.lt-fg-6{color:var(--clr-lt-fg-6)!important}.lt-fg-7{color:var(--clr-lt-fg-7)!important}.lt-fg-8{color:var(--clr-lt-fg-8)!important}.lt-fg-9{color:var(--clr-lt-fg-9)!important}.lt-fg-10{color:var(--clr-lt-fg-10)!important}.lt-fg-11{color:var(--clr-lt-fg-11)!important}.lt-fg-12{color:var(--clr-lt-fg-12)!important}.lt-fg-13{color:var(--clr-lt-fg-13)!important}.lt-fg-14{color:var(--clr-lt-fg-14)!important}.lt-fg-15{color:var(--clr-lt-fg-15)!important}.dk-fg-0{color:var(--clr-dk-fg-0)!important}.dk-fg-1{color:var(--clr-dk-fg-1)!important}.dk-fg-2{color:var(--clr-dk-fg-2)!important}.dk-fg-3{color:var(--clr-dk-fg-3)!important}.dk-fg-4{color:var(--clr-dk-fg-4)!important}.dk-fg-5{color:var(--clr-dk-fg-5)!important}.dk-fg-6{color:var(--clr-dk-fg-6)!important}.dk-fg-7{color:var(--clr-dk-fg-7)!important}.dk-fg-8{color:var(--clr-dk-fg-8)!important}.dk-fg-9{color:var(--clr-dk-fg-9)!important}.dk-fg-10{color:var(--clr-dk-fg-10)!important}.dk-fg-11{color:var(--clr-dk-fg-11)!important}.dk-fg-12{color:var(--clr-dk-fg-12)!important}.dk-fg-13{color:var(--clr-dk-fg-13)!important}.dk-fg-14{color:var(--clr-dk-fg-14)!important}.dk-fg-15{color:var(--clr-dk-fg-15)!important}.material-icons{font-size:1.4rem;line-height:1;text-align:center;user-select:none;vertical-align:middle}.material-icons.small{font-size:1rem}.material-icons.medium{font-size:1.2rem}.material-icons.large{font-size:1.6rem}.material-icons.big{font-size:2.2rem}.material-icons.x-big{font-size:3rem}.material-icons.huge{font-size:4rem}.composed-material{display:inline-block;position:relative}.composed-material .second{font-size:85%;font-weight:700;left:39%;position:absolute;top:7%}.composed-material .second-small{font-size:62%;font-weight:700;left:30%;position:absolute;top:14%}.material-icons.outline{position:relative;text-shadow:-1px 1px var(--clr-bright),1px 1px var(--clr-bright),1px -1px var(--clr-bright),-1px -1px var(--clr-bright)}#self-avatar .material-icons{font-size:2.4rem;line-height:3rem}.avatar-box .material-icons{border-radius:50%;color:var(--clr-lettertile-default-text);height:inherit;width:inherit}.chip-input{align-items:center;background:var(--clr-transparent);border-bottom:1px solid var(--clr-input-border);box-shadow:0 1px 0 var(--clr-input-shadow);color:var(--clr-input-text);cursor:text;display:flex;flex-grow:1;flex-wrap:wrap;font-size:1.1rem;font-weight:400;justify-content:flex-start;margin:.25rem 0;max-height:10rem;min-height:4rem;outline:none;overflow-y:scroll;text-align:center;transition:all .1s ease-in-out}.chip-input.focused{border-bottom:1px solid var(--clr-input-border-focus);box-shadow:0 1px 0 var(--clr-input-shadow-focus)}.chip-input>input[type=text]{border:none;box-shadow:none;display:inline-block;flex:1 0 auto;min-width:4rem;width:auto}.chip,.chip-input>input[type=text]{height:1.8rem;line-height:1.8;margin:.125rem}.chip{align-items:center;background-color:var(--clr-chip-bg);border-radius:.9rem;display:flex;flex:0 0 auto;font-size:90%;max-width:12rem;overflow:hidden}.chip,.chip>span{text-overflow:ellipsis;white-space:nowrap}.chip>span{overflow-x:hidden}.chip.invalid{background-color:var(--clr-chip-invalid-bg);color:var(--clr-chip-invalid-text)}.chip>a{background-color:var(--clr-chip-remove-icon-bg);border-radius:50%;color:var(--clr-chip-remove-icon-text);display:inline-block;height:1.175rem;line-height:1.15;margin:.3rem;min-width:1.175rem;text-decoration:none;width:1.175rem}.chip>a:focus,.chip>a:hover{background-color:var(--clr-chip-remove-icon-hover-bg);color:var(--clr-chip-remove-icon-hover-text);text-decoration:none}.chip .avatar-box{font-size:1rem;height:1.8rem;margin-right:.2rem;min-height:1.8rem;min-width:1.8rem;position:relative;width:1.8rem}.chip .avatar-box .material-icons{font-size:1.4rem;line-height:1.8rem}.chip .spacer{display:inline-block;height:1.175rem;margin:.3rem;width:.25rem}.load-spinner-box{--size-small:2.5rem;--size-large:4rem;background-color:var(--clr-bright);border-radius:50%;box-shadow:.1rem .1rem .15rem 1px var(--clr-shadow-button);height:var(--size-small);left:0;margin-left:auto;margin-right:auto;padding:.25rem;position:absolute;right:0;top:5rem;width:var(--size-small);z-index:2}.load-spinner-box.large{height:var(--size-large);width:var(--size-large)}.load-spinner-box.clear{background-color:hsla(0,0%,100%,.5);box-shadow:.1rem .1rem .15rem 1px var(--clr-shadow-button-inset-active)}.load-spinner-box.centered{top:calc(var(--size-small)/2 - .25rem)}.load-spinner-box.large.centered{top:calc(var(--size-large)/2 - .25rem)}.loader-spinner{animation:spin 1.5s linear infinite;border-radius:50%;border-top:.35rem solid var(--clr-spinner-track);border:.35rem solid var(--clr-spinner-track);border-top-color:var(--clr-spinner-active);height:2rem;width:2rem}.load-spinner-box.large .loader-spinner{height:3.5rem;width:3.5rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.uploader{display:flex}.uploader>div{background-color:var(--clr-background-blue-gray-100);border-radius:.1rem;height:.6rem;line-height:0;margin:.35rem;padding:.15rem;position:relative;width:6rem}.uploader>div>span{background-color:var(--clr-primary-action);border-radius:.08rem;display:inline-block;height:.3rem}.highlight{color:var(--clr-highlight-text);font-weight:bolder}.highlight .preview{color:var(--clr-highlight-preview-text);font-weight:inherit}.cropper{align-self:center;height:21rem;margin:1rem auto auto;transform:translateZ(0)}.cropper,.cropper .bounding-box{border-radius:.25rem;position:relative;width:18rem}.cropper .bounding-box{background-color:var(--clr-cropper-bounding-box-bg);border:2px solid var(--clr-cropper-bounding-box-border);box-shadow:1px 1px 3px var(--clr-shadow-cropper-gray);height:18rem;overflow:hidden;z-index:1}.cropper .preview{max-height:none;max-width:none;position:absolute;z-index:-1}.cropper .cutout{border:1px dashed var(--clr-cropper-cutout-border);bottom:0;box-shadow:0 0 150rem 150rem var(--clr-cropper-cutout-shadow);height:17.8rem;left:0;margin:auto;position:absolute;right:0;top:0;width:17.8rem;z-index:0}.cropper .cutout.circle{border-radius:50%}.cropper .overlay{cursor:move;position:absolute;touch-action:none;z-index:1}.cropper .zoom-wrapper{height:2rem;margin:1rem auto;text-align:center;width:80%}.cropper .zoom{box-shadow:none;pointer-events:none;z-index:2}.cropper .zoom:focus{outline:none}.reply-quote{border-left:.25rem solid var(--clr-reply-quote-border);border-radius:.25rem;color:var(--clr-reply-quote-text);cursor:pointer;font-weight:lighter;line-height:1.5em;padding:.15rem .5rem .25rem;position:relative}.chat-box .bubble .reply-quote{margin:.15rem -.75rem .3rem}.chat-box .bubble .reply-quote:first-child{margin-top:-.25rem}.chat-box .left .reply-quote{background-color:var(--clr-reply-quote-left-bg)}.chat-box .right .reply-quote{background-color:var(--clr-reply-quote-right-bg)}.reply-quote .inline-image{margin-bottom:.1rem;vertical-align:middle}.reply-quote img.inline-image:before{content:""}#reply-quote-preview{align-items:center;display:flex}#reply-quote-preview .reply-quote{background-color:var(--clr-reply-quote-preview-bg);cursor:auto;margin:.35rem .5rem 0 0;width:100%}#reply-quote-preview .cancel{min-width:2.4rem;text-align:center}#reply-quote-preview .inline-image{background-color:var(--clr-border-light)}#reply-quote-preview img.inline-image:before{content:""}#send-message-panel #reply-quote-preview{width:100%}#send-message-panel #reply-quote-preview .reply-quote{margin-bottom:.35rem}.forwarding-quote{font-size:200%;line-height:200%}.mention{font-weight:500}.forward-dialog{background-color:var(--clr-bright);border-radius:.3rem;box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);height:80%;margin:auto 1rem;overflow:hidden;padding:.5rem;position:relative;width:24rem}.forward-dialog .scrollable-panel{height:80%}.audio{align-items:center;background-color:var(--clr-audio-bg);border-radius:1.5rem;display:flex;flex:none;height:3rem;margin-left:auto}.audio canvas{height:2.6rem;margin-right:2rem;width:14rem}.audio canvas.playback{margin-right:0}.audio .duration{font-size:large}.audio-player{align-items:center;display:flex}.audio-player .material-icons.large{color:var(--clr-audio-icon);font-size:2.4rem}.audio-player .material-icons.disabled{color:var(--clr-audio-icon-disabled);cursor:default}.audio-player .playback{height:2.6rem;width:14rem}.audio-player canvas.playback{display:block}.audio-player div.playback{align-items:center;color:var(--clr-audio-icon);display:flex;font-size:small;justify-content:center}.audio-player .timer{color:var(--clr-audio-timer-text);font-size:smaller}#pinned-wrapper{margin-right:.5rem}#pinned-wrapper,.pinned{align-items:center;display:flex;height:100%;position:relative}.pinned{background-color:var(--clr-background-off-white);background-position:50%;border-radius:0 .25rem .25rem 0;color:var(--clr-text-primary);cursor:pointer;font-weight:lighter;min-width:0;padding:.15rem .5rem .25rem;transition:background .4s;width:24rem}.pinned>p{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.pinned:hover{background-color:var(--clr-bright)}.pinned:active{background-color:var(--clr-blue-wash-medium);transition:background 0s}.pinned-scroll{align-items:center;background-color:var(--clr-background-extra-light-gray);border-radius:.25rem 0 0 .25rem;display:flex;flex-direction:column;height:100%;justify-content:space-evenly;margin-left:.35rem;padding:.2rem;position:relative;user-select:none}.pinned-scroll .dot{background-color:var(--clr-text-tertiary);border-radius:50%;height:.3rem;user-select:none;width:.3rem}.pinned-scroll .adot{background-color:var(--clr-light-blue-accent);border-radius:50%;height:.45rem;user-select:none;width:.45rem}#pinned-wrapper:hover .menuTrigger{opacity:.9}#pinned-wrapper:hover .menuTrigger a{color:var(--clr-text-secondary)}.pinned-menu{background-color:var(--clr-pinned-menu-bg);border-radius:0 .25rem .25rem 0;bottom:0;display:flex;flex-direction:column;justify-content:space-evenly;position:absolute;right:0;top:0}.pinned-menu .menuTrigger{position:relative;right:0}.contact-card{background-color:var(--clr-background-off-white);border-radius:.5rem;display:flex;flex-direction:column;min-width:14rem;position:relative}.contact-card .avatar-box{font-size:1rem;height:1.8rem;margin-bottom:0;margin-right:.75rem;position:relative;width:1.8rem}.contact-card .contact-body{align-items:center;background-color:var(--clr-background-blue-gray-50);border-bottom:none;border-radius:.5rem .5rem 0 0;display:flex;padding:.75rem}.contact-card .contact-body .name-box{display:flex;flex-direction:column;overflow:hidden}.contact-card .contact-body .name-box .name{color:var(--clr-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-card .contact-body .name-box .org{color:var(--clr-text-secondary);font-size:90%;font-weight:300;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-card .contact-actions{align-items:center;background-color:var(--clr-bright);border-radius:0 0 .5rem .5rem;border-top:none;display:flex;justify-content:space-evenly;padding:0 .5rem}.contact-card .contact-actions a{cursor:pointer}.contact-card .contact-actions .divider{height:1.8rem;opacity:.5}.drag-n-drop{align-items:center;background-color:var(--clr-drag-n-drop-bg);border:.15rem dashed var(--clr-drag-n-drop-border);border-radius:1rem;bottom:1.5rem;color:var(--clr-drag-n-drop-text);display:flex;font-size:2rem;justify-content:center;left:1.5rem;outline:.5rem solid var(--clr-drag-n-drop-outline);position:absolute;right:1.5rem;top:1.5rem;z-index:3}.country-flag{display:inline-block;font-size:larger}.dial-code{cursor:pointer;display:inline-block;margin-bottom:.15rem;vertical-align:middle;white-space:nowrap}ul.phone-country-selector{list-style:none;overflow-x:hidden}ul.phone-country-selector>li{cursor:pointer;font-weight:lighter;padding:.25rem .5rem .15rem;position:relative;width:100%}ul.phone-country-selector>li:hover{background-color:var(--clr-background-blue-gray-50)}ul.phone-country-selector>li.selected{background-color:var(--clr-background-blue-gray-100)}ul.phone-country-selector .dial-code{color:var(--clr-primary-action);font-weight:400;position:absolute;right:.5rem}ul.phone-country-selector span{display:inline-block}ul.phone-country-selector span.country{overflow-x:hidden;text-overflow:ellipsis}.image-grid{display:grid;gap:.35rem;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));padding:.25rem;position:relative}.image-grid-cell{border:1.5px solid transparent;border-radius:.25rem;box-shadow:0 0 .2rem var( --clr-shadow-hr-inset);cursor:pointer;height:7rem;margin:0;overflow:hidden;padding:0;width:100%}.image-grid-cell img{object-fit:cover}.image-grid-cell.selected{border:1.5px solid var(--clr-secondary-accent)}img.inverted{filter:invert(1)}div.toast{align-items:center;background-color:var(--clr-toast-bg);border-radius:.5rem;bottom:2rem;box-shadow:1px 2px .3rem var(--clr-shadow-gray-strong);color:var(--clr-toast-text);display:flex;font-weight:lighter;height:3rem;justify-content:center;left:50%;min-width:10rem;padding:.5rem 1rem;position:absolute;translate:-50%;visibility:hidden;z-index:3}div.toast.show{animation:fadein .5s,fadeout .5s 2.5s;visibility:visible}@keyframes fadein{0%{bottom:0;opacity:0}to{bottom:2rem;opacity:1}}@keyframes fadeout{0%{bottom:2rem;opacity:1}to{bottom:0;opacity:0}}@media (min-width:1440px){#app-container{max-width:114rem}}@media (max-width:960px){#mountPoint{padding:0}.pinned{width:16rem}}@media (max-width:640px){#app-container{border-radius:0;box-shadow:none;width:100%}#info-view,#sidepanel{width:100%}.forward-dialog{border-radius:.3rem .3rem 0 0;margin:auto 0 0;width:100%}.menuTrigger{opacity:.3}#send-message-input{transition-property:-tinode-mobile}#pinned-wrapper{height:3.5rem;margin:.25rem}.pinned{width:unset}#video-container.minimized{border-radius:unset;box-shadow:0 0 .5rem var(--clr-shadow-gray-strong);flex-direction:row;height:11rem;left:0;top:var(--caption-panel-height);width:100%}#controls.minimized{bottom:auto;column-gap:unset;flex-direction:column;right:1rem;row-gap:.5rem}.minimized .call-party{border-radius:unset;box-shadow:unset}.call-party.self{border-radius:unset;bottom:8.5rem}} \ No newline at end of file +:root{color-scheme:light dark;--message-text-size:10pt;--caption-panel-height:4rem;--wallpaper-url:url(../img/bkg/a00.png);--wallpaper-repeat:repeat;--wallpaper-blur:0px;--wallpaper-invert:0;--wallpaper-brightness:1;--wallpaper-size:contain;--wallpaper-position:center;--clr-bright:light-dark(#fff,#181818);--clr-dark:light-dark(#000,#fff);--clr-transparent:transparent;--clr-std-gray:gray;--clr-std-ltgray:light-dark(silver,#3f3f3f);--clr-std-teal:teal;--clr-std-grey:grey;--clr-std-orange:orange;--clr-primary-accent:light-dark(#2094f3,#0e6dba);--clr-primary-accent-hover:light-dark(#0a6ebd,#116ab4);--clr-primary-accent-focus-shadow:light-dark(rgba(33,150,243,.25),rgba(3,7,12,.25));--clr-primary-accent-transparent-medium:light-dark(rgba(33,150,243,.3),rgba(20,70,120,.3));--clr-primary-action:light-dark(#1e89e6,#1571c1);--clr-primary-action-hover:light-dark(#2962ff,#0037b8);--clr-secondary-accent:light-dark(#0097a8,#006570);--clr-primary-light-blue:light-dark(#bcdefb,#78a0be);--clr-light-blue-accent:light-dark(#0398e2,#0379b5);--clr-body-background:var(--clr-std-ltgray);--clr-text-primary:light-dark(#666,#999);--clr-text-secondary:light-dark(#757575,#8a8a8a);--clr-text-tertiary:light-dark(#999,#787878);--clr-text-tertiary-activated:#888;--clr-text-placeholder:light-dark(#bbb,#555);--clr-text-disabled:light-dark(#888,#777);--clr-border-light:light-dark(#ccc,#555);--clr-border-muted:light-dark(#ddd,#444);--clr-background-off-white:light-dark(#fafafa,#222);--clr-background-light-gray:light-dark(#f0f0f0,#0f0f0f);--clr-background-extra-light-gray:light-dark(#eee,#222);--clr-background-blue-gray-50:light-dark(#edf0f2,#202c33);--clr-background-blue-gray-75:light-dark(#e1e8eb,#182124);--clr-background-blue-gray-100:light-dark(#cfd8dc,#20272a);--clr-background-blue-gray-300:light-dark(#b0bec5,#354146);--clr-blue-wash-light:light-dark(#f0f0ff,#22222d);--clr-blue-wash-medium:light-dark(#d8e8ff,#123550);--clr-primary-wash:light-dark(#e3f2fd,#072f45);--clr-indigo-50:light-dark(#e8eaf6,#1a2c44);--clr-danger-text:light-dark(#d33131,#931f1f);--clr-danger-text-hover:light-dark(#f44034,#c10);--clr-error-text-muted:light-dark(#c66,#933);--clr-error-bg-light:light-dark(#ffccd1,#ff6675);--clr-error-border-light:light-dark(#ffbdc6,#ff334e);--clr-error-text-dark:light-dark(#b51c1c,#de2323);--clr-error-icon:light-dark(#ef5552,#d81b0e);--clr-warning-accent:light-dark(#ffc107,#808020);--clr-warning-bg-light:light-dark(#fff9c4,#00060c);--clr-warning-border-light:light-dark(#fff59d,#000a2b);--clr-warning-text-dark:light-dark(#6d4c41,#a08356);--clr-warning-icon:light-dark(#fbc02d,#b48204);--clr-info-bg-light:light-dark(#e1f5fe,#010a0e);--clr-info-border-light:light-dark(#b3e5fc,#001824);--clr-info-text-dark:light-dark(#0288d1,#00151f);--clr-header-stripe-bg:light-dark(#3949ab,#12152f);--clr-scrollbar-thumb:light-dark(rgba(0,0,0,.3),hsla(0,0%,100%,.3));--clr-scrollbar-track:light-dark(hsla(0,0%,100%,.1),rgba(0,0,0,.1));--clr-menu-item-hover-bg:light-dark(#f5f5f5,#0a0a0a);--clr-alert-overlay-bg:light-dark(hsla(0,0%,94%,.85),hsla(0,0%,6%,.85));--clr-verified-accent:light-dark(#02a6f2,#027db6);--clr-staff-accent:light-dark(#689f38,#598830);--clr-badge-inv:light-dark(#fffd,#cccd);--clr-cyan-50:light-dark(#e0f7fa,#2f3e43);--clr-overlay-white-strong:light-dark(hsla(0,0%,100%,.9),rgba(0,0,0,.9));--clr-gray-medium-bg:light-dark(#777,#444);--clr-toast-bg:#333;--clr-toast-text:light-dark(#eee,#aaa);--clr-online:#4caf50;--clr-offline:light-dark(#ccc,#999);--clr-shadow-input-underline:rgba(0,0,0,.1);--clr-shadow-hr-inset:rgba(0,0,0,.15);--clr-shadow-scrollbar-track-webkit:rgba(0,0,0,.2);--clr-shadow-button:rgba(0,0,0,.25);--clr-shadow-button-inset-active:rgba(0,0,0,.125);--clr-shadow-dialog:rgba(0,0,0,.45);--clr-shadow-panel-divider:rgba(0,0,0,.1);--clr-shadow-gray-strong:light-dark(var(--clr-std-gray),#333);--clr-shadow-silver-subtle:light-dark(var(--clr-std-ltgray),#333);--clr-shadow-bubble-drop:rgba(0,0,0,.3);--clr-button-primary-bg:var(--clr-primary-action);--clr-button-primary-text:var(--clr-bright);--clr-button-primary-hover-bg:var(--clr-primary-action-hover);--clr-button-secondary-bg:var(--clr-bright);--clr-button-secondary-text:var(--clr-primary-accent);--clr-button-secondary-hover-bg:var(--clr-primary-wash);--clr-button-outline-text:var(--clr-primary-accent);--clr-button-outline-border:var(--clr-std-ltgray);--clr-button-outline-hover-bg:var(--clr-indigo-50);--clr-button-danger-bg:light-dark(#ec645f,#d74742);--clr-button-danger-text:var(--clr-bright);--clr-button-danger-hover-bg:light-dark(#f77,#a55);--clr-button-positive-bg:light-dark(#71c46f,#3f983e);--clr-button-positive-text:var(--clr-bright);--clr-button-positive-hover-bg:light-dark(#7fed7f,#6ec26e);--clr-input-text:var(--clr-text-primary);--clr-input-border:var(--clr-border-light);--clr-input-border-focus:var(--clr-primary-accent);--clr-input-shadow:var(--clr-shadow-input-underline);--clr-input-shadow-focus:var(--clr-primary-accent-focus-shadow);--clr-input-invalid-border:light-dark(#e57171,#561010);--clr-input-invalid-shadow:light-dark(#e5737340,#1a0c0c40);--clr-input-placeholder-text:var(--clr-text-placeholder);--clr-bubble-left-bg:light-dark(#c4e0a3,#3e5c1f);--clr-bubble-left-bg-flash:light-dark(#94a97c,#2c4517);--clr-bubble-right-bg:var(--clr-background-off-white);--clr-bubble-right-bg-flash:var(--clr-border-light);--clr-bubble-text:light-dark(#212121,#bbc);--clr-bubble-meta-text:var(--clr-text-primary);--clr-bubble-meta-deleted-bg:var(--clr-primary-wash);--clr-bubble-meta-date-bg:light-dark(hsla(0,0%,100%,.8),rgba(40,40,40,.8));--clr-bubble-timestamp-text:light-dark(#777,#888);--clr-bubble-author-text:light-dark(#777,#666);--clr-reply-quote-border:var(--clr-light-blue-accent);--clr-reply-quote-text:var(--clr-text-primary);--clr-reply-quote-left-bg:light-dark(hsla(0,0%,100%,.4),rgba(0,0,0,.4));--clr-reply-quote-right-bg:light-dark(#8080801f,#c4c4c42e);--clr-reply-quote-preview-bg:var(--clr-background-off-white);--clr-badge-default-bg:light-dark(#e8e8e8,#171717);--clr-badge-default-text:var(--clr-text-primary);--clr-badge-default-border:var(--clr-std-ltgray);--clr-badge-green-bg:light-dark(#efe,#131);--clr-badge-green-text:light-dark(#383,#363);--clr-badge-green-border:light-dark(#aca,#242);--clr-badge-yellow-bg:light-dark(#ffe,#331);--clr-badge-yellow-text:light-dark(#660,#660);--clr-badge-yellow-border:light-dark(#cc9,#552);--clr-badge-blue-bg:light-dark(#f0f0ff,#224);--clr-badge-blue-text:light-dark(#339,#447);--clr-badge-blue-border:light-dark(#aad,#336);--clr-badge-red-bg:light-dark(#fee,#522);--clr-badge-red-text:light-dark(#933,#744);--clr-badge-red-border:light-dark(#c99,#633);--clr-badge-magenta-bg:light-dark(#fef,#535);--clr-badge-magenta-text:light-dark(#939,#747);--clr-badge-magenta-border:light-dark(#c9c,#636);--clr-chip-bg:var(--clr-background-extra-light-gray);--clr-chip-invalid-text:var(--clr-error-text-muted);--clr-chip-invalid-bg:var(--clr-badge-red-bg);--clr-chip-remove-icon-bg:light-dark(#aaa,#555);--clr-chip-remove-icon-text:var(--clr-background-extra-light-gray);--clr-chip-remove-icon-hover-bg:var(--clr-text-placeholder);--clr-chip-remove-icon-hover-text:var(--clr-bright);--clr-tabbar-bg:var(--clr-background-extra-light-gray);--clr-tabbar-inactive-text:light-dark(rgba(33,150,243,.6),#165aa0);--clr-tabbar-active-text:var(--clr-primary-accent);--clr-tabbar-inactive-border:var(--clr-border-light);--clr-tabbar-active-border:var(--clr-primary-accent);--clr-highlight-text:var(--clr-std-teal);--clr-highlight-preview-text:light-dark(#5f9ea0,#205e60);--clr-spinner-track:light-dark(#f3f3f3,#0c0c0c);--clr-spinner-active:var(--clr-primary-action);--clr-cropper-bounding-box-border:var(--clr-primary-action);--clr-cropper-bounding-box-bg:var(--clr-text-tertiary);--clr-cropper-cutout-border:var(--clr-text-tertiary);--clr-cropper-cutout-shadow:light-dark(rgba(230,246,255,.66),rgba(25,10,0,.66));--clr-audio-bg:var(--clr-background-extra-light-gray);--clr-audio-icon:light-dark(hsla(180,7%,43%,.8),hsla(0,7%,57%,.8));--clr-audio-icon-disabled:light-dark(hsla(0,0%,60%,.75),hsla(0,0%,40%,.75));--clr-audio-timer-text:light-dark(hsla(0,0%,40%,.75),hsla(0,0%,60%,.75));--clr-pinned-menu-bg:light-dark(#f8f8f8,#1a1a1a);--clr-drag-n-drop-border:var(--clr-std-grey);--clr-drag-n-drop-text:var(--clr-std-grey);--clr-drag-n-drop-bg:light-dark(hsla(0,0%,100%,.95),rgba(0,0,0,.95));--clr-drag-n-drop-outline:light-dark(hsla(0,0%,100%,.95),rgba(0,0,0,.95));--clr-lettertile-default-text:light-dark(#fafafacc,#dcdcdccc);--clr-lettertile-hover-text:var(--clr-bright);--clr-lt-bg-0:#ef9a9a;--clr-lt-bg-1:#90caf9;--clr-lt-bg-2:#b0bec4;--clr-lt-bg-3:#b49edb;--clr-lt-bg-4:#ffa98f;--clr-lt-bg-5:#a4d5a6;--clr-lt-bg-6:#ededed;--clr-lt-bg-7:#e6ee9b;--clr-lt-bg-8:#c4e0a3;--clr-lt-bg-9:#f0e57f;--clr-lt-bg-10:#f490b1;--clr-lt-bg-11:#a0a8da;--clr-lt-bg-12:#ffdf80;--clr-lt-bg-13:#bcaaa4;--clr-lt-bg-14:#80deea;--clr-lt-bg-15:#cd92d8;--clr-dk-bg-0:#c72929;--clr-dk-bg-1:#ad1457;--clr-dk-bg-2:#681b98;--clr-dk-bg-3:#4527a0;--clr-dk-bg-4:#293594;--clr-dk-bg-5:#1565c1;--clr-dk-bg-6:#0277bb;--clr-dk-bg-7:#00838f;--clr-dk-bg-8:#006b5f;--clr-dk-bg-9:#2f7f33;--clr-dk-bg-10:#54892f;--clr-dk-bg-11:#9e9e24;--clr-dk-bg-12:#f9a824;--clr-dk-bg-13:#ff9100;--clr-dk-bg-14:#f06c00;--clr-dk-bg-15:#d54215;--clr-lt-fg-0:var(--clr-lt-bg-0);--clr-lt-fg-1:var(--clr-lt-bg-1);--clr-lt-fg-2:var(--clr-lt-bg-2);--clr-lt-fg-3:var(--clr-lt-bg-3);--clr-lt-fg-4:var(--clr-lt-bg-4);--clr-lt-fg-5:var(--clr-lt-bg-5);--clr-lt-fg-6:var(--clr-lt-bg-6);--clr-lt-fg-7:var(--clr-lt-bg-7);--clr-lt-fg-8:var(--clr-lt-bg-8);--clr-lt-fg-9:var(--clr-lt-bg-9);--clr-lt-fg-10:var(--clr-lt-bg-10);--clr-lt-fg-11:var(--clr-lt-bg-11);--clr-lt-fg-12:var(--clr-lt-bg-12);--clr-lt-fg-13:var(--clr-lt-bg-13);--clr-lt-fg-14:var(--clr-lt-bg-14);--clr-lt-fg-15:var(--clr-lt-bg-15);--clr-dk-fg-0:var(--clr-dk-bg-0);--clr-dk-fg-1:var(--clr-dk-bg-1);--clr-dk-fg-2:var(--clr-dk-bg-2);--clr-dk-fg-3:var(--clr-dk-bg-3);--clr-dk-fg-4:var(--clr-dk-bg-4);--clr-dk-fg-5:var(--clr-dk-bg-5);--clr-dk-fg-6:var(--clr-dk-bg-6);--clr-dk-fg-7:var(--clr-dk-bg-7);--clr-dk-fg-8:var(--clr-dk-bg-8);--clr-dk-fg-9:var(--clr-dk-bg-9);--clr-dk-fg-10:var(--clr-dk-bg-10);--clr-dk-fg-11:var(--clr-dk-bg-11);--clr-dk-fg-12:var(--clr-dk-bg-12);--clr-dk-fg-13:var(--clr-dk-bg-13);--clr-dk-fg-14:var(--clr-dk-bg-14);--clr-dk-fg-15:var(--clr-dk-bg-15)}*{box-sizing:border-box;padding:0;margin:0;font-family:Roboto,Arial,sans-serif;text-rendering:optimizeLegibility;scrollbar-width:thin;scrollbar-color:var(--clr-scrollbar-thumb) var(--clr-scrollbar-track)}body,html{height:100%;width:100%;height:100dvh;width:100dvw;font-size:10pt;color:var(--clr-text-primary);overflow:hidden;background-color:var(--clr-body-background);box-shadow:inset 0 10rem var(--clr-header-stripe-bg)}tt{font-family:Roboto Mono,Courier,monospace}a{color:var(--clr-primary-accent);text-decoration:none}a:focus,a:hover{color:var(--clr-primary-accent-hover);text-decoration:underline}a.danger{color:var(--clr-danger-text)}a.danger:focus,a.danger:hover{color:var(--clr-danger-text-hover)}a.gray:focus,a.gray:hover{color:var(--clr-text-tertiary)}form{padding:.5rem .75rem;line-height:1.5}form,label{font-size:1.1rem}label{margin-right:auto}label.small{font-size:.95rem}label.large,label.small{color:var(--clr-primary-action)}label.large{font-size:1.1rem}label.invalid{color:var(--clr-danger-text)}img.avatar{width:100%;height:100%;border-radius:50%}img.avatar.self{padding:7%}button{display:inline-block;font-family:inherit;font-size:1.05rem;height:2.2rem;line-height:2.2rem;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;cursor:pointer;border:1px solid var(--clr-transparent);white-space:nowrap;padding-left:1.2rem;padding-right:1.2rem;border-radius:4px;box-shadow:0 1px 3px 0 var(--clr-shadow-button);text-transform:uppercase;min-width:5rem;margin:0 .35rem}button[disabled],html input[disabled]{cursor:default;opacity:.65;box-shadow:none;filter:grayscale(50%)}button.round{border-radius:50%;width:3rem;height:3rem;padding:0;margin:0;line-height:3.5rem;outline:none;box-shadow:0 2px .5rem 0 var(--clr-shadow-button);z-index:2}button.round.small{width:2rem;height:2rem;line-height:2rem;box-shadow:0 2px .35rem 0 var(--clr-shadow-button)}button:active:not([disabled]),button:hover:not([disabled]){color:var(--clr-bright)}button:active{box-shadow:inset 0 3px .5rem var(--clr-shadow-button-inset-active)}button:active.round.small{box-shadow:inset 0 2px .35rem var(--clr-shadow-button-inset-active)}button.primary{background-color:var(--clr-button-primary-bg);color:var(--clr-button-primary-text)}button.primary:active:not([disabled]),button.primary:hover:not([disabled]){background-color:var(--clr-button-primary-hover-bg)}button.secondary{background-color:var(--clr-button-secondary-bg);color:var(--clr-button-secondary-text)}button.secondary:active:not([disabled]),button.secondary:hover:not([disabled]){background-color:var(--clr-button-secondary-hover-bg)}button.outline{background-color:var(--clr-transparent);color:var(--clr-button-outline-text);border:1px solid var(--clr-button-outline-border);box-shadow:none}button.outline:active:not([disabled]),button.outline:hover:not([disabled]){color:var(--clr-button-outline-text);background-color:var(--clr-button-outline-hover-bg)}button.danger{background-color:var(--clr-button-danger-bg);color:var(--clr-button-danger-text)}button.danger:active:not([disabled]),button.danger:hover:not([disabled]){background-color:var(--clr-button-danger-hover-bg)}button.positive{background-color:var(--clr-button-positive-bg);color:var(--clr-button-positive-text)}button.positive:active:not([disabled]),button.positive:hover:not([disabled]){background-color:var(--clr-button-positive-hover-bg)}input,textarea{font-family:inherit;font-size:1.1rem;background:var(--clr-transparent);border:none;margin:.25rem 0;padding:0 .125rem;outline:none;color:var(--clr-input-text)}input[type=email],input[type=password],input[type=search],input[type=tel],input[type=text],textarea{height:2.5rem;border-bottom:1px solid var(--clr-input-border);box-shadow:0 1px 0 var(--clr-input-shadow);transition:all .1s ease-in-out,height 0s}input[type=email],input[type=password],input[type=tel],input[type=text],textarea{width:100%}input[type=email]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,textarea:focus{border-bottom:1px solid var(--clr-input-border-focus);box-shadow:0 1px 0 var(--clr-input-shadow-focus)}input[type=email].invalid,input[type=password].invalid,input[type=search].invalid,input[type=tel].invalid,input[type=text].invalid,textarea.invalid{border-bottom:1px solid var(--clr-input-invalid-border);box-shadow:0 1px 0 var(--clr-input-invalid-shadow)}input[type=email]::placeholder,input[type=password]::placeholder,input[type=search]::placeholder,input[type=tel]::placeholder,input[type=text]::placeholder,textarea::placeholder{color:var(--clr-input-placeholder-text);font-weight:lighter}input[type=password].with-icon-right,input[type=text].with-icon-right{margin-right:-2rem;padding-right:2rem}input[type=password].with-icon-left,input[type=text].with-icon-left{margin-left:-1.45rem;padding-left:1.75rem}textarea{resize:none;padding-top:.45rem}input[type=range]{width:90%}option{padding:0}datalist{display:flex;flex-direction:row;justify-content:space-between;width:100%}::-webkit-scrollbar{width:.6rem}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px var(--clr-shadow-scrollbar-track-webkit);box-shadow:inset 0 0 6px var(--clr-shadow-scrollbar-track-webkit);background-color:var(--clr-scrollbar-track)}::-webkit-scrollbar-thumb{background-color:var(--clr-scrollbar-thumb)}ul.menu{position:absolute;list-style:none;width:12rem;border-radius:.2rem;padding-top:.35rem;padding-bottom:.35rem;box-shadow:0 1px 6px var(--clr-shadow-dialog);background-color:var(--clr-bright);z-index:4}ul.menu>li{padding:.75rem .75rem .75rem 1.25rem;cursor:pointer}ul.menu>li:hover{background-color:var(--clr-menu-item-hover-bg)}ul.menu>li.separator{padding:0;margin:2px;height:1px}ul.menu>li.separator,ul.menu>li.separator:hover{background-color:var(--clr-border-light)}ul.menu>li.disabled{pointer-events:none;opacity:.6}.menuTrigger{position:absolute;right:.25rem;width:1.4rem;height:1.4rem;line-height:1.4rem;border-radius:.7rem;text-align:center;opacity:0;background-color:inherit;user-select:none}.menuTrigger a{color:var(--clr-text-secondary)}li .menuTrigger{top:.25rem}li:hover .menuTrigger{opacity:.9}li:hover .menuTrigger a{color:var(--clr-text-secondary)}div.alert-container{position:absolute;display:flex;padding:1rem;justify-content:center;align-items:center;width:100%;height:100%;overflow:hidden;background:var(--clr-alert-overlay-bg);z-index:3}div.alert{position:relative;background-color:var(--clr-bright);box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);padding:1rem;border-radius:.3rem;margin:auto 2rem;width:fit-content;height:min-content;min-width:16rem;max-width:24rem;max-height:40rem;overflow:hidden}div.alert-container .title{position:relative;color:var(--clr-primary-accent);font-size:1.2rem;font-weight:500;width:100%;padding:0 0 .35rem}div.alert-container .title.with-control{position:relative;display:flex;padding:.5rem .5rem 0;align-items:center;flex:none;justify-content:space-between}div.alert-container .content{position:relative;padding:.5rem 0}div.trusted-badge{margin:.25rem 0}.blue{color:var(--clr-primary-accent)!important}.lt-blue{color:var(--clr-lt-fg-1)!important}.orange{color:var(--clr-std-orange)!important}.verified-color{color:var(--clr-verified-accent)!important}.staff-color{color:var(--clr-staff-accent)!important}.danger-color{color:var(--clr-warning-accent)!important}.green{color:light-dark(#388e3c,#1a9a1d)}.white{color:var(--clr-bright)!important}.red{color:var(--clr-danger-text)!important}.badge-inv{color:var(--clr-badge-inv)!important}.gray{color:var(--clr-text-secondary)!important}.light-gray{color:var(--clr-text-placeholder)!important}.large{font-size:120%}.small{font-size:90%}.float-right{position:absolute;right:.5rem}.hr{display:block;width:100%;height:.45rem;min-height:.3rem;background-color:var(--clr-background-light-gray);box-shadow:inset 0 .25rem .25rem -.25rem var(--clr-shadow-hr-inset),inset 0 -.25rem .25rem -.25rem var(--clr-shadow-hr-inset)}.hr.thin{height:.015rem}.divider{display:inline-block;width:1px;margin:0 .25rem;border-left:1.5px groove var(--clr-border-muted)}.ellipsized{overflow-x:hidden;white-space:nowrap;text-overflow:ellipsis}.flat-button{display:flex;align-items:center;margin:.15rem .35rem;height:2em;line-height:2em;font-weight:400;text-align:center;vertical-align:middle;touch-action:manipulation;white-space:nowrap;text-transform:uppercase;background-color:var(--clr-bright);z-index:1}.flat-button:focus,.flat-button:hover{text-decoration:none}.flat-button.disabled,.flat-button.disabled:focus,.flat-button.disabled:hover{color:var(--clr-primary-accent);cursor:default;opacity:.75;filter:grayscale(75%)}.flat-button.faux{display:inline-block;height:1.4em;line-height:1.4em;text-transform:none;padding:0 .35rem;margin:.15rem;border:1px solid var(--clr-text-tertiary);border-radius:3px;background-color:var(--clr-background-extra-light-gray)}.action-button{display:block;position:absolute;color:var(--clr-text-secondary);font-size:1.8rem;background-color:var(--clr-background-off-white);border-radius:50%;width:3.25rem;height:3.25rem;min-width:unset;min-height:unset;padding:0;margin:0;outline:none;box-shadow:0 2px .5rem 0 var(--clr-shadow-button);transition:all .15s;z-index:2}.action-button:active:not([disabled]),.action-button:focus,.action-button:hover,.action-button:hover:not([disabled]){color:var(--clr-text-tertiary-activated);background-color:var(--clr-primary-action-hover)}.action-button:active{color:var(--clr-text-tertiary-activated);background-color:var(--clr-primary-action)}.action-button.hidden{width:1px;height:1px;font-size:1px;line-height:1px;right:2.625rem;bottom:2.625rem;opacity:0}.group-focus{outline:none}#mountPoint{height:100%;padding-top:1rem;padding-bottom:1rem}#noscript-message{position:relative;display:flex;flex-direction:column;max-width:30rem;overflow:hidden;margin-top:5rem;margin-left:auto;margin-right:auto;border-radius:.25rem;box-shadow:1px 2px .3rem var(--clr-shadow-gray-strong);background-color:var(--clr-bright)}#noscript-title{padding:1rem;font-size:120%;font-weight:bolder;background-color:var(--clr-primary-accent);color:var(--clr-primary-light-blue)}#noscript-content{padding:1rem}#app-container{position:relative;display:flex;height:100%;max-width:84rem;overflow:hidden;margin-left:auto;margin-right:auto;border-radius:.25rem;box-shadow:1px 2px .3rem var(--clr-shadow-gray-strong);background-color:var(--clr-bright)}#sidepanel{flex-grow:0;flex-shrink:0.3;width:24rem;min-width:18rem}#sidepanel,#topic-view{position:relative;display:flex;flex-direction:column;height:100%}#topic-view{overflow-x:hidden;width:100%}#info-view{position:relative;display:flex;flex-direction:column;flex-grow:0;flex-shrink:0.3;width:24rem;min-width:18rem;height:100%}.center-medium-text{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;font-size:1.4rem}.nodisplay{display:none!important}.quoted{margin-left:1rem}.space-right{margin-right:.25rem}.rounded-container{position:relative;background-color:var(--clr-background-off-white);border-radius:.1rem;padding:.25rem;margin:.25rem}div.in-place-edit,span.in-place-edit{display:inline-block;font-family:inherit;font-size:1rem;margin:.25rem .125rem 0;width:100%;vertical-align:baseline;border-bottom:1px dashed var(--clr-border-muted);cursor:pointer}.in-place-edit.short{display:inline-flex;align-items:center;font-size:1.1rem;height:2.5rem;line-height:2.25;white-space:nowrap}.in-place-edit.disabled{border-bottom:none;cursor:default;color:var(--clr-text-disabled)}.in-place-edit.placeholder{color:var(--clr-text-placeholder)}.in-place-edit span{display:inline-block}.in-place-edit.short span{white-space:nowrap;text-overflow:ellipsis;overflow-x:hidden;width:100%}.in-place-edit .material-icons{display:inline-block}.material-icons.invalid{color:var(--clr-error-text-muted)}textarea.in-place-edit{height:unset;font-size:unset}input.in-place-edit.invalid{color:var(--clr-error-text-muted)}table.permission-editor{width:100%}table.permission-editor td{margin:.35rem 0;font-size:1.1rem;vertical-align:middle}table.permission-editor td.checkbox{text-align:center;color:var(--clr-text-tertiary)}.permission-editor .material-icons{font-size:1.3rem;line-height:1.3rem}.material-icons.clickable{cursor:pointer;border-bottom:none}.clickable{border-bottom:1px dashed var(--clr-border-muted)}.clean-clickable,.clickable,.image-clickable{cursor:pointer}.panel-title{font-size:1.4rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-title.deleted{text-decoration:line-through}.caption-panel{flex:none;height:var(--caption-panel-height);white-space:nowrap;box-shadow:0 1px 2px var(--clr-shadow-gray-strong);overflow-x:hidden;z-index:1}.caption-panel,.dialog-buttons{display:flex;align-items:center;padding:.5rem}.dialog-buttons{justify-content:flex-end}.dialog-buttons button{margin:0 .5rem}.avatar-box{position:relative;flex-grow:0;flex-shrink:0}.bot-form{display:flex;flex-direction:column;overflow:hidden;min-width:8rem;line-height:2rem}.bot-form div{min-height:2rem;vertical-align:middle}.bot-form button{display:inline-block;margin:.15rem;background-color:var(--clr-blue-wash-light);color:var(--clr-primary-accent);font-size:inherit;text-transform:none;height:2rem;line-height:2rem}.bot-form>div>button{width:auto}.bot-form button:active,.bot-form button:focus,.bot-form button:hover{outline:0;color:var(--clr-dk-fg-5);background-color:var(--clr-primary-wash)}#side-caption-panel{background-color:var(--clr-primary-accent);color:var(--clr-primary-light-blue)}#side-caption-panel a{color:var(--clr-primary-light-blue);padding-left:.5rem;line-height:1}#side-caption-panel :hover{color:var(--clr-bright)}#sidepanel-title{margin-right:auto;margin-left:.5rem}#self-avatar{width:3rem;min-width:3rem;height:3rem;flex:none;border-radius:50%}#self-avatar.avatar-box{font-size:1.8rem}#settings-form ul{list-style:none}#settings-form li{vertical-align:middle}#settings-form label{display:inline-block;padding-left:.5rem}input#host-name{width:100%}input.search{text-indent:1.4rem}i.search{position:absolute;left:.6rem}.info-box{position:relative;display:none;overflow:hidden;padding:1rem 1.5rem .75rem .5rem}.info-box>span{line-height:1.35rem}.info-box .cancel{position:absolute;right:.25rem;top:.5rem}.info-box.error{display:flex;background-color:var(--clr-error-bg-light);border-bottom:1px solid var(--clr-error-border-light);color:var(--clr-error-text-dark)}.info-box.warning{display:flex;background-color:var(--clr-warning-bg-light);border-bottom:1px solid var(--clr-warning-border-light);color:var(--clr-warning-text-dark)}.info-box.info{display:flex;background-color:var(--clr-info-bg-light);border-bottom:1px solid var(--clr-info-border-light);color:var(--clr-info-text-dark)}.info-box .cancel .material-icons{font-size:1rem;color:var(--clr-text-secondary)}.info-box.error .cancel .material-icons{color:var(--clr-error-text-dark)}.info-box .icon{display:block;margin-right:.5rem}.info-box .icon .material-icons{font-size:1.5rem}.info-box.warning .icon .material-icons{color:var(--clr-warning-icon)}.info-box.error .icon .material-icons{color:var(--clr-error-icon)}.info-box.info .icon .material-icons{color:var(--clr-info-text-dark)}.flex-column{display:flex;flex-direction:column;height:100%;overflow-x:hidden}.flex-column.narrow{height:auto}.scrollable-panel{overflow-x:hidden;overflow-y:auto;margin-top:.25rem;margin-bottom:auto;height:100%;scroll-behavior:smooth}.contact-box{list-style:none;overflow-x:hidden}.contact-box>li{position:relative;display:flex;padding:.35rem .25rem .5rem .35rem;min-height:3.75rem;flex-grow:0;flex-shrink:0;background:linear-gradient(to right,var(--clr-transparent) 3.5rem,var(--clr-background-extra-light-gray) 1px,var(--clr-background-extra-light-gray) 100%) 0 100% /100% 1px no-repeat,var(--clr-bright);overflow-x:hidden;cursor:pointer}.contact-box.small>li{padding:.25rem .25rem .35rem .35rem;min-height:2.5rem}.contact-box>li:last-child{background:var(--clr-bright)}.contact-box>li:hover{background-color:var(--clr-background-blue-gray-50)}.contact-box>li.selected{background-color:var(--clr-background-blue-gray-100)}.contact-box>li.tpinned{border-right:1.5px solid var(--clr-secondary-accent);background-color:var(--clr-background-blue-gray-75)}.contact-box>li.action{min-height:2.5rem;border-bottom:none}.contact-box .text-box{overflow-x:hidden}.contact-box .contact-title{font-size:1.05rem;text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.contact-box .contact-title.deleted{opacity:.66;text-decoration:line-through;text-decoration-thickness:.5px}.contact-box .contact-comment{font-weight:lighter}.contact-box .contact-comment,.contact-box .contact-comment>span{text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.contact-box .contact-comment b{font-weight:bolder}.contact-box .contact-comment .material-icons{margin-bottom:.2rem;color:light-dark(#777,#666)}.contact-box .avatar-box{position:relative;margin-right:.35rem;width:3rem;min-width:3rem;height:3rem;min-height:3rem;font-size:1.8rem;overflow:hidden;padding:0}.contact-box .avatar{width:3rem;height:3rem;border-radius:50%}.contact-box.small .avatar-box{width:2rem;min-width:2rem;height:2rem;min-height:2rem;font-size:1.2rem}.contact-box.small .avatar{width:2rem;height:2rem}.avatar.deleted{opacity:.75;filter:grayscale(1)}.contact-box .avatar-box>.material-icons{display:flex;flex-direction:column;justify-content:space-around;font-size:2.4rem;line-height:3rem}.contact-box .avatar-box>.checkmark.material-icons{line-height:unset}.contact-box.small .avatar-box>.material-icons{font-size:1.6rem;line-height:2rem}.contact-box .text-box{display:flex;flex-direction:column;justify-content:space-around}.contact-box .text-box>div{display:flex;flex-direction:row;align-items:center}.contact-box .action-text{text-align:center;font-size:.95rem;line-height:2.5rem;margin:0 auto;cursor:pointer}img.channel{width:1.25rem;height:1.25rem;vertical-align:middle;margin-left:.3rem}.large img.channel{width:1.45rem;height:1.45rem;margin-left:.5rem;margin-bottom:.15rem}.avatar-box .online,.offline{position:absolute;width:.75rem;min-width:.75rem;height:.75rem;min-height:.75rem;flex-shrink:0;border-radius:50%;right:0;bottom:.1rem}.avatar-box .online{background-color:var(--clr-online)}.avatar-box .offline{background-color:var(--clr-offline)}.online.typing{animation:typing .5s infinite}@keyframes typing{0%,to{transform:translateX(0)}50%{transform:translateX(-.3rem)}}.contact-box .checkmark.material-icons{color:var(--clr-secondary-accent);overflow:visible;border:0 solid var(--clr-transparent);padding-left:.5px}.contact-box .checkmark.material-icons,.contact-box .deleted.material-icons{width:1.5rem;height:1.5rem;font-size:1.5rem;position:absolute;right:0;bottom:0;background-color:var(--clr-bright)}.contact-box .deleted.material-icons{color:var(--clr-text-tertiary)}#add-topic{position:absolute;right:1rem;bottom:1rem}.panel-form{display:flex;position:relative;flex-direction:column;padding:0}.panel-form-row{align-items:center;flex-shrink:0}.panel-form-column,.panel-form-row{display:flex;position:relative;padding:.5rem .75rem;line-height:1.5;flex-grow:0}.panel-form-column{flex-direction:column;overflow-x:clip}.panel-form-column>.panel-form-column,.panel-form-row>.panel-form-column{padding:0!important;flex-grow:1}.panel-form-column>.panel-form-row,.panel-form-row>.panel-form-row{padding:0!important}.panel-form-column>.group{margin-top:.25rem;margin-bottom:.25rem}.avatar-upload{position:relative;display:flex;flex-direction:column;flex-shrink:0;width:10rem;height:10.5rem;font-size:4.5rem;padding:0;margin:.25rem}.avatar-upload.read-only{height:auto}.avatar-upload .clear-avatar{position:absolute;font-size:1rem;top:0;right:0;opacity:0;background-image:radial-gradient(var(--clr-bright) 40%,var(--clr-transparent) 75%)}.avatar-upload:hover .clear-avatar{opacity:1}.avatar-upload .avatar-box{position:relative;width:10rem;height:10rem}.avatar-upload .avatar-box>.material-icons{position:relative;font-size:4rem;line-height:10rem;vertical-align:middle}.avatar-upload:after{content:".";display:block;height:0;clear:both;visibility:hidden}.avatar-upload .blank{text-align:center;vertical-align:middle;border:1px dashed var(--clr-text-tertiary);font-size:1rem;flex-shrink:0;color:var(--clr-text-tertiary);line-height:10rem}.avatar-upload .blank,.avatar-upload img.preview{width:10rem;height:10rem;overflow:hidden;border-radius:50%}.avatar-upload img.preview:before{position:absolute;content:" ";display:flex;font-size:.9rem;font-weight:lighter;color:var(--clr-text-primary);top:0;left:0;width:10rem;height:10rem;justify-content:center;background:50% no-repeat url(../img/broken_image.png);border-radius:50%}.avatar-upload .inputfile.hidden{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute}.avatar-upload .inputfile+label.round{display:flex;position:absolute;align-items:center;justify-content:center;cursor:pointer;width:3rem;height:3rem;line-height:3rem;border-radius:50%;box-shadow:0 1px 4px var(--clr-shadow-dialog);bottom:0;right:0;background-color:var(--clr-background-off-white);z-index:1}.avatar-upload .inputfile:focus+label.round{outline:none}.avatar-upload .inputfile+label:hover,.avatar-upload .inputfile:focus+label{background-color:var(--clr-primary-wash);color:var(--clr-primary-accent)}#topic-caption-panel{background-color:var(--clr-background-blue-gray-300)}#topic-caption-panel a{color:var(--clr-text-secondary);text-decoration:none}#topic-caption-panel :hover{color:var(--clr-dark)}#topic-caption-panel .avatar-box{position:relative;width:3rem;min-width:3rem;height:3rem;font-size:1.8rem;margin-right:.35rem}#topic-caption-panel .avatar-box>.material-icons{font-size:2.4rem;line-height:3rem}#topic-title-group{overflow-x:hidden}#hide-message-view{display:block;margin-right:.35rem}#topic-users{margin-left:auto;margin-right:1rem;width:min-content}#topic-users .avatar-box{display:inline-block;width:1.8rem;min-width:1.8rem;height:1.8rem;min-height:1.8rem;font-size:1rem;margin-right:.2rem}#topic-users .avatar-box>.material-icons{font-size:1.4rem;line-height:1.8rem}#topic-users>span{line-height:2rem;vertical-align:top}.qr-code{align-self:center}#messages-container{position:relative;overflow-y:hidden;height:100%}#messages-container:before{content:"";position:absolute;top:0;left:0;height:100%;width:100%;background-color:var(--clr-background-blue-gray-50);background-image:var(--wallpaper-url);background-repeat:var(--wallpaper-repeat);background-size:var(--wallpaper-size);background-position:var(--wallpaper-position);filter:blur(var(--wallpaper-blur)) invert(var(--wallpaper-invert)) brightness(var(--wallpaper-brightness));pointer-events:none;z-index:0}#messages-panel{position:relative;padding:.75rem;overflow-y:scroll;height:100%}#write-only-background{position:absolute;top:0;left:0;height:100%;width:100%;background-image:repeating-linear-gradient(45deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.5) .5rem,hsla(0,0%,100%,.8) 0,hsla(0,0%,100%,.8) 1rem)}#write-only-note{top:50%;transform:translate(-50%,-50%);height:auto;width:auto}#peer-messaging-disabled-note,#write-only-note{position:absolute;left:50%;background-color:var(--clr-bright);color:var(--clr-text-primary);line-height:2rem;text-align:center;padding:.75rem 1.25rem;border-radius:.5rem;box-shadow:0 1px .5px var(--clr-shadow-button-inset-active)}#peer-messaging-disabled-note{bottom:4.3rem;transform:translate(-50%);width:fit-content}#send-message-panel{display:flex;align-items:center;flex:none;padding:.4rem .4rem .4rem .6rem;background-color:var(--clr-background-blue-gray-50);z-index:2;min-height:4rem}#send-message-panel #writing-disabled{width:100%;text-align:center;font-size:1.2rem}#send-message-wrapper{background-color:var(--clr-background-blue-gray-50);box-shadow:0 -2px 3px -1px var(--clr-shadow-panel-divider);z-index:2}#sendMessage{overflow:hidden;overflow-wrap:break-word}#send-message-panel .material-icons{min-width:2rem;font-size:1.6rem}#send-message-panel .material-icons.secondary,.material-icons.disabled{color:var(--clr-text-tertiary)!important}#send-message-panel .material-icons.secondary:hover{color:var(--clr-primary-accent)!important}#send-message-input{overflow:hidden auto;min-height:2.5rem;max-height:6rem}.accept-invite-panel{background-color:var(--clr-background-blue-gray-50);box-shadow:0 -2px 3px -1px var(--clr-shadow-panel-divider);width:100%;z-index:1}.accept-invite-panel .title{font-size:1.2rem;padding:.75rem}.accept-invite-panel .footer{background-color:var(--clr-background-off-white);white-space:nowrap;padding-bottom:.35rem;text-align:center}.accept-invite-panel button{font-size:1rem;height:2em;line-height:2em;border:1px solid var(--clr-transparent);margin:.25rem;box-shadow:0 1px 2px 0 var(--clr-shadow-button)}#dummy-view{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background-color:var(--clr-cyan-50)}#dummy-view a{text-decoration:none;display:block;text-align:center}#image-preview{position:absolute;display:flex;flex-direction:column;top:0;left:0;width:100%;height:100%;z-index:2;background-color:var(--clr-overlay-white-strong)}#preview-caption-panel{display:flex;justify-content:space-between;background-color:var(--clr-background-blue-gray-50);box-shadow:0 1px 2px var(--clr-shadow-silver-subtle);line-height:2rem;flex-shrink:0;flex-grow:0;height:var(--caption-panel-height);padding:1rem .75rem 0;font-size:120%;z-index:3}#preview-caption-panel a{color:var(--clr-text-secondary);text-decoration:none}#preview-caption-panel a:hover{color:var(--clr-dark)}#image-preview-container{display:flex;justify-content:space-around;align-items:center;overflow:hidden;background-color:var(--clr-gray-medium-bg);width:100%;height:100%}#image-preview-footer{display:flex;justify-content:space-around;height:3.2rem;line-height:1.5rem;background-color:var(--clr-background-blue-gray-50);box-shadow:0 -2px 3px -1px var(--clr-shadow-panel-divider);flex-grow:0;flex-shrink:0;z-index:1}#image-preview-container .material-icons{font-size:6rem}#image-preview-container .doc-card{display:flex;flex-direction:column;overflow-x:hidden;background-color:var(--clr-std-ltgray);padding:1rem;border-radius:.5rem;max-width:30rem}.doc-card .avatar-box{width:10rem;height:10rem;font-size:4.5rem}.doc-card .avatar-box .material-icons{line-height:10rem}#video-container{position:absolute;display:flex;flex-direction:column;justify-content:space-between;top:0;left:0;width:100%;height:100%;background-color:var(--clr-overlay-white-strong);z-index:3}#video-container.minimized{left:auto;top:1rem;right:1rem;width:18rem;height:18rem;background-color:unset;user-select:none;cursor:grab;box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);border-radius:.5rem}#controls{position:absolute;display:flex;column-gap:1rem;align-items:center;align-self:center;justify-content:center;bottom:2.5rem;z-index:1}#controls.minimized{column-gap:.5rem;bottom:1.75rem}.incoming-call #controls{bottom:1rem}#controls button{position:relative;display:flex;align-items:center;justify-content:center;border-radius:50%;width:4rem;height:4rem;min-width:auto;box-shadow:0 3px 6px 0 var(--clr-shadow-button)}#controls.minimized button{width:2.75rem;height:2.75rem;box-shadow:0 2px 4px 0 var(--clr-shadow-button)}#controls button .material-icons{font-size:1.8rem}#controls.minimized button .material-icons{font-size:1.4rem}button.full-screen{position:absolute;top:2rem;left:2rem;z-index:1;width:2.5rem;height:2.5rem;border-radius:.5rem;padding:0;box-shadow:none;background-color:transparent;min-width:unset}.minimized button.full-screen{top:1rem;left:1rem;width:2rem;height:2rem}button.full-screen:hover:not([disabled]),button:active:not([disabled]){color:var(--clr-text-secondary)}button.full-screen .material-icons{font-size:x-large}.minimized button.full-screen .material-icons{font-size:large}#video-container-panel{position:relative;height:100%;width:100%}.call-party{background-color:var(--clr-background-extra-light-gray);border-radius:.5rem;border:2px solid var(--clr-border-light);overflow:hidden}.call-party:hover{border-color:var(--clr-primary-accent)}.minimized .call-party{border-width:1px}.call-party.peer{position:absolute;top:1rem;left:1rem;right:1rem;bottom:1rem;z-index:1}.minimized .call-party.peer{top:0;left:0;right:0;bottom:0}.call-party.self{position:absolute;right:.5rem;bottom:.5rem;width:10rem;height:10rem;z-index:2}.call-party.self[disabled]{display:none}video{width:100%;height:100%;object-fit:contain}.call-party.self video{transform:scaleX(-1)}.call-party[disabled] video{display:none}.caller-card{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column}.caller-card .avatar-box{width:10rem;height:10rem;font-size:6rem}.caller-card.pulse .lettertile,.caller-card.pulse img.avatar{animation:active-call 1.5s linear infinite}.caller-card .avatar-box .material-icons{font-size:6rem;line-height:1.6}.minimized .caller-card .avatar-box{width:6rem;height:6rem;font-size:3.6rem}.call-party .caller-name{max-width:12rem;padding:.15rem .5rem;border-radius:.35rem;z-index:1;text-shadow:0 0 1px var(--clr-bright);background-color:var(--clr-background-off-white);text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.call-party.self .caller-name.inactive{position:absolute;bottom:.25rem;right:.25rem}.caller-card .caller-name{font-size:larger;margin-top:.5rem}.caller-card .trusted-badge{display:inline-block}.call-party.peer .caller-name.inactive{position:absolute;font-size:larger;left:1rem;bottom:.5rem;margin:0 auto}.minimized .caller-name{padding:.1rem .35rem;border-radius:.25rem;font-weight:lighter}.incoming-call{background-color:var(--clr-bright);box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);border-radius:.3rem;margin:auto 2rem;width:fit-content;min-width:16rem;max-width:24rem}.incoming-call,.incoming-call .caller-card{position:relative;display:flex;flex-direction:column}.incoming-call .caller-card{top:auto;left:auto;width:100%;height:100%;padding:4rem 3.5rem 5.5rem;align-items:center;justify-content:center}.incoming-call .caller-name{padding:.15rem .5rem;border-radius:.35rem;z-index:1;text-shadow:0 0 1px var(--clr-bright);background-color:var(--clr-background-off-white);text-overflow:ellipsis;overflow-x:hidden;white-space:nowrap}.call-message{display:flex;flex-direction:row}.call-message .duration{font-weight:lighter}#go-to-latest{right:1.5rem;bottom:1rem}@keyframes active-call{0%{box-shadow:0 0 0 .1rem var(--clr-primary-accent-transparent-medium),0 0 0 .3rem var(--clr-primary-accent-transparent-medium),0 0 0 .5rem var(--clr-primary-accent-transparent-medium)}to{box-shadow:0 0 0 .4rem var(--clr-primary-accent-transparent-medium),0 0 0 2rem rgba(33,150,243,0),0 0 0 3rem rgba(33,150,243,0)}}.chat-box{list-style:none;padding:0 0 3.5rem;margin:0 .5rem;scroll-behavior:smooth}.chat-box.group{margin-left:-.4rem}.chat-box li{display:flex;margin:0;padding:0;align-items:flex-end}.chat-box .right{justify-content:flex-end}.bubble{position:relative;display:flex;max-width:36rem;min-width:9rem;height:auto;padding:.75rem .5rem;margin:0;text-align:left;color:var(--clr-bubble-text);border-radius:.5rem;transition:background-color .5s ease-out;transition-delay:.3s;filter:drop-shadow(.5px .5px .7px var(--clr-shadow-bubble-drop))}.chat-box li.single{margin-top:.25rem;margin-bottom:.75rem}.chat-box li.first{margin-top:.25rem;margin-bottom:.15rem}.chat-box li.middle{margin-top:.15rem;margin-bottom:.15rem}.chat-box li.last{margin-top:.15rem;margin-bottom:.75rem}.left .bubble{background-color:var(--clr-bubble-left-bg);margin-right:.5rem}.left.flash .bubble{background-color:var(--clr-bubble-left-bg-flash)}.left .bubble.tip{border-bottom-left-radius:0}.right .bubble{background-color:var(--clr-bubble-right-bg);margin-left:1.75rem}.right.flash .bubble{background-color:var(--clr-bubble-right-bg-flash)}.right .bubble.tip{border-bottom-right-radius:0}.chat-box .meta{justify-content:center;margin-top:.5rem;margin-bottom:.5rem}.chat-box .meta .bubble{color:var(--clr-bubble-meta-text);min-width:unset}.meta .bubble.deleted{background-color:var(--clr-bubble-meta-deleted-bg);padding:.75rem .75rem .5rem}.meta .bubble.date{font-size:smaller;padding:.5rem;background-color:var(--clr-bubble-meta-date-bg);text-transform:uppercase;user-select:none}.left .bubble.tip:before{content:"";position:absolute;width:.85rem;height:.85rem;left:-.8rem;bottom:0;background-color:var(--clr-bubble-left-bg);clip-path:polygon(100% 0,0 110%,100% 110%);-webkit-clip-path:polygon(100% 0,0 110%,100% 110%);border-bottom-left-radius:.3rem;transition:background-color .5s ease-out;transition-delay:.3s}.left.flash .bubble.tip:before{background-color:var(--clr-bubble-left-bg-flash)}.right .bubble.tip:before{content:"";position:absolute;width:.85rem;height:.85rem;left:99.8%;bottom:0;background-color:var(--clr-bubble-right-bg);clip-path:polygon(0 0,100% 110%,0 110%);-webkit-clip-path:polygon(0 0,100% 110%,0 110%);border-bottom-right-radius:.3rem;transition:background-color .5s ease-out;transition-delay:.3s}.right.flash .bubble.tip:before{background-color:var(--clr-bubble-right-bg-flash)}.chat-box .avatar-box{position:relative;width:1.4rem;min-width:1.4rem;height:1.4rem;min-height:1.4rem;font-size:.8rem;margin-bottom:.8rem;margin-right:.8rem}.bubble div.content-meta{width:100%}.bubble div.message-content{position:relative;margin:0;width:100%;max-width:36rem;overflow-wrap:anywhere;padding:0 .75rem;font-size:var(--message-text-size)}.bubble div.message-content.emoji-1{font-size:300%}.bubble div.message-content.emoji-2{font-size:241%}.bubble div.message-content.emoji-3{font-size:193%}.bubble div.message-content.emoji-4{font-size:155%}.bubble div.message-content.emoji-5{font-size:125%}.bubble div.message-content:after{content:".";display:block;height:0;clear:both;visibility:hidden}.chat-box .timestamp-padding{display:inline-block;width:4rem;height:0}.chat-box .timestamp{position:relative;font-size:80%;color:var(--clr-bubble-timestamp-text);top:.35rem;float:right;white-space:nowrap;user-select:none}.chat-box .author{font-size:80%;color:var(--clr-bubble-author-text);max-width:12em;text-overflow:ellipsis;white-space:nowrap;overflow-x:hidden}.image-preview,.inline-image{position:relative;overflow:hidden;border-radius:.1rem}.inline-image{max-width:36rem;max-height:24rem}.inline-image>.rounded-container{position:relative;margin:.25rem auto;bottom:2rem;border-left:.25rem solid var(--clr-transparent);border-right:.25rem solid var(--clr-transparent)}img.image-preview:before,img.inline-image:before{position:absolute;display:flex;font-size:.9rem;font-weight:lighter;color:var(--clr-text-primary);top:0;left:0;width:100%;height:100%;justify-content:center;background:center no-repeat var(--clr-border-light) url(../img/broken_image.png)}img.inline-image:before{content:attr(alt);background-size:3rem 3rem}img.image-preview:before{content:" ";background-size:10rem 10rem}.inline-image.video>img.inline-image:before,img.image-preview.video:before{background:center no-repeat var(--clr-border-light) url(../img/broken_video.png)}.inline-image.video>img.inline-image:before{background-size:3rem 3rem}.inline-video{display:flex;position:relative;align-items:center;justify-content:center}.inline-video>img.inline-image:before{background:var(--clr-border-light)}.inline-video .duration{padding:.25rem .5rem;color:var(--clr-toast-bg);background-color:hsla(0,0%,100%,.5);position:absolute;bottom:.25rem;left:.25rem;font-size:80%;border-radius:.3rem}.inline-video .play-control{display:flex;position:absolute;align-items:center;justify-content:center;width:4rem;height:4rem;background-color:rgba(0,0,0,.4);border-radius:50%;pointer-events:none;cursor:pointer}.attachment{display:flex}.attachment:last-of-type{margin-bottom:-.45rem}#info-caption-panel{background-color:var(--clr-background-blue-gray-300)}#info-caption-panel a{color:var(--clr-text-secondary);line-height:1;text-decoration:none}#info-caption-panel :hover{color:var(--clr-dark)}#info-title{margin-right:auto}#group-manager{position:relative;display:flex;flex-direction:column;height:100%;overflow-y:hidden}#group-manager-buttons{display:flex;background-color:var(--clr-background-blue-gray-50);box-shadow:0 -1px var(--clr-shadow-panel-divider);z-index:2;justify-content:space-around;padding:.4rem;height:4rem;border-left:1px solid var(--clr-border-light)}ul.tabbar{display:flex;flex-grow:0;flex-shrink:0;background:var(--clr-tabbar-bg);list-style:none;margin:0;width:100%;overflow:hidden;padding:0 0 0 1rem}ul.tabbar>li{position:relative;height:2.4rem;box-shadow:inset 0 -2px 2.5px -1px var(--clr-shadow-button)}ul.tabbar li.active{background:var(--clr-bright)}ul.tabbar li:after{height:.1rem;width:100%;content:"";bottom:0;left:0;position:absolute;background:var(--clr-tabbar-inactive-border)}ul.tabbar li.active:after{height:.15rem;content:"";bottom:0;left:0;position:absolute;background:var(--clr-tabbar-active-border);animation:tabbar-border-expand .2s cubic-bezier(.4,0,.4,1) 0s alternate forwards}@keyframes tabbar-border-expand{0%{opacity:0;width:0}to{opacity:1;width:100%}}ul.tabbar>li>a{position:relative;padding-left:1rem;padding-right:1rem;text-align:center;line-height:2.4rem;font-weight:400;font-size:1.3rem;font-variant:small-caps;text-decoration:none;color:var(--clr-tabbar-inactive-text);overflow:hidden}ul.tabbar li.active>a{color:var(--clr-tabbar-active-text)}.unread{display:inline-block;font-size:.75rem;font-weight:bolder;background-color:var(--clr-secondary-accent);color:var(--clr-bright);border-radius:50%;width:1.35rem;height:1.35rem;margin-left:.5rem;line-height:1.45rem;text-align:center;vertical-align:middle}.material-icons.as-badge{padding-left:.2rem;font-size:1.15rem;color:var(--clr-chip-remove-icon-bg)}.badge{font-family:Roboto Mono,Courier,monospace,sans-serif;font-size:.8rem;border:1px solid var(--clr-badge-default-border);background-color:var(--clr-badge-default-bg);color:var(--clr-badge-default-text);padding:.05rem .25rem;margin:.05rem .1rem;border-radius:.2rem;display:inline-block;align-self:flex-start}.badge.green{border-color:var(--clr-badge-green-border);background-color:var(--clr-badge-green-bg);color:var(--clr-badge-green-text)}.badge.yellow{border-color:var(--clr-badge-yellow-border);background-color:var(--clr-badge-yellow-bg);color:var(--clr-badge-yellow-text)}.badge.blue{border-color:var(--clr-badge-blue-border);background-color:var(--clr-badge-blue-bg);color:var(--clr-badge-blue-text)}.badge.red{border-color:var(--clr-badge-red-border);background-color:var(--clr-badge-red-bg);color:var(--clr-badge-red-text)}.badge.magenta{border-color:var(--clr-badge-magenta-border);background-color:var(--clr-badge-magenta-bg);color:var(--clr-badge-magenta-text)}.lettertile{width:100%;padding-bottom:100%;border-radius:50%;user-select:none}.lettertile>div{position:absolute;display:flex;flex-shrink:0;flex-grow:0;top:0;bottom:0;left:0;right:0;text-transform:uppercase;align-items:center;justify-content:center;text-align:center;border-radius:50%;line-height:1;padding-top:.1em;color:var(--clr-lettertile-default-text)}.lettertile:hover{color:var(--clr-lettertile-hover-text)}.lettertile.disabled{opacity:.5}.lt-bg-0{background-color:var(--clr-lt-bg-0)}.lt-bg-1{background-color:var(--clr-lt-bg-1)}.lt-bg-2{background-color:var(--clr-lt-bg-2)}.lt-bg-3{background-color:var(--clr-lt-bg-3)}.lt-bg-4{background-color:var(--clr-lt-bg-4)}.lt-bg-5{background-color:var(--clr-lt-bg-5)}.lt-bg-6{background-color:var(--clr-lt-bg-6)}.lt-bg-7{background-color:var(--clr-lt-bg-7)}.lt-bg-8{background-color:var(--clr-lt-bg-8)}.lt-bg-9{background-color:var(--clr-lt-bg-9)}.lt-bg-10{background-color:var(--clr-lt-bg-10)}.lt-bg-11{background-color:var(--clr-lt-bg-11)}.lt-bg-12{background-color:var(--clr-lt-bg-12)}.lt-bg-13{background-color:var(--clr-lt-bg-13)}.lt-bg-14{background-color:var(--clr-lt-bg-14)}.lt-bg-15{background-color:var(--clr-lt-bg-15)}.dk-bg-0{background-color:var(--clr-dk-bg-0)}.dk-bg-1{background-color:var(--clr-dk-bg-1)}.dk-bg-2{background-color:var(--clr-dk-bg-2)}.dk-bg-3{background-color:var(--clr-dk-bg-3)}.dk-bg-4{background-color:var(--clr-dk-bg-4)}.dk-bg-5{background-color:var(--clr-dk-bg-5)}.dk-bg-6{background-color:var(--clr-dk-bg-6)}.dk-bg-7{background-color:var(--clr-dk-bg-7)}.dk-bg-8{background-color:var(--clr-dk-bg-8)}.dk-bg-9{background-color:var(--clr-dk-bg-9)}.dk-bg-10{background-color:var(--clr-dk-bg-10)}.dk-bg-11{background-color:var(--clr-dk-bg-11)}.dk-bg-12{background-color:var(--clr-dk-bg-12)}.dk-bg-13{background-color:var(--clr-dk-bg-13)}.dk-bg-14{background-color:var(--clr-dk-bg-14)}.dk-bg-15{background-color:var(--clr-dk-bg-15)}.lt-fg-0{color:var(--clr-lt-fg-0)!important}.lt-fg-1{color:var(--clr-lt-fg-1)!important}.lt-fg-2{color:var(--clr-lt-fg-2)!important}.lt-fg-3{color:var(--clr-lt-fg-3)!important}.lt-fg-4{color:var(--clr-lt-fg-4)!important}.lt-fg-5{color:var(--clr-lt-fg-5)!important}.lt-fg-6{color:var(--clr-lt-fg-6)!important}.lt-fg-7{color:var(--clr-lt-fg-7)!important}.lt-fg-8{color:var(--clr-lt-fg-8)!important}.lt-fg-9{color:var(--clr-lt-fg-9)!important}.lt-fg-10{color:var(--clr-lt-fg-10)!important}.lt-fg-11{color:var(--clr-lt-fg-11)!important}.lt-fg-12{color:var(--clr-lt-fg-12)!important}.lt-fg-13{color:var(--clr-lt-fg-13)!important}.lt-fg-14{color:var(--clr-lt-fg-14)!important}.lt-fg-15{color:var(--clr-lt-fg-15)!important}.dk-fg-0{color:var(--clr-dk-fg-0)!important}.dk-fg-1{color:var(--clr-dk-fg-1)!important}.dk-fg-2{color:var(--clr-dk-fg-2)!important}.dk-fg-3{color:var(--clr-dk-fg-3)!important}.dk-fg-4{color:var(--clr-dk-fg-4)!important}.dk-fg-5{color:var(--clr-dk-fg-5)!important}.dk-fg-6{color:var(--clr-dk-fg-6)!important}.dk-fg-7{color:var(--clr-dk-fg-7)!important}.dk-fg-8{color:var(--clr-dk-fg-8)!important}.dk-fg-9{color:var(--clr-dk-fg-9)!important}.dk-fg-10{color:var(--clr-dk-fg-10)!important}.dk-fg-11{color:var(--clr-dk-fg-11)!important}.dk-fg-12{color:var(--clr-dk-fg-12)!important}.dk-fg-13{color:var(--clr-dk-fg-13)!important}.dk-fg-14{color:var(--clr-dk-fg-14)!important}.dk-fg-15{color:var(--clr-dk-fg-15)!important}.material-icons{font-size:1.4rem;line-height:1;vertical-align:middle;text-align:center;user-select:none}.material-icons.small{font-size:1rem}.material-icons.medium{font-size:1.2rem}.material-icons.large{font-size:1.6rem}.material-icons.big{font-size:2.2rem}.material-icons.x-big{font-size:3rem}.material-icons.huge{font-size:4rem}.composed-material{display:inline-block;position:relative}.composed-material .second{position:absolute;font-size:85%;top:7%;left:39%;font-weight:700}.composed-material .second-small{position:absolute;font-size:62%;top:14%;left:30%;font-weight:700}.material-icons.outline{position:relative;text-shadow:-1px 1px var(--clr-bright),1px 1px var(--clr-bright),1px -1px var(--clr-bright),-1px -1px var(--clr-bright)}#self-avatar .material-icons{font-size:2.4rem;line-height:3rem}.avatar-box .material-icons{color:var(--clr-lettertile-default-text);border-radius:50%;width:inherit;height:inherit}.chip-input{display:flex;flex-wrap:wrap;flex-grow:1;cursor:text;font-size:1.1rem;font-weight:400;background:var(--clr-transparent);border-bottom:1px solid var(--clr-input-border);box-shadow:0 1px 0 var(--clr-input-shadow);transition:all .1s ease-in-out;max-height:10rem;min-height:4rem;overflow-y:scroll;margin:.25rem 0;outline:none;color:var(--clr-input-text);align-items:center;justify-content:flex-start;text-align:center}.chip-input.focused{border-bottom:1px solid var(--clr-input-border-focus);box-shadow:0 1px 0 var(--clr-input-shadow-focus)}.chip-input>input[type=text]{display:inline-block;width:auto;border:none;box-shadow:none;min-width:4rem;flex:1 0 auto}.chip,.chip-input>input[type=text]{line-height:1.8;height:1.8rem;margin:.125rem}.chip{display:flex;flex:0 0 auto;align-items:center;border-radius:.9rem;background-color:var(--clr-chip-bg);font-size:90%;max-width:12rem;overflow:hidden}.chip,.chip>span{white-space:nowrap;text-overflow:ellipsis}.chip>span{overflow-x:hidden}.chip.invalid{color:var(--clr-chip-invalid-text);background-color:var(--clr-chip-invalid-bg)}.chip>a{display:inline-block;color:var(--clr-chip-remove-icon-text);background-color:var(--clr-chip-remove-icon-bg);border-radius:50%;margin:.3rem;width:1.175rem;min-width:1.175rem;height:1.175rem;line-height:1.15;text-decoration:none}.chip>a:focus,.chip>a:hover{text-decoration:none;color:var(--clr-chip-remove-icon-hover-text);background-color:var(--clr-chip-remove-icon-hover-bg)}.chip .avatar-box{position:relative;width:1.8rem;min-width:1.8rem;height:1.8rem;min-height:1.8rem;font-size:1rem;margin-right:.2rem}.chip .avatar-box .material-icons{font-size:1.4rem;line-height:1.8rem}.chip .spacer{display:inline-block;margin:.3rem;width:.25rem;height:1.175rem}.load-spinner-box{--size-small:2.5rem;--size-large:4rem;position:absolute;box-shadow:.1rem .1rem .15rem 1px var(--clr-shadow-button);border-radius:50%;padding:.25rem;width:var(--size-small);height:var(--size-small);left:0;right:0;top:5rem;margin-left:auto;margin-right:auto;background-color:var(--clr-bright);z-index:2}.load-spinner-box.large{width:var(--size-large);height:var(--size-large)}.load-spinner-box.clear{box-shadow:.1rem .1rem .15rem 1px var(--clr-shadow-button-inset-active);background-color:hsla(0,0%,100%,.5)}.load-spinner-box.centered{top:calc(var(--size-small)/2 - .25rem)}.load-spinner-box.large.centered{top:calc(var(--size-large)/2 - .25rem)}.loader-spinner{border-top:.35rem solid var(--clr-spinner-track);border-radius:50%;border:.35rem solid var(--clr-spinner-track);border-top-color:var(--clr-spinner-active);width:2rem;height:2rem;animation:spin 1.5s linear infinite}.load-spinner-box.large .loader-spinner{width:3.5rem;height:3.5rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.uploader{display:flex}.uploader>div{position:relative;height:.6rem;padding:.15rem;margin:.35rem;width:6rem;line-height:0;border-radius:.1rem;background-color:var(--clr-background-blue-gray-100)}.uploader>div>span{display:inline-block;height:.3rem;background-color:var(--clr-primary-action);border-radius:.08rem}.highlight{color:var(--clr-highlight-text);font-weight:bolder}.highlight .preview{color:var(--clr-highlight-preview-text);font-weight:inherit}.cropper{height:21rem;margin:1rem auto auto;align-self:center;transform:translateZ(0)}.cropper,.cropper .bounding-box{position:relative;width:18rem;border-radius:.25rem}.cropper .bounding-box{height:18rem;overflow:hidden;z-index:1;border:2px solid var(--clr-cropper-bounding-box-border);box-shadow:1px 1px 3px var(--clr-shadow-cropper-gray);background-color:var(--clr-cropper-bounding-box-bg)}.cropper .preview{position:absolute;max-height:none;max-width:none;z-index:-1}.cropper .cutout{position:absolute;width:17.8rem;height:17.8rem;border:1px dashed var(--clr-cropper-cutout-border);margin:auto;top:0;bottom:0;right:0;left:0;box-shadow:0 0 150rem 150rem var(--clr-cropper-cutout-shadow);z-index:0}.cropper .cutout.circle{border-radius:50%}.cropper .overlay{position:absolute;cursor:move;touch-action:none;z-index:1}.cropper .zoom-wrapper{height:2rem;width:80%;margin:1rem auto;text-align:center}.cropper .zoom{box-shadow:none;pointer-events:none;z-index:2}.cropper .zoom:focus{outline:none}.reply-quote{position:relative;padding:.15rem .5rem .25rem;border-left:.25rem solid var(--clr-reply-quote-border);line-height:1.5em;font-weight:lighter;border-radius:.25rem;color:var(--clr-reply-quote-text);cursor:pointer}.chat-box .bubble .reply-quote{margin:.15rem -.75rem .3rem}.chat-box .bubble .reply-quote:first-child{margin-top:-.25rem}.chat-box .left .reply-quote{background-color:var(--clr-reply-quote-left-bg)}.chat-box .right .reply-quote{background-color:var(--clr-reply-quote-right-bg)}.reply-quote .inline-image{vertical-align:middle;margin-bottom:.1rem}.reply-quote img.inline-image:before{content:""}#reply-quote-preview{display:flex;align-items:center}#reply-quote-preview .reply-quote{width:100%;background-color:var(--clr-reply-quote-preview-bg);margin:.35rem .5rem 0 0;cursor:auto}#reply-quote-preview .cancel{min-width:2.4rem;text-align:center}#reply-quote-preview .inline-image{background-color:var(--clr-border-light)}#reply-quote-preview img.inline-image:before{content:""}#send-message-panel #reply-quote-preview{width:100%}#send-message-panel #reply-quote-preview .reply-quote{margin-bottom:.35rem}.forwarding-quote{font-size:200%;line-height:200%}.mention{font-weight:500}.forward-dialog{position:relative;overflow:hidden;background-color:var(--clr-bright);box-shadow:.15rem .15rem 1.5rem var(--clr-shadow-dialog);padding:.5rem;border-radius:.3rem;margin:auto 1rem;width:24rem;height:80%}.forward-dialog .scrollable-panel{height:80%}.audio{display:flex;margin-left:auto;align-items:center;flex:none;background-color:var(--clr-audio-bg);height:3rem;border-radius:1.5rem}.audio canvas{width:14rem;height:2.6rem;margin-right:2rem}.audio canvas.playback{margin-right:0}.audio .duration{font-size:large}.audio-player{display:flex;align-items:center}.audio-player .material-icons.large{font-size:2.4rem;color:var(--clr-audio-icon)}.audio-player .material-icons.disabled{color:var(--clr-audio-icon-disabled);cursor:default}.audio-player .playback{width:14rem;height:2.6rem}.audio-player canvas.playback{display:block}.audio-player div.playback{display:flex;align-items:center;justify-content:center;color:var(--clr-audio-icon);font-size:small}.audio-player .timer{font-size:smaller;color:var(--clr-audio-timer-text)}#pinned-wrapper{margin-right:.5rem}#pinned-wrapper,.pinned{position:relative;display:flex;align-items:center;height:100%}.pinned{padding:.15rem .5rem .25rem;background-color:var(--clr-background-off-white);background-position:50%;font-weight:lighter;border-radius:0 .25rem .25rem 0;color:var(--clr-text-primary);width:24rem;min-width:0;cursor:pointer;transition:background .4s}.pinned>p{overflow-x:hidden;text-overflow:ellipsis;white-space:nowrap}.pinned:hover{background-color:var(--clr-bright)}.pinned:active{background-color:var(--clr-blue-wash-medium);transition:background 0s}.pinned-scroll{position:relative;display:flex;flex-direction:column;align-items:center;border-radius:.25rem 0 0 .25rem;background-color:var(--clr-background-extra-light-gray);justify-content:space-evenly;height:100%;padding:.2rem;margin-left:.35rem;user-select:none}.pinned-scroll .dot{width:.3rem;height:.3rem;border-radius:50%;background-color:var(--clr-text-tertiary);user-select:none}.pinned-scroll .adot{width:.45rem;height:.45rem;border-radius:50%;background-color:var(--clr-light-blue-accent);user-select:none}#pinned-wrapper:hover .menuTrigger{opacity:.9}#pinned-wrapper:hover .menuTrigger a{color:var(--clr-text-secondary)}.pinned-menu{position:absolute;display:flex;flex-direction:column;background-color:var(--clr-pinned-menu-bg);border-radius:0 .25rem .25rem 0;justify-content:space-evenly;top:0;bottom:0;right:0}.pinned-menu .menuTrigger{position:relative;right:0}.contact-card{position:relative;background-color:var(--clr-background-off-white);border-radius:.5rem;display:flex;flex-direction:column;min-width:14rem}.contact-card .avatar-box{position:relative;width:1.8rem;height:1.8rem;font-size:1rem;margin-right:.75rem;margin-bottom:0}.contact-card .contact-body{align-items:center;background-color:var(--clr-background-blue-gray-50);display:flex;padding:.75rem;border-radius:.5rem .5rem 0 0;border-bottom:none}.contact-card .contact-body .name-box{display:flex;flex-direction:column;overflow:hidden}.contact-card .contact-body .name-box .name{color:var(--clr-text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact-card .contact-body .name-box .org{color:var(--clr-text-secondary);font-size:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:300}.contact-card .contact-actions{display:flex;justify-content:space-evenly;align-items:center;padding:0 .5rem;border-radius:0 0 .5rem .5rem;border-top:none;background-color:var(--clr-bright)}.contact-card .contact-actions a{cursor:pointer}.contact-card .contact-actions .divider{height:1.8rem;opacity:.5}.drag-n-drop{display:flex;border:.15rem dashed var(--clr-drag-n-drop-border);border-radius:1rem;background-color:var(--clr-drag-n-drop-bg);position:absolute;top:1.5rem;bottom:1.5rem;left:1.5rem;right:1.5rem;z-index:3;justify-content:center;align-items:center;font-size:2rem;color:var(--clr-drag-n-drop-text);outline:.5rem solid var(--clr-drag-n-drop-outline)}.country-flag{display:inline-block;font-size:larger}.dial-code{white-space:nowrap;display:inline-block;cursor:pointer;vertical-align:middle;margin-bottom:.15rem}ul.phone-country-selector{list-style:none;overflow-x:hidden}ul.phone-country-selector>li{position:relative;font-weight:lighter;padding:.25rem .5rem .15rem;cursor:pointer;width:100%}ul.phone-country-selector>li:hover{background-color:var(--clr-background-blue-gray-50)}ul.phone-country-selector>li.selected{background-color:var(--clr-background-blue-gray-100)}ul.phone-country-selector .dial-code{position:absolute;right:.5rem;color:var(--clr-primary-action);font-weight:400}ul.phone-country-selector span{display:inline-block}ul.phone-country-selector span.country{text-overflow:ellipsis;overflow-x:hidden}.image-grid{position:relative;display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));gap:.35rem;padding:.25rem}.image-grid-cell{padding:0;margin:0;width:100%;height:7rem;overflow:hidden;border-radius:.25rem;border:1.5px solid transparent;cursor:pointer;box-shadow:0 0 .2rem var( --clr-shadow-hr-inset)}.image-grid-cell img{object-fit:cover}.image-grid-cell.selected{border:1.5px solid var(--clr-secondary-accent)}img.inverted{filter:invert(1)}div.toast{visibility:hidden;display:flex;align-items:center;justify-content:center;position:absolute;min-width:10rem;padding:.5rem 1rem;height:3rem;z-index:3;font-weight:lighter;color:var(--clr-toast-text);background-color:var(--clr-toast-bg);border-radius:.5rem;box-shadow:1px 2px .3rem var(--clr-shadow-gray-strong);bottom:2rem;left:50%;translate:-50%}div.toast.show{visibility:visible;animation:fadein .5s,fadeout .5s 2.5s}@keyframes fadein{0%{bottom:0;opacity:0}to{bottom:2rem;opacity:1}}@keyframes fadeout{0%{bottom:2rem;opacity:1}to{bottom:0;opacity:0}}@media (min-width:1440px){#app-container{max-width:114rem}}@media (max-width:960px){#mountPoint{padding:0}.pinned{width:16rem}}@media (max-width:640px){#app-container{width:100%;border-radius:0;box-shadow:none}#info-view,#sidepanel{width:100%}.forward-dialog{border-radius:.3rem .3rem 0 0;margin:auto 0 0;width:100%}.menuTrigger{opacity:.3}#send-message-input{transition-property:-tinode-mobile}#pinned-wrapper{height:3.5rem;margin:.25rem}.pinned{width:unset}#video-container.minimized{flex-direction:row;left:0;top:var(--caption-panel-height);width:100%;height:11rem;border-radius:unset;box-shadow:0 0 .5rem var(--clr-shadow-gray-strong)}#controls.minimized{flex-direction:column;row-gap:.5rem;bottom:auto;column-gap:unset;right:1rem}.minimized .call-party{border-radius:unset;box-shadow:unset}.call-party.self{bottom:8.5rem;border-radius:unset}} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index c2cb1c3c..2a0904bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tinode-webapp", - "version": "0.25.1", + "version": "0.25.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "tinode-webapp", - "version": "0.25.1", + "version": "0.25.3", "license": "Apache-2.0", "dependencies": { "firebase": "^11.0.0", @@ -15,78 +15,77 @@ "react": "^18.3.0", "react-dom": "^18.3.0", "react-intl": "^7.0.0", - "tinode-sdk": "^0.25.1", + "tinode-sdk": "^0.25.3", "webm-duration-fix": "^1.0.4" }, "devDependencies": { - "@babel/core": "^7.22.10", - "@babel/preset-env": "^7.22.10", - "@babel/preset-react": "^7.22.5", + "@babel/core": "^8.0.0", + "@babel/preset-env": "^8.0.0", + "@babel/preset-react": "^8.0.0", "@formatjs/cli": "^6.1.3", "babel-loader": "^10.0.0", - "babel-plugin-formatjs": "^10.5.3", + "babel-plugin-formatjs": "^11.0.0", "browserslist": "^4.21.10", - "copy-webpack-plugin": "^13.0.0", - "cssnano": "^7.0.6", + "copy-webpack-plugin": "^14.0.0", + "cssnano": "^8.0.0", "glob": "^13.0.0", "jest": "^30.0.0", "postcss": "^8.4.27", "postcss-cli": "^11.0.0", "webpack": "^5.88.2", - "webpack-cli": "^6.0.0" + "webpack-cli": "^7.0.0" } }, "node_modules/@babel/code-frame": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", - "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-8.0.0.tgz", + "integrity": "sha512-dYYg153EyN2Ekbqw2zAsbd6/JR+9N2SEoC7YV2GyyqMM7x9bLDTjBD6XBhSMLH0wtIVyJj03jWNriQhaN+eoCw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.27.1", - "js-tokens": "^4.0.0", - "picocolors": "^1.1.1" + "@babel/helper-validator-identifier": "^8.0.0", + "js-tokens": "^10.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/compat-data": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", - "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-8.0.0.tgz", + "integrity": "sha512-DOjnob/cXOUgDOozCDeq/aK2p5y8dUIVdf6tNhEV1HQRd6I8aQ4f4fbtHRVEvb6lP3BGomrKHiS8ICAASSVQSw==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/core": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.5.tgz", - "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-8.0.1.tgz", + "integrity": "sha512-5FgxM4dLQpMJHSiVATk8foW263dVHQHBVpXYiimNECVWG01f4nFyEbQixeT6Mwvg7TayREJ2gpKl3o2RoMdnqw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.4", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5", - "@jridgewell/remapping": "^2.3.5", + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helpers": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/template": "^8.0.0", + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0", + "@types/gensync": "^1.0.5", "convert-source-map": "^2.0.0", - "debug": "^4.1.0", + "empathic": "^2.0.1", "gensync": "^1.0.0-beta.2", + "import-meta-resolve": "^4.2.0", "json5": "^2.2.3", - "semver": "^6.3.1" + "obug": "^2.1.1", + "semver": "^7.7.3" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "funding": { "type": "opencollective", @@ -94,408 +93,415 @@ } }, "node_modules/@babel/generator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.5.tgz", - "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-8.0.0.tgz", + "integrity": "sha512-NT9NrVwJsbSV6Y2FSstWa71EETOnzrjkL5/wX3D2mYHtKM+qvqB1DvR4D0Setb/gDBsHzRICifwEWMO8CnTF6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.28.5", - "@babel/types": "^7.28.5", + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", + "@types/jsesc": "^2.5.0", "jsesc": "^3.0.2" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.27.3", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", - "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-8.0.0.tgz", + "integrity": "sha512-NSpMkMsvvZqzThJ0p1B02cbtA2ObEyfBvq950bmNkyxsxvcxwhvvCB036rKhlEnuBBo30bOrk13u3FzlKSoRrw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.3" + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", - "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-8.0.0.tgz", + "integrity": "sha512-JwculLABZvyPvyLBpwU/E/IbH2uM3mnxNtIJpxnIfb24y1PrdVxK5Dqjle4DpgqpGRnwgC7G8IkzPdSXZrO1Ew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.27.2", - "@babel/helper-validator-option": "^7.27.1", + "@babel/compat-data": "^8.0.0", + "@babel/helper-validator-option": "^8.0.0", "browserslist": "^4.24.0", - "lru-cache": "^5.1.1", - "semver": "^6.3.1" + "lru-cache": "^11.0.0", + "semver": "^7.7.3" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", - "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-8.0.1.tgz", + "integrity": "sha512-++t3ZktzlLmASAxIlxeXQK9Z2YwUafYGYcvGBFevqOqt16HozVHStUoQvWD09fzAZOb/uJGpUTBuGK41AJAuOA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-member-expression-to-functions": "^7.28.5", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/traverse": "^7.28.5", - "semver": "^6.3.1" + "@babel/helper-annotate-as-pure": "^8.0.0", + "@babel/helper-member-expression-to-functions": "^8.0.0", + "@babel/helper-optimise-call-expression": "^8.0.0", + "@babel/helper-replace-supers": "^8.0.1", + "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0", + "@babel/traverse": "^8.0.0", + "semver": "^7.7.3" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.28.5.tgz", - "integrity": "sha512-N1EhvLtHzOvj7QQOUCCS3NrPJP8c5W6ZXCHDn7Yialuy1iu4r5EmIYkXlKNqT99Ciw+W0mDqWoR6HWMZlFP3hw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-8.0.1.tgz", + "integrity": "sha512-PydTbcVTiIfVweHMeY1u3MslaD/ZzvnaTNhJp+7ghofelLWshF66Ckc/ZsjStfvRQIKQ4uVG0yEJucyDtyrWgw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-annotate-as-pure": "^8.0.0", "regexpu-core": "^6.3.1", - "semver": "^6.3.1" + "semver": "^7.7.3" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.5.tgz", - "integrity": "sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-1.0.0.tgz", + "integrity": "sha512-9jzVaTeZyXRDKTgUnNzcPQMO8y0ga3o+Z4fKjNet9Fcx7slgKa83qRbz0EwROSd6qO6CoEe/HQszqSPKb5lhkw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "debug": "^4.4.1", - "lodash.debounce": "^4.0.8", - "resolve": "^1.22.10" + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.0", + "lodash.debounce": "^4.0.8" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.4.0 || ^8.0.0" } }, "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-8.0.0.tgz", + "integrity": "sha512-lLozHOM6sWWlxNo8CYqHy4MBZeTvHXNgVPBfPOGsjPKUzHC2Az9QwB6gxdQmpwHl6GlQtbGgS+lj5887guDiLw==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", - "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-8.0.0.tgz", + "integrity": "sha512-xkXrMbtk87Gk7+oKBVmBc6EORg/Qwx++AHESldmHkpvG8wgccdhJJFwrzqlF382Fk8wfXhJHWE/g/43QvEGNPQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.5", - "@babel/types": "^7.28.5" + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", - "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-8.0.0.tgz", + "integrity": "sha512-NZ7mSS93o4ndX4KrbD7W8Sf3QT8Qe24PrnFyUcuOPDzK6faqDFKjY9RG7he7+I7FdiQ4llpnosFqzrXa+Vy3Ew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", - "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-8.0.1.tgz", + "integrity": "sha512-UgAhl1kqiW5ciE0yCXqqvnb4H2n3IELJ7lIIQRezwDPilPEZX5i+Rvbja9MFTkwUn2biEiSMeV31aUzR4Lwakw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-validator-identifier": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-module-imports": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.0", + "@babel/traverse": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", - "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-8.0.0.tgz", + "integrity": "sha512-3W6satvtPuCUkUx63S2jMoW9EQNYkADgs1HTfufmL7gCmAulHMKupA/12WNz4A0GMMFn/YnWWwqOT9IZrJHQjg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.27.1" + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", - "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-8.0.1.tgz", + "integrity": "sha512-3PKFgjTyPlhFhorfP+SjKQxLViIL++zWjFOO4hGriYU+Bsm983DxEM1JmDRJVWXV0O9npu+xXRqz7Pbd3mh70g==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" + }, + "peerDependencies": { + "@babel/core": "^8.0.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.27.1.tgz", - "integrity": "sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-8.0.1.tgz", + "integrity": "sha512-baAKuLEMmu6BCSY3tuiU7qglM1qOZt6F1SrFScA241oNqksxkxfEZEKztlGRmoVns9AQ5UgArH7RsUEjxWnzgQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-wrap-function": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-annotate-as-pure": "^8.0.0", + "@babel/helper-wrap-function": "^8.0.0", + "@babel/traverse": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", - "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-8.0.1.tgz", + "integrity": "sha512-B1SZADIcy3tmH8CmWvj4SHi/oAPom4UL3uknTc2QRNsPVLFk/sPnZvQL/8kj7Y5omvjMqie0vklvs6XM4OLW5Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.27.1", - "@babel/helper-optimise-call-expression": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-member-expression-to-functions": "^8.0.0", + "@babel/helper-optimise-call-expression": "^8.0.0", + "@babel/traverse": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", - "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-8.0.0.tgz", + "integrity": "sha512-xmCA9kP3IhySsqhzwIdWGlDN/1A4cCKNBO/uwZx/3YzmDoMePwno2Q5/Bq0q+tYaKbeF940YiKV/kaW8Mzvpjw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-8.0.0.tgz", + "integrity": "sha512-6mJgmFFFIIO82vvoLt9XtRC7/TkzXfts1t/SpRX4IHSzMgqoPYCWesVu1udUPUWioAE/2fcG6WuI8zrkE1gwrg==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-8.0.2.tgz", + "integrity": "sha512-9Fr9QeyCAyi1BR1jKZ6uYQ24EIhQUx5ReHfQU7drOE+TPOb+w11/dsqLkMOT2U29OdCT71XajrOT8xDc1C7orA==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", - "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-8.0.0.tgz", + "integrity": "sha512-U4Dybxh4WESWHt5XhBeExi4DrY0/DNK1aHpQbsrQXCUbFHuMweT0TpLEWKvaraV2Y6fS+ZXunsZ8zIuZIgvF2Q==", "dev": true, "license": "MIT", "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.28.3.tgz", - "integrity": "sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-8.0.0.tgz", + "integrity": "sha512-Qpm8+wi5xfDkBfollanwriCcKniFfBmMmaKB01GVM6VGzKXo1fdxosZp04qEr5HM+LKhwr3hG1yRy8+ORsficA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2" + "@babel/template": "^8.0.0", + "@babel/traverse": "^8.0.0", + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/helpers": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", - "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-8.0.0.tgz", + "integrity": "sha512-wfbi91pM3py96oIiJEz7qIpyXDytgr9zQC1HEWwlGNVRAEmItuU/0a41ZUKu1sJGyhhOIpc4t5vk4PYzt8wpsg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.4" + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/parser": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", - "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-8.0.0.tgz", + "integrity": "sha512-aLxAE+imI9bCcyaPrUDjBv3uSkWieifjLe0kuFOZF0zli0L6GCsTmsePnTr55adbIAgYz2zhN1vnFimCBUYcRQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.28.5" + "@babel/types": "^8.0.0" }, "bin": { "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.0.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.28.5.tgz", - "integrity": "sha512-87GDMS3tsmMSi/3bWOte1UblL+YUTFMV8SZPZ2eSEL17s74Cw/l63rR6NmGVKMYW2GYi85nE+/d6Hw5N0bEk2Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-8.0.1.tgz", + "integrity": "sha512-Ytgjjne4RnG3Oig7ik+NfY4ebRY30BPptVkkyu1f72eINJXRM3/bkU++tIc5aPvyLmo4KH20avq0xJ2o+9aEnw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.27.1.tgz", - "integrity": "sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-8.0.1.tgz", + "integrity": "sha512-X7pAMBhuKluA7UfwZNvKN0XVVu/AGeo84Z75eJl85rcb8J2aBzLK92btahM1X5h0oi0QIrbe0qIMA/0+4Buk7w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.27.1.tgz", - "integrity": "sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-8.0.1.tgz", + "integrity": "sha512-DJviKTxYfH0hFwnMiW4dnPyMGzS3Hrr4zUfXl1zwQ0QiGlGlNYklLoPSYEQr8S7nau0/K7NdQjTh0qbYuyFjCA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-rest-destructuring-rhs-array/-/plugin-bugfix-safari-rest-destructuring-rhs-array-8.0.1.tgz", + "integrity": "sha512-DmR/N+B9+4PbURFj4+zdnWj49/PFAnK2bn8+E4ZAmwn3J5QCxnbG7Ep6aRfz9M8Aw+rBro0kIJQycvzFpl4buQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0" + }, + "engines": { + "node": "^22.18.0 || >=24.11.0" + }, + "peerDependencies": { + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.27.1.tgz", - "integrity": "sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-8.0.1.tgz", + "integrity": "sha512-x8bi0LFVD2xkULjfNn+hCMg16yAFHAM9fS/ThSFeYBi+0MP9K6qcY2BZb4urUwC7PYtEy5wPe6TKjOEjXrCGFA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0", + "@babel/plugin-transform-optional-chaining": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.28.3.tgz", - "integrity": "sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-8.0.1.tgz", + "integrity": "sha512-P8+RN2n7ts2s1vnE+lXdHYf+dhnmcGSen/kWzBsVluT9Sey5AqmcRXYWlHqgQxaNlKTD5YMa1tf5z4d1v8W88w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.3" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" - } - }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.21.0-placeholder-for-preset-env.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", - "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-syntax-async-generators": { @@ -511,6 +517,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-async-generators/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-bigint": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", @@ -524,6 +540,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-bigint/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-class-properties": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", @@ -537,6 +563,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-class-properties/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-class-static-block": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", @@ -553,14 +589,24 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", - "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", + "node_modules/@babel/plugin-syntax-class-static-block/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.29.7.tgz", + "integrity": "sha512-zGYcYfq/WmZ4V+kBIXQon9dSSc8ircGZqw9ZaNhhGj9nZkeBu1jHLBDQqYYi5WA9uawvA2sIMbry2nCFhf5Djg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -569,20 +615,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", - "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", + "node_modules/@babel/plugin-syntax-import-attributes/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" } }, "node_modules/@babel/plugin-syntax-import-meta": { @@ -598,6 +638,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-import-meta/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", @@ -611,20 +661,30 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-json-strings/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", - "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-8.0.1.tgz", + "integrity": "sha512-n0jtCOxEovhU7METqSQjcZO9pX53nu9uNIjMS+hEt+Nt9jA7oOZoBIgbCxhhASmF6T6rPDGge5UAvh6Z4eFz/g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { @@ -640,6 +700,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", @@ -653,6 +723,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", @@ -666,6 +746,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-numeric-separator/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", @@ -679,6 +769,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-object-rest-spread/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", @@ -692,6 +792,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-optional-catch-binding/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", @@ -705,6 +815,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-optional-chaining/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", @@ -721,6 +841,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-private-property-in-object/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-top-level-await": { "version": "7.14.5", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", @@ -737,14 +867,24 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-syntax-top-level-await/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", - "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.29.7.tgz", + "integrity": "sha512-ngr+82Sh0xMz25TPCZi+nC2iTzjfCdWS2ONXTp/PtSCHCgaCNBpdMqgvJ2ccdLlClVZ7sisIgB914j/JFe+RZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -753,1115 +893,1100 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-unicode-sets-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", - "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "node_modules/@babel/plugin-syntax-typescript/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" - }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", - "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-8.0.1.tgz", + "integrity": "sha512-o/gr7kRlq3PKLLuYth4udOsrC7geBerti+QtwPeyxMOsEQO1d8kDHqk9r2PtMx2y9i8FG7tzyTerfv1yMLSMsQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.28.0.tgz", - "integrity": "sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-8.0.1.tgz", + "integrity": "sha512-kqnSMF1YHBzuiQrl68675i5Ma1oljvo+SJsNEZFZVBu5BUrVIZm9KId3ui2PdtLK2sv2zM8sJnjPDfgLxQlEqQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1", - "@babel/traverse": "^7.28.0" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-remap-async-to-generator": "^8.0.1", + "@babel/traverse": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.27.1.tgz", - "integrity": "sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-8.0.1.tgz", + "integrity": "sha512-e1jmmEU4p2Lx64sA1+EF8e8/RxPuegzbXcEbmFp5alDyLE+f2ViUpZ77bRWMXzihTwgVVmn/TOpqDbAuS5g1Ew==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-remap-async-to-generator": "^7.27.1" + "@babel/helper-module-imports": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-remap-async-to-generator": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", - "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-8.0.1.tgz", + "integrity": "sha512-0V97/gcf7LIgPieEiK1YT0eXa18XJFSLOTZjzEZhA9SJIqZhD/IwGUrCitBzXSmnGCP7hchwC6svHtJ/Eidcpg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", - "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-8.0.1.tgz", + "integrity": "sha512-HxiQvKsSCs2jOmMhjDrooHaZYOy6W8bqwXp/zjdgPjsNrda6tK9/CH3a/cVIeg6ge3hSS02ALqvqgIo4rTsuSg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.27.1.tgz", - "integrity": "sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-8.0.1.tgz", + "integrity": "sha512-tORnYiVhIHnKj90TgbSZXrO24f9oEpA6MgFxpIDSKKlHv7AzBIRhkMlYevanueLNYaQXqZWarfCgXM4bWTfNiw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.28.3.tgz", - "integrity": "sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-8.0.1.tgz", + "integrity": "sha512-NEVK+L0Le8h8tJ+IK0CGS5y9Yi1ZHxLj6M5PeanhMFuq9aSo0XI+Wtmbuyop6fTNukOm7ORNntf/kwid891vqQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", - "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-8.0.1.tgz", + "integrity": "sha512-phwyCES8kIMAdVOFw25ztmgAvkl2G+TvUv7azUYyrlR1Qoo3eLJC/MU3MGUKFZ4BWtsJ1NTJM1lKRLzKbswg7w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.3", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-globals": "^7.28.0", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1", - "@babel/traverse": "^7.28.4" + "@babel/helper-annotate-as-pure": "^8.0.0", + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helper-globals": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-replace-supers": "^8.0.1", + "@babel/traverse": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", - "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-8.0.1.tgz", + "integrity": "sha512-i4l3OGLO8DUDcwdnyraOvILbhqdUf4QgfzhVxSOSzRy49XKXrY7pwaSg9gDSKmhZfNPrEMciBSJSciQh/CjB1A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/template": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", - "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-8.0.1.tgz", + "integrity": "sha512-RtR8uLDl0QcCmqMNIkM8gmDeYZ3rS0ZH+sa+I6sfc09yFoqfp9AEPgBstq9KyfVb0lFCVSRFfJXCI70FIl5ccw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.28.5" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.27.1.tgz", - "integrity": "sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-8.0.1.tgz", + "integrity": "sha512-czOUoSaZljJ92yu+bYlXqb/UBN8K9daNCob/B6/7nthSvfGP6YhCnfqD64XWfyb2dN4ypxALNplApoJrsMd4fw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.27.1.tgz", - "integrity": "sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-8.0.1.tgz", + "integrity": "sha512-kNnVLkxFUEcTtCyB5PFVQ5Xoy88Bk1lU/ZgDu97CW8eNhRH2Wsiy8Sq5l5dFnwtIUYjzsXHU77jUy1W5AtGSIw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-8.0.1.tgz", + "integrity": "sha512-Tv43P47o6fuHgBL7HLHQg3WKXohW9CEUGjLtnCDW27yJLK0zKUdTTqREbZbycNHA83hewMjde5tF6ekrHu9bAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.27.1.tgz", - "integrity": "sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-8.0.1.tgz", + "integrity": "sha512-AS9GlgKc43tJNRu7yOvLaTko4qmdOb+8M69uNS8i421WLO20eVez7LdG5khKdi8E0LIQpYzzzdGIrdXWnO753g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-explicit-resource-management": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-7.28.0.tgz", - "integrity": "sha512-K8nhUcn3f6iB+P3gwCv/no7OdzOZQcKchW6N389V6PD8NUWKZHzndOd9sPDVbMoBsbmjMqlB4L9fm+fEFNVlwQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-explicit-resource-management/-/plugin-transform-explicit-resource-management-8.0.1.tgz", + "integrity": "sha512-VzDIYwBlLCpV6mJfloRdJm8HmYnMqs7O+bGha8yfg2kP7jAdxeCw6yZBVBeaKKQUThtSU52iy+3lB7DhYsbOBA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/plugin-transform-destructuring": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.28.5.tgz", - "integrity": "sha512-D4WIMaFtwa2NizOp+dnoFjRez/ClKiC2BqqImwKd1X28nqBtZEyCYJ2ozQrrzlxAFrcrjxo39S6khe9RNDlGzw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-8.0.1.tgz", + "integrity": "sha512-DsZvUUklUmDQ7d2vp+VjqgUWD51mGxhZZ1FPdPP9Hcj0vsgGUKX+zEBGp/vzB1O5PZUxWT/Euq5fu39M9dm9wg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.27.1.tgz", - "integrity": "sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-8.0.1.tgz", + "integrity": "sha512-bFzznm46bvWGaTYKle3iolbBJ+oPBfUjwCPesxlFE3SQ7DaY9EHf/8Y5ZzrodKJi8JDdcAyaVWaDUSVyhULh0g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", - "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-8.0.1.tgz", + "integrity": "sha512-rpeXtgELjpIBQH/+YmyFlD9timPEVCyqY+TNednzoeoTYvXSBEeUvYnYE+BK8rB8m6hHiNK7aL9QWKhGifEJCw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", - "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-8.0.1.tgz", + "integrity": "sha512-H1L/JfPf3CqmubuaiZaquXKQ8MRs4YWSsgRllkTviM8TafcCNnlvc4/fJZ3rXP8HmFM+/Bg+TlsPehUI9BtDFA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/traverse": "^7.27.1" + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.27.1.tgz", - "integrity": "sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-8.0.1.tgz", + "integrity": "sha512-Mowp8X0J6p7ZehLU82B5e65te2uuSeDHyxrEROwEAS2VKXNXssfw5ZMqhY7k9iXTsOv1Xs/49G3lDCj9Vvw8qQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", - "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-8.0.1.tgz", + "integrity": "sha512-ai7kfPRcfyUV1EszXoF1PvL3IuJoCuH08WSEPoRcJTWfZZ55VL/rcfvbVY16QLA3jjbzzSneQSoCtD3L6OyUjw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.28.5.tgz", - "integrity": "sha512-axUuqnUTBuXyHGcJEVVh9pORaN6wC5bYfE7FGzPiaWa3syib9m7g+/IT/4VgCOe2Upef43PHzeAvcrVek6QuuA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-8.0.1.tgz", + "integrity": "sha512-Emvtr5zkEGyCNAmt+qKD5EUh8G0RbxV9EZWrDdX0LuVy5tBq1B3fOIslvVF9aCJmpnwS/AvAT53b9LxAZyXlng==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", - "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-8.0.1.tgz", + "integrity": "sha512-3Axi9abnyGsm/hh6DsKPZ1Cr9fTtKqS7w0Ig5g12mU269YclpH8pV3xMln2vPLexXgUp6S6L+I06d9/YOLfRKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.27.1.tgz", - "integrity": "sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-8.0.1.tgz", + "integrity": "sha512-FDdhET8y1YFDNRuoynqSf23WTzbBBpbIB2oRrlFX7YYm9uWtFvJDSD1r/epBSjfPkOjeaaLgRW9xNnt3JGx46A==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", - "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-8.0.1.tgz", + "integrity": "sha512-PMuzulWrrzFNmY3lXSk/tV9NRb7y0eZZLJY4UEo2TKszroxvUZHAPPi+T9FDyrQhod+TQA+t+8/QYaaMpiEuhA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.28.5.tgz", - "integrity": "sha512-vn5Jma98LCOeBy/KpeQhXcV2WZgaRUtjwQmjoBuLNlOmkg0fB5pdvYVeWRYI69wWKwK2cD1QbMiUQnoujWvrew==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-8.0.1.tgz", + "integrity": "sha512-0NEHanXmnFEnfT2dLKTXnu7m8GXFsnxRgteBC2aH21hYMBwAgxu5dcTdi/Eg+ToI1HbZe0CHwz4XRLgRNQhYoQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.28.3", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.5" + "@babel/helper-module-transforms": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-validator-identifier": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.27.1.tgz", - "integrity": "sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-8.0.1.tgz", + "integrity": "sha512-XKTa2J2MdkmbVEeChq9f7Or0VYcsF0NyVBgytRyeN9F+J+ETAB2SHhfkG4toz/ssuU0i+h/QgJ6ddo5YakSQcA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-module-transforms": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.27.1.tgz", - "integrity": "sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-8.0.1.tgz", + "integrity": "sha512-zCHu+Jr2gTdJE48lN9SV/kXueCW2M79mKtKJc/ttfzzr/jvgdQdCd17RADMqFRQc/25MLxdtjTmlD0HSAMOlIQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.27.1.tgz", - "integrity": "sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-8.0.1.tgz", + "integrity": "sha512-QSQxVg1x4PuOuhWUs4Y9u+x9Y+ER8z6G3tC+bDLBzvoOrNLJrEBQLRnwrTP8e5klihAw6Z+e9X5RjdAKcAGapA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.27.1.tgz", - "integrity": "sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-8.0.1.tgz", + "integrity": "sha512-AgCJAmQLF7+PtsK79wJqr4xJ2StHCXlz7JL5CVFP4HejJx25Tk6yl1ZrXvi0cKh3VGDVnfVxefxnrpsBirgpyQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.27.1.tgz", - "integrity": "sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-8.0.1.tgz", + "integrity": "sha512-it2DmUyLIA1GQUXlFDEnI+/G89mTgxndnAiZYpW8xYR6LboblfirMqiWJeTna5uypQJg7viTT4D1iEURRtFcfw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.28.4.tgz", - "integrity": "sha512-373KA2HQzKhQCYiRVIRr+3MjpCObqzDlyrM6u4I201wL8Mp2wHf7uB8GhDwis03k2ti8Zr65Zyyqs1xOxUF/Ew==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-8.0.1.tgz", + "integrity": "sha512-VmxkDu6bBdbxRzqn6E93hYucug4OVa6svSO19W//vVzNUGAmQzk3QRyHyyEtfcjSLR3NWfRsWwVM9zExLmd+2w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.0", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/traverse": "^7.28.4" + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/plugin-transform-destructuring": "^8.0.1", + "@babel/plugin-transform-parameters": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", - "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-8.0.1.tgz", + "integrity": "sha512-fDkPXRTRKGm25bAq01q82UM4ypPqdVXCwphUUm4t1dL01fGIG0v8KRvT+4BjhMAtRxtPuI34t5Vs7yjRgs3ZgQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-replace-supers": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-replace-supers": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.27.1.tgz", - "integrity": "sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-8.0.1.tgz", + "integrity": "sha512-b2OQ74uGliyATcasTjxGy2O/86UI/n+EN4juB4EMfEwTi9j9uq70PuP0L8fW77vfRY66gO/YoTo/WbIdQ/Si1g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.28.5.tgz", - "integrity": "sha512-N6fut9IZlPnjPwgiQkXNhb+cT8wQKFlJNqcZkWlcTqkcqx6/kU4ynGmLFoa4LViBSirn05YAwk+sQBbPfxtYzQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-8.0.1.tgz", + "integrity": "sha512-WtRS1c94lZGpGHxYLXMEWeoMVcuv8nkiyr8BTs6OYZv7N3Y9xVE8nbdFIl4lDJH6aH8/pLhqAQOL69d/WI9WdA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.27.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", - "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-8.0.1.tgz", + "integrity": "sha512-IIwRqroW0CYQwR6+3pnmu27z+H98poScWdnov8z6osumMeEsFxAFBBsDS2CFk2jFpPlGqVr89jK/HXO6i5DzxQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.27.1.tgz", - "integrity": "sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-8.0.1.tgz", + "integrity": "sha512-TrFCGcXaVDh6S5IRhmLSRTY9H80VTCMQWnZtzBRg4RWg3KCLmdmsmj4M15kZAPZfoPkWL/SJb4em3Py/vOiX8g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-class-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.27.1.tgz", - "integrity": "sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-8.0.1.tgz", + "integrity": "sha512-e+yfOqSYBZaf3PARpiQkjZrpWYgmcFLhK+1tevh2CpHR1O9/36IdyPnAZusESX5nzVV/XZTDAtQBRLa8HPT5Dw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-create-class-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-annotate-as-pure": "^8.0.0", + "@babel/helper-create-class-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", - "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-8.0.1.tgz", + "integrity": "sha512-Z/qx4cxUtYR1nt7XWRutObPxDks98fEYsjWbVeKEqZH6y3AGknmgzCqmHf2FHWZCl1DfoPeuJY+3hZ+35D+2tg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", - "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-8.0.1.tgz", + "integrity": "sha512-soLishXlkyu6jcICPyO3HEP7A3GCzKEnn7XfvYrImuWEOwFAz93qShmWSYPf5ww0ZkO4By0zsN2bVIDF54fSdA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", - "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-8.0.1.tgz", + "integrity": "sha512-NgkoF7Uq+30TmOPDdNUimT0Nta02uVjqJRFNlVWKrbOCu/CkzfHa4aMnIs0lMpkMmZmWA1e42Va+F04i/pY1zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-module-imports": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/plugin-syntax-jsx": "^7.27.1", - "@babel/types": "^7.27.1" + "@babel/helper-annotate-as-pure": "^8.0.0", + "@babel/helper-module-imports": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/plugin-syntax-jsx": "^8.0.1", + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.27.1.tgz", - "integrity": "sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-8.0.1.tgz", + "integrity": "sha512-Hb+HUZpV9KFHjm+F+P3aLDMi8QXU9l3ROCQv20z18Me2sGyW5nNNR5YTevNlgHvCpFek3BnAwhDGq/BRndXViw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.27.1" + "@babel/plugin-transform-react-jsx": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.27.1.tgz", - "integrity": "sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-8.0.1.tgz", + "integrity": "sha512-7/8UwU8hoPBurXa9tUiTTC8aACTRy5tCqLUtqikHp2eGiWoEB57AduOdbQ71OOMTEvawKrGhv3WfzkDpI+/oSg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-annotate-as-pure": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.28.4.tgz", - "integrity": "sha512-+ZEdQlBoRg9m2NnzvEeLgtvBMO4tkFBw5SQIUgLICgTrumLoU7lr+Oghi6km2PFj+dbUt2u1oby2w3BDO9YQnA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-8.0.2.tgz", + "integrity": "sha512-aFfsjCRYducRV4dPnpsBbdRkLjboca9FVDg6HZCgy0Ahvk2ZQ/2exmCRC5qS9P6rsWwrmIheNaIM6A1j2F8KMA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-regexp-modifiers": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.27.1.tgz", - "integrity": "sha512-TtEciroaiODtXvLZv4rmfMhkCv8jx3wgKpL68PuiPh2M4fvz5jhsA7697N1gMvkvr/JTF13DrFYyEbY9U7cVPA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-8.0.1.tgz", + "integrity": "sha512-02ITRDBesPdTYU0oShAzERwEPzozOUQSXlz3qrt8JGuhalBJQv9z5NjgHJPC9sS3Fsam8gDtfAEpBnqZwUIdjQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.27.1.tgz", - "integrity": "sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-8.0.1.tgz", + "integrity": "sha512-+aykZi7ZP3U84veqfJXm3HhPZGddWFi64g7jr0ni6tb1zel+1ey+SL+IRKPoZXFyFqvYEsoqrmx4PyEJRlHl/Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", - "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-8.0.1.tgz", + "integrity": "sha512-JddANd9yPVH8dYgVoNkqAH5BftnsDxFpG51Zas7sc6F3poz5QWcejHNGO8a/57IX5ByjGSzEmYk9Z7ZMa5MWaw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", - "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-8.0.1.tgz", + "integrity": "sha512-O9Bw9FyxlSw1SlMg3S82/GKNZ0x77RPbHezotEy1JTlIM/vk6WO8jW1iF+iTiKLOXNvi+b+LZ9t77Gi+Q0FhGg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-skip-transparent-expression-wrappers": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.27.1.tgz", - "integrity": "sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-8.0.1.tgz", + "integrity": "sha512-IsVP6WrZZQdaG2zLmeKwWiI+ua2NB5L1+f77C2/8z2NCDz7uxlIA/lnwocYOJk9PXcOC2sZgRls3LN4XpNduzQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", - "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-8.0.1.tgz", + "integrity": "sha512-JXvtj5+BJA9Qv3prDzW2z2DkGTJNmG0BObTdUD03STiu1Jr4fNQkQy3hYZgPL46a2RjcuhwBMYf49BOuJ98gnA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.27.1.tgz", - "integrity": "sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-8.0.1.tgz", + "integrity": "sha512-+wJoxgxP2gtey0UMUOMhzMMji2XHO/Uu6MXUh/r5Yhc2jngKzK/wFxY2WNe4UCaRcMvCb4gcnB8wIgFXJsocXg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.27.1.tgz", - "integrity": "sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-8.0.1.tgz", + "integrity": "sha512-TAXJepIJ6vZphytTwcf+LuXi2M2ZWI43VCqNw+1ZZLPP/38Z1A8j4Mahvg8kqDgMOSM/cakk+hedTJCiw3jQuQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.27.1.tgz", - "integrity": "sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-8.0.1.tgz", + "integrity": "sha512-zjBN9tSMSuomNDfurL69Gf7+v4D2t5uI1mSZaYJDo88SKpbduhCXqtxH7Tx66iCF6caWYwnBzSM0tnCozmQq5Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.27.1.tgz", - "integrity": "sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-8.0.1.tgz", + "integrity": "sha512-v0oO83cvT5lwbcIVRShpx4vaHD8AvM9IBowsQuTeP+kGmhh3recJQs33Bl6dlo3/2g9amlznLbFGn4VJbPCJqA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.27.1.tgz", - "integrity": "sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-8.0.1.tgz", + "integrity": "sha512-MlQeyS0K7gh0XNeLBMS/3Z07HjDOKhA7xm2L18GyxOXyiFHI9E+ZuQ4mFYmcLjluXsE/Wf6dABIqZvKpKw0Z3w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.27.1", - "@babel/helper-plugin-utils": "^7.27.1" + "@babel/helper-create-regexp-features-plugin": "^8.0.1", + "@babel/helper-plugin-utils": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/preset-env": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.28.5.tgz", - "integrity": "sha512-S36mOoi1Sb6Fz98fBfE+UZSpYw5mJm0NUHtIKrOuNcqeFauy1J6dIvXm2KRVKobOSaGq4t/hBXdN4HGU3wL9Wg==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-8.0.2.tgz", + "integrity": "sha512-CUGLn9hNBCF/eXnwdFAWERbniCcXCRvnKwLV9fegeUEIqv7YlU2MepsWMMM54GcILx5XYMnRh+JAL+K5G+mK6g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.28.5", - "@babel/helper-compilation-targets": "^7.27.2", - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.28.5", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.27.1", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.27.1", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.27.1", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.28.3", - "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-import-assertions": "^7.27.1", - "@babel/plugin-syntax-import-attributes": "^7.27.1", - "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.27.1", - "@babel/plugin-transform-async-generator-functions": "^7.28.0", - "@babel/plugin-transform-async-to-generator": "^7.27.1", - "@babel/plugin-transform-block-scoped-functions": "^7.27.1", - "@babel/plugin-transform-block-scoping": "^7.28.5", - "@babel/plugin-transform-class-properties": "^7.27.1", - "@babel/plugin-transform-class-static-block": "^7.28.3", - "@babel/plugin-transform-classes": "^7.28.4", - "@babel/plugin-transform-computed-properties": "^7.27.1", - "@babel/plugin-transform-destructuring": "^7.28.5", - "@babel/plugin-transform-dotall-regex": "^7.27.1", - "@babel/plugin-transform-duplicate-keys": "^7.27.1", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-dynamic-import": "^7.27.1", - "@babel/plugin-transform-explicit-resource-management": "^7.28.0", - "@babel/plugin-transform-exponentiation-operator": "^7.28.5", - "@babel/plugin-transform-export-namespace-from": "^7.27.1", - "@babel/plugin-transform-for-of": "^7.27.1", - "@babel/plugin-transform-function-name": "^7.27.1", - "@babel/plugin-transform-json-strings": "^7.27.1", - "@babel/plugin-transform-literals": "^7.27.1", - "@babel/plugin-transform-logical-assignment-operators": "^7.28.5", - "@babel/plugin-transform-member-expression-literals": "^7.27.1", - "@babel/plugin-transform-modules-amd": "^7.27.1", - "@babel/plugin-transform-modules-commonjs": "^7.27.1", - "@babel/plugin-transform-modules-systemjs": "^7.28.5", - "@babel/plugin-transform-modules-umd": "^7.27.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.27.1", - "@babel/plugin-transform-new-target": "^7.27.1", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.27.1", - "@babel/plugin-transform-numeric-separator": "^7.27.1", - "@babel/plugin-transform-object-rest-spread": "^7.28.4", - "@babel/plugin-transform-object-super": "^7.27.1", - "@babel/plugin-transform-optional-catch-binding": "^7.27.1", - "@babel/plugin-transform-optional-chaining": "^7.28.5", - "@babel/plugin-transform-parameters": "^7.27.7", - "@babel/plugin-transform-private-methods": "^7.27.1", - "@babel/plugin-transform-private-property-in-object": "^7.27.1", - "@babel/plugin-transform-property-literals": "^7.27.1", - "@babel/plugin-transform-regenerator": "^7.28.4", - "@babel/plugin-transform-regexp-modifiers": "^7.27.1", - "@babel/plugin-transform-reserved-words": "^7.27.1", - "@babel/plugin-transform-shorthand-properties": "^7.27.1", - "@babel/plugin-transform-spread": "^7.27.1", - "@babel/plugin-transform-sticky-regex": "^7.27.1", - "@babel/plugin-transform-template-literals": "^7.27.1", - "@babel/plugin-transform-typeof-symbol": "^7.27.1", - "@babel/plugin-transform-unicode-escapes": "^7.27.1", - "@babel/plugin-transform-unicode-property-regex": "^7.27.1", - "@babel/plugin-transform-unicode-regex": "^7.27.1", - "@babel/plugin-transform-unicode-sets-regex": "^7.27.1", - "@babel/preset-modules": "0.1.6-no-external-plugins", - "babel-plugin-polyfill-corejs2": "^0.4.14", - "babel-plugin-polyfill-corejs3": "^0.13.0", - "babel-plugin-polyfill-regenerator": "^0.6.5", - "core-js-compat": "^3.43.0", - "semver": "^6.3.1" + "@babel/compat-data": "^8.0.0", + "@babel/helper-compilation-targets": "^8.0.0", + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-validator-option": "^8.0.0", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^8.0.1", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^8.0.1", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^8.0.1", + "@babel/plugin-bugfix-safari-rest-destructuring-rhs-array": "^8.0.1", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^8.0.1", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^8.0.1", + "@babel/plugin-transform-arrow-functions": "^8.0.1", + "@babel/plugin-transform-async-generator-functions": "^8.0.1", + "@babel/plugin-transform-async-to-generator": "^8.0.1", + "@babel/plugin-transform-block-scoped-functions": "^8.0.1", + "@babel/plugin-transform-block-scoping": "^8.0.1", + "@babel/plugin-transform-class-properties": "^8.0.1", + "@babel/plugin-transform-class-static-block": "^8.0.1", + "@babel/plugin-transform-classes": "^8.0.1", + "@babel/plugin-transform-computed-properties": "^8.0.1", + "@babel/plugin-transform-destructuring": "^8.0.1", + "@babel/plugin-transform-dotall-regex": "^8.0.1", + "@babel/plugin-transform-duplicate-keys": "^8.0.1", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^8.0.1", + "@babel/plugin-transform-dynamic-import": "^8.0.1", + "@babel/plugin-transform-explicit-resource-management": "^8.0.1", + "@babel/plugin-transform-exponentiation-operator": "^8.0.1", + "@babel/plugin-transform-export-namespace-from": "^8.0.1", + "@babel/plugin-transform-for-of": "^8.0.1", + "@babel/plugin-transform-function-name": "^8.0.1", + "@babel/plugin-transform-json-strings": "^8.0.1", + "@babel/plugin-transform-literals": "^8.0.1", + "@babel/plugin-transform-logical-assignment-operators": "^8.0.1", + "@babel/plugin-transform-member-expression-literals": "^8.0.1", + "@babel/plugin-transform-modules-amd": "^8.0.1", + "@babel/plugin-transform-modules-commonjs": "^8.0.1", + "@babel/plugin-transform-modules-systemjs": "^8.0.1", + "@babel/plugin-transform-modules-umd": "^8.0.1", + "@babel/plugin-transform-named-capturing-groups-regex": "^8.0.1", + "@babel/plugin-transform-new-target": "^8.0.1", + "@babel/plugin-transform-nullish-coalescing-operator": "^8.0.1", + "@babel/plugin-transform-numeric-separator": "^8.0.1", + "@babel/plugin-transform-object-rest-spread": "^8.0.1", + "@babel/plugin-transform-object-super": "^8.0.1", + "@babel/plugin-transform-optional-catch-binding": "^8.0.1", + "@babel/plugin-transform-optional-chaining": "^8.0.1", + "@babel/plugin-transform-parameters": "^8.0.1", + "@babel/plugin-transform-private-methods": "^8.0.1", + "@babel/plugin-transform-private-property-in-object": "^8.0.1", + "@babel/plugin-transform-property-literals": "^8.0.1", + "@babel/plugin-transform-regenerator": "^8.0.2", + "@babel/plugin-transform-regexp-modifiers": "^8.0.1", + "@babel/plugin-transform-reserved-words": "^8.0.1", + "@babel/plugin-transform-shorthand-properties": "^8.0.1", + "@babel/plugin-transform-spread": "^8.0.1", + "@babel/plugin-transform-sticky-regex": "^8.0.1", + "@babel/plugin-transform-template-literals": "^8.0.1", + "@babel/plugin-transform-typeof-symbol": "^8.0.1", + "@babel/plugin-transform-unicode-escapes": "^8.0.1", + "@babel/plugin-transform-unicode-property-regex": "^8.0.1", + "@babel/plugin-transform-unicode-regex": "^8.0.1", + "@babel/plugin-transform-unicode-sets-regex": "^8.0.1", + "@babel/preset-modules": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^1.0.0", + "core-js-compat": "^3.48.0", + "semver": "^7.7.3" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/preset-modules": { - "version": "0.1.6-no-external-plugins", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", - "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.2.0.tgz", + "integrity": "sha512-yz0RBN2fx4fjCeFcTWsWgL7PxSRltvTa0Qg14HkWCU3qS8MO7ZSJlBVbGceynd5C9NsJwwUHNQD3dc6tYO+jqQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/types": "^7.4.4", + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/plugin-transform-dotall-regex": "^8.0.1", + "@babel/plugin-transform-unicode-property-regex": "^8.0.1", + "@babel/types": "^8.0.0", "esutils": "^2.0.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/preset-react": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.28.5.tgz", - "integrity": "sha512-Z3J8vhRq7CeLjdC58jLv4lnZ5RKFUJWqH5emvxmv9Hv3BD1T9R/Im713R4MTKwvFaV74ejZ3sM01LyEKk4ugNQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-8.0.1.tgz", + "integrity": "sha512-jrFuPp/pTddFZbtmWhdLNAYc6UMcpboeUPnw0BBrm4nOmcAko/1TRcFi1PzWCeOFRU+VaSiKmat87W1HvR7mIg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.27.1", - "@babel/helper-validator-option": "^7.27.1", - "@babel/plugin-transform-react-display-name": "^7.28.0", - "@babel/plugin-transform-react-jsx": "^7.27.1", - "@babel/plugin-transform-react-jsx-development": "^7.27.1", - "@babel/plugin-transform-react-pure-annotations": "^7.27.1" + "@babel/helper-plugin-utils": "^8.0.1", + "@babel/helper-validator-option": "^8.0.0", + "@babel/plugin-transform-react-display-name": "^8.0.1", + "@babel/plugin-transform-react-jsx": "^8.0.1", + "@babel/plugin-transform-react-jsx-development": "^8.0.1", + "@babel/plugin-transform-react-pure-annotations": "^8.0.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^8.0.0" } }, "node_modules/@babel/template": { - "version": "7.27.2", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", - "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-8.0.0.tgz", + "integrity": "sha512-eAD0QW/AlbamBbw0FeGiwasbCVPq5ncW0HNVyLP3B9czqLyh4gvw+5JTSNt6le9+ziAU7mqDZsKTHf3jTb4chQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/parser": "^7.27.2", - "@babel/types": "^7.27.1" + "@babel/code-frame": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/types": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/traverse": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.5.tgz", - "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-8.0.0.tgz", + "integrity": "sha512-bxTj/W2VclGE6CctlfQOpxg8MPDzXArRqkOBePw8EHfebcjF7fETWSS3BriEECo+UiU/Yblq+xUtSImFu7cTbw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.27.1", - "@babel/generator": "^7.28.5", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.5", - "@babel/template": "^7.27.2", - "@babel/types": "^7.28.5", - "debug": "^4.3.1" + "@babel/code-frame": "^8.0.0", + "@babel/generator": "^8.0.0", + "@babel/helper-globals": "^8.0.0", + "@babel/parser": "^8.0.0", + "@babel/template": "^8.0.0", + "@babel/types": "^8.0.0", + "obug": "^2.1.1" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@babel/types": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", - "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-8.0.0.tgz", + "integrity": "sha512-K8ponJDxBwDHigkeFqaqT5wLGl4bTlwMafR8k7b5CPxr6Ww+UG9ls8Yx6Tcpboxu97eeGVEEyKcHmEyOwN1vSw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^8.0.0", + "@babel/helper-validator-identifier": "^8.0.0" }, "engines": { - "node": ">=6.9.0" + "node": "^22.18.0 || >=24.11.0" } }, "node_modules/@bcoe/v8-coverage": { @@ -1871,10 +1996,17 @@ "dev": true, "license": "MIT" }, + "node_modules/@colordx/core": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@colordx/core/-/core-5.5.0.tgz", + "integrity": "sha512-3PxTH8itZzltK0U9jTwVVnjLXvnDYuq3m+QXsHkENxWiPRh4WaoLcs1SQjqgZ55kS+QyirpH5BVwzP2gMVG6EQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@discoveryjs/json-ext": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.6.3.tgz", - "integrity": "sha512-4B4OijXeVNOPZlYA2oEwWOTkzyltLao+xbotHQeqN++Rv27Y6s818+n2Qkp8q+Fxhn0t/5lA5X1Mxktud8eayQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-1.1.0.tgz", + "integrity": "sha512-Xc3VhU02wqZ1HvHRJUwL09HkZSTvidqY5Ya0NXBSYOxAp+Ln9dcJr9fySI+CkONzP3PekQo9WdzCv0PGER/mOA==", "dev": true, "license": "MIT", "engines": { @@ -1882,21 +2014,21 @@ } }, "node_modules/@emnapi/core": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", - "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/wasi-threads": "1.1.0", + "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "node_modules/@emnapi/runtime": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", - "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", "dev": true, "license": "MIT", "optional": true, @@ -1905,9 +2037,9 @@ } }, "node_modules/@emnapi/wasi-threads": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", - "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", "dev": true, "license": "MIT", "optional": true, @@ -1978,7 +2110,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.13.2.tgz", "integrity": "sha512-jwtMmJa1BXXDCiDx1vC6SFN/+HfYG53UkfJa6qeN5ogvOunzbFDO3wISZy5n9xgYFUrEP6M7e8EG++riHNTv9w==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/component": "0.6.18", "@firebase/logger": "0.4.4", @@ -2045,7 +2176,6 @@ "resolved": "https://registry.npmjs.org/@firebase/app-compat/-/app-compat-0.4.2.tgz", "integrity": "sha512-LssbyKHlwLeiV8GBATyOyjmHcMpX/tFjzRUCS1jnwGAew1VsBB4fJowyS5Ud5LdFbYpJeS+IQoC+RQxpK7eH3Q==", "license": "Apache-2.0", - "peer": true, "dependencies": { "@firebase/app": "0.13.2", "@firebase/component": "0.6.18", @@ -2061,8 +2191,7 @@ "version": "0.9.3", "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.9.3.tgz", "integrity": "sha512-kRVpIl4vVGJ4baogMDINbyrIOtOxqhkZQg4jTq3l8Lw6WSk0xfpEYzezFu+Kl4ve4fbPl79dvwRtaFqAC/ucCw==", - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/@firebase/auth-compat": { "version": "0.5.28", @@ -2513,7 +2642,6 @@ "integrity": "sha512-zGlBn/9Dnya5ta9bX/fgEoNC3Cp8s6h+uYPYaDieZsFOAdHP/ExzQ/eaDgxD3GOROdPkLKpvKY0iIzr9adle0w==", "hasInstallScript": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "tslib": "^2.1.0" }, @@ -2528,23 +2656,30 @@ "license": "Apache-2.0" }, "node_modules/@formatjs/cli": { - "version": "6.8.7", - "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.8.7.tgz", - "integrity": "sha512-xm0mnctV7AvZIKXjLme4YTOXDe9NpPdY7OnZXRP2Ugb4yPIS2w83i9lV4AHJsO+qg9/A0/ZY+tmosQ9m+NhLkQ==", + "version": "6.16.11", + "resolved": "https://registry.npmjs.org/@formatjs/cli/-/cli-6.16.11.tgz", + "integrity": "sha512-O3tTFavGK3zOhW4i2/ONWfMUgbU7fapxNbIsdFuF9eTMtQZFnKFdoBDdiBHj7d2W4ULVyeWd4b3qw2XHYpmuBg==", "dev": true, "license": "MIT", "bin": { "formatjs": "bin/formatjs" }, "engines": { - "node": ">= 16" + "node": ">= 20.12.0" + }, + "optionalDependencies": { + "@formatjs/cli-native-darwin-arm64": "1.1.5", + "@formatjs/cli-native-linux-arm64": "1.2.5", + "@formatjs/cli-native-linux-arm64-musl": "1.0.3", + "@formatjs/cli-native-linux-x64": "1.1.5", + "@formatjs/cli-native-linux-x64-musl": "1.0.3", + "@formatjs/cli-native-win32-x64": "1.1.6" }, "peerDependencies": { - "@glimmer/syntax": "^0.95.0", - "@vue/compiler-core": "^3.5.12", - "content-tag": "^3.0.0", - "ember-template-recast": "^6.1.5", - "vue": "^3.5.12" + "@glimmer/syntax": "^0.84.3 || ^0.95.0", + "@vue/compiler-core": "^3.5.0", + "content-tag": "^4.1.0", + "vue": "^3.5.0" }, "peerDependenciesMeta": { "@glimmer/env": { @@ -2565,14 +2700,107 @@ "content-tag": { "optional": true }, - "ember-template-recast": { - "optional": true - }, "vue": { "optional": true } } }, + "node_modules/@formatjs/cli-native-darwin-arm64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@formatjs/cli-native-darwin-arm64/-/cli-native-darwin-arm64-1.1.5.tgz", + "integrity": "sha512-zGt7OenQakyh8a+eAgCx/zUInbQXYT0UNzeOaYlnaKmU9yr78wsVAGGhPc85gchnQ7gIXSWOKhwIzvfSMFGU7w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@formatjs/cli-native-linux-arm64": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@formatjs/cli-native-linux-arm64/-/cli-native-linux-arm64-1.2.5.tgz", + "integrity": "sha512-G1Ou5CFDM2hfqmD2jfXJJpHL7DL7f7OxlMXf6VPWvUYu+jcvpEj0KdEtmz5poh8rWzfHbOf4MfqC6WNhExJD5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@formatjs/cli-native-linux-arm64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@formatjs/cli-native-linux-arm64-musl/-/cli-native-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-1qq9EZIY87cnptTd2PywI41s/DlkJBzNID6AofHCYm8sunXfj+vYAIQOSZnctNm7/u1ZlSJ/VjxHSS1NIC4tTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@formatjs/cli-native-linux-x64": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@formatjs/cli-native-linux-x64/-/cli-native-linux-x64-1.1.5.tgz", + "integrity": "sha512-v/EtDIMC7C3cOpYpRJDvUImQFHBveFP+PTggZJbi88zXCeMMEL6eMwbMlJezUIwvYjgH1FWQargCgwOnI3lVdg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@formatjs/cli-native-linux-x64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@formatjs/cli-native-linux-x64-musl/-/cli-native-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-wb90O1S7cad8QKmHQ2I5glN9O9m+y+V29mrvvxFbKAVmVbKB7oyjhoau/jtuHQ/Yv2tfah3CYCj+1iaDNlJmYg==", + "cpu": [ + "x64" + ], + "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@formatjs/cli-native-win32-x64": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@formatjs/cli-native-win32-x64/-/cli-native-win32-x64-1.1.6.tgz", + "integrity": "sha512-fsPOUB4JePy6VJfQV+oorLfozbb9IfYRAncGZ54VZg77Uj2aOP2h/KLhQmgippNlgi0Q77EB8QDMzNQfaKpVAA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@formatjs/ecma402-abstract": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/@formatjs/ecma402-abstract/-/ecma402-abstract-2.3.6.tgz", @@ -2595,25 +2823,21 @@ } }, "node_modules/@formatjs/icu-messageformat-parser": { - "version": "2.11.4", - "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", - "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "version": "3.5.12", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-3.5.12.tgz", + "integrity": "sha512-YyzzxVgYJ8DELmmkhn0Yr0rUj0dTJFf9Jp628K3S0ysInBWxLVDOS8i3RP91cCp4DMK4WYb4cVMhWA9i4knSJg==", + "dev": true, "license": "MIT", "dependencies": { - "@formatjs/ecma402-abstract": "2.3.6", - "@formatjs/icu-skeleton-parser": "1.8.16", - "tslib": "^2.8.0" + "@formatjs/icu-skeleton-parser": "2.1.10" } }, "node_modules/@formatjs/icu-skeleton-parser": { - "version": "1.8.16", - "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", - "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", - "license": "MIT", - "dependencies": { - "@formatjs/ecma402-abstract": "2.3.6", - "tslib": "^2.8.0" - } + "version": "2.1.10", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-2.1.10.tgz", + "integrity": "sha512-XuSva+8ZGawk8VnD5VD6UeH8KarQ/Z022zgjHDoHmlNiAewstXuuzXc0Hk5pGFSdG+nNw5bfJKXqj1ZXHn9yUA==", + "dev": true, + "license": "MIT" }, "node_modules/@formatjs/intl": { "version": "3.1.8", @@ -2645,19 +2869,42 @@ "tslib": "^2.8.0" } }, + "node_modules/@formatjs/intl/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" + } + }, + "node_modules/@formatjs/intl/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" + } + }, "node_modules/@formatjs/ts-transformer": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-3.14.2.tgz", - "integrity": "sha512-c47ij+2Xi4jMDO3Hz01BDF3yB4575Gkoq24sFzVw1K1kpHvITsFfdlXQbhxScBwJi2gBhMpuZ++XsTUZ9O0Law==", + "version": "4.4.14", + "resolved": "https://registry.npmjs.org/@formatjs/ts-transformer/-/ts-transformer-4.4.14.tgz", + "integrity": "sha512-k3zaGIAUpQIS5tpifOJ8Jzsqy+j1YV916b1yhwd6US+kRQHdSyxtk76zad8NabalOWel5ouyzGohD0ZlApKkdg==", "dev": true, "license": "MIT", "dependencies": { - "@formatjs/icu-messageformat-parser": "2.11.4", - "@types/node": "^22.0.0", - "chalk": "^4.1.2", + "@formatjs/icu-messageformat-parser": "3.5.12", + "@types/babel__core": "^7.20.5", + "@types/node": "22 || 24", "json-stable-stringify": "^1.3.0", - "tslib": "^2.8.0", - "typescript": "^5.6.0" + "typescript": "^5.6 || 6" + }, + "engines": { + "node": ">= 20.12.0" }, "peerDependencies": { "ts-jest": "^29" @@ -2669,9 +2916,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.9.15", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.15.tgz", - "integrity": "sha512-nqE7Hc0AzI+euzUwDAy0aY5hCp10r734gMGRdU+qOPX0XSceI2ULrcXB5U2xSc5VkWwalCj4M7GzCAygZl2KoQ==", + "version": "1.9.16", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.9.16.tgz", + "integrity": "sha512-wE4Ut/olIzfKqp631XrG+wbF0v1vWFN4YL9FyXC2LJiG33DsV7PLzURjrCvY/6je2ntdRkeLpPDluzSRGaVltQ==", "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.8", @@ -2699,29 +2946,6 @@ "node": ">=6" } }, - "node_modules/@isaacs/balanced-match": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz", - "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@isaacs/brace-expansion": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz", - "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@isaacs/balanced-match": "^4.0.1" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2792,13 +3016,13 @@ } }, "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.2.0.tgz", + "integrity": "sha512-yDPMNjp4WyfYBkHnjIRLfca1i6KMyGCtsVgoKe/z1+6vukgaENdgGBZt+ZmKPc4gavvEZ5OgHfHdrazhgNyG7w==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "ansi-regex": "^6.2.2" }, "engines": { "node": ">=12" @@ -2899,9 +3123,9 @@ } }, "node_modules/@istanbuljs/schema": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", - "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.6.tgz", + "integrity": "sha512-+Sg6GCR/wy1oSmQDFq4LQDAhm3ETKnorxN+y5nbLULOR3P0c14f2Wurzj3/xqPXtasLFfHd5iRFQ7AJt4KH2cw==", "dev": true, "license": "MIT", "engines": { @@ -2909,17 +3133,17 @@ } }, "node_modules/@jest/console": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.2.0.tgz", - "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-30.4.1.tgz", + "integrity": "sha512-v3bhyxUh9Hgmo5p6hAOXe14/R3ZxZDOsvHleh4B07z3m/x4/ngPUXEm9XwK4sF4u+f+P2ORb0Ge+MgpaqRMVDA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.4.1", "@types/node": "*", "chalk": "^4.1.2", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", + "jest-message-util": "30.4.1", + "jest-util": "30.4.1", "slash": "^3.0.0" }, "engines": { @@ -2927,39 +3151,39 @@ } }, "node_modules/@jest/core": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.2.0.tgz", - "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-30.4.2.tgz", + "integrity": "sha512-TZJA6cPJUFxoWhxaLo8t0VX/MZX2wPWr0uIDvLSHIvN4gu9h02vSzqI2kBADG1ExqQlC+cY09xKMSreivvrChQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", - "@jest/pattern": "30.0.1", - "@jest/reporters": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.4.1", + "@jest/pattern": "30.4.0", + "@jest/reporters": "30.4.1", + "@jest/test-result": "30.4.1", + "@jest/transform": "30.4.1", + "@jest/types": "30.4.1", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "ci-info": "^4.2.0", "exit-x": "^0.2.2", + "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-changed-files": "30.2.0", - "jest-config": "30.2.0", - "jest-haste-map": "30.2.0", - "jest-message-util": "30.2.0", - "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-resolve-dependencies": "30.2.0", - "jest-runner": "30.2.0", - "jest-runtime": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", - "jest-watcher": "30.2.0", - "micromatch": "^4.0.8", - "pretty-format": "30.2.0", + "jest-changed-files": "30.4.1", + "jest-config": "30.4.2", + "jest-haste-map": "30.4.1", + "jest-message-util": "30.4.1", + "jest-regex-util": "30.4.0", + "jest-resolve": "30.4.1", + "jest-resolve-dependencies": "30.4.2", + "jest-runner": "30.4.2", + "jest-runtime": "30.4.2", + "jest-snapshot": "30.4.1", + "jest-util": "30.4.1", + "jest-validate": "30.4.1", + "jest-watcher": "30.4.1", + "pretty-format": "30.4.1", "slash": "^3.0.0" }, "engines": { @@ -2975,9 +3199,9 @@ } }, "node_modules/@jest/diff-sequences": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", - "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "version": "30.4.0", + "resolved": "https://registry.npmjs.org/@jest/diff-sequences/-/diff-sequences-30.4.0.tgz", + "integrity": "sha512-zOpzlfUs45l6u7jm39qr87JCHUDsaeCtvL+kQe/Vn9jSnRB4/5IPXISm0h9I1vZW/o00Kn4UTJ2MOlhnUGwv3g==", "dev": true, "license": "MIT", "engines": { @@ -2985,39 +3209,39 @@ } }, "node_modules/@jest/environment": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.2.0.tgz", - "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-30.4.1.tgz", + "integrity": "sha512-AK9yNRqgKxiabqMoe4oW+3/TSSeV8vkdC7BGaxZdU0AFXfOpofTLqdru2GXKZghP3sdgwE9XXpnVwfZ8JnFV4w==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "30.2.0", - "@jest/types": "30.2.0", + "@jest/fake-timers": "30.4.1", + "@jest/types": "30.4.1", "@types/node": "*", - "jest-mock": "30.2.0" + "jest-mock": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.2.0.tgz", - "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-30.4.1.tgz", + "integrity": "sha512-ginrj6TMgh2GshLUGCjO94Ptx9HhdZA/I6A9iUfyeLKFtdAjnKzHDgzgP9HYQgbxM1lbXScQ2eUBz2lGeVDPWA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "30.2.0", - "jest-snapshot": "30.2.0" + "expect": "30.4.1", + "jest-snapshot": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.2.0.tgz", - "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-30.4.1.tgz", + "integrity": "sha512-ZBn5CglH8fBsQsvs4VWNzD4aWfUYks+IdOOQU3MEK71ol/BcVm+P+rtb1KpiFBpSWSCE27uOahyyf1vfqOVbcQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3028,18 +3252,18 @@ } }, "node_modules/@jest/fake-timers": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.2.0.tgz", - "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-30.4.1.tgz", + "integrity": "sha512-iW5umdmfPeWzehrVhugFQZqCchSCud5S1l2YT0O9ZhjRR0ExclANDZkiSBwzqtnlOn0J1JXvO+HZ6rkuyOVOgQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", - "@sinonjs/fake-timers": "^13.0.0", + "@jest/types": "30.4.1", + "@sinonjs/fake-timers": "^15.4.0", "@types/node": "*", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", - "jest-util": "30.2.0" + "jest-message-util": "30.4.1", + "jest-mock": "30.4.1", + "jest-util": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -3056,62 +3280,62 @@ } }, "node_modules/@jest/globals": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.2.0.tgz", - "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-30.4.1.tgz", + "integrity": "sha512-ZbuY4cmXC8DkxYjfvT2DbcHWL2T6vmsMhXCDcmTB2T0y0gaezBI77ufq5ZAIdcRkYZ7NEQEDg1xFeKbxUJ5v5Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/expect": "30.2.0", - "@jest/types": "30.2.0", - "jest-mock": "30.2.0" + "@jest/environment": "30.4.1", + "@jest/expect": "30.4.1", + "@jest/types": "30.4.1", + "jest-mock": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/pattern": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.0.1.tgz", - "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", + "version": "30.4.0", + "resolved": "https://registry.npmjs.org/@jest/pattern/-/pattern-30.4.0.tgz", + "integrity": "sha512-RAWn3+f9u8BsHijKJ71uHcFp6vmyEt6VvoWXkl6hKF3qVIuWNmudVjg12DlBPGup/frIl5UcUlH5HfEuvHpEXg==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", - "jest-regex-util": "30.0.1" + "jest-regex-util": "30.4.0" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/reporters": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.2.0.tgz", - "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-30.4.1.tgz", + "integrity": "sha512-/SnkPCzEQpUaBH81kjdEdDdo2WZl5hxw+BmLDGWjRkm8o7XlhjwsU36cqwe5PGBE5WYpBvDzRSdXx9rbGuJtNA==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.4.1", + "@jest/test-result": "30.4.1", + "@jest/transform": "30.4.1", + "@jest/types": "30.4.1", "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", "chalk": "^4.1.2", "collect-v8-coverage": "^1.0.2", "exit-x": "^0.2.2", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", - "jest-worker": "30.2.0", + "jest-message-util": "30.4.1", + "jest-util": "30.4.1", + "jest-worker": "30.4.1", "slash": "^3.0.0", "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" @@ -3128,10 +3352,28 @@ } } }, + "node_modules/@jest/reporters/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jest/reporters/node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/@jest/reporters/node_modules/glob": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -3157,13 +3399,13 @@ "license": "ISC" }, "node_modules/@jest/reporters/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -3190,9 +3432,9 @@ } }, "node_modules/@jest/schemas": { - "version": "30.0.5", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.0.5.tgz", - "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-30.4.1.tgz", + "integrity": "sha512-i6b4qw5qnP8c5FEeBJg/uZQ4ddrkN6Ca8qISJh0pr7a5hfn3h3v5x60BEbOC7OYAGZNMs1LfFLwnW2CuK8F57Q==", "dev": true, "license": "MIT", "dependencies": { @@ -3203,13 +3445,13 @@ } }, "node_modules/@jest/snapshot-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", - "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/snapshot-utils/-/snapshot-utils-30.4.1.tgz", + "integrity": "sha512-ObY4ljvQ95mt6iwKtVLetR/4yXiAgl3H4nJxhztr0MTjrN97TwDYrnCp/kF60Ec9HdhkWTHSu+Hg05aXfngpOA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.4.1", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "natural-compare": "^1.4.0" @@ -3234,14 +3476,14 @@ } }, "node_modules/@jest/test-result": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.2.0.tgz", - "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-30.4.1.tgz", + "integrity": "sha512-/ZG7pgEiOmmWkN9TplKbOu4id2N5lh7FHwRwlkgBVAzGdRH+OkkQ8wX/kIxg4zmd3ZQvAL1RwL2yWsvNYYECTw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.4.1", + "@jest/types": "30.4.1", "@types/istanbul-lib-coverage": "^2.0.6", "collect-v8-coverage": "^1.0.2" }, @@ -3250,15 +3492,15 @@ } }, "node_modules/@jest/test-sequencer": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", - "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-30.4.1.tgz", + "integrity": "sha512-PeYE+4td5rKjoRPxztObrXU+H8hsjZfxKMXOcmrr34JerSyB/ROOxbbicz8B7A5j9R9VayDnVPvBmedqCsFCdw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.2.0", + "@jest/test-result": "30.4.1", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.4.1", "slash": "^3.0.0" }, "engines": { @@ -3266,24 +3508,23 @@ } }, "node_modules/@jest/transform": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.2.0.tgz", - "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-30.4.1.tgz", + "integrity": "sha512-Wz0LyktlTvRefoymh+n64hQ84KNXsRGcwdoZ8CSa0Ea+fgYcHZlnk+hDP7v2MS7il2bQ5uTEIxf4/NNfhMN4KQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", - "@jest/types": "30.2.0", + "@jest/types": "30.4.1", "@jridgewell/trace-mapping": "^0.3.25", "babel-plugin-istanbul": "^7.0.1", "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", - "jest-regex-util": "30.0.1", - "jest-util": "30.2.0", - "micromatch": "^4.0.8", + "jest-haste-map": "30.4.1", + "jest-regex-util": "30.4.0", + "jest-util": "30.4.1", "pirates": "^4.0.7", "slash": "^3.0.0", "write-file-atomic": "^5.0.1" @@ -3293,14 +3534,14 @@ } }, "node_modules/@jest/types": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.2.0.tgz", - "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-30.4.1.tgz", + "integrity": "sha512-f1x/vJXIfjOlEmejYpbkbgw1gOqpPECwMvMEtBqe47j7H2Hg8h8w3o3ikhSXq3MI15kg+oQ0exWO0uCtTNJLoQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/pattern": "30.0.1", - "@jest/schemas": "30.0.5", + "@jest/pattern": "30.4.0", + "@jest/schemas": "30.4.1", "@types/istanbul-lib-coverage": "^2.0.6", "@types/istanbul-reports": "^3.0.4", "@types/node": "*", @@ -3322,17 +3563,6 @@ "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/remapping": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", - "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -3373,16 +3603,22 @@ } }, "node_modules/@napi-rs/wasm-runtime": { - "version": "0.2.12", - "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", - "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.6.tgz", + "integrity": "sha512-ZLv/JdUfkvOy9eCnnBaGfiO+XimbjebAeO+MRQqD/B+FR1tnRN0tpKSJHRbE8sFfS6aqsXZ67TQjfwfsxULVbg==", "dev": true, "license": "MIT", "optional": true, "dependencies": { - "@emnapi/core": "^1.4.3", - "@emnapi/runtime": "^1.4.3", - "@tybys/wasm-util": "^0.10.0" + "@tybys/wasm-util": "^0.10.3" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" } }, "node_modules/@pkgjs/parseargs": { @@ -3397,13 +3633,13 @@ } }, "node_modules/@pkgr/core": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.2.9.tgz", - "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.3.6.tgz", + "integrity": "sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==", "dev": true, "license": "MIT", "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": "^14.18.0 || >=16.0.0" }, "funding": { "url": "https://opencollective.com/pkgr" @@ -3422,25 +3658,24 @@ "license": "BSD-3-Clause" }, "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.5.tgz", + "integrity": "sha512-zgXFLzW3Ap33e6d0Wlj4MGIm6Ce8O89n/apUaGNB/jx+hw+ruWEp7EwGUshdLKVRCxZW12fp9r40E1mQrf/34g==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.1.tgz", + "integrity": "sha512-vW1GmwMZNnL+gMRaovlh9yZX74kc+TTU3FObkkurpMaRtBfLP3ldjS9KQWlwZgraRE0+dheEEoAxdzcJQ8eXZg==", "license": "BSD-3-Clause" }, "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.1.tgz", + "integrity": "sha512-GpptLrs57adMSuHi3VNj0mAF8dwh36LMaYF6XyJ6JMWlVsc+t42tm1HSEDmOs3A8fC9yyeisgLhsTVQokOZ0zw==", "license": "BSD-3-Clause", "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" + "@protobufjs/aspromise": "^1.1.1" } }, "node_modules/@protobufjs/float": { @@ -3449,12 +3684,6 @@ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", "license": "BSD-3-Clause" }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", - "license": "BSD-3-Clause" - }, "node_modules/@protobufjs/path": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", @@ -3468,15 +3697,15 @@ "license": "BSD-3-Clause" }, "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.1.tgz", + "integrity": "sha512-oOAWABowe8EAbMyWKM0tYDKi8Yaox52D+HWZhAIJqQXbqe0xI/GV7FhLWqlEKreMkfDjshR5FKgi3mnle0h6Eg==", "license": "BSD-3-Clause" }, "node_modules/@sinclair/typebox": { - "version": "0.34.45", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.45.tgz", - "integrity": "sha512-qJcFVfCa5jxBFSuv7S5WYbA8XdeCPmhnaVVfX/2Y6L8WYg8sk3XY2+6W0zH+3mq1Cz+YC7Ki66HfqX6IHAwnkg==", + "version": "0.34.49", + "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.34.49.tgz", + "integrity": "sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==", "dev": true, "license": "MIT" }, @@ -3491,9 +3720,9 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", - "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-15.4.0.tgz", + "integrity": "sha512-DsG+8/LscQIQg68J6Ef3dv10u6nVyetYn923s3/sus5eaGfTo1of5WMZSLf0UJc9KDuKPilPH0UDJCjvNbDNCA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -3501,9 +3730,9 @@ } }, "node_modules/@tybys/wasm-util": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", - "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.3.tgz", + "integrity": "sha512-F3fo1MYrRJYL3zER0OUOmkutjr1Vp23m7OsSgp7nq4SP6OqX6C/56XFIPAl5bt3zaBRjmW7SGz3u/6LwFpYcOg==", "dev": true, "license": "MIT", "optional": true, @@ -3525,6 +3754,56 @@ "@types/babel__traverse": "*" } }, + "node_modules/@types/babel__core/node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@types/babel__core/node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@types/babel__generator": { "version": "7.27.0", "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", @@ -3535,6 +3814,40 @@ "@babel/types": "^7.0.0" } }, + "node_modules/@types/babel__generator/node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__generator/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__generator/node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@types/babel__helper-plugin-utils": { "version": "7.10.3", "resolved": "https://registry.npmjs.org/@types/babel__helper-plugin-utils/-/babel__helper-plugin-utils-7.10.3.tgz", @@ -3556,6 +3869,56 @@ "@babel/types": "^7.0.0" } }, + "node_modules/@types/babel__template/node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__template/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__template/node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@types/babel__template/node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@types/babel__traverse": { "version": "7.28.0", "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", @@ -3566,32 +3929,51 @@ "@babel/types": "^7.28.2" } }, - "node_modules/@types/eslint": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", - "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "node_modules/@types/babel__traverse/node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, "license": "MIT", - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" + "engines": { + "node": ">=6.9.0" } }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "node_modules/@types/babel__traverse/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@types/babel__traverse/node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "dev": true, "license": "MIT", "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/gensync": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/gensync/-/gensync-1.0.5.tgz", + "integrity": "sha512-MbsRCT7mTikHwKZ0X+LVUTLRrZZRLipTuXEO9qOYO+zmjMVk81axyClMROf6uoPD9MRVu46bx8zoR0Ad9q3NAg==", "dev": true, "license": "MIT" }, @@ -3634,6 +4016,13 @@ "@types/istanbul-lib-report": "*" } }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/@types/jsesc/-/jsesc-2.5.1.tgz", + "integrity": "sha512-9VN+6yxLOPLOav+7PwjZbxiID2bVaeq0ED4qSQmdQTdjnXJSaCVKTR58t15oqH1H5t8Ng2ZX1SabJVoN9Q34bw==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -3642,20 +4031,19 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.19.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.3.tgz", - "integrity": "sha512-1N9SBnWYOJTrNZCdh/yJE+t910Y128BoyY+zBLWhL3r0TYzlTmFdXrPwHL9DyFZmlEXNQQolTZh3KHV31QDhyA==", + "version": "24.13.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-24.13.2.tgz", + "integrity": "sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==", "license": "MIT", "dependencies": { - "undici-types": "~6.21.0" + "undici-types": "~7.18.0" } }, "node_modules/@types/react": { - "version": "19.2.7", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz", - "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", + "version": "19.2.17", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.17.tgz", + "integrity": "sha512-MXfmqaVPEVgkBT/aY0aGCkRWWtByiYQXo3xdQ8r5RzuFrPiRn8Gar2tQdXSUQ2GKV3bkXckek89V8wQBY2Q/Aw==", "license": "MIT", - "peer": true, "dependencies": { "csstype": "^3.2.2" } @@ -3685,16 +4073,16 @@ "license": "MIT" }, "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.2.tgz", + "integrity": "sha512-5jsZFwgR5rTdKwidH9Qmat75RKwqfpKlWWB1frDkljN127mwqBu8K0PYo7/hFpF03IEJpfVPpCQDY/eDx3iHvA==", "dev": true, "license": "ISC" }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", - "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.12.2.tgz", + "integrity": "sha512-g5T90pqg1bo/7mytQx6F4iBNC0Wsh9cu+z9veDbFjc7HjpesJFWD7QMS0NGStXM075+7dJPPVvBbpZlnrdpi/w==", "cpu": [ "arm" ], @@ -3706,9 +4094,9 @@ ] }, "node_modules/@unrs/resolver-binding-android-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", - "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.12.2.tgz", + "integrity": "sha512-YGCRZv/9GLhwmz6mYDeTsm/92BAyR28l6c2ReweVW5pWgfsitWLY8upvfRlGdoyD8HjeTHSYJWyZGD4KJA/nFQ==", "cpu": [ "arm64" ], @@ -3720,9 +4108,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-arm64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", - "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.12.2.tgz", + "integrity": "sha512-u9DiNT1auQMO20A9SyTuG3wUgQWB9Z7KjAg0uFuCDR1FsAY8A0CG2S6JpHS1xwm/w1G08bjXZDcyOCjv1WAm2w==", "cpu": [ "arm64" ], @@ -3734,9 +4122,9 @@ ] }, "node_modules/@unrs/resolver-binding-darwin-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", - "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.12.2.tgz", + "integrity": "sha512-f7rPLi/T1HVKZu/u6t87lroib16n8vrSzcyxI7lg4BGO9UF26KhQL44sd9eOUgrTYhvRXtWOIZT5PejdPyJfUA==", "cpu": [ "x64" ], @@ -3748,9 +4136,9 @@ ] }, "node_modules/@unrs/resolver-binding-freebsd-x64": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", - "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.12.2.tgz", + "integrity": "sha512-BpcOjWCJub6nRZUS2zA20pmLvjtqAtGejETaIyRLiZiQf++cbrjltLA5NN/xaXfqeOBOSlMFbemIl5/S5tljmg==", "cpu": [ "x64" ], @@ -3762,9 +4150,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", - "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.12.2.tgz", + "integrity": "sha512-vZTDvdSISZjJx66OzJqtsOhzifbqRjbmI1Mnu49fQDwog5GtDI4QidRiEAYbZCRj9C8YZEW+3ZjqsyS9GR4k2A==", "cpu": [ "arm" ], @@ -3776,9 +4164,9 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", - "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.12.2.tgz", + "integrity": "sha512-BiPI+IrIlwcW4nLLMM21+B1dFPzd55yAVgVGrdgDjNef+ch03GdxrcyaIz8X9SsQirh/kCQ7mviyWlMxdh2D7g==", "cpu": [ "arm" ], @@ -3790,13 +4178,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", - "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.12.2.tgz", + "integrity": "sha512-zJc0H99FEPoFfSrNpa91HYfxzfAJCr502oxNK1cfdC9hlaFI43RT+JFCann9JUgZmLzzntChHyn13Sgn9ljHNg==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3804,13 +4195,50 @@ ] }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", - "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.12.2.tgz", + "integrity": "sha512-KQ3Lki6l+Pz1k/eBipN41ES+YUK30beLGb9YqcB1O542cyLCNE6GaxrfcY3T6EezmGGk84wb5XyO9loTM9tkcA==", "cpu": [ "arm64" ], "dev": true, + "libc": [ + "musl" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-gnu": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-gnu/-/resolver-binding-linux-loong64-gnu-1.12.2.tgz", + "integrity": "sha512-3SJGEh1DborhG6pyxvhPzCT4bbSIVihsvgJc13P1bHG7KLdNDaF9T3gsTwFc7Jw/5Y5/iWOjkEx7Zy0NvCGX3Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "glibc" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-loong64-musl": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-loong64-musl/-/resolver-binding-linux-loong64-musl-1.12.2.tgz", + "integrity": "sha512-jiuG/Obbel7uw1PwHNFfrkiKhLAF6mnyZ6aWlOAVN9WqKm8v0OFGnciJIHu8+CMvXLQ8AD51LPzAoUfT21D5Ew==", + "cpu": [ + "loong64" + ], + "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -3818,13 +4246,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", - "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.12.2.tgz", + "integrity": "sha512-q7xRvVpmcfeL+LlZg8Pbbo6QaTZwDU5BaGZbwfhkEsXJn3Was8xYfE0RBH266xZt0rM6B7i8xAYIvjthuUIWHg==", "cpu": [ "ppc64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3832,13 +4263,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", - "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.12.2.tgz", + "integrity": "sha512-0CVdx6lcnT3Q9inOH8tsMIOJ6ImndllMjqJHg8RLVdB7Vq4SfkEXl9mCSsVNuNA4MCYycRicCUxPCabVHJRr6A==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3846,13 +4280,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", - "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.12.2.tgz", + "integrity": "sha512-iOwlRo9vnp6R6ohHQS11n0NnfdXx/omhkocmIfaPRpQhKZ+3BDMkkdRVh53qjkFkpPddf+FETA28NwGN7l5l+w==", "cpu": [ "riscv64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ @@ -3860,13 +4297,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", - "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.12.2.tgz", + "integrity": "sha512-HYJtLfXq94q8iZNFT1lknx258wlkkWhZeUXJRqzKBBUJ00CvZ+N33zgbCqimLjsyw5Va6uUxhVa12mI+kaveEw==", "cpu": [ "s390x" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3874,13 +4314,16 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", - "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.12.2.tgz", + "integrity": "sha512-mPsUhunKKDih5O96Y6enDQyHc1SqBPlY1E/SfMWDM3EdJ95Z9CArPeCVwCCqbP45ljvivdEk8Fxn+SIb1rDAJQ==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "glibc" + ], "license": "MIT", "optional": true, "os": [ @@ -3888,23 +4331,40 @@ ] }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", - "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.12.2.tgz", + "integrity": "sha512-azrt6+5ydLd8Vt210AAFis/lZevSfPw93EJRIJG+xPu4WCJ8K0kppCTpMyLPcKT7H15M4Jnt2tMp5bOvCkRC6A==", "cpu": [ "x64" ], "dev": true, + "libc": [ + "musl" + ], "license": "MIT", "optional": true, "os": [ "linux" ] }, + "node_modules/@unrs/resolver-binding-openharmony-arm64": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-openharmony-arm64/-/resolver-binding-openharmony-arm64-1.12.2.tgz", + "integrity": "sha512-YZ9hP4O0X9PQb8eO980qmLNGH4zT3I9+SZTdt0Pr0YyuGQhYKoOZkV02VzrzyOZJ5xIJ3UFIenKkUkGg8GjgWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", - "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.12.2.tgz", + "integrity": "sha512-tYFDIkMxSflfEc/h92ZWNsZlHSwgimbNHSO3PL2JWQHfCuC2q316jMyYU9TIWZsFK2bQwyK5VAdYgn8ygPj69A==", "cpu": [ "wasm32" ], @@ -3912,16 +4372,18 @@ "license": "MIT", "optional": true, "dependencies": { - "@napi-rs/wasm-runtime": "^0.2.11" + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" }, "engines": { "node": ">=14.0.0" } }, "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", - "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.12.2.tgz", + "integrity": "sha512-qzNyg3xL0VPQmCaUh+N5jSitce6k+uCBfMDesWRnlULOZaqUkaJ0ybdT+UqlAWJoQjuqfIU/0Ptx9bteN4D82g==", "cpu": [ "arm64" ], @@ -3933,9 +4395,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", - "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.12.2.tgz", + "integrity": "sha512-WD9sY00OfpHVGfsnHZoA8jVT+esS/Bg8z8jzxp5BnDCjjwsuKsPQrzswwpFy4J1AUJbXPRfkpcX0mXrzeXW79g==", "cpu": [ "ia32" ], @@ -3947,9 +4409,9 @@ ] }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", - "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.12.2.tgz", + "integrity": "sha512-nAB74NfSNKknqQ1RrYj6uz8FcXEomu/MATJZxh/x+BArzN2U3JbOYC0APYzUIGhVY3m5hRxA8VPNdPBoG8txlA==", "cpu": [ "x64" ], @@ -4121,53 +4583,6 @@ "@xtuc/long": "4.2.2" } }, - "node_modules/@webpack-cli/configtest": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-3.0.1.tgz", - "integrity": "sha512-u8d0pJ5YFgneF/GuvEiDA61Tf1VDomHHYMjv/wc9XzYj7nopltpG96nXN5dJRstxZhcNpV1g+nT6CydO7pHbjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-3.0.1.tgz", - "integrity": "sha512-coEmDzc2u/ffMvuW9aCjoRzNSPDl/XLuhPdlFRpT9tZHmJ/039az33CE7uH+8s0uL1j5ZNtfdv0HkfaKRBGJsQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-3.0.1.tgz", - "integrity": "sha512-sbgw03xQaCLiT6gcY/6u3qBDn01CWw/nbaXl3gTdTFuJJ75Gffv3E3DBpgvY2fkkrdS1fpjaXNOmJlnbtKauKg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12.0" - }, - "peerDependencies": { - "webpack": "^5.82.0", - "webpack-cli": "6.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", @@ -4183,12 +4598,11 @@ "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -4210,12 +4624,11 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.20.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz", + "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -4312,6 +4725,19 @@ "node": ">= 8" } }, + "node_modules/anymatch/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -4323,16 +4749,16 @@ } }, "node_modules/babel-jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.2.0.tgz", - "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-30.4.1.tgz", + "integrity": "sha512-fATAbM8piYxkiXQp3RBXmZHxZVNJZAVXXfyeyCN2Tida3+qJ8ea9UxhiJ2y4fLO90ZImKt6k9FlcH2+rLkJGhw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "30.2.0", + "@jest/transform": "30.4.1", "@types/babel__core": "^7.20.5", "babel-plugin-istanbul": "^7.0.1", - "babel-preset-jest": "30.2.0", + "babel-preset-jest": "30.4.0", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", "slash": "^3.0.0" @@ -4345,9 +4771,9 @@ } }, "node_modules/babel-loader": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.0.0.tgz", - "integrity": "sha512-z8jt+EdS61AMw22nSfoNJAZ0vrtmhPRVi6ghL3rCeRZI8cdNYFiV5xeV3HbE7rlZZNmGH8BVccwWt8/ED0QOHA==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-10.1.1.tgz", + "integrity": "sha512-JwKSzk2kjIe7mgPK+/lyZ2QAaJcpahNAdM+hgR2HI8D0OJVkdj8Rl6J3kaLYki9pwF7P2iWnD8qVv80Lq1ABtg==", "dev": true, "license": "MIT", "dependencies": { @@ -4357,30 +4783,197 @@ "node": "^18.20.0 || ^20.10.0 || >=22.0.0" }, "peerDependencies": { - "@babel/core": "^7.12.0", + "@babel/core": "^7.12.0 || ^8.0.0-beta.1", + "@rspack/core": "^1.0.0 || ^2.0.0-0", "webpack": ">=5.61.0" + }, + "peerDependenciesMeta": { + "@rspack/core": { + "optional": true + }, + "webpack": { + "optional": true + } } }, "node_modules/babel-plugin-formatjs": { - "version": "10.5.41", - "resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-10.5.41.tgz", - "integrity": "sha512-ZpozYGek+Bdyl52LgzW1MhPYBRKbROdbHBuBz7KAO88Ht7GcyCBiwJxpAjVDb0YBA9LGKUemGQOLdEDkRCe2hg==", + "version": "11.3.14", + "resolved": "https://registry.npmjs.org/babel-plugin-formatjs/-/babel-plugin-formatjs-11.3.14.tgz", + "integrity": "sha512-tyM0QGOCUi8PgfQVYLo7BTIkaS4pXFh9bw4p1FU5J2P9kFyxC7TLhWoIMLPZubzcG4F9W++eJ0nONf0r6aH68g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.26.10", - "@babel/helper-plugin-utils": "^7.26.5", - "@babel/plugin-syntax-jsx": "^7.25.9", - "@babel/traverse": "^7.26.10", - "@babel/types": "^7.26.10", - "@formatjs/icu-messageformat-parser": "2.11.4", - "@formatjs/ts-transformer": "3.14.2", + "@babel/core": "^7.28.5", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.29.0", + "@formatjs/icu-messageformat-parser": "3.5.12", + "@formatjs/ts-transformer": "4.4.14", "@types/babel__core": "^7.20.5", "@types/babel__helper-plugin-utils": "^7.10.3", - "@types/babel__traverse": "^7.20.6", - "tslib": "^2.8.0" + "@types/babel__traverse": "^7.28.0" } }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/helper-globals": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/template": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/traverse": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-plugin-formatjs/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/babel-plugin-istanbul": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", @@ -4401,10 +4994,20 @@ "node": ">=12" } }, + "node_modules/babel-plugin-istanbul/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/babel-plugin-jest-hoist": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", - "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", + "version": "30.4.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.4.0.tgz", + "integrity": "sha512-9EdtWM/sSfXLOGLwSn+GS6pIXyBnL07/8gyJlwFXjWy4DxMOyItqyUT29d4lQiS380EZwYlX7/At4PgBS+m2aA==", "dev": true, "license": "MIT", "dependencies": { @@ -4414,46 +5017,21 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.14.tgz", - "integrity": "sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/compat-data": "^7.27.7", - "@babel/helper-define-polyfill-provider": "^0.6.5", - "semver": "^6.3.1" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.13.0.tgz", - "integrity": "sha512-U+GNwMdSFgzVmfhNm8GJUX88AadB3uo9KpJqS3FaqNIPKgySuvMb+bHPsOmmuWyIcuqZj/pzt1RUIUZns4y2+A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-1.0.0.tgz", + "integrity": "sha512-yIkslVjbmml2Xjb6XhFW7lISXHsqk6cesxTdDsXoMom4Lnb99DbD3OQbSOoM5Z+ASh8YXYaLAsRQrU2Jeh3Qig==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5", - "core-js-compat": "^3.43.0" + "@babel/helper-define-polyfill-provider": "^1.0.0", + "core-js-compat": "^3.48.0" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" }, "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" - } - }, - "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.5.tgz", - "integrity": "sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.6.5" - }, - "peerDependencies": { - "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + "@babel/core": "^7.4.0 || ^8.0.0" } }, "node_modules/babel-preset-current-node-syntax": { @@ -4484,13 +5062,13 @@ } }, "node_modules/babel-preset-jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", - "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", + "version": "30.4.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-30.4.0.tgz", + "integrity": "sha512-lBY4jxsNmCnSiu7kquw8ZC9F4+XLMOKypT3RnNHPvU2Kpd4W0xaPuLr5ZkRyOsvLYAY4yaW1ZwTW4xB7NIiZzg==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "30.2.0", + "babel-plugin-jest-hoist": "30.4.0", "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { @@ -4501,11 +5079,14 @@ } }, "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } }, "node_modules/base64-js": { "version": "1.5.1", @@ -4528,13 +5109,16 @@ "license": "MIT" }, "node_modules/baseline-browser-mapping": { - "version": "2.9.11", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz", - "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==", + "version": "2.10.41", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.41.tgz", + "integrity": "sha512-WwS7MHhqGHHlaVsqRZnhvCEMS0owDX+SxRlve7JkuH7My1Ara3ZriTmCQupPfYjxMZ8I/tgxtJYr2t7taHaH4A==", "dev": true, "license": "Apache-2.0", "bin": { - "baseline-browser-mapping": "dist/cli.js" + "baseline-browser-mapping": "dist/cli.cjs" + }, + "engines": { + "node": ">=6.0.0" } }, "node_modules/binary-extensions": { @@ -4558,13 +5142,16 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.7.tgz", + "integrity": "sha512-7oFy703dxfY3/NLxC1fh2SUCQ0H9rmAY+5EpDVfXjUTTs+HEwR2nYaqLv+GWcTsumwxPfiz6CzCNkwXwBUwqCA==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" } }, "node_modules/braces": { @@ -4581,9 +5168,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", - "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "version": "4.28.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.4.tgz", + "integrity": "sha512-MTc8i/x9jBQd1iMw2CFGS+rwMa07eYjLR0CCTLDACl9xhxy+nIs3KeML/biicXtk9JrZ6dnnTatmc7ErPXIxqw==", "dev": true, "funding": [ { @@ -4600,13 +5187,12 @@ } ], "license": "MIT", - "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.9.0", - "caniuse-lite": "^1.0.30001759", - "electron-to-chromium": "^1.5.263", - "node-releases": "^2.0.27", - "update-browserslist-db": "^1.2.0" + "baseline-browser-mapping": "^2.10.38", + "caniuse-lite": "^1.0.30001799", + "electron-to-chromium": "^1.5.376", + "node-releases": "^2.0.48", + "update-browserslist-db": "^1.2.3" }, "bin": { "browserslist": "cli.js" @@ -4657,15 +5243,15 @@ "license": "MIT" }, "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.9.tgz", + "integrity": "sha512-a/hy+pNsFUTR+Iz8TCJvXudKVLAnz/DyeSUo10I5yvFDQJBFU2s9uqQpoSrJlroHUKoKqzg+epxyP9lqFdzfBQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "get-intrinsic": "^1.3.0", "set-function-length": "^1.2.2" }, "engines": { @@ -4727,22 +5313,20 @@ } }, "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-4.0.0.tgz", + "integrity": "sha512-B0hQ1OLyJuHTQSOWXvwibWqM6DCoqJdvBA6X1S/53bd4XU7LJ1yurIPlrsouol3mw1jh9pGI4ivubSpmJeIqCA==", "dev": true, "license": "MIT", "dependencies": { "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" + "caniuse-lite": "^1.0.0" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001761", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz", - "integrity": "sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==", + "version": "1.0.30001800", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001800.tgz", + "integrity": "sha512-MMHtuAz9Ys840zAY5F4k6fV5GaivZ9sPk+nz0mY+GYVzRBnYkN0mpqkSR92oWRQ19yQWo4HvBV/FnC16AJX8MA==", "dev": true, "funding": [ { @@ -4836,9 +5420,9 @@ } }, "node_modules/ci-info": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.3.1.tgz", - "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.4.0.tgz", + "integrity": "sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==", "dev": true, "funding": [ { @@ -4852,9 +5436,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz", - "integrity": "sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-2.2.0.tgz", + "integrity": "sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==", "dev": true, "license": "MIT" }, @@ -4923,20 +5507,6 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "license": "MIT" }, - "node_modules/colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true, - "license": "MIT" - }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true, - "license": "MIT" - }, "node_modules/commander": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", @@ -4962,20 +5532,20 @@ "license": "MIT" }, "node_modules/copy-webpack-plugin": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-13.0.1.tgz", - "integrity": "sha512-J+YV3WfhY6W/Xf9h+J1znYuqTye2xkBUIGyTPWuBAT27qajBa5mR4f8WBmfDY3YjRftT2kqZZiLi1qf0H+UOFw==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-14.0.0.tgz", + "integrity": "sha512-3JLW90aBGeaTLpM7mYQKpnVdgsUZRExY55giiZgLuX/xTQRUs1dOCwbBnWnvY6Q6rfZoXMNwzOQJCSZPppfqXA==", "dev": true, "license": "MIT", "dependencies": { "glob-parent": "^6.0.1", "normalize-path": "^3.0.0", "schema-utils": "^4.2.0", - "serialize-javascript": "^6.0.2", + "serialize-javascript": "^7.0.3", "tinyglobby": "^0.2.12" }, "engines": { - "node": ">= 18.12.0" + "node": ">= 20.9.0" }, "funding": { "type": "opencollective", @@ -4986,13 +5556,13 @@ } }, "node_modules/core-js-compat": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", - "integrity": "sha512-IGfuznZ/n7Kp9+nypamBhvwdwLsW6KC8IOaURw2doAK5e98AG3acVLdh0woOnEqCfUtS+Vu882JE4k/DAm3ItQ==", + "version": "3.49.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.49.0.tgz", + "integrity": "sha512-VQXt1jr9cBz03b331DFDCCP90b3fanciLkgiOoy8SBHy06gNf+vQ1A3WFLqG7I8TipYIKeYK9wxd0tUrvHcOZA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.28.0" + "browserslist": "^4.28.1" }, "funding": { "type": "opencollective", @@ -5014,19 +5584,6 @@ "node": ">= 8" } }, - "node_modules/css-declaration-sorter": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.3.0.tgz", - "integrity": "sha512-LQF6N/3vkAMYF4xoHLJfG718HRJh34Z8BnNhd6bosOMIVjMlhuZK5++oZa3uYAgrI5+7x2o27gUqTR2U/KjUOQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14 || ^16 || >=18" - }, - "peerDependencies": { - "postcss": "^8.0.9" - } - }, "node_modules/css-select": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.2.2.tgz", @@ -5045,14 +5602,14 @@ } }, "node_modules/css-tree": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", - "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.2.1.tgz", + "integrity": "sha512-X7sjQzceUhu1u7Y/ylrRZFU2FS6LRiFVp6rKLPg23y3x3c3DOKAwuXGDp+PAGjh6CSnCjYeAul8pcT8bAl+lSA==", "dev": true, "license": "MIT", "dependencies": { - "mdn-data": "2.12.2", - "source-map-js": "^1.0.1" + "mdn-data": "2.27.1", + "source-map-js": "^1.2.1" }, "engines": { "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" @@ -5085,82 +5642,81 @@ } }, "node_modules/cssnano": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.1.2.tgz", - "integrity": "sha512-HYOPBsNvoiFeR1eghKD5C3ASm64v9YVyJB4Ivnl2gqKoQYvjjN/G0rztvKQq8OxocUtC6sjqY8jwYngIB4AByA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-8.0.2.tgz", + "integrity": "sha512-K+a76gA1v0/CsYgcsE95HGGyIuPKxpQSetwSwz4nHEM8fFXqSkzq2JzEXFL8v5+CCjxzVVVhPcTK3Oo8SaF/xA==", "dev": true, "license": "MIT", "dependencies": { - "cssnano-preset-default": "^7.0.10", + "cssnano-preset-default": "^8.0.2", "lilconfig": "^3.1.3" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/cssnano" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/cssnano-preset-default": { - "version": "7.0.10", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-7.0.10.tgz", - "integrity": "sha512-6ZBjW0Lf1K1Z+0OKUAUpEN62tSXmYChXWi2NAA0afxEVsj9a+MbcB1l5qel6BHJHmULai2fCGRthCeKSFbScpA==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-8.0.2.tgz", + "integrity": "sha512-+jQAqIKCqMmBjZs7741XkilU93ITZ/EW8gjAkMmujdCzfDkfjrDBv2VqkSu29Fzeig/0rZ3S9IAwfPLlmXEUfQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "css-declaration-sorter": "^7.2.0", - "cssnano-utils": "^5.0.1", + "browserslist": "^4.28.2", + "cssnano-utils": "^6.0.1", "postcss-calc": "^10.1.1", - "postcss-colormin": "^7.0.5", - "postcss-convert-values": "^7.0.8", - "postcss-discard-comments": "^7.0.5", - "postcss-discard-duplicates": "^7.0.2", - "postcss-discard-empty": "^7.0.1", - "postcss-discard-overridden": "^7.0.1", - "postcss-merge-longhand": "^7.0.5", - "postcss-merge-rules": "^7.0.7", - "postcss-minify-font-values": "^7.0.1", - "postcss-minify-gradients": "^7.0.1", - "postcss-minify-params": "^7.0.5", - "postcss-minify-selectors": "^7.0.5", - "postcss-normalize-charset": "^7.0.1", - "postcss-normalize-display-values": "^7.0.1", - "postcss-normalize-positions": "^7.0.1", - "postcss-normalize-repeat-style": "^7.0.1", - "postcss-normalize-string": "^7.0.1", - "postcss-normalize-timing-functions": "^7.0.1", - "postcss-normalize-unicode": "^7.0.5", - "postcss-normalize-url": "^7.0.1", - "postcss-normalize-whitespace": "^7.0.1", - "postcss-ordered-values": "^7.0.2", - "postcss-reduce-initial": "^7.0.5", - "postcss-reduce-transforms": "^7.0.1", - "postcss-svgo": "^7.1.0", - "postcss-unique-selectors": "^7.0.4" + "postcss-colormin": "^8.0.1", + "postcss-convert-values": "^8.0.1", + "postcss-discard-comments": "^8.0.1", + "postcss-discard-duplicates": "^8.0.1", + "postcss-discard-empty": "^8.0.1", + "postcss-discard-overridden": "^8.0.1", + "postcss-merge-longhand": "^8.0.1", + "postcss-merge-rules": "^8.0.1", + "postcss-minify-font-values": "^8.0.1", + "postcss-minify-gradients": "^8.0.1", + "postcss-minify-params": "^8.0.1", + "postcss-minify-selectors": "^8.0.2", + "postcss-normalize-charset": "^8.0.1", + "postcss-normalize-display-values": "^8.0.1", + "postcss-normalize-positions": "^8.0.1", + "postcss-normalize-repeat-style": "^8.0.1", + "postcss-normalize-string": "^8.0.1", + "postcss-normalize-timing-functions": "^8.0.1", + "postcss-normalize-unicode": "^8.0.1", + "postcss-normalize-url": "^8.0.1", + "postcss-normalize-whitespace": "^8.0.1", + "postcss-ordered-values": "^8.0.1", + "postcss-reduce-initial": "^8.0.1", + "postcss-reduce-transforms": "^8.0.1", + "postcss-svgo": "^8.0.1", + "postcss-unique-selectors": "^8.0.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/cssnano-utils": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-5.0.1.tgz", - "integrity": "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-6.0.1.tgz", + "integrity": "sha512-zk65GIxA8tCjqVk7nTm1mE+ZKxtnxAvU5JSUaBLXbAr3ZF7IOvz3fbPOnEDvZKhnS7GOIitXTS5BgehLzNoc8Q==", "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/csso": { @@ -5230,9 +5786,9 @@ "license": "MIT" }, "node_modules/dedent": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.1.tgz", - "integrity": "sha512-9JmrhGZpOlEgOLdQgSm0zxFaYoQon408V1v49aqTWuXENVlnCuY9JBZcXZiCsZQWDjTm5Qf/nIvAy77mXDAjEg==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.2.tgz", + "integrity": "sha512-WzMx3mW98SN+zn3hgemf4OzdmyNhhhKz5Ay0pUfQiMQ3e1g+xmTJWp/pKdwKVXhdSkAEGIIzqeuWrL3mV/AXbA==", "dev": true, "license": "MIT", "peerDependencies": { @@ -5380,9 +5936,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.267", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", - "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", + "version": "1.5.387", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.387.tgz", + "integrity": "sha512-TaxwufTFDufvPEoXdhwVrA3UdFWBeWGkYoJ1K8ldF1xe6gKfth6iRNS5lTQ5JPNOHdGQm8PT1QYKUqFLCiUefQ==", "dev": true, "license": "ISC" }, @@ -5405,15 +5961,25 @@ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "license": "MIT" }, + "node_modules/empathic": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.1.tgz", + "integrity": "sha512-YGRs8knHhKHVShLkFET/rWAU8kmHbOV5LwN938RHI0pljAJ1Gf6SzXsSmRaEzcXTtOOmVqJ5+WtQPL5uigY50Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + } + }, "node_modules/enhanced-resolve": { - "version": "5.18.4", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", - "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "version": "5.24.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.24.1.tgz", + "integrity": "sha512-7DdUaTjmNwMcH2gLr1qycesKII3BK4RLy/mdAb7x10Lq7bR4aNKHt1BR1ZALSv0rPM/hF5wYF0PhGop/rJm8vw==", "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "tapable": "^2.3.3" }, "engines": { "node": ">=10.13.0" @@ -5476,16 +6042,16 @@ } }, "node_modules/es-module-lexer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.0.0.tgz", - "integrity": "sha512-5POEcUuZybH7IdmGsD8wlf0AI55wMecM9rVBTI/qEAy2c1kTOm3DjFYjrBdI2K3BaJjJYfYFeRtM0t9ssnRuxw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-2.3.0.tgz", + "integrity": "sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==", "dev": true, "license": "MIT" }, "node_modules/es-object-atoms": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", - "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", "dev": true, "license": "MIT", "dependencies": { @@ -5629,18 +6195,18 @@ } }, "node_modules/expect": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-30.2.0.tgz", - "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/expect/-/expect-30.4.1.tgz", + "integrity": "sha512-PMARsyh/JtqC20HoGqlFcIlQAyqUtW4PlI1rup1uhYJtKuwAjbvWi3GQMAn+STdHum/dk8xrKfUM1+5SAwpolA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "30.2.0", + "@jest/expect-utils": "30.4.1", "@jest/get-type": "30.1.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", - "jest-util": "30.2.0" + "jest-matcher-utils": "30.4.1", + "jest-message-util": "30.4.1", + "jest-mock": "30.4.1", + "jest-util": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -5661,9 +6227,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.3.tgz", + "integrity": "sha512-i70LwGWUduXqzicKXWshooq+sWL1K3WUU5rKZNG/0i3a1OSoX3HqhH5WbWwTmqWfor4urUakGPiRQcleRZTwOg==", "dev": true, "funding": [ { @@ -5677,16 +6243,6 @@ ], "license": "BSD-3-Clause" }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4.9.1" - } - }, "node_modules/faye-websocket": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", @@ -5709,6 +6265,24 @@ "bser": "2.1.1" } }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -5840,9 +6414,9 @@ } }, "node_modules/fs-extra": { - "version": "11.3.3", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.3.tgz", - "integrity": "sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg==", + "version": "11.3.6", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.6.tgz", + "integrity": "sha512-w8ZNZr2mKIc7qeNaQ9AVPT1+iFaI+Avd4xudVOvdDJ8VytREi1Ft5Ih7hd9jjehod8vAM5GMsfQ/TpPf4EyoEA==", "dev": true, "license": "MIT", "dependencies": { @@ -5968,18 +6542,18 @@ } }, "node_modules/glob": { - "version": "13.0.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", - "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", + "version": "13.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.6.tgz", + "integrity": "sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "path-scurry": "^2.0.0" + "minimatch": "^10.2.2", + "minipass": "^7.1.3", + "path-scurry": "^2.0.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -5998,13 +6572,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true, - "license": "BSD-2-Clause" - }, "node_modules/gopd": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", @@ -6062,9 +6629,9 @@ } }, "node_modules/hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", "dev": true, "license": "MIT", "dependencies": { @@ -6083,12 +6650,6 @@ "react-is": "^16.7.0" } }, - "node_modules/hoist-non-react-statics/node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", - "license": "MIT" - }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -6158,6 +6719,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.2.0.tgz", + "integrity": "sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -6215,6 +6787,27 @@ "tslib": "^2.8.0" } }, + "node_modules/intl-messageformat/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" + } + }, + "node_modules/intl-messageformat/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -6236,13 +6829,13 @@ } }, "node_modules/is-core-module": { - "version": "2.16.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", - "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "version": "2.16.2", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.2.tgz", + "integrity": "sha512-evOr8xfXKxE6qSR0hSXL2r3sd7ALj8+7jQEUvPYcm5sgZFdJ+AYzT6yNmJenvIYQBgIGwfwz08sL8zoL7yq2BA==", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.2" + "hasown": "^2.0.3" }, "engines": { "node": ">= 0.4" @@ -6380,17 +6973,54 @@ "node": ">=10" } }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "dev": true, - "license": "ISC", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, "bin": { - "semver": "bin/semver.js" + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=10" + "node": ">=6.0.0" + } + }, + "node_modules/istanbul-lib-instrument/node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" } }, "node_modules/istanbul-lib-report": { @@ -6454,16 +7084,16 @@ } }, "node_modules/jest": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-30.2.0.tgz", - "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/jest/-/jest-30.4.2.tgz", + "integrity": "sha512-Yi1jqNC/Oq0N4hBgNH/YvBpP1P57QqundgytzYqy3yqAa7NZPNjSoi4SGbRAXDMdBzNE6xBCi5U7RgfrvMEUVQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.2.0", - "@jest/types": "30.2.0", + "@jest/core": "30.4.2", + "@jest/types": "30.4.1", "import-local": "^3.2.0", - "jest-cli": "30.2.0" + "jest-cli": "30.4.2" }, "bin": { "jest": "bin/jest.js" @@ -6481,14 +7111,14 @@ } }, "node_modules/jest-changed-files": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.2.0.tgz", - "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-30.4.1.tgz", + "integrity": "sha512-IuctmYrxi21iOSOaIXpJWalHyPAsVv0GeBHKDn8C1CA4W5htHn7INL+wdnL4Bo0+olEndvAFkmb++tIQJG+vvg==", "dev": true, "license": "MIT", "dependencies": { "execa": "^5.1.1", - "jest-util": "30.2.0", + "jest-util": "30.4.1", "p-limit": "^3.1.0" }, "engines": { @@ -6496,29 +7126,29 @@ } }, "node_modules/jest-circus": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.2.0.tgz", - "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-30.4.2.tgz", + "integrity": "sha512-rvHH7VlY6LgbJXJTQ87GW62g1FntOtbhh0zT+v04kC+pgL6aBKyYINXxWukCpj3dcIBMw5/XUbtDS9dU9JTXeQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/expect": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/environment": "30.4.1", + "@jest/expect": "30.4.1", + "@jest/test-result": "30.4.1", + "@jest/types": "30.4.1", "@types/node": "*", "chalk": "^4.1.2", "co": "^4.6.0", "dedent": "^1.6.0", "is-generator-fn": "^2.1.0", - "jest-each": "30.2.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-runtime": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", + "jest-each": "30.4.1", + "jest-matcher-utils": "30.4.1", + "jest-message-util": "30.4.1", + "jest-runtime": "30.4.2", + "jest-snapshot": "30.4.1", + "jest-util": "30.4.1", "p-limit": "^3.1.0", - "pretty-format": "30.2.0", + "pretty-format": "30.4.1", "pure-rand": "^7.0.0", "slash": "^3.0.0", "stack-utils": "^2.0.6" @@ -6528,21 +7158,21 @@ } }, "node_modules/jest-cli": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.2.0.tgz", - "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-30.4.2.tgz", + "integrity": "sha512-jfA2ocvVHMXS2QijrJ0d31ektP+d/W0T5RpcTX2Pq+3sVqHlsXVCM2+FmwpL+bdY8OfHpIg9xMxLF17Zg0U49Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/core": "30.4.2", + "@jest/test-result": "30.4.1", + "@jest/types": "30.4.1", "chalk": "^4.1.2", "exit-x": "^0.2.2", "import-local": "^3.2.0", - "jest-config": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", + "jest-config": "30.4.2", + "jest-util": "30.4.1", + "jest-validate": "30.4.1", "yargs": "^17.7.2" }, "bin": { @@ -6561,34 +7191,33 @@ } }, "node_modules/jest-config": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.2.0.tgz", - "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-30.4.2.tgz", + "integrity": "sha512-rNHAShJQqQwFNoL0hbf3BphSBOWnpOUAKvidLS/AjNVLPfoj5mSf4jQMfW3cYOs6hXeZC7nF7mDHaBnbxELOzg==", "dev": true, "license": "MIT", "dependencies": { "@babel/core": "^7.27.4", "@jest/get-type": "30.1.0", - "@jest/pattern": "30.0.1", - "@jest/test-sequencer": "30.2.0", - "@jest/types": "30.2.0", - "babel-jest": "30.2.0", + "@jest/pattern": "30.4.0", + "@jest/test-sequencer": "30.4.1", + "@jest/types": "30.4.1", + "babel-jest": "30.4.1", "chalk": "^4.1.2", "ci-info": "^4.2.0", "deepmerge": "^4.3.1", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", - "jest-circus": "30.2.0", - "jest-docblock": "30.2.0", - "jest-environment-node": "30.2.0", - "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-runner": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", - "micromatch": "^4.0.8", + "jest-circus": "30.4.2", + "jest-docblock": "30.4.0", + "jest-environment-node": "30.4.1", + "jest-regex-util": "30.4.0", + "jest-resolve": "30.4.1", + "jest-runner": "30.4.2", + "jest-util": "30.4.1", + "jest-validate": "30.4.1", "parse-json": "^5.2.0", - "pretty-format": "30.2.0", + "pretty-format": "30.4.1", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, @@ -6612,10 +7241,28 @@ } } }, + "node_modules/jest-config/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-config/node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/jest-config/node_modules/glob": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -6641,13 +7288,13 @@ "license": "ISC" }, "node_modules/jest-config/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -6674,25 +7321,25 @@ } }, "node_modules/jest-diff": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.2.0.tgz", - "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-30.4.1.tgz", + "integrity": "sha512-CRpFK0RtLriVDGcPPAnR6HMVI8bSR2jnUIgralhauzYQZIb4RH9AtEInTuQr65LmmGggGcRT6HIASxwqsVsmlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/diff-sequences": "30.0.1", + "@jest/diff-sequences": "30.4.0", "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "pretty-format": "30.2.0" + "pretty-format": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-docblock": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.2.0.tgz", - "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", + "version": "30.4.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-30.4.0.tgz", + "integrity": "sha512-ZPMabUZCx5MpbZ2eBYSvZ0J8fvo3dR9oM+eeUpb3aKNQFuS2tu3Duw1TNlMoP8k3WQgKGJuhcMFvwcVuq6T7oA==", "dev": true, "license": "MIT", "dependencies": { @@ -6703,57 +7350,57 @@ } }, "node_modules/jest-each": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.2.0.tgz", - "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-30.4.1.tgz", + "integrity": "sha512-/8MJbH6fuj48TstjrMf+u/pd06Qezz5xOXvZA6442heNOWr8bdeoGZX2d9fCn028CoMgYmroH9//zky5GfyYmA==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.2.0", + "@jest/types": "30.4.1", "chalk": "^4.1.2", - "jest-util": "30.2.0", - "pretty-format": "30.2.0" + "jest-util": "30.4.1", + "pretty-format": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-environment-node": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.2.0.tgz", - "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-30.4.1.tgz", + "integrity": "sha512-4FZYVOk85hz2AyT6BbarKy9u37g6DbrDyCdFhsnDdXqyrueYQvB+0zO4f/kqLCRD0BsPRXPMNJeQwihKZV8naw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/fake-timers": "30.2.0", - "@jest/types": "30.2.0", + "@jest/environment": "30.4.1", + "@jest/fake-timers": "30.4.1", + "@jest/types": "30.4.1", "@types/node": "*", - "jest-mock": "30.2.0", - "jest-util": "30.2.0", - "jest-validate": "30.2.0" + "jest-mock": "30.4.1", + "jest-util": "30.4.1", + "jest-validate": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.2.0.tgz", - "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-30.4.1.tgz", + "integrity": "sha512-rFrcONd8jeFsyw+Z9CrScJgglRf2+NFmNam8dKu7n+SoHqNYT47mn0DdEcVUZJpvh7Iz6/si7f7yUH7GJHVgnw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@jest/types": "30.4.1", "@types/node": "*", "anymatch": "^3.1.3", "fb-watchman": "^2.0.2", "graceful-fs": "^4.2.11", - "jest-regex-util": "30.0.1", - "jest-util": "30.2.0", - "jest-worker": "30.2.0", - "micromatch": "^4.0.8", + "jest-regex-util": "30.4.0", + "jest-util": "30.4.1", + "jest-worker": "30.4.1", + "picomatch": "^4.0.3", "walker": "^1.0.8" }, "engines": { @@ -6764,49 +7411,50 @@ } }, "node_modules/jest-leak-detector": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", - "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-30.4.1.tgz", + "integrity": "sha512-IpmyiioeHxiWDhesHnUFmOxcTzwCwKpgACgWajtAP+nYQXiY7DakTxB6Bx9JFiRMljr0AX1PvnQdaU1KFoz6NQ==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "pretty-format": "30.2.0" + "pretty-format": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", - "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-30.4.1.tgz", + "integrity": "sha512-zvYfX5CaeEkFrrLS9suWe9rvJrm9J1Iv3ua8kIBv9GEPzcnsfBf0bob37la7s67fs0nlBC3EuvkOLnXQKxtx4A==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", "chalk": "^4.1.2", - "jest-diff": "30.2.0", - "pretty-format": "30.2.0" + "jest-diff": "30.4.1", + "pretty-format": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.2.0.tgz", - "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-30.4.1.tgz", + "integrity": "sha512-kwCKIvq0MCW1HzLoGola9Te6JUdzgV0loyKJ3Qghrkz9i5/RRIHsL95BMQc2HBBhlBKC4j22K9p11TGHH8RBpQ==", "dev": true, "license": "MIT", "dependencies": { "@babel/code-frame": "^7.27.1", - "@jest/types": "30.2.0", + "@jest/types": "30.4.1", "@types/stack-utils": "^2.0.3", "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "micromatch": "^4.0.8", - "pretty-format": "30.2.0", + "jest-util": "30.4.1", + "picomatch": "^4.0.3", + "pretty-format": "30.4.1", "slash": "^3.0.0", "stack-utils": "^2.0.6" }, @@ -6814,16 +7462,48 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-mock": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.2.0.tgz", - "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", + "node_modules/jest-message-util/node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-message-util/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-message-util/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-mock": { + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-30.4.1.tgz", + "integrity": "sha512-/i8SVb8/NSB7RfNi8gfqu8gxLV23KaL5EpAttyb9iz8qWRIqXRLflycz/32wXsYkOnaUlx8NAKnJYtpsmXUmfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.4.1", "@types/node": "*", - "jest-util": "30.2.0" + "jest-util": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -6848,9 +7528,9 @@ } }, "node_modules/jest-regex-util": { - "version": "30.0.1", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.0.1.tgz", - "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", + "version": "30.4.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-30.4.0.tgz", + "integrity": "sha512-mWlvLviKIgIQ8VCuM1xRdD0TWp3zlzionlmDBjuXVBs+VkmXq6FgW9T4Emr7oGz/Rk6feDCGyiugolcQEyp3mg==", "dev": true, "license": "MIT", "engines": { @@ -6858,18 +7538,18 @@ } }, "node_modules/jest-resolve": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.2.0.tgz", - "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-30.4.1.tgz", + "integrity": "sha512-Zry8Yq/yJcNAZ7dJ5F2heic8AheXvbFZ7XI5V+h28nrYZ7Qoyy4dItq8OodjnYD270mvX+ZudmrNV9cysqhW5Q==", "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.2", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", + "jest-haste-map": "30.4.1", "jest-pnp-resolver": "^1.2.3", - "jest-util": "30.2.0", - "jest-validate": "30.2.0", + "jest-util": "30.4.1", + "jest-validate": "30.4.1", "slash": "^3.0.0", "unrs-resolver": "^1.7.11" }, @@ -6878,46 +7558,46 @@ } }, "node_modules/jest-resolve-dependencies": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", - "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-30.4.2.tgz", + "integrity": "sha512-gDiVh1I+GxYzz9oXlyw+1wv6VOYX1WYxMOfjsA3iGKePV2oxmbHhwxfkALxNxYy1ciw6APWwkW2zZONwP97aEQ==", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "30.0.1", - "jest-snapshot": "30.2.0" + "jest-regex-util": "30.4.0", + "jest-snapshot": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.2.0.tgz", - "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-30.4.2.tgz", + "integrity": "sha512-2dw0PslVYXxffXGpLo+Ejad+KcI1Qkjn7f4X4619gf21oCUmL+SPfjqIa/losUem3yEOvfNZe/F1HWUcNpODcg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "30.2.0", - "@jest/environment": "30.2.0", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/console": "30.4.1", + "@jest/environment": "30.4.1", + "@jest/test-result": "30.4.1", + "@jest/transform": "30.4.1", + "@jest/types": "30.4.1", "@types/node": "*", "chalk": "^4.1.2", "emittery": "^0.13.1", "exit-x": "^0.2.2", "graceful-fs": "^4.2.11", - "jest-docblock": "30.2.0", - "jest-environment-node": "30.2.0", - "jest-haste-map": "30.2.0", - "jest-leak-detector": "30.2.0", - "jest-message-util": "30.2.0", - "jest-resolve": "30.2.0", - "jest-runtime": "30.2.0", - "jest-util": "30.2.0", - "jest-watcher": "30.2.0", - "jest-worker": "30.2.0", + "jest-docblock": "30.4.0", + "jest-environment-node": "30.4.1", + "jest-haste-map": "30.4.1", + "jest-leak-detector": "30.4.1", + "jest-message-util": "30.4.1", + "jest-resolve": "30.4.1", + "jest-runtime": "30.4.2", + "jest-util": "30.4.1", + "jest-watcher": "30.4.1", + "jest-worker": "30.4.1", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, @@ -6926,32 +7606,32 @@ } }, "node_modules/jest-runtime": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.2.0.tgz", - "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", + "version": "30.4.2", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-30.4.2.tgz", + "integrity": "sha512-3/5e8iPz2k/VLqlr8DgTftYyLUv8Su3FkCAO2/Od81UsUTpSxOrS6O5x5KkoQwyUjmpYyDJKeyAvg2T2nvpNkQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "30.2.0", - "@jest/fake-timers": "30.2.0", - "@jest/globals": "30.2.0", + "@jest/environment": "30.4.1", + "@jest/fake-timers": "30.4.1", + "@jest/globals": "30.4.1", "@jest/source-map": "30.0.1", - "@jest/test-result": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/test-result": "30.4.1", + "@jest/transform": "30.4.1", + "@jest/types": "30.4.1", "@types/node": "*", "chalk": "^4.1.2", "cjs-module-lexer": "^2.1.0", "collect-v8-coverage": "^1.0.2", - "glob": "^10.3.10", + "glob": "^10.5.0", "graceful-fs": "^4.2.11", - "jest-haste-map": "30.2.0", - "jest-message-util": "30.2.0", - "jest-mock": "30.2.0", - "jest-regex-util": "30.0.1", - "jest-resolve": "30.2.0", - "jest-snapshot": "30.2.0", - "jest-util": "30.2.0", + "jest-haste-map": "30.4.1", + "jest-message-util": "30.4.1", + "jest-mock": "30.4.1", + "jest-regex-util": "30.4.0", + "jest-resolve": "30.4.1", + "jest-snapshot": "30.4.1", + "jest-util": "30.4.1", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, @@ -6959,10 +7639,28 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/jest-runtime/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/brace-expansion": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.1.tgz", + "integrity": "sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/jest-runtime/node_modules/glob": { "version": "10.5.0", "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -6988,13 +7686,13 @@ "license": "ISC" }, "node_modules/jest-runtime/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -7021,9 +7719,9 @@ } }, "node_modules/jest-snapshot": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.2.0.tgz", - "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-30.4.1.tgz", + "integrity": "sha512-tEOkkfOMppUyeiHwjZswOQ3lcnoTnws/q5FnGIaeIh/jmoU0ZlgMYRR8sTlTj+nNGCoJ0RDq6SfxGxCsyMTPmw==", "dev": true, "license": "MIT", "dependencies": { @@ -7032,20 +7730,20 @@ "@babel/plugin-syntax-jsx": "^7.27.1", "@babel/plugin-syntax-typescript": "^7.27.1", "@babel/types": "^7.27.3", - "@jest/expect-utils": "30.2.0", + "@jest/expect-utils": "30.4.1", "@jest/get-type": "30.1.0", - "@jest/snapshot-utils": "30.2.0", - "@jest/transform": "30.2.0", - "@jest/types": "30.2.0", + "@jest/snapshot-utils": "30.4.1", + "@jest/transform": "30.4.1", + "@jest/types": "30.4.1", "babel-preset-current-node-syntax": "^1.2.0", "chalk": "^4.1.2", - "expect": "30.2.0", + "expect": "30.4.1", "graceful-fs": "^4.2.11", - "jest-diff": "30.2.0", - "jest-matcher-utils": "30.2.0", - "jest-message-util": "30.2.0", - "jest-util": "30.2.0", - "pretty-format": "30.2.0", + "jest-diff": "30.4.1", + "jest-matcher-utils": "30.4.1", + "jest-message-util": "30.4.1", + "jest-util": "30.4.1", + "pretty-format": "30.4.1", "semver": "^7.7.2", "synckit": "^0.11.8" }, @@ -7053,63 +7751,130 @@ "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-util": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.2.0.tgz", - "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", + "node_modules/jest-snapshot/node_modules/@babel/generator": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "30.2.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/helper-plugin-utils": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/parser": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/plugin-syntax-jsx": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.29.7.tgz", + "integrity": "sha512-TSu8+mHCoEaaCDEZ0I3+6mvTBYR4PCxQwf2z9/r5Tbztv6NaLR3B9thGTTxX2WGuGHJqRiAbKPeGTJ5XWXVg6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/jest-snapshot/node_modules/@babel/types": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/jest-util": { + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-30.4.1.tgz", + "integrity": "sha512-vjQb1sACEiv13DKJMDToJpzVW0joCsIQrmbg0fi7CyOOt+g9jTuQl2A216pWRBYhOVt53XbL/2LbMKg1BECWOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/types": "30.4.1", "@types/node": "*", "chalk": "^4.1.2", "ci-info": "^4.2.0", "graceful-fs": "^4.2.11", - "picomatch": "^4.0.2" + "picomatch": "^4.0.3" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-util/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/jest-validate": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.2.0.tgz", - "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-30.4.1.tgz", + "integrity": "sha512-PDWi4SOwLnwqNDfHZjOcsEFyZ4fc/2W2gVL3DEoyqnB6jCQMLRtfBong8s6omIw3lI0HWOus12xfnFmQtjW3fw==", "dev": true, "license": "MIT", "dependencies": { "@jest/get-type": "30.1.0", - "@jest/types": "30.2.0", + "@jest/types": "30.4.1", "camelcase": "^6.3.0", "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "30.2.0" + "pretty-format": "30.4.1" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -7129,19 +7894,19 @@ } }, "node_modules/jest-watcher": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.2.0.tgz", - "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-30.4.1.tgz", + "integrity": "sha512-/l9UonmvCwjHH7d2h3iAwIloLc1H0S8mJZ/LNK3i86hqwPAz8otUJjP9MfYtz9Tt77Su5FD2xGjZn8d31IZHlw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "30.2.0", - "@jest/types": "30.2.0", + "@jest/test-result": "30.4.1", + "@jest/types": "30.4.1", "@types/node": "*", "ansi-escapes": "^4.3.2", "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "30.2.0", + "jest-util": "30.4.1", "string-length": "^4.0.2" }, "engines": { @@ -7149,15 +7914,15 @@ } }, "node_modules/jest-worker": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.2.0.tgz", - "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-30.4.1.tgz", + "integrity": "sha512-SHynN/q/QD++iNyvMdy+WMmbCGk8jIsNcRxycXbWubSOhvo6T+j2afcfUSl+3hYsiBebOTo0cT7c2H7CXugu1g==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", "@ungap/structured-clone": "^1.3.0", - "jest-util": "30.2.0", + "jest-util": "30.4.1", "merge-stream": "^2.0.0", "supports-color": "^8.1.1" }, @@ -7182,15 +7947,16 @@ } }, "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-10.0.0.tgz", + "integrity": "sha512-lM/UBzQmfJRo9ABXbPWemivdCW8V2G8FHaHdypQaIy523snUjog0W71ayWXTjiR+ixeMyVHN2XcpnTd/liPg/Q==", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", - "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.15.0.tgz", + "integrity": "sha512-ttBQIIQPDeLjpPOohtUdXuXUVoA2uIB6fEH9HyJ7234s5mBJ5wTx20njxplLZQgLaOfpmPQA7X2t5AX6tIPbog==", "dev": true, "license": "MIT", "dependencies": { @@ -7262,9 +8028,9 @@ } }, "node_modules/jsonfile": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", - "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.1.tgz", + "integrity": "sha512-zwOTdL3rFQ/lRdBnntKVOX6k5cKJwEc1HdilT71BWEu7J41gXIB2MRp+vxduPSwZJPWBxEzv4yH1wYLJGUHX4Q==", "dev": true, "license": "MIT", "dependencies": { @@ -7305,9 +8071,9 @@ } }, "node_modules/libphonenumber-js": { - "version": "1.12.33", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.12.33.tgz", - "integrity": "sha512-r9kw4OA6oDO4dPXkOrXTkArQAafIKAU71hChInV4FxZ69dxCfbwQGDPzqR5/vea94wU705/3AZroEbSoeVWrQw==", + "version": "1.13.8", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.13.8.tgz", + "integrity": "sha512-80xal1m93rADejw2pMp2MSzFhHCPLEspjHxnH2UtqI+DgAmElsbmLMiqk9niwH9NWAfjsRtaJI+qBrOEmRx9nQ==", "license": "MIT" }, "node_modules/lilconfig": { @@ -7331,9 +8097,9 @@ "license": "MIT" }, "node_modules/loader-runner": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.1.tgz", - "integrity": "sha512-IWqP2SCPhyVFTBtRcgMHdzlf9ul25NwaFx4wCEH/KjAXuuHY4yNjvPXsBokp8jCB936PyWRaPKUNh8NvylLp2Q==", + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.2.tgz", + "integrity": "sha512-DFEqQ3ihfS9blba08cLfYf1NRAIEm+dDjic073DRDc3/JspI/8wYmtDsHwd3+4hwvdxSK7PGaElfTmm0awWJ4w==", "dev": true, "license": "MIT", "engines": { @@ -7373,20 +8139,6 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true, - "license": "MIT" - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true, - "license": "MIT" - }, "node_modules/long": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", @@ -7405,14 +8157,20 @@ "loose-envify": "cli.js" } }, + "node_modules/loose-envify/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "11.5.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.5.1.tgz", + "integrity": "sha512-RPimw/7aMdv2oqRrxKwvZXcPfwBrn/JZ2xYcY9Hus/6LaS3VOAKVWKWgNLCFSiOm1ESXinjsDlidVU7JlnCN2A==", "dev": true, - "license": "ISC", - "dependencies": { - "yallist": "^3.0.2" + "license": "BlueOak-1.0.0", + "engines": { + "node": "20 || >=22" } }, "node_modules/make-dir": { @@ -7431,19 +8189,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", - "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/makeerror": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", @@ -7465,9 +8210,9 @@ } }, "node_modules/mdn-data": { - "version": "2.12.2", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", - "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.27.1.tgz", + "integrity": "sha512-9Yubnt3e8A0OKwxYSXyhLymGW4sCufcLG6VdiDdUGVkPhpqLxlvP5vl1983gQjJl3tqbrM731mjaZaP68AgosQ==", "dev": true, "license": "CC0-1.0" }, @@ -7478,43 +8223,16 @@ "dev": true, "license": "MIT" }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "version": "1.54.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz", + "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, "license": "MIT", "engines": { "node": ">= 0.6" } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dev": true, - "license": "MIT", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", @@ -7526,27 +8244,119 @@ } }, "node_modules/minimatch": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", - "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { - "@isaacs/brace-expansion": "^5.0.0" + "brace-expansion": "^5.0.5" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/minimizer-webpack-plugin": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/minimizer-webpack-plugin/-/minimizer-webpack-plugin-5.6.1.tgz", + "integrity": "sha512-DoeAZz8Q1C1znwsUzej1fdoi4jCf7/+Em27ouLqfK/+3m8G+D7yDhUwrc3CNhjSzGUN1kn7Iv4sWmjflQHenpw==", "dev": true, - "license": "ISC", + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.25", + "jest-worker": "^27.4.5", + "schema-utils": "^4.3.0", + "terser": "^5.31.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@minify-html/node": { + "optional": true + }, + "@swc/core": { + "optional": true + }, + "@swc/css": { + "optional": true + }, + "@swc/html": { + "optional": true + }, + "clean-css": { + "optional": true + }, + "cssnano": { + "optional": true + }, + "csso": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "html-minifier-terser": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "postcss": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/minimizer-webpack-plugin/node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/minimizer-webpack-plugin/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "dev": true, + "license": "BlueOak-1.0.0", "engines": { "node": ">=16 || 14 >=14.17" } @@ -7559,9 +8369,9 @@ "license": "MIT" }, "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "version": "3.3.15", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.15.tgz", + "integrity": "sha512-y7Wygv/7mEOvxTuEQDB8StXdMRBWf1kR/tlhAzBRUFkB2jfcLOAxO/SHmOO2zgz1pVgK29/kyupn059/bCHdjA==", "dev": true, "funding": [ { @@ -7615,11 +8425,14 @@ "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", - "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "version": "2.0.50", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.50.tgz", + "integrity": "sha512-J6l92tKHX6w8Jy5nO1Vuc01NoIiRGi/d6qBKVxh+IQ8Cr3b6HbVNfKiF8ZpFKufTwpwxMmce2W3iQZ861ZRyTg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/normalize-path": { "version": "3.0.0", @@ -7667,6 +8480,20 @@ "node": ">= 0.4" } }, + "node_modules/obug": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.3.tgz", + "integrity": "sha512-9miFgM2OFba7hB+pRgvtV84pYTBaoTHohvmIgiRt6dRIzbwEOIaNaP+dIlGs2fNFoB0SeISs0Jz5WFVRid6Xyg==", + "dev": true, + "funding": [ + "https://github.com/sponsors/sxzz", + "https://opencollective.com/debug" + ], + "license": "MIT", + "engines": { + "node": ">=12.20.0" + } + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7761,6 +8588,38 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-json/node_modules/@babel/code-frame": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.29.7", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/parse-json/node_modules/@babel/helper-validator-identifier": { + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/parse-json/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -7799,9 +8658,9 @@ "license": "MIT" }, "node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.2.tgz", + "integrity": "sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==", "dev": true, "license": "BlueOak-1.0.0", "dependencies": { @@ -7809,22 +8668,12 @@ "minipass": "^7.1.2" }, "engines": { - "node": "20 || >=22" + "node": "18 || 20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "11.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.4.tgz", - "integrity": "sha512-B5Y16Jr9LB9dHVkh6ZevG+vAbOsNOYCX+sXvFWFu7B3Iz5mijW3zdbMyhsh8ANd2mSWBYdJgnqi+mL7/LrOPYg==", - "dev": true, - "license": "BlueOak-1.0.0", - "engines": { - "node": "20 || >=22" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -7833,13 +8682,13 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.5.tgz", + "integrity": "sha512-RvwwcruNjI1ncT5xRakeyS9Lf8lcItv34KD+aif+VH9kduAyfYBipGh12274xtenIPZ119/R9BdTBa8gAwSh0A==", "dev": true, "license": "MIT", "engines": { - "node": ">=8.6" + "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" @@ -7935,9 +8784,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.16", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.16.tgz", + "integrity": "sha512-vuwillviilfKZsg0VGj5R/YwwcHx4SLsIOI/7K6mQkWx+l5cUHTjj5g0AasTBcyXsbfTgrwsUNmVUb5xVwyPwg==", "dev": true, "funding": [ { @@ -7954,9 +8803,8 @@ } ], "license": "MIT", - "peer": true, "dependencies": { - "nanoid": "^3.3.11", + "nanoid": "^3.3.12", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" }, @@ -8024,94 +8872,94 @@ } }, "node_modules/postcss-colormin": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-7.0.5.tgz", - "integrity": "sha512-ekIBP/nwzRWhEMmIxHHbXHcMdzd1HIUzBECaj5KEdLz9DVP2HzT065sEhvOx1dkLjYW7jyD0CngThx6bpFi2fA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-8.0.1.tgz", + "integrity": "sha512-qBY4ABQ6d8/mk5RRZHwMllrZMxeMey3azVY2dZUEk+RgiUC4ARdPR3/AITzNqqKTbvW/3y/MJKinDrzwqn8RDQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "caniuse-api": "^3.0.0", - "colord": "^2.9.3", + "@colordx/core": "^5.4.3", + "browserslist": "^4.28.2", + "caniuse-api": "^4.0.0", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-convert-values": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-7.0.8.tgz", - "integrity": "sha512-+XNKuPfkHTCEo499VzLMYn94TiL3r9YqRE3Ty+jP7UX4qjewUONey1t7CG21lrlTLN07GtGM8MqFVp86D4uKJg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-8.0.1.tgz", + "integrity": "sha512-IdOSIX3BzfMvCc1TAHIha2gfy17xnb5vfML8e2BIKARnFOghksESfaSAB/3CXgyLfMozZAbTRPVQF5dbuKOidw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", + "browserslist": "^4.28.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-discard-comments": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-7.0.5.tgz", - "integrity": "sha512-IR2Eja8WfYgN5n32vEGSctVQ1+JARfu4UH8M7bgGh1bC+xI/obsPJXaBpQF7MAByvgwZinhpHpdrmXtvVVlKcQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-8.0.1.tgz", + "integrity": "sha512-FDvzm3tXlEsQBO2XQgnta5ugsAqwBrgWH+j5QgXpegEIDYA0VPnZg2aP7LtmWtC49POskeIhXesFiU/k3NyFHA==", "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.1.0" + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-discard-duplicates": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-7.0.2.tgz", - "integrity": "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-8.0.1.tgz", + "integrity": "sha512-stTDXkI8YkCUfADurQhp03oq5ynsgSx6Qrw5B1swds6oTHtAeOZ9I0SHGK8cY/VpWUsIYFDWMs3IWf9jIEfFvA==", "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-discard-empty": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-7.0.1.tgz", - "integrity": "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-8.0.1.tgz", + "integrity": "sha512-Zv4fM1Yfhk71tbt6gfiptbL6jDHi+7apSnaMeaO9n1uET+1embrXQw5m93Zp5x28UyQSuv+AVkFY193jdwZ33w==", "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-discard-overridden": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-7.0.1.tgz", - "integrity": "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-8.0.1.tgz", + "integrity": "sha512-ykt4fvrC7yYGzbxKyqBVjDCbsjF/11JgWK8enrdkobRyqqEtb/uDUCbKOGdvrK8X7BrShW8Lv5cCRNbdkNHGkQ==", "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-load-config": { @@ -8155,300 +9003,302 @@ } }, "node_modules/postcss-merge-longhand": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-7.0.5.tgz", - "integrity": "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-8.0.1.tgz", + "integrity": "sha512-huTfSYgQ13O81SFvAuOi7GWnO48vvybjj3xF+X3qUoPjzvvaLpJH5DcUqqXcwOEulZUcvaV4s0V9WtWs+IAQPA==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", - "stylehacks": "^7.0.5" + "stylehacks": "^8.0.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-merge-rules": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-7.0.7.tgz", - "integrity": "sha512-njWJrd/Ms6XViwowaaCc+/vqhPG3SmXn725AGrnl+BgTuRPEacjiLEaGq16J6XirMJbtKkTwnt67SS+e2WGoew==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-8.0.1.tgz", + "integrity": "sha512-o3rk4UpnPNg469tklYwbR/NtvKc/f/wJiVDTnNQ/EFPw/LeiPOHUCvV1GIBQIZHGrBAYdPjToK6a+ojYprsrxQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^5.0.1", - "postcss-selector-parser": "^7.1.0" + "browserslist": "^4.28.2", + "caniuse-api": "^4.0.0", + "cssnano-utils": "^6.0.1", + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-font-values": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-7.0.1.tgz", - "integrity": "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-8.0.1.tgz", + "integrity": "sha512-L8Nzs/PRlBSPrLdY/7rAiU5ZN5800+2J/4LRbfyG8SJnPljmgMaXVmQiCklvRS+yObfVRNtvmk/Ean/eoYcSeg==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-gradients": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-7.0.1.tgz", - "integrity": "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-8.0.1.tgz", + "integrity": "sha512-qf+4s/hZMqTwpWN2teqf6+1yvR/SZK5HgHqXYuACeJXV7ABe7AXtBEomgxagUzcN4bSnmqBh5vnIml0dYqykYg==", "dev": true, "license": "MIT", "dependencies": { - "colord": "^2.9.3", - "cssnano-utils": "^5.0.1", + "@colordx/core": "^5.4.3", + "cssnano-utils": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-params": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-7.0.5.tgz", - "integrity": "sha512-FGK9ky02h6Ighn3UihsyeAH5XmLEE2MSGH5Tc4tXMFtEDx7B+zTG6hD/+/cT+fbF7PbYojsmmWjyTwFwW1JKQQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-8.0.1.tgz", + "integrity": "sha512-L0h3H59deFfFg0wQN1NVaS/8E/LfGvaMuZKGO7siwlG995zo3OshtQyRkqKdVqcBwAORBvZ1nDZrKPLRapYkQw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "cssnano-utils": "^5.0.1", + "browserslist": "^4.28.2", + "cssnano-utils": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-minify-selectors": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-7.0.5.tgz", - "integrity": "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-8.0.2.tgz", + "integrity": "sha512-3icdxc/zght5UAizdwqZBDE2KOWHf1jMQCxET6iLACeNlRxfTPyXS0/COpGk8CQ2cECyaEKTRUd/i/k8Gxmz4g==", "dev": true, "license": "MIT", "dependencies": { + "browserslist": "^4.28.1", + "caniuse-api": "^4.0.0", "cssesc": "^3.0.0", - "postcss-selector-parser": "^7.1.0" + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-charset": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-7.0.1.tgz", - "integrity": "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-8.0.1.tgz", + "integrity": "sha512-xzqr36F8UeIZOvOHsf3aul+RVJCADvSwuwpMLgizqKjisHZpBfztgW0XFLBfJvz9pJgaStaOXAtGb0zLqT6B0w==", "dev": true, "license": "MIT", "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-display-values": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-7.0.1.tgz", - "integrity": "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-8.0.1.tgz", + "integrity": "sha512-ZDWOijOK1FFMlpgiQCUO9fCNKd7HJ9L7z9HWEq4iyubnUFWzdTSwm/LcrMbNW6iZ1oAtqeLYA0WA3xHszOI08g==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-positions": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-7.0.1.tgz", - "integrity": "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-8.0.1.tgz", + "integrity": "sha512-uuivan2poSqbE48ST4do20dGaFUeXey9/H8rhHzoyVHB2I6BmkoVLZ/C9+BRjUlpaAFYVOoDY7epkiidzaYbvA==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-repeat-style": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-7.0.1.tgz", - "integrity": "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-8.0.1.tgz", + "integrity": "sha512-q2hq5fmKxk29K6DjKA3nZ17Q2dtjhLYFNmFweKALmooUqx6UWAHF1bBoWTu/EqlJ88josb82A/J0Atj9LJUmpQ==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-string": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-7.0.1.tgz", - "integrity": "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-8.0.1.tgz", + "integrity": "sha512-+Wf+kQJhm1WgSGEAuUaswE9rdpR9QbrKRVemcVHs6rhOoOTVIdAbgaicftfYA6vLM346P8onRzkEVbFN29ktKQ==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-timing-functions": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-7.0.1.tgz", - "integrity": "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-8.0.1.tgz", + "integrity": "sha512-W8/tvwRlm3T+yjGkg0IRTF4bvHj0vILYr/LOogCrJKHz2ey2HFRwfsAA8Bk9N4BGR7z7WmmDu/KzzwhJ6FoGPQ==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-unicode": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-7.0.5.tgz", - "integrity": "sha512-X6BBwiRxVaFHrb2WyBMddIeB5HBjJcAaUHyhLrM2FsxSq5TFqcHSsK7Zu1otag+o0ZphQGJewGH1tAyrD0zX1Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-8.0.1.tgz", + "integrity": "sha512-Ad0YHNRBp4WHEOYUM/4wL/8MoL2fimEF8se/0q+Rt/owMzYpbxsypC1P8fN/oluwoRmRKdNVX7X2oycEobPWcQ==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", + "browserslist": "^4.28.2", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-url": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-7.0.1.tgz", - "integrity": "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-8.0.1.tgz", + "integrity": "sha512-tkYcip6pCDY806xuxpJYqMW2M3/623jzGFJmz3m5Us47q8P28+gbRZxaea3Rr/CmwwLUiVlh+BTGYwQ6gvaP8A==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-normalize-whitespace": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-7.0.1.tgz", - "integrity": "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-8.0.1.tgz", + "integrity": "sha512-XzORadNfSrKWDZZpgAEHPKINKx8r9r9RIfE9c70g/HThdpbmPHhDYCodHSVESDxmKeySAYw1p4liuBCf7j6LyA==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-ordered-values": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-7.0.2.tgz", - "integrity": "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-8.0.1.tgz", + "integrity": "sha512-OLXq5lR1yk3KWQ1FPK6aWjFFdktHE9f9kb8cnt4LmIw7w30DnzgD9+sOVYJc5HenkWCX8i1MJhhFwmqc/GYqLg==", "dev": true, "license": "MIT", "dependencies": { - "cssnano-utils": "^5.0.1", + "cssnano-utils": "^6.0.1", "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-reduce-initial": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-7.0.5.tgz", - "integrity": "sha512-RHagHLidG8hTZcnr4FpyMB2jtgd/OcyAazjMhoy5qmWJOx1uxKh4ntk0Pb46ajKM0rkf32lRH4C8c9qQiPR6IA==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-8.0.1.tgz", + "integrity": "sha512-+aQsR6+61KRoIfcFNLP3v9RM7+0iYOTtPnjl1wr6JqMW1zx6S+t2ktHRefXwacFdHIDj5+ETG0KY7K3+SGQ4Nw==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "caniuse-api": "^3.0.0" + "browserslist": "^4.28.2", + "caniuse-api": "^4.0.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-reduce-transforms": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-7.0.1.tgz", - "integrity": "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-8.0.1.tgz", + "integrity": "sha512-x71slHVykiFi5RuKEXM0wgYpY2PngC78x6R8TnZhHF3lhqt+u/w3MGwYLX+2t5O87ssRiMfEAhQH+3J4QwVzCw==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-reporter": { @@ -8479,9 +9329,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", - "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.4.tgz", + "integrity": "sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==", "dev": true, "license": "MIT", "dependencies": { @@ -8493,36 +9343,36 @@ } }, "node_modules/postcss-svgo": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-7.1.0.tgz", - "integrity": "sha512-KnAlfmhtoLz6IuU3Sij2ycusNs4jPW+QoFE5kuuUOK8awR6tMxZQrs5Ey3BUz7nFCzT3eqyFgqkyrHiaU2xx3w==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-8.0.1.tgz", + "integrity": "sha512-HpnvWii7W0/FPrsejJa6ZTi0kNtTJP/Iba7CUMPX0xPV6QpnndOp+SDP74tFtgjA2cYKYNWJPOlmLXMsvi/9yA==", "dev": true, "license": "MIT", "dependencies": { "postcss-value-parser": "^4.2.0", - "svgo": "^4.0.0" + "svgo": "^4.0.1" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >= 18" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-unique-selectors": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-7.0.4.tgz", - "integrity": "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-8.0.1.tgz", + "integrity": "sha512-+xvKI5+/Cl8yYQwxDV39Uhuc4WV951xngFvPPjiPj2NIbIfm6vbbRTXblyw0FioLkIoGlw+7qUcY1h2YhaZYgw==", "dev": true, "license": "MIT", "dependencies": { - "postcss-selector-parser": "^7.1.0" + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/postcss-value-parser": { @@ -8533,15 +9383,16 @@ "license": "MIT" }, "node_modules/pretty-format": { - "version": "30.2.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.2.0.tgz", - "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", + "version": "30.4.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-30.4.1.tgz", + "integrity": "sha512-K6KiKMHTL4jjX4u3Kir2EW07nRfcqVTXIImx50wbjHQTcZPgg+gjVeNTIT3l3L1Rd4UefxfogquC9J37SoFyyw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "30.0.5", + "@jest/schemas": "30.4.1", "ansi-styles": "^5.2.0", - "react-is": "^18.3.1" + "react-is-18": "npm:react-is@^18.3.1", + "react-is-19": "npm:react-is@^19.2.5" }, "engines": { "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" @@ -8571,24 +9422,23 @@ } }, "node_modules/protobufjs": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", - "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", + "version": "7.6.5", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.6.5.tgz", + "integrity": "sha512-/FPD0nUc9jH6rfFjji9IBqOz4pcSE3CsT1m7Ep6Mdb0LxSUMj8hgl6GomOvZzpNpAqqGaXA0P3VSrZLFzIhQrw==", "hasInstallScript": true, "license": "BSD-3-Clause", "dependencies": { "@protobufjs/aspromise": "^1.1.2", "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", + "@protobufjs/codegen": "^2.0.5", + "@protobufjs/eventemitter": "^1.1.1", + "@protobufjs/fetch": "^1.1.1", "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", "@protobufjs/path": "^1.1.2", "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", + "@protobufjs/utf8": "^1.1.1", "@types/node": ">=13.7.0", - "long": "^5.0.0" + "long": "^5.3.2" }, "engines": { "node": ">=12.0.0" @@ -8616,22 +9466,11 @@ "resolved": "https://registry.npmjs.org/qrcodejs/-/qrcodejs-1.0.0.tgz", "integrity": "sha512-67rj3mMBhSBepaD57qENnltO+r8rSYlqM7HGThks/BiyDAkc86sLvkKqjkqPS5v13f7tvnt6dbEf3qt7zq+BCg==" }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, "node_modules/react": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -8677,13 +9516,49 @@ } } }, + "node_modules/react-intl/node_modules/@formatjs/icu-messageformat-parser": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/@formatjs/icu-messageformat-parser/-/icu-messageformat-parser-2.11.4.tgz", + "integrity": "sha512-7kR78cRrPNB4fjGFZg3Rmj5aah8rQj9KPzuLsmcSn4ipLXQvC04keycTI1F7kJYDwIXtT2+7IDEto842CfZBtw==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "@formatjs/icu-skeleton-parser": "1.8.16", + "tslib": "^2.8.0" + } + }, + "node_modules/react-intl/node_modules/@formatjs/icu-skeleton-parser": { + "version": "1.8.16", + "resolved": "https://registry.npmjs.org/@formatjs/icu-skeleton-parser/-/icu-skeleton-parser-1.8.16.tgz", + "integrity": "sha512-H13E9Xl+PxBd8D5/6TVUluSpxGNvFSlN/b3coUp0e0JpuWXXnQDiavIpY3NnvSp4xhEMoXyyBvVfdFX8jglOHQ==", + "license": "MIT", + "dependencies": { + "@formatjs/ecma402-abstract": "2.3.6", + "tslib": "^2.8.0" + } + }, "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==", + "license": "MIT" + }, + "node_modules/react-is-18": { + "name": "react-is", "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, "license": "MIT" }, + "node_modules/react-is-19": { + "name": "react-is", + "version": "19.2.7", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.2.7.tgz", + "integrity": "sha512-kZFnouyVv7eP/Phmrlo9FK+zcAdriZJvzxXHF1Sl1P377WSGe2G/JxVolhTrB/jeV47lKImhNUsijjHAAbcl/A==", + "dev": true, + "license": "MIT" + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -8707,6 +9582,19 @@ "node": ">=8.10.0" } }, + "node_modules/readdirp/node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/rechoir": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", @@ -8766,9 +9654,9 @@ "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.0.tgz", - "integrity": "sha512-NZQZdC5wOE/H3UT28fVGL+ikOZcEzfMGk/c3iN9UGxzWHMa1op7274oyiUVrAG4B2EuFhus8SvkaYnhvW92p9Q==", + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.13.2.tgz", + "integrity": "sha512-NgRBy2Nx/bE+9F27nVHnqcN5HjyLmecqsqx2PJHu3/IEtADD4WuxuXIVExD5PoSDFVrl78dOonfcOe5O+5nbzQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -8798,12 +9686,13 @@ } }, "node_modules/resolve": { - "version": "1.22.11", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", - "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "version": "1.22.12", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz", + "integrity": "sha512-TyeJ1zif53BPfHootBGwPRYT1RUt6oGWsaQr8UyZW/eAm9bKoijtvruSDEmZHm92CwS9nj7/fWttqPCgzep8CA==", "dev": true, "license": "MIT", "dependencies": { + "es-errors": "^1.3.0", "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" @@ -8862,11 +9751,14 @@ "license": "MIT" }, "node_modules/sax": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.3.tgz", - "integrity": "sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", "dev": true, - "license": "BlueOak-1.0.0" + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } }, "node_modules/scheduler": { "version": "0.23.2", @@ -8898,23 +9790,26 @@ } }, "node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" } }, "node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.7.tgz", + "integrity": "sha512-YAy8Od6KV+uuwUuU50np8fGB/Aues6Y0nAhA9y/hId74PlKUcme4pXcBD46NWKr1Q4osN/iseZ17YqO1XfmI8g==", "dev": true, "license": "BSD-3-Clause", - "dependencies": { - "randombytes": "^2.1.0" + "engines": { + "node": ">=20.0.0" } }, "node_modules/set-function-length": { @@ -9143,20 +10038,20 @@ } }, "node_modules/stylehacks": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-7.0.7.tgz", - "integrity": "sha512-bJkD0JkEtbRrMFtwgpJyBbFIwfDDONQ1Ov3sDLZQP8HuJ73kBOyx66H4bOcAbVWmnfLdvQ0AJwXxOMkpujcO6g==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-8.0.1.tgz", + "integrity": "sha512-Gv095oTD0N+BdJALNFDsxZpETHZLTxbOl5RyIO7y6VAE6sR3z0MnV3Nix7N0IATNldNTrkvSASp2KR1Yt526HA==", "dev": true, "license": "MIT", "dependencies": { - "browserslist": "^4.27.0", - "postcss-selector-parser": "^7.1.0" + "browserslist": "^4.28.2", + "postcss-selector-parser": "^7.1.2" }, "engines": { - "node": "^18.12.0 || ^20.9.0 || >=22.0" + "node": "^22.11.0 || ^24.11.0 || >=26.0" }, "peerDependencies": { - "postcss": "^8.4.32" + "postcss": "^8.5.15" } }, "node_modules/supports-color": { @@ -9186,9 +10081,9 @@ } }, "node_modules/svgo": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.0.tgz", - "integrity": "sha512-VvrHQ+9uniE+Mvx3+C9IEe/lWasXCU0nXMY2kZeLrHNICuRiC8uMPyM14UEaMOFA5mhyQqEkB02VoQ16n3DLaw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-4.0.1.tgz", + "integrity": "sha512-XDpWUOPC6FEibaLzjfe0ucaV0YrOjYotGJO1WpF0Zd+n6ZGEQUsSugaoLq9QkEZtAfQIxT42UChcssDVPP3+/w==", "dev": true, "license": "MIT", "dependencies": { @@ -9198,7 +10093,7 @@ "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.1.1", - "sax": "^1.4.1" + "sax": "^1.5.0" }, "bin": { "svgo": "bin/svgo.js" @@ -9212,13 +10107,13 @@ } }, "node_modules/synckit": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.11.tgz", - "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.11.13.tgz", + "integrity": "sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.2.9" + "@pkgr/core": "^0.3.6" }, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -9228,9 +10123,9 @@ } }, "node_modules/tapable": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", - "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.3.tgz", + "integrity": "sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==", "dev": true, "license": "MIT", "engines": { @@ -9242,9 +10137,9 @@ } }, "node_modules/terser": { - "version": "5.44.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.44.1.tgz", - "integrity": "sha512-t/R3R/n0MSwnnazuPpPNVO60LX0SKL45pyl9YlvxIdkH0Of7D5qM2EVe+yASRIlY5pZ73nclYJfNANGWPwFDZw==", + "version": "5.48.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.48.0.tgz", + "integrity": "sha512-J/9An6vs9Us6wKRriSFXBWdRZapREHqFzdNUKk0pmu804EMR6dr6winwo7e5JDxN4xahxQsuysyYFwlwj4XN/Q==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -9260,72 +10155,6 @@ "node": ">=10" } }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.25", - "jest-worker": "^27.4.5", - "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", - "terser": "^5.31.1" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", @@ -9359,10 +10188,17 @@ "node": ">=8" } }, + "node_modules/test-exclude/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.15.tgz", + "integrity": "sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==", "dev": true, "license": "MIT", "dependencies": { @@ -9374,7 +10210,7 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", "dev": true, "license": "ISC", "dependencies": { @@ -9393,9 +10229,9 @@ } }, "node_modules/test-exclude/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -9406,27 +10242,27 @@ } }, "node_modules/thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.4.1.tgz", + "integrity": "sha512-D5a/bO0KdalOE3q8MlrRmSxjbKZHT3MQmXkJP+r97Vw8MMwOZKOwUSEyTtK7eSMj2y0kyAjpYMRMZmmLw1FtNQ==", "dev": true, "license": "Apache-2.0" }, "node_modules/tinode-sdk": { - "version": "0.25.1", - "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.25.1.tgz", - "integrity": "sha512-6l2gZvECf2Zuu1LjrrdMNyigLwY5JByga6Ly+NoC5+k9SZUs7q+4mcFURm8ct4XdZxFPfJBzecXi7ugSLwKKyg==", + "version": "0.25.3", + "resolved": "https://registry.npmjs.org/tinode-sdk/-/tinode-sdk-0.25.3.tgz", + "integrity": "sha512-5pf6dYU1d5aIkU2t1a7VebLWFZlVLI3vIIoQIm4LbQ9LL1PMaTOlTFHAezQHBQ8UZ6yW1nj4Y3IuLqp5hSfK6w==", "license": "Apache-2.0" }, "node_modules/tinyglobby": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", - "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", - "picomatch": "^4.0.3" + "picomatch": "^4.0.4" }, "engines": { "node": ">=12.0.0" @@ -9435,38 +10271,6 @@ "url": "https://github.com/sponsors/SuperchupuDev" } }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", - "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "peer": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", @@ -9522,7 +10326,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9532,9 +10335,9 @@ } }, "node_modules/undici-types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", - "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", "license": "MIT" }, "node_modules/unicode-canonical-property-names-ecmascript": { @@ -9592,38 +10395,41 @@ } }, "node_modules/unrs-resolver": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", - "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.12.2.tgz", + "integrity": "sha512-dmlRxBJJayXjqTwC+JtF1HhJmgf3ftQ3YejFcZrf4+KKtJv0qDsK1pjqaaVjG7wJ5NJ6UVP1OqRMQ71Z4C3rxQ==", "dev": true, "hasInstallScript": true, "license": "MIT", "dependencies": { - "napi-postinstall": "^0.3.0" + "napi-postinstall": "^0.3.4" }, "funding": { "url": "https://opencollective.com/unrs-resolver" }, "optionalDependencies": { - "@unrs/resolver-binding-android-arm-eabi": "1.11.1", - "@unrs/resolver-binding-android-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-arm64": "1.11.1", - "@unrs/resolver-binding-darwin-x64": "1.11.1", - "@unrs/resolver-binding-freebsd-x64": "1.11.1", - "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", - "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", - "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", - "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", - "@unrs/resolver-binding-linux-x64-musl": "1.11.1", - "@unrs/resolver-binding-wasm32-wasi": "1.11.1", - "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", - "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", - "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + "@unrs/resolver-binding-android-arm-eabi": "1.12.2", + "@unrs/resolver-binding-android-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-arm64": "1.12.2", + "@unrs/resolver-binding-darwin-x64": "1.12.2", + "@unrs/resolver-binding-freebsd-x64": "1.12.2", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.12.2", + "@unrs/resolver-binding-linux-arm64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-arm64-musl": "1.12.2", + "@unrs/resolver-binding-linux-loong64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-loong64-musl": "1.12.2", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-riscv64-musl": "1.12.2", + "@unrs/resolver-binding-linux-s390x-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-gnu": "1.12.2", + "@unrs/resolver-binding-linux-x64-musl": "1.12.2", + "@unrs/resolver-binding-openharmony-arm64": "1.12.2", + "@unrs/resolver-binding-wasm32-wasi": "1.12.2", + "@unrs/resolver-binding-win32-arm64-msvc": "1.12.2", + "@unrs/resolver-binding-win32-ia32-msvc": "1.12.2", + "@unrs/resolver-binding-win32-x64-msvc": "1.12.2" } }, "node_modules/update-browserslist-db": { @@ -9690,13 +10496,12 @@ } }, "node_modules/watchpack": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.0.tgz", - "integrity": "sha512-e6vZvY6xboSwLz2GD36c16+O/2Z6fKvIf4pOXptw2rY9MVwE/TXc6RGqxD3I3x0a28lwBY7DE+76uTPSsBrrCA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.5.2.tgz", + "integrity": "sha512-6i/00NBjP4yGPs+caKSyRfpTF/8Torsu0MOW3mMzIbhgISFder8i7xbqgHlLMwJrdiN8ndBV3UA1/AfzPSr+jg==", "dev": true, "license": "MIT", "dependencies": { - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" }, "engines": { @@ -9722,38 +10527,34 @@ } }, "node_modules/webpack": { - "version": "5.104.1", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.104.1.tgz", - "integrity": "sha512-Qphch25abbMNtekmEGJmeRUhLDbe+QfiWTiqpKYkpCOWY64v9eyl+KRRLmqOFA2AvKPpc9DC6+u2n76tQLBoaA==", + "version": "5.108.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.108.3.tgz", + "integrity": "sha512-hOpaCHmQVVY66IVTjofnH14IgSdmod2aquSGHGuYig/OIdWge01Hk2Wt988DZcwXumFUT4+FvJY5N+ikl8o/ww==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", "@types/json-schema": "^7.0.15", "@webassemblyjs/ast": "^1.14.1", "@webassemblyjs/wasm-edit": "^1.14.1", "@webassemblyjs/wasm-parser": "^1.14.1", - "acorn": "^8.15.0", + "acorn": "^8.16.0", "acorn-import-phases": "^1.0.3", "browserslist": "^4.28.1", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.17.4", - "es-module-lexer": "^2.0.0", + "enhanced-resolve": "^5.22.2", + "es-module-lexer": "^2.1.0", "eslint-scope": "5.1.1", "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.3.1", - "mime-types": "^2.1.27", + "loader-runner": "^4.3.2", + "mime-db": "^1.54.0", + "minimizer-webpack-plugin": "^5.6.1", "neo-async": "^2.6.2", "schema-utils": "^4.3.3", "tapable": "^2.3.0", - "terser-webpack-plugin": "^5.3.16", - "watchpack": "^2.4.4", - "webpack-sources": "^3.3.3" + "watchpack": "^2.5.2", + "webpack-sources": "^3.5.0" }, "bin": { "webpack": "bin/webpack.js" @@ -9772,23 +10573,17 @@ } }, "node_modules/webpack-cli": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-6.0.1.tgz", - "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-7.1.0.tgz", + "integrity": "sha512-pSJ5p5PkXRD88sfCq5Wo+coc42QykwRu5Md0DyESj0rT6PPPA2wTNabpHPKgqH8EMkfTDo3IWx3iiNXMu8XDBQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@discoveryjs/json-ext": "^0.6.1", - "@webpack-cli/configtest": "^3.0.1", - "@webpack-cli/info": "^3.0.1", - "@webpack-cli/serve": "^3.0.1", - "colorette": "^2.0.14", - "commander": "^12.1.0", - "cross-spawn": "^7.0.3", - "envinfo": "^7.14.0", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", + "@discoveryjs/json-ext": "^1.1.0", + "commander": "^14.0.3", + "cross-spawn": "^7.0.6", + "envinfo": "^7.21.0", + "import-local": "^3.2.0", "interpret": "^3.1.1", "rechoir": "^0.8.0", "webpack-merge": "^6.0.1" @@ -9797,16 +10592,30 @@ "webpack-cli": "bin/cli.js" }, "engines": { - "node": ">=18.12.0" + "node": ">=20.9.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/webpack" }, "peerDependencies": { - "webpack": "^5.82.0" + "js-yaml": "^4.0.0 || ^5.0.0", + "json5": "^2.2.3", + "toml": "^3.0.0 || ^4.0.0", + "webpack": "^5.101.0", + "webpack-bundle-analyzer": "^4.0.0 || ^5.0.0", + "webpack-dev-server": "^5.0.0" }, "peerDependenciesMeta": { + "js-yaml": { + "optional": true + }, + "json5": { + "optional": true + }, + "toml": { + "optional": true + }, "webpack-bundle-analyzer": { "optional": true }, @@ -9816,13 +10625,13 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/webpack-merge": { @@ -9841,9 +10650,9 @@ } }, "node_modules/webpack-sources": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.3.3.tgz", - "integrity": "sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==", + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.5.0.tgz", + "integrity": "sha512-HPuy+uuoTCaaoEoI1LQ3JN9+vrPBvEesnnX1jADHy728cHSMlq4wUc4afYqahq2B1mhQVZxCXOkNTnXltr+2vQ==", "dev": true, "license": "MIT", "engines": { @@ -9851,9 +10660,9 @@ } }, "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.5.tgz", + "integrity": "sha512-ZL2+3c7kMBdIRCMz6l8jQMHyGVxj+UL+xVk74Ombiciboca8rHa15L86B19E5oh1pL9Ii/uj54gtsIrZGMo6zA==", "license": "Apache-2.0", "dependencies": { "http-parser-js": ">=0.5.1", @@ -9975,17 +10784,10 @@ "node": ">=10" } }, - "node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true, - "license": "ISC" - }, "node_modules/yaml": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.2.tgz", - "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "dev": true, "license": "ISC", "bin": { @@ -9999,9 +10801,9 @@ } }, "node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "version": "17.7.3", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.3.tgz", + "integrity": "sha512-GZtjxm/J/4TSxuL3FNYjCmLktBTnIw/rVmKSIyKeYAZpmJB2ig9VauCC5xsa82GNKVKDAqpOn3KVzNt0zmrU0g==", "license": "MIT", "dependencies": { "cliui": "^8.0.1", diff --git a/package.json b/package.json index 6197fdf5..c261c4b6 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "tinode-webapp", "description": "Tinode messenger for the web", - "version": "0.25.2", + "version": "0.25.3", "repository": { "type": "git", "url": "git+https://github.com/tinode/webapp.git" @@ -24,6 +24,9 @@ "browserslist": [ "defaults" ], + "overrides": { + "@babel/core": "^8.0.0" + }, "files": [ "umd/*.js", "umd/*.map", @@ -81,24 +84,30 @@ "react": "^18.3.0", "react-dom": "^18.3.0", "react-intl": "^7.0.0", - "tinode-sdk": "^0.25.2", + "tinode-sdk": "^0.25.3", "webm-duration-fix": "^1.0.4" }, "devDependencies": { - "@babel/core": "^7.22.10", - "@babel/preset-env": "^7.22.10", - "@babel/preset-react": "^7.22.5", + "@babel/core": "^8.0.0", + "@babel/preset-env": "^8.0.0", + "@babel/preset-react": "^8.0.0", "@formatjs/cli": "^6.1.3", "babel-loader": "^10.0.0", - "babel-plugin-formatjs": "^10.5.3", + "babel-plugin-formatjs": "^11.0.0", "browserslist": "^4.21.10", - "copy-webpack-plugin": "^13.0.0", - "cssnano": "^7.0.6", + "copy-webpack-plugin": "^14.0.0", + "cssnano": "^8.0.0", "glob": "^13.0.0", "jest": "^30.0.0", "postcss": "^8.4.27", "postcss-cli": "^11.0.0", "webpack": "^5.88.2", - "webpack-cli": "^6.0.0" + "webpack-cli": "^7.0.0" + }, + "allowScripts": { + "@firebase/util@1.12.1": true, + "fsevents@2.3.3": true, + "protobufjs@7.6.5": true, + "unrs-resolver@1.12.2": true } } diff --git a/src/i18n.min/pt.json b/src/i18n.min/pt.json new file mode 100644 index 00000000..5bb2d9e4 --- /dev/null +++ b/src/i18n.min/pt.json @@ -0,0 +1 @@ +{"action_block_contact":"Bloquear Contato","action_cancel":"Cancelar","action_clear_messages":"Limpar Mensagens","action_delete_messages":"Limpar Mensagens para Todos","action_leave_chat":"Sair da Conversa","action_report_chat":"Reportar Conversa","archived_contacts":"Contatos arquivados ({count})","badge_danger":"Não confiável","badge_owner":"dono","badge_staff":"Gerenciado pela equipe","badge_verified":"Verificado/oficial","badge_you":"você","block_contact_warning":"Tem certeza de que deseja bloquear este contato?","blocked_contacts_link":"Contatos bloqueados ({count})","button_add_members":"Adicionar membros","button_cancel":"Cancelar","button_confirm":"Confirmar","button_create":"Criar","button_delete_account":"Excluir conta","button_edit":"Editar","button_logout":"Sair","button_ok":"OK","button_reset":"Reset","button_send_request":"Enviar solicitação","button_sign_in":"Entrar","button_sign_up":"Cadastrar","button_subscribe":"Assinar","button_update":"Atualizar","cannot_initiate_file_upload":"Não posso iniciar o upload do arquivo.","channel":"canal","channel_prompt":"Isto é um canal","chat_invitation":"Você foi convidado para iniciar uma nova conversa. O que você gostaria de fazer?","chat_invitation_accept":"Aceitar","chat_invitation_block":"Bloquear","chat_invitation_ignore":"Ignorar","clear_messages_warning":"Tem certeza de quer apagarar todas as mensagens? Esta ação não pode ser desfeita.","code_doesnot_match":"Código não corresponde","contacts_not_found":"Você não tem conversas\n¯∖_(ツ)_/¯","contacts_not_found_short":"Nenhum contato corresponde a ''{query}''","credential_email_prompt":"Seu email de registro","delete_account":"Excluir conta","delete_account_warning":"Tem certeza de que deseja excluir sua conta? Isso não pode ser desfeito.","delete_messages_warning":"Tem certeza de que deseja excluir todas as mensagens para todos? Isso não pode ser desfeito.","download_action":"baixar","drafty_attachment":"Anexo","drafty_form":"Form:","drafty_image":"Imagem","email_dative":"email","email_prompt":"Email, ex. fulanodetal@exemplo.com","enable_peers_messaging":"Ativar","enter_confirmation_code_prompt":"Código de confirmação","error_invalid_id":"ID Inválido","file_attachment_too_large":"O tamanho do arquivo {size} excede o limite de {limit}.","forgot_password_link":"Esqueceu a senha?","full_name_prompt":"Nome completo, ex. Fulano de Tal","granted_permissions":"Concedidas","group_has_no_members":"Não há membros","group_user_id_prompt":"ID de Grupo ou ID de Usuário","image_caption_prompt":"Legenda da imagem","invalid_content":"conteúdo inválido","invalid_security_token":"Token de segurança inválido","label_client":"Cliente:","label_content_type":"Tipo de conteúdo:","label_default_access_mode":"Modo de acesso padrão:","label_file_name":"Nome do arquivo:","label_group_members":"Membros do grupo:","label_incognito_mode":"Modo incógnito:","label_message_sound":"Som das mensagens:","label_muting_topic":"Mudo:","label_other_user":"Outro","label_password":"Senha","label_permissions":"Permissões:","label_private":"Comentário privado","label_push_notifications":"Alertas de notificação:","label_push_notifications_disabled":"Alertas de notificação (requer HTTPS):","label_reset_password":"Envie um email para redefinir a senha:","label_sdk":"SDK:","label_server":"Servidor:","label_server_address":"Endereço do servidor:","label_server_to_use":"Servidor a ser usado:","label_size":"Tamanho:","label_topic_name":"Nome","label_user_contacts":"Contatos","label_user_id":"ID:","label_wire_transport":"Tipo de transporte:","label_you":"Você:","label_your_name":"Seu nome","label_your_permissions":"Suas permissões:","last_seen_timestamp":"Última vez visto","leave_chat_warning":"Tem certeza de que quer sair desta conversa?","link_contact_us":"Contacte-nos","link_privacy_policy":"Política de Privacidade","link_terms_of_service":"Termos de Serviço","login_prompt":"Login","menu_item_archive_topic":"Arquivar","menu_item_block":"Bloquear","menu_item_clear_messages":"Limpar mensagens","menu_item_clear_messages_for_all":"Limpar Mensagens para Todos","menu_item_delete":"Excluir","menu_item_delete_for_all":"Excluir para Todos","menu_item_delete_topic":"Excluir","menu_item_edit_permissions":"Editar permissões","menu_item_info":"Info","menu_item_member_delete":"Remover","menu_item_mute":"Silenciar","menu_item_reply":"Responder","menu_item_restore_topic":"Restaurar","menu_item_send_retry":"Tentar novamente","menu_item_unblock":"Desbloquear","menu_item_unmute":"Ativar notificações","message_sending":"a enviar...","message_sending_failed":"falhou","messages_not_readable":"sem acesso às mensagens","messaging_disabled_prompt":"Mensageria desativadas","more_online_members":"+{overflow} mais","new_message_prompt":"Nova mensagem","new_password_placeholder":"Entre a nova senha","no_connection":"Sem conexão","no_contacts":"Você não tem contatos :-(","numeric_confirmation_code_prompt":"Somente números","online_now":"online agora","password_prompt":"Senha","password_unchanged_prompt":"Sem alterações","peers_messaging_disabled":"Mensagens do peer desativadas.","permission_admin":"Approvar ({val})","permission_delete":"Excluir ({val})","permission_join":"Unir-se ({val})","permission_owner":"Proprietário ({val})","permission_pres":"Ser notificado ({val})","permission_read":"Ler ({val})","permission_share":"Compartilhar ({val})","permission_write":"Escrever ({val})","phone_dative":"fone","private_editing_placeholder":"Visível apenas para você","push_init_failed":"Falha em inicializar notificações push","reconnect_countdown":"Desconectado. Reconectando em {seconds}…","reconnect_now":"Tentar agora","reload_update":"Recarregar","report_chat_warning":"Tem certeza de que deseja bloquear e relatar esta conversa?","requested_permissions":"Solicitados","save_attachment":"guardar","search_for_contacts":"Use a busca para encontrar contatos","search_no_results":"A busca não retornou resultados","search_placeholder":"Liste como email:ciclanae@exemplo.com, tel:+351000555000...","sidepanel_title_acc_notifications":"Notificações","sidepanel_title_acc_support":"Suporte","sidepanel_title_account_settings":"Configurações da Conta","sidepanel_title_archive":"Conversas Arquivadas","sidepanel_title_blocked":"Conversas Bloqueadas","sidepanel_title_cred":"Confirme as Credenciais","sidepanel_title_login":"Entrar","sidepanel_title_newtpk":"Começar Nova Conversa","sidepanel_title_register":"Criar Conta","sidepanel_title_reset":"Redefinir Senha","sidepanel_title_settings":"Configurações","stay_logged_in":"Manter-se logado","tabtitle_find_user":"procurar","tabtitle_group_by_id":"por id","tabtitle_new_group":"novo grupo","tags_editor_no_tags":"Adicione algumas tags","tags_not_found":"Nenhuma tag definida. Adicione algumas.","title_all_contacts":"Todos os Contatos","title_group_members":"Membros do Grupo","title_manage_tags":"Gerenciar","title_not_found":"Não encontrado","title_permissions":"Permissões","title_tag_manager":"Tags (pesquisar & descobrir)","topic_block_warning":"Você tem certeza que deseja bloquear esta conversa?","topic_delete_warning":"Você tem certeza que deseja excluir esta conversa? Não pode ser desfeito.","topic_name_editing_placeholder":"Nome livre do grupo","unnamed_topic":"Sem nome","update_available":"Atualização disponível.","upload_finishing":"finalizando...","user_not_found":"Não encontrado","description_editing_placeholder":"Descrição opcional","label_description":"Descrição","button_security":"Segurança","panel_title_crop":"Arraste para Ajustar","panel_title_general":"Geral","panel_title_members":"Membros","panel_title_security":"Segurança","panel_title_info":"Info","permissions_anonymous":"Anônimo","permissions_authenticated":"Autenticado","topic_delete":"Apagar Tópico","permissions_user":"Permissões do Usuário","password_reset_email_sent":"Um email com o código de segurança foi enviado.","label_unarchive_topic":"Arquivado:","menu_item_forward":"Encaminhar","forward_to":"Encaminhar para","forward_to_search_placeholder":"Pesquisar contatos","label_new_password":"Nova senha","drafty_unknown":"Não suportado","calls_incoming":"Chamada recebida","calls_outgoing":"Chamada saída","calls_you_label":"Você","menu_item_video_call":"Chamada de vídeo","already_in_call":"Você já está em uma chamada!","call_cancelled":"cancelada","call_missed":"perdida","call_declined":"recusada","call_disconnected":"desconectada","label_use_secure_connection":"Use uma conexão segura","cred_confirmed_successfully":"Confirmado com sucesso","menu_item_edit":"Editar","editing_message":"Editando","message_edited_marker":", editado","icon_title_add_image":"Adicionar imagem","icon_title_attach_file":"Anexar arquivo","icon_title_delete":"Excluir","icon_title_pause":"Pausar","icon_title_play":"Reproduzir","icon_title_record_voice":"Gravar mensagem de voz","icon_title_resume":"Retomar","icon_title_send":"Enviar mensagem","drag_file":"Arraste o arquivo aqui","drafty_video":"Gravação de vídeo","call_in_progress":"em andamento","menu_item_audio_call":"Chamada","unrecognized_video_format":"O formato deste vídeo não é reconhecido","loading_note":"Carregando...","password_i_have_code":"Tenho o código","label_reset_password_tel":"Enviar SMS para redefinir senha:","mobile_phone_number":"Número do celular/telemóvel","password_reset_sms_sent":"Uma mensagem de texto com o código de segurança foi enviada.","mobile_number_required":"Número do celular/telemóvel é obrigatório","current_email":"Email atual","current_phone":"Número do telefone atual","new_email":"Novo email","new_phone_number":"Novo número de telefone","change_email":"Trocar email","change_phone":"Trocar número de telefone","call_busy":"ocupado","failed_to_init_audio":"Falha ao inicializar a gravação de áudio","pin_message":"Fixar","unpin_message":"Desafixar","password_reset_success":"Senha redefinida com sucesso","scan_qr_code":"Escanear código QR","self_topic_comment":"Anotações, mensagens, links, arquivos salvos para posteridade","self_topic_name":"Mensagens salvas","message_not_found":"mensagem não encontrada","message_deleted":"mensagem excluída","alias_editing_placeholder":"Nome alternativo (optional)","label_alias":"Nome alternativo:","alias_already_taken":"(já está em uso)","alias_invalid":"(inválido)","label_alias_edit":"Nome alternativo","select_country":"Selecione o país","text_copied":"Texto copiado para a área de transferência","color_schema_dark":"Escuro","color_schema_light":"Claro","color_schema_system":"Padrão do sistema","label_color_schema":"Tema:","label_text_size":"Tamanho do texto:","incognito_mode_description":"Oculta seu status online e indicadores de digitação.","send_command":"Envia com {key}","send_command_explained":"Pressione Enter para nova linha","send_plain":"Envia com Enter","send_plain_explained":"Pressione Shift + Enter para nova linha","sidepanel_title_acc_general":"Geral","label_keyboard":"Teclado:","pin_chat":"Afixar","unpin_chat":"Desafixar","subscriber_count":"{count, plural, one {{count, number} subscriber} outro {{count, number} subscribers}}","label_member_count":"Membros:","label_subscriber_count":"Assinantes:","member_count":"{count, plural, one {{count, number} member} outro {{count, number} members}}","tabtitle_image":"imagem","tabtitle_pattern":"padrão","button_restore":"Restaurar para o padrão","wallpapers":"Wallpapers","label_blur_wallpaper":"Blur:","label_scan_id":"Leia meu ID:","unknown_name":"Desconhecido","save_action":"Guardar","cannot_parse_vcard":"Não é possível analisar o arquivo vCard.","chat_now":"Conversar","find_user":"Encontrar","label_contact_card":"Cartão de Contato","label_contacts":"Contatos","add_members_prompt":"adicionar membros"} \ No newline at end of file diff --git a/src/index.js b/src/index.js index dff2a042..3665debb 100644 --- a/src/index.js +++ b/src/index.js @@ -71,7 +71,8 @@ if (rtl.includes(baseLanguage)) { const root = createRoot(document.getElementById('mountPoint')); messageLoader[htmlLang]().then(messages => root.render( - - - + React.createElement(IntlProvider, + { locale: language, messages: messages, textComponent: React.Fragment }, + React.createElement(TinodeWeb, null) + ) )); diff --git a/src/lib/formatters.js b/src/lib/formatters.js index 72d84ad7..fc69ad3c 100644 --- a/src/lib/formatters.js +++ b/src/lib/formatters.js @@ -166,9 +166,15 @@ export function fullFormatter(style, data, values, key, stack) { // Generate comment for unknown element. let body = values; if (!Array.isArray(values) || !values.join('').trim()) { - body = [{this.formatMessage(messages.drafty_unknown)}]; + body = [React.createElement('span', + {key: 'x1', className: 'gray'}, + this.formatMessage(messages.drafty_unknown) + )]; } - values = [extension, ' '].concat(body); + values = [React.createElement('i', + {key: 'x0', className: 'material-icons gray'}, + 'extension' + ), ' '].concat(body); } break; } @@ -276,7 +282,8 @@ export function previewFormatter(style, data, values, key) { case 'AU': // Voicemail as '[mic] 0:00'. el = React.Fragment; - values = [mic, ' ', secondsToTime(data.duration/1000)]; + values = [React.createElement('i', {key: 'au', className: 'material-icons'}, 'mic'), + ' ', secondsToTime(data.duration/1000)]; break; case 'BR': // Replace new line with a space. @@ -295,7 +302,8 @@ export function previewFormatter(style, data, values, key) { case 'IM': // Replace image with '[icon] Image'. el = React.Fragment; - values = [photo, ' ', this.formatMessage(messages.drafty_image)]; + values = [React.createElement('i', {key: 'im', className: 'material-icons'}, 'photo'), + ' ', this.formatMessage(messages.drafty_image)]; break; case 'BN': el = 'span'; @@ -303,7 +311,7 @@ export function previewFormatter(style, data, values, key) { break; case 'FM': el = React.Fragment; - values = [dashboard, + values = [React.createElement('i', {key: 'fm', className: 'material-icons'}, 'dashboard'), this.formatMessage(messages.drafty_form)].concat(' ', values || []); break; case 'RW': @@ -320,7 +328,8 @@ export function previewFormatter(style, data, values, key) { delete data.ref; } el = React.Fragment; - values = [attachment, ' ', this.formatMessage(messages.drafty_attachment)]; + values = [React.createElement('i', {key: 'ex', className: 'material-icons'}, 'attachment'), + ' ', this.formatMessage(messages.drafty_attachment)]; break; case 'VC': el = CallStatus; @@ -339,19 +348,21 @@ export function previewFormatter(style, data, values, key) { case 'TC': // TheCard el = React.Fragment; - values = [contact_mail, ' ', + values = [React.createElement('i', {key: 'tc', className: 'material-icons'}, 'contact_mail'), ' ', TheCard.getFn(data) || this.formatMessage(messages.drafty_unknown)]; break; case 'VD': // Replace image with '[icon] Video'. el = React.Fragment; - values = [play_circle_outline, ' ', this.formatMessage(messages.drafty_video)]; + values = [React.createElement('i', {key: 'im', className: 'material-icons'}, 'play_circle_outline'), + ' ', this.formatMessage(messages.drafty_video)]; break; default: if (!el) { // Unknown element. el = React.Fragment; - values = [extension, ' ', this.formatMessage(messages.drafty_unknown)]; + values = [React.createElement('i', {key: 'x0', className: 'material-icons gray'}, 'extension'), + ' ', this.formatMessage(messages.drafty_unknown)]; } break; } @@ -449,7 +460,7 @@ function quoteFormatter(style, data, values, key) { delete data.ref; } el = React.Fragment; - values = [attachment, + values = [React.createElement('i', {key: 'ex', className: 'material-icons'}, 'attachment'), shortenFileName(fname, 16) || this.formatMessage(messages.drafty_attachment)]; break; } @@ -551,7 +562,7 @@ export function replyFormatter(style, data, values, key, stack) { if (stack.includes('QQ')) { // Quote inside quote when forwarding a message. return React.createElement('span', {key: key}, - [format_quote, ' ']); + [React.createElement('i', {key: 'qq', className: 'material-icons'}, 'format_quote'), ' ']); } const attr = Drafty.attrValue('QQ', data) || {}; diff --git a/src/version.js b/src/version.js index f8adf19e..103eb663 100644 --- a/src/version.js +++ b/src/version.js @@ -1,3 +1,3 @@ // This is a generated file. Don't edit. -export const PACKAGE_VERSION = "0.25.2"; +export const PACKAGE_VERSION = "0.25.3"; diff --git a/umd/0.prod.js b/umd/0.prod.js index c0cdd1d0..fbd32eab 100644 --- a/umd/0.prod.js +++ b/umd/0.prod.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[0],{4e3:function(e,t,i){i.r(t);var s=i(1594),a=i.n(s),n=i(8181),r=i(5053),o=i(3537),h=i.n(o),d=i(6110),l=i(8589),c=i(9027);const u=100,p="audio/webm",m=[p,"audio/mp4",""],v=(0,n.defineMessages)({icon_title_delete:{id:"icon_title_delete",defaultMessage:[{type:0,value:"Delete recording"}]},icon_title_pause:{id:"icon_title_pause",defaultMessage:[{type:0,value:"Pause playback"}]},icon_title_resume:{id:"icon_title_resume",defaultMessage:[{type:0,value:"Resume playback"}]},icon_title_send:{id:"icon_title_send",defaultMessage:[{type:0,value:"Send message"}]},failed_to_init_audio:{id:"failed_to_init_audio",defaultMessage:[{type:0,value:"Failed to initialize audio recording"}]}});class f extends a().PureComponent{constructor(e){super(e),this.state={enabled:!0,audioRecord:null,recording:!0,paused:!1,duration:"0:00",blobUrl:null,preview:null},this.visualize=this.visualize.bind(this),this.initMediaRecording=this.initMediaRecording.bind(this),this.initCanvas=this.initCanvas.bind(this),this.getRecording=this.getRecording.bind(this),this.cleanUp=this.cleanUp.bind(this),this.handleResume=this.handleResume.bind(this),this.handlePause=this.handlePause.bind(this),this.handleDelete=this.handleDelete.bind(this),this.handleDone=this.handleDone.bind(this),this.durationMillis=0,this.startedOn=null,this.viewBuffer=[],this.canvasRef=a().createRef(),this.recordingTimestamp=0}componentDidMount(){this.stream=null,this.mediaRecorder=null,this.audioContext=null,this.audioInput=null,this.analyser=null,this.audioChunks=[];try{navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(this.initMediaRecording,this.props.onError)}catch(e){this.props.onError(e)}}componentWillUnmount(){this.startedOn=null,this.stream&&this.cleanUp()}visualize(){this.initCanvas();const e=new Uint8Array(this.analyser.frequencyBinCount),t=this.canvasWidth,i=this.canvasHeight,s=t/10|0,a=u*s;this.canvasContext.lineWidth=6,this.canvasContext.strokeStyle="#BBBD";let n=0,r=0,o=0;const h=d=>{if(!this.startedOn)return;window.requestAnimationFrame(h);const p=this.durationMillis+(Date.now()-this.startedOn);this.setState({duration:(0,l.Ye)(p/1e3)}),p>c.iB&&(this.startedOn=null,this.mediaRecorder.pause(),this.durationMillis+=Date.now()-this.startedOn,this.setState({enabled:!1,recording:!1,duration:(0,l.Ye)(this.durationMillis/1e3)})),this.analyser.getByteTimeDomainData(e);let m=0;for(const t of e)m+=(t-127)**2;r+=Math.sqrt(m/e.length),o++;let v=p/u|0;const f=a>p?0:(p-u*v)/u*10;n!=v&&(n=v,this.viewBuffer.push(r/o),r=0,o=0,this.viewBuffer.length>s&&this.viewBuffer.shift()),this.canvasContext.clearRect(0,0,t,i),this.canvasContext.beginPath();for(let e=0;ec.NR&&(this.props.onRecordingProgress(),this.recordingTimestamp=g)};h()}handlePause(e){e.preventDefault(),this.mediaRecorder.pause(),this.mediaRecorder.requestData(),this.durationMillis+=Date.now()-this.startedOn,this.startedOn=null,this.setState({recording:!1})}handleResume(e){e.preventDefault(),this.state.enabled&&(this.startedOn=Date.now(),this.mediaRecorder.resume(),this.setState({recording:!0},this.visualize))}handleDelete(e){e.preventDefault(),this.durationMillis=0,this.startedOn=null,this.mediaRecorder.stop(),this.cleanUp(),this.setState({recording:!1})}handleDone(e){e.preventDefault(),this.setState({recording:!1}),this.startedOn&&(this.durationMillis+=Date.now()-this.startedOn,this.startedOn=null),this.mediaRecorder&&this.mediaRecorder.stop()}initCanvas(){this.canvasRef.current.width=2*this.canvasRef.current.offsetWidth,this.canvasRef.current.height=2*this.canvasRef.current.offsetHeight,this.canvasContext=this.canvasRef.current.getContext("2d"),this.canvasContext.lineCap="round",this.canvasContext.translate(.5,.5),this.canvasWidth=this.canvasRef.current.width,this.canvasHeight=this.canvasRef.current.height}initMediaRecording(e){return this.stream=e,m.some(t=>!!MediaRecorder.isTypeSupported(t)&&(this.mediaRecorder=new MediaRecorder(e,{mimeType:t,audioBitsPerSecond:24e3}),!0)),this.mediaRecorder?(this.audioContext=new AudioContext,this.audioInput=this.audioContext.createMediaStreamSource(e),this.audioInput?(this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=256,this.audioInput.connect(this.analyser),this.mediaRecorder.onstop=e=>{this.durationMillis>c.wl?this.getRecording(this.mediaRecorder.mimeType).then(e=>this.props.onFinished(e.url,e.preview,this.durationMillis)):this.props.onDeleted(),this.cleanUp()},this.mediaRecorder.ondataavailable=e=>{e.data.size>0&&this.audioChunks.push(e.data),"inactive"!=this.mediaRecorder.state&&this.getRecording(this.mediaRecorder.mimeType).then(e=>{this.setState({blobUrl:e.url,preview:e.preview})})},this.durationMillis=0,this.startedOn=Date.now(),this.mediaRecorder.start(),this.visualize(),this.props.onRecordingProgress(),void(this.recordingTimestamp=this.startedOn)):(console.warn("createMediaStreamSource returned null: audio input unavailable"),void this.props.onError(this.props.intl.formatMessage(v.failed_to_init_audio)))):(console.warn("MediaRecorder failed to initialize: no supported audio formats"),void this.props.onError(this.props.intl.formatMessage(v.failed_to_init_audio)))}getRecording(e){e=e||p;let t=new Blob(this.audioChunks,{type:e});return(e==p?h()(t,e):Promise.resolve(t)).then(e=>(t=e,e.arrayBuffer())).then(e=>this.audioContext.decodeAudioData(e)).then(e=>this.createPreview(e)).then(e=>({url:window.URL.createObjectURL(t),preview:(0,d.Pv)(e)}))}createPreview(e){const t=e.getChannelData(0),i=Math.min(t.length,96),s=t.length/i|0,a=Math.max(1,s/10|0);let n=[],r=-1;for(let e=0;e0&&(n=n.map(e=>100*e/r|0)),n}cleanUp(){this.audioInput&&this.audioInput.disconnect(),this.stream.getTracks().forEach(e=>e.stop())}render(){const{formatMessage:e}=this.props.intl,t="material-icons "+(this.state.enabled?"red":"gray");return a().createElement("div",{className:"audio"},a().createElement("a",{href:"#",onClick:this.handleDelete,title:e(v.icon_title_delete)},a().createElement("i",{className:"material-icons gray"},"delete_outline")),this.state.recording?a().createElement("canvas",{ref:this.canvasRef}):a().createElement(r.A,{src:this.state.blobUrl,preview:this.state.preview,duration:this.durationMillis,short:!0}),a().createElement("div",{className:"duration"},this.state.duration),this.state.recording?a().createElement("a",{href:"#",onClick:this.handlePause,title:e(v.icon_title_pause)},a().createElement("i",{className:"material-icons"},"pause_circle_outline")):a().createElement("a",{href:"#",onClick:this.handleResume,title:e(v.icon_title_resume)},a().createElement("i",{className:t},"radio_button_checked")),a().createElement("a",{href:"#",onClick:this.handleDone,title:e(v.icon_title_send)},a().createElement("i",{className:"material-icons"},"send")))}}t.default=(0,n.injectIntl)(f)}}]); +"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[0],{4e3:function(e,t,i){i.r(t);var s=i(1594),a=i.n(s),n=i(8181),r=i(5053),o=i(3537),d=i.n(o),h=i(6110),l=i(8589),c=(i(9027),i(5446));const u=100,p="audio/webm",m=[p,"audio/mp4",""],v=(0,n.defineMessages)({icon_title_delete:{id:"icon_title_delete",defaultMessage:"Delete recording",description:"Icon tool tip for deleting recorded audio"},icon_title_pause:{id:"icon_title_pause",defaultMessage:"Pause playback",description:"Icon tool tip for pausing audio playback"},icon_title_resume:{id:"icon_title_resume",defaultMessage:"Resume playback",description:"Icon tool tip for resuming audio playback"},icon_title_send:{id:"icon_title_send",defaultMessage:"Send message",description:"Icon tool tip for sending a message"},failed_to_init_audio:{id:"failed_to_init_audio",defaultMessage:"Failed to initialize audio recording",description:"Error message when audio is not available"}});class f extends a().PureComponent{constructor(e){super(e),this.state={enabled:!0,audioRecord:null,recording:!0,paused:!1,duration:"0:00",blobUrl:null,preview:null},this.visualize=this.visualize.bind(this),this.initMediaRecording=this.initMediaRecording.bind(this),this.initCanvas=this.initCanvas.bind(this),this.getRecording=this.getRecording.bind(this),this.cleanUp=this.cleanUp.bind(this),this.handleResume=this.handleResume.bind(this),this.handlePause=this.handlePause.bind(this),this.handleDelete=this.handleDelete.bind(this),this.handleDone=this.handleDone.bind(this),this.durationMillis=0,this.startedOn=null,this.viewBuffer=[],this.canvasRef=a().createRef(),this.recordingTimestamp=0}componentDidMount(){this.stream=null,this.mediaRecorder=null,this.audioContext=null,this.audioInput=null,this.analyser=null,this.audioChunks=[];try{navigator.mediaDevices.getUserMedia({audio:!0,video:!1}).then(this.initMediaRecording,this.props.onError)}catch(e){this.props.onError(e)}}componentWillUnmount(){this.startedOn=null,this.stream&&this.cleanUp()}visualize(){this.initCanvas();const e=new Uint8Array(this.analyser.frequencyBinCount),t=this.canvasWidth,i=this.canvasHeight,s=t/10|0,a=u*s;this.canvasContext.lineWidth=6,this.canvasContext.strokeStyle="#BBBD";let n=0,r=0,o=0;const d=h=>{if(!this.startedOn)return;window.requestAnimationFrame(d);const c=this.durationMillis+(Date.now()-this.startedOn);this.setState({duration:(0,l.Ye)(c/1e3)}),c>6e5&&(this.startedOn=null,this.mediaRecorder.pause(),this.durationMillis+=Date.now()-this.startedOn,this.setState({enabled:!1,recording:!1,duration:(0,l.Ye)(this.durationMillis/1e3)})),this.analyser.getByteTimeDomainData(e);let p=0;for(const t of e)p+=(t-127)**2;r+=Math.sqrt(p/e.length),o++;let m=c/u|0;const v=a>c?0:(c-u*m)/u*10;n!=m&&(n=m,this.viewBuffer.push(r/o),r=0,o=0,this.viewBuffer.length>s&&this.viewBuffer.shift()),this.canvasContext.clearRect(0,0,t,i),this.canvasContext.beginPath();for(let e=0;e3e3&&(this.props.onRecordingProgress(),this.recordingTimestamp=f)};d()}handlePause(e){e.preventDefault(),this.mediaRecorder.pause(),this.mediaRecorder.requestData(),this.durationMillis+=Date.now()-this.startedOn,this.startedOn=null,this.setState({recording:!1})}handleResume(e){e.preventDefault(),this.state.enabled&&(this.startedOn=Date.now(),this.mediaRecorder.resume(),this.setState({recording:!0},this.visualize))}handleDelete(e){e.preventDefault(),this.durationMillis=0,this.startedOn=null,this.mediaRecorder.stop(),this.cleanUp(),this.setState({recording:!1})}handleDone(e){e.preventDefault(),this.setState({recording:!1}),this.startedOn&&(this.durationMillis+=Date.now()-this.startedOn,this.startedOn=null),this.mediaRecorder&&this.mediaRecorder.stop()}initCanvas(){this.canvasRef.current.width=2*this.canvasRef.current.offsetWidth,this.canvasRef.current.height=2*this.canvasRef.current.offsetHeight,this.canvasContext=this.canvasRef.current.getContext("2d"),this.canvasContext.lineCap="round",this.canvasContext.translate(.5,.5),this.canvasWidth=this.canvasRef.current.width,this.canvasHeight=this.canvasRef.current.height}initMediaRecording(e){return this.stream=e,m.some(t=>!!MediaRecorder.isTypeSupported(t)&&(this.mediaRecorder=new MediaRecorder(e,{mimeType:t,audioBitsPerSecond:24e3}),!0)),this.mediaRecorder?(this.audioContext=new AudioContext,this.audioInput=this.audioContext.createMediaStreamSource(e),this.audioInput?(this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=256,this.audioInput.connect(this.analyser),this.mediaRecorder.onstop=e=>{this.durationMillis>2e3?this.getRecording(this.mediaRecorder.mimeType).then(e=>this.props.onFinished(e.url,e.preview,this.durationMillis)):this.props.onDeleted(),this.cleanUp()},this.mediaRecorder.ondataavailable=e=>{e.data.size>0&&this.audioChunks.push(e.data),"inactive"!=this.mediaRecorder.state&&this.getRecording(this.mediaRecorder.mimeType).then(e=>{this.setState({blobUrl:e.url,preview:e.preview})})},this.durationMillis=0,this.startedOn=Date.now(),this.mediaRecorder.start(),this.visualize(),this.props.onRecordingProgress(),void(this.recordingTimestamp=this.startedOn)):(console.warn("createMediaStreamSource returned null: audio input unavailable"),void this.props.onError(this.props.intl.formatMessage(v.failed_to_init_audio)))):(console.warn("MediaRecorder failed to initialize: no supported audio formats"),void this.props.onError(this.props.intl.formatMessage(v.failed_to_init_audio)))}getRecording(e){e=e||p;let t=new Blob(this.audioChunks,{type:e});return(e==p?d()(t,e):Promise.resolve(t)).then(e=>(t=e,e.arrayBuffer())).then(e=>this.audioContext.decodeAudioData(e)).then(e=>this.createPreview(e)).then(e=>({url:window.URL.createObjectURL(t),preview:(0,h.Pv)(e)}))}createPreview(e){const t=e.getChannelData(0),i=Math.min(t.length,96),s=t.length/i|0,a=Math.max(1,s/10|0);let n=[],r=-1;for(let e=0;e0&&(n=n.map(e=>100*e/r|0)),n}cleanUp(){this.audioInput&&this.audioInput.disconnect(),this.stream.getTracks().forEach(e=>e.stop())}render(){const{formatMessage:e}=this.props.intl,t="material-icons "+(this.state.enabled?"red":"gray");return(0,c.jsxDEV)("div",{className:"audio",children:[(0,c.jsxDEV)("a",{href:"#",onClick:this.handleDelete,title:e(v.icon_title_delete),children:(0,c.jsxDEV)("i",{className:"material-icons gray",children:"delete_outline"},void 0,!1)},void 0,!1),this.state.recording?(0,c.jsxDEV)("canvas",{ref:this.canvasRef},void 0,!1):(0,c.jsxDEV)(r.A,{src:this.state.blobUrl,preview:this.state.preview,duration:this.durationMillis,short:!0},void 0,!1),(0,c.jsxDEV)("div",{className:"duration",children:this.state.duration},void 0,!1),this.state.recording?(0,c.jsxDEV)("a",{href:"#",onClick:this.handlePause,title:e(v.icon_title_pause),children:(0,c.jsxDEV)("i",{className:"material-icons",children:"pause_circle_outline"},void 0,!1)},void 0,!1):(0,c.jsxDEV)("a",{href:"#",onClick:this.handleResume,title:e(v.icon_title_resume),children:(0,c.jsxDEV)("i",{className:t,children:"radio_button_checked"},void 0,!1)},void 0,!1),(0,c.jsxDEV)("a",{href:"#",onClick:this.handleDone,title:e(v.icon_title_send),children:(0,c.jsxDEV)("i",{className:"material-icons",children:"send"},void 0,!1)},void 0,!1)]},void 0,!0)}}t.default=(0,n.injectIntl)(f)}}]); //# sourceMappingURL=0.prod.js.map \ No newline at end of file diff --git a/umd/0.prod.js.map b/umd/0.prod.js.map index d0e4a525..b9a7e818 100644 --- a/umd/0.prod.js.map +++ b/umd/0.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"0.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/widgets/audio-recorder.jsx"],"sourcesContent":["// Audio recorder widget.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport AudioPlayer from './audio-player.jsx';\n// Workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=642012\n// It adds duration and SeekHead to the webm record.\nimport fixWebmDuration from 'webm-duration-fix';\n\nimport { intArrayToBase64 } from '../lib/blob-helpers.js'\nimport { secondsToTime } from '../lib/strformat';\nimport { KEYPRESS_DELAY, MAX_DURATION, MIN_DURATION } from '../config.js';\n\n// FFT resolution.\nconst BUFFER_SIZE = 256;\n// Make canvas bigger than the element size to reduce blurring.\nconst CANVAS_UPSCALING = 2.0;\n// Thickness of a visualization bar.\nconst LINE_WIDTH = 3 * CANVAS_UPSCALING;\n// Spacing between two visualization bars.\nconst SPACING = 2 * CANVAS_UPSCALING;\n// Duration represented by one visualization bar.\nconst MILLIS_PER_BAR = 100;\n// Color of histogram bars\nconst BAR_COLOR = '#BBBD';\n// Vertical scaling for visualization bars.\nconst BAR_SCALE = 64.0;\n// Number of bars in preview.\nconst VISUALIZATION_BARS = 96;\n// Maximum number of samples per bar.\nconst MAX_SAMPLES_PER_BAR = 10;\n\n// Default recording format (FF, Chrome except on iOS).\nconst DEFAULT_AUDIO_MIME_TYPE = 'audio/webm';\n// Safari supports only mp4 as audio recording format.\nconst SAFARI_AUDIO_MIME_TYPE = 'audio/mp4';\nconst AUDIO_MIME_TYPES = [DEFAULT_AUDIO_MIME_TYPE, SAFARI_AUDIO_MIME_TYPE, ''];\n\nconst messages = defineMessages({\n icon_title_delete: {\n id: 'icon_title_delete',\n defaultMessage: 'Delete recording',\n description: 'Icon tool tip for deleting recorded audio'\n },\n icon_title_pause: {\n id: 'icon_title_pause',\n defaultMessage: 'Pause playback',\n description: 'Icon tool tip for pausing audio playback'\n },\n icon_title_resume: {\n id: 'icon_title_resume',\n defaultMessage: 'Resume playback',\n description: 'Icon tool tip for resuming audio playback'\n },\n icon_title_send: {\n id: 'icon_title_send',\n defaultMessage: 'Send message',\n description: 'Icon tool tip for sending a message'\n },\n failed_to_init_audio: {\n id: 'failed_to_init_audio',\n defaultMessage: 'Failed to initialize audio recording',\n description: 'Error message when audio is not available'\n }\n});\n\nclass AudioRecorder extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n enabled: true,\n audioRecord: null,\n recording: true,\n paused: false,\n duration: '0:00',\n blobUrl: null,\n preview: null\n };\n\n this.visualize = this.visualize.bind(this);\n this.initMediaRecording = this.initMediaRecording.bind(this);\n this.initCanvas = this.initCanvas.bind(this);\n this.getRecording = this.getRecording.bind(this);\n this.cleanUp = this.cleanUp.bind(this);\n\n this.handleResume = this.handleResume.bind(this);\n this.handlePause = this.handlePause.bind(this);\n this.handleDelete = this.handleDelete.bind(this);\n this.handleDone = this.handleDone.bind(this);\n\n this.durationMillis = 0;\n this.startedOn = null;\n this.viewBuffer = [];\n this.canvasRef = React.createRef();\n\n // Timestamp for sending \"recording\" notifications.\n this.recordingTimestamp = 0;\n }\n\n componentDidMount() {\n this.stream = null;\n this.mediaRecorder = null;\n this.audioContext = null;\n this.audioInput = null;\n this.analyser = null;\n\n this.audioChunks = [];\n\n // Start recorder right away.\n try {\n navigator.mediaDevices.getUserMedia({audio: true, video: false}).then(this.initMediaRecording, this.props.onError);\n } catch (err) {\n this.props.onError(err);\n }\n }\n\n componentWillUnmount() {\n this.startedOn = null;\n if (this.stream) {\n this.cleanUp();\n }\n }\n\n // Draw amplitude of sound.\n visualize() {\n this.initCanvas();\n\n const pcmData = new Uint8Array(this.analyser.frequencyBinCount);\n const width = this.canvasWidth;\n const height = this.canvasHeight;\n // Number of bars.\n const viewLength = (width / (LINE_WIDTH + SPACING)) | 0;\n // Duration of audio which fits onto the screen.\n const viewDuration = MILLIS_PER_BAR * viewLength;\n\n this.canvasContext.lineWidth = LINE_WIDTH;\n this.canvasContext.strokeStyle = BAR_COLOR;\n\n let prevBarCount = 0;\n let volume = 0.0;\n let countPerBar = 0;\n const drawFrame = _ => {\n if (!this.startedOn) {\n return;\n }\n window.requestAnimationFrame(drawFrame);\n\n const duration = this.durationMillis + (Date.now() - this.startedOn);\n // Update record length timer.\n this.setState({duration: secondsToTime(duration / 1000)});\n\n // Check if record is too long.\n if (duration > MAX_DURATION) {\n this.startedOn = null;\n this.mediaRecorder.pause();\n this.durationMillis += Date.now() - this.startedOn;\n this.setState({enabled: false, recording: false, duration: secondsToTime(this.durationMillis / 1000)});\n }\n\n // Draw histogram.\n\n // Get current waveform and calculate its amplitude.\n this.analyser.getByteTimeDomainData(pcmData);\n let amp = 0.0;\n for (const amplitude of pcmData) {\n amp += (amplitude - 127) ** 2;\n }\n\n // Sum the amplitude.\n volume += Math.sqrt(amp/pcmData.length);\n countPerBar ++;\n\n let barCount = (duration / MILLIS_PER_BAR) | 0;\n // Shift of the histogram along x-axis to make scrolling smooth. No need to shift if recording is too short.\n const dx = viewDuration > duration ? 0 :\n (duration - MILLIS_PER_BAR * barCount) / MILLIS_PER_BAR * (LINE_WIDTH + SPACING);\n\n if (prevBarCount != barCount) {\n prevBarCount = barCount;\n // Add new amplitude visualization bar.\n this.viewBuffer.push(volume/countPerBar);\n volume = 0.0;\n countPerBar = 0;\n if (this.viewBuffer.length > viewLength) {\n // Keep at most 'viewLength' amplitude bars.\n this.viewBuffer.shift();\n }\n }\n\n // Clear canvas.\n this.canvasContext.clearRect(0, 0, width, height);\n\n // Draw amplitude bars.\n this.canvasContext.beginPath();\n for (let i = 0; i < this.viewBuffer.length; i++) {\n let x = i * (LINE_WIDTH + SPACING) - dx;\n let y = Math.max(Math.min(this.viewBuffer[i] / BAR_SCALE, 0.9) * height, 1);\n\n this.canvasContext.moveTo(x, (height - y) * 0.5);\n this.canvasContext.lineTo(x, (height + y) * 0.5);\n }\n // Actually draw the bars on canvas.\n this.canvasContext.stroke();\n\n // Send notification, if needed.\n const now = new Date().getTime();\n if (now - this.recordingTimestamp > KEYPRESS_DELAY) {\n this.props.onRecordingProgress();\n this.recordingTimestamp = now;\n }\n }\n\n drawFrame();\n }\n\n handlePause(e) {\n e.preventDefault();\n this.mediaRecorder.pause();\n this.mediaRecorder.requestData();\n this.durationMillis += Date.now() - this.startedOn;\n this.startedOn = null;\n this.setState({recording: false});\n }\n\n handleResume(e) {\n e.preventDefault();\n if (this.state.enabled) {\n this.startedOn = Date.now();\n this.mediaRecorder.resume();\n this.setState({recording: true}, this.visualize);\n }\n }\n\n handleDelete(e) {\n e.preventDefault();\n this.durationMillis = 0;\n this.startedOn = null;\n this.mediaRecorder.stop();\n this.cleanUp();\n this.setState({recording: false});\n }\n\n handleDone(e) {\n e.preventDefault();\n this.setState({recording: false});\n if (this.startedOn) {\n this.durationMillis += Date.now() - this.startedOn;\n this.startedOn = null;\n }\n // Stop recording and return data.\n if (this.mediaRecorder) {\n this.mediaRecorder.stop();\n }\n }\n\n initCanvas() {\n this.canvasRef.current.width = this.canvasRef.current.offsetWidth * CANVAS_UPSCALING;\n this.canvasRef.current.height = this.canvasRef.current.offsetHeight * CANVAS_UPSCALING;\n\n this.canvasContext = this.canvasRef.current.getContext('2d');\n this.canvasContext.lineCap = 'round';\n // To reduce line blurring.\n this.canvasContext.translate(0.5, 0.5);\n this.canvasWidth = this.canvasRef.current.width;\n this.canvasHeight = this.canvasRef.current.height;\n }\n\n initMediaRecording(stream) {\n this.stream = stream;\n AUDIO_MIME_TYPES.some(mimeType => {\n if (MediaRecorder.isTypeSupported(mimeType)) {\n this.mediaRecorder = new MediaRecorder(stream, {mimeType: mimeType, audioBitsPerSecond: 24_000});\n return true;\n }\n return false;\n });\n\n if (!this.mediaRecorder) {\n console.warn('MediaRecorder failed to initialize: no supported audio formats');\n this.props.onError(this.props.intl.formatMessage(messages.failed_to_init_audio));\n return;\n }\n\n // The following code is needed for visualization.\n this.audioContext = new AudioContext();\n this.audioInput = this.audioContext.createMediaStreamSource(stream);\n if (!this.audioInput) {\n console.warn('createMediaStreamSource returned null: audio input unavailable');\n this.props.onError(this.props.intl.formatMessage(messages.failed_to_init_audio));\n return;\n }\n\n this.analyser = this.audioContext.createAnalyser();\n this.analyser.fftSize = BUFFER_SIZE;\n this.audioInput.connect(this.analyser);\n\n this.mediaRecorder.onstop = _ => {\n if (this.durationMillis > MIN_DURATION) {\n this.getRecording(this.mediaRecorder.mimeType)\n .then(result => this.props.onFinished(result.url, result.preview, this.durationMillis));\n } else {\n this.props.onDeleted();\n }\n this.cleanUp();\n }\n\n this.mediaRecorder.ondataavailable = (e) => {\n if (e.data.size > 0) {\n this.audioChunks.push(e.data);\n }\n\n if (this.mediaRecorder.state != 'inactive') {\n this.getRecording(this.mediaRecorder.mimeType).then(result => {\n this.setState({\n blobUrl: result.url,\n preview: result.preview\n });\n });\n }\n }\n\n this.durationMillis = 0;\n this.startedOn = Date.now();\n this.mediaRecorder.start();\n this.visualize();\n\n this.props.onRecordingProgress();\n this.recordingTimestamp = this.startedOn;\n }\n\n // Obtain data in a form sutable for sending or playing back.\n getRecording(mimeType) {\n mimeType = mimeType || DEFAULT_AUDIO_MIME_TYPE;\n let blob = new Blob(this.audioChunks, {type: mimeType});\n // If duration is valid, apply fix for Chrome's WebM duration bug.\n const result = mimeType == DEFAULT_AUDIO_MIME_TYPE ?\n fixWebmDuration(blob, mimeType) :\n Promise.resolve(blob);\n return result\n .then(fixedBlob => { blob = fixedBlob; return fixedBlob.arrayBuffer(); })\n .then(arrayBuff => this.audioContext.decodeAudioData(arrayBuff))\n .then(decoded => this.createPreview(decoded))\n .then(preview => ({url: window.URL.createObjectURL(blob), preview: intArrayToBase64(preview)}));\n }\n\n // Preview must be calculated at the source: Chrome does not allow background AudioContext.\n createPreview(audio) {\n const data = audio.getChannelData(0);\n // Number of amplitude bars in preview.\n const viewLength = Math.min(data.length, VISUALIZATION_BARS);\n // The number of samples in each bar.\n const totalSPB = (data.length / viewLength) | 0;\n // Distance between samples: we are going to take just a fracton of samples.\n const samplingRate = Math.max(1, (totalSPB / MAX_SAMPLES_PER_BAR) | 0);\n\n let buffer = [];\n let max = -1;\n for (let i = 0; i < viewLength; i++) {\n let amplitude = 0;\n let count = 0;\n for (let j = 0; j < totalSPB; j += samplingRate) {\n amplitude += data[totalSPB * i + j] ** 2;\n count ++;\n }\n const val = Math.sqrt(amplitude / count);\n buffer.push(val);\n max = Math.max(max, val);\n }\n // Normalize amplitude to 0..100.\n if (max > 0) {\n buffer = buffer.map(a => (100 * a / max) | 0);\n }\n return buffer;\n }\n\n cleanUp() {\n if (this.audioInput) {\n this.audioInput.disconnect();\n }\n this.stream.getTracks().forEach(track => track.stop());\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const resumeClass = 'material-icons ' + (this.state.enabled ? 'red' : 'gray');\n return (\n
\n \n delete_outline\n \n {this.state.recording ?\n \n :\n \n }\n
{this.state.duration}
\n {this.state.recording ?\n \n pause_circle_outline\n :\n \n radio_button_checked\n \n }\n \n send\n \n
\n );\n }\n}\n\nexport default injectIntl(AudioRecorder);\n"],"names":["MILLIS_PER_BAR","DEFAULT_AUDIO_MIME_TYPE","AUDIO_MIME_TYPES","messages","defineMessages","icon_title_delete","id","defaultMessage","icon_title_pause","icon_title_resume","icon_title_send","failed_to_init_audio","AudioRecorder","React","constructor","props","super","this","state","enabled","audioRecord","recording","paused","duration","blobUrl","preview","visualize","bind","initMediaRecording","initCanvas","getRecording","cleanUp","handleResume","handlePause","handleDelete","handleDone","durationMillis","startedOn","viewBuffer","canvasRef","recordingTimestamp","componentDidMount","stream","mediaRecorder","audioContext","audioInput","analyser","audioChunks","navigator","mediaDevices","getUserMedia","audio","video","then","onError","err","componentWillUnmount","pcmData","Uint8Array","frequencyBinCount","width","canvasWidth","height","canvasHeight","viewLength","viewDuration","canvasContext","lineWidth","strokeStyle","prevBarCount","volume","countPerBar","drawFrame","_","window","requestAnimationFrame","Date","now","setState","secondsToTime","MAX_DURATION","pause","getByteTimeDomainData","amp","amplitude","Math","sqrt","length","barCount","dx","push","shift","clearRect","beginPath","i","x","y","max","min","moveTo","lineTo","stroke","getTime","KEYPRESS_DELAY","onRecordingProgress","e","preventDefault","requestData","resume","stop","current","offsetWidth","offsetHeight","getContext","lineCap","translate","some","mimeType","MediaRecorder","isTypeSupported","audioBitsPerSecond","AudioContext","createMediaStreamSource","createAnalyser","fftSize","connect","onstop","MIN_DURATION","result","onFinished","url","onDeleted","ondataavailable","data","size","start","console","warn","intl","formatMessage","blob","Blob","type","fixWebmDuration","Promise","resolve","fixedBlob","arrayBuffer","arrayBuff","decodeAudioData","decoded","createPreview","URL","createObjectURL","intArrayToBase64","getChannelData","totalSPB","samplingRate","buffer","count","j","val","map","a","disconnect","getTracks","forEach","track","render","resumeClass","className","href","onClick","title","ref","AudioPlayer","src","short","injectIntl"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"0.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/widgets/audio-recorder.jsx"],"sourcesContent":["// Audio recorder widget.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\n\nimport AudioPlayer from './audio-player.jsx';\n// Workaround for https://bugs.chromium.org/p/chromium/issues/detail?id=642012\n// It adds duration and SeekHead to the webm record.\nimport fixWebmDuration from 'webm-duration-fix';\n\nimport { intArrayToBase64 } from '../lib/blob-helpers.js'\nimport { secondsToTime } from '../lib/strformat';\nimport { KEYPRESS_DELAY, MAX_DURATION, MIN_DURATION } from '../config.js';\n\n// FFT resolution.\nconst BUFFER_SIZE = 256;\n// Make canvas bigger than the element size to reduce blurring.\nconst CANVAS_UPSCALING = 2.0;\n// Thickness of a visualization bar.\nconst LINE_WIDTH = 3 * CANVAS_UPSCALING;\n// Spacing between two visualization bars.\nconst SPACING = 2 * CANVAS_UPSCALING;\n// Duration represented by one visualization bar.\nconst MILLIS_PER_BAR = 100;\n// Color of histogram bars\nconst BAR_COLOR = '#BBBD';\n// Vertical scaling for visualization bars.\nconst BAR_SCALE = 64.0;\n// Number of bars in preview.\nconst VISUALIZATION_BARS = 96;\n// Maximum number of samples per bar.\nconst MAX_SAMPLES_PER_BAR = 10;\n\n// Default recording format (FF, Chrome except on iOS).\nconst DEFAULT_AUDIO_MIME_TYPE = 'audio/webm';\n// Safari supports only mp4 as audio recording format.\nconst SAFARI_AUDIO_MIME_TYPE = 'audio/mp4';\nconst AUDIO_MIME_TYPES = [DEFAULT_AUDIO_MIME_TYPE, SAFARI_AUDIO_MIME_TYPE, ''];\n\nconst messages = defineMessages({\n icon_title_delete: {\n id: 'icon_title_delete',\n defaultMessage: 'Delete recording',\n description: 'Icon tool tip for deleting recorded audio'\n },\n icon_title_pause: {\n id: 'icon_title_pause',\n defaultMessage: 'Pause playback',\n description: 'Icon tool tip for pausing audio playback'\n },\n icon_title_resume: {\n id: 'icon_title_resume',\n defaultMessage: 'Resume playback',\n description: 'Icon tool tip for resuming audio playback'\n },\n icon_title_send: {\n id: 'icon_title_send',\n defaultMessage: 'Send message',\n description: 'Icon tool tip for sending a message'\n },\n failed_to_init_audio: {\n id: 'failed_to_init_audio',\n defaultMessage: 'Failed to initialize audio recording',\n description: 'Error message when audio is not available'\n }\n});\n\nclass AudioRecorder extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n enabled: true,\n audioRecord: null,\n recording: true,\n paused: false,\n duration: '0:00',\n blobUrl: null,\n preview: null\n };\n\n this.visualize = this.visualize.bind(this);\n this.initMediaRecording = this.initMediaRecording.bind(this);\n this.initCanvas = this.initCanvas.bind(this);\n this.getRecording = this.getRecording.bind(this);\n this.cleanUp = this.cleanUp.bind(this);\n\n this.handleResume = this.handleResume.bind(this);\n this.handlePause = this.handlePause.bind(this);\n this.handleDelete = this.handleDelete.bind(this);\n this.handleDone = this.handleDone.bind(this);\n\n this.durationMillis = 0;\n this.startedOn = null;\n this.viewBuffer = [];\n this.canvasRef = React.createRef();\n\n // Timestamp for sending \"recording\" notifications.\n this.recordingTimestamp = 0;\n }\n\n componentDidMount() {\n this.stream = null;\n this.mediaRecorder = null;\n this.audioContext = null;\n this.audioInput = null;\n this.analyser = null;\n\n this.audioChunks = [];\n\n // Start recorder right away.\n try {\n navigator.mediaDevices.getUserMedia({audio: true, video: false}).then(this.initMediaRecording, this.props.onError);\n } catch (err) {\n this.props.onError(err);\n }\n }\n\n componentWillUnmount() {\n this.startedOn = null;\n if (this.stream) {\n this.cleanUp();\n }\n }\n\n // Draw amplitude of sound.\n visualize() {\n this.initCanvas();\n\n const pcmData = new Uint8Array(this.analyser.frequencyBinCount);\n const width = this.canvasWidth;\n const height = this.canvasHeight;\n // Number of bars.\n const viewLength = (width / (LINE_WIDTH + SPACING)) | 0;\n // Duration of audio which fits onto the screen.\n const viewDuration = MILLIS_PER_BAR * viewLength;\n\n this.canvasContext.lineWidth = LINE_WIDTH;\n this.canvasContext.strokeStyle = BAR_COLOR;\n\n let prevBarCount = 0;\n let volume = 0.0;\n let countPerBar = 0;\n const drawFrame = _ => {\n if (!this.startedOn) {\n return;\n }\n window.requestAnimationFrame(drawFrame);\n\n const duration = this.durationMillis + (Date.now() - this.startedOn);\n // Update record length timer.\n this.setState({duration: secondsToTime(duration / 1000)});\n\n // Check if record is too long.\n if (duration > MAX_DURATION) {\n this.startedOn = null;\n this.mediaRecorder.pause();\n this.durationMillis += Date.now() - this.startedOn;\n this.setState({enabled: false, recording: false, duration: secondsToTime(this.durationMillis / 1000)});\n }\n\n // Draw histogram.\n\n // Get current waveform and calculate its amplitude.\n this.analyser.getByteTimeDomainData(pcmData);\n let amp = 0.0;\n for (const amplitude of pcmData) {\n amp += (amplitude - 127) ** 2;\n }\n\n // Sum the amplitude.\n volume += Math.sqrt(amp/pcmData.length);\n countPerBar ++;\n\n let barCount = (duration / MILLIS_PER_BAR) | 0;\n // Shift of the histogram along x-axis to make scrolling smooth. No need to shift if recording is too short.\n const dx = viewDuration > duration ? 0 :\n (duration - MILLIS_PER_BAR * barCount) / MILLIS_PER_BAR * (LINE_WIDTH + SPACING);\n\n if (prevBarCount != barCount) {\n prevBarCount = barCount;\n // Add new amplitude visualization bar.\n this.viewBuffer.push(volume/countPerBar);\n volume = 0.0;\n countPerBar = 0;\n if (this.viewBuffer.length > viewLength) {\n // Keep at most 'viewLength' amplitude bars.\n this.viewBuffer.shift();\n }\n }\n\n // Clear canvas.\n this.canvasContext.clearRect(0, 0, width, height);\n\n // Draw amplitude bars.\n this.canvasContext.beginPath();\n for (let i = 0; i < this.viewBuffer.length; i++) {\n let x = i * (LINE_WIDTH + SPACING) - dx;\n let y = Math.max(Math.min(this.viewBuffer[i] / BAR_SCALE, 0.9) * height, 1);\n\n this.canvasContext.moveTo(x, (height - y) * 0.5);\n this.canvasContext.lineTo(x, (height + y) * 0.5);\n }\n // Actually draw the bars on canvas.\n this.canvasContext.stroke();\n\n // Send notification, if needed.\n const now = new Date().getTime();\n if (now - this.recordingTimestamp > KEYPRESS_DELAY) {\n this.props.onRecordingProgress();\n this.recordingTimestamp = now;\n }\n }\n\n drawFrame();\n }\n\n handlePause(e) {\n e.preventDefault();\n this.mediaRecorder.pause();\n this.mediaRecorder.requestData();\n this.durationMillis += Date.now() - this.startedOn;\n this.startedOn = null;\n this.setState({recording: false});\n }\n\n handleResume(e) {\n e.preventDefault();\n if (this.state.enabled) {\n this.startedOn = Date.now();\n this.mediaRecorder.resume();\n this.setState({recording: true}, this.visualize);\n }\n }\n\n handleDelete(e) {\n e.preventDefault();\n this.durationMillis = 0;\n this.startedOn = null;\n this.mediaRecorder.stop();\n this.cleanUp();\n this.setState({recording: false});\n }\n\n handleDone(e) {\n e.preventDefault();\n this.setState({recording: false});\n if (this.startedOn) {\n this.durationMillis += Date.now() - this.startedOn;\n this.startedOn = null;\n }\n // Stop recording and return data.\n if (this.mediaRecorder) {\n this.mediaRecorder.stop();\n }\n }\n\n initCanvas() {\n this.canvasRef.current.width = this.canvasRef.current.offsetWidth * CANVAS_UPSCALING;\n this.canvasRef.current.height = this.canvasRef.current.offsetHeight * CANVAS_UPSCALING;\n\n this.canvasContext = this.canvasRef.current.getContext('2d');\n this.canvasContext.lineCap = 'round';\n // To reduce line blurring.\n this.canvasContext.translate(0.5, 0.5);\n this.canvasWidth = this.canvasRef.current.width;\n this.canvasHeight = this.canvasRef.current.height;\n }\n\n initMediaRecording(stream) {\n this.stream = stream;\n AUDIO_MIME_TYPES.some(mimeType => {\n if (MediaRecorder.isTypeSupported(mimeType)) {\n this.mediaRecorder = new MediaRecorder(stream, {mimeType: mimeType, audioBitsPerSecond: 24_000});\n return true;\n }\n return false;\n });\n\n if (!this.mediaRecorder) {\n console.warn('MediaRecorder failed to initialize: no supported audio formats');\n this.props.onError(this.props.intl.formatMessage(messages.failed_to_init_audio));\n return;\n }\n\n // The following code is needed for visualization.\n this.audioContext = new AudioContext();\n this.audioInput = this.audioContext.createMediaStreamSource(stream);\n if (!this.audioInput) {\n console.warn('createMediaStreamSource returned null: audio input unavailable');\n this.props.onError(this.props.intl.formatMessage(messages.failed_to_init_audio));\n return;\n }\n\n this.analyser = this.audioContext.createAnalyser();\n this.analyser.fftSize = BUFFER_SIZE;\n this.audioInput.connect(this.analyser);\n\n this.mediaRecorder.onstop = _ => {\n if (this.durationMillis > MIN_DURATION) {\n this.getRecording(this.mediaRecorder.mimeType)\n .then(result => this.props.onFinished(result.url, result.preview, this.durationMillis));\n } else {\n this.props.onDeleted();\n }\n this.cleanUp();\n }\n\n this.mediaRecorder.ondataavailable = (e) => {\n if (e.data.size > 0) {\n this.audioChunks.push(e.data);\n }\n\n if (this.mediaRecorder.state != 'inactive') {\n this.getRecording(this.mediaRecorder.mimeType).then(result => {\n this.setState({\n blobUrl: result.url,\n preview: result.preview\n });\n });\n }\n }\n\n this.durationMillis = 0;\n this.startedOn = Date.now();\n this.mediaRecorder.start();\n this.visualize();\n\n this.props.onRecordingProgress();\n this.recordingTimestamp = this.startedOn;\n }\n\n // Obtain data in a form sutable for sending or playing back.\n getRecording(mimeType) {\n mimeType = mimeType || DEFAULT_AUDIO_MIME_TYPE;\n let blob = new Blob(this.audioChunks, {type: mimeType});\n // If duration is valid, apply fix for Chrome's WebM duration bug.\n const result = mimeType == DEFAULT_AUDIO_MIME_TYPE ?\n fixWebmDuration(blob, mimeType) :\n Promise.resolve(blob);\n return result\n .then(fixedBlob => { blob = fixedBlob; return fixedBlob.arrayBuffer(); })\n .then(arrayBuff => this.audioContext.decodeAudioData(arrayBuff))\n .then(decoded => this.createPreview(decoded))\n .then(preview => ({url: window.URL.createObjectURL(blob), preview: intArrayToBase64(preview)}));\n }\n\n // Preview must be calculated at the source: Chrome does not allow background AudioContext.\n createPreview(audio) {\n const data = audio.getChannelData(0);\n // Number of amplitude bars in preview.\n const viewLength = Math.min(data.length, VISUALIZATION_BARS);\n // The number of samples in each bar.\n const totalSPB = (data.length / viewLength) | 0;\n // Distance between samples: we are going to take just a fracton of samples.\n const samplingRate = Math.max(1, (totalSPB / MAX_SAMPLES_PER_BAR) | 0);\n\n let buffer = [];\n let max = -1;\n for (let i = 0; i < viewLength; i++) {\n let amplitude = 0;\n let count = 0;\n for (let j = 0; j < totalSPB; j += samplingRate) {\n amplitude += data[totalSPB * i + j] ** 2;\n count ++;\n }\n const val = Math.sqrt(amplitude / count);\n buffer.push(val);\n max = Math.max(max, val);\n }\n // Normalize amplitude to 0..100.\n if (max > 0) {\n buffer = buffer.map(a => (100 * a / max) | 0);\n }\n return buffer;\n }\n\n cleanUp() {\n if (this.audioInput) {\n this.audioInput.disconnect();\n }\n this.stream.getTracks().forEach(track => track.stop());\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const resumeClass = 'material-icons ' + (this.state.enabled ? 'red' : 'gray');\n return (\n
\n \n delete_outline\n \n {this.state.recording ?\n \n :\n \n }\n
{this.state.duration}
\n {this.state.recording ?\n \n pause_circle_outline\n :\n \n radio_button_checked\n \n }\n \n send\n \n
\n );\n }\n}\n\nexport default injectIntl(AudioRecorder);\n"],"names":["MILLIS_PER_BAR","DEFAULT_AUDIO_MIME_TYPE","AUDIO_MIME_TYPES","messages","react_intl__WEBPACK_IMPORTED_MODULE_1__","defineMessages","icon_title_delete","id","defaultMessage","description","icon_title_pause","icon_title_resume","icon_title_send","failed_to_init_audio","AudioRecorder","react__WEBPACK_IMPORTED_MODULE_0___default","constructor","props","super","this","state","enabled","audioRecord","recording","paused","duration","blobUrl","preview","visualize","bind","initMediaRecording","initCanvas","getRecording","cleanUp","handleResume","handlePause","handleDelete","handleDone","durationMillis","startedOn","viewBuffer","canvasRef","createRef","recordingTimestamp","componentDidMount","stream","mediaRecorder","audioContext","audioInput","analyser","audioChunks","navigator","mediaDevices","getUserMedia","audio","video","then","onError","err","componentWillUnmount","pcmData","Uint8Array","frequencyBinCount","width","canvasWidth","height","canvasHeight","viewLength","viewDuration","canvasContext","lineWidth","strokeStyle","prevBarCount","volume","countPerBar","drawFrame","_","window","requestAnimationFrame","Date","now","setState","_lib_strformat__WEBPACK_IMPORTED_MODULE_5__","Ye","pause","getByteTimeDomainData","amp","amplitude","Math","sqrt","length","barCount","dx","push","shift","clearRect","beginPath","i","x","y","max","min","moveTo","lineTo","stroke","getTime","onRecordingProgress","e","preventDefault","requestData","resume","stop","current","offsetWidth","offsetHeight","getContext","lineCap","translate","some","mimeType","MediaRecorder","isTypeSupported","audioBitsPerSecond","AudioContext","createMediaStreamSource","createAnalyser","fftSize","connect","onstop","result","onFinished","url","onDeleted","ondataavailable","data","size","start","console","warn","intl","formatMessage","blob","Blob","type","webm_duration_fix__WEBPACK_IMPORTED_MODULE_3___default","Promise","resolve","fixedBlob","arrayBuffer","arrayBuff","decodeAudioData","decoded","createPreview","URL","createObjectURL","_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_4__","Pv","getChannelData","totalSPB","samplingRate","buffer","count","j","val","map","a","disconnect","getTracks","forEach","track","render","resumeClass","react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_7__","jsxDEV","className","children","href","onClick","title","ref","_audio_player_jsx__WEBPACK_IMPORTED_MODULE_2__","A","src","short","__webpack_exports__","injectIntl"],"sourceRoot":""} \ No newline at end of file diff --git a/umd/271.prod.js b/umd/271.prod.js index 431e9e35..3f86acc7 100644 --- a/umd/271.prod.js +++ b/umd/271.prod.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[271],{111:function(e){e.exports=JSON.parse('[{"dial":"93","code":"AF"},{"dial":"355","code":"AL"},{"dial":"213","code":"DZ"},{"dial":"1-684","code":"AS"},{"dial":"376","code":"AD"},{"dial":"244","code":"AO"},{"dial":"1-264","code":"AI"},{"dial":"672","code":"AQ"},{"dial":"1-268","code":"AG"},{"dial":"54","code":"AR"},{"dial":"374","code":"AM"},{"dial":"297","code":"AW"},{"dial":"61","code":"AU"},{"dial":"43","code":"AT"},{"dial":"994","code":"AZ"},{"dial":"1-242","code":"BS"},{"dial":"973","code":"BH"},{"dial":"880","code":"BD"},{"dial":"1-246","code":"BB"},{"dial":"375","code":"BY"},{"dial":"32","code":"BE"},{"dial":"501","code":"BZ"},{"dial":"229","code":"BJ"},{"dial":"1-441","code":"BM"},{"dial":"975","code":"BT"},{"dial":"591","code":"BO"},{"dial":"387","code":"BA"},{"dial":"267","code":"BW"},{"dial":"55","code":"BR"},{"dial":"246","code":"IO"},{"dial":"1-284","code":"VG"},{"dial":"673","code":"BN"},{"dial":"359","code":"BG"},{"dial":"226","code":"BF"},{"dial":"257","code":"BI"},{"dial":"855","code":"KH"},{"dial":"237","code":"CM"},{"dial":"1","code":"CA"},{"dial":"238","code":"CV"},{"dial":"1-345","code":"KY"},{"dial":"236","code":"CF"},{"dial":"235","code":"TD"},{"dial":"56","code":"CL"},{"dial":"86","code":"CN"},{"dial":"61","code":"CX"},{"dial":"61","code":"CC"},{"dial":"57","code":"CO"},{"dial":"269","code":"KM"},{"dial":"682","code":"CK"},{"dial":"506","code":"CR"},{"dial":"385","code":"HR"},{"dial":"53","code":"CU"},{"dial":"599","code":"CW"},{"dial":"357","code":"CY"},{"dial":"420","code":"CZ"},{"dial":"243","code":"CD"},{"dial":"45","code":"DK"},{"dial":"253","code":"DJ"},{"dial":"1-767","code":"DM"},{"dial":"1-809, 1-829, 1-849","code":"DO"},{"dial":"670","code":"TL"},{"dial":"593","code":"EC"},{"dial":"20","code":"EG"},{"dial":"503","code":"SV"},{"dial":"240","code":"GQ"},{"dial":"291","code":"ER"},{"dial":"372","code":"EE"},{"dial":"251","code":"ET"},{"dial":"500","code":"FK"},{"dial":"298","code":"FO"},{"dial":"679","code":"FJ"},{"dial":"358","code":"FI"},{"dial":"33","code":"FR"},{"dial":"689","code":"PF"},{"dial":"241","code":"GA"},{"dial":"220","code":"GM"},{"dial":"995","code":"GE"},{"dial":"49","code":"DE"},{"dial":"233","code":"GH"},{"dial":"350","code":"GI"},{"dial":"30","code":"GR"},{"dial":"299","code":"GL"},{"dial":"1-473","code":"GD"},{"dial":"1-671","code":"GU"},{"dial":"502","code":"GT"},{"dial":"44-1481","code":"GG"},{"dial":"224","code":"GN"},{"dial":"245","code":"GW"},{"dial":"592","code":"GY"},{"dial":"509","code":"HT"},{"dial":"504","code":"HN"},{"dial":"852","code":"HK"},{"dial":"36","code":"HU"},{"dial":"354","code":"IS"},{"dial":"91","code":"IN"},{"dial":"62","code":"ID"},{"dial":"98","code":"IR"},{"dial":"964","code":"IQ"},{"dial":"353","code":"IE"},{"dial":"44-1624","code":"IM"},{"dial":"972","code":"IL"},{"dial":"39","code":"IT"},{"dial":"225","code":"CI"},{"dial":"1-876","code":"JM"},{"dial":"81","code":"JP"},{"dial":"44-1534","code":"JE"},{"dial":"962","code":"JO"},{"dial":"7, 997","code":"KZ"},{"dial":"254","code":"KE"},{"dial":"686","code":"KI"},{"dial":"383","code":"XK"},{"dial":"965","code":"KW"},{"dial":"996","code":"KG"},{"dial":"856","code":"LA"},{"dial":"371","code":"LV"},{"dial":"961","code":"LB"},{"dial":"266","code":"LS"},{"dial":"231","code":"LR"},{"dial":"218","code":"LY"},{"dial":"423","code":"LI"},{"dial":"370","code":"LT"},{"dial":"352","code":"LU"},{"dial":"853","code":"MO"},{"dial":"389","code":"MK"},{"dial":"261","code":"MG"},{"dial":"265","code":"MW"},{"dial":"60","code":"MY"},{"dial":"960","code":"MV"},{"dial":"223","code":"ML"},{"dial":"356","code":"MT"},{"dial":"692","code":"MH"},{"dial":"222","code":"MR"},{"dial":"230","code":"MU"},{"dial":"262","code":"YT"},{"dial":"52","code":"MX"},{"dial":"691","code":"FM"},{"dial":"373","code":"MD"},{"dial":"377","code":"MC"},{"dial":"976","code":"MN"},{"dial":"382","code":"ME"},{"dial":"1-664","code":"MS"},{"dial":"212","code":"MA"},{"dial":"258","code":"MZ"},{"dial":"95","code":"MM"},{"dial":"264","code":"NA"},{"dial":"674","code":"NR"},{"dial":"977","code":"NP"},{"dial":"31","code":"NL"},{"dial":"599","code":"CW"},{"dial":"687","code":"NC"},{"dial":"64","code":"NZ"},{"dial":"505","code":"NI"},{"dial":"227","code":"NE"},{"dial":"234","code":"NG"},{"dial":"683","code":"NU"},{"dial":"850","code":"KP"},{"dial":"1-670","code":"MP"},{"dial":"47","code":"NO"},{"dial":"968","code":"OM"},{"dial":"92","code":"PK"},{"dial":"680","code":"PW"},{"dial":"970","code":"PS"},{"dial":"507","code":"PA"},{"dial":"675","code":"PG"},{"dial":"595","code":"PY"},{"dial":"51","code":"PE"},{"dial":"63","code":"PH"},{"dial":"64","code":"PN"},{"dial":"48","code":"PL"},{"dial":"351","code":"PT"},{"dial":"1-787, 1-939","code":"PR"},{"dial":"974","code":"QA"},{"dial":"242","code":"CG"},{"dial":"262","code":"RE"},{"dial":"40","code":"RO"},{"dial":"7","code":"RU"},{"dial":"250","code":"RW"},{"dial":"590","code":"BL"},{"dial":"290","code":"SH"},{"dial":"1-869","code":"KN"},{"dial":"1-758","code":"LC"},{"dial":"590","code":"MF"},{"dial":"508","code":"PM"},{"dial":"1-784","code":"VC"},{"dial":"685","code":"WS"},{"dial":"378","code":"SM"},{"dial":"239","code":"ST"},{"dial":"966","code":"SA"},{"dial":"221","code":"SN"},{"dial":"381","code":"RS"},{"dial":"248","code":"SC"},{"dial":"232","code":"SL"},{"dial":"65","code":"SG"},{"dial":"1-721","code":"SX"},{"dial":"421","code":"SK"},{"dial":"386","code":"SI"},{"dial":"677","code":"SB"},{"dial":"252","code":"SO"},{"dial":"27","code":"ZA"},{"dial":"82","code":"KR"},{"dial":"211","code":"SS"},{"dial":"34","code":"ES"},{"dial":"94","code":"LK"},{"dial":"249","code":"SD"},{"dial":"597","code":"SR"},{"dial":"47","code":"SJ"},{"dial":"268","code":"SZ"},{"dial":"46","code":"SE"},{"dial":"41","code":"CH"},{"dial":"963","code":"SY"},{"dial":"886","code":"TW"},{"dial":"992","code":"TJ"},{"dial":"255","code":"TZ"},{"dial":"66","code":"TH"},{"dial":"228","code":"TG"},{"dial":"690","code":"TK"},{"dial":"676","code":"TO"},{"dial":"1-868","code":"TT"},{"dial":"216","code":"TN"},{"dial":"90","code":"TR"},{"dial":"993","code":"TM"},{"dial":"1-649","code":"TC"},{"dial":"688","code":"TV"},{"dial":"1-340","code":"VI"},{"dial":"256","code":"UG"},{"dial":"380","code":"UA"},{"dial":"971","code":"AE"},{"dial":"44","code":"GB"},{"dial":"1","code":"US"},{"dial":"598","code":"UY"},{"dial":"998","code":"UZ"},{"dial":"678","code":"VU"},{"dial":"379","code":"VA"},{"dial":"58","code":"VE"},{"dial":"84","code":"VN"},{"dial":"681","code":"WF"},{"dial":"212","code":"EH"},{"dial":"967","code":"YE"},{"dial":"260","code":"ZM"},{"dial":"263","code":"ZW"}]')},4271:function(e,a,t){t.r(a),t.d(a,{default:function(){return C}});var l=t(1594),d=t.n(l),i=t(8181),o=t(8892),s=t(9418),c=t(635),n=t(4956);const r=(0,i.defineMessages)({password_reset_email_sent:{id:"password_reset_email_sent",defaultMessage:[{type:0,value:"An email with security code has been sent."}]},password_reset_sms_sent:{id:"password_reset_sms_sent",defaultMessage:[{type:0,value:"A text message with security code has been sent."}]}});class m extends d().PureComponent{constructor(e){super(e),this.state={code:"",tel:"",email:"",sent:!1},this.handleSubmit=this.handleSubmit.bind(this),this.handleEmailChange=this.handleEmailChange.bind(this),this.handlePhoneChange=this.handlePhoneChange.bind(this),this.handleCodeChange=this.handleCodeChange.bind(this)}static formatPhoneNumber(e){let a;try{a=(0,o.L)(e)}catch(e){}return a?a.formatInternational():e}handleEmailChange(e){this.setState({email:e.target.value})}handlePhoneChange(e){this.setState({tel:e})}handleCodeChange(e){this.setState({code:e.target.value.replace(/[^\d]/g,"")})}handleSubmit(e){e.preventDefault();const a="email"==this.props.method?this.state.email:this.state.tel;if(this.state.code)this.props.onError(null),this.props.onCredConfirm(this.props.method,this.state.code);else if(a){this.props.onCredAdd(this.props.method,a),this.setState({sent:!0});const e="email"==this.props.method?r.password_reset_email_sent:r.password_reset_sms_sent;this.props.onError(this.props.intl.formatMessage(e),"info")}}render(){const e=this.state.sent||!this.props.done,a=e?this.state.tel||this.state.email:this.props.val,t="tel"==this.props.method?m.formatPhoneNumber(a):a,l=d().createElement(d().Fragment,null,d().createElement("div",{className:"panel-form-row"},d().createElement("label",{className:"large"},d().createElement(i.FormattedMessage,{id:"change_email",defaultMessage:[{type:0,value:"Change email"}]}))),d().createElement("div",{className:"group"},d().createElement("label",{className:"small gray"},d().createElement(i.FormattedMessage,{id:"current_email",defaultMessage:[{type:0,value:"Current email"}]})))),o=d().createElement(d().Fragment,null,d().createElement("div",{className:"panel-form-row"},d().createElement("label",{className:"large"},d().createElement(i.FormattedMessage,{id:"change_phone",defaultMessage:[{type:0,value:"Change phone number"}]}))),d().createElement("div",{className:"group"},d().createElement("label",{className:"small gray"},d().createElement(i.FormattedMessage,{id:"current_phone",defaultMessage:[{type:0,value:"Current phone number"}]})))),s=d().createElement("label",{className:"small gray"},d().createElement(i.FormattedMessage,{id:"new_email",defaultMessage:[{type:0,value:"New email"}]})),c=d().createElement(d().Fragment,null,d().createElement("div",{className:"group"},s),d().createElement("div",{className:"group"},d().createElement(i.FormattedMessage,{id:"email_prompt",defaultMessage:[{type:0,value:"Email, e.g. jdoe@example.com"}]},e=>d().createElement("input",{type:"email",placeholder:e,autoComplete:"email",value:this.state.email,onChange:this.handleEmailChange,required:!0})))),r=d().createElement("label",{className:"small gray"},d().createElement(i.FormattedMessage,{id:"new_phone_number",defaultMessage:[{type:0,value:"New phone number"}]})),h=d().createElement(d().Fragment,null,d().createElement("div",{className:"group"},r),d().createElement("div",{className:"panel-form-row"},d().createElement(n.A,{autoFocus:!0,onShowCountrySelector:this.props.onShowCountrySelector,onSubmit:this.handlePhoneChange}))),u=d().createElement(d().Fragment,null,d().createElement("div",{className:"group"},d().createElement("label",{className:"small gray"},d().createElement(i.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:[{type:0,value:"Confirmation code"}]}))),d().createElement("div",{className:"group"},d().createElement(i.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:[{type:0,value:"Numbers only"}]},e=>d().createElement("input",{type:"text",placeholder:e,maxLength:10,value:this.state.code,onChange:this.handleCodeChange,required:!0}))));return d().createElement("form",{className:"panel-form-column",onSubmit:this.handleSubmit},e?"email"==this.props.method?s:"tel"==this.props.method?r:null:"email"==this.props.method?l:"tel"==this.props.method?o:null,d().createElement("div",{className:"panel-form-row"},d().createElement("tt",{className:"quoted"},t)),e?null:"email"==this.props.method?c:"tel"==this.props.method?h:null,e?u:null,d().createElement("div",{className:"dialog-buttons"},d().createElement("button",{className:"secondary",onClick:this.props.onCancel},d().createElement(i.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})),d().createElement("button",{className:"primary",type:"submit"},d().createElement(i.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]}))))}}var h=(0,i.injectIntl)(m),u=t(6110),p=t(8589),E=t(9027);function g(e,a){return(0,p.W5)(e,a)}class C extends d().Component{constructor(e){super(e);const a=this.props.tinode.getMeTopic();this.state={fullName:g(a.public?a.public.fn:void 0,E.tS),description:g(a.public?a.public.note:void 0,E.lQ),avatar:(0,u.to)(a.public?a.public.photo:null),credentials:a.getCredentials()||[],credEdit:void 0,alias:((a.tags()||[]).find(e=>e.startsWith("alias:"))||"").substring(6)}}componentDidMount(){const e=this.props.tinode.getMeTopic();e.onCredsUpdated=a=>this.setState({credentials:e.getCredentials()})}componentWillUnmount(){this.props.tinode.getMeTopic().onCredsUpdated=null}render(){if(this.state.credEdit)return d().createElement(h,{method:this.state.credEdit.meth,val:this.state.credEdit.val,done:this.state.credEdit.done,onShowCountrySelector:this.props.onShowCountrySelector,onCredAdd:this.props.onCredAdd,onCredConfirm:this.props.onCredConfirm,onCancel:e=>this.setState({credEdit:void 0}),onError:this.props.onError});const e={};this.state.credentials.forEach(a=>{a.done&&(e[a.meth]=(e[a.meth]||0)+1)});const a=[];return this.state.credentials.forEach((t,l)=>{if(!["email","tel"].includes(t.meth))return;let i=t.val;if("tel"==t.meth){const e=(0,o.L)(t.val);i=e?e.formatInternational():t.val}a.push(d().createElement("div",{className:"group quoted",key:l},d().createElement("tt",{className:"clickable",onClick:e=>{e.preventDefault(),this.setState({credEdit:t})}},i),d().createElement("span",null," ",t.done?null:d().createElement("i",{className:"material-icons"},"pending")," ",!t.done||e[t.meth]>1||this.props.reqCredMethod!=t.meth?d().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCredDelete(t.meth,t.val)}},d().createElement("i",{className:"material-icons"},"delete")):null)))}),a.length>0&&a.unshift(d().createElement("label",{className:"small",key:"title"},d().createElement(i.FormattedMessage,{id:"label_user_contacts",defaultMessage:[{type:0,value:"Contacts"}]}))),d().createElement("div",{className:"scrollable-panel"},d().createElement("div",{className:"panel-form-column"},d().createElement("a",{href:"#",className:"flat-button float-right",onClick:e=>{e.preventDefault(),this.props.onNavigate("general")}},d().createElement("i",{className:"material-icons"},"edit")," ",d().createElement(i.FormattedMessage,{id:"button_edit",defaultMessage:[{type:0,value:"Edit"}]})),d().createElement("center",null,d().createElement(s.A,{tinode:this.props.tinode,avatar:this.state.avatar,readOnly:!0,uid:this.props.myUserId,title:this.state.fullName})),d().createElement("div",{className:"group"},d().createElement("label",{className:"small"},d().createElement(i.FormattedMessage,{id:"label_your_name",defaultMessage:[{type:0,value:"Your name"}]})),d().createElement("div",{className:"large ellipsized"},this.state.fullName)),d().createElement("div",{className:"group"},d().createElement("label",{className:"small"},d().createElement(i.FormattedMessage,{id:"label_user_id",defaultMessage:[{type:0,value:"ID:"}]}))," ",d().createElement("tt",null,this.props.myUserId)),this.state.alias?d().createElement("div",{className:"group"},d().createElement("label",{className:"small"},d().createElement(i.FormattedMessage,{id:"label_alias",defaultMessage:[{type:0,value:"Alias:"}]}))," ",d().createElement("tt",null,"@",this.state.alias)):null,d().createElement("div",{className:"group"},d().createElement(c.A,{trustedBadges:this.props.trustedBadges})),this.state.description?d().createElement("div",{className:"group"},d().createElement("label",{className:"small"},d().createElement(i.FormattedMessage,{id:"label_description",defaultMessage:[{type:0,value:"Description"}]})),d().createElement("div",{className:"quoted"},this.state.description)):null),d().createElement("div",{className:"hr"}),d().createElement("div",{className:"panel-form-column"},d().createElement("div",{className:"group"},a)),d().createElement("div",{className:"hr"}),d().createElement("div",{className:"panel-form-column"},d().createElement("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("acc_general")}},d().createElement("i",{className:"material-icons"},"tune")," ",d().createElement(i.FormattedMessage,{id:"sidepanel_title_acc_general",defaultMessage:[{type:0,value:"General"}]})),d().createElement("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("notif")}},d().createElement("i",{className:"material-icons"},"notifications")," ",d().createElement(i.FormattedMessage,{id:"sidepanel_title_acc_notifications",defaultMessage:[{type:0,value:"Notifications"}]})),d().createElement("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("security")}},d().createElement("i",{className:"material-icons"},"security")," ",d().createElement(i.FormattedMessage,{id:"button_security",defaultMessage:[{type:0,value:"Security"}]})),d().createElement("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("support")}},d().createElement("i",{className:"material-icons"},"contact_support")," ",d().createElement(i.FormattedMessage,{id:"sidepanel_title_acc_support",defaultMessage:[{type:0,value:"Support"}]}))))}}},4956:function(e,a,t){var l=t(1594),d=t.n(l),i=t(8181),o=t(8892),s=t(4724),c=t(6187),n=t(4701),r=t(111),m=t(8589);const h=(0,i.defineMessages)({mobile_number_required:{id:"mobile_number_required",defaultMessage:[{type:0,value:"Mobile phone number required"}]}});class u extends d().PureComponent{constructor(e){super(e),this.codeMap={},r.forEach(e=>{this.codeMap[e.code]=e.dial});const a=e.countryCode||"US",t=this.codeMap[a];this.state={countryCode:a,dialCode:t,localNumber:"",placeholderNumber:this.placeholderNumber(a,t)},this.handleChange=this.handleChange.bind(this),this.handleFinished=this.handleFinished.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.showCountrySelector=this.showCountrySelector.bind(this)}handleChange(e){const a=`+${this.state.dialCode}`;let t=(new s.Q).input(`${a}${this.filterNumber(e.target.value)}`);t=t.substring(a.length).trim(),this.setState({localNumber:t})}handleFinished(e){e.preventDefault();const a=`${this.state.dialCode}${this.state.localNumber.trim()}`.replace(/[^\d]/g,"");let t=null;try{t=(0,o.L)(`+${a}`)}catch(e){}t&&t.isValid()?(this.inputField.setCustomValidity(""),this.props.onSubmit(t.format("E.164"))):this.inputField.setCustomValidity(this.props.intl.formatMessage(h.mobile_number_required))}handleKeyDown(e){"Enter"===e.key&&this.handleFinished(e)}showCountrySelector(){this.props.onShowCountrySelector(this.state.countryCode,this.state.dialCode,(e,a)=>{this.setState({countryCode:e,dialCode:a,placeholderNumber:this.placeholderNumber(e,a)})})}filterNumber(e){return e?e.replace(/[^-\s().\d]/g,""):e}placeholderNumber(e,a){const t=(0,c.a)(e,n.A);return t?t.formatInternational().substring(a.length+1).trim():"123 0123"}render(){return d().createElement(d().Fragment,null,d().createElement("span",{className:"dial-code",onClick:this.showCountrySelector},d().createElement("span",{className:"country-flag"},(0,m.lb)(this.state.countryCode)," "),"+",this.state.dialCode," "),d().createElement("input",{type:"tel",ref:e=>{this.inputField=e},placeholder:this.state.placeholderNumber,value:this.state.localNumber,onChange:this.handleChange,maxLength:17,onKeyDown:this.handleKeyDown,onBlur:this.handleFinished,required:!0,autoFocus:this.props.autoFocus}))}}a.A=(0,i.injectIntl)(u)}}]); +"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[271],{4271:function(e,d,i){i.r(d),i.d(d,{default:function(){return E}});var a=i(1594),o=i.n(a),l=i(8181),t=i(8892),s=i(9418),c=i(635),n=i(4956),r=i(5446);const h=(0,l.defineMessages)({password_reset_email_sent:{id:"password_reset_email_sent",defaultMessage:"An email with security code has been sent.",description:"Notification that the email with password reset instructions has been sent"},password_reset_sms_sent:{id:"password_reset_sms_sent",defaultMessage:"A text message with security code has been sent.",description:"Notification that the SMS with password reset instructions has been sent"}});class m extends o().PureComponent{constructor(e){super(e),this.state={code:"",tel:"",email:"",sent:!1},this.handleSubmit=this.handleSubmit.bind(this),this.handleEmailChange=this.handleEmailChange.bind(this),this.handlePhoneChange=this.handlePhoneChange.bind(this),this.handleCodeChange=this.handleCodeChange.bind(this)}static formatPhoneNumber(e){let d;try{d=(0,t.L)(e)}catch(e){}return d?d.formatInternational():e}handleEmailChange(e){this.setState({email:e.target.value})}handlePhoneChange(e){this.setState({tel:e})}handleCodeChange(e){this.setState({code:e.target.value.replace(/[^\d]/g,"")})}handleSubmit(e){e.preventDefault();const d="email"==this.props.method?this.state.email:this.state.tel;if(this.state.code)this.props.onError(null),this.props.onCredConfirm(this.props.method,this.state.code);else if(d){this.props.onCredAdd(this.props.method,d),this.setState({sent:!0});const e="email"==this.props.method?h.password_reset_email_sent:h.password_reset_sms_sent;this.props.onError(this.props.intl.formatMessage(e),"info")}}render(){const e=this.state.sent||!this.props.done,d=e?this.state.tel||this.state.email:this.props.val,i="tel"==this.props.method?m.formatPhoneNumber(d):d,a=(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)("div",{className:"panel-form-row",children:(0,r.jsxDEV)("label",{className:"large",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"change_email",defaultMessage:"Change email",description:"Prompt to change current email"},void 0,!1)},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"group",children:(0,r.jsxDEV)("label",{className:"small gray",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"current_email",defaultMessage:"Current email",description:"Label for old email"},void 0,!1)},void 0,!1)},void 0,!1)]},void 0,!0),o=(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)("div",{className:"panel-form-row",children:(0,r.jsxDEV)("label",{className:"large",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"change_phone",defaultMessage:"Change phone number",description:"Prompt to change current phone number"},void 0,!1)},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"group",children:(0,r.jsxDEV)("label",{className:"small gray",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"current_phone",defaultMessage:"Current phone number",description:"Label for old phone"},void 0,!1)},void 0,!1)},void 0,!1)]},void 0,!0),t=(0,r.jsxDEV)("label",{className:"small gray",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"new_email",defaultMessage:"New email",description:"Prompt for entering a new email"},void 0,!1)},void 0,!1),s=(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)("div",{className:"group",children:t},void 0,!1),(0,r.jsxDEV)("div",{className:"group",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"email_prompt",defaultMessage:"Email, e.g. jdoe@example.com",description:"Input placeholder for email entry",children:e=>(0,r.jsxDEV)("input",{type:"email",placeholder:e,autoComplete:"email",value:this.state.email,onChange:this.handleEmailChange,required:!0},void 0,!1)},void 0,!1)},void 0,!1)]},void 0,!0),c=(0,r.jsxDEV)("label",{className:"small gray",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"new_phone_number",defaultMessage:"New phone number",description:"Prompt for entering a new telephone number"},void 0,!1)},void 0,!1),h=(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)("div",{className:"group",children:c},void 0,!1),(0,r.jsxDEV)("div",{className:"panel-form-row",children:(0,r.jsxDEV)(n.A,{autoFocus:!0,onShowCountrySelector:this.props.onShowCountrySelector,onSubmit:this.handlePhoneChange},void 0,!1)},void 0,!1)]},void 0,!0),p=(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)("div",{className:"group",children:(0,r.jsxDEV)("label",{className:"small gray",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"enter_confirmation_code_prompt",defaultMessage:"Confirmation code",description:"Request to enter confirmation code"},void 0,!1)},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"group",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"numeric_confirmation_code_prompt",defaultMessage:"Numbers only",description:"Prompt for numeric conformation code",children:e=>(0,r.jsxDEV)("input",{type:"text",placeholder:e,maxLength:10,value:this.state.code,onChange:this.handleCodeChange,required:!0},void 0,!1)},void 0,!1)},void 0,!1)]},void 0,!0);return(0,r.jsxDEV)("form",{className:"panel-form-column",onSubmit:this.handleSubmit,children:[e?"email"==this.props.method?t:"tel"==this.props.method?c:null:"email"==this.props.method?a:"tel"==this.props.method?o:null,(0,r.jsxDEV)("div",{className:"panel-form-row",children:(0,r.jsxDEV)("tt",{className:"quoted",children:i},void 0,!1)},void 0,!1),e?null:"email"==this.props.method?s:"tel"==this.props.method?h:null,e?p:null,(0,r.jsxDEV)("div",{className:"dialog-buttons",children:[(0,r.jsxDEV)("button",{className:"secondary",onClick:this.props.onCancel,children:(0,r.jsxDEV)(l.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"},void 0,!1)},void 0,!1),(0,r.jsxDEV)("button",{className:"primary",type:"submit",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"},void 0,!1)},void 0,!1)]},void 0,!0)]},void 0,!0)}}var p=(0,l.injectIntl)(m),u=i(6110),v=i(8589);function g(e,d){return(0,v.W5)(e,d)}i(9027);class E extends o().Component{constructor(e){super(e);const d=this.props.tinode.getMeTopic();this.state={fullName:g(d.public?d.public.fn:void 0,60),description:g(d.public?d.public.note:void 0,360),avatar:(0,u.to)(d.public?d.public.photo:null),credentials:d.getCredentials()||[],credEdit:void 0,alias:((d.tags()||[]).find(e=>e.startsWith("alias:"))||"").substring(6)}}componentDidMount(){const e=this.props.tinode.getMeTopic();e.onCredsUpdated=d=>this.setState({credentials:e.getCredentials()})}componentWillUnmount(){this.props.tinode.getMeTopic().onCredsUpdated=null}render(){if(this.state.credEdit)return(0,r.jsxDEV)(p,{method:this.state.credEdit.meth,val:this.state.credEdit.val,done:this.state.credEdit.done,onShowCountrySelector:this.props.onShowCountrySelector,onCredAdd:this.props.onCredAdd,onCredConfirm:this.props.onCredConfirm,onCancel:e=>this.setState({credEdit:void 0}),onError:this.props.onError},void 0,!1);const e={};this.state.credentials.forEach(d=>{d.done&&(e[d.meth]=(e[d.meth]||0)+1)});const d=[];return this.state.credentials.forEach((i,a)=>{if(!["email","tel"].includes(i.meth))return;let o=i.val;if("tel"==i.meth){const e=(0,t.L)(i.val);o=e?e.formatInternational():i.val}d.push((0,r.jsxDEV)("div",{className:"group quoted",children:[(0,r.jsxDEV)("tt",{className:"clickable",onClick:e=>{e.preventDefault(),this.setState({credEdit:i})},children:o},void 0,!1),(0,r.jsxDEV)("span",{children:[" ",i.done?null:(0,r.jsxDEV)("i",{className:"material-icons",children:"pending"},void 0,!1)," ",!i.done||e[i.meth]>1||this.props.reqCredMethod!=i.meth?(0,r.jsxDEV)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCredDelete(i.meth,i.val)},children:(0,r.jsxDEV)("i",{className:"material-icons",children:"delete"},void 0,!1)},void 0,!1):null]},void 0,!0)]},a,!0))}),d.length>0&&d.unshift((0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"label_user_contacts",defaultMessage:"Contacts",description:"Label for user contacts"},void 0,!1)},"title",!1)),(0,r.jsxDEV)("div",{className:"scrollable-panel",children:[(0,r.jsxDEV)("div",{className:"panel-form-column",children:[(0,r.jsxDEV)("a",{href:"#",className:"flat-button float-right",onClick:e=>{e.preventDefault(),this.props.onNavigate("general")},children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"edit"},void 0,!1)," ",(0,r.jsxDEV)(l.FormattedMessage,{id:"button_edit",defaultMessage:"Edit",description:"Call to action [Edit]"},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("center",{children:(0,r.jsxDEV)(s.A,{tinode:this.props.tinode,avatar:this.state.avatar,readOnly:!0,uid:this.props.myUserId,title:this.state.fullName},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"group",children:[(0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"label_your_name",defaultMessage:"Your name",description:"Label for full name editing"},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"large ellipsized",children:this.state.fullName},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("div",{className:"group",children:[(0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"label_user_id",defaultMessage:"ID:",description:"Label for user address (ID)"},void 0,!1)},void 0,!1)," ",(0,r.jsxDEV)("tt",{children:this.props.myUserId},void 0,!1)]},void 0,!0),this.state.alias?(0,r.jsxDEV)("div",{className:"group",children:[(0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"label_alias",defaultMessage:"Alias:",description:"Label for user or topic alias"},void 0,!1)},void 0,!1)," ",(0,r.jsxDEV)("tt",{children:["@",this.state.alias]},void 0,!0)]},void 0,!0):null,(0,r.jsxDEV)("div",{className:"group",children:(0,r.jsxDEV)(c.A,{trustedBadges:this.props.trustedBadges},void 0,!1)},void 0,!1),this.state.description?(0,r.jsxDEV)("div",{className:"group",children:[(0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(l.FormattedMessage,{id:"label_description",defaultMessage:"Description",description:"Label for description of user or topic"},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"quoted",children:this.state.description},void 0,!1)]},void 0,!0):null]},void 0,!0),(0,r.jsxDEV)("div",{className:"hr"},void 0,!1),(0,r.jsxDEV)("div",{className:"panel-form-column",children:(0,r.jsxDEV)("div",{className:"group",children:d},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"hr"},void 0,!1),(0,r.jsxDEV)("div",{className:"panel-form-column",children:[(0,r.jsxDEV)("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("acc_general")},children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"tune"},void 0,!1)," ",(0,r.jsxDEV)(l.FormattedMessage,{id:"sidepanel_title_acc_general",defaultMessage:"General",description:"Sidepanel title for AccGeneralView."},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("notif")},children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"notifications"},void 0,!1)," ",(0,r.jsxDEV)(l.FormattedMessage,{id:"sidepanel_title_acc_notifications",defaultMessage:"Notifications",description:"Sidepanel title for AccNotificationsView."},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("security")},children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"security"},void 0,!1)," ",(0,r.jsxDEV)(l.FormattedMessage,{id:"button_security",defaultMessage:"Security",description:"Navigaton button for security panel."},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("a",{href:"#",className:"flat-button",onClick:e=>{e.preventDefault(),this.props.onNavigate("support")},children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"contact_support"},void 0,!1)," ",(0,r.jsxDEV)(l.FormattedMessage,{id:"sidepanel_title_acc_support",defaultMessage:"Support",description:"Sidepanel title for AccSupportView."},void 0,!1)]},void 0,!0)]},void 0,!0)]},void 0,!0)}}},4956:function(e,d,i){var a=i(1594),o=i.n(a),l=i(8181),t=i(8892),s=i(4724),c=i(6187),n=i(4701),r=i(111),h=i(8589),m=i(5446);const p=(0,l.defineMessages)({mobile_number_required:{id:"mobile_number_required",defaultMessage:"Mobile phone number required",description:"Error message"}});class u extends o().PureComponent{constructor(e){super(e),this.codeMap={},r.forEach(e=>{this.codeMap[e.code]=e.dial});const d=e.countryCode||"US",i=this.codeMap[d];this.state={countryCode:d,dialCode:i,localNumber:"",placeholderNumber:this.placeholderNumber(d,i)},this.handleChange=this.handleChange.bind(this),this.handleFinished=this.handleFinished.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.showCountrySelector=this.showCountrySelector.bind(this)}handleChange(e){const d=`+${this.state.dialCode}`;let i=(new s.Q).input(`${d}${this.filterNumber(e.target.value)}`);i=i.substring(d.length).trim(),this.setState({localNumber:i})}handleFinished(e){e.preventDefault();const d=`${this.state.dialCode}${this.state.localNumber.trim()}`.replace(/[^\d]/g,"");let i=null;try{i=(0,t.L)(`+${d}`)}catch(e){}i&&i.isValid()?(this.inputField.setCustomValidity(""),this.props.onSubmit(i.format("E.164"))):this.inputField.setCustomValidity(this.props.intl.formatMessage(p.mobile_number_required))}handleKeyDown(e){"Enter"===e.key&&this.handleFinished(e)}showCountrySelector(){this.props.onShowCountrySelector(this.state.countryCode,this.state.dialCode,(e,d)=>{this.setState({countryCode:e,dialCode:d,placeholderNumber:this.placeholderNumber(e,d)})})}filterNumber(e){return e?e.replace(/[^-\s().\d]/g,""):e}placeholderNumber(e,d){const i=(0,c.a)(e,n.A);return i?i.formatInternational().substring(d.length+1).trim():"123 0123"}render(){return(0,m.jsxDEV)(m.Fragment,{children:[(0,m.jsxDEV)("span",{className:"dial-code",onClick:this.showCountrySelector,children:[(0,m.jsxDEV)("span",{className:"country-flag",children:[(0,h.lb)(this.state.countryCode)," "]},void 0,!0),"+",this.state.dialCode," "]},void 0,!0),(0,m.jsxDEV)("input",{type:"tel",ref:e=>{this.inputField=e},placeholder:this.state.placeholderNumber,value:this.state.localNumber,onChange:this.handleChange,maxLength:17,onKeyDown:this.handleKeyDown,onBlur:this.handleFinished,required:!0,autoFocus:this.props.autoFocus},void 0,!1)]},void 0,!0)}}d.A=(0,l.injectIntl)(u)},111:function(e){e.exports=JSON.parse('[{"dial":"93","code":"AF"},{"dial":"355","code":"AL"},{"dial":"213","code":"DZ"},{"dial":"1-684","code":"AS"},{"dial":"376","code":"AD"},{"dial":"244","code":"AO"},{"dial":"1-264","code":"AI"},{"dial":"672","code":"AQ"},{"dial":"1-268","code":"AG"},{"dial":"54","code":"AR"},{"dial":"374","code":"AM"},{"dial":"297","code":"AW"},{"dial":"61","code":"AU"},{"dial":"43","code":"AT"},{"dial":"994","code":"AZ"},{"dial":"1-242","code":"BS"},{"dial":"973","code":"BH"},{"dial":"880","code":"BD"},{"dial":"1-246","code":"BB"},{"dial":"375","code":"BY"},{"dial":"32","code":"BE"},{"dial":"501","code":"BZ"},{"dial":"229","code":"BJ"},{"dial":"1-441","code":"BM"},{"dial":"975","code":"BT"},{"dial":"591","code":"BO"},{"dial":"387","code":"BA"},{"dial":"267","code":"BW"},{"dial":"55","code":"BR"},{"dial":"246","code":"IO"},{"dial":"1-284","code":"VG"},{"dial":"673","code":"BN"},{"dial":"359","code":"BG"},{"dial":"226","code":"BF"},{"dial":"257","code":"BI"},{"dial":"855","code":"KH"},{"dial":"237","code":"CM"},{"dial":"1","code":"CA"},{"dial":"238","code":"CV"},{"dial":"1-345","code":"KY"},{"dial":"236","code":"CF"},{"dial":"235","code":"TD"},{"dial":"56","code":"CL"},{"dial":"86","code":"CN"},{"dial":"61","code":"CX"},{"dial":"61","code":"CC"},{"dial":"57","code":"CO"},{"dial":"269","code":"KM"},{"dial":"682","code":"CK"},{"dial":"506","code":"CR"},{"dial":"385","code":"HR"},{"dial":"53","code":"CU"},{"dial":"599","code":"CW"},{"dial":"357","code":"CY"},{"dial":"420","code":"CZ"},{"dial":"243","code":"CD"},{"dial":"45","code":"DK"},{"dial":"253","code":"DJ"},{"dial":"1-767","code":"DM"},{"dial":"1-809, 1-829, 1-849","code":"DO"},{"dial":"670","code":"TL"},{"dial":"593","code":"EC"},{"dial":"20","code":"EG"},{"dial":"503","code":"SV"},{"dial":"240","code":"GQ"},{"dial":"291","code":"ER"},{"dial":"372","code":"EE"},{"dial":"251","code":"ET"},{"dial":"500","code":"FK"},{"dial":"298","code":"FO"},{"dial":"679","code":"FJ"},{"dial":"358","code":"FI"},{"dial":"33","code":"FR"},{"dial":"689","code":"PF"},{"dial":"241","code":"GA"},{"dial":"220","code":"GM"},{"dial":"995","code":"GE"},{"dial":"49","code":"DE"},{"dial":"233","code":"GH"},{"dial":"350","code":"GI"},{"dial":"30","code":"GR"},{"dial":"299","code":"GL"},{"dial":"1-473","code":"GD"},{"dial":"1-671","code":"GU"},{"dial":"502","code":"GT"},{"dial":"44-1481","code":"GG"},{"dial":"224","code":"GN"},{"dial":"245","code":"GW"},{"dial":"592","code":"GY"},{"dial":"509","code":"HT"},{"dial":"504","code":"HN"},{"dial":"852","code":"HK"},{"dial":"36","code":"HU"},{"dial":"354","code":"IS"},{"dial":"91","code":"IN"},{"dial":"62","code":"ID"},{"dial":"98","code":"IR"},{"dial":"964","code":"IQ"},{"dial":"353","code":"IE"},{"dial":"44-1624","code":"IM"},{"dial":"972","code":"IL"},{"dial":"39","code":"IT"},{"dial":"225","code":"CI"},{"dial":"1-876","code":"JM"},{"dial":"81","code":"JP"},{"dial":"44-1534","code":"JE"},{"dial":"962","code":"JO"},{"dial":"7, 997","code":"KZ"},{"dial":"254","code":"KE"},{"dial":"686","code":"KI"},{"dial":"383","code":"XK"},{"dial":"965","code":"KW"},{"dial":"996","code":"KG"},{"dial":"856","code":"LA"},{"dial":"371","code":"LV"},{"dial":"961","code":"LB"},{"dial":"266","code":"LS"},{"dial":"231","code":"LR"},{"dial":"218","code":"LY"},{"dial":"423","code":"LI"},{"dial":"370","code":"LT"},{"dial":"352","code":"LU"},{"dial":"853","code":"MO"},{"dial":"389","code":"MK"},{"dial":"261","code":"MG"},{"dial":"265","code":"MW"},{"dial":"60","code":"MY"},{"dial":"960","code":"MV"},{"dial":"223","code":"ML"},{"dial":"356","code":"MT"},{"dial":"692","code":"MH"},{"dial":"222","code":"MR"},{"dial":"230","code":"MU"},{"dial":"262","code":"YT"},{"dial":"52","code":"MX"},{"dial":"691","code":"FM"},{"dial":"373","code":"MD"},{"dial":"377","code":"MC"},{"dial":"976","code":"MN"},{"dial":"382","code":"ME"},{"dial":"1-664","code":"MS"},{"dial":"212","code":"MA"},{"dial":"258","code":"MZ"},{"dial":"95","code":"MM"},{"dial":"264","code":"NA"},{"dial":"674","code":"NR"},{"dial":"977","code":"NP"},{"dial":"31","code":"NL"},{"dial":"599","code":"CW"},{"dial":"687","code":"NC"},{"dial":"64","code":"NZ"},{"dial":"505","code":"NI"},{"dial":"227","code":"NE"},{"dial":"234","code":"NG"},{"dial":"683","code":"NU"},{"dial":"850","code":"KP"},{"dial":"1-670","code":"MP"},{"dial":"47","code":"NO"},{"dial":"968","code":"OM"},{"dial":"92","code":"PK"},{"dial":"680","code":"PW"},{"dial":"970","code":"PS"},{"dial":"507","code":"PA"},{"dial":"675","code":"PG"},{"dial":"595","code":"PY"},{"dial":"51","code":"PE"},{"dial":"63","code":"PH"},{"dial":"64","code":"PN"},{"dial":"48","code":"PL"},{"dial":"351","code":"PT"},{"dial":"1-787, 1-939","code":"PR"},{"dial":"974","code":"QA"},{"dial":"242","code":"CG"},{"dial":"262","code":"RE"},{"dial":"40","code":"RO"},{"dial":"7","code":"RU"},{"dial":"250","code":"RW"},{"dial":"590","code":"BL"},{"dial":"290","code":"SH"},{"dial":"1-869","code":"KN"},{"dial":"1-758","code":"LC"},{"dial":"590","code":"MF"},{"dial":"508","code":"PM"},{"dial":"1-784","code":"VC"},{"dial":"685","code":"WS"},{"dial":"378","code":"SM"},{"dial":"239","code":"ST"},{"dial":"966","code":"SA"},{"dial":"221","code":"SN"},{"dial":"381","code":"RS"},{"dial":"248","code":"SC"},{"dial":"232","code":"SL"},{"dial":"65","code":"SG"},{"dial":"1-721","code":"SX"},{"dial":"421","code":"SK"},{"dial":"386","code":"SI"},{"dial":"677","code":"SB"},{"dial":"252","code":"SO"},{"dial":"27","code":"ZA"},{"dial":"82","code":"KR"},{"dial":"211","code":"SS"},{"dial":"34","code":"ES"},{"dial":"94","code":"LK"},{"dial":"249","code":"SD"},{"dial":"597","code":"SR"},{"dial":"47","code":"SJ"},{"dial":"268","code":"SZ"},{"dial":"46","code":"SE"},{"dial":"41","code":"CH"},{"dial":"963","code":"SY"},{"dial":"886","code":"TW"},{"dial":"992","code":"TJ"},{"dial":"255","code":"TZ"},{"dial":"66","code":"TH"},{"dial":"228","code":"TG"},{"dial":"690","code":"TK"},{"dial":"676","code":"TO"},{"dial":"1-868","code":"TT"},{"dial":"216","code":"TN"},{"dial":"90","code":"TR"},{"dial":"993","code":"TM"},{"dial":"1-649","code":"TC"},{"dial":"688","code":"TV"},{"dial":"1-340","code":"VI"},{"dial":"256","code":"UG"},{"dial":"380","code":"UA"},{"dial":"971","code":"AE"},{"dial":"44","code":"GB"},{"dial":"1","code":"US"},{"dial":"598","code":"UY"},{"dial":"998","code":"UZ"},{"dial":"678","code":"VU"},{"dial":"379","code":"VA"},{"dial":"58","code":"VE"},{"dial":"84","code":"VN"},{"dial":"681","code":"WF"},{"dial":"212","code":"EH"},{"dial":"967","code":"YE"},{"dial":"260","code":"ZM"},{"dial":"263","code":"ZW"}]')}}]); //# sourceMappingURL=271.prod.js.map \ No newline at end of file diff --git a/umd/271.prod.js.map b/umd/271.prod.js.map index 1fe10d4b..9ea2da6f 100644 --- a/umd/271.prod.js.map +++ b/umd/271.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"271.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/widgets/credential-edit.jsx","webpack://tinode-webapp/./src/views/account-settings-view.jsx","webpack://tinode-webapp/./src/widgets/phone-edit.jsx"],"sourcesContent":["// Enter one credential at a time.\n\nimport React from 'react';\nimport { defineMessages, FormattedMessage, injectIntl } from 'react-intl';\nimport PhoneEdit from './phone-edit.jsx';\nimport { parsePhoneNumber } from 'libphonenumber-js/mobile';\n\nconst messages = defineMessages({\n password_reset_email_sent: {\n id: 'password_reset_email_sent',\n defaultMessage: 'An email with security code has been sent.',\n description: 'Notification that the email with password reset instructions has been sent'\n },\n password_reset_sms_sent: {\n id: 'password_reset_sms_sent',\n defaultMessage: 'A text message with security code has been sent.',\n description: 'Notification that the SMS with password reset instructions has been sent'\n },\n});\n\nclass CredentialEdit extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n code: '',\n tel: '',\n email: '',\n sent: false\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleEmailChange = this.handleEmailChange.bind(this);\n this.handlePhoneChange = this.handlePhoneChange.bind(this);\n this.handleCodeChange = this.handleCodeChange.bind(this);\n }\n\n static formatPhoneNumber(raw) {\n let number;\n try {\n number = parsePhoneNumber(raw);\n } catch (err) {}\n return number ? number.formatInternational() : raw;\n }\n\n handleEmailChange(e) {\n this.setState({email: e.target.value});\n }\n\n handlePhoneChange(number) {\n this.setState({tel: number});\n }\n\n handleCodeChange(e) {\n this.setState({code: e.target.value.replace(/[^\\d]/g, '')});\n }\n\n handleSubmit(e) {\n e.preventDefault();\n const value = this.props.method == 'email' ? this.state.email : this.state.tel;\n if (this.state.code) {\n this.props.onError(null);\n this.props.onCredConfirm(this.props.method, this.state.code);\n } else if (value) {\n this.props.onCredAdd(this.props.method, value);\n this.setState({sent: true});\n const msg = this.props.method == 'email' ? messages.password_reset_email_sent : messages.password_reset_sms_sent;\n this.props.onError(this.props.intl.formatMessage(msg), 'info');\n }\n }\n\n render() {\n const readyForCode = this.state.sent || !this.props.done;\n const rawValue = readyForCode ? (this.state.tel || this.state.email) : this.props.val;\n const formattedValue = this.props.method == 'tel' ? CredentialEdit.formatPhoneNumber(rawValue) : rawValue;\n\n const changeEmail = (\n <>
\n \n
\n
\n \n
);\n\n const changePhone = (\n <>
\n \n
\n
\n \n
\n );\n\n const newEmailLabel = ();\n\n const newEmailInput = (\n <>
{newEmailLabel}
\n
\n {\n (email_prompt) => \n }\n
\n );\n\n const newPhoneLabel = ();\n\n const newPhoneInput = (\n <>
{newPhoneLabel}
\n
\n \n
\n );\n\n const codeInput = (\n <>
\n \n
\n
\n {\n (numbers_only) => \n }\n
\n );\n\n return (
\n {readyForCode ?\n (this.props.method == 'email' ? newEmailLabel : this.props.method == 'tel' ? newPhoneLabel : null)\n :\n (this.props.method == 'email' ? changeEmail : this.props.method == 'tel' ? changePhone : null)\n }\n
\n {formattedValue}\n
\n {readyForCode ?\n null\n :\n (this.props.method == 'email' ? newEmailInput : this.props.method == 'tel' ? newPhoneInput : null)\n }\n {readyForCode ? codeInput : null}\n
\n \n \n
\n
);\n }\n}\n\nexport default injectIntl(CredentialEdit);\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { parsePhoneNumber } from 'libphonenumber-js/mobile';\n\nimport AvatarUpload from '../widgets/avatar-upload.jsx';\nimport BadgeList from '../widgets/badge-list.jsx';\nimport CredentialEdit from '../widgets/credential-edit.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\nimport { truncateString } from '../lib/strformat.js';\nimport { MAX_TITLE_LENGTH, MAX_TOPIC_DESCRIPTION_LENGTH } from '../config.js';\n\nfunction _clip(str, length) {\n return truncateString(str, length);\n}\n\nexport default class AccountSettingsView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n this.state = {\n fullName: _clip(me.public ? me.public.fn : undefined, MAX_TITLE_LENGTH),\n description: _clip(me.public ? me.public.note : undefined, MAX_TOPIC_DESCRIPTION_LENGTH),\n avatar: makeImageUrl(me.public ? me.public.photo : null),\n credentials: me.getCredentials() || [],\n credEdit: undefined,\n alias: ((me.tags() || []).find(tag => tag.startsWith('alias:')) || '').substring(6),\n };\n }\n\n componentDidMount() {\n const me = this.props.tinode.getMeTopic();\n me.onCredsUpdated = _ => this.setState({credentials: me.getCredentials()});\n }\n\n componentWillUnmount() {\n const me = this.props.tinode.getMeTopic();\n me.onCredsUpdated = null;\n }\n\n render() {\n if (this.state.credEdit) {\n return (\n this.setState({credEdit: undefined})}\n onError={this.props.onError} />\n );\n }\n\n // Count how many times each method is validated.\n const validated = {};\n this.state.credentials.forEach(cred => {\n if (cred.done) {\n validated[cred.meth] = (validated[cred.meth] || 0) + 1;\n }\n });\n\n const credentials = [];\n this.state.credentials.forEach((cred, idx) => {\n if (!['email', 'tel'].includes(cred.meth)) {\n // Skip unknown methods.\n return ;\n }\n\n let val = cred.val\n if (cred.meth == 'tel') {\n const number = parsePhoneNumber(cred.val);\n val = number ? number.formatInternational() : cred.val;\n }\n\n credentials.push(\n
\n {e.preventDefault(); this.setState({credEdit: cred});}}>{val}\n {cred.done ? null : pending} \n {!cred.done || validated[cred.meth] > 1 || this.props.reqCredMethod != cred.meth ?\n {e.preventDefault(); this.props.onCredDelete(cred.meth, cred.val);}}>\n delete\n \n :\n null}\n \n
);\n });\n if (credentials.length > 0) {\n // Add title as the first element.\n credentials.unshift(\n );\n }\n\n return (\n
\n
\n {e.preventDefault(); this.props.onNavigate('general');}}>\n edit \n \n \n
\n \n
\n
\n \n
{this.state.fullName}
\n
\n
\n  \n {this.props.myUserId}\n
\n {this.state.alias ?\n
\n  \n @{this.state.alias}\n
: null}\n
\n \n
\n {this.state.description ?\n
\n \n
{this.state.description}
\n
: null}\n
\n
\n
\n
{credentials}
\n
\n \n );\n }\n};\n","// Editor for a phone number.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { AsYouType, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js/mobile';\nimport examples from 'libphonenumber-js/mobile/examples'\n\nimport * as dcodes from '../dcodes.json';\nimport { flagEmoji } from '../lib/strformat';\n\nconst messages = defineMessages({\n mobile_number_required: {\n id: 'mobile_number_required',\n defaultMessage: 'Mobile phone number required',\n description: 'Error message'\n }\n});\n\nclass PhoneEdit extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.codeMap = {};\n dcodes.default.forEach(dc => { this.codeMap[dc.code] = dc.dial; });\n\n const code = props.countryCode || 'US';\n const dial = this.codeMap[code];\n\n this.state = {\n countryCode: code,\n dialCode: dial,\n localNumber: '',\n placeholderNumber: this.placeholderNumber(code, dial)\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFinished = this.handleFinished.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.showCountrySelector = this.showCountrySelector.bind(this);\n }\n\n handleChange(e) {\n const prefix = `+${this.state.dialCode}`;\n let formatted = new AsYouType().input(`${prefix}${this.filterNumber(e.target.value)}`);\n formatted = formatted.substring(prefix.length).trim();\n this.setState({localNumber: formatted});\n }\n\n handleFinished(e) {\n e.preventDefault();\n const raw = `${this.state.dialCode}${this.state.localNumber.trim()}`.replace(/[^\\d]/g, '');\n let number = null;\n try {\n number = parsePhoneNumber(`+${raw}`);\n } catch (err) {}\n\n if (!number || !number.isValid()) {\n this.inputField.setCustomValidity(this.props.intl.formatMessage(messages.mobile_number_required));\n return;\n }\n\n this.inputField.setCustomValidity('');\n this.props.onSubmit(number.format('E.164'));\n }\n\n\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n this.handleFinished(e);\n }\n }\n\n showCountrySelector() {\n this.props.onShowCountrySelector(this.state.countryCode, this.state.dialCode,\n (code, dial) => {\n this.setState({\n countryCode: code,\n dialCode: dial,\n placeholderNumber: this.placeholderNumber(code, dial)\n })\n });\n }\n\n // Filter out characters not permitted in a phone number.\n filterNumber(number) {\n if (!number) {\n return number;\n }\n // Leave numbers, space, (, ), -, and .\n // The + is not allowed: it's handled by the country code portion.\n return number.replace(/[^-\\s().\\d]/g, '');\n }\n\n placeholderNumber(code, dial) {\n const sample = getExampleNumber(code, examples);\n return sample ? sample.formatInternational().substring(dial.length + 1).trim() : '123 0123';\n }\n\n render() {\n return (\n <>\n \n {flagEmoji(this.state.countryCode)} \n +{this.state.dialCode} \n {this.inputField = ref}} placeholder={this.state.placeholderNumber}\n value={this.state.localNumber} onChange={this.handleChange}\n maxLength={17} onKeyDown={this.handleKeyDown} onBlur={this.handleFinished}\n required autoFocus={this.props.autoFocus} />\n \n );\n }\n}\n\nexport default injectIntl(PhoneEdit);\n"],"names":["messages","defineMessages","password_reset_email_sent","id","defaultMessage","password_reset_sms_sent","CredentialEdit","React","constructor","props","super","this","state","code","tel","email","sent","handleSubmit","bind","handleEmailChange","handlePhoneChange","handleCodeChange","formatPhoneNumber","raw","number","parsePhoneNumber","err","formatInternational","e","setState","target","value","replace","preventDefault","method","onError","onCredConfirm","onCredAdd","msg","intl","formatMessage","render","readyForCode","done","rawValue","val","formattedValue","changeEmail","className","FormattedMessage","changePhone","newEmailLabel","newEmailInput","email_prompt","type","placeholder","autoComplete","onChange","required","newPhoneLabel","newPhoneInput","PhoneEdit","autoFocus","onShowCountrySelector","onSubmit","codeInput","numbers_only","maxLength","onClick","onCancel","injectIntl","_clip","str","length","truncateString","AccountSettingsView","me","tinode","getMeTopic","fullName","public","fn","undefined","MAX_TITLE_LENGTH","description","note","MAX_TOPIC_DESCRIPTION_LENGTH","avatar","makeImageUrl","photo","credentials","getCredentials","credEdit","alias","tags","find","tag","startsWith","substring","componentDidMount","onCredsUpdated","_","componentWillUnmount","meth","validated","forEach","cred","idx","includes","push","key","reqCredMethod","href","onCredDelete","unshift","onNavigate","AvatarUpload","readOnly","uid","myUserId","title","BadgeList","trustedBadges","mobile_number_required","codeMap","dcodes","dc","dial","countryCode","dialCode","localNumber","placeholderNumber","handleChange","handleFinished","handleKeyDown","showCountrySelector","prefix","formatted","AsYouType","input","filterNumber","trim","isValid","inputField","setCustomValidity","format","sample","getExampleNumber","examples","flagEmoji","ref","onKeyDown","onBlur"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"271.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/widgets/credential-edit.jsx","webpack://tinode-webapp/./src/views/account-settings-view.jsx","webpack://tinode-webapp/./src/widgets/phone-edit.jsx"],"sourcesContent":["// Enter one credential at a time.\n\nimport React from 'react';\nimport { defineMessages, FormattedMessage, injectIntl } from 'react-intl';\nimport PhoneEdit from './phone-edit.jsx';\nimport { parsePhoneNumber } from 'libphonenumber-js/mobile';\n\nconst messages = defineMessages({\n password_reset_email_sent: {\n id: 'password_reset_email_sent',\n defaultMessage: 'An email with security code has been sent.',\n description: 'Notification that the email with password reset instructions has been sent'\n },\n password_reset_sms_sent: {\n id: 'password_reset_sms_sent',\n defaultMessage: 'A text message with security code has been sent.',\n description: 'Notification that the SMS with password reset instructions has been sent'\n },\n});\n\nclass CredentialEdit extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n code: '',\n tel: '',\n email: '',\n sent: false\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleEmailChange = this.handleEmailChange.bind(this);\n this.handlePhoneChange = this.handlePhoneChange.bind(this);\n this.handleCodeChange = this.handleCodeChange.bind(this);\n }\n\n static formatPhoneNumber(raw) {\n let number;\n try {\n number = parsePhoneNumber(raw);\n } catch (err) {}\n return number ? number.formatInternational() : raw;\n }\n\n handleEmailChange(e) {\n this.setState({email: e.target.value});\n }\n\n handlePhoneChange(number) {\n this.setState({tel: number});\n }\n\n handleCodeChange(e) {\n this.setState({code: e.target.value.replace(/[^\\d]/g, '')});\n }\n\n handleSubmit(e) {\n e.preventDefault();\n const value = this.props.method == 'email' ? this.state.email : this.state.tel;\n if (this.state.code) {\n this.props.onError(null);\n this.props.onCredConfirm(this.props.method, this.state.code);\n } else if (value) {\n this.props.onCredAdd(this.props.method, value);\n this.setState({sent: true});\n const msg = this.props.method == 'email' ? messages.password_reset_email_sent : messages.password_reset_sms_sent;\n this.props.onError(this.props.intl.formatMessage(msg), 'info');\n }\n }\n\n render() {\n const readyForCode = this.state.sent || !this.props.done;\n const rawValue = readyForCode ? (this.state.tel || this.state.email) : this.props.val;\n const formattedValue = this.props.method == 'tel' ? CredentialEdit.formatPhoneNumber(rawValue) : rawValue;\n\n const changeEmail = (\n <>
\n \n
\n
\n \n
);\n\n const changePhone = (\n <>
\n \n
\n
\n \n
\n );\n\n const newEmailLabel = ();\n\n const newEmailInput = (\n <>
{newEmailLabel}
\n
\n {\n (email_prompt) => \n }\n
\n );\n\n const newPhoneLabel = ();\n\n const newPhoneInput = (\n <>
{newPhoneLabel}
\n
\n \n
\n );\n\n const codeInput = (\n <>
\n \n
\n
\n {\n (numbers_only) => \n }\n
\n );\n\n return (
\n {readyForCode ?\n (this.props.method == 'email' ? newEmailLabel : this.props.method == 'tel' ? newPhoneLabel : null)\n :\n (this.props.method == 'email' ? changeEmail : this.props.method == 'tel' ? changePhone : null)\n }\n
\n {formattedValue}\n
\n {readyForCode ?\n null\n :\n (this.props.method == 'email' ? newEmailInput : this.props.method == 'tel' ? newPhoneInput : null)\n }\n {readyForCode ? codeInput : null}\n
\n \n \n
\n
);\n }\n}\n\nexport default injectIntl(CredentialEdit);\n","// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { parsePhoneNumber } from 'libphonenumber-js/mobile';\n\nimport AvatarUpload from '../widgets/avatar-upload.jsx';\nimport BadgeList from '../widgets/badge-list.jsx';\nimport CredentialEdit from '../widgets/credential-edit.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\nimport { truncateString } from '../lib/strformat.js';\nimport { MAX_TITLE_LENGTH, MAX_TOPIC_DESCRIPTION_LENGTH } from '../config.js';\n\nfunction _clip(str, length) {\n return truncateString(str, length);\n}\n\nexport default class AccountSettingsView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n this.state = {\n fullName: _clip(me.public ? me.public.fn : undefined, MAX_TITLE_LENGTH),\n description: _clip(me.public ? me.public.note : undefined, MAX_TOPIC_DESCRIPTION_LENGTH),\n avatar: makeImageUrl(me.public ? me.public.photo : null),\n credentials: me.getCredentials() || [],\n credEdit: undefined,\n alias: ((me.tags() || []).find(tag => tag.startsWith('alias:')) || '').substring(6),\n };\n }\n\n componentDidMount() {\n const me = this.props.tinode.getMeTopic();\n me.onCredsUpdated = _ => this.setState({credentials: me.getCredentials()});\n }\n\n componentWillUnmount() {\n const me = this.props.tinode.getMeTopic();\n me.onCredsUpdated = null;\n }\n\n render() {\n if (this.state.credEdit) {\n return (\n this.setState({credEdit: undefined})}\n onError={this.props.onError} />\n );\n }\n\n // Count how many times each method is validated.\n const validated = {};\n this.state.credentials.forEach(cred => {\n if (cred.done) {\n validated[cred.meth] = (validated[cred.meth] || 0) + 1;\n }\n });\n\n const credentials = [];\n this.state.credentials.forEach((cred, idx) => {\n if (!['email', 'tel'].includes(cred.meth)) {\n // Skip unknown methods.\n return ;\n }\n\n let val = cred.val\n if (cred.meth == 'tel') {\n const number = parsePhoneNumber(cred.val);\n val = number ? number.formatInternational() : cred.val;\n }\n\n credentials.push(\n
\n {e.preventDefault(); this.setState({credEdit: cred});}}>{val}\n {cred.done ? null : pending} \n {!cred.done || validated[cred.meth] > 1 || this.props.reqCredMethod != cred.meth ?\n {e.preventDefault(); this.props.onCredDelete(cred.meth, cred.val);}}>\n delete\n \n :\n null}\n \n
);\n });\n if (credentials.length > 0) {\n // Add title as the first element.\n credentials.unshift(\n );\n }\n\n return (\n
\n
\n {e.preventDefault(); this.props.onNavigate('general');}}>\n edit \n \n \n
\n \n
\n
\n \n
{this.state.fullName}
\n
\n
\n  \n {this.props.myUserId}\n
\n {this.state.alias ?\n
\n  \n @{this.state.alias}\n
: null}\n
\n \n
\n {this.state.description ?\n
\n \n
{this.state.description}
\n
: null}\n
\n
\n
\n
{credentials}
\n
\n \n );\n }\n};\n","// Editor for a phone number.\n\nimport React from 'react';\nimport { defineMessages, injectIntl } from 'react-intl';\nimport { AsYouType, getExampleNumber, parsePhoneNumber } from 'libphonenumber-js/mobile';\nimport examples from 'libphonenumber-js/mobile/examples'\n\nimport * as dcodes from '../dcodes.json';\nimport { flagEmoji } from '../lib/strformat';\n\nconst messages = defineMessages({\n mobile_number_required: {\n id: 'mobile_number_required',\n defaultMessage: 'Mobile phone number required',\n description: 'Error message'\n }\n});\n\nclass PhoneEdit extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.codeMap = {};\n dcodes.default.forEach(dc => { this.codeMap[dc.code] = dc.dial; });\n\n const code = props.countryCode || 'US';\n const dial = this.codeMap[code];\n\n this.state = {\n countryCode: code,\n dialCode: dial,\n localNumber: '',\n placeholderNumber: this.placeholderNumber(code, dial)\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFinished = this.handleFinished.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.showCountrySelector = this.showCountrySelector.bind(this);\n }\n\n handleChange(e) {\n const prefix = `+${this.state.dialCode}`;\n let formatted = new AsYouType().input(`${prefix}${this.filterNumber(e.target.value)}`);\n formatted = formatted.substring(prefix.length).trim();\n this.setState({localNumber: formatted});\n }\n\n handleFinished(e) {\n e.preventDefault();\n const raw = `${this.state.dialCode}${this.state.localNumber.trim()}`.replace(/[^\\d]/g, '');\n let number = null;\n try {\n number = parsePhoneNumber(`+${raw}`);\n } catch (err) {}\n\n if (!number || !number.isValid()) {\n this.inputField.setCustomValidity(this.props.intl.formatMessage(messages.mobile_number_required));\n return;\n }\n\n this.inputField.setCustomValidity('');\n this.props.onSubmit(number.format('E.164'));\n }\n\n\n handleKeyDown(e) {\n if (e.key === 'Enter') {\n this.handleFinished(e);\n }\n }\n\n showCountrySelector() {\n this.props.onShowCountrySelector(this.state.countryCode, this.state.dialCode,\n (code, dial) => {\n this.setState({\n countryCode: code,\n dialCode: dial,\n placeholderNumber: this.placeholderNumber(code, dial)\n })\n });\n }\n\n // Filter out characters not permitted in a phone number.\n filterNumber(number) {\n if (!number) {\n return number;\n }\n // Leave numbers, space, (, ), -, and .\n // The + is not allowed: it's handled by the country code portion.\n return number.replace(/[^-\\s().\\d]/g, '');\n }\n\n placeholderNumber(code, dial) {\n const sample = getExampleNumber(code, examples);\n return sample ? sample.formatInternational().substring(dial.length + 1).trim() : '123 0123';\n }\n\n render() {\n return (\n <>\n \n {flagEmoji(this.state.countryCode)} \n +{this.state.dialCode} \n {this.inputField = ref}} placeholder={this.state.placeholderNumber}\n value={this.state.localNumber} onChange={this.handleChange}\n maxLength={17} onKeyDown={this.handleKeyDown} onBlur={this.handleFinished}\n required autoFocus={this.props.autoFocus} />\n \n );\n }\n}\n\nexport default injectIntl(PhoneEdit);\n"],"names":["messages","external_ReactIntl_","defineMessages","password_reset_email_sent","id","defaultMessage","description","password_reset_sms_sent","CredentialEdit","external_React_default","PureComponent","constructor","props","super","this","state","code","tel","email","sent","handleSubmit","bind","handleEmailChange","handlePhoneChange","handleCodeChange","formatPhoneNumber","raw","number","parsePhoneNumberWithError","L","err","formatInternational","e","setState","target","value","replace","preventDefault","method","onError","onCredConfirm","onCredAdd","msg","intl","formatMessage","render","readyForCode","done","rawValue","val","formattedValue","changeEmail","jsx_dev_runtime","jsxDEV","Fragment","children","className","FormattedMessage","changePhone","newEmailLabel","newEmailInput","email_prompt","type","placeholder","autoComplete","onChange","required","newPhoneLabel","newPhoneInput","phone_edit","A","autoFocus","onShowCountrySelector","onSubmit","codeInput","numbers_only","maxLength","onClick","onCancel","credential_edit","injectIntl","_clip","str","length","strformat","W5","AccountSettingsView","Component","me","tinode","getMeTopic","fullName","public","fn","undefined","note","avatar","blob_helpers","to","photo","credentials","getCredentials","credEdit","alias","tags","find","tag","startsWith","substring","componentDidMount","onCredsUpdated","_","componentWillUnmount","meth","validated","forEach","cred","idx","includes","push","reqCredMethod","href","onCredDelete","unshift","onNavigate","avatar_upload","readOnly","uid","myUserId","title","badge_list","trustedBadges","react_intl__WEBPACK_IMPORTED_MODULE_1__","mobile_number_required","PhoneEdit","react__WEBPACK_IMPORTED_MODULE_0___default","codeMap","_dcodes_json__WEBPACK_IMPORTED_MODULE_6__","dc","dial","countryCode","dialCode","localNumber","placeholderNumber","handleChange","handleFinished","handleKeyDown","showCountrySelector","prefix","formatted","libphonenumber_js_mobile__WEBPACK_IMPORTED_MODULE_3__","Q","input","filterNumber","trim","libphonenumber_js_mobile__WEBPACK_IMPORTED_MODULE_2__","isValid","inputField","setCustomValidity","format","key","sample","libphonenumber_js_mobile__WEBPACK_IMPORTED_MODULE_4__","a","libphonenumber_js_mobile_examples__WEBPACK_IMPORTED_MODULE_5__","react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__","_lib_strformat__WEBPACK_IMPORTED_MODULE_7__","lb","ref","onKeyDown","onBlur","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/umd/316.prod.js b/umd/316.prod.js index b8deb4ae..7cfc0f86 100644 --- a/umd/316.prod.js +++ b/umd/316.prod.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[316],{111:function(d){d.exports=JSON.parse('[{"dial":"93","code":"AF"},{"dial":"355","code":"AL"},{"dial":"213","code":"DZ"},{"dial":"1-684","code":"AS"},{"dial":"376","code":"AD"},{"dial":"244","code":"AO"},{"dial":"1-264","code":"AI"},{"dial":"672","code":"AQ"},{"dial":"1-268","code":"AG"},{"dial":"54","code":"AR"},{"dial":"374","code":"AM"},{"dial":"297","code":"AW"},{"dial":"61","code":"AU"},{"dial":"43","code":"AT"},{"dial":"994","code":"AZ"},{"dial":"1-242","code":"BS"},{"dial":"973","code":"BH"},{"dial":"880","code":"BD"},{"dial":"1-246","code":"BB"},{"dial":"375","code":"BY"},{"dial":"32","code":"BE"},{"dial":"501","code":"BZ"},{"dial":"229","code":"BJ"},{"dial":"1-441","code":"BM"},{"dial":"975","code":"BT"},{"dial":"591","code":"BO"},{"dial":"387","code":"BA"},{"dial":"267","code":"BW"},{"dial":"55","code":"BR"},{"dial":"246","code":"IO"},{"dial":"1-284","code":"VG"},{"dial":"673","code":"BN"},{"dial":"359","code":"BG"},{"dial":"226","code":"BF"},{"dial":"257","code":"BI"},{"dial":"855","code":"KH"},{"dial":"237","code":"CM"},{"dial":"1","code":"CA"},{"dial":"238","code":"CV"},{"dial":"1-345","code":"KY"},{"dial":"236","code":"CF"},{"dial":"235","code":"TD"},{"dial":"56","code":"CL"},{"dial":"86","code":"CN"},{"dial":"61","code":"CX"},{"dial":"61","code":"CC"},{"dial":"57","code":"CO"},{"dial":"269","code":"KM"},{"dial":"682","code":"CK"},{"dial":"506","code":"CR"},{"dial":"385","code":"HR"},{"dial":"53","code":"CU"},{"dial":"599","code":"CW"},{"dial":"357","code":"CY"},{"dial":"420","code":"CZ"},{"dial":"243","code":"CD"},{"dial":"45","code":"DK"},{"dial":"253","code":"DJ"},{"dial":"1-767","code":"DM"},{"dial":"1-809, 1-829, 1-849","code":"DO"},{"dial":"670","code":"TL"},{"dial":"593","code":"EC"},{"dial":"20","code":"EG"},{"dial":"503","code":"SV"},{"dial":"240","code":"GQ"},{"dial":"291","code":"ER"},{"dial":"372","code":"EE"},{"dial":"251","code":"ET"},{"dial":"500","code":"FK"},{"dial":"298","code":"FO"},{"dial":"679","code":"FJ"},{"dial":"358","code":"FI"},{"dial":"33","code":"FR"},{"dial":"689","code":"PF"},{"dial":"241","code":"GA"},{"dial":"220","code":"GM"},{"dial":"995","code":"GE"},{"dial":"49","code":"DE"},{"dial":"233","code":"GH"},{"dial":"350","code":"GI"},{"dial":"30","code":"GR"},{"dial":"299","code":"GL"},{"dial":"1-473","code":"GD"},{"dial":"1-671","code":"GU"},{"dial":"502","code":"GT"},{"dial":"44-1481","code":"GG"},{"dial":"224","code":"GN"},{"dial":"245","code":"GW"},{"dial":"592","code":"GY"},{"dial":"509","code":"HT"},{"dial":"504","code":"HN"},{"dial":"852","code":"HK"},{"dial":"36","code":"HU"},{"dial":"354","code":"IS"},{"dial":"91","code":"IN"},{"dial":"62","code":"ID"},{"dial":"98","code":"IR"},{"dial":"964","code":"IQ"},{"dial":"353","code":"IE"},{"dial":"44-1624","code":"IM"},{"dial":"972","code":"IL"},{"dial":"39","code":"IT"},{"dial":"225","code":"CI"},{"dial":"1-876","code":"JM"},{"dial":"81","code":"JP"},{"dial":"44-1534","code":"JE"},{"dial":"962","code":"JO"},{"dial":"7, 997","code":"KZ"},{"dial":"254","code":"KE"},{"dial":"686","code":"KI"},{"dial":"383","code":"XK"},{"dial":"965","code":"KW"},{"dial":"996","code":"KG"},{"dial":"856","code":"LA"},{"dial":"371","code":"LV"},{"dial":"961","code":"LB"},{"dial":"266","code":"LS"},{"dial":"231","code":"LR"},{"dial":"218","code":"LY"},{"dial":"423","code":"LI"},{"dial":"370","code":"LT"},{"dial":"352","code":"LU"},{"dial":"853","code":"MO"},{"dial":"389","code":"MK"},{"dial":"261","code":"MG"},{"dial":"265","code":"MW"},{"dial":"60","code":"MY"},{"dial":"960","code":"MV"},{"dial":"223","code":"ML"},{"dial":"356","code":"MT"},{"dial":"692","code":"MH"},{"dial":"222","code":"MR"},{"dial":"230","code":"MU"},{"dial":"262","code":"YT"},{"dial":"52","code":"MX"},{"dial":"691","code":"FM"},{"dial":"373","code":"MD"},{"dial":"377","code":"MC"},{"dial":"976","code":"MN"},{"dial":"382","code":"ME"},{"dial":"1-664","code":"MS"},{"dial":"212","code":"MA"},{"dial":"258","code":"MZ"},{"dial":"95","code":"MM"},{"dial":"264","code":"NA"},{"dial":"674","code":"NR"},{"dial":"977","code":"NP"},{"dial":"31","code":"NL"},{"dial":"599","code":"CW"},{"dial":"687","code":"NC"},{"dial":"64","code":"NZ"},{"dial":"505","code":"NI"},{"dial":"227","code":"NE"},{"dial":"234","code":"NG"},{"dial":"683","code":"NU"},{"dial":"850","code":"KP"},{"dial":"1-670","code":"MP"},{"dial":"47","code":"NO"},{"dial":"968","code":"OM"},{"dial":"92","code":"PK"},{"dial":"680","code":"PW"},{"dial":"970","code":"PS"},{"dial":"507","code":"PA"},{"dial":"675","code":"PG"},{"dial":"595","code":"PY"},{"dial":"51","code":"PE"},{"dial":"63","code":"PH"},{"dial":"64","code":"PN"},{"dial":"48","code":"PL"},{"dial":"351","code":"PT"},{"dial":"1-787, 1-939","code":"PR"},{"dial":"974","code":"QA"},{"dial":"242","code":"CG"},{"dial":"262","code":"RE"},{"dial":"40","code":"RO"},{"dial":"7","code":"RU"},{"dial":"250","code":"RW"},{"dial":"590","code":"BL"},{"dial":"290","code":"SH"},{"dial":"1-869","code":"KN"},{"dial":"1-758","code":"LC"},{"dial":"590","code":"MF"},{"dial":"508","code":"PM"},{"dial":"1-784","code":"VC"},{"dial":"685","code":"WS"},{"dial":"378","code":"SM"},{"dial":"239","code":"ST"},{"dial":"966","code":"SA"},{"dial":"221","code":"SN"},{"dial":"381","code":"RS"},{"dial":"248","code":"SC"},{"dial":"232","code":"SL"},{"dial":"65","code":"SG"},{"dial":"1-721","code":"SX"},{"dial":"421","code":"SK"},{"dial":"386","code":"SI"},{"dial":"677","code":"SB"},{"dial":"252","code":"SO"},{"dial":"27","code":"ZA"},{"dial":"82","code":"KR"},{"dial":"211","code":"SS"},{"dial":"34","code":"ES"},{"dial":"94","code":"LK"},{"dial":"249","code":"SD"},{"dial":"597","code":"SR"},{"dial":"47","code":"SJ"},{"dial":"268","code":"SZ"},{"dial":"46","code":"SE"},{"dial":"41","code":"CH"},{"dial":"963","code":"SY"},{"dial":"886","code":"TW"},{"dial":"992","code":"TJ"},{"dial":"255","code":"TZ"},{"dial":"66","code":"TH"},{"dial":"228","code":"TG"},{"dial":"690","code":"TK"},{"dial":"676","code":"TO"},{"dial":"1-868","code":"TT"},{"dial":"216","code":"TN"},{"dial":"90","code":"TR"},{"dial":"993","code":"TM"},{"dial":"1-649","code":"TC"},{"dial":"688","code":"TV"},{"dial":"1-340","code":"VI"},{"dial":"256","code":"UG"},{"dial":"380","code":"UA"},{"dial":"971","code":"AE"},{"dial":"44","code":"GB"},{"dial":"1","code":"US"},{"dial":"598","code":"UY"},{"dial":"998","code":"UZ"},{"dial":"678","code":"VU"},{"dial":"379","code":"VA"},{"dial":"58","code":"VE"},{"dial":"84","code":"VN"},{"dial":"681","code":"WF"},{"dial":"212","code":"EH"},{"dial":"967","code":"YE"},{"dial":"260","code":"ZM"},{"dial":"263","code":"ZW"}]')},4316:function(d,e,c){c.r(e);var a=c(1594),l=c.n(a),o=c(8181),i=c(111),t=c(8589);class s extends l().PureComponent{constructor(d){super(d),this.countries=[];const{formatDisplayName:e}=d.intl;i.forEach(d=>{d.dial.split(",").forEach(c=>{this.countries.push({dial:c.trim(),code:d.code,flag:(0,t.lb)(d.code),name:e(d.code,{type:"region"})})})}),this.countries.sort((d,e)=>d.name.localeCompare(e.name))}componentDidMount(){this.selectedRef&&this.selectedRef.scrollIntoView({block:"center",inline:"nearest"})}render(){const d=[],e=this.props.selected||"US";return this.countries.forEach((c,a)=>{const o=c.code==e?"selected ":"";d.push(l().createElement("li",{className:o,key:a,ref:d=>{c.code==e&&(this.selectedRef=d)},onClick:d=>this.props.onSubmit(c.code,c.dial)},l().createElement("span",{className:"country-flag"},c.flag),l().createElement("span",{className:"country"}," ",c.name),l().createElement("span",{className:"dial-code"}," +",c.dial)))}),l().createElement("div",{className:"scrollable-panel",style:{height:"30rem"}},l().createElement("ul",{className:"phone-country-selector"},d))}}e.default=(0,o.injectIntl)(s)}}]); +"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[316],{4316:function(d,e,c){c.r(e);var o=c(1594),i=c.n(o),l=c(8181),a=c(111),s=c(8589),n=c(5446);class t extends i().PureComponent{constructor(d){super(d),this.countries=[];const{formatDisplayName:e}=d.intl;a.forEach(d=>{d.dial.split(",").forEach(c=>{this.countries.push({dial:c.trim(),code:d.code,flag:(0,s.lb)(d.code),name:e(d.code,{type:"region"})})})}),this.countries.sort((d,e)=>d.name.localeCompare(e.name))}componentDidMount(){this.selectedRef&&this.selectedRef.scrollIntoView({block:"center",inline:"nearest"})}render(){const d=[],e=this.props.selected||"US";return this.countries.forEach((c,o)=>{const i=c.code==e?"selected ":"";d.push((0,n.jsxDEV)("li",{className:i,ref:d=>{c.code==e&&(this.selectedRef=d)},onClick:d=>this.props.onSubmit(c.code,c.dial),children:[(0,n.jsxDEV)("span",{className:"country-flag",children:c.flag},void 0,!1),(0,n.jsxDEV)("span",{className:"country",children:[" ",c.name]},void 0,!0),(0,n.jsxDEV)("span",{className:"dial-code",children:[" +",c.dial]},void 0,!0)]},o,!0))}),(0,n.jsxDEV)("div",{className:"scrollable-panel",style:{height:"30rem"},children:(0,n.jsxDEV)("ul",{className:"phone-country-selector",children:d},void 0,!1)},void 0,!1)}}e.default=(0,l.injectIntl)(t)},111:function(d){d.exports=JSON.parse('[{"dial":"93","code":"AF"},{"dial":"355","code":"AL"},{"dial":"213","code":"DZ"},{"dial":"1-684","code":"AS"},{"dial":"376","code":"AD"},{"dial":"244","code":"AO"},{"dial":"1-264","code":"AI"},{"dial":"672","code":"AQ"},{"dial":"1-268","code":"AG"},{"dial":"54","code":"AR"},{"dial":"374","code":"AM"},{"dial":"297","code":"AW"},{"dial":"61","code":"AU"},{"dial":"43","code":"AT"},{"dial":"994","code":"AZ"},{"dial":"1-242","code":"BS"},{"dial":"973","code":"BH"},{"dial":"880","code":"BD"},{"dial":"1-246","code":"BB"},{"dial":"375","code":"BY"},{"dial":"32","code":"BE"},{"dial":"501","code":"BZ"},{"dial":"229","code":"BJ"},{"dial":"1-441","code":"BM"},{"dial":"975","code":"BT"},{"dial":"591","code":"BO"},{"dial":"387","code":"BA"},{"dial":"267","code":"BW"},{"dial":"55","code":"BR"},{"dial":"246","code":"IO"},{"dial":"1-284","code":"VG"},{"dial":"673","code":"BN"},{"dial":"359","code":"BG"},{"dial":"226","code":"BF"},{"dial":"257","code":"BI"},{"dial":"855","code":"KH"},{"dial":"237","code":"CM"},{"dial":"1","code":"CA"},{"dial":"238","code":"CV"},{"dial":"1-345","code":"KY"},{"dial":"236","code":"CF"},{"dial":"235","code":"TD"},{"dial":"56","code":"CL"},{"dial":"86","code":"CN"},{"dial":"61","code":"CX"},{"dial":"61","code":"CC"},{"dial":"57","code":"CO"},{"dial":"269","code":"KM"},{"dial":"682","code":"CK"},{"dial":"506","code":"CR"},{"dial":"385","code":"HR"},{"dial":"53","code":"CU"},{"dial":"599","code":"CW"},{"dial":"357","code":"CY"},{"dial":"420","code":"CZ"},{"dial":"243","code":"CD"},{"dial":"45","code":"DK"},{"dial":"253","code":"DJ"},{"dial":"1-767","code":"DM"},{"dial":"1-809, 1-829, 1-849","code":"DO"},{"dial":"670","code":"TL"},{"dial":"593","code":"EC"},{"dial":"20","code":"EG"},{"dial":"503","code":"SV"},{"dial":"240","code":"GQ"},{"dial":"291","code":"ER"},{"dial":"372","code":"EE"},{"dial":"251","code":"ET"},{"dial":"500","code":"FK"},{"dial":"298","code":"FO"},{"dial":"679","code":"FJ"},{"dial":"358","code":"FI"},{"dial":"33","code":"FR"},{"dial":"689","code":"PF"},{"dial":"241","code":"GA"},{"dial":"220","code":"GM"},{"dial":"995","code":"GE"},{"dial":"49","code":"DE"},{"dial":"233","code":"GH"},{"dial":"350","code":"GI"},{"dial":"30","code":"GR"},{"dial":"299","code":"GL"},{"dial":"1-473","code":"GD"},{"dial":"1-671","code":"GU"},{"dial":"502","code":"GT"},{"dial":"44-1481","code":"GG"},{"dial":"224","code":"GN"},{"dial":"245","code":"GW"},{"dial":"592","code":"GY"},{"dial":"509","code":"HT"},{"dial":"504","code":"HN"},{"dial":"852","code":"HK"},{"dial":"36","code":"HU"},{"dial":"354","code":"IS"},{"dial":"91","code":"IN"},{"dial":"62","code":"ID"},{"dial":"98","code":"IR"},{"dial":"964","code":"IQ"},{"dial":"353","code":"IE"},{"dial":"44-1624","code":"IM"},{"dial":"972","code":"IL"},{"dial":"39","code":"IT"},{"dial":"225","code":"CI"},{"dial":"1-876","code":"JM"},{"dial":"81","code":"JP"},{"dial":"44-1534","code":"JE"},{"dial":"962","code":"JO"},{"dial":"7, 997","code":"KZ"},{"dial":"254","code":"KE"},{"dial":"686","code":"KI"},{"dial":"383","code":"XK"},{"dial":"965","code":"KW"},{"dial":"996","code":"KG"},{"dial":"856","code":"LA"},{"dial":"371","code":"LV"},{"dial":"961","code":"LB"},{"dial":"266","code":"LS"},{"dial":"231","code":"LR"},{"dial":"218","code":"LY"},{"dial":"423","code":"LI"},{"dial":"370","code":"LT"},{"dial":"352","code":"LU"},{"dial":"853","code":"MO"},{"dial":"389","code":"MK"},{"dial":"261","code":"MG"},{"dial":"265","code":"MW"},{"dial":"60","code":"MY"},{"dial":"960","code":"MV"},{"dial":"223","code":"ML"},{"dial":"356","code":"MT"},{"dial":"692","code":"MH"},{"dial":"222","code":"MR"},{"dial":"230","code":"MU"},{"dial":"262","code":"YT"},{"dial":"52","code":"MX"},{"dial":"691","code":"FM"},{"dial":"373","code":"MD"},{"dial":"377","code":"MC"},{"dial":"976","code":"MN"},{"dial":"382","code":"ME"},{"dial":"1-664","code":"MS"},{"dial":"212","code":"MA"},{"dial":"258","code":"MZ"},{"dial":"95","code":"MM"},{"dial":"264","code":"NA"},{"dial":"674","code":"NR"},{"dial":"977","code":"NP"},{"dial":"31","code":"NL"},{"dial":"599","code":"CW"},{"dial":"687","code":"NC"},{"dial":"64","code":"NZ"},{"dial":"505","code":"NI"},{"dial":"227","code":"NE"},{"dial":"234","code":"NG"},{"dial":"683","code":"NU"},{"dial":"850","code":"KP"},{"dial":"1-670","code":"MP"},{"dial":"47","code":"NO"},{"dial":"968","code":"OM"},{"dial":"92","code":"PK"},{"dial":"680","code":"PW"},{"dial":"970","code":"PS"},{"dial":"507","code":"PA"},{"dial":"675","code":"PG"},{"dial":"595","code":"PY"},{"dial":"51","code":"PE"},{"dial":"63","code":"PH"},{"dial":"64","code":"PN"},{"dial":"48","code":"PL"},{"dial":"351","code":"PT"},{"dial":"1-787, 1-939","code":"PR"},{"dial":"974","code":"QA"},{"dial":"242","code":"CG"},{"dial":"262","code":"RE"},{"dial":"40","code":"RO"},{"dial":"7","code":"RU"},{"dial":"250","code":"RW"},{"dial":"590","code":"BL"},{"dial":"290","code":"SH"},{"dial":"1-869","code":"KN"},{"dial":"1-758","code":"LC"},{"dial":"590","code":"MF"},{"dial":"508","code":"PM"},{"dial":"1-784","code":"VC"},{"dial":"685","code":"WS"},{"dial":"378","code":"SM"},{"dial":"239","code":"ST"},{"dial":"966","code":"SA"},{"dial":"221","code":"SN"},{"dial":"381","code":"RS"},{"dial":"248","code":"SC"},{"dial":"232","code":"SL"},{"dial":"65","code":"SG"},{"dial":"1-721","code":"SX"},{"dial":"421","code":"SK"},{"dial":"386","code":"SI"},{"dial":"677","code":"SB"},{"dial":"252","code":"SO"},{"dial":"27","code":"ZA"},{"dial":"82","code":"KR"},{"dial":"211","code":"SS"},{"dial":"34","code":"ES"},{"dial":"94","code":"LK"},{"dial":"249","code":"SD"},{"dial":"597","code":"SR"},{"dial":"47","code":"SJ"},{"dial":"268","code":"SZ"},{"dial":"46","code":"SE"},{"dial":"41","code":"CH"},{"dial":"963","code":"SY"},{"dial":"886","code":"TW"},{"dial":"992","code":"TJ"},{"dial":"255","code":"TZ"},{"dial":"66","code":"TH"},{"dial":"228","code":"TG"},{"dial":"690","code":"TK"},{"dial":"676","code":"TO"},{"dial":"1-868","code":"TT"},{"dial":"216","code":"TN"},{"dial":"90","code":"TR"},{"dial":"993","code":"TM"},{"dial":"1-649","code":"TC"},{"dial":"688","code":"TV"},{"dial":"1-340","code":"VI"},{"dial":"256","code":"UG"},{"dial":"380","code":"UA"},{"dial":"971","code":"AE"},{"dial":"44","code":"GB"},{"dial":"1","code":"US"},{"dial":"598","code":"UY"},{"dial":"998","code":"UZ"},{"dial":"678","code":"VU"},{"dial":"379","code":"VA"},{"dial":"58","code":"VE"},{"dial":"84","code":"VN"},{"dial":"681","code":"WF"},{"dial":"212","code":"EH"},{"dial":"967","code":"YE"},{"dial":"260","code":"ZM"},{"dial":"263","code":"ZW"}]')}}]); //# sourceMappingURL=316.prod.js.map \ No newline at end of file diff --git a/umd/316.prod.js.map b/umd/316.prod.js.map index 547e0672..8beffdd4 100644 --- a/umd/316.prod.js.map +++ b/umd/316.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"316.prod.js","mappings":"qkNASA,MAAMA,UAA6BC,IAAAA,cACjCC,WAAAA,CAAYC,GACVC,MAAMD,GAENE,KAAKC,UAAY,GACjB,MAAM,kBAAEC,GAAsBJ,EAAMK,KACpCC,EAAeC,QAAQC,IACPA,EAAGC,KAAKC,MAAM,KACtBH,QAAQI,IACZT,KAAKC,UAAUS,KAAK,CAClBH,KAAME,EAAKE,OACXC,KAAMN,EAAGM,KACTC,MAAMC,EAAAA,EAAAA,IAAUR,EAAGM,MACnBG,KAAMb,EAAkBI,EAAGM,KAAM,CAACI,KAAM,iBAK9ChB,KAAKC,UAAUgB,KAAK,CAACC,EAAGC,IAAMD,EAAEH,KAAKK,cAAcD,EAAEJ,MACvD,CAEAM,iBAAAA,GACMrB,KAAKsB,aACPtB,KAAKsB,YAAYC,eAAe,CAACC,MAAO,SAAUC,OAAQ,WAE9D,CAEAC,MAAAA,GACE,MAAMzB,EAAY,GACZ0B,EAAW3B,KAAKF,MAAM6B,UAAY,KAYxC,OAXA3B,KAAKC,UAAUI,QAAQ,CAACuB,EAAGC,KACzB,MAAMC,EAASF,EAAEhB,MAAQe,EAAW,YAAc,GAClD1B,EAAUS,KAAKd,IAAAA,cAAA,MAAImC,UAAWD,EAAOE,IAAKH,EACxCI,IAAKA,IAAYL,EAAEhB,MAAQe,IAAW3B,KAAKsB,YAAcW,IACzDC,QAASC,GAAKnC,KAAKF,MAAMsC,SAASR,EAAEhB,KAAMgB,EAAErB,OAC5CX,IAAAA,cAAA,QAAMmC,UAAU,gBAAgBH,EAAEf,MAClCjB,IAAAA,cAAA,QAAMmC,UAAU,WAAU,IAAOH,EAAEb,MACnCnB,IAAAA,cAAA,QAAMmC,UAAU,aAAY,KAAQH,EAAErB,UAKxCX,IAAAA,cAAA,OAAKmC,UAAU,mBAAmBD,MAAO,CAACO,OAAQ,UAChDzC,IAAAA,cAAA,MAAImC,UAAU,0BACX9B,GAIT,EAGF,WAAeqC,EAAAA,EAAAA,YAAW3C,E","sources":["webpack://tinode-webapp/./src/widgets/phone-country-selector.jsx"],"sourcesContent":["// Selector for country dialing code.\n\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport * as dcodes from '../dcodes.json';\n\nimport { flagEmoji } from '../lib/strformat';\n\nclass PhoneCountrySelector extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.countries = [];\n const { formatDisplayName } = props.intl;\n dcodes.default.forEach(dc => {\n const parts = dc.dial.split(',');\n parts.forEach(part => {\n this.countries.push({\n dial: part.trim(),\n code: dc.code,\n flag: flagEmoji(dc.code),\n name: formatDisplayName(dc.code, {type: 'region'})\n });\n });\n });\n\n this.countries.sort((a, b) => a.name.localeCompare(b.name));\n }\n\n componentDidMount() {\n if (this.selectedRef) {\n this.selectedRef.scrollIntoView({block: 'center', inline: 'nearest'});\n }\n }\n\n render() {\n const countries = [];\n const selected = this.props.selected || 'US';\n this.countries.forEach((c, idx) => {\n const style = (c.code == selected ? 'selected ' : '');\n countries.push(
  • {if (c.code == selected) {this.selectedRef = ref}}}\n onClick={_ => this.props.onSubmit(c.code, c.dial)}>\n {c.flag}\n  {c.name}\n  +{c.dial}\n
  • );\n });\n\n return (\n
    \n
      \n {countries}\n
    \n
    \n );\n }\n}\n\nexport default injectIntl(PhoneCountrySelector);\n"],"names":["PhoneCountrySelector","React","constructor","props","super","this","countries","formatDisplayName","intl","dcodes","forEach","dc","dial","split","part","push","trim","code","flag","flagEmoji","name","type","sort","a","b","localeCompare","componentDidMount","selectedRef","scrollIntoView","block","inline","render","selected","c","idx","style","className","key","ref","onClick","_","onSubmit","height","injectIntl"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"316.prod.js","mappings":"wLASA,MAAMA,UAA6BC,IAAA,cACjC,WAAAC,CAAYC,GACVC,MAAMD,GAENE,KAAKC,UAAY,GACjB,MAAMC,kBAAEA,GAAsBJ,EAAMK,KACpCC,EAAeC,QAAQC,IACPA,EAAGC,KAAKC,MAAM,KACtBH,QAAQI,IACZT,KAAKC,UAAUS,KAAK,CAClBH,KAAME,EAAKE,OACXC,KAAMN,EAAGM,KACTC,MAAM,EAAAC,EAAAC,IAAUT,EAAGM,MACnBI,KAAMd,EAAkBI,EAAGM,KAAM,CAACK,KAAM,iBAK9CjB,KAAKC,UAAUiB,KAAK,CAACC,EAAGC,IAAMD,EAAEH,KAAKK,cAAcD,EAAEJ,MACvD,CAEA,iBAAAM,GACMtB,KAAKuB,aACPvB,KAAKuB,YAAYC,eAAe,CAACC,MAAO,SAAUC,OAAQ,WAE9D,CAEA,MAAAC,GACE,MAAM1B,EAAY,GACZ2B,EAAW5B,KAAKF,MAAM8B,UAAY,KAYxC,OAXA5B,KAAKC,UAAUI,QAAQ,CAACwB,EAAGC,KACzB,MAAMC,EAASF,EAAEjB,MAAQgB,EAAW,YAAc,GAClD3B,EAAUS,MAAK,EAAAsB,EAAAC,QAAA,MAAIC,UAAWH,EAC5BI,IAAKA,IAAYN,EAAEjB,MAAQgB,IAAW5B,KAAKuB,YAAcY,IACzDC,QAASC,GAAKrC,KAAKF,MAAMwC,SAAST,EAAEjB,KAAMiB,EAAEtB,MAAMgC,SAAA,EAClD,EAAAP,EAAAC,QAAA,QAAMC,UAAU,eAAcK,SAAEV,EAAEhB,WAAI,OACtC,EAAAmB,EAAAC,QAAA,QAAMC,UAAU,UAASK,SAAA,CAAC,IAAOV,EAAEb,YAAI,OACvC,EAAAgB,EAAAC,QAAA,QAAMC,UAAU,YAAWK,SAAA,CAAC,KAAQV,EAAEtB,YAAI,QALFuB,GAAG,OAU7C,EAAAE,EAAAC,QAAA,OAAKC,UAAU,mBAAmBH,MAAO,CAACS,OAAQ,SAASD,UACzD,EAAAP,EAAAC,QAAA,MAAIC,UAAU,yBAAwBK,SACnCtC,QAAS,YACP,KAGX,EAGFwC,EAAA,SAAe,EAAAC,EAAAC,YAAWhD","sources":["webpack://tinode-webapp/./src/widgets/phone-country-selector.jsx"],"sourcesContent":["// Selector for country dialing code.\n\nimport React from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport * as dcodes from '../dcodes.json';\n\nimport { flagEmoji } from '../lib/strformat';\n\nclass PhoneCountrySelector extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.countries = [];\n const { formatDisplayName } = props.intl;\n dcodes.default.forEach(dc => {\n const parts = dc.dial.split(',');\n parts.forEach(part => {\n this.countries.push({\n dial: part.trim(),\n code: dc.code,\n flag: flagEmoji(dc.code),\n name: formatDisplayName(dc.code, {type: 'region'})\n });\n });\n });\n\n this.countries.sort((a, b) => a.name.localeCompare(b.name));\n }\n\n componentDidMount() {\n if (this.selectedRef) {\n this.selectedRef.scrollIntoView({block: 'center', inline: 'nearest'});\n }\n }\n\n render() {\n const countries = [];\n const selected = this.props.selected || 'US';\n this.countries.forEach((c, idx) => {\n const style = (c.code == selected ? 'selected ' : '');\n countries.push(
  • {if (c.code == selected) {this.selectedRef = ref}}}\n onClick={_ => this.props.onSubmit(c.code, c.dial)}>\n {c.flag}\n  {c.name}\n  +{c.dial}\n
  • );\n });\n\n return (\n
    \n
      \n {countries}\n
    \n
    \n );\n }\n}\n\nexport default injectIntl(PhoneCountrySelector);\n"],"names":["PhoneCountrySelector","react__WEBPACK_IMPORTED_MODULE_0___default","constructor","props","super","this","countries","formatDisplayName","intl","_dcodes_json__WEBPACK_IMPORTED_MODULE_2__","forEach","dc","dial","split","part","push","trim","code","flag","_lib_strformat__WEBPACK_IMPORTED_MODULE_3__","lb","name","type","sort","a","b","localeCompare","componentDidMount","selectedRef","scrollIntoView","block","inline","render","selected","c","idx","style","react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__","jsxDEV","className","ref","onClick","_","onSubmit","children","height","__webpack_exports__","react_intl__WEBPACK_IMPORTED_MODULE_1__","injectIntl"],"sourceRoot":""} \ No newline at end of file diff --git a/umd/330.prod.js b/umd/330.prod.js index fb68ae88..69aded76 100644 --- a/umd/330.prod.js +++ b/umd/330.prod.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[330],{4701:function(t,e){e.A={AC:"40123",AD:"312345",AE:"501234567",AF:"701234567",AG:"2684641234",AI:"2642351234",AL:"672123456",AM:"77123456",AO:"923123456",AR:"91123456789",AS:"6847331234",AT:"664123456",AU:"412345678",AW:"5601234",AX:"412345678",AZ:"401234567",BA:"61123456",BB:"2462501234",BD:"1812345678",BE:"470123456",BF:"70123456",BG:"43012345",BH:"36001234",BI:"79561234",BJ:"0195123456",BL:"690001234",BM:"4413701234",BN:"7123456",BO:"71234567",BQ:"3181234",BR:"11961234567",BS:"2423591234",BT:"17123456",BW:"71123456",BY:"294911911",BZ:"6221234",CA:"5062345678",CC:"412345678",CD:"991234567",CF:"70012345",CG:"061234567",CH:"781234567",CI:"0123456789",CK:"71234",CL:"221234567",CM:"671234567",CN:"13123456789",CO:"3211234567",CR:"83123456",CU:"51234567",CV:"9911234",CW:"95181234",CX:"412345678",CY:"96123456",CZ:"601123456",DE:"15123456789",DJ:"77831001",DK:"34412345",DM:"7672251234",DO:"8092345678",DZ:"551234567",EC:"991234567",EE:"51234567",EG:"1001234567",EH:"650123456",ER:"7123456",ES:"612345678",ET:"911234567",FI:"412345678",FJ:"7012345",FK:"51234",FM:"3501234",FO:"211234",FR:"612345678",GA:"06031234",GB:"7400123456",GD:"4734031234",GE:"555123456",GF:"694201234",GG:"7781123456",GH:"231234567",GI:"57123456",GL:"221234",GM:"3012345",GN:"601123456",GP:"690001234",GQ:"222123456",GR:"6912345678",GT:"51234567",GU:"6713001234",GW:"955012345",GY:"6091234",HK:"51234567",HN:"91234567",HR:"921234567",HT:"34101234",HU:"201234567",ID:"812345678",IE:"850123456",IL:"502345678",IM:"7924123456",IN:"8123456789",IO:"3801234",IQ:"7912345678",IR:"9123456789",IS:"6111234",IT:"3123456789",JE:"7797712345",JM:"8762101234",JO:"790123456",JP:"9012345678",KE:"712123456",KG:"700123456",KH:"91234567",KI:"72001234",KM:"3212345",KN:"8697652917",KP:"1921234567",KR:"1020000000",KW:"50012345",KY:"3453231234",KZ:"7710009998",LA:"2023123456",LB:"71123456",LC:"7582845678",LI:"660234567",LK:"712345678",LR:"770123456",LS:"50123456",LT:"61234567",LU:"628123456",LV:"21234567",LY:"912345678",MA:"650123456",MC:"612345678",MD:"62112345",ME:"60123456",MF:"690001234",MG:"321234567",MH:"2351234",MK:"72345678",ML:"65012345",MM:"92123456",MN:"88123456",MO:"66123456",MP:"6702345678",MQ:"696201234",MR:"22123456",MS:"6644923456",MT:"96961234",MU:"52512345",MV:"7712345",MW:"991234567",MX:"2221234567",MY:"123456789",MZ:"821234567",NA:"811234567",NC:"751234",NE:"93123456",NF:"381234",NG:"8021234567",NI:"81234567",NL:"612345678",NO:"40612345",NP:"9841234567",NR:"5551234",NU:"8884012",NZ:"211234567",OM:"92123456",PA:"61234567",PE:"912345678",PF:"87123456",PG:"70123456",PH:"9051234567",PK:"3012345678",PL:"512345678",PM:"551234",PR:"7872345678",PS:"599123456",PT:"912345678",PW:"6201234",PY:"961456789",QA:"33123456",RE:"692123456",RO:"712034567",RS:"601234567",RU:"9123456789",RW:"720123456",SA:"512345678",SB:"7421234",SC:"2510123",SD:"911231234",SE:"701234567",SG:"81234567",SH:"51234",SI:"31234567",SJ:"41234567",SK:"912123456",SL:"25123456",SM:"66661212",SN:"701234567",SO:"71123456",SR:"7412345",SS:"977123456",ST:"9812345",SV:"70123456",SX:"7215205678",SY:"944567890",SZ:"76123456",TA:"8999",TC:"6492311234",TD:"63012345",TG:"90112345",TH:"812345678",TJ:"917123456",TK:"7290",TL:"77212345",TM:"66123456",TN:"20123456",TO:"7715123",TR:"5012345678",TT:"8682911234",TV:"901234",TW:"912345678",TZ:"621234567",UA:"501234567",UG:"712345678",US:"2015550123",UY:"94231234",UZ:"912345678",VA:"3123456789",VC:"7844301234",VE:"4121234567",VG:"2843001234",VI:"3406421234",VN:"912345678",VU:"5912345",WF:"821234",WS:"7212345",XK:"43201234",YE:"712345678",YT:"639012345",ZA:"711234567",ZM:"955123456",ZW:"712345678"}},4724:function(t,e,n){n.d(e,{Q:function(){return bt}});var r=n(1211),i=n(3247),a=n(96);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function l(t,e){for(var n=0;n=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1;)1&e&&(n+=t),e>>=1,t+=t;return n+t}function d(t,e){return")"===t[e]&&e++,function(t){var e=[],n=0;for(;n=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function k(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&void 0!==arguments[1]?arguments[1]:{}).allowOverflow;if(!t)throw new Error("String is required");var n=R(t.split(""),this.matchTree,!0);if(n&&n.match&&delete n.matchedChars,!n||!n.overflow||e)return n}}],e&&D(t.prototype,e),n&&D(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function R(t,e,n){if("string"==typeof e){var r=t.join("");return 0===e.indexOf(r)?t.length===e.length?{match:!0,matchedChars:t}:{partialMatch:!0}:0===r.indexOf(e)?n&&t.length>e.length?{overflow:!0}:{match:!0,matchedChars:t.slice(0,e.length)}:void 0}if(Array.isArray(e)){for(var i=t.slice(),a=0;a=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function W(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=0)){var n=this.getTemplateForFormat(t,e);return n?(this.setNationalNumberTemplate(n,e),!0):void 0}}},{key:"getSeparatorAfterNationalPrefix",value:function(t){return this.isNANP||t&&t.nationalPrefixFormattingRule()&&H.test(t.nationalPrefixFormattingRule())?" ":""}},{key:"getInternationalPrefixBeforeCountryCallingCode",value:function(t,e){var n=t.IDDPrefix,r=t.missingPlus;return n?e&&!1===e.spacing?n:n+" ":r?"":"+"}},{key:"getTemplate",value:function(t){if(this.template){for(var e=-1,n=0,r=t.international?this.getInternationalPrefixBeforeCountryCallingCode(t,{spacing:!1}):"";nl.length)){var u=new RegExp("^"+o+"$"),s=n.replace(/\d/g,"9");u.test(s)&&(l=s);var f,c=this.getFormatFormat(t,r);if(this.shouldTryNationalPrefixFormattingRule(t,{international:r,nationalPrefix:i})){var m=c.replace(v._,t.nationalPrefixFormattingRule());if((0,p.Ay)(t.nationalPrefixFormattingRule())===(i||"")+(0,p.Ay)("$1")&&(c=m,f=!0,i))for(var d=i.length;d>0;)c=c.replace(/\d/,h),d--}var y=l.replace(new RegExp(o),c).replace(new RegExp("9","g"),h);return f||(a?y=g(h,a.length)+" "+y:i&&(y=g(h,i.length)+this.getSeparatorAfterNationalPrefix(t)+y)),r&&(y=(0,B.A)(y)),y}}},{key:"formatNextNationalNumberDigits",value:function(t){var e=function(t,e,n){for(var r,i=f(n.split(""));!(r=i()).done;){var a=r.value;if(t.slice(e+1).search(m)<0)return;e=t.search(m),t=t.replace(m,a)}return[t,e]}(this.populatedNationalNumberTemplate,this.populatedNationalNumberTemplatePosition,t);if(e)return this.populatedNationalNumberTemplate=e[0],this.populatedNationalNumberTemplatePosition=e[1],d(this.populatedNationalNumberTemplate,this.populatedNationalNumberTemplatePosition+1);this.resetFormat()}},{key:"shouldTryNationalPrefixFormattingRule",value:function(t,e){var n=e.international,r=e.nationalPrefix;if(t.nationalPrefixFormattingRule()){var i=t.usesNationalPrefix();if(i&&r||!i&&!n)return!0}}}])&&U(t.prototype,e),n&&U(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}(),_=n(9713),Q=n(283),X=n(1459),q=n(6890);function z(t){return z="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},z(t)}function tt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,o,l=[],u=!0,s=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);u=!0);}catch(t){s=!0,i=t}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return et(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?et(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function et(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=3;if(e.appendDigits(t),r&&this.extractIddPrefix(e),this.isWaitingForCountryCallingCode(e)){if(!this.extractCountryCallingCode(e))return}else e.appendNationalSignificantNumberDigits(t);e.international||this.hasExtractedNationalSignificantNumber||this.extractNationalSignificantNumber(e.getNationalDigits(),function(t){return e.update(t)})}},{key:"isWaitingForCountryCallingCode",value:function(t){var e=t.international,n=t.callingCode;return e&&!n}},{key:"extractCountryCallingCode",value:function(t){var e=(0,_.A)("+"+t.getDigitsWithoutInternationalPrefix(),t.country,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata),n=e.countryCallingCode,r=e.number;if(n)return t.setCallingCode(n),t.update({nationalSignificantNumber:r}),!0}},{key:"reset",value:function(t){if(t){this.hasSelectedNumberingPlan=!0;var e=t._nationalPrefixForParsing();this.couldPossiblyExtractAnotherNationalSignificantNumber=e&&ut.test(e)}else this.hasSelectedNumberingPlan=void 0,this.couldPossiblyExtractAnotherNationalSignificantNumber=void 0}},{key:"extractNationalSignificantNumber",value:function(t,e){if(this.hasSelectedNumberingPlan){var n=(0,X.A)(t,this.metadata),r=n.nationalPrefix,i=n.nationalNumber,a=n.carrierCode;if(i!==t)return this.onExtractedNationalNumber(r,a,i,t,e),!0}}},{key:"extractAnotherNationalSignificantNumber",value:function(t,e,n){if(!this.hasExtractedNationalSignificantNumber)return this.extractNationalSignificantNumber(t,n);if(this.couldPossiblyExtractAnotherNationalSignificantNumber){var r=(0,X.A)(t,this.metadata),i=r.nationalPrefix,a=r.nationalNumber,o=r.carrierCode;if(a!==e)return this.onExtractedNationalNumber(i,o,a,t,n),!0}}},{key:"onExtractedNationalNumber",value:function(t,e,n,r,i){var a,o=!1,l=r.lastIndexOf(n);if(l<0||l!==r.length-n.length)o=!0;else{var u=r.slice(0,l);u&&u!==t&&(a=u)}i({nationalPrefix:t,carrierCode:e,nationalSignificantNumber:n,nationalSignificantNumberIsModified:o,prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix:a}),this.hasExtractedNationalSignificantNumber=!0,this.onNationalSignificantNumberChange()}},{key:"reExtractNationalSignificantNumber",value:function(t){return!!this.extractAnotherNationalSignificantNumber(t.getNationalDigits(),t.nationalSignificantNumber,function(e){return t.update(e)})||(this.extractIddPrefix(t)||this.fixMissingPlus(t)?(this.extractCallingCodeAndNationalSignificantNumber(t),!0):void 0)}},{key:"extractIddPrefix",value:function(t){var e=t.international,n=t.IDDPrefix,r=t.digits;if(t.nationalSignificantNumber,!e&&!n){var i=(0,q.A)(r,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata);return void 0!==i&&i!==r?(t.update({IDDPrefix:r.slice(0,r.length-i.length)}),this.startInternationalNumber(t,{country:void 0,callingCode:void 0}),!0):void 0}}},{key:"fixMissingPlus",value:function(t){if(!t.international){var e=(0,Q.A)(t.digits,t.country,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata).countryCallingCode;if(e)return t.update({missingPlus:!0}),this.startInternationalNumber(t,{country:t.country,callingCode:e}),!0}}},{key:"startInternationalNumber",value:function(t,e){var n=e.country,r=e.callingCode;t.startInternationalNumber(n,r),t.nationalSignificantNumber&&(t.resetNationalSignificantNumber(),this.onNationalSignificantNumberChange(),this.hasExtractedNationalSignificantNumber=void 0)}},{key:"extractCallingCodeAndNationalSignificantNumber",value:function(t){this.extractCountryCallingCode(t)&&this.extractNationalSignificantNumber(t.getNationalDigits(),function(e){return t.update(e)})}}])&&nt(t.prototype,e),n&&nt(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();var ft=n(9495),ct=n(6111),ht=n(284);function mt(t){return mt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},mt(t)}function gt(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,o,l=[],u=!0,s=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);u=!0);}catch(t){s=!0,i=t}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return dt(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?dt(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function dt(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1}},{key:"determineTheCountry",value:function(){this.state.setCountry((0,ft.A)(this.isInternational()?this.state.callingCode:this.defaultCallingCode,{nationalNumber:this.state.nationalSignificantNumber,metadata:this.metadata}))}},{key:"getNumberValue",value:function(){var t=this.state,e=t.digits,n=t.callingCode,r=t.country,i=t.nationalSignificantNumber;if(e)return this.isInternational()?n?"+"+n+i:"+"+e:r||n?"+"+(r?this.metadata.countryCallingCode():n)+i:void 0}},{key:"getNumber",value:function(){var t=this.state,e=t.nationalSignificantNumber,n=t.carrierCode,r=t.callingCode,o=this._getCountry();if(e&&(o||r)){if(o&&o===this.defaultCountry){var l=new i.Ay(this.metadata.metadata);l.selectNumberingPlan(o);var u=l.numberingPlan.callingCode(),s=this.metadata.getCountryCodesForCallingCode(u);if(s.length>1){var f=(0,ct.A)(e,{countries:s,metadata:this.metadata.metadata});f&&(o=f)}}var c=new a.A(o||r,e,this.metadata.metadata);return n&&(c.carrierCode=n),c}}},{key:"isPossible",value:function(){var t=this.getNumber();return!!t&&t.isPossible()}},{key:"isValid",value:function(){var t=this.getNumber();return!!t&&t.isValid()}},{key:"getNationalNumber",value:function(){return this.state.nationalSignificantNumber}},{key:"getChars",value:function(){return(this.state.international?"+":"")+this.state.digits}},{key:"getTemplate",value:function(){return this.formatter.getTemplate(this.state)||this.getNonFormattedTemplate()||""}}])&&yt(t.prototype,e),n&&yt(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function bt(t){return vt.call(this,t,r.A)}bt.prototype=Object.create(vt.prototype,{}),bt.prototype.constructor=bt},6187:function(t,e,n){n.d(e,{a:function(){return o}});var r=n(5693),i=n(96);function a(t,e,n){if(e[t])return new i.A(t,e[t],n)}function o(){return(0,r.A)(a,arguments)}}}]); +"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[330],{4701:function(t,e){e.A={AC:"40123",AD:"312345",AE:"501234567",AF:"701234567",AG:"2684641234",AI:"2642351234",AL:"672123456",AM:"77123456",AO:"923123456",AR:"91123456789",AS:"6847331234",AT:"664123456",AU:"412345678",AW:"5601234",AX:"412345678",AZ:"401234567",BA:"61123456",BB:"2462501234",BD:"1812345678",BE:"450001234",BF:"70123456",BG:"43012345",BH:"36001234",BI:"79561234",BJ:"0195123456",BL:"690001234",BM:"4413701234",BN:"7123456",BO:"71234567",BQ:"3181234",BR:"11961234567",BS:"2423591234",BT:"17123456",BW:"71123456",BY:"294911911",BZ:"6221234",CA:"5062345678",CC:"412345678",CD:"991234567",CF:"70012345",CG:"061234567",CH:"781234567",CI:"0123456789",CK:"71234",CL:"221234567",CM:"671234567",CN:"13123456789",CO:"3211234567",CR:"83123456",CU:"51234567",CV:"9911234",CW:"95181234",CX:"412345678",CY:"96123456",CZ:"601123456",DE:"15123456789",DJ:"77831001",DK:"34412345",DM:"7672251234",DO:"8092345678",DZ:"551234567",EC:"991234567",EE:"51234567",EG:"1001234567",EH:"650123456",ER:"7123456",ES:"612345678",ET:"911234567",FI:"412345678",FJ:"7012345",FK:"51234",FM:"3501234",FO:"211234",FR:"612345678",GA:"06031234",GB:"7400123456",GD:"4734031234",GE:"555123456",GF:"694201234",GG:"7781123456",GH:"231234567",GI:"57123456",GL:"221234",GM:"3012345",GN:"601123456",GP:"690001234",GQ:"222123456",GR:"6912345678",GT:"51234567",GU:"6713001234",GW:"955012345",GY:"6091234",HK:"51234567",HN:"91234567",HR:"921234567",HT:"34101234",HU:"201234567",ID:"812345678",IE:"850123456",IL:"502345678",IM:"7924123456",IN:"8123456789",IO:"3801234",IQ:"7912345678",IR:"9123456789",IS:"6111234",IT:"3123456789",JE:"7797712345",JM:"8762101234",JO:"790123456",JP:"9012345678",KE:"712123456",KG:"700123456",KH:"91234567",KI:"72001234",KM:"3212345",KN:"8697652917",KP:"1921234567",KR:"1020000000",KW:"50012345",KY:"3453231234",KZ:"7710009998",LA:"2023123456",LB:"71123456",LC:"7582845678",LI:"660234567",LK:"712345678",LR:"770123456",LS:"50123456",LT:"61234567",LU:"628123456",LV:"21234567",LY:"912345678",MA:"650123456",MC:"612345678",MD:"62112345",ME:"60123456",MF:"690001234",MG:"321234567",MH:"2351234",MK:"72345678",ML:"65012345",MM:"92123456",MN:"88123456",MO:"66123456",MP:"6702345678",MQ:"696201234",MR:"22123456",MS:"6644923456",MT:"96961234",MU:"52512345",MV:"7712345",MW:"991234567",MX:"2221234567",MY:"123456789",MZ:"821234567",NA:"811234567",NC:"751234",NE:"93123456",NF:"381234",NG:"8021234567",NI:"81234567",NL:"612345678",NO:"40612345",NP:"9841234567",NR:"5551234",NU:"8884012",NZ:"211234567",OM:"92123456",PA:"61234567",PE:"912345678",PF:"87123456",PG:"70123456",PH:"9051234567",PK:"3012345678",PL:"512345678",PM:"551234",PR:"7872345678",PS:"599123456",PT:"912345678",PW:"6201234",PY:"961456789",QA:"33123456",RE:"692123456",RO:"712034567",RS:"601234567",RU:"9123456789",RW:"720123456",SA:"512345678",SB:"7421234",SC:"2510123",SD:"911231234",SE:"701234567",SG:"81234567",SH:"51234",SI:"31234567",SJ:"41234567",SK:"912123456",SL:"25123456",SM:"66661212",SN:"701234567",SO:"71123456",SR:"7412345",SS:"977123456",ST:"9812345",SV:"70123456",SX:"7215205678",SY:"944567890",SZ:"76123456",TA:"8999",TC:"6492311234",TD:"63012345",TG:"90112345",TH:"812345678",TJ:"917123456",TK:"7290",TL:"77212345",TM:"66123456",TN:"20123456",TO:"7715123",TR:"5012345678",TT:"8682911234",TV:"901234",TW:"912345678",TZ:"621234567",UA:"501234567",UG:"712345678",US:"2015550123",UY:"94231234",UZ:"912345678",VA:"3123456789",VC:"7844301234",VE:"4121234567",VG:"2843001234",VI:"3406421234",VN:"912345678",VU:"5912345",WF:"821234",WS:"7212345",XK:"43201234",YE:"712345678",YT:"639012345",ZA:"711234567",ZM:"955123456",ZW:"712345678"}},4724:function(t,e,n){n.d(e,{Q:function(){return dt}});var r=n(1211),i=n(140),a=n(8687),o=n(1786);function l(t){return l="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},l(t)}function u(t,e){for(var n=0;nt.length)&&(e=t.length);for(var n=0,r=Array(e);n1;)1&e&&(n+=t),e>>=1,t+=t;return n+t}function d(t,e){return")"===t[e]&&e++,function(t){for(var e=[],n=0;n=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function I(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1&&void 0!==arguments[1]?arguments[1]:{}).allowOverflow;if(!t)throw new Error("String is required");var n=M(t.split(""),this.matchTree,!0);if(n&&n.match&&delete n.matchedChars,!n||!n.overflow||e)return n}}],e&&E(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function M(t,e,n){if("string"==typeof e){var r=t.join("");return 0===e.indexOf(r)?t.length===e.length?{match:!0,matchedChars:t}:{partialMatch:!0}:0===r.indexOf(e)?n&&t.length>e.length?{overflow:!0}:{match:!0,matchedChars:t.slice(0,e.length)}:void 0}if(Array.isArray(e)){for(var i=t.slice(),a=0;a=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function L(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=0)){var n=this.getTemplateForFormat(t,e);return n?(this.setNationalNumberTemplate(n,e),!0):void 0}}},{key:"getSeparatorAfterNationalPrefix",value:function(t){return this.isNANP||t&&t.nationalPrefixFormattingRule()&&V.test(t.nationalPrefixFormattingRule())?" ":""}},{key:"getInternationalPrefixBeforeCountryCallingCode",value:function(t,e){var n=t.IDDPrefix,r=t.missingPlus;return n?e&&!1===e.spacing?n:n+" ":r?"":"+"}},{key:"getTemplate",value:function(t){if(this.template){for(var e=-1,n=0,r=t.international?this.getInternationalPrefixBeforeCountryCallingCode(t,{spacing:!1}):"";nl.length)){var u=new RegExp("^"+o+"$"),s=n.replace(/\d/g,"9");u.test(s)&&(l=s);var f,c=this.getFormatFormat(t,r);if(this.shouldTryNationalPrefixFormattingRule(t,{international:r,nationalPrefix:i})){var m=c.replace(p._,t.nationalPrefixFormattingRule());if((0,y.Ay)(t.nationalPrefixFormattingRule())===(i||"")+(0,y.Ay)("$1")&&(c=m,f=!0,i))for(var d=i.length;d>0;)c=c.replace(/\d/,h),d--}var v=l.replace(new RegExp(o),c).replace(new RegExp("9","g"),h);return f||(a?v=g(h,a.length)+" "+v:i&&(v=g(h,i.length)+this.getSeparatorAfterNationalPrefix(t)+v)),r&&(v=(0,j.A)(v)),v}}},{key:"formatNextNationalNumberDigits",value:function(t){var e=function(t,e,n){for(var r,i=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return c(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(n.split(""));!(r=i()).done;){var a=r.value;if(t.slice(e+1).search(m)<0)return;e=t.search(m),t=t.replace(m,a)}return[t,e]}(this.populatedNationalNumberTemplate,this.populatedNationalNumberTemplatePosition,t);if(e)return this.populatedNationalNumberTemplate=e[0],this.populatedNationalNumberTemplatePosition=e[1],d(this.populatedNationalNumberTemplate,this.populatedNationalNumberTemplatePosition+1);this.resetFormat()}},{key:"shouldTryNationalPrefixFormattingRule",value:function(t,e){var n=e.international,r=e.nationalPrefix;if(t.nationalPrefixFormattingRule()){var i=t.usesNationalPrefix();if(i&&r||!i&&!n)return!0}}}])&&U(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}(),$=n(9713),_=n(283),Y=n(1459),J=n(6890);function Q(t){return Q="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Q(t)}function X(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,a,o,l=[],u=!0,s=!1;try{if(a=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;u=!1}else for(;!(u=(r=a.call(n)).done)&&(l.push(r.value),l.length!==e);u=!0);}catch(t){s=!0,i=t}finally{try{if(!u&&null!=n.return&&(o=n.return(),Object(o)!==o))return}finally{if(s)throw i}}return l}}(t,e)||function(t,e){if(t){if("string"==typeof t)return q(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?q(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function q(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=3;if(e.appendDigits(t),r&&this.extractIddPrefix(e),this.isWaitingForCountryCallingCode(e)){if(!this.extractCountryCallingCode(e))return}else e.appendNationalSignificantNumberDigits(t);e.international||this.hasExtractedNationalSignificantNumber||this.extractNationalSignificantNumber(e.getNationalDigits(),function(t){return e.update(t)})}},{key:"isWaitingForCountryCallingCode",value:function(t){var e=t.international,n=t.callingCode;return e&&!n}},{key:"extractCountryCallingCode",value:function(t){var e=(0,$.A)("+"+t.getDigitsWithoutInternationalPrefix(),t.country,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata),n=e.countryCallingCode,r=e.number;if(n)return t.setCallingCode(n),t.update({nationalSignificantNumber:r}),!0}},{key:"reset",value:function(t){if(t){this.hasSelectedNumberingPlan=!0;var e=t._nationalPrefixForParsing();this.couldPossiblyExtractAnotherNationalSignificantNumber=e&&at.test(e)}else this.hasSelectedNumberingPlan=void 0,this.couldPossiblyExtractAnotherNationalSignificantNumber=void 0}},{key:"extractNationalSignificantNumber",value:function(t,e){if(this.hasSelectedNumberingPlan){var n=(0,Y.A)(t,this.metadata),r=n.nationalPrefix,i=n.nationalNumber,a=n.carrierCode;if(i!==t)return this.onExtractedNationalNumber(r,a,i,t,e),!0}}},{key:"extractAnotherNationalSignificantNumber",value:function(t,e,n){if(!this.hasExtractedNationalSignificantNumber)return this.extractNationalSignificantNumber(t,n);if(this.couldPossiblyExtractAnotherNationalSignificantNumber){var r=(0,Y.A)(t,this.metadata),i=r.nationalPrefix,a=r.nationalNumber,o=r.carrierCode;if(a!==e)return this.onExtractedNationalNumber(i,o,a,t,n),!0}}},{key:"onExtractedNationalNumber",value:function(t,e,n,r,i){var a,o=!1,l=r.lastIndexOf(n);if(l<0||l!==r.length-n.length)o=!0;else{var u=r.slice(0,l);u&&u!==t&&(a=u)}i({nationalPrefix:t,carrierCode:e,nationalSignificantNumber:n,nationalSignificantNumberIsModified:o,prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix:a}),this.hasExtractedNationalSignificantNumber=!0,this.onNationalSignificantNumberChange()}},{key:"reExtractNationalSignificantNumber",value:function(t){return!!this.extractAnotherNationalSignificantNumber(t.getNationalDigits(),t.nationalSignificantNumber,function(e){return t.update(e)})||(this.extractIddPrefix(t)||this.fixMissingPlus(t)?(this.extractCallingCodeAndNationalSignificantNumber(t),!0):void 0)}},{key:"extractIddPrefix",value:function(t){var e=t.international,n=t.IDDPrefix,r=t.digits;if(t.nationalSignificantNumber,!e&&!n){var i=(0,J.A)(r,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata);return void 0!==i&&i!==r?(t.update({IDDPrefix:r.slice(0,r.length-i.length)}),this.startInternationalNumber(t,{country:void 0,callingCode:void 0}),!0):void 0}}},{key:"fixMissingPlus",value:function(t){if(!t.international){var e=(0,_.A)(t.digits,t.country,this.defaultCountry,this.defaultCallingCode,this.metadata.metadata).countryCallingCode;if(e)return t.update({missingPlus:!0}),this.startInternationalNumber(t,{country:t.country,callingCode:e}),!0}}},{key:"startInternationalNumber",value:function(t,e){var n=e.country,r=e.callingCode;t.startInternationalNumber(n,r),t.nationalSignificantNumber&&(t.resetNationalSignificantNumber(),this.onNationalSignificantNumberChange(),this.hasExtractedNationalSignificantNumber=void 0)}},{key:"extractCallingCodeAndNationalSignificantNumber",value:function(t){this.extractCountryCallingCode(t)&&this.extractNationalSignificantNumber(t.getNationalDigits(),function(e){return t.update(e)})}}])&&z(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}(),lt=n(9495),ut=n(6111),st=n(284);function ft(t){return ft="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ft(t)}function ct(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n1}},{key:"determineTheCountry",value:function(){var t=(0,lt.A)(this.isInternational()?this.state.callingCode:this.defaultCallingCode,{nationalNumber:this.state.nationalSignificantNumber,metadata:this.metadata});t!==this.state.country&&(this.state.setCountry(t),t&&this.metadata.selectNumberingPlan(t))}},{key:"getNumberValue",value:function(){var t=this.state,e=t.digits,n=t.callingCode,r=t.country,i=t.nationalSignificantNumber;if(e)return this.isInternational()?n?"+"+n+i:"+"+e:r||n?"+"+(r?this.metadata.countryCallingCode():n)+i:void 0}},{key:"getNumber",value:function(){var t=this.state,e=t.nationalSignificantNumber,n=t.carrierCode,r=t.callingCode;if(e){var i=this._getCountry();if(i||r){if(i&&i===this.defaultCountry){var o=function(t,e,n){var r=n.getCountryCodesForCallingCode(t);if(r.length>1)return(0,ut.A)(e,r,n.metadata)}(this.metadata.numberingPlan.callingCode(),e,this.metadata);o&&(i=o)}var l=new a.A(i||r,e,this.metadata.metadata);return n&&(l.carrierCode=n),l}}}},{key:"isPossible",value:function(){var t=this.getNumber();return!!t&&t.isPossible()}},{key:"isValid",value:function(){var t=this.getNumber();return!!t&&t.isValid()}},{key:"validateLength",value:function(){var t=this.state,e=t.digits,n=t.nationalSignificantNumber;if(!e)return"NOT_A_NUMBER";if(!this.metadata.numberingPlan)return"INVALID_COUNTRY";if(!n)return"TOO_SHORT";var r=(0,o.A)(n,void 0,this.metadata);return"IS_POSSIBLE"!==r?r:void 0}},{key:"getNationalNumber",value:function(){return this.state.nationalSignificantNumber}},{key:"getChars",value:function(){return(this.state.international?"+":"")+this.state.digits}},{key:"getTemplate",value:function(){return this.formatter.getTemplate(this.state)||this.getNonFormattedTemplate()||""}}])&&ht(t.prototype,e),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e}();function dt(t){return gt.call(this,t,r.A)}dt.prototype=Object.create(gt.prototype,{}),dt.prototype.constructor=dt},6187:function(t,e,n){n.d(e,{a:function(){return o}});var r=n(5693),i=n(8687);function a(t,e,n){if(e[t])return new i.A(t,e[t],n)}function o(){return(0,r.A)(a,arguments)}}}]); //# sourceMappingURL=330.prod.js.map \ No newline at end of file diff --git a/umd/330.prod.js.map b/umd/330.prod.js.map index 09a10b6e..9be0c3ac 100644 --- a/umd/330.prod.js.map +++ b/umd/330.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"330.prod.js","mappings":"iHAGA,KAAgB,GAAK,QAAQ,GAAK,SAAS,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,cAAc,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,aAAa,GAAK,UAAU,GAAK,WAAW,GAAK,UAAU,GAAK,cAAc,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,UAAU,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,QAAQ,GAAK,YAAY,GAAK,YAAY,GAAK,cAAc,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,cAAc,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,QAAQ,GAAK,UAAU,GAAK,SAAS,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,SAAS,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,aAAa,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,SAAS,GAAK,WAAW,GAAK,SAAS,GAAK,aAAa,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,aAAa,GAAK,UAAU,GAAK,UAAU,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,SAAS,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,YAAY,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,YAAY,GAAK,YAAY,GAAK,UAAU,GAAK,UAAU,GAAK,YAAY,GAAK,YAAY,GAAK,WAAW,GAAK,QAAQ,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,WAAW,GAAK,UAAU,GAAK,YAAY,GAAK,UAAU,GAAK,WAAW,GAAK,aAAa,GAAK,YAAY,GAAK,WAAW,GAAK,OAAO,GAAK,aAAa,GAAK,WAAW,GAAK,WAAW,GAAK,YAAY,GAAK,YAAY,GAAK,OAAO,GAAK,WAAW,GAAK,WAAW,GAAK,WAAW,GAAK,UAAU,GAAK,aAAa,GAAK,aAAa,GAAK,SAAS,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,YAAY,GAAK,aAAa,GAAK,WAAW,GAAK,YAAY,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,aAAa,GAAK,YAAY,GAAK,UAAU,GAAK,SAAS,GAAK,UAA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","sources":["webpack://tinode-webapp/./node_modules/libphonenumber-js/examples.mobile.json.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouType.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/AsYouType.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/getExampleNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/getExampleNumber.js"],"sourcesContent":["// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"AC\":\"40123\",\"AD\":\"312345\",\"AE\":\"501234567\",\"AF\":\"701234567\",\"AG\":\"2684641234\",\"AI\":\"2642351234\",\"AL\":\"672123456\",\"AM\":\"77123456\",\"AO\":\"923123456\",\"AR\":\"91123456789\",\"AS\":\"6847331234\",\"AT\":\"664123456\",\"AU\":\"412345678\",\"AW\":\"5601234\",\"AX\":\"412345678\",\"AZ\":\"401234567\",\"BA\":\"61123456\",\"BB\":\"2462501234\",\"BD\":\"1812345678\",\"BE\":\"470123456\",\"BF\":\"70123456\",\"BG\":\"43012345\",\"BH\":\"36001234\",\"BI\":\"79561234\",\"BJ\":\"0195123456\",\"BL\":\"690001234\",\"BM\":\"4413701234\",\"BN\":\"7123456\",\"BO\":\"71234567\",\"BQ\":\"3181234\",\"BR\":\"11961234567\",\"BS\":\"2423591234\",\"BT\":\"17123456\",\"BW\":\"71123456\",\"BY\":\"294911911\",\"BZ\":\"6221234\",\"CA\":\"5062345678\",\"CC\":\"412345678\",\"CD\":\"991234567\",\"CF\":\"70012345\",\"CG\":\"061234567\",\"CH\":\"781234567\",\"CI\":\"0123456789\",\"CK\":\"71234\",\"CL\":\"221234567\",\"CM\":\"671234567\",\"CN\":\"13123456789\",\"CO\":\"3211234567\",\"CR\":\"83123456\",\"CU\":\"51234567\",\"CV\":\"9911234\",\"CW\":\"95181234\",\"CX\":\"412345678\",\"CY\":\"96123456\",\"CZ\":\"601123456\",\"DE\":\"15123456789\",\"DJ\":\"77831001\",\"DK\":\"34412345\",\"DM\":\"7672251234\",\"DO\":\"8092345678\",\"DZ\":\"551234567\",\"EC\":\"991234567\",\"EE\":\"51234567\",\"EG\":\"1001234567\",\"EH\":\"650123456\",\"ER\":\"7123456\",\"ES\":\"612345678\",\"ET\":\"911234567\",\"FI\":\"412345678\",\"FJ\":\"7012345\",\"FK\":\"51234\",\"FM\":\"3501234\",\"FO\":\"211234\",\"FR\":\"612345678\",\"GA\":\"06031234\",\"GB\":\"7400123456\",\"GD\":\"4734031234\",\"GE\":\"555123456\",\"GF\":\"694201234\",\"GG\":\"7781123456\",\"GH\":\"231234567\",\"GI\":\"57123456\",\"GL\":\"221234\",\"GM\":\"3012345\",\"GN\":\"601123456\",\"GP\":\"690001234\",\"GQ\":\"222123456\",\"GR\":\"6912345678\",\"GT\":\"51234567\",\"GU\":\"6713001234\",\"GW\":\"955012345\",\"GY\":\"6091234\",\"HK\":\"51234567\",\"HN\":\"91234567\",\"HR\":\"921234567\",\"HT\":\"34101234\",\"HU\":\"201234567\",\"ID\":\"812345678\",\"IE\":\"850123456\",\"IL\":\"502345678\",\"IM\":\"7924123456\",\"IN\":\"8123456789\",\"IO\":\"3801234\",\"IQ\":\"7912345678\",\"IR\":\"9123456789\",\"IS\":\"6111234\",\"IT\":\"3123456789\",\"JE\":\"7797712345\",\"JM\":\"8762101234\",\"JO\":\"790123456\",\"JP\":\"9012345678\",\"KE\":\"712123456\",\"KG\":\"700123456\",\"KH\":\"91234567\",\"KI\":\"72001234\",\"KM\":\"3212345\",\"KN\":\"8697652917\",\"KP\":\"1921234567\",\"KR\":\"1020000000\",\"KW\":\"50012345\",\"KY\":\"3453231234\",\"KZ\":\"7710009998\",\"LA\":\"2023123456\",\"LB\":\"71123456\",\"LC\":\"7582845678\",\"LI\":\"660234567\",\"LK\":\"712345678\",\"LR\":\"770123456\",\"LS\":\"50123456\",\"LT\":\"61234567\",\"LU\":\"628123456\",\"LV\":\"21234567\",\"LY\":\"912345678\",\"MA\":\"650123456\",\"MC\":\"612345678\",\"MD\":\"62112345\",\"ME\":\"60123456\",\"MF\":\"690001234\",\"MG\":\"321234567\",\"MH\":\"2351234\",\"MK\":\"72345678\",\"ML\":\"65012345\",\"MM\":\"92123456\",\"MN\":\"88123456\",\"MO\":\"66123456\",\"MP\":\"6702345678\",\"MQ\":\"696201234\",\"MR\":\"22123456\",\"MS\":\"6644923456\",\"MT\":\"96961234\",\"MU\":\"52512345\",\"MV\":\"7712345\",\"MW\":\"991234567\",\"MX\":\"2221234567\",\"MY\":\"123456789\",\"MZ\":\"821234567\",\"NA\":\"811234567\",\"NC\":\"751234\",\"NE\":\"93123456\",\"NF\":\"381234\",\"NG\":\"8021234567\",\"NI\":\"81234567\",\"NL\":\"612345678\",\"NO\":\"40612345\",\"NP\":\"9841234567\",\"NR\":\"5551234\",\"NU\":\"8884012\",\"NZ\":\"211234567\",\"OM\":\"92123456\",\"PA\":\"61234567\",\"PE\":\"912345678\",\"PF\":\"87123456\",\"PG\":\"70123456\",\"PH\":\"9051234567\",\"PK\":\"3012345678\",\"PL\":\"512345678\",\"PM\":\"551234\",\"PR\":\"7872345678\",\"PS\":\"599123456\",\"PT\":\"912345678\",\"PW\":\"6201234\",\"PY\":\"961456789\",\"QA\":\"33123456\",\"RE\":\"692123456\",\"RO\":\"712034567\",\"RS\":\"601234567\",\"RU\":\"9123456789\",\"RW\":\"720123456\",\"SA\":\"512345678\",\"SB\":\"7421234\",\"SC\":\"2510123\",\"SD\":\"911231234\",\"SE\":\"701234567\",\"SG\":\"81234567\",\"SH\":\"51234\",\"SI\":\"31234567\",\"SJ\":\"41234567\",\"SK\":\"912123456\",\"SL\":\"25123456\",\"SM\":\"66661212\",\"SN\":\"701234567\",\"SO\":\"71123456\",\"SR\":\"7412345\",\"SS\":\"977123456\",\"ST\":\"9812345\",\"SV\":\"70123456\",\"SX\":\"7215205678\",\"SY\":\"944567890\",\"SZ\":\"76123456\",\"TA\":\"8999\",\"TC\":\"6492311234\",\"TD\":\"63012345\",\"TG\":\"90112345\",\"TH\":\"812345678\",\"TJ\":\"917123456\",\"TK\":\"7290\",\"TL\":\"77212345\",\"TM\":\"66123456\",\"TN\":\"20123456\",\"TO\":\"7715123\",\"TR\":\"5012345678\",\"TT\":\"8682911234\",\"TV\":\"901234\",\"TW\":\"912345678\",\"TZ\":\"621234567\",\"UA\":\"501234567\",\"UG\":\"712345678\",\"US\":\"2015550123\",\"UY\":\"94231234\",\"UZ\":\"912345678\",\"VA\":\"3123456789\",\"VC\":\"7844301234\",\"VE\":\"4121234567\",\"VG\":\"2843001234\",\"VI\":\"3406421234\",\"VN\":\"912345678\",\"VU\":\"5912345\",\"WF\":\"821234\",\"WS\":\"7212345\",\"XK\":\"43201234\",\"YE\":\"712345678\",\"YT\":\"639012345\",\"ZA\":\"711234567\",\"ZM\":\"955123456\",\"ZW\":\"712345678\"}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// * `country?: string` — The exact country of the phone number, if it could be determined.\n// When inputting a phone number in \"international\" format, it will derive the `country` from \"country calling code\" and the phone number digits.\n// When inputting a phone number in \"national\" format, it will derive the `country` from `defaultCountry` that was specified when creating the `AsYouType` formatter.\n// Sidenote: If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` flag was `true`, then for \"non-geographic phone numbers\" `state.country` would've been \"001\".\n// * `callingCode?: string` — \"Country calling code\" that has been extracted from the input phone number.\n// When inputting a phone number in \"international\" format, it will extract the \"country calling code\" from the digits that follow the \"+\" character.\n// When inputting a phone number in \"national\" format, `callingCode` will be `undefined`.\n// Sidenote: `state.callingCode` is therefore independent from `state.country` and there could be situations when `state.country` is defined by `state.callingCode` is not — that would be when inputting a phone number not in \"international\" format.\n// * `digits: string` — Phone number digits that have been input so far, including the \"+\" character, if present. In case of inputting non-arabic digits, those will be converted to arabic ones.\n// * `international: boolean` — Whether the phone number is being input in \"international\" format, i.e. with a \"+\" character.\n// * `missingPlus: boolean` — Whether it's a phone number in \"international\" format that is missing the leading \"+\" character for some reason — apparently, Google thinks that it's a common mistake when inputting a phone number.\n// * `IDDPrefix?: string` — An \"IDD prefix\", when the phone number is being input in an \"out-of-country dialing\" format. https://wikitravel.org/en/International_dialling_prefix\n// * `carrierCode?: string` — A \"carrier code\", if the phone number contains it. Normally, those can only be present in Colombia or Brazil, and only when calling from mobile phones to fixed-line numbers.\n// * `nationalPrefix?: string` — \"National prefix\", if present in the phone number input.\n// * `nationalSignificantNumber?: string` — National (significant) number digits that have been input so far.\n// * `nationalSignificantNumberIsModified: boolean` — Tells if the parsed national (significant) number is present as-is in the input string. For example, when inputting \"0343515551212999\" Argentinian mobile number, the parsed national (significant) number is \"93435551212999\". There, one can see how it stripped \"0\" national prefix and prepended a \"9\", because that's how it is instructed to do in Argentina's metadata. So in the described example, the parsed national (significant) number is not present as-is in the input string. Instead, it's \"modified\" in the input string. https://gitlab.com/caamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n// * `prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix?: string` — In some countries, a phone number could have a prefix that is not a \"national prefix\" but rather some other type of \"utility\" prefix.\n// For example, when calling within Australia, one could prepend `1831` prefix to hide caller's phone number.\n// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n _classCallCheck(this, AsYouTypeState);\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n return _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.missingPlus = false;\n this.IDDPrefix = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberIsModified = false;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true;\n // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n\n /**\r\n * Returns the part of `this.digits` that corresponds to the national number.\r\n * Basically, all digits that have been input by the user, except for the\r\n * international prefix and the country calling code part\r\n * (if the number is an international one).\r\n * @return {string}\r\n */\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n return this.digits;\n }\n }]);\n}();\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER);\n\n// Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\nexport function countOccurences(symbol, string) {\n var count = 0;\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n if (character === symbol) {\n count++;\n }\n }\n return count;\n}\n\n// Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n var result = '';\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n times >>= 1;\n string += string;\n }\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n cut_before++;\n }\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n i++;\n }\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value;\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, country, metadata) {\n return checkNumberLength(nationalSignificantNumber, country, metadata) === 'IS_POSSIBLE';\n}\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n // `format` has already been checked for `nationalPrefix` requirement.\n\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode;\n\n // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n if (formattedNumber) {\n return formattedNumber;\n }\n }\n\n // Format the number without using `national_prefix_formatting_rule`.\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n formattedNationalNumber = state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix + ' ' + formattedNationalNumber;\n }\n }\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n}\n\n// Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck(this, PatternParser);\n }\n return _createClass(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n\n /* istanbul ignore if */\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n if (instructions.length === 1) {\n return instructions[0];\n }\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n var match = pattern.match(OPERATOR);\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n if (before) {\n this.parsePattern(before);\n }\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n if (before) {\n this.parsePattern(before);\n }\n // The top-level is an implicit \"or\" group, if required.\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n this.startContext({\n oneOfSet: true\n });\n break;\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n}();\nexport { PatternParser as default };\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n i++;\n }\n return values;\n}\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp(\n// any of:\n'(' +\n// or operator\n'\\\\|' +\n// or\n'|' +\n// or group start\n'\\\\(\\\\?\\\\:' +\n// or\n'|' +\n// or group end\n'\\\\)' +\n// or\n'|' +\n// one-of set start\n'\\\\[' +\n// or\n'|' +\n// one-of set end\n'\\\\]' + ')');\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n this.matchTree = new PatternParser().parse(pattern);\n }\n return _createClass(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n if (!string) {\n throw new Error('String is required');\n }\n var result = _match(string.split(''), this.matchTree, true);\n if (result && result.match) {\n delete result.matchedChars;\n }\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n return result;\n }\n }]);\n}();\n/**\r\n * Matches `characters` against a pattern compiled into a `tree`.\r\n * @param {string[]} characters\r\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\r\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\r\n * @return {object} See the `*.d.ts` file for the description of the result object.\r\n */\nexport { PatternMatcher as default };\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n /* istanbul ignore next */\n return {\n partialMatch: true\n // matchedChars: characters\n };\n }\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n return;\n }\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n while (i < tree.length) {\n var subtree = tree[i];\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true\n // matchedChars: characters\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true\n // matchedChars: characters\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n i++;\n }\n // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n /* istanbul ignore if */\n if (last) {\n return {\n overflow: true\n };\n }\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n switch (tree.op) {\n case '|':\n var partialMatch;\n for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n var _result = _match(characters, branch, last);\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n if (partialMatch) {\n return {\n partialMatch: true\n // matchedChars: ...\n };\n }\n // Not even a partial match.\n return;\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n if (last) {\n return {\n overflow: true\n };\n }\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n }\n // No character matches.\n return;\n\n /* istanbul ignore next */\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js';\n\n// Used in phone number format template creation.\n// Could be any digit, I guess.\nvar DUMMY_DIGIT = '9';\n// I don't know why is it exactly `15`\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15;\n// Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH);\n\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/;\n\n// Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true;\n\n// A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n};\n\n// Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n};\n\n// A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' +\n// Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$');\n\n// This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\nvar MIN_LEADING_DIGITS_LENGTH = 3;\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var state = _ref.state,\n metadata = _ref.metadata;\n _classCallCheck(this, AsYouTypeFormatter);\n this.metadata = metadata;\n this.resetFormat();\n }\n return _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n\n /**\r\n * Formats an updated phone number.\r\n * @param {string} nextDigits — Additional phone number digits.\r\n * @param {object} state — `AsYouType` state.\r\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\r\n */\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this;\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n if (canFormatCompleteNumber(state.nationalSignificantNumber, state.country, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var _format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(state, _format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = _format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber;\n // With a new formatting template, the matched position\n // using the old template needs to be reset.\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n }\n // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n }\n\n // Formats the next phone number digits.\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat;\n\n // Choose a format from the list of matching ones.\n var newlyChosenFormat = this.chooseFormat(state);\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber;\n\n // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n });\n\n // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() &&\n // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n }\n // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length;\n\n // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n if (leadingDigitsPatternsCount === 0) {\n return true;\n }\n\n // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex];\n\n // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error) /* istanbul ignore next */{\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n }\n\n // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n var _loop = function _loop() {\n var format = _step2.value;\n // If this format is currently being used\n // and is still suitable, then stick to it.\n if (_this3.chosenFormat === format) {\n return 0; // break\n }\n // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n /* istanbul ignore if */\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return 1; // continue\n }\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return 1; // continue\n }\n _this3.chosenFormat = format;\n return 0; // break\n },\n _ret;\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n /* istanbul ignore next */\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n _ret = _loop();\n if (_ret === 0) break;\n if (_ret === 1) continue;\n }\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n }\n // Get formatting template for this phone number format\n var template = this.getTemplateForFormat(format, state);\n // If the national number entered is too long\n // for any phone number format, then abort.\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n }\n // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n }\n // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n if (missingPlus) {\n return '';\n }\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n }\n // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template;\n // With a new formatting template, the matched position\n // using the old template needs to be reset.\n this.populatedNationalNumberTemplatePosition = -1;\n // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n\n /**\r\n * Generates formatting template for a national phone number,\r\n * optionally containing a national prefix, for a format.\r\n * @param {Format} format\r\n * @param {string} nationalPrefix\r\n * @return {string}\r\n */\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _ref4.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix;\n var pattern = format.pattern();\n\n /* istanbul ignore else */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern\n // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\n // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n }\n\n // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0];\n\n // If the national number entered is too long\n // for any phone number format, then abort.\n if (nationalSignificantNumber.length > digits.length) {\n return;\n }\n\n // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT);\n\n // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate;\n\n // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule());\n // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n /* istanbul ignore else */\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true;\n // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n }\n\n // Generate formatting template for this phone number format.\n var template = digits\n // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat)\n // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER);\n\n // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n if (!nationalPrefixIncludedInTemplate) {\n if (prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1];\n\n // Return the formatted phone number so far.\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1);\n\n // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n}();\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$');\n\n// Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n _classCallCheck(this, AsYouTypeParser);\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n return _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n var digits = parseDigits(formattedDigits);\n // Checks for a special case: just a leading `+` has been entered.\n var justLeadingPlus;\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber(undefined, undefined);\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n if (digits) {\n this.inputDigits(digits, state);\n }\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n\n /**\r\n * Inputs \"next\" phone number digits.\r\n * @param {string} digits\r\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\r\n */\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3;\n\n // Append phone number digits.\n state.appendDigits(nextDigits);\n\n // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n }\n\n // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n }\n\n // Extracts a country calling code from a number\n // being entered in internatonal format.\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n\n /**\r\n * Extracts a national (significant) number from user input.\r\n * Google's library is different in that it only applies `national_prefix_for_parsing`\r\n * and doesn't apply `national_prefix_transform_rule` after that.\r\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\r\n * @return {boolean} [extracted]\r\n */\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n if (nationalNumber === nationalDigits) {\n return;\n }\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n\n /**\r\n * In Google's code this function is called \"attempt to extract longer NDD\".\r\n * \"Some national prefixes are a substring of others\", they say.\r\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\r\n */\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode;\n // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n /* istanbul ignore if */\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n // Tells if the parsed national (significant) number is present as-is in the input string.\n // For example, when inputting \"0343515551212999\" Argentinian mobile number,\n // the parsed national (significant) number is \"93435551212999\".\n // There, one can see how it stripped \"0\" national prefix and prepended a \"9\",\n // because that's how it is instructed to do in Argentina's metadata.\n // So in the described example, the parsed national (significant) number is not present\n // as-is in the input string. Instead, it's \"modified\" in the input string.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n var nationalSignificantNumberIsModified = false;\n\n // In some countries, a phone number could have a prefix that is not a \"national prefix\"\n // but rather some other type of \"utility\" prefix.\n // For example, when calling within Australia, one could prepend `1831` prefix to hide\n // caller's phone number.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n var prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix;\n\n // `nationalSignificantNumber` could be empty. In that case, `.lastIndexOf()` still works correctly.\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber);\n\n // If the parsed national (significant) number is the last substring of the `nationalDigits`,\n // then it means that it's present as-is in the input string.\n // In any other case, the parsed national (significant) number is \"modified\" in the input string.\n if (nationalSignificantNumberIndex < 0 || nationalSignificantNumberIndex !== nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberIsModified = true;\n } else {\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex);\n // When national (significant) number is equal to the `nationalDigits`,\n // this `onExtractedNationalNumber()` function simply doesn't get called.\n // This means that at this point, `prefixBeforeNationalNumber` is always non-empty.\n // Still, added this `if` check just to prevent potential silly bugs.\n // The `!prefixBeforeNationalNumber` case is not really testable\n // so this line is exluded from the code coverage.\n /* istanbul ignore if */\n if (prefixBeforeNationalNumber) {\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = prefixBeforeNationalNumber;\n }\n }\n }\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberIsModified: nationalSignificantNumberIsModified,\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix: prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix\n });\n // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n }\n // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n if (international || IDDPrefix) {\n return;\n }\n // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode;\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode);\n // If a national (significant) number has been extracted before, reset it.\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n}();\n/**\r\n * Extracts formatted phone number from text (if there's any).\r\n * @param {string} text\r\n * @return {string} [formattedPhoneNumber]\r\n */\nexport { AsYouTypeParser as default };\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n if (startsAt < 0) {\n return;\n }\n // Trim everything to the left of the phone number.\n text = text.slice(startsAt);\n // Trim the `+`.\n var hasPlus;\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n }\n // Trim everything to the right of the phone number.\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '');\n // Re-add the previously trimmed `+`.\n if (hasPlus) {\n text = '+' + text;\n }\n return text;\n}\n\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || '';\n // Trim a `+`.\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n return [extractedNumber];\n}\n\n/**\r\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\r\n * @param {string} text\r\n * @return {any[]}\r\n */\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1];\n // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar AsYouType = /*#__PURE__*/function () {\n /**\r\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\r\n * @param {Object} metadata\r\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n this.metadata = new Metadata(metadata);\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1];\n // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n return _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode;\n // Turns out `null` also has type \"object\". Weird.\n if (optionsOrDefaultCountry) {\n if (isObject(optionsOrDefaultCountry)) {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n return [defaultCountry, defaultCallingCode];\n }\n\n /**\r\n * Inputs \"next\" phone number characters.\r\n * @param {string} text\r\n * @return {string} Formatted phone number characters that have been input so far.\r\n */\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded();\n // Match the available formats by the currently available leading digits.\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n var formattedNationalNumber;\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded();\n // If it could, then re-try formatting the new national (significant) number.\n var nationalDigits = this.state.getNationalDigits();\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included a `.country` property on an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country, callingCode);\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n\n /**\r\n * Returns `true` if the phone number is being input in international format.\r\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\r\n * @return {boolean}\r\n */\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n\n /**\r\n * Returns the \"calling code\" part of the phone number when it's being input\r\n * in an international format.\r\n * If no valid calling code has been entered so far, returns `undefined`.\r\n * @return {string} [callingCode]\r\n */\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n }\n\n // A legacy alias.\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * Returns `undefined` if no phone number has been input yet.\r\n * @return {string} [country]\r\n */\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits;\n // Return `undefined` if no digits have been input yet.\n if (digits) {\n return this._getCountry();\n }\n }\n\n /**\r\n * Returns a two-letter country code of the phone number.\r\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\r\n * @return {string} [country]\r\n */\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (country === '001') {\n return;\n }\n }\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n }\n\n // Prepends `+CountryCode ` in case of an international phone number\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n var callingCode = this.state.callingCode;\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _this$state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix || nationalPrefix;\n if (prefix) {\n number = prefix + number;\n }\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberIsModified = this.state.nationalSignificantNumberIsModified;\n return this.getFullNumber(nationalSignificantNumberIsModified ? this.state.getNationalDigits() : this.getNonFormattedNationalNumberWithPrefix());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n }\n\n // Determines the exact country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n this.state.setCountry(getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n nationalNumber: this.state.nationalSignificantNumber,\n metadata: this.metadata\n }));\n }\n\n /**\r\n * Returns a E.164 phone number value for the user's input.\r\n *\r\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\r\n * it will return `\"+12223334444\"`.\r\n *\r\n * For international phone number input, it will also auto-correct\r\n * some minor errors such as using a national prefix when writing\r\n * an international phone number. For example, if the user inputs\r\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\r\n * `\"+447400000000\"` phone number value.\r\n *\r\n * Will return `undefined` if no digits have been input,\r\n * or when inputting a phone number in national format and no\r\n * default country or default \"country calling code\" have been set.\r\n *\r\n * @return {string} [value]\r\n */\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber;\n\n // Will return `undefined` if no digits have been input.\n if (!digits) {\n return;\n }\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n\n /**\r\n * Returns an instance of `PhoneNumber` class.\r\n * Will return `undefined` if no national (significant) number\r\n * digits have been entered so far, or if no `defaultCountry` has been\r\n * set and the user enters a phone number not in international format.\r\n */\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode;\n\n // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it return `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n var country = this._getCountry();\n if (!nationalSignificantNumber) {\n return;\n }\n\n // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `country` could be `\"AR\"` and `callingCode` could be `undefined`.\n // So `country` and `callingCode` are totally independent.\n\n if (!country && !callingCode) {\n return;\n }\n\n // By default, if `defaultCountry` parameter was passed when\n // creating `AsYouType` instance, `state.country` is gonna be\n // that `defaultCountry`, which doesn't entirely conform with\n // `parsePhoneNumber()`'s behavior where it attempts to determine\n // the country more precisely in cases when multiple countries\n // could correspond to the same `countryCallingCode`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n //\n // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n // then it should also behave accordingly in cases of `country` ambiguity.\n // That's how users of this library would expect it to behave anyway.\n //\n if (country) {\n if (country === this.defaultCountry) {\n // `state.country` and `state.callingCode` aren't required to be in sync.\n // For example, `state.country` could be `\"AR\"` and `state.callingCode` could be `undefined`.\n // So `state.country` and `state.callingCode` are totally independent.\n var metadata = new Metadata(this.metadata.metadata);\n metadata.selectNumberingPlan(country);\n var _callingCode = metadata.numberingPlan.callingCode();\n var ambiguousCountries = this.metadata.getCountryCodesForCallingCode(_callingCode);\n if (ambiguousCountries.length > 1) {\n var exactCountry = getCountryByNationalNumber(nationalSignificantNumber, {\n countries: ambiguousCountries,\n metadata: this.metadata.metadata\n });\n if (exactCountry) {\n country = exactCountry;\n }\n }\n }\n }\n var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n // Phone number extensions are not supported by \"As You Type\" formatter.\n return phoneNumber;\n }\n\n /**\r\n * Returns `true` if the phone number is \"possible\".\r\n * Is just a shortcut for `PhoneNumber.isPossible()`.\r\n * @return {boolean}\r\n */\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n if (!phoneNumber) {\n return false;\n }\n return phoneNumber.isPossible();\n }\n\n /**\r\n * Returns `true` if the phone number is \"valid\".\r\n * Is just a shortcut for `PhoneNumber.isValid()`.\r\n * @return {boolean}\r\n */\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n if (!phoneNumber) {\n return false;\n }\n return phoneNumber.isValid();\n }\n\n /**\r\n * @deprecated\r\n * This method is used in `react-phone-number-input/source/input-control.js`\r\n * in versions before `3.0.16`.\r\n */\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n\n /**\r\n * Returns the phone number characters entered by the user.\r\n * @return {string}\r\n */\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n\n /**\r\n * Returns the template for the formatted phone number.\r\n * @return {string}\r\n */\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n}();\nexport { AsYouType as default };\n//# sourceMappingURL=AsYouType.js.map","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\r\n// importing system which is even uncapable of importing \"*.json\" files.\r\nimport metadata from '../../metadata.mobile.json.js'\r\n\r\nimport { AsYouType as _AsYouType } from '../../core/index.js'\r\n\r\nexport function AsYouType(country) {\r\n\treturn _AsYouType.call(this, country, metadata)\r\n}\r\n\r\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\r\nAsYouType.prototype.constructor = AsYouType","import PhoneNumber from './PhoneNumber.js';\nexport default function getExampleNumber(country, examples, metadata) {\n if (examples[country]) {\n return new PhoneNumber(country, examples[country], metadata);\n }\n}\n//# sourceMappingURL=getExampleNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\r\nimport { getExampleNumber as _getExampleNumber } from '../../core/index.js'\r\n\r\nexport function getExampleNumber() {\r\n\treturn withMetadataArgument(_getExampleNumber, arguments)\r\n}"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","_defineProperties","e","r","t","length","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","i","toPrimitive","call","TypeError","String","Number","_toPrimitive","AsYouTypeState","_ref","onCountryChange","onCallingCodeChange","a","n","_classCallCheck","this","value","_ref2","country","callingCode","international","missingPlus","IDDPrefix","undefined","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberIsModified","nationalPrefix","carrierCode","prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix","properties","_i","_Object$keys","keys","setCountry","setCallingCode","nextDigits","slice","_createForOfIteratorHelperLoose","next","bind","Array","isArray","_arrayLikeToArray","toString","name","from","test","_unsupportedIterableToArray","done","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","RegExp","repeat","string","times","result","cutAndStripNonPairedParens","cutBeforeIndex","dangling_braces","push","pop","start","cleared_string","_dangling_braces","index","stripNonPairedParens","formatCompleteNumber","state","format","metadata","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","concat","pattern","formattedNumber","formatNationalNumber","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","_ref3","formattedNationalNumber","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","parseDigits","isValidFormattedNationalNumber","PatternParser","context","or","instructions","parsePattern","Error","_this$context$","branches","op","args","expandSingleElementArray","match","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","split","values","prevValue","charCodeAt","nextValue","fromCharCode","array","PatternMatcher","matchTree","parse","allowOverflow","arguments","_match","matchedChars","overflow","characters","tree","last","characterString","join","indexOf","partialMatch","restCharacters","JSON","stringify","_step","_iterator","_result","_step2","_iterator2","_char","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","CREATE_CHARACTER_CLASS_PATTERN","CREATE_STANDALONE_DIGIT_PATTERN","NON_ALTERING_FORMAT_REG_EXP","AsYouTypeFormatter","resetFormat","chosenFormat","template","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","numberingPlan","isNANP","matchingFormats","formats","narrowDownMatchingFormats","_this","checkNumberLength","_format","formattedCompleteNumber","setNationalNumberTemplate","replace","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigits","leadingDigitsPatternIndex","filter","formatSuits","formatMatches","usesNationalPrefix","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPatterns","Math","min","leadingDigitsPattern","error","console","internationalFormat","_this3","_loop","getFormatFormat","createTemplateForFormat","_","getTemplateForFormat","nationalPrefixFormattingRule","options","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","_ref4","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","applyInternationalSeparatorStyle","position","digit","search","populateTemplateWithDigits","_ref5","_slicedToArray","_arrayWithHoles","l","u","f","_iterableToArrayLimit","_nonIterableRest","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","defaultCountry","defaultCallingCode","onNationalSignificantNumberChange","text","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi3","extractedNumber","hasPlus","startsAt","extractFormattedPhoneNumber","_extractFormattedDigitsAndPlus","_extractFormattedDigi4","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","_extractCountryCallin","countryCallingCode","number","hasSelectedNumberingPlan","nationalPrefixForParsing","_nationalPrefixForParsing","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","setState","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumber","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","prefixBeforeNationalNumber","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","numberWithoutIDD","stripIddPrefix","newCallingCode","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","AsYouType","optionsOrDefaultCountry","_this$getCountryAndCa2","getCountryAndCallingCode","reset","isObject","hasCountry","_this$parser$input","parser","input","formattedOutput","determineTheCountryIfNeeded","formatter","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","selectNumberingPlan","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","prefix","_this$state","getNonFormattedNationalNumberWithPrefix","countryCodes","getCountryCodesForCallingCode","getCountryByCallingCode","_this$state2","_this$state3","_callingCode","ambiguousCountries","exactCountry","getCountryByNationalNumber","countries","phoneNumber","PhoneNumber","getNumber","isPossible","isValid","getTemplate","getNonFormattedTemplate","create","getExampleNumber","examples","withMetadataArgument"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"330.prod.js","mappings":"iHAGAA,EAAAC,EAAA,CAAgBC,GAAA,QAAAC,GAAA,SAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,UAAAC,GAAA,cAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,QAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,cAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,QAAAC,GAAA,UAAAC,GAAA,SAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,UAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,WAAAC,GAAA,SAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,SAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,QAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,UAAAC,GAAA,YAAAC,GAAA,UAAAC,GAAA,WAAAC,GAAA,aAAAC,GAAA,YAAAC,GAAA,WAAAC,GAAA,OAAAC,GAAA,aAAAC,GAAA,WAAAC,GAAA,WAAAC,GAAA,YAAAC,GAAA,YAAAC,GAAA,OAAAC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","sources":["webpack://tinode-webapp/./node_modules/libphonenumber-js/examples.mobile.json.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeState.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.util.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.complete.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternParser.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.PatternMatcher.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeFormatter.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouTypeParser.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/AsYouType.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/AsYouType.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/es6/getExampleNumber.js","webpack://tinode-webapp/./node_modules/libphonenumber-js/mobile/exports/getExampleNumber.js"],"sourcesContent":["// This file is a workaround for a bug in web browsers' \"native\"\n// ES6 importing system which is uncapable of importing \"*.json\" files.\n// https://github.com/catamphetamine/libphonenumber-js/issues/239\nexport default {\"AC\":\"40123\",\"AD\":\"312345\",\"AE\":\"501234567\",\"AF\":\"701234567\",\"AG\":\"2684641234\",\"AI\":\"2642351234\",\"AL\":\"672123456\",\"AM\":\"77123456\",\"AO\":\"923123456\",\"AR\":\"91123456789\",\"AS\":\"6847331234\",\"AT\":\"664123456\",\"AU\":\"412345678\",\"AW\":\"5601234\",\"AX\":\"412345678\",\"AZ\":\"401234567\",\"BA\":\"61123456\",\"BB\":\"2462501234\",\"BD\":\"1812345678\",\"BE\":\"450001234\",\"BF\":\"70123456\",\"BG\":\"43012345\",\"BH\":\"36001234\",\"BI\":\"79561234\",\"BJ\":\"0195123456\",\"BL\":\"690001234\",\"BM\":\"4413701234\",\"BN\":\"7123456\",\"BO\":\"71234567\",\"BQ\":\"3181234\",\"BR\":\"11961234567\",\"BS\":\"2423591234\",\"BT\":\"17123456\",\"BW\":\"71123456\",\"BY\":\"294911911\",\"BZ\":\"6221234\",\"CA\":\"5062345678\",\"CC\":\"412345678\",\"CD\":\"991234567\",\"CF\":\"70012345\",\"CG\":\"061234567\",\"CH\":\"781234567\",\"CI\":\"0123456789\",\"CK\":\"71234\",\"CL\":\"221234567\",\"CM\":\"671234567\",\"CN\":\"13123456789\",\"CO\":\"3211234567\",\"CR\":\"83123456\",\"CU\":\"51234567\",\"CV\":\"9911234\",\"CW\":\"95181234\",\"CX\":\"412345678\",\"CY\":\"96123456\",\"CZ\":\"601123456\",\"DE\":\"15123456789\",\"DJ\":\"77831001\",\"DK\":\"34412345\",\"DM\":\"7672251234\",\"DO\":\"8092345678\",\"DZ\":\"551234567\",\"EC\":\"991234567\",\"EE\":\"51234567\",\"EG\":\"1001234567\",\"EH\":\"650123456\",\"ER\":\"7123456\",\"ES\":\"612345678\",\"ET\":\"911234567\",\"FI\":\"412345678\",\"FJ\":\"7012345\",\"FK\":\"51234\",\"FM\":\"3501234\",\"FO\":\"211234\",\"FR\":\"612345678\",\"GA\":\"06031234\",\"GB\":\"7400123456\",\"GD\":\"4734031234\",\"GE\":\"555123456\",\"GF\":\"694201234\",\"GG\":\"7781123456\",\"GH\":\"231234567\",\"GI\":\"57123456\",\"GL\":\"221234\",\"GM\":\"3012345\",\"GN\":\"601123456\",\"GP\":\"690001234\",\"GQ\":\"222123456\",\"GR\":\"6912345678\",\"GT\":\"51234567\",\"GU\":\"6713001234\",\"GW\":\"955012345\",\"GY\":\"6091234\",\"HK\":\"51234567\",\"HN\":\"91234567\",\"HR\":\"921234567\",\"HT\":\"34101234\",\"HU\":\"201234567\",\"ID\":\"812345678\",\"IE\":\"850123456\",\"IL\":\"502345678\",\"IM\":\"7924123456\",\"IN\":\"8123456789\",\"IO\":\"3801234\",\"IQ\":\"7912345678\",\"IR\":\"9123456789\",\"IS\":\"6111234\",\"IT\":\"3123456789\",\"JE\":\"7797712345\",\"JM\":\"8762101234\",\"JO\":\"790123456\",\"JP\":\"9012345678\",\"KE\":\"712123456\",\"KG\":\"700123456\",\"KH\":\"91234567\",\"KI\":\"72001234\",\"KM\":\"3212345\",\"KN\":\"8697652917\",\"KP\":\"1921234567\",\"KR\":\"1020000000\",\"KW\":\"50012345\",\"KY\":\"3453231234\",\"KZ\":\"7710009998\",\"LA\":\"2023123456\",\"LB\":\"71123456\",\"LC\":\"7582845678\",\"LI\":\"660234567\",\"LK\":\"712345678\",\"LR\":\"770123456\",\"LS\":\"50123456\",\"LT\":\"61234567\",\"LU\":\"628123456\",\"LV\":\"21234567\",\"LY\":\"912345678\",\"MA\":\"650123456\",\"MC\":\"612345678\",\"MD\":\"62112345\",\"ME\":\"60123456\",\"MF\":\"690001234\",\"MG\":\"321234567\",\"MH\":\"2351234\",\"MK\":\"72345678\",\"ML\":\"65012345\",\"MM\":\"92123456\",\"MN\":\"88123456\",\"MO\":\"66123456\",\"MP\":\"6702345678\",\"MQ\":\"696201234\",\"MR\":\"22123456\",\"MS\":\"6644923456\",\"MT\":\"96961234\",\"MU\":\"52512345\",\"MV\":\"7712345\",\"MW\":\"991234567\",\"MX\":\"2221234567\",\"MY\":\"123456789\",\"MZ\":\"821234567\",\"NA\":\"811234567\",\"NC\":\"751234\",\"NE\":\"93123456\",\"NF\":\"381234\",\"NG\":\"8021234567\",\"NI\":\"81234567\",\"NL\":\"612345678\",\"NO\":\"40612345\",\"NP\":\"9841234567\",\"NR\":\"5551234\",\"NU\":\"8884012\",\"NZ\":\"211234567\",\"OM\":\"92123456\",\"PA\":\"61234567\",\"PE\":\"912345678\",\"PF\":\"87123456\",\"PG\":\"70123456\",\"PH\":\"9051234567\",\"PK\":\"3012345678\",\"PL\":\"512345678\",\"PM\":\"551234\",\"PR\":\"7872345678\",\"PS\":\"599123456\",\"PT\":\"912345678\",\"PW\":\"6201234\",\"PY\":\"961456789\",\"QA\":\"33123456\",\"RE\":\"692123456\",\"RO\":\"712034567\",\"RS\":\"601234567\",\"RU\":\"9123456789\",\"RW\":\"720123456\",\"SA\":\"512345678\",\"SB\":\"7421234\",\"SC\":\"2510123\",\"SD\":\"911231234\",\"SE\":\"701234567\",\"SG\":\"81234567\",\"SH\":\"51234\",\"SI\":\"31234567\",\"SJ\":\"41234567\",\"SK\":\"912123456\",\"SL\":\"25123456\",\"SM\":\"66661212\",\"SN\":\"701234567\",\"SO\":\"71123456\",\"SR\":\"7412345\",\"SS\":\"977123456\",\"ST\":\"9812345\",\"SV\":\"70123456\",\"SX\":\"7215205678\",\"SY\":\"944567890\",\"SZ\":\"76123456\",\"TA\":\"8999\",\"TC\":\"6492311234\",\"TD\":\"63012345\",\"TG\":\"90112345\",\"TH\":\"812345678\",\"TJ\":\"917123456\",\"TK\":\"7290\",\"TL\":\"77212345\",\"TM\":\"66123456\",\"TN\":\"20123456\",\"TO\":\"7715123\",\"TR\":\"5012345678\",\"TT\":\"8682911234\",\"TV\":\"901234\",\"TW\":\"912345678\",\"TZ\":\"621234567\",\"UA\":\"501234567\",\"UG\":\"712345678\",\"US\":\"2015550123\",\"UY\":\"94231234\",\"UZ\":\"912345678\",\"VA\":\"3123456789\",\"VC\":\"7844301234\",\"VE\":\"4121234567\",\"VG\":\"2843001234\",\"VI\":\"3406421234\",\"VN\":\"912345678\",\"VU\":\"5912345\",\"WF\":\"821234\",\"WS\":\"7212345\",\"XK\":\"43201234\",\"YE\":\"712345678\",\"YT\":\"639012345\",\"ZA\":\"711234567\",\"ZM\":\"955123456\",\"ZW\":\"712345678\"}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n// This \"state\" object simply holds the state of the \"AsYouType\" parser:\n//\n// Sidenote:\n// `state.callingCode` and `state.country` are somewhat independent from one another\n// and there could be situations when one is defined but the other is not.\n// * Situations when `state.country` would be defined but `state.callingCode` would be `undefined`:\n// \t\t * When `defaultCountry` is specified and inputting a phone number not in \"international\" format.\n// * When `defaultCountry` is specified and inputting a phone number in \"international\" format,\n// but before the `+` character has been input.\n// * Situations when `state.country` would be `undefined` but `state.callingCode` would be defined:\n// * When `defaultCountry` is not specified and inputting a phone number in \"international\" format,\n// and the \"calling code\" part is already complete, but multiple countries share this \"calling code\"\n// and there's not enough national (significant) number digits yet to determine the exact country.\n// * In any other sigutations, `state.country` and `state.callingCode` are either both defined or both `undefined`.\n// * When they're both defined, `state.callingCode` always corresponds to `state.country`.\n// So both are always consistent in this case.\n//\n// * `country?: string` — The exact country of the phone number, if it could be determined.\n// When inputting a phone number in \"international\" format, it will derive the `country` from \"country calling code\" and the phone number digits.\n// When inputting a phone number in \"national\" format, it will derive the `country` from `defaultCountry` that was specified when creating the `AsYouType` formatter.\n// Sidenote: If `USE_NON_GEOGRAPHIC_COUNTRY_CODE` flag was `true`, then for \"non-geographic phone numbers\" `state.country` would've been \"001\".\n// * `callingCode?: string` — \"Country calling code\" that has been extracted from the input phone number.\n// When inputting a phone number in \"international\" format, it will extract the \"country calling code\" from the digits that follow the \"+\" character.\n// When inputting a phone number in \"national\" format, `callingCode` will be `undefined`.\n// * `digits: string` — Phone number digits that have been input so far, including the \"+\" character, if present. In case of inputting non-arabic digits, those will be converted to arabic ones.\n// * `international: boolean` — Whether the phone number is being input in \"international\" format, i.e. with a \"+\" character.\n// * `missingPlus: boolean` — Whether it's a phone number in \"international\" format that is missing the leading \"+\" character for some reason — apparently, Google thinks that it's a common mistake when inputting a phone number.\n// * `IDDPrefix?: string` — An \"IDD prefix\", when the phone number is being input in an \"out-of-country dialing\" format. https://wikitravel.org/en/International_dialling_prefix\n// * `carrierCode?: string` — A \"carrier code\", if the phone number contains it. Normally, those can only be present in Colombia or Brazil, and only when calling from mobile phones to fixed-line numbers.\n// * `nationalPrefix?: string` — \"National prefix\", if present in the phone number input.\n// * `nationalSignificantNumber?: string` — National (significant) number digits that have been input so far.\n// * `nationalSignificantNumberIsModified: boolean` — Tells if the parsed national (significant) number is present as-is in the input string. For example, when inputting \"0343515551212999\" Argentinian mobile number, the parsed national (significant) number is \"93435551212999\". There, one can see how it stripped \"0\" national prefix and prepended a \"9\", because that's how it is instructed to do in Argentina's metadata. So in the described example, the parsed national (significant) number is not present as-is in the input string. Instead, it's \"modified\" in the input string. https://gitlab.com/caamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n// * `prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix?: string` — In some countries, a phone number could have a prefix that is not a \"national prefix\" but rather some other type of \"utility\" prefix.\n// For example, when calling within Australia, one could prepend `1831` prefix to hide caller's phone number.\n// https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n//\nvar AsYouTypeState = /*#__PURE__*/function () {\n function AsYouTypeState(_ref) {\n var onCountryChange = _ref.onCountryChange,\n onCallingCodeChange = _ref.onCallingCodeChange;\n _classCallCheck(this, AsYouTypeState);\n this.onCountryChange = onCountryChange;\n this.onCallingCodeChange = onCallingCodeChange;\n }\n return _createClass(AsYouTypeState, [{\n key: \"reset\",\n value: function reset(_ref2) {\n var country = _ref2.country,\n callingCode = _ref2.callingCode;\n this.international = false;\n this.missingPlus = false;\n this.IDDPrefix = undefined;\n this.callingCode = undefined;\n this.digits = '';\n this.resetNationalSignificantNumber();\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"resetNationalSignificantNumber\",\n value: function resetNationalSignificantNumber() {\n this.nationalSignificantNumber = this.getNationalDigits();\n this.nationalSignificantNumberIsModified = false;\n this.nationalPrefix = undefined;\n this.carrierCode = undefined;\n this.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = undefined;\n }\n }, {\n key: \"update\",\n value: function update(properties) {\n for (var _i = 0, _Object$keys = Object.keys(properties); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n this[key] = properties[key];\n }\n }\n }, {\n key: \"initCountryAndCallingCode\",\n value: function initCountryAndCallingCode(country, callingCode) {\n this.setCountry(country);\n this.setCallingCode(callingCode);\n }\n }, {\n key: \"setCountry\",\n value: function setCountry(country) {\n this.country = country;\n this.onCountryChange(country);\n }\n }, {\n key: \"setCallingCode\",\n value: function setCallingCode(callingCode) {\n this.callingCode = callingCode;\n this.onCallingCodeChange(callingCode, this.country);\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(country, callingCode) {\n // Prepend the `+` to parsed input.\n this.international = true;\n // If a default country was set then reset it\n // because an explicitly international phone\n // number is being entered.\n this.initCountryAndCallingCode(country, callingCode);\n }\n }, {\n key: \"appendDigits\",\n value: function appendDigits(nextDigits) {\n this.digits += nextDigits;\n }\n }, {\n key: \"appendNationalSignificantNumberDigits\",\n value: function appendNationalSignificantNumberDigits(nextDigits) {\n this.nationalSignificantNumber += nextDigits;\n }\n\n /**\n * Returns the part of `this.digits` that corresponds to the national number.\n * Basically, all digits that have been input by the user, except for the\n * international prefix and the country calling code part\n * (if the number is an international one).\n * @return {string}\n */\n }, {\n key: \"getNationalDigits\",\n value: function getNationalDigits() {\n if (this.international) {\n return this.digits.slice((this.IDDPrefix ? this.IDDPrefix.length : 0) + (this.callingCode ? this.callingCode.length : 0));\n }\n return this.digits;\n }\n }, {\n key: \"getDigitsWithoutInternationalPrefix\",\n value: function getDigitsWithoutInternationalPrefix() {\n if (this.international) {\n if (this.IDDPrefix) {\n return this.digits.slice(this.IDDPrefix.length);\n }\n }\n return this.digits;\n }\n }]);\n}();\nexport { AsYouTypeState as default };\n//# sourceMappingURL=AsYouTypeState.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\n// Should be the same as `DIGIT_PLACEHOLDER` in `libphonenumber-metadata-generator`.\nexport var DIGIT_PLACEHOLDER = 'x'; // '\\u2008' (punctuation space)\nvar DIGIT_PLACEHOLDER_MATCHER = new RegExp(DIGIT_PLACEHOLDER);\n\n// Counts all occurences of a symbol in a string.\n// Unicode-unsafe (because using `.split()`).\nexport function countOccurences(symbol, string) {\n var count = 0;\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for counting brackets it is safe.\n // for (const character of string)\n for (var _iterator = _createForOfIteratorHelperLoose(string.split('')), _step; !(_step = _iterator()).done;) {\n var character = _step.value;\n if (character === symbol) {\n count++;\n }\n }\n return count;\n}\n\n// Repeats a string (or a symbol) N times.\n// http://stackoverflow.com/questions/202605/repeat-string-javascript\nexport function repeat(string, times) {\n if (times < 1) {\n return '';\n }\n var result = '';\n while (times > 1) {\n if (times & 1) {\n result += string;\n }\n times >>= 1;\n string += string;\n }\n return result + string;\n}\nexport function cutAndStripNonPairedParens(string, cutBeforeIndex) {\n if (string[cutBeforeIndex] === ')') {\n cutBeforeIndex++;\n }\n return stripNonPairedParens(string.slice(0, cutBeforeIndex));\n}\nexport function closeNonPairedParens(template, cut_before) {\n var retained_template = template.slice(0, cut_before);\n var opening_braces = countOccurences('(', retained_template);\n var closing_braces = countOccurences(')', retained_template);\n var dangling_braces = opening_braces - closing_braces;\n while (dangling_braces > 0 && cut_before < template.length) {\n if (template[cut_before] === ')') {\n dangling_braces--;\n }\n cut_before++;\n }\n return template.slice(0, cut_before);\n}\nexport function stripNonPairedParens(string) {\n var dangling_braces = [];\n var i = 0;\n while (i < string.length) {\n if (string[i] === '(') {\n dangling_braces.push(i);\n } else if (string[i] === ')') {\n dangling_braces.pop();\n }\n i++;\n }\n var start = 0;\n var cleared_string = '';\n dangling_braces.push(string.length);\n for (var _i = 0, _dangling_braces = dangling_braces; _i < _dangling_braces.length; _i++) {\n var index = _dangling_braces[_i];\n cleared_string += string.slice(start, index);\n start = index + 1;\n }\n return cleared_string;\n}\nexport function populateTemplateWithDigits(template, position, digits) {\n // Using `.split('')` to iterate through a string here\n // to avoid requiring `Symbol.iterator` polyfill.\n // `.split('')` is generally not safe for Unicode,\n // but in this particular case for `digits` it is safe.\n // for (const digit of digits)\n for (var _iterator2 = _createForOfIteratorHelperLoose(digits.split('')), _step2; !(_step2 = _iterator2()).done;) {\n var digit = _step2.value;\n // If there is room for more digits in current `template`,\n // then set the next digit in the `template`,\n // and return the formatted digits so far.\n // If more digits are entered than the current format could handle.\n if (template.slice(position + 1).search(DIGIT_PLACEHOLDER_MATCHER) < 0) {\n return;\n }\n position = template.search(DIGIT_PLACEHOLDER_MATCHER);\n template = template.replace(DIGIT_PLACEHOLDER_MATCHER, digit);\n }\n return [template, position];\n}\n//# sourceMappingURL=AsYouTypeFormatter.util.js.map","import checkNumberLength from './helpers/checkNumberLength.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport formatNationalNumberUsingFormat from './helpers/formatNationalNumberUsingFormat.js';\nexport default function formatCompleteNumber(state, format, _ref) {\n var metadata = _ref.metadata,\n shouldTryNationalPrefixFormattingRule = _ref.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref.getSeparatorAfterNationalPrefix;\n var matcher = new RegExp(\"^(?:\".concat(format.pattern(), \")$\"));\n if (matcher.test(state.nationalSignificantNumber)) {\n return formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, {\n metadata: metadata,\n shouldTryNationalPrefixFormattingRule: shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix\n });\n }\n}\nexport function canFormatCompleteNumber(nationalSignificantNumber, metadata) {\n return checkNumberLength(nationalSignificantNumber, undefined, metadata) === 'IS_POSSIBLE';\n}\nfunction formatNationalNumberWithAndWithoutNationalPrefixFormattingRule(state, format, _ref2) {\n var metadata = _ref2.metadata,\n shouldTryNationalPrefixFormattingRule = _ref2.shouldTryNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref2.getSeparatorAfterNationalPrefix;\n // `format` has already been checked for `nationalPrefix` requirement.\n\n var nationalSignificantNumber = state.nationalSignificantNumber,\n international = state.international,\n nationalPrefix = state.nationalPrefix,\n carrierCode = state.carrierCode;\n\n // Format the number with using `national_prefix_formatting_rule`.\n // If the resulting formatted number is a valid formatted number, then return it.\n //\n // Google's AsYouType formatter is different in a way that it doesn't try\n // to format using the \"national prefix formatting rule\", and instead it\n // simply prepends a national prefix followed by a \" \" character.\n // This code does that too, but as a fallback.\n // The reason is that \"national prefix formatting rule\" may use parentheses,\n // which wouldn't be included has it used the simpler Google's way.\n //\n if (shouldTryNationalPrefixFormattingRule(format)) {\n var formattedNumber = formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: true,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n if (formattedNumber) {\n return formattedNumber;\n }\n }\n\n // Format the number without using `national_prefix_formatting_rule`.\n return formatNationalNumber(state, format, {\n useNationalPrefixFormattingRule: false,\n getSeparatorAfterNationalPrefix: getSeparatorAfterNationalPrefix,\n metadata: metadata\n });\n}\nfunction formatNationalNumber(state, format, _ref3) {\n var metadata = _ref3.metadata,\n useNationalPrefixFormattingRule = _ref3.useNationalPrefixFormattingRule,\n getSeparatorAfterNationalPrefix = _ref3.getSeparatorAfterNationalPrefix;\n var formattedNationalNumber = formatNationalNumberUsingFormat(state.nationalSignificantNumber, format, {\n carrierCode: state.carrierCode,\n useInternationalFormat: state.international,\n withNationalPrefix: useNationalPrefixFormattingRule,\n metadata: metadata\n });\n if (!useNationalPrefixFormattingRule) {\n if (state.nationalPrefix) {\n // If a national prefix was extracted, then just prepend it,\n // followed by a \" \" character.\n formattedNationalNumber = state.nationalPrefix + getSeparatorAfterNationalPrefix(format) + formattedNationalNumber;\n } else if (state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n formattedNationalNumber = state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix + ' ' + formattedNationalNumber;\n }\n }\n if (isValidFormattedNationalNumber(formattedNationalNumber, state)) {\n return formattedNationalNumber;\n }\n}\n\n// Check that the formatted phone number contains exactly\n// the same digits that have been input by the user.\n// For example, when \"0111523456789\" is input for `AR` country,\n// the extracted `this.nationalSignificantNumber` is \"91123456789\",\n// which means that the national part of `this.digits` isn't simply equal to\n// `this.nationalPrefix` + `this.nationalSignificantNumber`.\n//\n// Also, a `format` can add extra digits to the `this.nationalSignificantNumber`\n// being formatted via `metadata[country].national_prefix_transform_rule`.\n// For example, for `VI` country, it prepends `340` to the national number,\n// and if this check hasn't been implemented, then there would be a bug\n// when `340` \"area coude\" is \"duplicated\" during input for `VI` country:\n// https://github.com/catamphetamine/libphonenumber-js/issues/318\n//\n// So, all these \"gotchas\" are filtered out.\n//\n// In the original Google's code, the comments say:\n// \"Check that we didn't remove nor add any extra digits when we matched\n// this formatting pattern. This usually happens after we entered the last\n// digit during AYTF. Eg: In case of MX, we swallow mobile token (1) when\n// formatted but AYTF should retain all the number entered and not change\n// in order to match a format (of same leading digits and length) display\n// in that way.\"\n// \"If it's the same (i.e entered number and format is same), then it's\n// safe to return this in formatted number as nothing is lost / added.\"\n// Otherwise, don't use this format.\n// https://github.com/google/libphonenumber/commit/3e7c1f04f5e7200f87fb131e6f85c6e99d60f510#diff-9149457fa9f5d608a11bb975c6ef4bc5\n// https://github.com/google/libphonenumber/commit/3ac88c7106e7dcb553bcc794b15f19185928a1c6#diff-2dcb77e833422ee304da348b905cde0b\n//\nfunction isValidFormattedNationalNumber(formattedNationalNumber, state) {\n return parseDigits(formattedNationalNumber) === state.getNationalDigits();\n}\n//# sourceMappingURL=AsYouTypeFormatter.complete.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PatternParser = /*#__PURE__*/function () {\n function PatternParser() {\n _classCallCheck(this, PatternParser);\n }\n return _createClass(PatternParser, [{\n key: \"parse\",\n value: function parse(pattern) {\n this.context = [{\n or: true,\n instructions: []\n }];\n this.parsePattern(pattern);\n if (this.context.length !== 1) {\n throw new Error('Non-finalized contexts left when pattern parse ended');\n }\n var _this$context$ = this.context[0],\n branches = _this$context$.branches,\n instructions = _this$context$.instructions;\n if (branches) {\n return {\n op: '|',\n args: branches.concat([expandSingleElementArray(instructions)])\n };\n }\n\n /* istanbul ignore if */\n if (instructions.length === 0) {\n throw new Error('Pattern is required');\n }\n if (instructions.length === 1) {\n return instructions[0];\n }\n return instructions;\n }\n }, {\n key: \"startContext\",\n value: function startContext(context) {\n this.context.push(context);\n }\n }, {\n key: \"endContext\",\n value: function endContext() {\n this.context.pop();\n }\n }, {\n key: \"getContext\",\n value: function getContext() {\n return this.context[this.context.length - 1];\n }\n }, {\n key: \"parsePattern\",\n value: function parsePattern(pattern) {\n if (!pattern) {\n throw new Error('Pattern is required');\n }\n var match = pattern.match(OPERATOR);\n if (!match) {\n if (ILLEGAL_CHARACTER_REGEXP.test(pattern)) {\n throw new Error(\"Illegal characters found in a pattern: \".concat(pattern));\n }\n this.getContext().instructions = this.getContext().instructions.concat(pattern.split(''));\n return;\n }\n var operator = match[1];\n var before = pattern.slice(0, match.index);\n var rightPart = pattern.slice(match.index + operator.length);\n switch (operator) {\n case '(?:':\n if (before) {\n this.parsePattern(before);\n }\n this.startContext({\n or: true,\n instructions: [],\n branches: []\n });\n break;\n case ')':\n if (!this.getContext().or) {\n throw new Error('\")\" operator must be preceded by \"(?:\" operator');\n }\n if (before) {\n this.parsePattern(before);\n }\n if (this.getContext().instructions.length === 0) {\n throw new Error('No instructions found after \"|\" operator in an \"or\" group');\n }\n var _this$getContext = this.getContext(),\n branches = _this$getContext.branches;\n branches.push(expandSingleElementArray(this.getContext().instructions));\n this.endContext();\n this.getContext().instructions.push({\n op: '|',\n args: branches\n });\n break;\n case '|':\n if (!this.getContext().or) {\n throw new Error('\"|\" operator can only be used inside \"or\" groups');\n }\n if (before) {\n this.parsePattern(before);\n }\n // The top-level is an implicit \"or\" group, if required.\n if (!this.getContext().branches) {\n // `branches` are not defined only for the root implicit \"or\" operator.\n /* istanbul ignore else */\n if (this.context.length === 1) {\n this.getContext().branches = [];\n } else {\n throw new Error('\"branches\" not found in an \"or\" group context');\n }\n }\n this.getContext().branches.push(expandSingleElementArray(this.getContext().instructions));\n this.getContext().instructions = [];\n break;\n case '[':\n if (before) {\n this.parsePattern(before);\n }\n this.startContext({\n oneOfSet: true\n });\n break;\n case ']':\n if (!this.getContext().oneOfSet) {\n throw new Error('\"]\" operator must be preceded by \"[\" operator');\n }\n this.endContext();\n this.getContext().instructions.push({\n op: '[]',\n args: parseOneOfSet(before)\n });\n break;\n\n /* istanbul ignore next */\n default:\n throw new Error(\"Unknown operator: \".concat(operator));\n }\n if (rightPart) {\n this.parsePattern(rightPart);\n }\n }\n }]);\n}();\nexport { PatternParser as default };\nfunction parseOneOfSet(pattern) {\n var values = [];\n var i = 0;\n while (i < pattern.length) {\n if (pattern[i] === '-') {\n if (i === 0 || i === pattern.length - 1) {\n throw new Error(\"Couldn't parse a one-of set pattern: \".concat(pattern));\n }\n var prevValue = pattern[i - 1].charCodeAt(0) + 1;\n var nextValue = pattern[i + 1].charCodeAt(0) - 1;\n var value = prevValue;\n while (value <= nextValue) {\n values.push(String.fromCharCode(value));\n value++;\n }\n } else {\n values.push(pattern[i]);\n }\n i++;\n }\n return values;\n}\nvar ILLEGAL_CHARACTER_REGEXP = /[\\(\\)\\[\\]\\?\\:\\|]/;\nvar OPERATOR = new RegExp(\n// any of:\n'(' +\n// or operator\n'\\\\|' +\n// or\n'|' +\n// or group start\n'\\\\(\\\\?\\\\:' +\n// or\n'|' +\n// or group end\n'\\\\)' +\n// or\n'|' +\n// one-of set start\n'\\\\[' +\n// or\n'|' +\n// one-of set end\n'\\\\]' + ')');\nfunction expandSingleElementArray(array) {\n if (array.length === 1) {\n return array[0];\n }\n return array;\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternParser.js.map","function _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport PatternParser from './AsYouTypeFormatter.PatternParser.js';\nvar PatternMatcher = /*#__PURE__*/function () {\n function PatternMatcher(pattern) {\n _classCallCheck(this, PatternMatcher);\n this.matchTree = new PatternParser().parse(pattern);\n }\n return _createClass(PatternMatcher, [{\n key: \"match\",\n value: function match(string) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n allowOverflow = _ref.allowOverflow;\n if (!string) {\n throw new Error('String is required');\n }\n var result = _match(string.split(''), this.matchTree, true);\n if (result && result.match) {\n delete result.matchedChars;\n }\n if (result && result.overflow) {\n if (!allowOverflow) {\n return;\n }\n }\n return result;\n }\n }]);\n}();\n/**\n * Matches `characters` against a pattern compiled into a `tree`.\n * @param {string[]} characters\n * @param {Tree} tree — A pattern compiled into a `tree`. See the `*.d.ts` file for the description of the `tree` structure.\n * @param {boolean} last — Whether it's the last (rightmost) subtree on its level of the match tree.\n * @return {object} See the `*.d.ts` file for the description of the result object.\n */\nexport { PatternMatcher as default };\nfunction _match(characters, tree, last) {\n // If `tree` is a string, then `tree` is a single character.\n // That's because when a pattern is parsed, multi-character-string parts\n // of a pattern are compiled into arrays of single characters.\n // I still wrote this piece of code for a \"general\" hypothetical case\n // when `tree` could be a string of several characters, even though\n // such case is not possible with the current implementation.\n if (typeof tree === 'string') {\n var characterString = characters.join('');\n if (tree.indexOf(characterString) === 0) {\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n /* istanbul ignore else */\n if (characters.length === tree.length) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n // `tree` is always a single character.\n // If `tree.indexOf(characterString) === 0`\n // then `characters.length === tree.length`.\n /* istanbul ignore next */\n return {\n partialMatch: true\n // matchedChars: characters\n };\n }\n if (characterString.indexOf(tree) === 0) {\n if (last) {\n // The `else` path is not possible because `tree` is always a single character.\n // The `else` case for `characters.length > tree.length` would be\n // `characters.length <= tree.length` which means `characters.length <= 1`.\n // `characters` array can't be empty, so that means `characters === [tree]`,\n // which would also mean `tree.indexOf(characterString) === 0` and that'd mean\n // that the `if (tree.indexOf(characterString) === 0)` condition before this\n // `if` condition would be entered, and returned from there, not reaching this code.\n /* istanbul ignore else */\n if (characters.length > tree.length) {\n return {\n overflow: true\n };\n }\n }\n return {\n match: true,\n matchedChars: characters.slice(0, tree.length)\n };\n }\n return;\n }\n if (Array.isArray(tree)) {\n var restCharacters = characters.slice();\n var i = 0;\n while (i < tree.length) {\n var subtree = tree[i];\n var result = _match(restCharacters, subtree, last && i === tree.length - 1);\n if (!result) {\n return;\n } else if (result.overflow) {\n return result;\n } else if (result.match) {\n // Continue with the next subtree with the rest of the characters.\n restCharacters = restCharacters.slice(result.matchedChars.length);\n if (restCharacters.length === 0) {\n if (i === tree.length - 1) {\n return {\n match: true,\n matchedChars: characters\n };\n } else {\n return {\n partialMatch: true\n // matchedChars: characters\n };\n }\n }\n } else {\n /* istanbul ignore else */\n if (result.partialMatch) {\n return {\n partialMatch: true\n // matchedChars: characters\n };\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(result, null, 2)));\n }\n }\n i++;\n }\n // If `last` then overflow has already been checked\n // by the last element of the `tree` array.\n /* istanbul ignore if */\n if (last) {\n return {\n overflow: true\n };\n }\n return {\n match: true,\n matchedChars: characters.slice(0, characters.length - restCharacters.length)\n };\n }\n switch (tree.op) {\n case '|':\n var partialMatch;\n for (var _iterator = _createForOfIteratorHelperLoose(tree.args), _step; !(_step = _iterator()).done;) {\n var branch = _step.value;\n var _result = _match(characters, branch, last);\n if (_result) {\n if (_result.overflow) {\n return _result;\n } else if (_result.match) {\n return {\n match: true,\n matchedChars: _result.matchedChars\n };\n } else {\n /* istanbul ignore else */\n if (_result.partialMatch) {\n partialMatch = true;\n } else {\n throw new Error(\"Unsupported match result:\\n\".concat(JSON.stringify(_result, null, 2)));\n }\n }\n }\n }\n if (partialMatch) {\n return {\n partialMatch: true\n // matchedChars: ...\n };\n }\n // Not even a partial match.\n return;\n case '[]':\n for (var _iterator2 = _createForOfIteratorHelperLoose(tree.args), _step2; !(_step2 = _iterator2()).done;) {\n var _char = _step2.value;\n if (characters[0] === _char) {\n if (characters.length === 1) {\n return {\n match: true,\n matchedChars: characters\n };\n }\n if (last) {\n return {\n overflow: true\n };\n }\n return {\n match: true,\n matchedChars: [_char]\n };\n }\n }\n // No character matches.\n return;\n\n /* istanbul ignore next */\n default:\n throw new Error(\"Unsupported instruction tree: \".concat(tree));\n }\n}\n//# sourceMappingURL=AsYouTypeFormatter.PatternMatcher.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _createForOfIteratorHelperLoose(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { DIGIT_PLACEHOLDER, countOccurences, repeat, cutAndStripNonPairedParens, closeNonPairedParens, stripNonPairedParens, populateTemplateWithDigits } from './AsYouTypeFormatter.util.js';\nimport formatCompleteNumber, { canFormatCompleteNumber } from './AsYouTypeFormatter.complete.js';\nimport PatternMatcher from './AsYouTypeFormatter.PatternMatcher.js';\nimport parseDigits from './helpers/parseDigits.js';\nexport { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.util.js';\nimport { FIRST_GROUP_PATTERN } from './helpers/formatNationalNumberUsingFormat.js';\nimport { VALID_PUNCTUATION } from './constants.js';\nimport applyInternationalSeparatorStyle from './helpers/applyInternationalSeparatorStyle.js';\n\n// Used in phone number format template creation.\n// Could be any digit, I guess.\nvar DUMMY_DIGIT = '9';\n// I don't know why is it exactly `15`\nvar LONGEST_NATIONAL_PHONE_NUMBER_LENGTH = 15;\n// Create a phone number consisting only of the digit 9 that matches the\n// `number_pattern` by applying the pattern to the \"longest phone number\" string.\nvar LONGEST_DUMMY_PHONE_NUMBER = repeat(DUMMY_DIGIT, LONGEST_NATIONAL_PHONE_NUMBER_LENGTH);\n\n// A set of characters that, if found in a national prefix formatting rules, are an indicator to\n// us that we should separate the national prefix from the number when formatting.\nvar NATIONAL_PREFIX_SEPARATORS_PATTERN = /[- ]/;\n\n// Deprecated: Google has removed some formatting pattern related code from their repo.\n// https://github.com/googlei18n/libphonenumber/commit/a395b4fef3caf57c4bc5f082e1152a4d2bd0ba4c\n// \"We no longer have numbers in formatting matching patterns, only \\d.\"\n// Because this library supports generating custom metadata\n// some users may still be using old metadata so the relevant\n// code seems to stay until some next major version update.\nvar SUPPORT_LEGACY_FORMATTING_PATTERNS = true;\n\n// A pattern that is used to match character classes in regular expressions.\n// An example of a character class is \"[1-4]\".\nvar CREATE_CHARACTER_CLASS_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\[([^\\[\\]])*\\]/g;\n};\n\n// Any digit in a regular expression that actually denotes a digit. For\n// example, in the regular expression \"80[0-2]\\d{6,10}\", the first 2 digits\n// (8 and 0) are standalone digits, but the rest are not.\n// Two look-aheads are needed because the number following \\\\d could be a\n// two-digit number, since the phone number can be as long as 15 digits.\nvar CREATE_STANDALONE_DIGIT_PATTERN = SUPPORT_LEGACY_FORMATTING_PATTERNS && function () {\n return /\\d(?=[^,}][^,}])/g;\n};\n\n// A regular expression that is used to determine if a `format` is\n// suitable to be used in the \"as you type formatter\".\n// A `format` is suitable when the resulting formatted number has\n// the same digits as the user has entered.\n//\n// In the simplest case, that would mean that the format\n// doesn't add any additional digits when formatting a number.\n// Google says that it also shouldn't add \"star\" (`*`) characters,\n// like it does in some Israeli formats.\n// Such basic format would only contain \"valid punctuation\"\n// and \"captured group\" identifiers ($1, $2, etc).\n//\n// An example of a format that adds additional digits:\n//\n// Country: `AR` (Argentina).\n// Format:\n// {\n// \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n// \"leading_digits_patterns\": [\"91\"],\n// \"national_prefix_formatting_rule\": \"0$1\",\n// \"format\": \"$2 15-$3-$4\",\n// \"international_format\": \"$1 $2 $3-$4\"\n// }\n//\n// In the format above, the `format` adds `15` to the digits when formatting a number.\n// A sidenote: this format actually is suitable because `national_prefix_for_parsing`\n// has previously removed `15` from a national number, so re-adding `15` in `format`\n// doesn't actually result in any extra digits added to user's input.\n// But verifying that would be a complex procedure, so the code chooses a simpler path:\n// it simply filters out all `format`s that contain anything but \"captured group\" ids.\n//\n// This regular expression is called `ELIGIBLE_FORMAT_PATTERN` in Google's\n// `libphonenumber` code.\n//\nvar NON_ALTERING_FORMAT_REG_EXP = new RegExp('[' + VALID_PUNCTUATION + ']*' +\n// Google developers say:\n// \"We require that the first matching group is present in the\n// output pattern to ensure no data is lost while formatting.\"\n'\\\\$1' + '[' + VALID_PUNCTUATION + ']*' + '(\\\\$\\\\d[' + VALID_PUNCTUATION + ']*)*' + '$');\n\n// This is the minimum length of the leading digits of a phone number\n// to guarantee the first \"leading digits pattern\" for a phone number format\n// to be preemptive.\nvar MIN_LEADING_DIGITS_LENGTH = 3;\nvar AsYouTypeFormatter = /*#__PURE__*/function () {\n function AsYouTypeFormatter(_ref) {\n var state = _ref.state,\n metadata = _ref.metadata;\n _classCallCheck(this, AsYouTypeFormatter);\n this.metadata = metadata;\n this.resetFormat();\n }\n return _createClass(AsYouTypeFormatter, [{\n key: \"resetFormat\",\n value: function resetFormat() {\n this.chosenFormat = undefined;\n this.template = undefined;\n this.nationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplate = undefined;\n this.populatedNationalNumberTemplatePosition = -1;\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan, state) {\n this.resetFormat();\n if (numberingPlan) {\n this.isNANP = numberingPlan.callingCode() === '1';\n this.matchingFormats = numberingPlan.formats();\n if (state.nationalSignificantNumber) {\n this.narrowDownMatchingFormats(state);\n }\n } else {\n this.isNANP = undefined;\n this.matchingFormats = [];\n }\n }\n\n /**\n * Formats an updated phone number.\n * @param {string} nextDigits — Additional phone number digits.\n * @param {object} state — `AsYouType` state.\n * @return {[string]} Returns undefined if the updated phone number can't be formatted using any of the available formats.\n */\n }, {\n key: \"format\",\n value: function format(nextDigits, state) {\n var _this = this;\n // See if the phone number digits can be formatted as a complete phone number.\n // If not, use the results from `formatNationalNumberWithNextDigits()`,\n // which formats based on the chosen formatting pattern.\n //\n // Attempting to format complete phone number first is how it's done\n // in Google's `libphonenumber`, so this library just follows it.\n // Google's `libphonenumber` code doesn't explain in detail why does it\n // attempt to format digits as a complete phone number\n // instead of just going with a previoulsy (or newly) chosen `format`:\n //\n // \"Checks to see if there is an exact pattern match for these digits.\n // If so, we should use this instead of any other formatting template\n // whose leadingDigitsPattern also matches the input.\"\n //\n if (canFormatCompleteNumber(state.nationalSignificantNumber, this.metadata)) {\n for (var _iterator = _createForOfIteratorHelperLoose(this.matchingFormats), _step; !(_step = _iterator()).done;) {\n var _format = _step.value;\n var formattedCompleteNumber = formatCompleteNumber(state, _format, {\n metadata: this.metadata,\n shouldTryNationalPrefixFormattingRule: function shouldTryNationalPrefixFormattingRule(format) {\n return _this.shouldTryNationalPrefixFormattingRule(format, {\n international: state.international,\n nationalPrefix: state.nationalPrefix\n });\n },\n getSeparatorAfterNationalPrefix: function getSeparatorAfterNationalPrefix(format) {\n return _this.getSeparatorAfterNationalPrefix(format);\n }\n });\n if (formattedCompleteNumber) {\n this.resetFormat();\n this.chosenFormat = _format;\n this.setNationalNumberTemplate(formattedCompleteNumber.replace(/\\d/g, DIGIT_PLACEHOLDER), state);\n this.populatedNationalNumberTemplate = formattedCompleteNumber;\n // With a new formatting template, the matched position\n // using the old template needs to be reset.\n this.populatedNationalNumberTemplatePosition = this.template.lastIndexOf(DIGIT_PLACEHOLDER);\n return formattedCompleteNumber;\n }\n }\n }\n // Format the digits as a partial (incomplete) phone number\n // using the previously chosen formatting pattern (or a newly chosen one).\n return this.formatNationalNumberWithNextDigits(nextDigits, state);\n }\n\n // Formats the next phone number digits.\n }, {\n key: \"formatNationalNumberWithNextDigits\",\n value: function formatNationalNumberWithNextDigits(nextDigits, state) {\n var previouslyChosenFormat = this.chosenFormat;\n\n // Choose a format from the list of matching ones.\n var newlyChosenFormat = this.chooseFormat(state);\n if (newlyChosenFormat) {\n if (newlyChosenFormat === previouslyChosenFormat) {\n // If it can format the next (current) digits\n // using the previously chosen phone number format\n // then return the updated formatted number.\n return this.formatNextNationalNumberDigits(nextDigits);\n } else {\n // If a more appropriate phone number format\n // has been chosen for these \"leading digits\",\n // then re-format the national phone number part\n // using the newly selected format.\n return this.formatNextNationalNumberDigits(state.getNationalDigits());\n }\n }\n }\n }, {\n key: \"narrowDownMatchingFormats\",\n value: function narrowDownMatchingFormats(_ref2) {\n var _this2 = this;\n var nationalSignificantNumber = _ref2.nationalSignificantNumber,\n nationalPrefix = _ref2.nationalPrefix,\n international = _ref2.international;\n var leadingDigits = nationalSignificantNumber;\n\n // \"leading digits\" pattern list starts with a\n // \"leading digits\" pattern fitting a maximum of 3 leading digits.\n // So, after a user inputs 3 digits of a national (significant) phone number\n // this national (significant) number can already be formatted.\n // The next \"leading digits\" pattern is for 4 leading digits max,\n // and the \"leading digits\" pattern after it is for 5 leading digits max, etc.\n\n // This implementation is different from Google's\n // in that it searches for a fitting format\n // even if the user has entered less than\n // `MIN_LEADING_DIGITS_LENGTH` digits of a national number.\n // Because some leading digit patterns already match for a single first digit.\n var leadingDigitsPatternIndex = leadingDigits.length - MIN_LEADING_DIGITS_LENGTH;\n if (leadingDigitsPatternIndex < 0) {\n leadingDigitsPatternIndex = 0;\n }\n this.matchingFormats = this.matchingFormats.filter(function (format) {\n return _this2.formatSuits(format, international, nationalPrefix) && _this2.formatMatches(format, leadingDigits, leadingDigitsPatternIndex);\n });\n\n // If there was a phone number format chosen\n // and it no longer holds given the new leading digits then reset it.\n // The test for this `if` condition is marked as:\n // \"Reset a chosen format when it no longer holds given the new leading digits\".\n // To construct a valid test case for this one can find a country\n // in `PhoneNumberMetadata.xml` yielding one format for 3 ``\n // and yielding another format for 4 `` (Australia in this case).\n if (this.chosenFormat && this.matchingFormats.indexOf(this.chosenFormat) === -1) {\n this.resetFormat();\n }\n }\n }, {\n key: \"formatSuits\",\n value: function formatSuits(format, international, nationalPrefix) {\n // When a prefix before a national (significant) number is\n // simply a national prefix, then it's parsed as `this.nationalPrefix`.\n // In more complex cases, a prefix before national (significant) number\n // could include a national prefix as well as some \"capturing groups\",\n // and in that case there's no info whether a national prefix has been parsed.\n // If national prefix is not used when formatting a phone number\n // using this format, but a national prefix has been entered by the user,\n // and was extracted, then discard such phone number format.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L175-L184\n if (nationalPrefix && !format.usesNationalPrefix() &&\n // !format.domesticCarrierCodeFormattingRule() &&\n !format.nationalPrefixIsOptionalWhenFormattingInNationalFormat()) {\n return false;\n }\n // If national prefix is mandatory for this phone number format\n // and there're no guarantees that a national prefix is present in user input\n // then discard this phone number format as not suitable.\n // In Google's \"AsYouType\" formatter code, the equivalent would be this part:\n // https://github.com/google/libphonenumber/blob/0a45cfd96e71cad8edb0e162a70fcc8bd9728933/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L185-L193\n if (!international && !nationalPrefix && format.nationalPrefixIsMandatoryWhenFormattingInNationalFormat()) {\n return false;\n }\n return true;\n }\n }, {\n key: \"formatMatches\",\n value: function formatMatches(format, leadingDigits, leadingDigitsPatternIndex) {\n var leadingDigitsPatternsCount = format.leadingDigitsPatterns().length;\n\n // If this format is not restricted to a certain\n // leading digits pattern then it fits.\n // The test case could be found by searching for \"leadingDigitsPatternsCount === 0\".\n if (leadingDigitsPatternsCount === 0) {\n return true;\n }\n\n // Start narrowing down the list of possible formats based on the leading digits.\n // (only previously matched formats take part in the narrowing down process)\n\n // `leading_digits_patterns` start with 3 digits min\n // and then go up from there one digit at a time.\n leadingDigitsPatternIndex = Math.min(leadingDigitsPatternIndex, leadingDigitsPatternsCount - 1);\n var leadingDigitsPattern = format.leadingDigitsPatterns()[leadingDigitsPatternIndex];\n\n // Google imposes a requirement on the leading digits\n // to be minimum 3 digits long in order to be eligible\n // for checking those with a leading digits pattern.\n //\n // Since `leading_digits_patterns` start with 3 digits min,\n // Google's original `libphonenumber` library only starts\n // excluding any non-matching formats only when the\n // national number entered so far is at least 3 digits long,\n // otherwise format matching would give false negatives.\n //\n // For example, when the digits entered so far are `2`\n // and the leading digits pattern is `21` –\n // it's quite obvious in this case that the format could be the one\n // but due to the absence of further digits it would give false negative.\n //\n // Also, `leading_digits_patterns` doesn't always correspond to a single\n // digits count. For example, `60|8` pattern would already match `8`\n // but the `60` part would require having at least two leading digits,\n // so the whole pattern would require inputting two digits first in order to\n // decide on whether it matches the input, even when the input is \"80\".\n //\n // This library — `libphonenumber-js` — allows filtering by `leading_digits_patterns`\n // even when there's only 1 or 2 digits of the national (significant) number.\n // To do that, it uses a non-strict pattern matcher written specifically for that.\n //\n if (leadingDigits.length < MIN_LEADING_DIGITS_LENGTH) {\n // Before leading digits < 3 matching was implemented:\n // return true\n //\n // After leading digits < 3 matching was implemented:\n try {\n return new PatternMatcher(leadingDigitsPattern).match(leadingDigits, {\n allowOverflow: true\n }) !== undefined;\n } catch (error) /* istanbul ignore next */{\n // There's a slight possibility that there could be some undiscovered bug\n // in the pattern matcher code. Since the \"leading digits < 3 matching\"\n // feature is not \"essential\" for operation, it can fall back to the old way\n // in case of any issues rather than halting the application's execution.\n console.error(error);\n return true;\n }\n }\n\n // If at least `MIN_LEADING_DIGITS_LENGTH` digits of a national number are\n // available then use the usual regular expression matching.\n //\n // The whole pattern is wrapped in round brackets (`()`) because\n // the pattern can use \"or\" operator (`|`) at the top level of the pattern.\n //\n return new RegExp(\"^(\".concat(leadingDigitsPattern, \")\")).test(leadingDigits);\n }\n }, {\n key: \"getFormatFormat\",\n value: function getFormatFormat(format, international) {\n return international ? format.internationalFormat() : format.format();\n }\n }, {\n key: \"chooseFormat\",\n value: function chooseFormat(state) {\n var _this3 = this;\n var _loop = function _loop() {\n var format = _step2.value;\n // If this format is currently being used\n // and is still suitable, then stick to it.\n if (_this3.chosenFormat === format) {\n return 0; // break\n }\n // Sometimes, a formatting rule inserts additional digits in a phone number,\n // and \"as you type\" formatter can't do that: it should only use the digits\n // that the user has input.\n //\n // For example, in Argentina, there's a format for mobile phone numbers:\n //\n // {\n // \"pattern\": \"(\\\\d)(\\\\d{2})(\\\\d{4})(\\\\d{4})\",\n // \"leading_digits_patterns\": [\"91\"],\n // \"national_prefix_formatting_rule\": \"0$1\",\n // \"format\": \"$2 15-$3-$4\",\n // \"international_format\": \"$1 $2 $3-$4\"\n // }\n //\n // In that format, `international_format` is used instead of `format`\n // because `format` inserts `15` in the formatted number,\n // and `AsYouType` formatter should only use the digits\n // the user has actually input, without adding any extra digits.\n // In this case, it wouldn't make a difference, because the `15`\n // is first stripped when applying `national_prefix_for_parsing`\n // and then re-added when using `format`, so in reality it doesn't\n // add any new digits to the number, but to detect that, the code\n // would have to be more complex: it would have to try formatting\n // the digits using the format and then see if any digits have\n // actually been added or removed, and then, every time a new digit\n // is input, it should re-check whether the chosen format doesn't\n // alter the digits.\n //\n // Google's code doesn't go that far, and so does this library:\n // it simply requires that a `format` doesn't add any additonal\n // digits to user's input.\n //\n // Also, people in general should move from inputting phone numbers\n // in national format (possibly with national prefixes)\n // and use international phone number format instead:\n // it's a logical thing in the modern age of mobile phones,\n // globalization and the internet.\n //\n /* istanbul ignore if */\n if (!NON_ALTERING_FORMAT_REG_EXP.test(_this3.getFormatFormat(format, state.international))) {\n return 1; // continue\n }\n if (!_this3.createTemplateForFormat(format, state)) {\n // Remove the format if it can't generate a template.\n _this3.matchingFormats = _this3.matchingFormats.filter(function (_) {\n return _ !== format;\n });\n return 1; // continue\n }\n _this3.chosenFormat = format;\n return 0; // break\n },\n _ret;\n // When there are multiple available formats, the formatter uses the first\n // format where a formatting template could be created.\n //\n // For some weird reason, `istanbul` says \"else path not taken\"\n // for the `for of` line below. Supposedly that means that\n // the loop doesn't ever go over the last element in the list.\n // That's true because there always is `this.chosenFormat`\n // when `this.matchingFormats` is non-empty.\n // And, for some weird reason, it doesn't think that the case\n // with empty `this.matchingFormats` qualifies for a valid \"else\" path.\n // So simply muting this `istanbul` warning.\n // It doesn't skip the contents of the `for of` loop,\n // it just skips the `for of` line.\n //\n /* istanbul ignore next */\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.matchingFormats.slice()), _step2; !(_step2 = _iterator2()).done;) {\n _ret = _loop();\n if (_ret === 0) break;\n if (_ret === 1) continue;\n }\n if (!this.chosenFormat) {\n // No format matches the national (significant) phone number.\n this.resetFormat();\n }\n return this.chosenFormat;\n }\n }, {\n key: \"createTemplateForFormat\",\n value: function createTemplateForFormat(format, state) {\n // The formatter doesn't format numbers when numberPattern contains '|', e.g.\n // (20|3)\\d{4}. In those cases we quickly return.\n // (Though there's no such format in current metadata)\n /* istanbul ignore if */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS && format.pattern().indexOf('|') >= 0) {\n return;\n }\n // Get formatting template for this phone number format\n var template = this.getTemplateForFormat(format, state);\n // If the national number entered is too long\n // for any phone number format, then abort.\n if (template) {\n this.setNationalNumberTemplate(template, state);\n return true;\n }\n }\n }, {\n key: \"getSeparatorAfterNationalPrefix\",\n value: function getSeparatorAfterNationalPrefix(format) {\n // `US` metadata doesn't have a `national_prefix_formatting_rule`,\n // so the `if` condition below doesn't apply to `US`,\n // but in reality there shoudl be a separator\n // between a national prefix and a national (significant) number.\n // So `US` national prefix separator is a \"special\" \"hardcoded\" case.\n if (this.isNANP) {\n return ' ';\n }\n // If a `format` has a `national_prefix_formatting_rule`\n // and that rule has a separator after a national prefix,\n // then it means that there should be a separator\n // between a national prefix and a national (significant) number.\n if (format && format.nationalPrefixFormattingRule() && NATIONAL_PREFIX_SEPARATORS_PATTERN.test(format.nationalPrefixFormattingRule())) {\n return ' ';\n }\n // At this point, there seems to be no clear evidence that\n // there should be a separator between a national prefix\n // and a national (significant) number. So don't insert one.\n return '';\n }\n }, {\n key: \"getInternationalPrefixBeforeCountryCallingCode\",\n value: function getInternationalPrefixBeforeCountryCallingCode(_ref3, options) {\n var IDDPrefix = _ref3.IDDPrefix,\n missingPlus = _ref3.missingPlus;\n if (IDDPrefix) {\n return options && options.spacing === false ? IDDPrefix : IDDPrefix + ' ';\n }\n if (missingPlus) {\n return '';\n }\n return '+';\n }\n }, {\n key: \"getTemplate\",\n value: function getTemplate(state) {\n if (!this.template) {\n return;\n }\n // `this.template` holds the template for a \"complete\" phone number.\n // The currently entered phone number is most likely not \"complete\",\n // so trim all non-populated digits.\n var index = -1;\n var i = 0;\n var internationalPrefix = state.international ? this.getInternationalPrefixBeforeCountryCallingCode(state, {\n spacing: false\n }) : '';\n while (i < internationalPrefix.length + state.getDigitsWithoutInternationalPrefix().length) {\n index = this.template.indexOf(DIGIT_PLACEHOLDER, index + 1);\n i++;\n }\n return cutAndStripNonPairedParens(this.template, index + 1);\n }\n }, {\n key: \"setNationalNumberTemplate\",\n value: function setNationalNumberTemplate(template, state) {\n this.nationalNumberTemplate = template;\n this.populatedNationalNumberTemplate = template;\n // With a new formatting template, the matched position\n // using the old template needs to be reset.\n this.populatedNationalNumberTemplatePosition = -1;\n // For convenience, the public `.template` property\n // contains the whole international number\n // if the phone number being input is international:\n // 'x' for the '+' sign, 'x'es for the country phone code,\n // a spacebar and then the template for the formatted national number.\n if (state.international) {\n this.template = this.getInternationalPrefixBeforeCountryCallingCode(state).replace(/[\\d\\+]/g, DIGIT_PLACEHOLDER) + repeat(DIGIT_PLACEHOLDER, state.callingCode.length) + ' ' + template;\n } else {\n this.template = template;\n }\n }\n\n /**\n * Generates formatting template for a national phone number,\n * optionally containing a national prefix, for a format.\n * @param {Format} format\n * @param {string} nationalPrefix\n * @return {string}\n */\n }, {\n key: \"getTemplateForFormat\",\n value: function getTemplateForFormat(format, _ref4) {\n var nationalSignificantNumber = _ref4.nationalSignificantNumber,\n international = _ref4.international,\n nationalPrefix = _ref4.nationalPrefix,\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _ref4.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix;\n var pattern = format.pattern();\n\n /* istanbul ignore else */\n if (SUPPORT_LEGACY_FORMATTING_PATTERNS) {\n pattern = pattern\n // Replace anything in the form of [..] with \\d\n .replace(CREATE_CHARACTER_CLASS_PATTERN(), '\\\\d')\n // Replace any standalone digit (not the one in `{}`) with \\d\n .replace(CREATE_STANDALONE_DIGIT_PATTERN(), '\\\\d');\n }\n\n // Generate a dummy national number (consisting of `9`s)\n // that fits this format's `pattern`.\n //\n // This match will always succeed,\n // because the \"longest dummy phone number\"\n // has enough length to accomodate any possible\n // national phone number format pattern.\n //\n var digits = LONGEST_DUMMY_PHONE_NUMBER.match(pattern)[0];\n\n // If the national number entered is too long\n // for any phone number format, then abort.\n if (nationalSignificantNumber.length > digits.length) {\n return;\n }\n\n // Get a formatting template which can be used to efficiently format\n // a partial number where digits are added one by one.\n\n // Below `strictPattern` is used for the\n // regular expression (with `^` and `$`).\n // This wasn't originally in Google's `libphonenumber`\n // and I guess they don't really need it\n // because they're not using \"templates\" to format phone numbers\n // but I added `strictPattern` after encountering\n // South Korean phone number formatting bug.\n //\n // Non-strict regular expression bug demonstration:\n //\n // this.nationalSignificantNumber : `111111111` (9 digits)\n //\n // pattern : (\\d{2})(\\d{3,4})(\\d{4})\n // format : `$1 $2 $3`\n // digits : `9999999999` (10 digits)\n //\n // '9999999999'.replace(new RegExp(/(\\d{2})(\\d{3,4})(\\d{4})/g), '$1 $2 $3') = \"99 9999 9999\"\n //\n // template : xx xxxx xxxx\n //\n // But the correct template in this case is `xx xxx xxxx`.\n // The template was generated incorrectly because of the\n // `{3,4}` variability in the `pattern`.\n //\n // The fix is, if `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then `this.nationalSignificantNumber`\n // is used instead of `digits`.\n\n var strictPattern = new RegExp('^' + pattern + '$');\n var nationalNumberDummyDigits = nationalSignificantNumber.replace(/\\d/g, DUMMY_DIGIT);\n\n // If `this.nationalSignificantNumber` has already sufficient length\n // to satisfy the `pattern` completely then use it\n // instead of `digits`.\n if (strictPattern.test(nationalNumberDummyDigits)) {\n digits = nationalNumberDummyDigits;\n }\n var numberFormat = this.getFormatFormat(format, international);\n var nationalPrefixIncludedInTemplate;\n\n // If a user did input a national prefix (and that's guaranteed),\n // and if a `format` does have a national prefix formatting rule,\n // then see if that national prefix formatting rule\n // prepends exactly the same national prefix the user has input.\n // If that's the case, then use the `format` with the national prefix formatting rule.\n // Otherwise, use the `format` without the national prefix formatting rule,\n // and prepend a national prefix manually to it.\n if (this.shouldTryNationalPrefixFormattingRule(format, {\n international: international,\n nationalPrefix: nationalPrefix\n })) {\n var numberFormatWithNationalPrefix = numberFormat.replace(FIRST_GROUP_PATTERN, format.nationalPrefixFormattingRule());\n // If `national_prefix_formatting_rule` of a `format` simply prepends\n // national prefix at the start of a national (significant) number,\n // then such formatting can be used with `AsYouType` formatter.\n // There seems to be no `else` case: everywhere in metadata,\n // national prefix formatting rule is national prefix + $1,\n // or `($1)`, in which case such format isn't even considered\n // when the user has input a national prefix.\n /* istanbul ignore else */\n if (parseDigits(format.nationalPrefixFormattingRule()) === (nationalPrefix || '') + parseDigits('$1')) {\n numberFormat = numberFormatWithNationalPrefix;\n nationalPrefixIncludedInTemplate = true;\n // Replace all digits of the national prefix in the formatting template\n // with `DIGIT_PLACEHOLDER`s.\n if (nationalPrefix) {\n var i = nationalPrefix.length;\n while (i > 0) {\n numberFormat = numberFormat.replace(/\\d/, DIGIT_PLACEHOLDER);\n i--;\n }\n }\n }\n }\n\n // Generate formatting template for this phone number format.\n var template = digits\n // Format the dummy phone number according to the format.\n .replace(new RegExp(pattern), numberFormat)\n // Replace each dummy digit with a DIGIT_PLACEHOLDER.\n .replace(new RegExp(DUMMY_DIGIT, 'g'), DIGIT_PLACEHOLDER);\n\n // If a prefix of a national (significant) number is not as simple\n // as just a basic national prefix, then just prepend such prefix\n // before the national (significant) number, optionally spacing\n // the two with a whitespace.\n if (!nationalPrefixIncludedInTemplate) {\n if (prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix) {\n // Prepend the prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix.length) + ' ' + template;\n } else if (nationalPrefix) {\n // Prepend national prefix to the template manually.\n template = repeat(DIGIT_PLACEHOLDER, nationalPrefix.length) + this.getSeparatorAfterNationalPrefix(format) + template;\n }\n }\n if (international) {\n template = applyInternationalSeparatorStyle(template);\n }\n return template;\n }\n }, {\n key: \"formatNextNationalNumberDigits\",\n value: function formatNextNationalNumberDigits(digits) {\n var result = populateTemplateWithDigits(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition, digits);\n if (!result) {\n // Reset the format.\n this.resetFormat();\n return;\n }\n this.populatedNationalNumberTemplate = result[0];\n this.populatedNationalNumberTemplatePosition = result[1];\n\n // Return the formatted phone number so far.\n return cutAndStripNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1);\n\n // The old way which was good for `input-format` but is not so good\n // for `react-phone-number-input`'s default input (`InputBasic`).\n // return closeNonPairedParens(this.populatedNationalNumberTemplate, this.populatedNationalNumberTemplatePosition + 1)\n // \t.replace(new RegExp(DIGIT_PLACEHOLDER, 'g'), ' ')\n }\n }, {\n key: \"shouldTryNationalPrefixFormattingRule\",\n value: function shouldTryNationalPrefixFormattingRule(format, _ref5) {\n var international = _ref5.international,\n nationalPrefix = _ref5.nationalPrefix;\n if (format.nationalPrefixFormattingRule()) {\n // In some countries, `national_prefix_formatting_rule` is `($1)`,\n // so it applies even if the user hasn't input a national prefix.\n // `format.usesNationalPrefix()` detects such cases.\n var usesNationalPrefix = format.usesNationalPrefix();\n if (usesNationalPrefix && nationalPrefix || !usesNationalPrefix && !international) {\n return true;\n }\n }\n }\n }]);\n}();\nexport { AsYouTypeFormatter as default };\n//# sourceMappingURL=AsYouTypeFormatter.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport _extractCountryCallingCode from './helpers/extractCountryCallingCode.js';\nimport extractCountryCallingCodeFromInternationalNumberWithoutPlusSign from './helpers/extractCountryCallingCodeFromInternationalNumberWithoutPlusSign.js';\nimport extractNationalNumberFromPossiblyIncompleteNumber from './helpers/extractNationalNumberFromPossiblyIncompleteNumber.js';\nimport stripIddPrefix from './helpers/stripIddPrefix.js';\nimport parseDigits from './helpers/parseDigits.js';\nimport { VALID_DIGITS, VALID_PUNCTUATION, PLUS_CHARS } from './constants.js';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART = '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+';\nvar VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN = new RegExp('^' + VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART + '$', 'i');\nvar VALID_FORMATTED_PHONE_NUMBER_PART = '(?:' + '[' + PLUS_CHARS + ']' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']*' + '|' + '[' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + ')';\nvar AFTER_PHONE_NUMBER_DIGITS_END_PATTERN = new RegExp('[^' + VALID_PUNCTUATION + VALID_DIGITS + ']+' + '.*' + '$');\n\n// Tests whether `national_prefix_for_parsing` could match\n// different national prefixes.\n// Matches anything that's not a digit or a square bracket.\nvar COMPLEX_NATIONAL_PREFIX = /[^\\d\\[\\]]/;\nvar AsYouTypeParser = /*#__PURE__*/function () {\n function AsYouTypeParser(_ref) {\n var defaultCountry = _ref.defaultCountry,\n defaultCallingCode = _ref.defaultCallingCode,\n metadata = _ref.metadata,\n onNationalSignificantNumberChange = _ref.onNationalSignificantNumberChange;\n _classCallCheck(this, AsYouTypeParser);\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.metadata = metadata;\n this.onNationalSignificantNumberChange = onNationalSignificantNumberChange;\n }\n return _createClass(AsYouTypeParser, [{\n key: \"input\",\n value: function input(text, state) {\n var _extractFormattedDigi = extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi2 = _slicedToArray(_extractFormattedDigi, 2),\n formattedDigits = _extractFormattedDigi2[0],\n hasPlus = _extractFormattedDigi2[1];\n var digits = parseDigits(formattedDigits);\n // Checks for a special case: just a leading `+` has been entered.\n var justLeadingPlus;\n if (hasPlus) {\n if (!state.digits) {\n state.startInternationalNumber(undefined, undefined);\n if (!digits) {\n justLeadingPlus = true;\n }\n }\n }\n if (digits) {\n this.inputDigits(digits, state);\n }\n return {\n digits: digits,\n justLeadingPlus: justLeadingPlus\n };\n }\n\n /**\n * Inputs \"next\" phone number digits.\n * @param {string} digits\n * @return {string} [formattedNumber] Formatted national phone number (if it can be formatted at this stage). Returning `undefined` means \"don't format the national phone number at this stage\".\n */\n }, {\n key: \"inputDigits\",\n value: function inputDigits(nextDigits, state) {\n var digits = state.digits;\n var hasReceivedThreeLeadingDigits = digits.length < 3 && digits.length + nextDigits.length >= 3;\n\n // Append phone number digits.\n state.appendDigits(nextDigits);\n\n // Attempt to extract IDD prefix:\n // Some users input their phone number in international format,\n // but in an \"out-of-country\" dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers as soon as there're at least 3 digits.\n // Google's library attempts to extract IDD prefix at 3 digits,\n // so this library just copies that behavior.\n // I guess that's because the most commot IDD prefixes are\n // `00` (Europe) and `011` (US).\n // There exist really long IDD prefixes too:\n // for example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n // An IDD prefix is extracted here, and then every time when\n // there's a new digit and the number couldn't be formatted.\n if (hasReceivedThreeLeadingDigits) {\n this.extractIddPrefix(state);\n }\n if (this.isWaitingForCountryCallingCode(state)) {\n if (!this.extractCountryCallingCode(state)) {\n return;\n }\n } else {\n state.appendNationalSignificantNumberDigits(nextDigits);\n }\n\n // If a phone number is being input in international format,\n // then it's not valid for it to have a national prefix.\n // Still, some people incorrectly input such numbers with a national prefix.\n // In such cases, only attempt to strip a national prefix if the number becomes too long.\n // (but that is done later, not here)\n if (!state.international) {\n if (!this.hasExtractedNationalSignificantNumber) {\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }\n }, {\n key: \"isWaitingForCountryCallingCode\",\n value: function isWaitingForCountryCallingCode(_ref2) {\n var international = _ref2.international,\n callingCode = _ref2.callingCode;\n return international && !callingCode;\n }\n\n // Extracts a country calling code from a number\n // being entered in internatonal format.\n }, {\n key: \"extractCountryCallingCode\",\n value: function extractCountryCallingCode(state) {\n var _extractCountryCallin = _extractCountryCallingCode('+' + state.getDigitsWithoutInternationalPrefix(), state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n countryCallingCode = _extractCountryCallin.countryCallingCode,\n number = _extractCountryCallin.number;\n if (countryCallingCode) {\n state.setCallingCode(countryCallingCode);\n state.update({\n nationalSignificantNumber: number\n });\n return true;\n }\n }\n }, {\n key: \"reset\",\n value: function reset(numberingPlan) {\n if (numberingPlan) {\n this.hasSelectedNumberingPlan = true;\n var nationalPrefixForParsing = numberingPlan._nationalPrefixForParsing();\n this.couldPossiblyExtractAnotherNationalSignificantNumber = nationalPrefixForParsing && COMPLEX_NATIONAL_PREFIX.test(nationalPrefixForParsing);\n } else {\n this.hasSelectedNumberingPlan = undefined;\n this.couldPossiblyExtractAnotherNationalSignificantNumber = undefined;\n }\n }\n\n /**\n * Extracts a national (significant) number from user input.\n * Google's library is different in that it only applies `national_prefix_for_parsing`\n * and doesn't apply `national_prefix_transform_rule` after that.\n * https://github.com/google/libphonenumber/blob/a3d70b0487875475e6ad659af404943211d26456/java/libphonenumber/src/com/google/i18n/phonenumbers/AsYouTypeFormatter.java#L539\n * @return {boolean} [extracted]\n */\n }, {\n key: \"extractNationalSignificantNumber\",\n value: function extractNationalSignificantNumber(nationalDigits, setState) {\n if (!this.hasSelectedNumberingPlan) {\n return;\n }\n var _extractNationalNumbe = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe.nationalPrefix,\n nationalNumber = _extractNationalNumbe.nationalNumber,\n carrierCode = _extractNationalNumbe.carrierCode;\n if (nationalNumber === nationalDigits) {\n return;\n }\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n\n /**\n * In Google's code this function is called \"attempt to extract longer NDD\".\n * \"Some national prefixes are a substring of others\", they say.\n * @return {boolean} [result] — Returns `true` if extracting a national prefix produced different results from what they were.\n */\n }, {\n key: \"extractAnotherNationalSignificantNumber\",\n value: function extractAnotherNationalSignificantNumber(nationalDigits, prevNationalSignificantNumber, setState) {\n if (!this.hasExtractedNationalSignificantNumber) {\n return this.extractNationalSignificantNumber(nationalDigits, setState);\n }\n if (!this.couldPossiblyExtractAnotherNationalSignificantNumber) {\n return;\n }\n var _extractNationalNumbe2 = extractNationalNumberFromPossiblyIncompleteNumber(nationalDigits, this.metadata),\n nationalPrefix = _extractNationalNumbe2.nationalPrefix,\n nationalNumber = _extractNationalNumbe2.nationalNumber,\n carrierCode = _extractNationalNumbe2.carrierCode;\n // If a national prefix has been extracted previously,\n // then it's always extracted as additional digits are added.\n // That's assuming `extractNationalNumberFromPossiblyIncompleteNumber()`\n // doesn't do anything different from what it currently does.\n // So, just in case, here's this check, though it doesn't occur.\n /* istanbul ignore if */\n if (nationalNumber === prevNationalSignificantNumber) {\n return;\n }\n this.onExtractedNationalNumber(nationalPrefix, carrierCode, nationalNumber, nationalDigits, setState);\n return true;\n }\n }, {\n key: \"onExtractedNationalNumber\",\n value: function onExtractedNationalNumber(nationalPrefix, carrierCode, nationalSignificantNumber, nationalDigits, setState) {\n // Tells if the parsed national (significant) number is present as-is in the input string.\n // For example, when inputting \"0343515551212999\" Argentinian mobile number,\n // the parsed national (significant) number is \"93435551212999\".\n // There, one can see how it stripped \"0\" national prefix and prepended a \"9\",\n // because that's how it is instructed to do in Argentina's metadata.\n // So in the described example, the parsed national (significant) number is not present\n // as-is in the input string. Instead, it's \"modified\" in the input string.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n var nationalSignificantNumberIsModified = false;\n\n // In some countries, a phone number could have a prefix that is not a \"national prefix\"\n // but rather some other type of \"utility\" prefix.\n // For example, when calling within Australia, one could prepend `1831` prefix to hide\n // caller's phone number.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/METADATA.md#national_prefix_for_parsing--national_prefix_transform_rule\n var prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix;\n\n // `nationalSignificantNumber` could be empty. In that case, `.lastIndexOf()` still works correctly.\n var nationalSignificantNumberIndex = nationalDigits.lastIndexOf(nationalSignificantNumber);\n\n // If the parsed national (significant) number is the last substring of the `nationalDigits`,\n // then it means that it's present as-is in the input string.\n // In any other case, the parsed national (significant) number is \"modified\" in the input string.\n if (nationalSignificantNumberIndex < 0 || nationalSignificantNumberIndex !== nationalDigits.length - nationalSignificantNumber.length) {\n nationalSignificantNumberIsModified = true;\n } else {\n var prefixBeforeNationalNumber = nationalDigits.slice(0, nationalSignificantNumberIndex);\n // When national (significant) number is equal to the `nationalDigits`,\n // this `onExtractedNationalNumber()` function simply doesn't get called.\n // This means that at this point, `prefixBeforeNationalNumber` is always non-empty.\n // Still, added this `if` check just to prevent potential silly bugs.\n // The `!prefixBeforeNationalNumber` case is not really testable\n // so this line is exluded from the code coverage.\n /* istanbul ignore if */\n if (prefixBeforeNationalNumber) {\n if (prefixBeforeNationalNumber !== nationalPrefix) {\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = prefixBeforeNationalNumber;\n }\n }\n }\n setState({\n nationalPrefix: nationalPrefix,\n carrierCode: carrierCode,\n nationalSignificantNumber: nationalSignificantNumber,\n nationalSignificantNumberIsModified: nationalSignificantNumberIsModified,\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix: prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix\n });\n // `onExtractedNationalNumber()` is only called when\n // the national (significant) number actually did change.\n this.hasExtractedNationalSignificantNumber = true;\n this.onNationalSignificantNumberChange();\n }\n }, {\n key: \"reExtractNationalSignificantNumber\",\n value: function reExtractNationalSignificantNumber(state) {\n // Attempt to extract a national prefix.\n //\n // Some people incorrectly input national prefix\n // in an international phone number.\n // For example, some people write British phone numbers as `+44(0)...`.\n //\n // Also, in some rare cases, it is valid for a national prefix\n // to be a part of an international phone number.\n // For example, mobile phone numbers in Mexico are supposed to be\n // dialled internationally using a `1` national prefix,\n // so the national prefix will be part of an international number.\n //\n // Quote from:\n // https://www.mexperience.com/dialing-cell-phones-in-mexico/\n //\n // \"Dialing a Mexican cell phone from abroad\n // When you are calling a cell phone number in Mexico from outside Mexico,\n // it’s necessary to dial an additional “1” after Mexico’s country code\n // (which is “52”) and before the area code.\n // You also ignore the 045, and simply dial the area code and the\n // cell phone’s number.\n //\n // If you don’t add the “1”, you’ll receive a recorded announcement\n // asking you to redial using it.\n //\n // For example, if you are calling from the USA to a cell phone\n // in Mexico City, you would dial +52 – 1 – 55 – 1234 5678.\n // (Note that this is different to calling a land line in Mexico City\n // from abroad, where the number dialed would be +52 – 55 – 1234 5678)\".\n //\n // Google's demo output:\n // https://libphonenumber.appspot.com/phonenumberparser?number=%2b5215512345678&country=MX\n //\n if (this.extractAnotherNationalSignificantNumber(state.getNationalDigits(), state.nationalSignificantNumber, function (stateUpdate) {\n return state.update(stateUpdate);\n })) {\n return true;\n }\n // If no format matches the phone number, then it could be\n // \"a really long IDD\" (quote from a comment in Google's library).\n // An IDD prefix is first extracted when the user has entered at least 3 digits,\n // and then here — every time when there's a new digit and the number\n // couldn't be formatted.\n // For example, in Australia the default IDD prefix is `0011`,\n // and it could even be as long as `14880011`.\n //\n // Could also check `!hasReceivedThreeLeadingDigits` here\n // to filter out the case when this check duplicates the one\n // already performed when there're 3 leading digits,\n // but it's not a big deal, and in most cases there\n // will be a suitable `format` when there're 3 leading digits.\n //\n if (this.extractIddPrefix(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n // Google's AsYouType formatter supports sort of an \"autocorrection\" feature\n // when it \"autocorrects\" numbers that have been input for a country\n // with that country's calling code.\n // Such \"autocorrection\" feature looks weird, but different people have been requesting it:\n // https://github.com/catamphetamine/libphonenumber-js/issues/376\n // https://github.com/catamphetamine/libphonenumber-js/issues/375\n // https://github.com/catamphetamine/libphonenumber-js/issues/316\n if (this.fixMissingPlus(state)) {\n this.extractCallingCodeAndNationalSignificantNumber(state);\n return true;\n }\n }\n }, {\n key: \"extractIddPrefix\",\n value: function extractIddPrefix(state) {\n // An IDD prefix can't be present in a number written with a `+`.\n // Also, don't re-extract an IDD prefix if has already been extracted.\n var international = state.international,\n IDDPrefix = state.IDDPrefix,\n digits = state.digits,\n nationalSignificantNumber = state.nationalSignificantNumber;\n if (international || IDDPrefix) {\n return;\n }\n // Some users input their phone number in \"out-of-country\"\n // dialing format instead of using the leading `+`.\n // https://github.com/catamphetamine/libphonenumber-js/issues/185\n // Detect such numbers.\n var numberWithoutIDD = stripIddPrefix(digits, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata);\n if (numberWithoutIDD !== undefined && numberWithoutIDD !== digits) {\n // If an IDD prefix was stripped then convert the IDD-prefixed number\n // to international number for subsequent parsing.\n state.update({\n IDDPrefix: digits.slice(0, digits.length - numberWithoutIDD.length)\n });\n this.startInternationalNumber(state, {\n country: undefined,\n callingCode: undefined\n });\n return true;\n }\n }\n }, {\n key: \"fixMissingPlus\",\n value: function fixMissingPlus(state) {\n if (!state.international) {\n var _extractCountryCallin2 = extractCountryCallingCodeFromInternationalNumberWithoutPlusSign(state.digits, state.country, this.defaultCountry, this.defaultCallingCode, this.metadata.metadata),\n newCallingCode = _extractCountryCallin2.countryCallingCode;\n if (newCallingCode) {\n state.update({\n missingPlus: true\n });\n this.startInternationalNumber(state, {\n country: state.country,\n callingCode: newCallingCode\n });\n return true;\n }\n }\n }\n }, {\n key: \"startInternationalNumber\",\n value: function startInternationalNumber(state, _ref3) {\n var country = _ref3.country,\n callingCode = _ref3.callingCode;\n state.startInternationalNumber(country, callingCode);\n // If a national (significant) number has been extracted before, reset it.\n if (state.nationalSignificantNumber) {\n state.resetNationalSignificantNumber();\n this.onNationalSignificantNumberChange();\n this.hasExtractedNationalSignificantNumber = undefined;\n }\n }\n }, {\n key: \"extractCallingCodeAndNationalSignificantNumber\",\n value: function extractCallingCodeAndNationalSignificantNumber(state) {\n if (this.extractCountryCallingCode(state)) {\n // `this.extractCallingCode()` is currently called when the number\n // couldn't be formatted during the standard procedure.\n // Normally, the national prefix would be re-extracted\n // for an international number if such number couldn't be formatted,\n // but since it's already not able to be formatted,\n // there won't be yet another retry, so also extract national prefix here.\n this.extractNationalSignificantNumber(state.getNationalDigits(), function (stateUpdate) {\n return state.update(stateUpdate);\n });\n }\n }\n }]);\n}();\n/**\n * Extracts formatted phone number from text (if there's any).\n * @param {string} text\n * @return {string} [formattedPhoneNumber]\n */\nexport { AsYouTypeParser as default };\nfunction extractFormattedPhoneNumber(text) {\n // Attempt to extract a possible number from the string passed in.\n var startsAt = text.search(VALID_FORMATTED_PHONE_NUMBER_PART);\n if (startsAt < 0) {\n return;\n }\n // Trim everything to the left of the phone number.\n text = text.slice(startsAt);\n // Trim the `+`.\n var hasPlus;\n if (text[0] === '+') {\n hasPlus = true;\n text = text.slice('+'.length);\n }\n // Trim everything to the right of the phone number.\n text = text.replace(AFTER_PHONE_NUMBER_DIGITS_END_PATTERN, '');\n // Re-add the previously trimmed `+`.\n if (hasPlus) {\n text = '+' + text;\n }\n return text;\n}\n\n/**\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\n * @param {string} text\n * @return {any[]}\n */\nfunction _extractFormattedDigitsAndPlus(text) {\n // Extract a formatted phone number part from text.\n var extractedNumber = extractFormattedPhoneNumber(text) || '';\n // Trim a `+`.\n if (extractedNumber[0] === '+') {\n return [extractedNumber.slice('+'.length), true];\n }\n return [extractedNumber];\n}\n\n/**\n * Extracts formatted phone number digits (and a `+`) from text (if there're any).\n * @param {string} text\n * @return {any[]}\n */\nexport function extractFormattedDigitsAndPlus(text) {\n var _extractFormattedDigi3 = _extractFormattedDigitsAndPlus(text),\n _extractFormattedDigi4 = _slicedToArray(_extractFormattedDigi3, 2),\n formattedDigits = _extractFormattedDigi4[0],\n hasPlus = _extractFormattedDigi4[1];\n // If the extracted phone number part\n // can possibly be a part of some valid phone number\n // then parse phone number characters from a formatted phone number.\n if (!VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN.test(formattedDigits)) {\n formattedDigits = '';\n }\n return [formattedDigits, hasPlus];\n}\n//# sourceMappingURL=AsYouTypeParser.js.map","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport Metadata from './metadata.js';\nimport PhoneNumber from './PhoneNumber.js';\nimport checkNumberLength from './helpers/checkNumberLength.js';\nimport AsYouTypeState from './AsYouTypeState.js';\nimport AsYouTypeFormatter, { DIGIT_PLACEHOLDER } from './AsYouTypeFormatter.js';\nimport AsYouTypeParser, { extractFormattedDigitsAndPlus } from './AsYouTypeParser.js';\nimport getCountryByCallingCode from './helpers/getCountryByCallingCode.js';\nimport getCountryByNationalNumber from './helpers/getCountryByNationalNumber.js';\nimport isObject from './helpers/isObject.js';\nvar USE_NON_GEOGRAPHIC_COUNTRY_CODE = false;\nvar AsYouType = /*#__PURE__*/function () {\n /**\n * @param {(string|object)?} [optionsOrDefaultCountry] - The default country used for parsing non-international phone numbers. Can also be an `options` object.\n * @param {Object} metadata\n */\n function AsYouType(optionsOrDefaultCountry, metadata) {\n _classCallCheck(this, AsYouType);\n // Metadata instance is created once and stays constant.\n // This is required because other utility classes such as `AsYouTypeFormatter`\n // will use this metadata instance \"reference\" and will assume that it stays constant.\n this.metadata = new Metadata(metadata);\n var _this$getCountryAndCa = this.getCountryAndCallingCode(optionsOrDefaultCountry),\n _this$getCountryAndCa2 = _slicedToArray(_this$getCountryAndCa, 2),\n defaultCountry = _this$getCountryAndCa2[0],\n defaultCallingCode = _this$getCountryAndCa2[1];\n // `this.defaultCountry` and `this.defaultCallingCode` aren't required to be in sync.\n // For example, `this.defaultCountry` could be `\"AR\"` and `this.defaultCallingCode` could be `undefined`.\n // So `this.defaultCountry` and `this.defaultCallingCode` are totally independent.\n this.defaultCountry = defaultCountry;\n this.defaultCallingCode = defaultCallingCode;\n this.reset();\n }\n return _createClass(AsYouType, [{\n key: \"getCountryAndCallingCode\",\n value: function getCountryAndCallingCode(optionsOrDefaultCountry) {\n // Set `defaultCountry` and `defaultCallingCode` options.\n var defaultCountry;\n var defaultCallingCode;\n // Turns out `null` also has type \"object\". Weird.\n if (optionsOrDefaultCountry) {\n if (isObject(optionsOrDefaultCountry)) {\n defaultCountry = optionsOrDefaultCountry.defaultCountry;\n defaultCallingCode = optionsOrDefaultCountry.defaultCallingCode;\n } else {\n defaultCountry = optionsOrDefaultCountry;\n }\n }\n if (defaultCountry && !this.metadata.hasCountry(defaultCountry)) {\n defaultCountry = undefined;\n }\n if (defaultCallingCode) {\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n if (this.metadata.isNonGeographicCallingCode(defaultCallingCode)) {\n defaultCountry = '001';\n }\n }\n }\n return [defaultCountry, defaultCallingCode];\n }\n\n /**\n * Inputs \"next\" phone number characters.\n * @param {string} text\n * @return {string} Formatted phone number characters that have been input so far.\n */\n }, {\n key: \"input\",\n value: function input(text) {\n var _this$parser$input = this.parser.input(text, this.state),\n digits = _this$parser$input.digits,\n justLeadingPlus = _this$parser$input.justLeadingPlus;\n if (justLeadingPlus) {\n this.formattedOutput = '+';\n } else if (digits) {\n this.determineTheCountryIfNeeded();\n // Match the available formats by the currently available leading digits.\n if (this.state.nationalSignificantNumber) {\n this.formatter.narrowDownMatchingFormats(this.state);\n }\n var formattedNationalNumber;\n if (this.metadata.hasSelectedNumberingPlan()) {\n formattedNationalNumber = this.formatter.format(digits, this.state);\n }\n if (formattedNationalNumber === undefined) {\n // See if another national (significant) number could be re-extracted.\n if (this.parser.reExtractNationalSignificantNumber(this.state)) {\n this.determineTheCountryIfNeeded();\n // If it could, then re-try formatting the new national (significant) number.\n var nationalDigits = this.state.getNationalDigits();\n if (nationalDigits) {\n formattedNationalNumber = this.formatter.format(nationalDigits, this.state);\n }\n }\n }\n this.formattedOutput = formattedNationalNumber ? this.getFullNumber(formattedNationalNumber) : this.getNonFormattedNumber();\n }\n return this.formattedOutput;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n var _this = this;\n this.state = new AsYouTypeState({\n onCountryChange: function onCountryChange(country) {\n // Before version `1.6.0`, the official `AsYouType` formatter API\n // included a `.country` property on an `AsYouType` instance.\n // Since that property (along with the others) have been moved to\n // `this.state`, `this.country` property is emulated for compatibility\n // with the old versions.\n _this.country = country;\n },\n onCallingCodeChange: function onCallingCodeChange(callingCode, country) {\n _this.metadata.selectNumberingPlan(country || callingCode);\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n _this.parser.reset(_this.metadata.numberingPlan);\n }\n });\n this.formatter = new AsYouTypeFormatter({\n state: this.state,\n metadata: this.metadata\n });\n this.parser = new AsYouTypeParser({\n defaultCountry: this.defaultCountry,\n defaultCallingCode: this.defaultCallingCode,\n metadata: this.metadata,\n state: this.state,\n onNationalSignificantNumberChange: function onNationalSignificantNumberChange() {\n _this.determineTheCountryIfNeeded();\n _this.formatter.reset(_this.metadata.numberingPlan, _this.state);\n }\n });\n this.state.reset({\n country: this.defaultCountry,\n callingCode: this.defaultCallingCode\n });\n this.formattedOutput = '';\n return this;\n }\n\n /**\n * Returns `true` if the phone number is being input in international format.\n * In other words, returns `true` if and only if the parsed phone number starts with a `\"+\"`.\n * @return {boolean}\n */\n }, {\n key: \"isInternational\",\n value: function isInternational() {\n return this.state.international;\n }\n\n /**\n * Returns the \"calling code\" part of the phone number when it's being input\n * in an international format.\n * If no valid calling code has been entered so far, returns `undefined`.\n * @return {string} [callingCode]\n */\n }, {\n key: \"getCallingCode\",\n value: function getCallingCode() {\n // If the number is being input in national format and some \"default calling code\"\n // has been passed to `AsYouType` constructor, then `this.state.callingCode`\n // is equal to that \"default calling code\".\n //\n // If the number is being input in national format and no \"default calling code\"\n // has been passed to `AsYouType` constructor, then returns `undefined`,\n // even if a \"default country\" has been passed to `AsYouType` constructor.\n //\n if (this.isInternational()) {\n return this.state.callingCode;\n }\n }\n\n // A legacy alias.\n }, {\n key: \"getCountryCallingCode\",\n value: function getCountryCallingCode() {\n return this.getCallingCode();\n }\n\n /**\n * Returns a two-letter country code of the phone number.\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\n * Returns `undefined` if no phone number has been input yet.\n * @return {string} [country]\n */\n }, {\n key: \"getCountry\",\n value: function getCountry() {\n var digits = this.state.digits;\n // Return `undefined` if no digits have been input yet.\n if (digits) {\n return this._getCountry();\n }\n }\n\n /**\n * Returns a two-letter country code of the phone number.\n * Returns `undefined` for \"non-geographic\" phone numbering plans.\n * @return {string} [country]\n */\n }, {\n key: \"_getCountry\",\n value: function _getCountry() {\n var country = this.state.country;\n /* istanbul ignore if */\n if (USE_NON_GEOGRAPHIC_COUNTRY_CODE) {\n // `AsYouType.getCountry()` returns `undefined`\n // for \"non-geographic\" phone numbering plans.\n if (country === '001') {\n return;\n }\n }\n return country;\n }\n }, {\n key: \"determineTheCountryIfNeeded\",\n value: function determineTheCountryIfNeeded() {\n // Suppose a user enters a phone number in international format,\n // and there're several countries corresponding to that country calling code,\n // and a country has been derived from the number, and then\n // a user enters one more digit and the number is no longer\n // valid for the derived country, so the country should be re-derived\n // on every new digit in those cases.\n //\n // If the phone number is being input in national format,\n // then it could be a case when `defaultCountry` wasn't specified\n // when creating `AsYouType` instance, and just `defaultCallingCode` was specified,\n // and that \"calling code\" could correspond to a \"non-geographic entity\",\n // or there could be several countries corresponding to that country calling code.\n // In those cases, `this.country` is `undefined` and should be derived\n // from the number. Again, if country calling code is ambiguous, then\n // `this.country` should be re-derived with each new digit.\n //\n if (!this.state.country || this.isCountryCallingCodeAmbiguous()) {\n this.determineTheCountry();\n }\n }\n\n // Prepends `+CountryCode ` in case of an international phone number\n }, {\n key: \"getFullNumber\",\n value: function getFullNumber(formattedNationalNumber) {\n var _this2 = this;\n if (this.isInternational()) {\n var prefix = function prefix(text) {\n return _this2.formatter.getInternationalPrefixBeforeCountryCallingCode(_this2.state, {\n spacing: text ? true : false\n }) + text;\n };\n var callingCode = this.state.callingCode;\n if (!callingCode) {\n return prefix(\"\".concat(this.state.getDigitsWithoutInternationalPrefix()));\n }\n if (!formattedNationalNumber) {\n return prefix(callingCode);\n }\n return prefix(\"\".concat(callingCode, \" \").concat(formattedNationalNumber));\n }\n return formattedNationalNumber;\n }\n }, {\n key: \"getNonFormattedNationalNumberWithPrefix\",\n value: function getNonFormattedNationalNumberWithPrefix() {\n var _this$state = this.state,\n nationalSignificantNumber = _this$state.nationalSignificantNumber,\n prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix = _this$state.prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix,\n nationalPrefix = _this$state.nationalPrefix;\n var number = nationalSignificantNumber;\n var prefix = prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix || nationalPrefix;\n if (prefix) {\n number = prefix + number;\n }\n return number;\n }\n }, {\n key: \"getNonFormattedNumber\",\n value: function getNonFormattedNumber() {\n var nationalSignificantNumberIsModified = this.state.nationalSignificantNumberIsModified;\n return this.getFullNumber(nationalSignificantNumberIsModified ? this.state.getNationalDigits() : this.getNonFormattedNationalNumberWithPrefix());\n }\n }, {\n key: \"getNonFormattedTemplate\",\n value: function getNonFormattedTemplate() {\n var number = this.getNonFormattedNumber();\n if (number) {\n return number.replace(/[\\+\\d]/g, DIGIT_PLACEHOLDER);\n }\n }\n }, {\n key: \"isCountryCallingCodeAmbiguous\",\n value: function isCountryCallingCodeAmbiguous() {\n var callingCode = this.state.callingCode;\n var countryCodes = this.metadata.getCountryCodesForCallingCode(callingCode);\n return countryCodes && countryCodes.length > 1;\n }\n\n // Determines the exact country of the phone number\n // entered so far based on the country phone code\n // and the national phone number.\n }, {\n key: \"determineTheCountry\",\n value: function determineTheCountry() {\n // Get a more precise country code for this national number.\n // It is possible that the precise country couldn't be determined\n // in cases when there're multiple countries sharing the same calling code.\n // In that case, `country` will be `undefined`.\n var country = getCountryByCallingCode(this.isInternational() ? this.state.callingCode : this.defaultCallingCode, {\n nationalNumber: this.state.nationalSignificantNumber,\n metadata: this.metadata\n });\n // If the derived country is indeed more precise,\n // or if no country could be derived for the updated phone number.\n if (country !== this.state.country) {\n // Set (or reset) the more precise country.\n this.state.setCountry(country);\n // If a more precise country could be derived.\n if (country) {\n // Select a more precise telephone numbering plan.\n // For example, consider that `AsYouType` instance was created with `defaultCountry: \"US\"` argument.\n // In that case, the metadata instance will be using \"US\" metadata.\n // But then the user could input a Canadian phone number, in which case\n // the metadata instance should be switched to Canadian telephone numbering plan.\n // It is required to do that because later `canFormatCompleteNumber()` function will be called,\n // and that function relies on the precise country being pre-selected in the metadata instance.\n // Or, for example, `checkNumberLength()` function also relies on same thing.\n this.metadata.selectNumberingPlan(country);\n }\n }\n }\n\n /**\n * Returns a E.164 phone number value for the user's input.\n *\n * For example, for country `\"US\"` and input `\"(222) 333-4444\"`\n * it will return `\"+12223334444\"`.\n *\n * For international phone number input, it will also auto-correct\n * some minor errors such as using a national prefix when writing\n * an international phone number. For example, if the user inputs\n * `\"+44 0 7400 000000\"` then it will return an auto-corrected\n * `\"+447400000000\"` phone number value.\n *\n * Will return `undefined` if no digits have been input,\n * or when inputting a phone number in national format and no\n * default country or default \"country calling code\" have been set.\n *\n * @return {string} [value]\n */\n }, {\n key: \"getNumberValue\",\n value: function getNumberValue() {\n var _this$state2 = this.state,\n digits = _this$state2.digits,\n callingCode = _this$state2.callingCode,\n country = _this$state2.country,\n nationalSignificantNumber = _this$state2.nationalSignificantNumber;\n\n // Will return `undefined` if no digits have been input.\n if (!digits) {\n return;\n }\n if (this.isInternational()) {\n if (callingCode) {\n return '+' + callingCode + nationalSignificantNumber;\n } else {\n return '+' + digits;\n }\n } else {\n if (country || callingCode) {\n var callingCode_ = country ? this.metadata.countryCallingCode() : callingCode;\n return '+' + callingCode_ + nationalSignificantNumber;\n }\n }\n }\n\n /**\n * Returns an instance of `PhoneNumber` class.\n * Will return `undefined` if no national (significant) number\n * digits have been entered so far, or if no `defaultCountry` has been\n * set and the user enters a phone number not in international format.\n */\n }, {\n key: \"getNumber\",\n value: function getNumber() {\n var _this$state3 = this.state,\n nationalSignificantNumber = _this$state3.nationalSignificantNumber,\n carrierCode = _this$state3.carrierCode,\n callingCode = _this$state3.callingCode;\n if (!nationalSignificantNumber) {\n return;\n }\n\n // `this._getCountry()` is basically same as `this.state.country`\n // with the only change that it returns `undefined` in case of a\n // \"non-geographic\" numbering plan instead of `\"001\"` \"internal use\" value.\n var country = this._getCountry();\n\n // Sidenote:\n // `state.callingCode` and `state.country` are somewhat independent from one another\n // and there could be situations when one is defined but the other is not.\n // See the comment in `AsYouTypeState.js` for more info on when that is possible.\n\n if (!country && !callingCode) {\n return;\n }\n\n // By default, if `defaultCountry` parameter was passed when\n // creating `AsYouType` instance, `state.country` is gonna be\n // that `defaultCountry`, which doesn't entirely conform with\n // `parsePhoneNumber()`'s behavior where it attempts to determine\n // the country more precisely in cases when multiple countries\n // could correspond to the same `countryCallingCode`.\n // https://gitlab.com/catamphetamine/libphonenumber-js/-/issues/103#note_1417192969\n //\n // Because `AsYouType.getNumber()` method is supposed to be a 1:1\n // equivalent for `parsePhoneNumber(AsYouType.getNumberValue())`,\n // it means that it should also behave accordingly in such cases of `country` ambiguity.\n // That's how users of this library would expect it to behave anyway.\n //\n // So here it checks if `state.country` is same as the `defaultCountry`,\n // and if it is, it attempts to get rid of any potential ambiguity.\n //\n if (country) {\n if (country === this.defaultCountry) {\n // // Create a `Metadata` instance just to get the calling code of the `country`.\n // const metadata = new Metadata(this.metadata.metadata)\n // // `state.callingCode` and `state.country` are somewhat independent from one another\n // // and there could be situations when one is defined but the other is not.\n // // See the comment in `AsYouTypeState.js` for more info on when that is possible.\n // // Here, it only passes `state.country` because there's no need to pass `state.callingCode`\n // // because `state.country` is known to be defined.\n // metadata.selectNumberingPlan(country)\n // const countryCallingCode = metadata.numberingPlan.callingCode()\n\n // Instead of getting `countryCallingCode` value above,\n // it could simply read it from the existing metadata instance.\n var countryCallingCode = this.metadata.numberingPlan.callingCode();\n\n // Attempt to rule out any potential country code ambiguity, if present.\n var exactCountry = getExactCountryForMultiCountryCallingCode(countryCallingCode, nationalSignificantNumber, this.metadata);\n if (exactCountry) {\n country = exactCountry;\n }\n }\n }\n var phoneNumber = new PhoneNumber(country || callingCode, nationalSignificantNumber, this.metadata.metadata);\n if (carrierCode) {\n phoneNumber.carrierCode = carrierCode;\n }\n // Phone number extensions are not supported by \"As You Type\" formatter.\n return phoneNumber;\n }\n\n /**\n * Returns `true` if the phone number is \"possible\".\n * Is just a shortcut for `PhoneNumber.isPossible()`.\n * @return {boolean}\n */\n }, {\n key: \"isPossible\",\n value: function isPossible() {\n var phoneNumber = this.getNumber();\n if (!phoneNumber) {\n return false;\n }\n return phoneNumber.isPossible();\n }\n\n /**\n * Returns `true` if the phone number is \"valid\".\n * Is just a shortcut for `PhoneNumber.isValid()`.\n * @return {boolean}\n */\n }, {\n key: \"isValid\",\n value: function isValid() {\n var phoneNumber = this.getNumber();\n if (!phoneNumber) {\n return false;\n }\n return phoneNumber.isValid();\n }\n\n /**\n * Checks if the phone number length is valid.\n * If it is, nothing is returned.\n * Otherwise, a rejection reason is returned.\n * @return {string?}\n */\n }, {\n key: \"validateLength\",\n value: function validateLength() {\n var _this$state4 = this.state,\n digits = _this$state4.digits,\n nationalSignificantNumber = _this$state4.nationalSignificantNumber;\n if (!digits) {\n return 'NOT_A_NUMBER';\n }\n if (!this.metadata.numberingPlan) {\n return 'INVALID_COUNTRY';\n }\n if (!nationalSignificantNumber) {\n return 'TOO_SHORT';\n }\n\n // `state.callingCode` and `state.country` are somewhat independent from one another\n // and there could be situations when one is defined but the other is not.\n // See the comment in `AsYouTypeState.js` for more info on when that is possible.\n // Here, it uses both: if `country` is defined then it will use that,\n // otherwise it will use `callingCode`.\n var result = checkNumberLength(nationalSignificantNumber, undefined, this.metadata);\n if (result !== 'IS_POSSIBLE') {\n return result;\n }\n }\n\n /**\n * @deprecated\n * This method is used in `react-phone-number-input/source/input-control.js`\n * in versions before `3.0.16`.\n */\n }, {\n key: \"getNationalNumber\",\n value: function getNationalNumber() {\n return this.state.nationalSignificantNumber;\n }\n\n /**\n * Returns the phone number characters entered by the user.\n * @return {string}\n */\n }, {\n key: \"getChars\",\n value: function getChars() {\n return (this.state.international ? '+' : '') + this.state.digits;\n }\n\n /**\n * Returns the template for the formatted phone number.\n * @return {string}\n */\n }, {\n key: \"getTemplate\",\n value: function getTemplate() {\n return this.formatter.getTemplate(this.state) || this.getNonFormattedTemplate() || '';\n }\n }]);\n}(); // In situations when multiple countries use the same calling code,\n// this function tells what exact country does a given national (significant) number belong to.\nexport { AsYouType as default };\nfunction getExactCountryForMultiCountryCallingCode(callingCode, nationalSignificantNumber, metadata) {\n var ambiguousCountries = metadata.getCountryCodesForCallingCode(callingCode);\n if (ambiguousCountries.length > 1) {\n return getCountryByNationalNumber(nationalSignificantNumber, ambiguousCountries, metadata.metadata);\n }\n}\n//# sourceMappingURL=AsYouType.js.map","// Importing from a \".js\" file is a workaround for Node.js \"ES Modules\"\n// importing system which is even uncapable of importing \"*.json\" files.\nimport metadata from '../../metadata.mobile.json.js'\n\nimport { AsYouType as _AsYouType } from '../../core/index.js'\n\nexport function AsYouType(country) {\n\treturn _AsYouType.call(this, country, metadata)\n}\n\nAsYouType.prototype = Object.create(_AsYouType.prototype, {})\nAsYouType.prototype.constructor = AsYouType","import PhoneNumber from './PhoneNumber.js';\nexport default function getExampleNumber(country, examples, metadata) {\n if (examples[country]) {\n return new PhoneNumber(country, examples[country], metadata);\n }\n}\n//# sourceMappingURL=getExampleNumber.js.map","import withMetadataArgument from './withMetadataArgument.js'\nimport { getExampleNumber as _getExampleNumber } from '../../core/index.js'\n\nexport function getExampleNumber() {\n\treturn withMetadataArgument(_getExampleNumber, arguments)\n}"],"names":["__webpack_exports__","A","AC","AD","AE","AF","AG","AI","AL","AM","AO","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GT","GU","GW","GY","HK","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TA","TC","TD","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XK","YE","YT","ZA","ZM","ZW","_typeof","o","Symbol","iterator","constructor","prototype","_defineProperties","e","r","t","length","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","i","toPrimitive","call","TypeError","String","_toPrimitive","AsYouTypeState","_ref","onCountryChange","onCallingCodeChange","a","n","_classCallCheck","this","value","_ref2","country","callingCode","international","missingPlus","IDDPrefix","undefined","digits","resetNationalSignificantNumber","initCountryAndCallingCode","nationalSignificantNumber","getNationalDigits","nationalSignificantNumberIsModified","nationalPrefix","carrierCode","prefixBeforeNationalSignificantNumberThatIsNotNationalPrefix","properties","_i","_Object$keys","keys","setCountry","setCallingCode","nextDigits","slice","_arrayLikeToArray","Array","DIGIT_PLACEHOLDER","DIGIT_PLACEHOLDER_MATCHER","RegExp","repeat","string","times","result","cutAndStripNonPairedParens","cutBeforeIndex","dangling_braces","push","pop","start","cleared_string","_dangling_braces","index","stripNonPairedParens","formatCompleteNumber","state","format","metadata","shouldTryNationalPrefixFormattingRule","getSeparatorAfterNationalPrefix","concat","pattern","test","formattedNumber","formatNationalNumber","useNationalPrefixFormattingRule","formatNationalNumberWithAndWithoutNationalPrefixFormattingRule","_ref3","formattedNationalNumber","formatNationalNumberUsingFormat","useInternationalFormat","withNationalPrefix","parseDigits","Ay","isValidFormattedNationalNumber","AsYouTypeFormatter_PatternParser_typeof","AsYouTypeFormatter_PatternParser_defineProperties","AsYouTypeFormatter_PatternParser_toPropertyKey","AsYouTypeFormatter_PatternParser_toPrimitive","PatternParser","AsYouTypeFormatter_PatternParser_classCallCheck","context","or","instructions","parsePattern","Error","_this$context$","branches","op","args","expandSingleElementArray","match","OPERATOR","operator","before","rightPart","startContext","getContext","endContext","oneOfSet","parseOneOfSet","ILLEGAL_CHARACTER_REGEXP","split","values","prevValue","charCodeAt","nextValue","fromCharCode","array","AsYouTypeFormatter_PatternMatcher_createForOfIteratorHelperLoose","next","bind","isArray","AsYouTypeFormatter_PatternMatcher_arrayLikeToArray","toString","name","from","AsYouTypeFormatter_PatternMatcher_unsupportedIterableToArray","done","AsYouTypeFormatter_PatternMatcher_typeof","AsYouTypeFormatter_PatternMatcher_defineProperties","AsYouTypeFormatter_PatternMatcher_toPropertyKey","AsYouTypeFormatter_PatternMatcher_toPrimitive","PatternMatcher","AsYouTypeFormatter_PatternMatcher_classCallCheck","matchTree","parse","allowOverflow","arguments","_match","matchedChars","overflow","characters","tree","last","characterString","join","indexOf","partialMatch","restCharacters","JSON","stringify","_step","_iterator","_result","_step2","_iterator2","_char","AsYouTypeFormatter_typeof","AsYouTypeFormatter_createForOfIteratorHelperLoose","AsYouTypeFormatter_arrayLikeToArray","AsYouTypeFormatter_unsupportedIterableToArray","AsYouTypeFormatter_defineProperties","AsYouTypeFormatter_toPropertyKey","AsYouTypeFormatter_toPrimitive","LONGEST_DUMMY_PHONE_NUMBER","NATIONAL_PREFIX_SEPARATORS_PATTERN","NON_ALTERING_FORMAT_REG_EXP","constants","uD","AsYouTypeFormatter","AsYouTypeFormatter_classCallCheck","resetFormat","chosenFormat","template","nationalNumberTemplate","populatedNationalNumberTemplate","populatedNationalNumberTemplatePosition","numberingPlan","isNANP","matchingFormats","formats","narrowDownMatchingFormats","_this","checkNumberLength","_format","formattedCompleteNumber","setNationalNumberTemplate","replace","lastIndexOf","formatNationalNumberWithNextDigits","previouslyChosenFormat","newlyChosenFormat","chooseFormat","formatNextNationalNumberDigits","_this2","leadingDigits","leadingDigitsPatternIndex","filter","formatSuits","formatMatches","usesNationalPrefix","nationalPrefixIsOptionalWhenFormattingInNationalFormat","nationalPrefixIsMandatoryWhenFormattingInNationalFormat","leadingDigitsPatternsCount","leadingDigitsPatterns","Math","min","leadingDigitsPattern","error","console","internationalFormat","_this3","_loop","getFormatFormat","createTemplateForFormat","_","getTemplateForFormat","nationalPrefixFormattingRule","options","spacing","internationalPrefix","getInternationalPrefixBeforeCountryCallingCode","getDigitsWithoutInternationalPrefix","_ref4","strictPattern","nationalNumberDummyDigits","nationalPrefixIncludedInTemplate","numberFormat","numberFormatWithNationalPrefix","applyInternationalSeparatorStyle","position","_unsupportedIterableToArray","_createForOfIteratorHelperLoose","digit","search","populateTemplateWithDigits","_ref5","AsYouTypeParser_typeof","_slicedToArray","_arrayWithHoles","l","u","f","_iterableToArrayLimit","AsYouTypeParser_arrayLikeToArray","AsYouTypeParser_unsupportedIterableToArray","_nonIterableRest","AsYouTypeParser_defineProperties","AsYouTypeParser_toPropertyKey","AsYouTypeParser_toPrimitive","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART","OA","VALID_FORMATTED_PHONE_NUMBER_DIGITS_PART_PATTERN","VALID_FORMATTED_PHONE_NUMBER_PART","tz","AFTER_PHONE_NUMBER_DIGITS_END_PATTERN","COMPLEX_NATIONAL_PREFIX","AsYouTypeParser","defaultCountry","defaultCallingCode","onNationalSignificantNumberChange","AsYouTypeParser_classCallCheck","text","justLeadingPlus","_extractFormattedDigi","_extractFormattedDigi3","extractedNumber","hasPlus","startsAt","extractFormattedPhoneNumber","_extractFormattedDigitsAndPlus","_extractFormattedDigi4","formattedDigits","extractFormattedDigitsAndPlus","_extractFormattedDigi2","startInternationalNumber","inputDigits","hasReceivedThreeLeadingDigits","appendDigits","extractIddPrefix","isWaitingForCountryCallingCode","extractCountryCallingCode","appendNationalSignificantNumberDigits","hasExtractedNationalSignificantNumber","extractNationalSignificantNumber","stateUpdate","update","_extractCountryCallin","helpers_extractCountryCallingCode","countryCallingCode","number","hasSelectedNumberingPlan","nationalPrefixForParsing","_nationalPrefixForParsing","couldPossiblyExtractAnotherNationalSignificantNumber","nationalDigits","setState","_extractNationalNumbe","extractNationalNumberFromPossiblyIncompleteNumber","nationalNumber","onExtractedNationalNumber","prevNationalSignificantNumber","_extractNationalNumbe2","nationalSignificantNumberIndex","prefixBeforeNationalNumber","extractAnotherNationalSignificantNumber","fixMissingPlus","extractCallingCodeAndNationalSignificantNumber","numberWithoutIDD","stripIddPrefix","newCallingCode","extractCountryCallingCodeFromInternationalNumberWithoutPlusSign","AsYouType_typeof","AsYouType_arrayLikeToArray","AsYouType_defineProperties","AsYouType_toPropertyKey","AsYouType_toPrimitive","AsYouType","optionsOrDefaultCountry","AsYouType_classCallCheck","es6_metadata","_this$getCountryAndCa2","AsYouType_arrayWithHoles","AsYouType_iterableToArrayLimit","AsYouType_unsupportedIterableToArray","AsYouType_nonIterableRest","AsYouType_slicedToArray","getCountryAndCallingCode","reset","isObject","hasCountry","_this$parser$input","parser","input","formattedOutput","determineTheCountryIfNeeded","formatter","reExtractNationalSignificantNumber","getFullNumber","getNonFormattedNumber","selectNumberingPlan","isInternational","getCallingCode","_getCountry","isCountryCallingCodeAmbiguous","determineTheCountry","_this$state","prefix","getNonFormattedNationalNumberWithPrefix","countryCodes","getCountryCodesForCallingCode","getCountryByCallingCode","_this$state2","_this$state3","exactCountry","ambiguousCountries","getCountryByNationalNumber","getExactCountryForMultiCountryCallingCode","phoneNumber","PhoneNumber","getNumber","isPossible","isValid","_this$state4","getTemplate","getNonFormattedTemplate","AsYouType_AsYouType","metadata_mobile_json","create","getExampleNumber","examples","getExampleNumber_getExampleNumber","withMetadataArgument"],"sourceRoot":""} \ No newline at end of file diff --git a/umd/352.prod.js b/umd/352.prod.js index 1ec1442b..9b1b6896 100644 --- a/umd/352.prod.js +++ b/umd/352.prod.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[352],{2352:function(e,t,a){a.r(t);var s=a(1594),l=a.n(s),n=a(8181),i=a(1166),o=a(1485),r=a(6235);const d=(0,n.defineMessages)({delete_account:{id:"delete_account",defaultMessage:[{type:0,value:"Delete account"}]},delete_account_warning:{id:"delete_account_warning",defaultMessage:[{type:0,value:"Are you sure you want to delete your account? It cannot be undone."}]}});class c extends l().Component{constructor(e){super(e);const t=this.props.tinode.getMeTopic();let a=0;t.contacts(e=>{e.acs&&!e.acs.isJoiner()&&a++});const s=t.getDefaultAccess();this.state={auth:s?s.auth:null,anon:s?s.anon:null,showPermissionEditorFor:void 0,blockedCount:a},this.handlePasswordUpdate=this.handlePasswordUpdate.bind(this),this.handleLaunchPermissionsEditor=this.handleLaunchPermissionsEditor.bind(this),this.handleHidePermissionsEditor=this.handleHidePermissionsEditor.bind(this),this.handlePermissionsChanged=this.handlePermissionsChanged.bind(this),this.handleDeleteAccount=this.handleDeleteAccount.bind(this),this.handleCheckboxClick=this.handleCheckboxClick.bind(this)}handlePasswordUpdate(e){this.setState({password:e}),this.props.onUpdatePassword(e)}handleLaunchPermissionsEditor(e){this.setState({showPermissionEditorFor:e,editedPermissions:this.state[e]})}handleHidePermissionsEditor(){this.setState({showPermissionEditorFor:void 0})}handlePermissionsChanged(e){let t={};t[this.state.showPermissionEditorFor]=e,this.props.onUpdateAccountDesc("me",void 0,void 0,t);let a={showPermissionEditorFor:void 0};a[this.state.showPermissionEditorFor]=e,this.setState(a)}handleCheckboxClick(e,t){this.props.onToggleIncognitoMode(t)}handleDeleteAccount(e){e.preventDefault();const{formatMessage:t}=this.props.intl;this.props.onShowAlert(t(d.delete_account),t(d.delete_account_warning),e=>this.props.onDeleteAccount(),null,!0,null)}render(){return l().createElement(l().Fragment,null,this.state.showPermissionEditorFor?l().createElement(r.A,{mode:this.state.editedPermissions,skip:"O",onSubmit:this.handlePermissionsChanged,onCancel:this.handleHidePermissionsEditor}):l().createElement("div",{className:"scrollable-panel"},l().createElement("div",{className:"panel-form-column"},l().createElement("label",{className:"small"},l().createElement(n.FormattedMessage,{id:"label_password",defaultMessage:[{type:0,value:"Password"}]})),l().createElement("div",null,l().createElement(n.FormattedMessage,{id:"password_unchanged_prompt",defaultMessage:[{type:0,value:"Unchanged"}]},e=>l().createElement(o.A,{placeholder:e,type:"password",onFinished:this.handlePasswordUpdate})))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-row"},l().createElement("label",{htmlFor:"incognito-mode"},l().createElement(n.FormattedMessage,{id:"label_incognito_mode",defaultMessage:[{type:0,value:"Incognito mode:"}]})),l().createElement(i.A,{name:"incognito",id:"incognito-mode",checked:this.props.incognitoMode,onChange:this.handleCheckboxClick})),l().createElement("div",{className:"panel-form-row"},l().createElement("span",{className:"small gray"},l().createElement(n.FormattedMessage,{id:"incognito_mode_description",defaultMessage:[{type:0,value:"Hide your online status and typing indicators."}]}))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-column"},l().createElement("a",{href:"#",className:"danger flat-button",onClick:e=>{e.preventDefault(),this.props.onLogout()}},l().createElement("i",{className:"material-icons"},"exit_to_app"),"  ",l().createElement(n.FormattedMessage,{id:"button_logout",defaultMessage:[{type:0,value:"Logout"}]})),l().createElement("a",{href:"#",className:"danger flat-button",onClick:e=>{this.handleDeleteAccount(e)}},l().createElement("i",{className:"material-icons"},"delete"),"  ",l().createElement(n.FormattedMessage,{id:"button_delete_account",defaultMessage:[{type:0,value:"Delete account"}]}))),l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-column"},l().createElement("div",null,l().createElement("label",{className:"small"},l().createElement(n.FormattedMessage,{id:"label_default_access_mode",defaultMessage:[{type:0,value:"Default access mode:"}]}))),l().createElement("div",{className:"quoted"},l().createElement("div",null,"Auth: ",l().createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"auth")},this.state.auth)),l().createElement("div",null,"Anon: ",l().createElement("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"anon")},this.state.anon)))),this.state.blockedCount>0?l().createElement(l().Fragment,null,l().createElement("div",{className:"hr"}),l().createElement("div",{className:"panel-form-row"},l().createElement("i",{className:"material-icons"},"block")," ",l().createElement("a",{href:"#",className:"gray",onClick:e=>{e.preventDefault(),this.props.onShowBlocked()}},l().createElement(n.FormattedMessage,{id:"blocked_contacts_link",defaultMessage:[{type:0,value:"Blocked contacts ("},{type:1,value:"count"},{type:0,value:")"}],values:{count:this.state.blockedCount}})))):null))}}t.default=(0,n.injectIntl)(c)},6235:function(e,t,a){var s=a(1594),l=a.n(s),n=a(8181),i=a(1166),o=a(6005),r=a(6110);const d=(0,n.defineMessages)({joiner:{id:"permission_join",defaultMessage:[{type:0,value:"Join ("},{type:1,value:"val"},{type:0,value:")"}]},reader:{id:"permission_read",defaultMessage:[{type:0,value:"Read ("},{type:1,value:"val"},{type:0,value:")"}]},writer:{id:"permission_write",defaultMessage:[{type:0,value:"Write ("},{type:1,value:"val"},{type:0,value:")"}]},preser:{id:"permission_pres",defaultMessage:[{type:0,value:"Get notified ("},{type:1,value:"val"},{type:0,value:")"}]},approver:{id:"permission_admin",defaultMessage:[{type:0,value:"Approve ("},{type:1,value:"val"},{type:0,value:")"}]},sharer:{id:"permission_share",defaultMessage:[{type:0,value:"Share ("},{type:1,value:"val"},{type:0,value:")"}]},deleter:{id:"permission_delete",defaultMessage:[{type:0,value:"Delete ("},{type:1,value:"val"},{type:0,value:")"}]},owner:{id:"permission_owner",defaultMessage:[{type:0,value:"Owner ("},{type:1,value:"val"},{type:0,value:")"}]}});class c extends l().Component{constructor(e){super(e),this.state={mode:(e.mode||"").replace("N","")},this.handleChange=this.handleChange.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}handleChange(e){let t=this.state.mode;-1==t.indexOf(e)?t+=e:t=t.replace(e,""),this.setState({mode:t})}handleSubmit(){const e=(this.state.mode||"N").split("").sort().join("");e!==(this.props.mode||"N").split("").sort().join("")?this.props.onSubmit(e):this.props.onCancel()}handleCancel(){this.props.onCancel()}render(){const{formatMessage:e}=this.props.intl,t="JRWPASDO",a={J:e(d.joiner,{val:"J"}),R:e(d.reader,{val:"R"}),W:e(d.writer,{val:"W"}),P:e(d.preser,{val:"P"}),A:e(d.approver,{val:"A"}),S:e(d.sharer,{val:"S"}),D:e(d.deleter,{val:"D"}),O:e(d.owner,{val:"O"})};let s=this.props.skip||"",c=this.state.mode,m=(this.props.compare||"").replace("N",""),h=[];for(let e=0;e<8;e++){let n=t.charAt(e);s.indexOf(n)>=0&&c.indexOf(n)<0||h.push(l().createElement("tr",{key:n},l().createElement("td",null,a[n]),l().createElement("td",{className:"checkbox"},s.indexOf(n)<0?l().createElement(i.A,{name:n,checked:c.indexOf(n)>=0,onChange:this.handleChange}):l().createElement(i.A,{name:n,checked:c.indexOf(n)>=0})),this.props.compare?l().createElement("td",{className:"checkbox"},l().createElement(i.A,{name:n,checked:m.indexOf(n)>=0})):null))}return l().createElement("div",{className:"panel-form-column"},this.props.userTitle?l().createElement("ul",{className:"contact-box small"},l().createElement(o.A,{tinode:this.props.tinode,item:this.props.item,title:this.props.userTitle,small:!0,avatar:(0,r.to)(this.props.userAvatar?this.props.userAvatar:null)})):null,l().createElement("label",{className:"small"},l().createElement(n.FormattedMessage,{id:"title_permissions",defaultMessage:[{type:0,value:"Permissions"}]})),l().createElement("table",{className:"permission-editor"},this.props.compare?l().createElement("thead",null,l().createElement("tr",null,l().createElement("th",null),l().createElement("th",null,this.props.modeTitle),l().createElement("th",null,this.props.compareTitle))):null,l().createElement("tbody",null,h)),l().createElement("br",null),l().createElement("div",{className:"dialog-buttons"},l().createElement("button",{className:"outline",onClick:this.handleCancel},l().createElement(n.FormattedMessage,{id:"button_cancel",defaultMessage:[{type:0,value:"Cancel"}]})),l().createElement("button",{className:"primary",onClick:this.handleSubmit},l().createElement(n.FormattedMessage,{id:"button_ok",defaultMessage:[{type:0,value:"OK"}]}))))}}t.A=(0,n.injectIntl)(c)}}]); +"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[352],{2352:function(e,s,i){i.r(s);var t=i(1594),o=i.n(t),n=i(8181),a=i(1166),d=i(1485),l=i(6235),r=i(5446);const c=(0,n.defineMessages)({delete_account:{id:"delete_account",defaultMessage:"Delete account",description:"Title for delete account warning"},delete_account_warning:{id:"delete_account_warning",defaultMessage:"Are you sure you want to delete your account? It cannot be undone.",description:"Warning message when deleting an account"}});class h extends o().Component{constructor(e){super(e);const s=this.props.tinode.getMeTopic();let i=0;s.contacts(e=>{e.acs&&!e.acs.isJoiner()&&i++});const t=s.getDefaultAccess();this.state={auth:t?t.auth:null,anon:t?t.anon:null,showPermissionEditorFor:void 0,blockedCount:i},this.handlePasswordUpdate=this.handlePasswordUpdate.bind(this),this.handleLaunchPermissionsEditor=this.handleLaunchPermissionsEditor.bind(this),this.handleHidePermissionsEditor=this.handleHidePermissionsEditor.bind(this),this.handlePermissionsChanged=this.handlePermissionsChanged.bind(this),this.handleDeleteAccount=this.handleDeleteAccount.bind(this),this.handleCheckboxClick=this.handleCheckboxClick.bind(this)}handlePasswordUpdate(e){this.setState({password:e}),this.props.onUpdatePassword(e)}handleLaunchPermissionsEditor(e){this.setState({showPermissionEditorFor:e,editedPermissions:this.state[e]})}handleHidePermissionsEditor(){this.setState({showPermissionEditorFor:void 0})}handlePermissionsChanged(e){let s={};s[this.state.showPermissionEditorFor]=e,this.props.onUpdateAccountDesc("me",void 0,void 0,s);let i={showPermissionEditorFor:void 0};i[this.state.showPermissionEditorFor]=e,this.setState(i)}handleCheckboxClick(e,s){this.props.onToggleIncognitoMode(s)}handleDeleteAccount(e){e.preventDefault();const{formatMessage:s}=this.props.intl;this.props.onShowAlert(s(c.delete_account),s(c.delete_account_warning),e=>this.props.onDeleteAccount(),null,!0,null)}render(){return(0,r.jsxDEV)(r.Fragment,{children:this.state.showPermissionEditorFor?(0,r.jsxDEV)(l.A,{mode:this.state.editedPermissions,skip:"O",onSubmit:this.handlePermissionsChanged,onCancel:this.handleHidePermissionsEditor},void 0,!1):(0,r.jsxDEV)("div",{className:"scrollable-panel",children:[(0,r.jsxDEV)("div",{className:"panel-form-column",children:[(0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(n.FormattedMessage,{id:"label_password",defaultMessage:"Password",description:"Label for password editing"},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{children:(0,r.jsxDEV)(n.FormattedMessage,{id:"password_unchanged_prompt",defaultMessage:"Unchanged",description:"Message in editor while password is unchanged",children:e=>(0,r.jsxDEV)(d.A,{placeholder:e,type:"password",onFinished:this.handlePasswordUpdate},void 0,!1)},void 0,!1)},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("div",{className:"hr"},void 0,!1),(0,r.jsxDEV)("div",{className:"panel-form-row",children:[(0,r.jsxDEV)("label",{htmlFor:"incognito-mode",children:(0,r.jsxDEV)(n.FormattedMessage,{id:"label_incognito_mode",defaultMessage:"Incognito mode:",description:"Label for incognito mode toggle"},void 0,!1)},void 0,!1),(0,r.jsxDEV)(a.A,{name:"incognito",id:"incognito-mode",checked:this.props.incognitoMode,onChange:this.handleCheckboxClick},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("div",{className:"panel-form-row",children:(0,r.jsxDEV)("span",{className:"small gray",children:(0,r.jsxDEV)(n.FormattedMessage,{id:"incognito_mode_description",defaultMessage:"Hide your online status and typing indicators.",description:"Description for incognito mode toggle"},void 0,!1)},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"hr"},void 0,!1),(0,r.jsxDEV)("div",{className:"panel-form-column",children:[(0,r.jsxDEV)("a",{href:"#",className:"danger flat-button",onClick:e=>{e.preventDefault(),this.props.onLogout()},children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"exit_to_app"},void 0,!1),"  ",(0,r.jsxDEV)(n.FormattedMessage,{id:"button_logout",defaultMessage:"Logout",description:"Button [Logout]"},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("a",{href:"#",className:"danger flat-button",onClick:e=>{this.handleDeleteAccount(e)},children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"delete"},void 0,!1),"  ",(0,r.jsxDEV)(n.FormattedMessage,{id:"button_delete_account",defaultMessage:"Delete account",description:"Button [Delete account]"},void 0,!1)]},void 0,!0)]},void 0,!0),(0,r.jsxDEV)("div",{className:"hr"},void 0,!1),(0,r.jsxDEV)("div",{className:"panel-form-column",children:[(0,r.jsxDEV)("div",{children:(0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(n.FormattedMessage,{id:"label_default_access_mode",defaultMessage:"Default access mode:",description:"Label for default access mode"},void 0,!1)},void 0,!1)},void 0,!1),(0,r.jsxDEV)("div",{className:"quoted",children:[(0,r.jsxDEV)("div",{children:["Auth: ",(0,r.jsxDEV)("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"auth"),children:this.state.auth},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("div",{children:["Anon: ",(0,r.jsxDEV)("tt",{className:"clickable",onClick:this.handleLaunchPermissionsEditor.bind(this,"anon"),children:this.state.anon},void 0,!1)]},void 0,!0)]},void 0,!0)]},void 0,!0),this.state.blockedCount>0?(0,r.jsxDEV)(r.Fragment,{children:[(0,r.jsxDEV)("div",{className:"hr"},void 0,!1),(0,r.jsxDEV)("div",{className:"panel-form-row",children:[(0,r.jsxDEV)("i",{className:"material-icons",children:"block"},void 0,!1)," ",(0,r.jsxDEV)("a",{href:"#",className:"gray",onClick:e=>{e.preventDefault(),this.props.onShowBlocked()},children:(0,r.jsxDEV)(n.FormattedMessage,{id:"blocked_contacts_link",defaultMessage:"Blocked contacts ({count})",values:{count:this.state.blockedCount},description:"Blocked contacts link"},void 0,!1)},void 0,!1)]},void 0,!0)]},void 0,!0):null]},void 0,!0)},void 0,!1)}}s.default=(0,n.injectIntl)(h)},6235:function(e,s,i){var t=i(1594),o=i.n(t),n=i(8181),a=i(1166),d=i(6005),l=i(6110),r=i(5446);const c=(0,n.defineMessages)({joiner:{id:"permission_join",defaultMessage:"Join ({val})",description:"Name of J permission"},reader:{id:"permission_read",defaultMessage:"Read ({val})",description:"Name of R permission"},writer:{id:"permission_write",defaultMessage:"Write ({val})",description:"Name of W permission"},preser:{id:"permission_pres",defaultMessage:"Get notified ({val})",description:"Name of P permission"},approver:{id:"permission_admin",defaultMessage:"Approve ({val})",description:"Name of A permission"},sharer:{id:"permission_share",defaultMessage:"Share ({val})",description:"Name of S permission"},deleter:{id:"permission_delete",defaultMessage:"Delete ({val})",description:"Name of D permission"},owner:{id:"permission_owner",defaultMessage:"Owner ({val})",description:"Name of O permission"}});class h extends o().Component{constructor(e){super(e),this.state={mode:(e.mode||"").replace("N","")},this.handleChange=this.handleChange.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleCancel=this.handleCancel.bind(this)}handleChange(e){let s=this.state.mode;-1==s.indexOf(e)?s+=e:s=s.replace(e,""),this.setState({mode:s})}handleSubmit(){const e=(this.state.mode||"N").split("").sort().join("");e!==(this.props.mode||"N").split("").sort().join("")?this.props.onSubmit(e):this.props.onCancel()}handleCancel(){this.props.onCancel()}render(){const{formatMessage:e}=this.props.intl,s={J:e(c.joiner,{val:"J"}),R:e(c.reader,{val:"R"}),W:e(c.writer,{val:"W"}),P:e(c.preser,{val:"P"}),A:e(c.approver,{val:"A"}),S:e(c.sharer,{val:"S"}),D:e(c.deleter,{val:"D"}),O:e(c.owner,{val:"O"})};let i=this.props.skip||"",t=this.state.mode,o=(this.props.compare||"").replace("N",""),h=[];for(let e=0;e<8;e++){let n="JRWPASDO".charAt(e);i.indexOf(n)>=0&&t.indexOf(n)<0||h.push((0,r.jsxDEV)("tr",{children:[(0,r.jsxDEV)("td",{children:s[n]},void 0,!1),(0,r.jsxDEV)("td",{className:"checkbox",children:i.indexOf(n)<0?(0,r.jsxDEV)(a.A,{name:n,checked:t.indexOf(n)>=0,onChange:this.handleChange},void 0,!1):(0,r.jsxDEV)(a.A,{name:n,checked:t.indexOf(n)>=0},void 0,!1)},void 0,!1),this.props.compare?(0,r.jsxDEV)("td",{className:"checkbox",children:(0,r.jsxDEV)(a.A,{name:n,checked:o.indexOf(n)>=0},void 0,!1)},void 0,!1):null]},n,!0))}return(0,r.jsxDEV)("div",{className:"panel-form-column",children:[this.props.userTitle?(0,r.jsxDEV)("ul",{className:"contact-box small",children:(0,r.jsxDEV)(d.A,{tinode:this.props.tinode,item:this.props.item,title:this.props.userTitle,small:!0,avatar:(0,l.to)(this.props.userAvatar?this.props.userAvatar:null)},void 0,!1)},void 0,!1):null,(0,r.jsxDEV)("label",{className:"small",children:(0,r.jsxDEV)(n.FormattedMessage,{id:"title_permissions",defaultMessage:"Permissions",description:"Section title"},void 0,!1)},void 0,!1),(0,r.jsxDEV)("table",{className:"permission-editor",children:[this.props.compare?(0,r.jsxDEV)("thead",{children:(0,r.jsxDEV)("tr",{children:[(0,r.jsxDEV)("th",{},void 0,!1),(0,r.jsxDEV)("th",{children:this.props.modeTitle},void 0,!1),(0,r.jsxDEV)("th",{children:this.props.compareTitle},void 0,!1)]},void 0,!0)},void 0,!1):null,(0,r.jsxDEV)("tbody",{children:h},void 0,!1)]},void 0,!0),(0,r.jsxDEV)("br",{},void 0,!1),(0,r.jsxDEV)("div",{className:"dialog-buttons",children:[(0,r.jsxDEV)("button",{className:"outline",onClick:this.handleCancel,children:(0,r.jsxDEV)(n.FormattedMessage,{id:"button_cancel",defaultMessage:"Cancel",description:"Button [Cancel]"},void 0,!1)},void 0,!1),(0,r.jsxDEV)("button",{className:"primary",onClick:this.handleSubmit,children:(0,r.jsxDEV)(n.FormattedMessage,{id:"button_ok",defaultMessage:"OK",description:"Button [OK]"},void 0,!1)},void 0,!1)]},void 0,!0)]},void 0,!0)}}s.A=(0,n.injectIntl)(h)}}]); //# sourceMappingURL=352.prod.js.map \ No newline at end of file diff --git a/umd/352.prod.js.map b/umd/352.prod.js.map index 5836cf39..4d388b69 100644 --- a/umd/352.prod.js.map +++ b/umd/352.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"352.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx"],"sourcesContent":["// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleCheckboxClick(what, checked) {\n this.props.onToggleIncognitoMode(checked);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
    \n
    \n \n
    \n {\n (password_unchanged) => \n }\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    Auth: {this.state.auth}
    \n
    Anon: {this.state.anon}
    \n
    \n
    \n {this.state.blockedCount > 0 ?\n <>\n \n }\n );\n }\n};\n\nexport default injectIntl(AccSecurityView);\n","// PermissionsEditor: Component for editing permissions\n// \nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from './checkbox.jsx';\nimport Contact from './contact.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n// Translatable permission names.\nconst messages = defineMessages({\n joiner: {\n id: 'permission_join',\n defaultMessage: \"Join ({val})\",\n description: 'Name of J permission'\n },\n reader: {\n id: 'permission_read',\n defaultMessage: \"Read ({val})\",\n description: 'Name of R permission'\n },\n writer: {\n id: 'permission_write',\n defaultMessage: \"Write ({val})\",\n description: 'Name of W permission'\n },\n preser: {\n id: 'permission_pres',\n defaultMessage: \"Get notified ({val})\",\n description: 'Name of P permission'\n },\n approver: {\n id: 'permission_admin',\n defaultMessage: \"Approve ({val})\",\n description: 'Name of A permission'\n },\n sharer: {\n id: 'permission_share',\n defaultMessage: \"Share ({val})\",\n description: 'Name of S permission'\n },\n deleter: {\n id: 'permission_delete',\n defaultMessage: \"Delete ({val})\",\n description: 'Name of D permission'\n },\n owner: {\n id: 'permission_owner',\n defaultMessage: \"Owner ({val})\",\n description: 'Name of O permission'\n }\n});\n\nclass PermissionsEditor extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mode: (props.mode || '').replace('N', '')\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleChange(val) {\n let mode = this.state.mode;\n const idx = mode.indexOf(val);\n if (idx == -1) {\n mode += val;\n } else {\n mode = mode.replace(val, '');\n }\n this.setState({mode: mode});\n }\n\n handleSubmit() {\n // Normalize string, otherwise cannot check if mode has changed.\n const mode = (this.state.mode || 'N').split('').sort().join('');\n const before = (this.props.mode || 'N').split('').sort().join('')\n if (mode !== before) {\n this.props.onSubmit(mode);\n } else {\n this.props.onCancel();\n }\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const all = 'JRWPASDO';\n const names = {\n 'J': formatMessage(messages.joiner, {val: 'J'}),\n 'R': formatMessage(messages.reader, {val: 'R'}),\n 'W': formatMessage(messages.writer, {val: 'W'}),\n 'P': formatMessage(messages.preser, {val: 'P'}),\n 'A': formatMessage(messages.approver, {val: 'A'}),\n 'S': formatMessage(messages.sharer, {val: 'S'}),\n 'D': formatMessage(messages.deleter, {val: 'D'}),\n 'O': formatMessage(messages.owner, {val: 'O'})\n };\n\n let skip = this.props.skip || '';\n let mode = this.state.mode;\n let compare = (this.props.compare || '').replace('N', '');\n let items = [];\n for (let i=0; i= 0 && mode.indexOf(c) < 0) {\n // Permission is marked as inactive: hide unchecked permissions, disable checked permissions\n continue;\n }\n items.push(\n \n {names[c]}\n {skip.indexOf(c) < 0 ?\n = 0)} onChange={this.handleChange}/>\n :\n = 0)} />\n }{this.props.compare ? \n = 0)}/>\n : null}\n \n );\n }\n\n return (\n
    \n {this.props.userTitle ?\n
    : null}\n \n \n {this.props.compare ?\n \n \n \n :\n null}\n \n {items}\n
    {this.props.modeTitle}{this.props.compareTitle}
    \n
    \n
    \n \n \n
    \n
    \n );\n }\n};\n\nexport default injectIntl(PermissionsEditor);\n"],"names":["messages","defineMessages","delete_account","id","defaultMessage","delete_account_warning","AccSecurityView","React","constructor","props","super","me","this","tinode","getMeTopic","blockedCount","contacts","c","acs","isJoiner","defacs","getDefaultAccess","state","auth","anon","showPermissionEditorFor","undefined","handlePasswordUpdate","bind","handleLaunchPermissionsEditor","handleHidePermissionsEditor","handlePermissionsChanged","handleDeleteAccount","handleCheckboxClick","pwd","setState","password","onUpdatePassword","which","editedPermissions","perm","onUpdateAccountDesc","newState","what","checked","onToggleIncognitoMode","e","preventDefault","formatMessage","intl","onShowAlert","_","onDeleteAccount","render","PermissionsEditor","mode","skip","onSubmit","onCancel","className","FormattedMessage","password_unchanged","InPlaceEdit","placeholder","type","onFinished","htmlFor","CheckBox","name","incognitoMode","onChange","href","onClick","onLogout","onShowBlocked","values","count","injectIntl","joiner","reader","writer","preser","approver","sharer","deleter","owner","replace","handleChange","handleSubmit","handleCancel","val","indexOf","split","sort","join","all","names","compare","items","i","charAt","push","key","userTitle","Contact","item","title","small","avatar","makeImageUrl","userAvatar","modeTitle","compareTitle"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"352.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx"],"sourcesContent":["// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleCheckboxClick(what, checked) {\n this.props.onToggleIncognitoMode(checked);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
    \n
    \n \n
    \n {\n (password_unchanged) => \n }\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    Auth: {this.state.auth}
    \n
    Anon: {this.state.anon}
    \n
    \n
    \n {this.state.blockedCount > 0 ?\n <>\n \n }\n );\n }\n};\n\nexport default injectIntl(AccSecurityView);\n","// PermissionsEditor: Component for editing permissions\n// \nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from './checkbox.jsx';\nimport Contact from './contact.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n// Translatable permission names.\nconst messages = defineMessages({\n joiner: {\n id: 'permission_join',\n defaultMessage: \"Join ({val})\",\n description: 'Name of J permission'\n },\n reader: {\n id: 'permission_read',\n defaultMessage: \"Read ({val})\",\n description: 'Name of R permission'\n },\n writer: {\n id: 'permission_write',\n defaultMessage: \"Write ({val})\",\n description: 'Name of W permission'\n },\n preser: {\n id: 'permission_pres',\n defaultMessage: \"Get notified ({val})\",\n description: 'Name of P permission'\n },\n approver: {\n id: 'permission_admin',\n defaultMessage: \"Approve ({val})\",\n description: 'Name of A permission'\n },\n sharer: {\n id: 'permission_share',\n defaultMessage: \"Share ({val})\",\n description: 'Name of S permission'\n },\n deleter: {\n id: 'permission_delete',\n defaultMessage: \"Delete ({val})\",\n description: 'Name of D permission'\n },\n owner: {\n id: 'permission_owner',\n defaultMessage: \"Owner ({val})\",\n description: 'Name of O permission'\n }\n});\n\nclass PermissionsEditor extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mode: (props.mode || '').replace('N', '')\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleChange(val) {\n let mode = this.state.mode;\n const idx = mode.indexOf(val);\n if (idx == -1) {\n mode += val;\n } else {\n mode = mode.replace(val, '');\n }\n this.setState({mode: mode});\n }\n\n handleSubmit() {\n // Normalize string, otherwise cannot check if mode has changed.\n const mode = (this.state.mode || 'N').split('').sort().join('');\n const before = (this.props.mode || 'N').split('').sort().join('')\n if (mode !== before) {\n this.props.onSubmit(mode);\n } else {\n this.props.onCancel();\n }\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const all = 'JRWPASDO';\n const names = {\n 'J': formatMessage(messages.joiner, {val: 'J'}),\n 'R': formatMessage(messages.reader, {val: 'R'}),\n 'W': formatMessage(messages.writer, {val: 'W'}),\n 'P': formatMessage(messages.preser, {val: 'P'}),\n 'A': formatMessage(messages.approver, {val: 'A'}),\n 'S': formatMessage(messages.sharer, {val: 'S'}),\n 'D': formatMessage(messages.deleter, {val: 'D'}),\n 'O': formatMessage(messages.owner, {val: 'O'})\n };\n\n let skip = this.props.skip || '';\n let mode = this.state.mode;\n let compare = (this.props.compare || '').replace('N', '');\n let items = [];\n for (let i=0; i= 0 && mode.indexOf(c) < 0) {\n // Permission is marked as inactive: hide unchecked permissions, disable checked permissions\n continue;\n }\n items.push(\n \n {names[c]}\n {skip.indexOf(c) < 0 ?\n = 0)} onChange={this.handleChange}/>\n :\n = 0)} />\n }{this.props.compare ? \n = 0)}/>\n : null}\n \n );\n }\n\n return (\n
    \n {this.props.userTitle ?\n
    : null}\n \n \n {this.props.compare ?\n \n \n \n :\n null}\n \n {items}\n
    {this.props.modeTitle}{this.props.compareTitle}
    \n
    \n
    \n \n \n
    \n
    \n );\n }\n};\n\nexport default injectIntl(PermissionsEditor);\n"],"names":["messages","react_intl__WEBPACK_IMPORTED_MODULE_1__","defineMessages","delete_account","id","defaultMessage","description","delete_account_warning","AccSecurityView","react__WEBPACK_IMPORTED_MODULE_0___default","constructor","props","super","me","this","tinode","getMeTopic","blockedCount","contacts","c","acs","isJoiner","defacs","getDefaultAccess","state","auth","anon","showPermissionEditorFor","undefined","handlePasswordUpdate","bind","handleLaunchPermissionsEditor","handleHidePermissionsEditor","handlePermissionsChanged","handleDeleteAccount","handleCheckboxClick","pwd","setState","password","onUpdatePassword","which","editedPermissions","perm","onUpdateAccountDesc","newState","what","checked","onToggleIncognitoMode","e","preventDefault","formatMessage","intl","onShowAlert","_","onDeleteAccount","render","react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__","jsxDEV","Fragment","children","_widgets_permissions_editor_jsx__WEBPACK_IMPORTED_MODULE_4__","A","mode","skip","onSubmit","onCancel","className","FormattedMessage","password_unchanged","_widgets_in_place_edit_jsx__WEBPACK_IMPORTED_MODULE_3__","placeholder","type","onFinished","htmlFor","_widgets_checkbox_jsx__WEBPACK_IMPORTED_MODULE_2__","name","incognitoMode","onChange","href","onClick","onLogout","onShowBlocked","values","count","__webpack_exports__","injectIntl","joiner","reader","writer","preser","approver","sharer","deleter","owner","PermissionsEditor","replace","handleChange","handleSubmit","handleCancel","val","indexOf","split","sort","join","names","J","R","W","P","S","D","O","compare","items","i","all","charAt","push","_checkbox_jsx__WEBPACK_IMPORTED_MODULE_2__","userTitle","_contact_jsx__WEBPACK_IMPORTED_MODULE_3__","item","title","small","avatar","_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_4__","to","userAvatar","modeTitle","compareTitle"],"sourceRoot":""} \ No newline at end of file diff --git a/umd/371.prod.js b/umd/371.prod.js index ea06fbf8..04539d71 100644 --- a/umd/371.prod.js +++ b/umd/371.prod.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[371],{6371:function(e,t,n){n.r(t);var i=n(1594),o=n.n(i),s=n(8181),r=n(1725),a=n(8589);const l=(0,s.defineMessages)({unrecognized_video_format:{id:"unrecognized_video_format",defaultMessage:[{type:0,value:"Format of this video is not recognized"}]}});class d extends o().PureComponent{constructor(e){super(e),this.videoRef=o().createRef(),this.handleSendVideo=this.handleSendVideo.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){this.props.onSendMessage||(e.preventDefault(),"Escape"===e.key&&this.props.onClose())}handleSendVideo(e){this.props.onClose();const t={width:this.videoRef.current.videoWidth,height:this.videoRef.current.videoHeight,duration:1e3*this.videoRef.current.duration|0,mime:this.props.content.mime,name:this.props.content.filename};if(0==t.width||0==t.height)return void this.props.onError(this.props.intl.formatMessage(l.unrecognized_video_format),"err");const n=document.createElement("canvas");n.width=t.width,n.height=t.height;const i=n.getContext("2d");i.drawImage(this.videoRef.current,0,0,n.width,n.height),i.canvas.toBlob(n=>this.props.onSendMessage(e,this.props.content.blob,n,t),"image/jpeg",.75)}render(){if(!this.props.content)return null;const e=this.props.content.width||"-",t=this.props.content.height||"-",n=this.props.onSendMessage?"nodownload":"",i=!this.props.onSendMessage;return o().createElement("div",{id:"image-preview"},o().createElement("div",{id:"preview-caption-panel"},o().createElement("span",null,this.props.content.filename),o().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()}},o().createElement("i",{className:"material-icons gray"},"close"))),o().createElement("div",{id:"image-preview-container"},o().createElement("video",{className:"image-preview",controls:!0,controlsList:n,disablePictureInPicture:!0,ref:this.videoRef,autoPlay:i,src:this.props.tinode.authorizeURL(this.props.content.url),poster:this.props.content.preview,alt:this.props.content.filename})),this.props.onSendMessage?o().createElement(r.A,{messagePrompt:"add_image_caption",acceptBlank:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendVideo,onError:this.props.onError}):o().createElement("div",{id:"image-preview-footer"},o().createElement("div",null,o().createElement("div",null,o().createElement("b",null,o().createElement(s.FormattedMessage,{id:"label_file_name",defaultMessage:[{type:0,value:"File name:"}]}))),o().createElement("div",null,o().createElement("span",{title:this.props.content.filename},this.props.content.filename))),o().createElement("div",null,o().createElement("div",null,o().createElement("b",null,o().createElement(s.FormattedMessage,{id:"label_content_type",defaultMessage:[{type:0,value:"Content type:"}]}))),o().createElement("div",null,this.props.content.type)),o().createElement("div",null,o().createElement("div",null,o().createElement("b",null,o().createElement(s.FormattedMessage,{id:"label_size",defaultMessage:[{type:0,value:"Size:"}]}))),o().createElement("div",null,e," × ",t," px; ",(0,a.lX)(this.props.content.size)))))}}t.default=(0,s.injectIntl)(d)}}]); +"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[371],{6371:function(e,i,n){n.r(i);var o=n(1594),t=n.n(o),s=n(8181),d=n(1725),r=n(8589),a=n(5446);const p=(0,s.defineMessages)({unrecognized_video_format:{id:"unrecognized_video_format",defaultMessage:"Format of this video is not recognized",description:"Error message when uploaded video is invalid"}});class h extends t().PureComponent{constructor(e){super(e),this.videoRef=t().createRef(),this.handleSendVideo=this.handleSendVideo.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}componentDidMount(){document.addEventListener("keydown",this.handleKeyDown)}componentWillUnmount(){document.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){this.props.onSendMessage||(e.preventDefault(),"Escape"===e.key&&this.props.onClose())}handleSendVideo(e){this.props.onClose();const i={width:this.videoRef.current.videoWidth,height:this.videoRef.current.videoHeight,duration:1e3*this.videoRef.current.duration|0,mime:this.props.content.mime,name:this.props.content.filename};if(0==i.width||0==i.height)return void this.props.onError(this.props.intl.formatMessage(p.unrecognized_video_format),"err");const n=document.createElement("canvas");n.width=i.width,n.height=i.height;const o=n.getContext("2d");o.drawImage(this.videoRef.current,0,0,n.width,n.height),o.canvas.toBlob(n=>this.props.onSendMessage(e,this.props.content.blob,n,i),"image/jpeg",.75)}render(){if(!this.props.content)return null;const e=this.props.content.width||"-",i=this.props.content.height||"-",n=this.props.onSendMessage?"nodownload":"",o=!this.props.onSendMessage;return(0,a.jsxDEV)("div",{id:"image-preview",children:[(0,a.jsxDEV)("div",{id:"preview-caption-panel",children:[(0,a.jsxDEV)("span",{children:this.props.content.filename},void 0,!1),(0,a.jsxDEV)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onClose()},children:(0,a.jsxDEV)("i",{className:"material-icons gray",children:"close"},void 0,!1)},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{id:"image-preview-container",children:(0,a.jsxDEV)("video",{className:"image-preview",controls:!0,controlsList:n,disablePictureInPicture:!0,ref:this.videoRef,autoPlay:o,src:this.props.tinode.authorizeURL(this.props.content.url),poster:this.props.content.preview,alt:this.props.content.filename},void 0,!1)},void 0,!1),this.props.onSendMessage?(0,a.jsxDEV)(d.A,{messagePrompt:"add_image_caption",acceptBlank:!0,tinode:this.props.tinode,reply:this.props.reply,onCancelReply:this.props.onCancelReply,onSendMessage:this.handleSendVideo,onError:this.props.onError},void 0,!1):(0,a.jsxDEV)("div",{id:"image-preview-footer",children:[(0,a.jsxDEV)("div",{children:[(0,a.jsxDEV)("div",{children:(0,a.jsxDEV)("b",{children:(0,a.jsxDEV)(s.FormattedMessage,{id:"label_file_name",defaultMessage:"File name:",description:"Label for a file name"},void 0,!1)},void 0,!1)},void 0,!1),(0,a.jsxDEV)("div",{children:(0,a.jsxDEV)("span",{title:this.props.content.filename,children:this.props.content.filename},void 0,!1)},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{children:[(0,a.jsxDEV)("div",{children:(0,a.jsxDEV)("b",{children:(0,a.jsxDEV)(s.FormattedMessage,{id:"label_content_type",defaultMessage:"Content type:",description:"Label for file content type (mime)"},void 0,!1)},void 0,!1)},void 0,!1),(0,a.jsxDEV)("div",{children:this.props.content.type},void 0,!1)]},void 0,!0),(0,a.jsxDEV)("div",{children:[(0,a.jsxDEV)("div",{children:(0,a.jsxDEV)("b",{children:(0,a.jsxDEV)(s.FormattedMessage,{id:"label_size",defaultMessage:"Size:",description:"Label for file size"},void 0,!1)},void 0,!1)},void 0,!1),(0,a.jsxDEV)("div",{children:[e," × ",i," px; ",(0,r.lX)(this.props.content.size)]},void 0,!0)]},void 0,!0)]},void 0,!0)]},void 0,!0)}}i.default=(0,s.injectIntl)(h)}}]); //# sourceMappingURL=371.prod.js.map \ No newline at end of file diff --git a/umd/371.prod.js.map b/umd/371.prod.js.map index 8c5568b3..50ee6b29 100644 --- a/umd/371.prod.js.map +++ b/umd/371.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"371.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/widgets/video-preview.jsx"],"sourcesContent":["import React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport SendMessage from './send-message.jsx';\n\nimport { bytesToHumanSize } from '../lib/strformat.js';\n\nconst messages = defineMessages({\n unrecognized_video_format: {\n id: 'unrecognized_video_format',\n defaultMessage: 'Format of this video is not recognized',\n description: 'Error message when uploaded video is invalid',\n }\n});\n\nclass VideoPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.videoRef = React.createRef();\n\n this.handleSendVideo = this.handleSendVideo.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n handleKeyDown(e) {\n if (this.props.onSendMessage) {\n return;\n }\n\n e.preventDefault();\n if (e.key === 'Escape') {\n this.props.onClose();\n }\n }\n\n handleSendVideo(caption) {\n this.props.onClose();\n const params = {\n width: this.videoRef.current.videoWidth,\n height: this.videoRef.current.videoHeight,\n duration: (this.videoRef.current.duration * 1000) | 0,\n mime: this.props.content.mime,\n name: this.props.content.filename\n }\n\n if (params.width == 0 || params.height == 0) {\n this.props.onError(this.props.intl.formatMessage(messages.unrecognized_video_format), 'err');\n return;\n }\n\n // Capture screen from a video.\n const canvas = document.createElement('canvas');\n canvas.width = params.width;\n canvas.height = params.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(this.videoRef.current, 0, 0, canvas.width, canvas.height);\n ctx.canvas.toBlob(\n preview => this.props.onSendMessage(caption, this.props.content.blob, preview, params),\n 'image/jpeg', 0.75\n );\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n\n const width = this.props.content.width || '-';\n const height = this.props.content.height || '-';\n\n const controlist = this.props.onSendMessage ? 'nodownload' : '';\n const autoPlay = !this.props.onSendMessage;\n\n return (\n
    \n
    \n {this.props.content.filename}\n {e.preventDefault(); this.props.onClose();}}>close\n
    \n
    \n \n
    \n {this.props.onSendMessage ?\n \n :\n
    \n
    \n
    \n
    {this.props.content.filename}
    \n
    \n
    \n
    \n
    {this.props.content.type}
    \n
    \n
    \n
    \n
    {width} × {height} px; {bytesToHumanSize(this.props.content.size)}
    \n
    \n
    }\n
    \n );\n }\n};\n\nexport default injectIntl(VideoPreview);\n"],"names":["messages","defineMessages","unrecognized_video_format","id","defaultMessage","VideoPreview","React","constructor","props","super","this","videoRef","handleSendVideo","bind","handleKeyDown","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","e","onSendMessage","preventDefault","key","onClose","caption","params","width","current","videoWidth","height","videoHeight","duration","mime","content","name","filename","onError","intl","formatMessage","canvas","createElement","ctx","getContext","drawImage","toBlob","preview","blob","render","controlist","autoPlay","href","onClick","className","controls","controlsList","disablePictureInPicture","ref","src","tinode","authorizeURL","url","poster","alt","SendMessage","messagePrompt","acceptBlank","reply","onCancelReply","FormattedMessage","title","type","bytesToHumanSize","size","injectIntl"],"ignoreList":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"371.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/widgets/video-preview.jsx"],"sourcesContent":["import React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport SendMessage from './send-message.jsx';\n\nimport { bytesToHumanSize } from '../lib/strformat.js';\n\nconst messages = defineMessages({\n unrecognized_video_format: {\n id: 'unrecognized_video_format',\n defaultMessage: 'Format of this video is not recognized',\n description: 'Error message when uploaded video is invalid',\n }\n});\n\nclass VideoPreview extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.videoRef = React.createRef();\n\n this.handleSendVideo = this.handleSendVideo.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n }\n\n componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n }\n\n componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n\n handleKeyDown(e) {\n if (this.props.onSendMessage) {\n return;\n }\n\n e.preventDefault();\n if (e.key === 'Escape') {\n this.props.onClose();\n }\n }\n\n handleSendVideo(caption) {\n this.props.onClose();\n const params = {\n width: this.videoRef.current.videoWidth,\n height: this.videoRef.current.videoHeight,\n duration: (this.videoRef.current.duration * 1000) | 0,\n mime: this.props.content.mime,\n name: this.props.content.filename\n }\n\n if (params.width == 0 || params.height == 0) {\n this.props.onError(this.props.intl.formatMessage(messages.unrecognized_video_format), 'err');\n return;\n }\n\n // Capture screen from a video.\n const canvas = document.createElement('canvas');\n canvas.width = params.width;\n canvas.height = params.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(this.videoRef.current, 0, 0, canvas.width, canvas.height);\n ctx.canvas.toBlob(\n preview => this.props.onSendMessage(caption, this.props.content.blob, preview, params),\n 'image/jpeg', 0.75\n );\n }\n\n render() {\n if (!this.props.content) {\n return null;\n }\n\n const width = this.props.content.width || '-';\n const height = this.props.content.height || '-';\n\n const controlist = this.props.onSendMessage ? 'nodownload' : '';\n const autoPlay = !this.props.onSendMessage;\n\n return (\n
    \n
    \n {this.props.content.filename}\n {e.preventDefault(); this.props.onClose();}}>close\n
    \n
    \n \n
    \n {this.props.onSendMessage ?\n \n :\n
    \n
    \n
    \n
    {this.props.content.filename}
    \n
    \n
    \n
    \n
    {this.props.content.type}
    \n
    \n
    \n
    \n
    {width} × {height} px; {bytesToHumanSize(this.props.content.size)}
    \n
    \n
    }\n
    \n );\n }\n};\n\nexport default injectIntl(VideoPreview);\n"],"names":["messages","react_intl__WEBPACK_IMPORTED_MODULE_1__","defineMessages","unrecognized_video_format","id","defaultMessage","description","VideoPreview","react__WEBPACK_IMPORTED_MODULE_0___default","constructor","props","super","this","videoRef","createRef","handleSendVideo","bind","handleKeyDown","componentDidMount","document","addEventListener","componentWillUnmount","removeEventListener","e","onSendMessage","preventDefault","key","onClose","caption","params","width","current","videoWidth","height","videoHeight","duration","mime","content","name","filename","onError","intl","formatMessage","canvas","createElement","ctx","getContext","drawImage","toBlob","preview","blob","render","controlist","autoPlay","react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__","jsxDEV","children","href","onClick","className","controls","controlsList","disablePictureInPicture","ref","src","tinode","authorizeURL","url","poster","alt","_send_message_jsx__WEBPACK_IMPORTED_MODULE_2__","A","messagePrompt","acceptBlank","reply","onCancelReply","FormattedMessage","title","type","_lib_strformat_js__WEBPACK_IMPORTED_MODULE_3__","lX","size","__webpack_exports__","injectIntl"],"sourceRoot":""} \ No newline at end of file diff --git a/umd/429.prod.js b/umd/429.prod.js index 79874ef3..c5a07827 100644 --- a/umd/429.prod.js +++ b/umd/429.prod.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[429],{1725:function(e,t,s){var i=s(1594),a=s.n(i),n=s(8181),l=s(4532),r=s(9027),o=s(6110),h=s(5791);const d=a().lazy(e=>Promise.all([s.e(537),s.e(0)]).then(s.bind(s,4e3))),p=(0,n.defineMessages)({messaging_disabled:{id:"messaging_disabled_prompt",defaultMessage:[{type:0,value:"Messaging disabled"}]},type_new_message:{id:"new_message_prompt",defaultMessage:[{type:0,value:"New message"}]},add_image_caption:{id:"image_caption_prompt",defaultMessage:[{type:0,value:"Image caption"}]},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:[{type:0,value:"The file size "},{type:1,value:"size"},{type:0,value:" exceeds the "},{type:1,value:"limit"},{type:0,value:" limit."}]},cannot_initiate_upload:{id:"cannot_initiate_file_upload",defaultMessage:[{type:0,value:"Cannot initiate file upload."}]},icon_title_record_voice:{id:"icon_title_record_voice",defaultMessage:[{type:0,value:"Record voice message"}]},icon_title_attach_file:{id:"icon_title_attach_file",defaultMessage:[{type:0,value:"Attach file"}]},icon_title_add_image:{id:"icon_title_add_image",defaultMessage:[{type:0,value:"Add image"}]},icon_title_send:{id:"icon_title_send",defaultMessage:[{type:0,value:"Send message"}]}});class c extends a().PureComponent{constructor(e){super(e),this.state={quote:null,message:"",audioRec:!1,audioAvailable:!(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)},this.keypressTimestamp=0,this.handlePasteEvent=this.handlePasteEvent.bind(this),this.handleAttachImage=this.handleAttachImage.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachAudio=this.handleAttachAudio.bind(this),this.handleSend=this.handleSend.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleMessageTyping=this.handleMessageTyping.bind(this),this.handleDropAttach=this.handleDropAttach.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.formatReply=this.formatReply.bind(this)}componentDidMount(){this.messageEditArea&&(this.messageEditArea.addEventListener("paste",this.handlePasteEvent,!1),"all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus()),this.setState({quote:this.formatReply()})}componentWillUnmount(){this.messageEditArea&&this.messageEditArea.removeEventListener("paste",this.handlePasteEvent,!1)}componentDidUpdate(e){if(this.messageEditArea&&("all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus(),this.messageEditArea.style.height="0px",this.messageEditArea.style.height=this.messageEditArea.scrollHeight+"px"),e.topicName!=this.props.topicName)this.setState({message:this.props.initMessage||"",audioRec:!1,quote:null});else if(e.initMessage!=this.props.initMessage){const e=this.props.initMessage||"";this.setState({message:e},t=>{this.messageEditArea.scrollTop=this.messageEditArea.scrollHeight,this.messageEditArea.setSelectionRange(e.length,e.length)})}e.reply!=this.props.reply&&this.setState({quote:this.formatReply()})}formatReply(){return this.props.reply?l.Drafty.format(this.props.reply.content,h.NV,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):null}handlePasteEvent(e){this.props.disabled||(0,o.iJ)(e,e=>{this.props.onAttachImage(e)},e=>{this.props.onAttachFile(e)},this.props.onError)&&e.preventDefault()}handleAttachImage(e){e.target.files&&e.target.files.length>0&&this.props.onAttachImage(e.target.files[0]),e.target.value=""}handleAttachFile(e){e.target.files&&e.target.files.length>0&&this.props.onAttachFile(e.target.files[0]),e.target.value=""}handleDropAttach(e){e&&e.length>0&&this.props.onAttachFile(e[0])}handleAttachAudio(e,t,s){this.setState({audioRec:!1}),this.props.onAttachAudio(e,t,s)}handleSend(e){e.preventDefault();const t=this.state.message.trim();(t||this.props.acceptBlank||this.props.noInput)&&(this.props.onSendMessage(t),this.setState({message:""}))}handleKeyPress(e){if(this.state.audioRec)return e.preventDefault(),void e.stopPropagation();"Enter"===e.key&&("plain"==this.props.sendOnEnter?e.shiftKey||(e.preventDefault(),e.stopPropagation(),this.handleSend(e)):(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.stopPropagation(),this.handleSend(e)))}handleMessageTyping(e){if(this.setState({message:e.target.value}),this.props.onKeyPress){const e=(new Date).getTime();e-this.keypressTimestamp>r.NR&&(this.props.onKeyPress(),this.keypressTimestamp=e)}}handleQuoteClick(e){if(e.preventDefault(),e.stopPropagation(),this.props.reply&&this.props.onQuoteClick){const e=this.props.reply.seq;this.props.onQuoteClick(e)}}render(){const{formatMessage:e}=this.props.intl,t=this.props.disabled?e(p.messaging_disabled):this.props.messagePrompt?e(p[this.props.messagePrompt]):e(p.type_new_message),s=this.props.reply&&this.props.reply.editing?"check_circle":"send",l=this.state.quote?a().createElement("div",{id:"reply-quote-preview"},a().createElement("div",{className:"cancel"},a().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancelReply()}},a().createElement("i",{className:"material-icons gray"},"close"))),this.state.quote):null,r=this.state.audioAvailable&&this.props.onAttachAudio;return a().createElement("div",{id:"send-message-wrapper"},this.props.noInput?null:l,a().createElement("div",{id:"send-message-panel"},this.props.disabled?a().createElement("div",{id:"writing-disabled"},t):a().createElement(a().Fragment,null,this.props.onAttachFile&&!this.state.audioRec?a().createElement(a().Fragment,null,a().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachImage.click()},title:e(p.icon_title_add_image)},a().createElement("i",{className:"material-icons secondary"},"photo")),a().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachFile.click()},title:e(p.icon_title_attach_file)},a().createElement("i",{className:"material-icons secondary"},"attach_file"))):null,this.props.noInput?l||a().createElement("div",{className:"hr thin"}):this.state.audioRec?a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(d,{onRecordingProgress:e=>this.props.onKeyPress(!0),onDeleted:e=>this.setState({audioRec:!1}),onFinished:this.handleAttachAudio})):a().createElement("textarea",{id:"send-message-input",placeholder:t,value:this.state.message,onChange:this.handleMessageTyping,onKeyDown:this.handleKeyPress,ref:e=>{this.messageEditArea=e}}),this.state.message||!r?a().createElement("a",{href:"#",onClick:this.handleSend,title:e(p.icon_title_send)},a().createElement("i",{className:"material-icons"},s)):this.state.audioRec?null:a().createElement("a",{href:"#",onClick:e=>{e.preventDefault(),this.setState({audioRec:!0})},title:e(p.icon_title_record_voice)},a().createElement("i",{className:"material-icons"},"mic")),a().createElement("input",{type:"file",ref:e=>{this.attachFile=e},onChange:this.handleAttachFile,style:{display:"none"}}),a().createElement("input",{type:"file",ref:e=>{this.attachImage=e},accept:"image/*, video/*",onChange:this.handleAttachImage,style:{display:"none"}}))))}}t.A=(0,n.injectIntl)(c)},6429:function(e,t,s){s.r(t),s.d(t,{default:function(){return j}});var i=s(1594),a=s.n(i),n=s(8181),l=s(4532),r=s(9895),o=s(8589),h=s(3540);class d extends a().Component{constructor(e){super(e),this.state={downloader:null,progress:0},this.downloadFile=this.downloadFile.bind(this),this.handleCancel=this.handleCancel.bind(this)}downloadFile(e,t,s){if(!e)return void this.props.onError("Invalid download URL '"+e+"'");const i=this.props.tinode.getLargeFileHelper();this.setState({downloader:i}),i.download(e,t,s,e=>this.setState({progress:e/this.props.size}),e=>this.props.onError(e,"err")).then(e=>this.setState({downloader:null,progress:0})).catch(e=>{e&&this.props.onError("Error downloading file: "+e.message,"err"),this.setState({downloader:null,progress:0})})}handleCancel(){this.props.uploading?this.props.onCancelUpload():this.state.downloader&&this.state.downloader.cancel()}render(){let e=this.props.filename||"file_attachment";e.length>36&&(e=e.substr(0,16)+"..."+e.substr(-16));let t,s,i=this.props.size>0?a().createElement("span",{className:"small gray"},"(",(0,o.lX)(this.props.size),")"):null;this.props.uploading||this.state.downloader||!(0,h.YO)(this.props.downloadUrl)?(t=(0,h.Jf)(this.props.downloadUrl),s=null):(t="#",s=e=>{e.preventDefault(),this.downloadFile(this.props.downloadUrl,this.props.filename,this.props.mimetype)});const l=a().createElement(a().Fragment,null,a().createElement("i",{className:"material-icons"},"file_download")," ",a().createElement(n.FormattedMessage,{id:"save_attachment",defaultMessage:[{type:0,value:"save"}]}));return a().createElement("div",{className:"attachment"},a().createElement("div",null,a().createElement("i",{className:"material-icons big gray"},"insert_drive_file")),a().createElement("div",{className:"flex-column"},a().createElement("div",null,e," ",i),this.props.uploading||this.state.downloader?a().createElement(r.A,{progress:this.props.uploading?this.props.progress:this.state.progress,onCancel:this.handleCancel}):a().createElement("div",null,t?a().createElement("a",{href:t,download:this.props.filename,onClick:s},l):a().createElement("span",{className:"light-gray"},l))))}}var p=s(6904);const c=(0,n.defineMessages)({message_sending:{id:"message_sending",defaultMessage:[{type:0,value:"sending..."}]},message_sending_failed:{id:"message_sending_failed",defaultMessage:[{type:0,value:"failed"}]},message_edited_marker:{id:"message_edited_marker",defaultMessage:[{type:0,value:", edited"}]}});class u extends a().PureComponent{render(){const{formatMessage:e}=this.props.intl;let t;t=this.props.received<=l.Tinode.MESSAGE_STATUS_SENDING?e(c.message_sending):this.props.received==l.Tinode.MESSAGE_STATUS_FAILED||this.props.received==l.Tinode.MESSAGE_STATUS_FATAL?e(c.message_sending_failed):this.props.timestamp.toLocaleTimeString(this.props.intl.locale,{timeStyle:"short"});const s=(0,h.LO)(this.props.received),i=s?a().createElement("i",{className:"material-icons small "+s.color},s.name):null,n=this.props.edited?e(c.message_edited_marker):null;return a().createElement("span",{className:"timestamp"},t,n," ",i)}}var m=(0,n.injectIntl)(u),g=s(5791),f=s(7151);function v(){return v=Object.assign?Object.assign.bind():function(e){for(var t=1;t{switch(t){case"image":this.handleExpandImage(e);break;case"video":this.handlePlayVideo(e);break;case"form_button":this.handleFormButtonClick(e);break;case"quote":this.handleQuoteClick(e);break;case"contact_chat":e.preventDefault();try{const t=new URL(e.target.dataset.val)?.pathname,s=t.split("/").filter(Boolean);f.A.navigateTo(f.A.setUrlTopic("",s.pop()||""))}catch(e){console.error("Invalid URL:",e)}break;case"contact_find":e.preventDefault();let s=f.A.setUrlSidePanel(window.location.hash,"newtpk");s=f.A.addUrlParam(s,"q",e.target.dataset.val),s=f.A.addUrlParam(s,"tab","find"),f.A.navigateTo(s);break;default:console.info("Unhandled drafty action.",t,e.target.dataset)}};handleExpandImage(e){e.preventDefault(),this.props.onExpandMedia({url:e.target.src,filename:e.target.dataset.name,width:e.target.dataset.width,height:e.target.dataset.height,size:e.target.dataset.size,type:e.target.dataset.mime})}handlePlayVideo(e){e.preventDefault(),this.props.onExpandMedia({video:!0,url:e.target.dataset.src,preview:e.target.src,filename:e.target.dataset.name,width:e.target.dataset.width,height:e.target.dataset.height,duration:e.target.dataset.duration,size:e.target.dataset.size,type:e.target.dataset.mime})}handleFormButtonClick(e){e.preventDefault();const t={seq:this.props.seq,resp:{}};e.target.dataset.name&&(t.resp[e.target.dataset.name]=e.target.dataset.val?e.target.dataset.val:void 0===e.target.dataset.val?1:""+e.target.dataset.val),"url"==e.target.dataset.act&&(t.ref=(0,h.Jf)(e.target.dataset.ref)||"about:blank");const s=e.target.dataset.title||"unknown";this.props.onFormResponse(e.target.dataset.act,s,t)}handleContextClick(e){e.preventDefault(),e.stopPropagation();const t=[];if(this.props.received==l.Tinode.MESSAGE_STATUS_FAILED&&t.push("menu_item_send_retry"),this.props.received>l.Tinode.MESSAGE_STATUS_FATAL){if(this.props.userIsWriter&&(t.push("menu_item_reply"),!this.props.response)){let e=!1;l.Drafty.entities(this.props.content,(t,s,i)=>(e=["AU","EX","FM","IM","TC","VC","VD"].includes(i),e)),e||l.Drafty.styles(this.props.content,t=>(e=["QQ"].includes(t),e)),e||t.push("menu_item_edit")}this.props.userIsAdmin&&t.push(this.props.pinned?"menu_item_unpin":"menu_item_pin")}t.push("menu_item_forward"),this.props.showContextMenu({seq:this.props.seq,replace:this.props.edited?parseInt(this.props.edited.split(":")[1]):0,content:this.props.content,userFrom:this.props.userFrom,userName:this.props.userName,y:e.pageY,x:e.pageX,pickReply:this.props.pickReply,editMessage:this.props.editMessage,timestamp:this.props.timestamp},t)}handleProgress(e){this.setState({progress:e})}handleCancelUpload(){this.props.onCancelUpload(this.props.seq,this.props.uploader)}handleQuoteClick(e){e.preventDefault(),e.stopPropagation();const t=this.props.replyToSeq;t&&this.props.onQuoteClick(t)}render(){const e=this.props.sequence+" "+(this.props.response?"left":"right"),t="single"==this.props.sequence||"last"==this.props.sequence?"bubble tip":"bubble",s=this.props.userAvatar||!0;let i="message-content";const r=this.props.isGroup&&this.props.response&&("single"==this.props.sequence||"last"==this.props.sequence);let o=this.props.content;const h=[];if(this.props.mimeType==l.Drafty.getContentType()&&l.Drafty.isValid(o)){l.Drafty.attachments(o,(e,t)=>{l.Drafty.isFormResponseType(e.mime)||h.push(a().createElement(d,{tinode:this.props.tinode,downloadUrl:l.Drafty.getDownloadUrl(e),filename:e.name,uploading:l.Drafty.isProcessing(e),mimetype:e.mime,size:l.Drafty.getEntitySize(e),progress:this.state.progress,onCancelUpload:this.handleCancelUpload,onError:this.props.onError,key:t}))},this);const e=l.Drafty.format(o,g.e3,this.formatterContext);o=a().createElement(a().Fragment,null,e)}else"string"==typeof o?new RegExp("^\\p{RGI_Emoji}{1,5}$","v").test(o||"")&&(i+=" emoji-"+(o||"").match(/(?:👨🏻‍❤️‍💋‍👨🏻|👨🏻‍❤️‍💋‍👨🏼|👨🏻‍❤️‍💋‍👨🏽|👨🏻‍❤️‍💋‍👨🏾|👨🏻‍❤️‍💋‍👨🏿|👨🏼‍❤️‍💋‍👨🏻|👨🏼‍❤️‍💋‍👨🏼|👨🏼‍❤️‍💋‍👨🏽|👨🏼‍❤️‍💋‍👨🏾|👨🏼‍❤️‍💋‍👨🏿|👨🏽‍❤️‍💋‍👨🏻|👨🏽‍❤️‍💋‍👨🏼|👨🏽‍❤️‍💋‍👨🏽|👨🏽‍❤️‍💋‍👨🏾|👨🏽‍❤️‍💋‍👨🏿|👨🏾‍❤️‍💋‍👨🏻|👨🏾‍❤️‍💋‍👨🏼|👨🏾‍❤️‍💋‍👨🏽|👨🏾‍❤️‍💋‍👨🏾|👨🏾‍❤️‍💋‍👨🏿|👨🏿‍❤️‍💋‍👨🏻|👨🏿‍❤️‍💋‍👨🏼|👨🏿‍❤️‍💋‍👨🏽|👨🏿‍❤️‍💋‍👨🏾|👨🏿‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👨🏻|👩🏻‍❤️‍💋‍👨🏼|👩🏻‍❤️‍💋‍👨🏽|👩🏻‍❤️‍💋‍👨🏾|👩🏻‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👩🏻|👩🏻‍❤️‍💋‍👩🏼|👩🏻‍❤️‍💋‍👩🏽|👩🏻‍❤️‍💋‍👩🏾|👩🏻‍❤️‍💋‍👩🏿|👩🏼‍❤️‍💋‍👨🏻|👩🏼‍❤️‍💋‍👨🏼|👩🏼‍❤️‍💋‍👨🏽|👩🏼‍❤️‍💋‍👨🏾|👩🏼‍❤️‍💋‍👨🏿|👩🏼‍❤️‍💋‍👩🏻|👩🏼‍❤️‍💋‍👩🏼|👩🏼‍❤️‍💋‍👩🏽|👩🏼‍❤️‍💋‍👩🏾|👩🏼‍❤️‍💋‍👩🏿|👩🏽‍❤️‍💋‍👨🏻|👩🏽‍❤️‍💋‍👨🏼|👩🏽‍❤️‍💋‍👨🏽|👩🏽‍❤️‍💋‍👨🏾|👩🏽‍❤️‍💋‍👨🏿|👩🏽‍❤️‍💋‍👩🏻|👩🏽‍❤️‍💋‍👩🏼|👩🏽‍❤️‍💋‍👩🏽|👩🏽‍❤️‍💋‍👩🏾|👩🏽‍❤️‍💋‍👩🏿|👩🏾‍❤️‍💋‍👨🏻|👩🏾‍❤️‍💋‍👨🏼|👩🏾‍❤️‍💋‍👨🏽|👩🏾‍❤️‍💋‍👨🏾|👩🏾‍❤️‍💋‍👨🏿|👩🏾‍❤️‍💋‍👩🏻|👩🏾‍❤️‍💋‍👩🏼|👩🏾‍❤️‍💋‍👩🏽|👩🏾‍❤️‍💋‍👩🏾|👩🏾‍❤️‍💋‍👩🏿|👩🏿‍❤️‍💋‍👨🏻|👩🏿‍❤️‍💋‍👨🏼|👩🏿‍❤️‍💋‍👨🏽|👩🏿‍❤️‍💋‍👨🏾|👩🏿‍❤️‍💋‍👨🏿|👩🏿‍❤️‍💋‍👩🏻|👩🏿‍❤️‍💋‍👩🏼|👩🏿‍❤️‍💋‍👩🏽|👩🏿‍❤️‍💋‍👩🏾|👩🏿‍❤️‍💋‍👩🏿|🧑🏻‍❤️‍💋‍🧑🏼|🧑🏻‍❤️‍💋‍🧑🏽|🧑🏻‍❤️‍💋‍🧑🏾|🧑🏻‍❤️‍💋‍🧑🏿|🧑🏼‍❤️‍💋‍🧑🏻|🧑🏼‍❤️‍💋‍🧑🏽|🧑🏼‍❤️‍💋‍🧑🏾|🧑🏼‍❤️‍💋‍🧑🏿|🧑🏽‍❤️‍💋‍🧑🏻|🧑🏽‍❤️‍💋‍🧑🏼|🧑🏽‍❤️‍💋‍🧑🏾|🧑🏽‍❤️‍💋‍🧑🏿|🧑🏾‍❤️‍💋‍🧑🏻|🧑🏾‍❤️‍💋‍🧑🏼|🧑🏾‍❤️‍💋‍🧑🏽|🧑🏾‍❤️‍💋‍🧑🏿|🧑🏿‍❤️‍💋‍🧑🏻|🧑🏿‍❤️‍💋‍🧑🏼|🧑🏿‍❤️‍💋‍🧑🏽|🧑🏿‍❤️‍💋‍🧑🏾|🏴󠁧󠁢󠁥󠁮󠁧󠁿|🏴󠁧󠁢󠁳󠁣󠁴󠁿|🏴󠁧󠁢󠁷󠁬󠁳󠁿|👨🏻‍❤️‍👨🏻|👨🏻‍❤️‍👨🏼|👨🏻‍❤️‍👨🏽|👨🏻‍❤️‍👨🏾|👨🏻‍❤️‍👨🏿|👨🏻‍🐰‍👨🏼|👨🏻‍🐰‍👨🏽|👨🏻‍🐰‍👨🏾|👨🏻‍🐰‍👨🏿|👨🏻‍🤝‍👨🏼|👨🏻‍🤝‍👨🏽|👨🏻‍🤝‍👨🏾|👨🏻‍🤝‍👨🏿|👨🏻‍🫯‍👨🏼|👨🏻‍🫯‍👨🏽|👨🏻‍🫯‍👨🏾|👨🏻‍🫯‍👨🏿|👨🏼‍❤️‍👨🏻|👨🏼‍❤️‍👨🏼|👨🏼‍❤️‍👨🏽|👨🏼‍❤️‍👨🏾|👨🏼‍❤️‍👨🏿|👨🏼‍🐰‍👨🏻|👨🏼‍🐰‍👨🏽|👨🏼‍🐰‍👨🏾|👨🏼‍🐰‍👨🏿|👨🏼‍🤝‍👨🏻|👨🏼‍🤝‍👨🏽|👨🏼‍🤝‍👨🏾|👨🏼‍🤝‍👨🏿|👨🏼‍🫯‍👨🏻|👨🏼‍🫯‍👨🏽|👨🏼‍🫯‍👨🏾|👨🏼‍🫯‍👨🏿|👨🏽‍❤️‍👨🏻|👨🏽‍❤️‍👨🏼|👨🏽‍❤️‍👨🏽|👨🏽‍❤️‍👨🏾|👨🏽‍❤️‍👨🏿|👨🏽‍🐰‍👨🏻|👨🏽‍🐰‍👨🏼|👨🏽‍🐰‍👨🏾|👨🏽‍🐰‍👨🏿|👨🏽‍🤝‍👨🏻|👨🏽‍🤝‍👨🏼|👨🏽‍🤝‍👨🏾|👨🏽‍🤝‍👨🏿|👨🏽‍🫯‍👨🏻|👨🏽‍🫯‍👨🏼|👨🏽‍🫯‍👨🏾|👨🏽‍🫯‍👨🏿|👨🏾‍❤️‍👨🏻|👨🏾‍❤️‍👨🏼|👨🏾‍❤️‍👨🏽|👨🏾‍❤️‍👨🏾|👨🏾‍❤️‍👨🏿|👨🏾‍🐰‍👨🏻|👨🏾‍🐰‍👨🏼|👨🏾‍🐰‍👨🏽|👨🏾‍🐰‍👨🏿|👨🏾‍🤝‍👨🏻|👨🏾‍🤝‍👨🏼|👨🏾‍🤝‍👨🏽|👨🏾‍🤝‍👨🏿|👨🏾‍🫯‍👨🏻|👨🏾‍🫯‍👨🏼|👨🏾‍🫯‍👨🏽|👨🏾‍🫯‍👨🏿|👨🏿‍❤️‍👨🏻|👨🏿‍❤️‍👨🏼|👨🏿‍❤️‍👨🏽|👨🏿‍❤️‍👨🏾|👨🏿‍❤️‍👨🏿|👨🏿‍🐰‍👨🏻|👨🏿‍🐰‍👨🏼|👨🏿‍🐰‍👨🏽|👨🏿‍🐰‍👨🏾|👨🏿‍🤝‍👨🏻|👨🏿‍🤝‍👨🏼|👨🏿‍🤝‍👨🏽|👨🏿‍🤝‍👨🏾|👨🏿‍🫯‍👨🏻|👨🏿‍🫯‍👨🏼|👨🏿‍🫯‍👨🏽|👨🏿‍🫯‍👨🏾|👩🏻‍❤️‍👨🏻|👩🏻‍❤️‍👨🏼|👩🏻‍❤️‍👨🏽|👩🏻‍❤️‍👨🏾|👩🏻‍❤️‍👨🏿|👩🏻‍❤️‍👩🏻|👩🏻‍❤️‍👩🏼|👩🏻‍❤️‍👩🏽|👩🏻‍❤️‍👩🏾|👩🏻‍❤️‍👩🏿|👩🏻‍🐰‍👩🏼|👩🏻‍🐰‍👩🏽|👩🏻‍🐰‍👩🏾|👩🏻‍🐰‍👩🏿|👩🏻‍🤝‍👨🏼|👩🏻‍🤝‍👨🏽|👩🏻‍🤝‍👨🏾|👩🏻‍🤝‍👨🏿|👩🏻‍🤝‍👩🏼|👩🏻‍🤝‍👩🏽|👩🏻‍🤝‍👩🏾|👩🏻‍🤝‍👩🏿|👩🏻‍🫯‍👩🏼|👩🏻‍🫯‍👩🏽|👩🏻‍🫯‍👩🏾|👩🏻‍🫯‍👩🏿|👩🏼‍❤️‍👨🏻|👩🏼‍❤️‍👨🏼|👩🏼‍❤️‍👨🏽|👩🏼‍❤️‍👨🏾|👩🏼‍❤️‍👨🏿|👩🏼‍❤️‍👩🏻|👩🏼‍❤️‍👩🏼|👩🏼‍❤️‍👩🏽|👩🏼‍❤️‍👩🏾|👩🏼‍❤️‍👩🏿|👩🏼‍🐰‍👩🏻|👩🏼‍🐰‍👩🏽|👩🏼‍🐰‍👩🏾|👩🏼‍🐰‍👩🏿|👩🏼‍🤝‍👨🏻|👩🏼‍🤝‍👨🏽|👩🏼‍🤝‍👨🏾|👩🏼‍🤝‍👨🏿|👩🏼‍🤝‍👩🏻|👩🏼‍🤝‍👩🏽|👩🏼‍🤝‍👩🏾|👩🏼‍🤝‍👩🏿|👩🏼‍🫯‍👩🏻|👩🏼‍🫯‍👩🏽|👩🏼‍🫯‍👩🏾|👩🏼‍🫯‍👩🏿|👩🏽‍❤️‍👨🏻|👩🏽‍❤️‍👨🏼|👩🏽‍❤️‍👨🏽|👩🏽‍❤️‍👨🏾|👩🏽‍❤️‍👨🏿|👩🏽‍❤️‍👩🏻|👩🏽‍❤️‍👩🏼|👩🏽‍❤️‍👩🏽|👩🏽‍❤️‍👩🏾|👩🏽‍❤️‍👩🏿|👩🏽‍🐰‍👩🏻|👩🏽‍🐰‍👩🏼|👩🏽‍🐰‍👩🏾|👩🏽‍🐰‍👩🏿|👩🏽‍🤝‍👨🏻|👩🏽‍🤝‍👨🏼|👩🏽‍🤝‍👨🏾|👩🏽‍🤝‍👨🏿|👩🏽‍🤝‍👩🏻|👩🏽‍🤝‍👩🏼|👩🏽‍🤝‍👩🏾|👩🏽‍🤝‍👩🏿|👩🏽‍🫯‍👩🏻|👩🏽‍🫯‍👩🏼|👩🏽‍🫯‍👩🏾|👩🏽‍🫯‍👩🏿|👩🏾‍❤️‍👨🏻|👩🏾‍❤️‍👨🏼|👩🏾‍❤️‍👨🏽|👩🏾‍❤️‍👨🏾|👩🏾‍❤️‍👨🏿|👩🏾‍❤️‍👩🏻|👩🏾‍❤️‍👩🏼|👩🏾‍❤️‍👩🏽|👩🏾‍❤️‍👩🏾|👩🏾‍❤️‍👩🏿|👩🏾‍🐰‍👩🏻|👩🏾‍🐰‍👩🏼|👩🏾‍🐰‍👩🏽|👩🏾‍🐰‍👩🏿|👩🏾‍🤝‍👨🏻|👩🏾‍🤝‍👨🏼|👩🏾‍🤝‍👨🏽|👩🏾‍🤝‍👨🏿|👩🏾‍🤝‍👩🏻|👩🏾‍🤝‍👩🏼|👩🏾‍🤝‍👩🏽|👩🏾‍🤝‍👩🏿|👩🏾‍🫯‍👩🏻|👩🏾‍🫯‍👩🏼|👩🏾‍🫯‍👩🏽|👩🏾‍🫯‍👩🏿|👩🏿‍❤️‍👨🏻|👩🏿‍❤️‍👨🏼|👩🏿‍❤️‍👨🏽|👩🏿‍❤️‍👨🏾|👩🏿‍❤️‍👨🏿|👩🏿‍❤️‍👩🏻|👩🏿‍❤️‍👩🏼|👩🏿‍❤️‍👩🏽|👩🏿‍❤️‍👩🏾|👩🏿‍❤️‍👩🏿|👩🏿‍🐰‍👩🏻|👩🏿‍🐰‍👩🏼|👩🏿‍🐰‍👩🏽|👩🏿‍🐰‍👩🏾|👩🏿‍🤝‍👨🏻|👩🏿‍🤝‍👨🏼|👩🏿‍🤝‍👨🏽|👩🏿‍🤝‍👨🏾|👩🏿‍🤝‍👩🏻|👩🏿‍🤝‍👩🏼|👩🏿‍🤝‍👩🏽|👩🏿‍🤝‍👩🏾|👩🏿‍🫯‍👩🏻|👩🏿‍🫯‍👩🏼|👩🏿‍🫯‍👩🏽|👩🏿‍🫯‍👩🏾|🧑🏻‍❤️‍🧑🏼|🧑🏻‍❤️‍🧑🏽|🧑🏻‍❤️‍🧑🏾|🧑🏻‍❤️‍🧑🏿|🧑🏻‍🐰‍🧑🏼|🧑🏻‍🐰‍🧑🏽|🧑🏻‍🐰‍🧑🏾|🧑🏻‍🐰‍🧑🏿|🧑🏻‍🤝‍🧑🏻|🧑🏻‍🤝‍🧑🏼|🧑🏻‍🤝‍🧑🏽|🧑🏻‍🤝‍🧑🏾|🧑🏻‍🤝‍🧑🏿|🧑🏻‍🫯‍🧑🏼|🧑🏻‍🫯‍🧑🏽|🧑🏻‍🫯‍🧑🏾|🧑🏻‍🫯‍🧑🏿|🧑🏼‍❤️‍🧑🏻|🧑🏼‍❤️‍🧑🏽|🧑🏼‍❤️‍🧑🏾|🧑🏼‍❤️‍🧑🏿|🧑🏼‍🐰‍🧑🏻|🧑🏼‍🐰‍🧑🏽|🧑🏼‍🐰‍🧑🏾|🧑🏼‍🐰‍🧑🏿|🧑🏼‍🤝‍🧑🏻|🧑🏼‍🤝‍🧑🏼|🧑🏼‍🤝‍🧑🏽|🧑🏼‍🤝‍🧑🏾|🧑🏼‍🤝‍🧑🏿|🧑🏼‍🫯‍🧑🏻|🧑🏼‍🫯‍🧑🏽|🧑🏼‍🫯‍🧑🏾|🧑🏼‍🫯‍🧑🏿|🧑🏽‍❤️‍🧑🏻|🧑🏽‍❤️‍🧑🏼|🧑🏽‍❤️‍🧑🏾|🧑🏽‍❤️‍🧑🏿|🧑🏽‍🐰‍🧑🏻|🧑🏽‍🐰‍🧑🏼|🧑🏽‍🐰‍🧑🏾|🧑🏽‍🐰‍🧑🏿|🧑🏽‍🤝‍🧑🏻|🧑🏽‍🤝‍🧑🏼|🧑🏽‍🤝‍🧑🏽|🧑🏽‍🤝‍🧑🏾|🧑🏽‍🤝‍🧑🏿|🧑🏽‍🫯‍🧑🏻|🧑🏽‍🫯‍🧑🏼|🧑🏽‍🫯‍🧑🏾|🧑🏽‍🫯‍🧑🏿|🧑🏾‍❤️‍🧑🏻|🧑🏾‍❤️‍🧑🏼|🧑🏾‍❤️‍🧑🏽|🧑🏾‍❤️‍🧑🏿|🧑🏾‍🐰‍🧑🏻|🧑🏾‍🐰‍🧑🏼|🧑🏾‍🐰‍🧑🏽|🧑🏾‍🐰‍🧑🏿|🧑🏾‍🤝‍🧑🏻|🧑🏾‍🤝‍🧑🏼|🧑🏾‍🤝‍🧑🏽|🧑🏾‍🤝‍🧑🏾|🧑🏾‍🤝‍🧑🏿|🧑🏾‍🫯‍🧑🏻|🧑🏾‍🫯‍🧑🏼|🧑🏾‍🫯‍🧑🏽|🧑🏾‍🫯‍🧑🏿|🧑🏿‍❤️‍🧑🏻|🧑🏿‍❤️‍🧑🏼|🧑🏿‍❤️‍🧑🏽|🧑🏿‍❤️‍🧑🏾|🧑🏿‍🐰‍🧑🏻|🧑🏿‍🐰‍🧑🏼|🧑🏿‍🐰‍🧑🏽|🧑🏿‍🐰‍🧑🏾|🧑🏿‍🤝‍🧑🏻|🧑🏿‍🤝‍🧑🏼|🧑🏿‍🤝‍🧑🏽|🧑🏿‍🤝‍🧑🏾|🧑🏿‍🤝‍🧑🏿|🧑🏿‍🫯‍🧑🏻|🧑🏿‍🫯‍🧑🏼|🧑🏿‍🫯‍🧑🏽|🧑🏿‍🫯‍🧑🏾|👨‍❤️‍💋‍👨|👨‍👨‍👦‍👦|👨‍👨‍👧‍👦|👨‍👨‍👧‍👧|👨‍👩‍👦‍👦|👨‍👩‍👧‍👦|👨‍👩‍👧‍👧|👩‍❤️‍💋‍👨|👩‍❤️‍💋‍👩|👩‍👩‍👦‍👦|👩‍👩‍👧‍👦|👩‍👩‍👧‍👧|🧑‍🧑‍🧒‍🧒|🏃🏻‍♀️‍➡️|🏃🏻‍♂️‍➡️|🏃🏼‍♀️‍➡️|🏃🏼‍♂️‍➡️|🏃🏽‍♀️‍➡️|🏃🏽‍♂️‍➡️|🏃🏾‍♀️‍➡️|🏃🏾‍♂️‍➡️|🏃🏿‍♀️‍➡️|🏃🏿‍♂️‍➡️|👨🏻‍🦯‍➡️|👨🏻‍🦼‍➡️|👨🏻‍🦽‍➡️|👨🏼‍🦯‍➡️|👨🏼‍🦼‍➡️|👨🏼‍🦽‍➡️|👨🏽‍🦯‍➡️|👨🏽‍🦼‍➡️|👨🏽‍🦽‍➡️|👨🏾‍🦯‍➡️|👨🏾‍🦼‍➡️|👨🏾‍🦽‍➡️|👨🏿‍🦯‍➡️|👨🏿‍🦼‍➡️|👨🏿‍🦽‍➡️|👩🏻‍🦯‍➡️|👩🏻‍🦼‍➡️|👩🏻‍🦽‍➡️|👩🏼‍🦯‍➡️|👩🏼‍🦼‍➡️|👩🏼‍🦽‍➡️|👩🏽‍🦯‍➡️|👩🏽‍🦼‍➡️|👩🏽‍🦽‍➡️|👩🏾‍🦯‍➡️|👩🏾‍🦼‍➡️|👩🏾‍🦽‍➡️|👩🏿‍🦯‍➡️|👩🏿‍🦼‍➡️|👩🏿‍🦽‍➡️|🚶🏻‍♀️‍➡️|🚶🏻‍♂️‍➡️|🚶🏼‍♀️‍➡️|🚶🏼‍♂️‍➡️|🚶🏽‍♀️‍➡️|🚶🏽‍♂️‍➡️|🚶🏾‍♀️‍➡️|🚶🏾‍♂️‍➡️|🚶🏿‍♀️‍➡️|🚶🏿‍♂️‍➡️|🧎🏻‍♀️‍➡️|🧎🏻‍♂️‍➡️|🧎🏼‍♀️‍➡️|🧎🏼‍♂️‍➡️|🧎🏽‍♀️‍➡️|🧎🏽‍♂️‍➡️|🧎🏾‍♀️‍➡️|🧎🏾‍♂️‍➡️|🧎🏿‍♀️‍➡️|🧎🏿‍♂️‍➡️|🧑🏻‍🦯‍➡️|🧑🏻‍🦼‍➡️|🧑🏻‍🦽‍➡️|🧑🏼‍🦯‍➡️|🧑🏼‍🦼‍➡️|🧑🏼‍🦽‍➡️|🧑🏽‍🦯‍➡️|🧑🏽‍🦼‍➡️|🧑🏽‍🦽‍➡️|🧑🏾‍🦯‍➡️|🧑🏾‍🦼‍➡️|🧑🏾‍🦽‍➡️|🧑🏿‍🦯‍➡️|🧑🏿‍🦼‍➡️|🧑🏿‍🦽‍➡️|🫱🏻‍🫲🏼|🫱🏻‍🫲🏽|🫱🏻‍🫲🏾|🫱🏻‍🫲🏿|🫱🏼‍🫲🏻|🫱🏼‍🫲🏽|🫱🏼‍🫲🏾|🫱🏼‍🫲🏿|🫱🏽‍🫲🏻|🫱🏽‍🫲🏼|🫱🏽‍🫲🏾|🫱🏽‍🫲🏿|🫱🏾‍🫲🏻|🫱🏾‍🫲🏼|🫱🏾‍🫲🏽|🫱🏾‍🫲🏿|🫱🏿‍🫲🏻|🫱🏿‍🫲🏼|🫱🏿‍🫲🏽|🫱🏿‍🫲🏾|🏃‍♀️‍➡️|🏃‍♂️‍➡️|👨‍❤️‍👨|👨‍👦‍👦|👨‍👧‍👦|👨‍👧‍👧|👨‍👨‍👦|👨‍👨‍👧|👨‍👩‍👦|👨‍👩‍👧|👨‍🦯‍➡️|👨‍🦼‍➡️|👨‍🦽‍➡️|👩‍❤️‍👨|👩‍❤️‍👩|👩‍👦‍👦|👩‍👧‍👦|👩‍👧‍👧|👩‍👩‍👦|👩‍👩‍👧|👩‍🦯‍➡️|👩‍🦼‍➡️|👩‍🦽‍➡️|🚶‍♀️‍➡️|🚶‍♂️‍➡️|🧎‍♀️‍➡️|🧎‍♂️‍➡️|🧑‍🤝‍🧑|🧑‍🦯‍➡️|🧑‍🦼‍➡️|🧑‍🦽‍➡️|🧑‍🧑‍🧒|🧑‍🧒‍🧒|🏃🏻‍♀️|🏃🏻‍♂️|🏃🏻‍➡️|🏃🏼‍♀️|🏃🏼‍♂️|🏃🏼‍➡️|🏃🏽‍♀️|🏃🏽‍♂️|🏃🏽‍➡️|🏃🏾‍♀️|🏃🏾‍♂️|🏃🏾‍➡️|🏃🏿‍♀️|🏃🏿‍♂️|🏃🏿‍➡️|🏄🏻‍♀️|🏄🏻‍♂️|🏄🏼‍♀️|🏄🏼‍♂️|🏄🏽‍♀️|🏄🏽‍♂️|🏄🏾‍♀️|🏄🏾‍♂️|🏄🏿‍♀️|🏄🏿‍♂️|🏊🏻‍♀️|🏊🏻‍♂️|🏊🏼‍♀️|🏊🏼‍♂️|🏊🏽‍♀️|🏊🏽‍♂️|🏊🏾‍♀️|🏊🏾‍♂️|🏊🏿‍♀️|🏊🏿‍♂️|🏋🏻‍♀️|🏋🏻‍♂️|🏋🏼‍♀️|🏋🏼‍♂️|🏋🏽‍♀️|🏋🏽‍♂️|🏋🏾‍♀️|🏋🏾‍♂️|🏋🏿‍♀️|🏋🏿‍♂️|🏌🏻‍♀️|🏌🏻‍♂️|🏌🏼‍♀️|🏌🏼‍♂️|🏌🏽‍♀️|🏌🏽‍♂️|🏌🏾‍♀️|🏌🏾‍♂️|🏌🏿‍♀️|🏌🏿‍♂️|👁️‍🗨️|👨🏻‍⚕️|👨🏻‍⚖️|👨🏻‍✈️|👨🏻‍🌾|👨🏻‍🍳|👨🏻‍🍼|👨🏻‍🎓|👨🏻‍🎤|👨🏻‍🎨|👨🏻‍🏫|👨🏻‍🏭|👨🏻‍💻|👨🏻‍💼|👨🏻‍🔧|👨🏻‍🔬|👨🏻‍🚀|👨🏻‍🚒|👨🏻‍🦯|👨🏻‍🦰|👨🏻‍🦱|👨🏻‍🦲|👨🏻‍🦳|👨🏻‍🦼|👨🏻‍🦽|👨🏼‍⚕️|👨🏼‍⚖️|👨🏼‍✈️|👨🏼‍🌾|👨🏼‍🍳|👨🏼‍🍼|👨🏼‍🎓|👨🏼‍🎤|👨🏼‍🎨|👨🏼‍🏫|👨🏼‍🏭|👨🏼‍💻|👨🏼‍💼|👨🏼‍🔧|👨🏼‍🔬|👨🏼‍🚀|👨🏼‍🚒|👨🏼‍🦯|👨🏼‍🦰|👨🏼‍🦱|👨🏼‍🦲|👨🏼‍🦳|👨🏼‍🦼|👨🏼‍🦽|👨🏽‍⚕️|👨🏽‍⚖️|👨🏽‍✈️|👨🏽‍🌾|👨🏽‍🍳|👨🏽‍🍼|👨🏽‍🎓|👨🏽‍🎤|👨🏽‍🎨|👨🏽‍🏫|👨🏽‍🏭|👨🏽‍💻|👨🏽‍💼|👨🏽‍🔧|👨🏽‍🔬|👨🏽‍🚀|👨🏽‍🚒|👨🏽‍🦯|👨🏽‍🦰|👨🏽‍🦱|👨🏽‍🦲|👨🏽‍🦳|👨🏽‍🦼|👨🏽‍🦽|👨🏾‍⚕️|👨🏾‍⚖️|👨🏾‍✈️|👨🏾‍🌾|👨🏾‍🍳|👨🏾‍🍼|👨🏾‍🎓|👨🏾‍🎤|👨🏾‍🎨|👨🏾‍🏫|👨🏾‍🏭|👨🏾‍💻|👨🏾‍💼|👨🏾‍🔧|👨🏾‍🔬|👨🏾‍🚀|👨🏾‍🚒|👨🏾‍🦯|👨🏾‍🦰|👨🏾‍🦱|👨🏾‍🦲|👨🏾‍🦳|👨🏾‍🦼|👨🏾‍🦽|👨🏿‍⚕️|👨🏿‍⚖️|👨🏿‍✈️|👨🏿‍🌾|👨🏿‍🍳|👨🏿‍🍼|👨🏿‍🎓|👨🏿‍🎤|👨🏿‍🎨|👨🏿‍🏫|👨🏿‍🏭|👨🏿‍💻|👨🏿‍💼|👨🏿‍🔧|👨🏿‍🔬|👨🏿‍🚀|👨🏿‍🚒|👨🏿‍🦯|👨🏿‍🦰|👨🏿‍🦱|👨🏿‍🦲|👨🏿‍🦳|👨🏿‍🦼|👨🏿‍🦽|👩🏻‍⚕️|👩🏻‍⚖️|👩🏻‍✈️|👩🏻‍🌾|👩🏻‍🍳|👩🏻‍🍼|👩🏻‍🎓|👩🏻‍🎤|👩🏻‍🎨|👩🏻‍🏫|👩🏻‍🏭|👩🏻‍💻|👩🏻‍💼|👩🏻‍🔧|👩🏻‍🔬|👩🏻‍🚀|👩🏻‍🚒|👩🏻‍🦯|👩🏻‍🦰|👩🏻‍🦱|👩🏻‍🦲|👩🏻‍🦳|👩🏻‍🦼|👩🏻‍🦽|👩🏼‍⚕️|👩🏼‍⚖️|👩🏼‍✈️|👩🏼‍🌾|👩🏼‍🍳|👩🏼‍🍼|👩🏼‍🎓|👩🏼‍🎤|👩🏼‍🎨|👩🏼‍🏫|👩🏼‍🏭|👩🏼‍💻|👩🏼‍💼|👩🏼‍🔧|👩🏼‍🔬|👩🏼‍🚀|👩🏼‍🚒|👩🏼‍🦯|👩🏼‍🦰|👩🏼‍🦱|👩🏼‍🦲|👩🏼‍🦳|👩🏼‍🦼|👩🏼‍🦽|👩🏽‍⚕️|👩🏽‍⚖️|👩🏽‍✈️|👩🏽‍🌾|👩🏽‍🍳|👩🏽‍🍼|👩🏽‍🎓|👩🏽‍🎤|👩🏽‍🎨|👩🏽‍🏫|👩🏽‍🏭|👩🏽‍💻|👩🏽‍💼|👩🏽‍🔧|👩🏽‍🔬|👩🏽‍🚀|👩🏽‍🚒|👩🏽‍🦯|👩🏽‍🦰|👩🏽‍🦱|👩🏽‍🦲|👩🏽‍🦳|👩🏽‍🦼|👩🏽‍🦽|👩🏾‍⚕️|👩🏾‍⚖️|👩🏾‍✈️|👩🏾‍🌾|👩🏾‍🍳|👩🏾‍🍼|👩🏾‍🎓|👩🏾‍🎤|👩🏾‍🎨|👩🏾‍🏫|👩🏾‍🏭|👩🏾‍💻|👩🏾‍💼|👩🏾‍🔧|👩🏾‍🔬|👩🏾‍🚀|👩🏾‍🚒|👩🏾‍🦯|👩🏾‍🦰|👩🏾‍🦱|👩🏾‍🦲|👩🏾‍🦳|👩🏾‍🦼|👩🏾‍🦽|👩🏿‍⚕️|👩🏿‍⚖️|👩🏿‍✈️|👩🏿‍🌾|👩🏿‍🍳|👩🏿‍🍼|👩🏿‍🎓|👩🏿‍🎤|👩🏿‍🎨|👩🏿‍🏫|👩🏿‍🏭|👩🏿‍💻|👩🏿‍💼|👩🏿‍🔧|👩🏿‍🔬|👩🏿‍🚀|👩🏿‍🚒|👩🏿‍🦯|👩🏿‍🦰|👩🏿‍🦱|👩🏿‍🦲|👩🏿‍🦳|👩🏿‍🦼|👩🏿‍🦽|👮🏻‍♀️|👮🏻‍♂️|👮🏼‍♀️|👮🏼‍♂️|👮🏽‍♀️|👮🏽‍♂️|👮🏾‍♀️|👮🏾‍♂️|👮🏿‍♀️|👮🏿‍♂️|👯🏻‍♀️|👯🏻‍♂️|👯🏼‍♀️|👯🏼‍♂️|👯🏽‍♀️|👯🏽‍♂️|👯🏾‍♀️|👯🏾‍♂️|👯🏿‍♀️|👯🏿‍♂️|👰🏻‍♀️|👰🏻‍♂️|👰🏼‍♀️|👰🏼‍♂️|👰🏽‍♀️|👰🏽‍♂️|👰🏾‍♀️|👰🏾‍♂️|👰🏿‍♀️|👰🏿‍♂️|👱🏻‍♀️|👱🏻‍♂️|👱🏼‍♀️|👱🏼‍♂️|👱🏽‍♀️|👱🏽‍♂️|👱🏾‍♀️|👱🏾‍♂️|👱🏿‍♀️|👱🏿‍♂️|👳🏻‍♀️|👳🏻‍♂️|👳🏼‍♀️|👳🏼‍♂️|👳🏽‍♀️|👳🏽‍♂️|👳🏾‍♀️|👳🏾‍♂️|👳🏿‍♀️|👳🏿‍♂️|👷🏻‍♀️|👷🏻‍♂️|👷🏼‍♀️|👷🏼‍♂️|👷🏽‍♀️|👷🏽‍♂️|👷🏾‍♀️|👷🏾‍♂️|👷🏿‍♀️|👷🏿‍♂️|💁🏻‍♀️|💁🏻‍♂️|💁🏼‍♀️|💁🏼‍♂️|💁🏽‍♀️|💁🏽‍♂️|💁🏾‍♀️|💁🏾‍♂️|💁🏿‍♀️|💁🏿‍♂️|💂🏻‍♀️|💂🏻‍♂️|💂🏼‍♀️|💂🏼‍♂️|💂🏽‍♀️|💂🏽‍♂️|💂🏾‍♀️|💂🏾‍♂️|💂🏿‍♀️|💂🏿‍♂️|💆🏻‍♀️|💆🏻‍♂️|💆🏼‍♀️|💆🏼‍♂️|💆🏽‍♀️|💆🏽‍♂️|💆🏾‍♀️|💆🏾‍♂️|💆🏿‍♀️|💆🏿‍♂️|💇🏻‍♀️|💇🏻‍♂️|💇🏼‍♀️|💇🏼‍♂️|💇🏽‍♀️|💇🏽‍♂️|💇🏾‍♀️|💇🏾‍♂️|💇🏿‍♀️|💇🏿‍♂️|🕵🏻‍♀️|🕵🏻‍♂️|🕵🏼‍♀️|🕵🏼‍♂️|🕵🏽‍♀️|🕵🏽‍♂️|🕵🏾‍♀️|🕵🏾‍♂️|🕵🏿‍♀️|🕵🏿‍♂️|🙅🏻‍♀️|🙅🏻‍♂️|🙅🏼‍♀️|🙅🏼‍♂️|🙅🏽‍♀️|🙅🏽‍♂️|🙅🏾‍♀️|🙅🏾‍♂️|🙅🏿‍♀️|🙅🏿‍♂️|🙆🏻‍♀️|🙆🏻‍♂️|🙆🏼‍♀️|🙆🏼‍♂️|🙆🏽‍♀️|🙆🏽‍♂️|🙆🏾‍♀️|🙆🏾‍♂️|🙆🏿‍♀️|🙆🏿‍♂️|🙇🏻‍♀️|🙇🏻‍♂️|🙇🏼‍♀️|🙇🏼‍♂️|🙇🏽‍♀️|🙇🏽‍♂️|🙇🏾‍♀️|🙇🏾‍♂️|🙇🏿‍♀️|🙇🏿‍♂️|🙋🏻‍♀️|🙋🏻‍♂️|🙋🏼‍♀️|🙋🏼‍♂️|🙋🏽‍♀️|🙋🏽‍♂️|🙋🏾‍♀️|🙋🏾‍♂️|🙋🏿‍♀️|🙋🏿‍♂️|🙍🏻‍♀️|🙍🏻‍♂️|🙍🏼‍♀️|🙍🏼‍♂️|🙍🏽‍♀️|🙍🏽‍♂️|🙍🏾‍♀️|🙍🏾‍♂️|🙍🏿‍♀️|🙍🏿‍♂️|🙎🏻‍♀️|🙎🏻‍♂️|🙎🏼‍♀️|🙎🏼‍♂️|🙎🏽‍♀️|🙎🏽‍♂️|🙎🏾‍♀️|🙎🏾‍♂️|🙎🏿‍♀️|🙎🏿‍♂️|🚣🏻‍♀️|🚣🏻‍♂️|🚣🏼‍♀️|🚣🏼‍♂️|🚣🏽‍♀️|🚣🏽‍♂️|🚣🏾‍♀️|🚣🏾‍♂️|🚣🏿‍♀️|🚣🏿‍♂️|🚴🏻‍♀️|🚴🏻‍♂️|🚴🏼‍♀️|🚴🏼‍♂️|🚴🏽‍♀️|🚴🏽‍♂️|🚴🏾‍♀️|🚴🏾‍♂️|🚴🏿‍♀️|🚴🏿‍♂️|🚵🏻‍♀️|🚵🏻‍♂️|🚵🏼‍♀️|🚵🏼‍♂️|🚵🏽‍♀️|🚵🏽‍♂️|🚵🏾‍♀️|🚵🏾‍♂️|🚵🏿‍♀️|🚵🏿‍♂️|🚶🏻‍♀️|🚶🏻‍♂️|🚶🏻‍➡️|🚶🏼‍♀️|🚶🏼‍♂️|🚶🏼‍➡️|🚶🏽‍♀️|🚶🏽‍♂️|🚶🏽‍➡️|🚶🏾‍♀️|🚶🏾‍♂️|🚶🏾‍➡️|🚶🏿‍♀️|🚶🏿‍♂️|🚶🏿‍➡️|🤦🏻‍♀️|🤦🏻‍♂️|🤦🏼‍♀️|🤦🏼‍♂️|🤦🏽‍♀️|🤦🏽‍♂️|🤦🏾‍♀️|🤦🏾‍♂️|🤦🏿‍♀️|🤦🏿‍♂️|🤵🏻‍♀️|🤵🏻‍♂️|🤵🏼‍♀️|🤵🏼‍♂️|🤵🏽‍♀️|🤵🏽‍♂️|🤵🏾‍♀️|🤵🏾‍♂️|🤵🏿‍♀️|🤵🏿‍♂️|🤷🏻‍♀️|🤷🏻‍♂️|🤷🏼‍♀️|🤷🏼‍♂️|🤷🏽‍♀️|🤷🏽‍♂️|🤷🏾‍♀️|🤷🏾‍♂️|🤷🏿‍♀️|🤷🏿‍♂️|🤸🏻‍♀️|🤸🏻‍♂️|🤸🏼‍♀️|🤸🏼‍♂️|🤸🏽‍♀️|🤸🏽‍♂️|🤸🏾‍♀️|🤸🏾‍♂️|🤸🏿‍♀️|🤸🏿‍♂️|🤹🏻‍♀️|🤹🏻‍♂️|🤹🏼‍♀️|🤹🏼‍♂️|🤹🏽‍♀️|🤹🏽‍♂️|🤹🏾‍♀️|🤹🏾‍♂️|🤹🏿‍♀️|🤹🏿‍♂️|🤼🏻‍♀️|🤼🏻‍♂️|🤼🏼‍♀️|🤼🏼‍♂️|🤼🏽‍♀️|🤼🏽‍♂️|🤼🏾‍♀️|🤼🏾‍♂️|🤼🏿‍♀️|🤼🏿‍♂️|🤽🏻‍♀️|🤽🏻‍♂️|🤽🏼‍♀️|🤽🏼‍♂️|🤽🏽‍♀️|🤽🏽‍♂️|🤽🏾‍♀️|🤽🏾‍♂️|🤽🏿‍♀️|🤽🏿‍♂️|🤾🏻‍♀️|🤾🏻‍♂️|🤾🏼‍♀️|🤾🏼‍♂️|🤾🏽‍♀️|🤾🏽‍♂️|🤾🏾‍♀️|🤾🏾‍♂️|🤾🏿‍♀️|🤾🏿‍♂️|🦸🏻‍♀️|🦸🏻‍♂️|🦸🏼‍♀️|🦸🏼‍♂️|🦸🏽‍♀️|🦸🏽‍♂️|🦸🏾‍♀️|🦸🏾‍♂️|🦸🏿‍♀️|🦸🏿‍♂️|🦹🏻‍♀️|🦹🏻‍♂️|🦹🏼‍♀️|🦹🏼‍♂️|🦹🏽‍♀️|🦹🏽‍♂️|🦹🏾‍♀️|🦹🏾‍♂️|🦹🏿‍♀️|🦹🏿‍♂️|🧍🏻‍♀️|🧍🏻‍♂️|🧍🏼‍♀️|🧍🏼‍♂️|🧍🏽‍♀️|🧍🏽‍♂️|🧍🏾‍♀️|🧍🏾‍♂️|🧍🏿‍♀️|🧍🏿‍♂️|🧎🏻‍♀️|🧎🏻‍♂️|🧎🏻‍➡️|🧎🏼‍♀️|🧎🏼‍♂️|🧎🏼‍➡️|🧎🏽‍♀️|🧎🏽‍♂️|🧎🏽‍➡️|🧎🏾‍♀️|🧎🏾‍♂️|🧎🏾‍➡️|🧎🏿‍♀️|🧎🏿‍♂️|🧎🏿‍➡️|🧏🏻‍♀️|🧏🏻‍♂️|🧏🏼‍♀️|🧏🏼‍♂️|🧏🏽‍♀️|🧏🏽‍♂️|🧏🏾‍♀️|🧏🏾‍♂️|🧏🏿‍♀️|🧏🏿‍♂️|🧑🏻‍⚕️|🧑🏻‍⚖️|🧑🏻‍✈️|🧑🏻‍🌾|🧑🏻‍🍳|🧑🏻‍🍼|🧑🏻‍🎄|🧑🏻‍🎓|🧑🏻‍🎤|🧑🏻‍🎨|🧑🏻‍🏫|🧑🏻‍🏭|🧑🏻‍💻|🧑🏻‍💼|🧑🏻‍🔧|🧑🏻‍🔬|🧑🏻‍🚀|🧑🏻‍🚒|🧑🏻‍🦯|🧑🏻‍🦰|🧑🏻‍🦱|🧑🏻‍🦲|🧑🏻‍🦳|🧑🏻‍🦼|🧑🏻‍🦽|🧑🏻‍🩰|🧑🏼‍⚕️|🧑🏼‍⚖️|🧑🏼‍✈️|🧑🏼‍🌾|🧑🏼‍🍳|🧑🏼‍🍼|🧑🏼‍🎄|🧑🏼‍🎓|🧑🏼‍🎤|🧑🏼‍🎨|🧑🏼‍🏫|🧑🏼‍🏭|🧑🏼‍💻|🧑🏼‍💼|🧑🏼‍🔧|🧑🏼‍🔬|🧑🏼‍🚀|🧑🏼‍🚒|🧑🏼‍🦯|🧑🏼‍🦰|🧑🏼‍🦱|🧑🏼‍🦲|🧑🏼‍🦳|🧑🏼‍🦼|🧑🏼‍🦽|🧑🏼‍🩰|🧑🏽‍⚕️|🧑🏽‍⚖️|🧑🏽‍✈️|🧑🏽‍🌾|🧑🏽‍🍳|🧑🏽‍🍼|🧑🏽‍🎄|🧑🏽‍🎓|🧑🏽‍🎤|🧑🏽‍🎨|🧑🏽‍🏫|🧑🏽‍🏭|🧑🏽‍💻|🧑🏽‍💼|🧑🏽‍🔧|🧑🏽‍🔬|🧑🏽‍🚀|🧑🏽‍🚒|🧑🏽‍🦯|🧑🏽‍🦰|🧑🏽‍🦱|🧑🏽‍🦲|🧑🏽‍🦳|🧑🏽‍🦼|🧑🏽‍🦽|🧑🏽‍🩰|🧑🏾‍⚕️|🧑🏾‍⚖️|🧑🏾‍✈️|🧑🏾‍🌾|🧑🏾‍🍳|🧑🏾‍🍼|🧑🏾‍🎄|🧑🏾‍🎓|🧑🏾‍🎤|🧑🏾‍🎨|🧑🏾‍🏫|🧑🏾‍🏭|🧑🏾‍💻|🧑🏾‍💼|🧑🏾‍🔧|🧑🏾‍🔬|🧑🏾‍🚀|🧑🏾‍🚒|🧑🏾‍🦯|🧑🏾‍🦰|🧑🏾‍🦱|🧑🏾‍🦲|🧑🏾‍🦳|🧑🏾‍🦼|🧑🏾‍🦽|🧑🏾‍🩰|🧑🏿‍⚕️|🧑🏿‍⚖️|🧑🏿‍✈️|🧑🏿‍🌾|🧑🏿‍🍳|🧑🏿‍🍼|🧑🏿‍🎄|🧑🏿‍🎓|🧑🏿‍🎤|🧑🏿‍🎨|🧑🏿‍🏫|🧑🏿‍🏭|🧑🏿‍💻|🧑🏿‍💼|🧑🏿‍🔧|🧑🏿‍🔬|🧑🏿‍🚀|🧑🏿‍🚒|🧑🏿‍🦯|🧑🏿‍🦰|🧑🏿‍🦱|🧑🏿‍🦲|🧑🏿‍🦳|🧑🏿‍🦼|🧑🏿‍🦽|🧑🏿‍🩰|🧔🏻‍♀️|🧔🏻‍♂️|🧔🏼‍♀️|🧔🏼‍♂️|🧔🏽‍♀️|🧔🏽‍♂️|🧔🏾‍♀️|🧔🏾‍♂️|🧔🏿‍♀️|🧔🏿‍♂️|🧖🏻‍♀️|🧖🏻‍♂️|🧖🏼‍♀️|🧖🏼‍♂️|🧖🏽‍♀️|🧖🏽‍♂️|🧖🏾‍♀️|🧖🏾‍♂️|🧖🏿‍♀️|🧖🏿‍♂️|🧗🏻‍♀️|🧗🏻‍♂️|🧗🏼‍♀️|🧗🏼‍♂️|🧗🏽‍♀️|🧗🏽‍♂️|🧗🏾‍♀️|🧗🏾‍♂️|🧗🏿‍♀️|🧗🏿‍♂️|🧘🏻‍♀️|🧘🏻‍♂️|🧘🏼‍♀️|🧘🏼‍♂️|🧘🏽‍♀️|🧘🏽‍♂️|🧘🏾‍♀️|🧘🏾‍♂️|🧘🏿‍♀️|🧘🏿‍♂️|🧙🏻‍♀️|🧙🏻‍♂️|🧙🏼‍♀️|🧙🏼‍♂️|🧙🏽‍♀️|🧙🏽‍♂️|🧙🏾‍♀️|🧙🏾‍♂️|🧙🏿‍♀️|🧙🏿‍♂️|🧚🏻‍♀️|🧚🏻‍♂️|🧚🏼‍♀️|🧚🏼‍♂️|🧚🏽‍♀️|🧚🏽‍♂️|🧚🏾‍♀️|🧚🏾‍♂️|🧚🏿‍♀️|🧚🏿‍♂️|🧛🏻‍♀️|🧛🏻‍♂️|🧛🏼‍♀️|🧛🏼‍♂️|🧛🏽‍♀️|🧛🏽‍♂️|🧛🏾‍♀️|🧛🏾‍♂️|🧛🏿‍♀️|🧛🏿‍♂️|🧜🏻‍♀️|🧜🏻‍♂️|🧜🏼‍♀️|🧜🏼‍♂️|🧜🏽‍♀️|🧜🏽‍♂️|🧜🏾‍♀️|🧜🏾‍♂️|🧜🏿‍♀️|🧜🏿‍♂️|🧝🏻‍♀️|🧝🏻‍♂️|🧝🏼‍♀️|🧝🏼‍♂️|🧝🏽‍♀️|🧝🏽‍♂️|🧝🏾‍♀️|🧝🏾‍♂️|🧝🏿‍♀️|🧝🏿‍♂️|⛹🏻‍♀️|⛹🏻‍♂️|⛹🏼‍♀️|⛹🏼‍♂️|⛹🏽‍♀️|⛹🏽‍♂️|⛹🏾‍♀️|⛹🏾‍♂️|⛹🏿‍♀️|⛹🏿‍♂️|🏋️‍♀️|🏋️‍♂️|🏌️‍♀️|🏌️‍♂️|🏳️‍⚧️|🏳️‍🌈|🕵️‍♀️|🕵️‍♂️|😶‍🌫️|⛓️‍💥|⛹️‍♀️|⛹️‍♂️|❤️‍🔥|❤️‍🩹|🍄‍🟫|🍋‍🟩|🏃‍♀️|🏃‍♂️|🏃‍➡️|🏄‍♀️|🏄‍♂️|🏊‍♀️|🏊‍♂️|🏴‍☠️|🐕‍🦺|🐦‍🔥|🐻‍❄️|👨‍⚕️|👨‍⚖️|👨‍✈️|👨‍🌾|👨‍🍳|👨‍🍼|👨‍🎓|👨‍🎤|👨‍🎨|👨‍🏫|👨‍🏭|👨‍👦|👨‍👧|👨‍💻|👨‍💼|👨‍🔧|👨‍🔬|👨‍🚀|👨‍🚒|👨‍🦯|👨‍🦰|👨‍🦱|👨‍🦲|👨‍🦳|👨‍🦼|👨‍🦽|👩‍⚕️|👩‍⚖️|👩‍✈️|👩‍🌾|👩‍🍳|👩‍🍼|👩‍🎓|👩‍🎤|👩‍🎨|👩‍🏫|👩‍🏭|👩‍👦|👩‍👧|👩‍💻|👩‍💼|👩‍🔧|👩‍🔬|👩‍🚀|👩‍🚒|👩‍🦯|👩‍🦰|👩‍🦱|👩‍🦲|👩‍🦳|👩‍🦼|👩‍🦽|👮‍♀️|👮‍♂️|👯‍♀️|👯‍♂️|👰‍♀️|👰‍♂️|👱‍♀️|👱‍♂️|👳‍♀️|👳‍♂️|👷‍♀️|👷‍♂️|💁‍♀️|💁‍♂️|💂‍♀️|💂‍♂️|💆‍♀️|💆‍♂️|💇‍♀️|💇‍♂️|😮‍💨|😵‍💫|🙂‍↔️|🙂‍↕️|🙅‍♀️|🙅‍♂️|🙆‍♀️|🙆‍♂️|🙇‍♀️|🙇‍♂️|🙋‍♀️|🙋‍♂️|🙍‍♀️|🙍‍♂️|🙎‍♀️|🙎‍♂️|🚣‍♀️|🚣‍♂️|🚴‍♀️|🚴‍♂️|🚵‍♀️|🚵‍♂️|🚶‍♀️|🚶‍♂️|🚶‍➡️|🤦‍♀️|🤦‍♂️|🤵‍♀️|🤵‍♂️|🤷‍♀️|🤷‍♂️|🤸‍♀️|🤸‍♂️|🤹‍♀️|🤹‍♂️|🤼‍♀️|🤼‍♂️|🤽‍♀️|🤽‍♂️|🤾‍♀️|🤾‍♂️|🦸‍♀️|🦸‍♂️|🦹‍♀️|🦹‍♂️|🧍‍♀️|🧍‍♂️|🧎‍♀️|🧎‍♂️|🧎‍➡️|🧏‍♀️|🧏‍♂️|🧑‍⚕️|🧑‍⚖️|🧑‍✈️|🧑‍🌾|🧑‍🍳|🧑‍🍼|🧑‍🎄|🧑‍🎓|🧑‍🎤|🧑‍🎨|🧑‍🏫|🧑‍🏭|🧑‍💻|🧑‍💼|🧑‍🔧|🧑‍🔬|🧑‍🚀|🧑‍🚒|🧑‍🦯|🧑‍🦰|🧑‍🦱|🧑‍🦲|🧑‍🦳|🧑‍🦼|🧑‍🦽|🧑‍🧒|🧑‍🩰|🧔‍♀️|🧔‍♂️|🧖‍♀️|🧖‍♂️|🧗‍♀️|🧗‍♂️|🧘‍♀️|🧘‍♂️|🧙‍♀️|🧙‍♂️|🧚‍♀️|🧚‍♂️|🧛‍♀️|🧛‍♂️|🧜‍♀️|🧜‍♂️|🧝‍♀️|🧝‍♂️|🧞‍♀️|🧞‍♂️|🧟‍♀️|🧟‍♂️|\*️⃣|🇦🇨|🇦🇩|🇦🇪|🇦🇫|🇦🇬|🇦🇮|🇦🇱|🇦🇲|🇦🇴|🇦🇶|🇦🇷|🇦🇸|🇦🇹|🇦🇺|🇦🇼|🇦🇽|🇦🇿|🇧🇦|🇧🇧|🇧🇩|🇧🇪|🇧🇫|🇧🇬|🇧🇭|🇧🇮|🇧🇯|🇧🇱|🇧🇲|🇧🇳|🇧🇴|🇧🇶|🇧🇷|🇧🇸|🇧🇹|🇧🇻|🇧🇼|🇧🇾|🇧🇿|🇨🇦|🇨🇨|🇨🇩|🇨🇫|🇨🇬|🇨🇭|🇨🇮|🇨🇰|🇨🇱|🇨🇲|🇨🇳|🇨🇴|🇨🇵|🇨🇶|🇨🇷|🇨🇺|🇨🇻|🇨🇼|🇨🇽|🇨🇾|🇨🇿|🇩🇪|🇩🇬|🇩🇯|🇩🇰|🇩🇲|🇩🇴|🇩🇿|🇪🇦|🇪🇨|🇪🇪|🇪🇬|🇪🇭|🇪🇷|🇪🇸|🇪🇹|🇪🇺|🇫🇮|🇫🇯|🇫🇰|🇫🇲|🇫🇴|🇫🇷|🇬🇦|🇬🇧|🇬🇩|🇬🇪|🇬🇫|🇬🇬|🇬🇭|🇬🇮|🇬🇱|🇬🇲|🇬🇳|🇬🇵|🇬🇶|🇬🇷|🇬🇸|🇬🇹|🇬🇺|🇬🇼|🇬🇾|🇭🇰|🇭🇲|🇭🇳|🇭🇷|🇭🇹|🇭🇺|🇮🇨|🇮🇩|🇮🇪|🇮🇱|🇮🇲|🇮🇳|🇮🇴|🇮🇶|🇮🇷|🇮🇸|🇮🇹|🇯🇪|🇯🇲|🇯🇴|🇯🇵|🇰🇪|🇰🇬|🇰🇭|🇰🇮|🇰🇲|🇰🇳|🇰🇵|🇰🇷|🇰🇼|🇰🇾|🇰🇿|🇱🇦|🇱🇧|🇱🇨|🇱🇮|🇱🇰|🇱🇷|🇱🇸|🇱🇹|🇱🇺|🇱🇻|🇱🇾|🇲🇦|🇲🇨|🇲🇩|🇲🇪|🇲🇫|🇲🇬|🇲🇭|🇲🇰|🇲🇱|🇲🇲|🇲🇳|🇲🇴|🇲🇵|🇲🇶|🇲🇷|🇲🇸|🇲🇹|🇲🇺|🇲🇻|🇲🇼|🇲🇽|🇲🇾|🇲🇿|🇳🇦|🇳🇨|🇳🇪|🇳🇫|🇳🇬|🇳🇮|🇳🇱|🇳🇴|🇳🇵|🇳🇷|🇳🇺|🇳🇿|🇴🇲|🇵🇦|🇵🇪|🇵🇫|🇵🇬|🇵🇭|🇵🇰|🇵🇱|🇵🇲|🇵🇳|🇵🇷|🇵🇸|🇵🇹|🇵🇼|🇵🇾|🇶🇦|🇷🇪|🇷🇴|🇷🇸|🇷🇺|🇷🇼|🇸🇦|🇸🇧|🇸🇨|🇸🇩|🇸🇪|🇸🇬|🇸🇭|🇸🇮|🇸🇯|🇸🇰|🇸🇱|🇸🇲|🇸🇳|🇸🇴|🇸🇷|🇸🇸|🇸🇹|🇸🇻|🇸🇽|🇸🇾|🇸🇿|🇹🇦|🇹🇨|🇹🇩|🇹🇫|🇹🇬|🇹🇭|🇹🇯|🇹🇰|🇹🇱|🇹🇲|🇹🇳|🇹🇴|🇹🇷|🇹🇹|🇹🇻|🇹🇼|🇹🇿|🇺🇦|🇺🇬|🇺🇲|🇺🇳|🇺🇸|🇺🇾|🇺🇿|🇻🇦|🇻🇨|🇻🇪|🇻🇬|🇻🇮|🇻🇳|🇻🇺|🇼🇫|🇼🇸|🇽🇰|🇾🇪|🇾🇹|🇿🇦|🇿🇲|🇿🇼|🎅🏻|🎅🏼|🎅🏽|🎅🏾|🎅🏿|🏂🏻|🏂🏼|🏂🏽|🏂🏾|🏂🏿|🏃🏻|🏃🏼|🏃🏽|🏃🏾|🏃🏿|🏄🏻|🏄🏼|🏄🏽|🏄🏾|🏄🏿|🏇🏻|🏇🏼|🏇🏽|🏇🏾|🏇🏿|🏊🏻|🏊🏼|🏊🏽|🏊🏾|🏊🏿|🏋🏻|🏋🏼|🏋🏽|🏋🏾|🏋🏿|🏌🏻|🏌🏼|🏌🏽|🏌🏾|🏌🏿|🐈‍⬛|🐦‍⬛|👂🏻|👂🏼|👂🏽|👂🏾|👂🏿|👃🏻|👃🏼|👃🏽|👃🏾|👃🏿|👆🏻|👆🏼|👆🏽|👆🏾|👆🏿|👇🏻|👇🏼|👇🏽|👇🏾|👇🏿|👈🏻|👈🏼|👈🏽|👈🏾|👈🏿|👉🏻|👉🏼|👉🏽|👉🏾|👉🏿|👊🏻|👊🏼|👊🏽|👊🏾|👊🏿|👋🏻|👋🏼|👋🏽|👋🏾|👋🏿|👌🏻|👌🏼|👌🏽|👌🏾|👌🏿|👍🏻|👍🏼|👍🏽|👍🏾|👍🏿|👎🏻|👎🏼|👎🏽|👎🏾|👎🏿|👏🏻|👏🏼|👏🏽|👏🏾|👏🏿|👐🏻|👐🏼|👐🏽|👐🏾|👐🏿|👦🏻|👦🏼|👦🏽|👦🏾|👦🏿|👧🏻|👧🏼|👧🏽|👧🏾|👧🏿|👨🏻|👨🏼|👨🏽|👨🏾|👨🏿|👩🏻|👩🏼|👩🏽|👩🏾|👩🏿|👫🏻|👫🏼|👫🏽|👫🏾|👫🏿|👬🏻|👬🏼|👬🏽|👬🏾|👬🏿|👭🏻|👭🏼|👭🏽|👭🏾|👭🏿|👮🏻|👮🏼|👮🏽|👮🏾|👮🏿|👯🏻|👯🏼|👯🏽|👯🏾|👯🏿|👰🏻|👰🏼|👰🏽|👰🏾|👰🏿|👱🏻|👱🏼|👱🏽|👱🏾|👱🏿|👲🏻|👲🏼|👲🏽|👲🏾|👲🏿|👳🏻|👳🏼|👳🏽|👳🏾|👳🏿|👴🏻|👴🏼|👴🏽|👴🏾|👴🏿|👵🏻|👵🏼|👵🏽|👵🏾|👵🏿|👶🏻|👶🏼|👶🏽|👶🏾|👶🏿|👷🏻|👷🏼|👷🏽|👷🏾|👷🏿|👸🏻|👸🏼|👸🏽|👸🏾|👸🏿|👼🏻|👼🏼|👼🏽|👼🏾|👼🏿|💁🏻|💁🏼|💁🏽|💁🏾|💁🏿|💂🏻|💂🏼|💂🏽|💂🏾|💂🏿|💃🏻|💃🏼|💃🏽|💃🏾|💃🏿|💅🏻|💅🏼|💅🏽|💅🏾|💅🏿|💆🏻|💆🏼|💆🏽|💆🏾|💆🏿|💇🏻|💇🏼|💇🏽|💇🏾|💇🏿|💏🏻|💏🏼|💏🏽|💏🏾|💏🏿|💑🏻|💑🏼|💑🏽|💑🏾|💑🏿|💪🏻|💪🏼|💪🏽|💪🏾|💪🏿|🕴🏻|🕴🏼|🕴🏽|🕴🏾|🕴🏿|🕵🏻|🕵🏼|🕵🏽|🕵🏾|🕵🏿|🕺🏻|🕺🏼|🕺🏽|🕺🏾|🕺🏿|🖐🏻|🖐🏼|🖐🏽|🖐🏾|🖐🏿|🖕🏻|🖕🏼|🖕🏽|🖕🏾|🖕🏿|🖖🏻|🖖🏼|🖖🏽|🖖🏾|🖖🏿|🙅🏻|🙅🏼|🙅🏽|🙅🏾|🙅🏿|🙆🏻|🙆🏼|🙆🏽|🙆🏾|🙆🏿|🙇🏻|🙇🏼|🙇🏽|🙇🏾|🙇🏿|🙋🏻|🙋🏼|🙋🏽|🙋🏾|🙋🏿|🙌🏻|🙌🏼|🙌🏽|🙌🏾|🙌🏿|🙍🏻|🙍🏼|🙍🏽|🙍🏾|🙍🏿|🙎🏻|🙎🏼|🙎🏽|🙎🏾|🙎🏿|🙏🏻|🙏🏼|🙏🏽|🙏🏾|🙏🏿|🚣🏻|🚣🏼|🚣🏽|🚣🏾|🚣🏿|🚴🏻|🚴🏼|🚴🏽|🚴🏾|🚴🏿|🚵🏻|🚵🏼|🚵🏽|🚵🏾|🚵🏿|🚶🏻|🚶🏼|🚶🏽|🚶🏾|🚶🏿|🛀🏻|🛀🏼|🛀🏽|🛀🏾|🛀🏿|🛌🏻|🛌🏼|🛌🏽|🛌🏾|🛌🏿|🤌🏻|🤌🏼|🤌🏽|🤌🏾|🤌🏿|🤏🏻|🤏🏼|🤏🏽|🤏🏾|🤏🏿|🤘🏻|🤘🏼|🤘🏽|🤘🏾|🤘🏿|🤙🏻|🤙🏼|🤙🏽|🤙🏾|🤙🏿|🤚🏻|🤚🏼|🤚🏽|🤚🏾|🤚🏿|🤛🏻|🤛🏼|🤛🏽|🤛🏾|🤛🏿|🤜🏻|🤜🏼|🤜🏽|🤜🏾|🤜🏿|🤝🏻|🤝🏼|🤝🏽|🤝🏾|🤝🏿|🤞🏻|🤞🏼|🤞🏽|🤞🏾|🤞🏿|🤟🏻|🤟🏼|🤟🏽|🤟🏾|🤟🏿|🤦🏻|🤦🏼|🤦🏽|🤦🏾|🤦🏿|🤰🏻|🤰🏼|🤰🏽|🤰🏾|🤰🏿|🤱🏻|🤱🏼|🤱🏽|🤱🏾|🤱🏿|🤲🏻|🤲🏼|🤲🏽|🤲🏾|🤲🏿|🤳🏻|🤳🏼|🤳🏽|🤳🏾|🤳🏿|🤴🏻|🤴🏼|🤴🏽|🤴🏾|🤴🏿|🤵🏻|🤵🏼|🤵🏽|🤵🏾|🤵🏿|🤶🏻|🤶🏼|🤶🏽|🤶🏾|🤶🏿|🤷🏻|🤷🏼|🤷🏽|🤷🏾|🤷🏿|🤸🏻|🤸🏼|🤸🏽|🤸🏾|🤸🏿|🤹🏻|🤹🏼|🤹🏽|🤹🏾|🤹🏿|🤼🏻|🤼🏼|🤼🏽|🤼🏾|🤼🏿|🤽🏻|🤽🏼|🤽🏽|🤽🏾|🤽🏿|🤾🏻|🤾🏼|🤾🏽|🤾🏾|🤾🏿|🥷🏻|🥷🏼|🥷🏽|🥷🏾|🥷🏿|🦵🏻|🦵🏼|🦵🏽|🦵🏾|🦵🏿|🦶🏻|🦶🏼|🦶🏽|🦶🏾|🦶🏿|🦸🏻|🦸🏼|🦸🏽|🦸🏾|🦸🏿|🦹🏻|🦹🏼|🦹🏽|🦹🏾|🦹🏿|🦻🏻|🦻🏼|🦻🏽|🦻🏾|🦻🏿|🧍🏻|🧍🏼|🧍🏽|🧍🏾|🧍🏿|🧎🏻|🧎🏼|🧎🏽|🧎🏾|🧎🏿|🧏🏻|🧏🏼|🧏🏽|🧏🏾|🧏🏿|🧑🏻|🧑🏼|🧑🏽|🧑🏾|🧑🏿|🧒🏻|🧒🏼|🧒🏽|🧒🏾|🧒🏿|🧓🏻|🧓🏼|🧓🏽|🧓🏾|🧓🏿|🧔🏻|🧔🏼|🧔🏽|🧔🏾|🧔🏿|🧕🏻|🧕🏼|🧕🏽|🧕🏾|🧕🏿|🧖🏻|🧖🏼|🧖🏽|🧖🏾|🧖🏿|🧗🏻|🧗🏼|🧗🏽|🧗🏾|🧗🏿|🧘🏻|🧘🏼|🧘🏽|🧘🏾|🧘🏿|🧙🏻|🧙🏼|🧙🏽|🧙🏾|🧙🏿|🧚🏻|🧚🏼|🧚🏽|🧚🏾|🧚🏿|🧛🏻|🧛🏼|🧛🏽|🧛🏾|🧛🏿|🧜🏻|🧜🏼|🧜🏽|🧜🏾|🧜🏿|🧝🏻|🧝🏼|🧝🏽|🧝🏾|🧝🏿|🫃🏻|🫃🏼|🫃🏽|🫃🏾|🫃🏿|🫄🏻|🫄🏼|🫄🏽|🫄🏾|🫄🏿|🫅🏻|🫅🏼|🫅🏽|🫅🏾|🫅🏿|🫰🏻|🫰🏼|🫰🏽|🫰🏾|🫰🏿|🫱🏻|🫱🏼|🫱🏽|🫱🏾|🫱🏿|🫲🏻|🫲🏼|🫲🏽|🫲🏾|🫲🏿|🫳🏻|🫳🏼|🫳🏽|🫳🏾|🫳🏿|🫴🏻|🫴🏼|🫴🏽|🫴🏾|🫴🏿|🫵🏻|🫵🏼|🫵🏽|🫵🏾|🫵🏿|🫶🏻|🫶🏼|🫶🏽|🫶🏾|🫶🏿|🫷🏻|🫷🏼|🫷🏽|🫷🏾|🫷🏿|🫸🏻|🫸🏼|🫸🏽|🫸🏾|🫸🏿|#️⃣|0️⃣|1️⃣|2️⃣|3️⃣|4️⃣|5️⃣|6️⃣|7️⃣|8️⃣|9️⃣|☝🏻|☝🏼|☝🏽|☝🏾|☝🏿|⛹🏻|⛹🏼|⛹🏽|⛹🏾|⛹🏿|✊🏻|✊🏼|✊🏽|✊🏾|✊🏿|✋🏻|✋🏼|✋🏽|✋🏾|✋🏿|✌🏻|✌🏼|✌🏽|✌🏾|✌🏿|✍🏻|✍🏼|✍🏽|✍🏾|✍🏿|🅰️|🅱️|🅾️|🅿️|🈂️|🈷️|🌡️|🌤️|🌥️|🌦️|🌧️|🌨️|🌩️|🌪️|🌫️|🌬️|🌶️|🍽️|🎖️|🎗️|🎙️|🎚️|🎛️|🎞️|🎟️|🏋️|🏌️|🏍️|🏎️|🏔️|🏕️|🏖️|🏗️|🏘️|🏙️|🏚️|🏛️|🏜️|🏝️|🏞️|🏟️|🏳️|🏵️|🏷️|🐿️|👁️|📽️|🕉️|🕊️|🕯️|🕰️|🕳️|🕴️|🕵️|🕶️|🕷️|🕸️|🕹️|🖇️|🖊️|🖋️|🖌️|🖍️|🖐️|🖥️|🖨️|🖱️|🖲️|🖼️|🗂️|🗃️|🗄️|🗑️|🗒️|🗓️|🗜️|🗝️|🗞️|🗡️|🗣️|🗨️|🗯️|🗳️|🗺️|🛋️|🛍️|🛎️|🛏️|🛠️|🛡️|🛢️|🛣️|🛤️|🛥️|🛩️|🛰️|🛳️|©️|®️|‼️|⁉️|™️|ℹ️|↔️|↕️|↖️|↗️|↘️|↙️|↩️|↪️|⌨️|⏏️|⏭️|⏮️|⏯️|⏱️|⏲️|⏸️|⏹️|⏺️|Ⓜ️|▪️|▫️|▶️|◀️|◻️|◼️|☀️|☁️|☂️|☃️|☄️|☎️|☑️|☘️|☝️|☠️|☢️|☣️|☦️|☪️|☮️|☯️|☸️|☹️|☺️|♀️|♂️|♟️|♠️|♣️|♥️|♦️|♨️|♻️|♾️|⚒️|⚔️|⚕️|⚖️|⚗️|⚙️|⚛️|⚜️|⚠️|⚧️|⚰️|⚱️|⛈️|⛏️|⛑️|⛓️|⛩️|⛰️|⛱️|⛴️|⛷️|⛸️|⛹️|✂️|✈️|✉️|✌️|✍️|✏️|✒️|✔️|✖️|✝️|✡️|✳️|✴️|❄️|❇️|❣️|❤️|➡️|⤴️|⤵️|⬅️|⬆️|⬇️|〰️|〽️|㊗️|㊙️|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D8}\u{1F6DC}-\u{1F6DF}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F90C}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F9FF}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA8A}\u{1FA8E}-\u{1FAC6}\u{1FAC8}\u{1FACD}-\u{1FADC}\u{1FADF}-\u{1FAEA}\u{1FAEF}-\u{1FAF8}])/gu).length):o=a().createElement(a().Fragment,null,a().createElement("i",{className:"material-icons gray"},"warning_amber")," ",a().createElement("i",{className:"gray"},a().createElement(n.FormattedMessage,{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]})));return a().createElement("li",{ref:this.props.innerRef,className:e},this.props.isGroup&&this.props.response?a().createElement("div",{className:"avatar-box"},r?a().createElement(p.A,{authorizeURL:this.props.tinode.authorizeURL,topic:this.props.userFrom,title:this.props.userName,avatar:s}):null):null,a().createElement("div",null,a().createElement("div",{className:t},a().createElement("div",{className:"content-meta"},a().createElement("div",{className:i},o,h),this.props.timestamp?a().createElement(m,{edited:this.props.edited,timestamp:this.props.timestamp,received:this.props.received}):null),this.props.showContextMenu?a().createElement("span",{className:"menuTrigger"},a().createElement("a",{href:"#",onClick:this.handleContextClick},a().createElement("i",{className:"material-icons"},"expand_more"))):null),r?a().createElement("div",{className:"author"},this.props.userName||a().createElement("i",null,a().createElement(n.FormattedMessage,{id:"user_not_found",defaultMessage:[{type:0,value:"Not found"}]}))):null))}}const E=(0,n.injectIntl)(y);var b=a().forwardRef((e,t)=>a().createElement(E,v({innerRef:t},e))),M=s(504),S=s(1334),C=s(9027),_=s(6110);class w extends a().Component{constructor(e){super(e)}render(){const e=[],t=(this.props.subscribers||[]).length,s=Math.min(C.DT,t);return(this.props.subscribers||[]).some(t=>(e.push(a().createElement("div",{className:"avatar-box",key:t.user},a().createElement(p.A,{authorizeURL:this.props.tinode.authorizeURL,topic:t.user,avatar:(0,_.to)(t.public?t.public.photo:null)||!0,title:t.public?t.public.fn:null}))),e.length==s)),0==e.length?null:a().createElement("div",{id:"topic-users"},e," ",t>s?a().createElement("span",null,a().createElement(n.FormattedMessage,{id:"more_online_members",defaultMessage:[{type:0,value:"+"},{type:1,value:"overflow"},{type:0,value:" more"}],values:{overflow:t-s}})):null)}}class A extends a().PureComponent{constructor(e){super(e),this.handleButtonAction=this.handleButtonAction.bind(this)}handleButtonAction(e,t){e.preventDefault(),this.props.onAction(t)}render(){return a().createElement("div",{className:"accept-invite-panel"},a().createElement("div",{className:"title"},a().createElement(n.FormattedMessage,{id:"chat_invitation",defaultMessage:[{type:0,value:"You are invited to start a new chat. What would you like to do?"}]})),a().createElement("div",{className:"footer"},a().createElement("button",{className:"primary",onClick:e=>{this.handleButtonAction(e,"accept")}},a().createElement(n.FormattedMessage,{id:"chat_invitation_accept",defaultMessage:[{type:0,value:"Accept"}]})),a().createElement("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"delete")}},a().createElement(n.FormattedMessage,{id:"chat_invitation_ignore",defaultMessage:[{type:0,value:"Ignore"}]})),a().createElement("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"block")}},a().createElement(n.FormattedMessage,{id:"chat_invitation_block",defaultMessage:[{type:0,value:"Block"}]}))))}}var F=s(1013);class D extends a().PureComponent{render(){const e=C.C3+" ("+l.Tinode.getLibrary()+")";return a().createElement("div",{id:"dummy-view"},a().createElement("div",null,a().createElement("a",{href:"https://github.com/tinode/chat/"},a().createElement("img",{id:"logo",alt:"logo",src:"img/logo.svg"}),a().createElement("h2",null,"Tinode Web")),a().createElement("p",null,a().createElement(n.FormattedMessage,{id:"label_client",defaultMessage:[{type:0,value:"Client:"}]})," ",e),a().createElement("p",null,a().createElement(n.FormattedMessage,{id:"label_server",defaultMessage:[{type:0,value:"Server:"}]})," ",this.props.serverVersion," (",this.props.serverAddress,")")))}}class P extends a().PureComponent{constructor(e){super(e)}render(){let e=null,t="bubble";return this.props.date&&(e=a().createElement(a().Fragment,null,this.props.date),t+=" date"),e?a().createElement("li",{className:"meta"},a().createElement("div",{className:t},a().createElement("div",{className:"message-content"},e))):a().createElement(a().Fragment,null,null)}}const T=(0,n.defineMessages)({message_not_found:{id:"message_not_found",defaultMessage:[{type:0,value:"message not found"}]},message_deleted:{id:"message_deleted",defaultMessage:[{type:0,value:"message deleted"}]}});class R extends a().PureComponent{constructor(e){super(e),this.touchX=null,this.touchY=null,this.touchSurface=a().createRef(),this.getSelectedIndex=this.getSelectedIndex.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleSelected=this.handleSelected.bind(this),this.handleMoveNext=this.handleMoveNext.bind(this),this.handleMovePrev=this.handleMovePrev.bind(this),this.handleTouchEventStart=this.handleTouchEventStart.bind(this),this.handleTouchEventEnd=this.handleTouchEventEnd.bind(this),this.handleTouchCancel=this.handleTouchCancel.bind(this)}componentDidMount(){this.touchSurface.current.addEventListener("touchstart",this.handleTouchEventStart,{passive:!0}),this.touchSurface.current.addEventListener("touchend",this.handleTouchEventEnd,{passive:!0}),this.touchSurface.current.addEventListener("touchcancel",this.handleTouchCancel,{passive:!0})}componentWillUnmount(){this.touchSurface.current.removeEventListener("touchstart",this.handleTouchEventStart),this.touchSurface.current.removeEventListener("touchend",this.handleTouchEventEnd),this.touchSurface.current.removeEventListener("touchcancel",this.handleTouchCancel)}getSelectedIndex(){return(this.props.pins||[]).length-this.props.selected-1}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.pins[this.getSelectedIndex()])}handleSelected(e){e.preventDefault(),this.props.onSelected(this.props.pins[this.getSelectedIndex()])}handleMoveNext(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.max(this.props.selected-1,0);s!=this.props.selected&&this.props.setSelected(s)}handleMovePrev(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.min(this.props.selected+1,(this.props.pins||[]).length-1);s!=this.props.selected&&this.props.setSelected(s)}handleTouchEventStart(e){1==e.touches.length&&(this.touchX=e.touches[0].clientX,this.touchY=e.touches[0].clientY)}handleTouchEventEnd(e){if(null===this.touchX||1!=e.changedTouches.length)return void(this.touchX=null);const t=this.touchX-e.changedTouches[0].clientX,s=this.touchY-e.changedTouches[0].clientY;this.touchX=null,Math.abs(t)>Math.abs(s)||Math.abs(s)0?this.handleMovePrev(e,!0):this.handleMoveNext(e,!0))}handleTouchCancel(){this.touchX=null}render(){const e=this.getSelectedIndex();let t=(this.props.messages||[])[e];t=t?t._deleted?a().createElement("i",{className:"gray"},this.props.intl.formatMessage(T.message_deleted)):l.Drafty.format(t.content,g.TU,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):a().createElement("i",{className:"gray"},this.props.intl.formatMessage(T.message_not_found));const s=[];return this.props.pins.forEach(t=>{const i=s.length==e?"adot":"dot";s.push(a().createElement("div",{key:t,className:i}))}),a().createElement("div",{id:"pinned-wrapper",ref:this.touchSurface},this.props.isAdmin?a().createElement("div",{className:"cancel"},a().createElement("a",{href:"#",onClick:this.handleCancel},a().createElement("i",{className:"material-icons gray"},"close"))):a().createElement("div",null,a().createElement("i",{className:"material-icons gray"},"push_pin")),a().createElement("div",{className:"pinned-scroll"},s),a().createElement("div",{className:"pinned",onClick:this.handleSelected},a().createElement("p",null,t)),a().createElement("div",{className:"pinned-menu"},a().createElement("span",{className:"menuTrigger upper"},e>0?a().createElement("a",{href:"#",onClick:this.handleMovePrev},a().createElement("i",{className:"material-icons"},"expand_less")):null),a().createElement("span",{className:"menuTrigger lower"},this.props.selected>0?a().createElement("a",{href:"#",onClick:this.handleMoveNext},a().createElement("i",{className:"material-icons"},"expand_more")):null)))}}var k=(0,n.injectIntl)(R),N=s(1725),I=s(3832);const x=a().lazy(e=>s.e(836).then(s.bind(s,6836))),L=a().lazy(e=>s.e(472).then(s.bind(s,4472))),U=a().lazy(e=>s.e(889).then(s.bind(s,8889))),z=a().lazy(e=>Promise.all([s.e(892),s.e(942)]).then(s.bind(s,8942))),q=a().lazy(e=>s.e(371).then(s.bind(s,6371))),B=(0,n.defineMessages)({online_now:{id:"online_now",defaultMessage:[{type:0,value:"online now"}]},last_seen:{id:"last_seen_timestamp",defaultMessage:[{type:0,value:"Last seen: "},{type:1,value:"timestamp"}]},not_found:{id:"title_not_found",defaultMessage:[{type:0,value:"Not found"}]},channel:{id:"channel",defaultMessage:[{type:0,value:"channel"}]},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:[{type:0,value:"The file size "},{type:1,value:"size"},{type:0,value:" exceeds the "},{type:1,value:"limit"},{type:0,value:" limit."}]},invalid_content:{id:"invalid_content",defaultMessage:[{type:0,value:"invalid content"}]},editing_message:{id:"editing_message",defaultMessage:[{type:0,value:"Editing"}]},drag_file:{id:"drag_file",defaultMessage:[{type:0,value:"Drag file here"}]},self_topic_name:{id:"self_topic_name",defaultMessage:[{type:0,value:"Saved messages"}]},subscriber_count:{id:"subscriber_count",defaultMessage:[{type:6,value:"count",options:{one:{value:[{type:2,value:"count",style:null},{type:0,value:" subscriber"}]},two:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},three:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},few:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},many:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]},other:{value:[{type:2,value:"count",style:null},{type:0,value:" subscribers"}]}},offset:0,pluralType:"cardinal"}]},member_count:{id:"member_count",defaultMessage:[{type:6,value:"count",options:{one:{value:[{type:2,value:"count",style:null},{type:0,value:" member"}]},two:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},three:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},few:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},many:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]},other:{value:[{type:2,value:"count",style:null},{type:0,value:" members"}]}},offset:0,pluralType:"cardinal"}]},cannot_parse_vcard:{id:"cannot_parse_vcard",defaultMessage:[{type:0,value:"Cannot parse vCard file."}]}});function O(e){if(e){const t=e.getExcessive()||"";return e.isJoiner("given")&&(t.includes("R")||t.includes("W"))}return!1}function Q(e){if(e){const t=e.getMissing()||"";return e.isJoiner("want")&&(t.includes("R")||t.includes("W"))}return!1}function V(e){return e==I.No||e==I.d1}class H extends a().Component{constructor(e){super(e),this.state=H.getDerivedStateFromProps(e,{}),this.componentSetup=this.componentSetup.bind(this),this.leave=this.leave.bind(this),this.sendMessage=this.sendMessage.bind(this),this.retrySend=this.retrySend.bind(this),this.sendImageAttachment=this.sendImageAttachment.bind(this),this.sendVideoAttachment=this.sendVideoAttachment.bind(this),this.sendFileAttachment=this.sendFileAttachment.bind(this),this.sendAudioAttachment=this.sendAudioAttachment.bind(this),this.sendTheCardAttachment=this.sendTheCardAttachment.bind(this),this.sendKeyPress=this.sendKeyPress.bind(this),this.subscribe=this.subscribe.bind(this),this.handleScrollReference=this.handleScrollReference.bind(this),this.mountDnDEvents=this.mountDnDEvents.bind(this),this.handleScrollEvent=this.handleScrollEvent.bind(this),this.handleDescChange=this.handleDescChange.bind(this),this.handleSubsUpdated=this.handleSubsUpdated.bind(this),this.handleMessageUpdate=this.handleMessageUpdate.bind(this),this.handleAuxUpdate=this.handleAuxUpdate.bind(this),this.handleAllMessagesReceived=this.handleAllMessagesReceived.bind(this),this.handleInfoReceipt=this.handleInfoReceipt.bind(this),this.handleExpandMedia=this.handleExpandMedia.bind(this),this.handleClosePreview=this.handleClosePreview.bind(this),this.handleCallPanelToggle=this.handleCallPanelToggle.bind(this),this.handleFormResponse=this.handleFormResponse.bind(this),this.handleContextClick=this.handleContextClick.bind(this),this.handleShowMessageContextMenu=this.handleShowMessageContextMenu.bind(this),this.handleNewChatAcceptance=this.handleNewChatAcceptance.bind(this),this.handleEnablePeer=this.handleEnablePeer.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachImageOrVideo=this.handleAttachImageOrVideo.bind(this),this.handleCancelUpload=this.handleCancelUpload.bind(this),this.postReadNotification=this.postReadNotification.bind(this),this.clearNotificationQueue=this.clearNotificationQueue.bind(this),this.goToLatestMessage=this.goToLatestMessage.bind(this),this.handleFileDrop=this.handleFileDrop.bind(this),this.handlePickReply=this.handlePickReply.bind(this),this.handleEditMessage=this.handleEditMessage.bind(this),this.handleCancelReply=this.handleCancelReply.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.handleUnpinMessage=this.handleUnpinMessage.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.isDragEnabled=this.isDragEnabled.bind(this),this.handleDragStart=this.handleDragStart.bind(this),this.handleDragIn=this.handleDragIn.bind(this),this.handleDragOut=this.handleDragOut.bind(this),this.handleDrag=this.handleDrag.bind(this),this.handleDrop=this.handleDrop.bind(this),this.chatMessageRefs=[],this.getOrCreateMessageRef=this.getOrCreateMessageRef.bind(this),this.getVisibleMessageRange=this.getVisibleMessageRange.bind(this),this.dragCounter=0,this.dndRef=null,this.readNotificationQueue=[],this.readNotificationTimer=null,this.keyPressTimer=null}getOrCreateMessageRef(e){if(this.chatMessageRefs[e])return this.chatMessageRefs[e];const t=a().createRef();return this.chatMessageRefs[e]=t,t}getVisibleMessageRange(e){let t=Number.MAX_SAFE_INTEGER,s=-1,i=!1;return this.chatMessageRefs.every((a,n)=>{if(a.current){const{top:l,bottom:r,height:o}=a.current.getBoundingClientRect();if(l<=e.top?e.top-l<=o:r-e.bottom<=o)i=!0,t=Math.min(t,n),s=Math.max(s,n);else if(i)return!1}return!0}),s>=t?{min:t,max:s}:{min:0,max:0}}componentDidMount(){this.messagesScroller&&this.messagesScroller.addEventListener("scroll",this.handleScrollEvent),this.mountDnDEvents(this.dndRef),this.componentSetup({},{})}componentWillUnmount(){this.messagesScroller&&this.messagesScroller.removeEventListener("scroll",this.handleScrollEvent),this.clearNotificationQueue(),this.dndRef&&(this.dndRef.removeEventListener("dragstart",this.handleDragStart),this.dndRef.removeEventListener("dragenter",this.handleDragIn),this.dndRef.removeEventListener("dragleave",this.handleDragOut),this.dndRef.removeEventListener("dragover",this.handleDrag),this.dndRef.removeEventListener("drop",this.handleDrop))}componentDidUpdate(e,t){!this.messagesScroller||t.topic==this.state.topic&&t.maxSeqId==this.state.maxSeqId&&t.minSeqId==this.state.minSeqId||this.state.scrollPosition<100&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight),this.props.applicationVisible?this.postReadNotification(0):this.clearNotificationQueue(),this.componentSetup(e,t)}componentSetup(e,t){const s=this.props.tinode?this.props.tinode.getTopic(this.state.topic):void 0;if(this.state.topic!=t.topic&&(t.topic&&!l.Tinode.isNewGroupTopicName(t.topic)&&(this.leave(t.topic),t.rtcPanel&&this.handleCallHangup(t.topic,e.callSeq)),s&&(s.onData=this.handleMessageUpdate,s.onAllMessagesReceived=this.handleAllMessagesReceived,s.onInfo=this.handleInfoReceipt,s.onMetaDesc=this.handleDescChange,s.onSubsUpdated=this.handleSubsUpdated,s.onPres=this.handleSubsUpdated,s.onAuxUpdated=this.handleAuxUpdate)),s)if(this.state.topic!=t.topic||this.props.myUserId&&!e.myUserId){const e=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;s.isP2PType()&&e&&!C.rl?s.getMeta(s.startMetaQuery().withDesc().build()):this.props.myUserId&&this.subscribe(s)}else s.isSubscribed()&&this.state.isReader&&!t.isReader?s.getMeta(s.startMetaQuery().withLaterData().build()):s.isSubscribed()||!this.props.ready||e.ready||this.subscribe(s)}static getDerivedStateFromProps(e,t){let s={};if(e.topic)if(e.topic!=t.topic){const i=e.tinode.getTopic(e.topic);if(s={topic:e.topic,deleted:i._deleted,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,showGoToLastButton:!1,contentToEdit:null,dragging:!1,selectedPin:0},e.forwardMessage)if(e.forwardMessage.content){const t=e.forwardMessage.content,i=t?.length||t?.size||0;s.docPreview={object:t,type:e.forwardMessage.type,size:i}}else s.reply={content:e.forwardMessage.preview,seq:null};else s.reply=null;if(i){const a=[];e.connected&&i.subscribers(t=>{t.online&&t.user!=e.myUserId&&a.push(t)}),Object.assign(s,{onlineSubs:a}),i.isSelfType()?Object.assign(s,{title:e.intl.formatMessage(B.self_topic_name),avatar:!0}):i.public?Object.assign(s,{title:i.public.fn,avatar:(0,_.to)(i.public.photo)}):Object.assign(s,{title:"",avatar:null});const n=i.p2pPeerDesc();n?Object.assign(s,{peerMessagingDisabled:Q(n.acs)}):t.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),Object.assign(s,{minSeqId:i.minMsgSeq(),maxSeqId:i.maxMsgSeq(),latestClearId:i.maxClearId(),channel:i.isChannelType(),pins:(i.aux("pins")||[]).slice(),pinsLoaded:!1}),e.callTopic==i.name&&V(e.callState)&&(s.rtcPanel=e.callTopic)}else Object.assign(s,{minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],title:"",avatar:null,peerMessagingDisabled:!1,channel:!1,pins:[],pinsLoaded:!1})}else e.callTopic==t.topic&&!t.rtcPanel&&V(e.callState)&&(s.rtcPanel=e.callTopic);else s={minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],topic:null,title:"",avatar:null,isVerified:!1,isStaff:!1,isDangerous:!1,deleted:!1,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,peerMessagingDisabled:!1,channel:!1,reply:null,contentToEdit:null,showGoToLastButton:!1,dragging:!1,pins:[],pinsLoaded:!1,selectedPin:0,subsVersion:0};return e.acs?(e.acs.isWriter()!=t.isWriter&&(s.isWriter=!t.isWriter),e.acs.isReader()!=t.isReader&&(s.isReader=!t.isReader),e.acs.isAdmin()!=t.isAdmin&&(s.isAdmin=!t.isAdmin),!e.acs.isReader("given")!=t.readingBlocked&&(s.readingBlocked=!t.readingBlocked),e.acs.isSharer()!=t.isSharer&&(s.isSharer=!t.isSharer)):(t.isWriter&&(s.isWriter=!1),t.isReader&&(s.isReader=!1),t.isAdmin&&(s.isAdmin=!1),t.readingBlocked||(t.readingBlocked=!0),t.isSharer&&(s.isSharer=!1)),O(e.acs)==!t.unconformed&&(s.unconfirmed=!t.unconformed),!e.connected&&t.onlineSubs&&t.onlineSubs.length>0&&(s.onlineSubs=[]),s}subscribe(e){if(e.isSubscribed()||!this.props.ready)return;const t=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;let s=e.startMetaQuery().withLaterDesc().withLaterSub().withAux();(this.state.isReader||t)&&(s=s.withLaterData(C.H1),this.state.isReader&&(s=s.withLaterDel()),this.setState({fetchingMessages:!0}));const i=t?this.props.newTopicParams:void 0;e.subscribe(s.build(),i).then(t=>{if(303==t.code)return void f.A.navigateTo(f.A.setUrlTopic("",t.params.topic));this.state.topic!=t.topic&&this.setState({topic:t.topic}),this.state.deleted&&this.setState({deleted:!1}),this.props.onNewTopicCreated(this.props.topic,t.topic);let s=[];e.queuedMessages(t=>{t._sending||(t._fatal||t.head&&t.head.webrtc?s.push(t.seq):e.isSubscribed()&&this.retrySend(t))}),s.length>0&&e.delMessagesList(s,!0)}).catch(e=>{console.error("Failed subscription to",this.state.topic,e),this.props.onError(e.message,"err");const t=H.getDerivedStateFromProps({},{});t.title=this.props.intl.formatMessage(B.not_found),this.setState(t)})}leave(e){if(!e||!this.props.tinode.isTopicCached(e))return;const t=this.props.tinode.getTopic(e);t&&t.isSubscribed()&&t.leave(!1).catch(e=>{}).finally(e=>{this.setState({fetchingMessages:!1}),t.onData=void 0,t.onAllMessagesReceived=void 0,t.onInfo=void 0,t.onMetaDesc=void 0,t.onSubsUpdated=void 0,t.onPres=void 0,t.onAuxUpdated=void 0})}handleScrollReference(e){e&&(e.addEventListener("scroll",this.handleScrollEvent),this.messagesScroller=e,this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)}handleScrollEvent(e){const t=e.target.scrollHeight-e.target.scrollTop-e.target.offsetHeight;if(this.setState({scrollPosition:t,showGoToLastButton:t>100&&t0&&this.setState({fetchingMessages:!0},e=>{t.getMessagesPage(C.H1,a,s,i).catch(e=>this.props.onError(e.message,"err")).finally(e=>this.setState({fetchingMessages:!1}))})}}this.processingScrollEvent=!1}}mountDnDEvents(e){e&&(e.addEventListener("dragstart",this.handleDragStart),e.addEventListener("dragenter",this.handleDragIn),e.addEventListener("dragleave",this.handleDragOut),e.addEventListener("dragover",this.handleDrag),e.addEventListener("drop",this.handleDrop),this.dndRef=e)}goToLatestMessage(){this.setState({scrollPosition:0}),this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.messagesScroller.offsetHeight)}handleDescChange(e){l.Tinode.isSelfTopicName(this.props.topic)?this.setState({title:this.props.intl.formatMessage(B.self_topic_name),avatar:!0}):e.public?this.setState({title:e.public.fn,avatar:(0,_.to)(e.public.photo)}):this.setState({title:"",avatar:null}),e.acs&&this.setState({isWriter:e.acs.isWriter(),isReader:e.acs.isReader(),isAdmin:e.acs.isAdmin(),readingBlocked:!e.acs.isReader("given"),unconfirmed:O(e.acs)})}postReadNotification(e){if(!this.props.applicationVisible||!this.state.topic)return;this.readNotificationTimer||(this.readNotificationTimer=setInterval(e=>{if(0==this.readNotificationQueue.length)return clearInterval(this.readNotificationTimer),void(this.readNotificationTimer=null);let t=-1;for(;this.readNotificationQueue.length>0;){const e=this.readNotificationQueue[0];if(e.topicName!=this.state.topic){this.readNotificationQueue.shift();continue}const s=new Date;if(!(e.sendAt<=s))break;this.readNotificationQueue.shift(),(0==e.seq||l.Tinode.isServerAssignedSeq(e.seq))&&(t=Math.max(t,e.seq))}if(t>=0){const e=this.props.tinode.getTopic(this.state.topic);if(e)try{e.noteRead(t)}catch(e){console.error("Failed to send read notification",e)}}},300));const t=new Date;this.readNotificationQueue.push({topicName:this.state.topic,seq:e,sendAt:t.setMilliseconds(t.getMilliseconds()+C.J)})}clearNotificationQueue(){this.readNotificationQueue=[],this.readNotificationTimer&&(clearInterval(this.readNotificationTimer),this.readNotificationTimer=null)}handleSubsUpdated(){if(this.state.topic){const e=[],t=this.props.tinode.getTopic(this.state.topic);t.subscribers(t=>{t.online&&t.user!=this.props.myUserId&&e.push(t)});const s={onlineSubs:e,subsVersion:this.state.subsVersion+1},i=t.p2pPeerDesc();i?Object.assign(s,{peerMessagingDisabled:Q(i.acs)}):this.state.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),this.setState(s)}}handleMessageUpdate(e){if(!this.state.topic)return;const t=this.props.tinode.getTopic(this.state.topic);if(!e)return void this.setState({latestClearId:t.maxClearId()});clearTimeout(this.keyPressTimer),this.setState({maxSeqId:t.maxMsgSeq(),minSeqId:t.minMsgSeq(),typingIndicator:!1},s=>{t.isNewMessage(e.seq)?this.state.scrollPosition>100?this.setState({showGoToLastButton:!0}):this.goToLatestMessage():this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)});t.msgStatus(e,!0)>=l.Tinode.MESSAGE_STATUS_SENT&&e.from!=this.props.myUserId&&this.postReadNotification(e.seq)}handleAllMessagesReceived(e){if(this.setState({fetchingMessages:!1}),!e){const e=this.props.tinode.getTopic(this.state.topic);return void(e&&this.postReadNotification(e.seq))}if(this.state.pinsLoaded)this.setState({pinsLoaded:!1});else{const e=this.props.tinode.getTopic(this.state.topic);this.setState({pinsLoaded:!0},t=>{e.getPinnedMessages()})}}handleAuxUpdate(e){const t=(e.pins||[]).slice();let s=this.state.selectedPin;t.length>this.state.pins.length?s=0:s>=t.length&&(s=Math.max(0,t.length-1)),this.setState({pins:t,selectedPin:s})}handleInfoReceipt(e){switch(e.what){case"kp":clearTimeout(this.keyPressTimer),this.keyPressTimer=setTimeout(e=>this.setState({typingIndicator:!1}),C.NR+1e3),this.state.typingIndicator||this.setState({typingIndicator:!0});break;case"read":case"recv":this.forceUpdate();break;default:console.info("Other change in topic: ",e.what)}}handleExpandMedia(e){e&&(e.video?this.setState({videoPostview:e}):this.setState({imagePostview:e}))}handleClosePreview(){this.state.imagePreview&&this.state.imagePreview.url&&URL.revokeObjectURL(this.state.imagePreview.url),this.state.videoPreview&&this.state.videoPreview.url&&URL.revokeObjectURL(this.state.videoPreview.url),this.setState({imagePostview:null,imagePreview:null,docPreview:null,videoPreview:null,videoPostview:null}),this.props.onCancelForwardMessage()}handleFormResponse(e,t,s){if("pub"==e)this.sendMessage(l.Drafty.attachJSON(l.Drafty.parse(t),s));else if("url"==e){const e=new URL(s.ref),t=e.searchParams;for(let e in s.resp)s.resp.hasOwnProperty(e)&&t.set(e,s.resp[e]);["name","seq"].forEach(e=>{s[e]&&t.set(e,s[e])}),t.set("uid",this.props.myUserId),t.set("topic",this.state.topic),e.search=t,window.open(e,"_blank")}else console.info("Unknown action in form",e)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.state.topic,y:e.pageY,x:e.pageX})}handleShowMessageContextMenu(e,t){"chan"==e.userFrom&&(e.userFrom=this.state.topic,e.userName=this.state.title),e.topicName=this.state.topic;const s=t||[],i=this.props.tinode.getTopic(e.topicName);if(i)if(i.isSelfType())s.push("message_delete_generic");else{i.isChannelType()||s.push("message_delete");const t=i.getAccessMode();if(t&&t.isDeleter()){let i=t.isOwner();if(!i){const t=0|this.props.tinode.getServerParam(l.Tinode.MSG_DELETE_AGE,0);i=0==t||!!(t>0&&e.timestamp)&&e.timestamp.getTime()>(new Date).getTime()-1e3*t}i&&s.push("message_delete_hard")}}this.props.showContextMenu(e,s)}handleNewChatAcceptance(e){this.props.onNewChat(this.state.topic,e)}handleEnablePeer(e){e.preventDefault(),this.props.onChangePermissions(this.state.topic,C.cZ,this.state.topic)}sendKeyPress(e){const t=this.props.tinode.getTopic(this.state.topic);t.isSubscribed()&&(e?t.noteRecording(!0):t.noteKeyPress())}sendMessage(e,t,s){let i;if(!e&&this.props.forwardMessage)e=this.props.forwardMessage.msg,i=this.props.forwardMessage.head,this.handleCancelReply();else if(this.state.reply){if(this.state.reply.editing){if(e==this.state.contentToEdit)return void this.handleCancelReply();i={replace:":"+this.state.reply.seq}}else this.state.reply.content&&(i={reply:""+this.state.reply.seq},"string"==typeof e&&(e=l.Drafty.parse(e)),e=l.Drafty.append(l.Drafty.sanitizeEntities(this.state.reply.content),e));this.handleCancelReply()}this.props.sendMessage(e,t,s,i)}retrySend(e){this.props.sendMessage(e.content,void 0,void 0,e.head).then(t=>{this.props.tinode.getTopic(this.state.topic).delMessagesList([e.seq],!0)})}sendFileAttachment(e){const t=.75*this.props.tinode.getServerParam("maxMessageSize",C.mp)-1024|0;if((l.TheCard.isFileSupported(e.type,e.name)||e.type==l.TheCard.contentType)&&this.sendTheCardAttachment(e,t))return;const s=e=>e===C.Uv?"application/octet-stream":e;if(e.size>t){const t=this.props.tinode.getLargeFileHelper();if(!t)return void this.props.onError(this.props.intl.formatMessage(B.cannot_initiate_upload));const i=t.upload(e),a=l.Drafty.attachFile(null,{mime:s(e.type),filename:e.name,size:e.size,urlPromise:i});this.sendMessage(a,i,t)}else(0,_.bB)(e).then(t=>this.sendMessage(l.Drafty.attachFile(null,{mime:s(t.mime),data:t.bits,filename:t.name,size:e.size}))).catch(e=>this.props.onError(e.message,"err"))}sendTheCardAttachment(e,t){return!(e.size>t)&&(e.type==l.TheCard.contentType?(this.sendMessage(l.Drafty.appendTheCard(null,e.object)),!0):((0,_.QJ)(e).then(e=>{this.sendMessage(l.Drafty.appendTheCard(null,e))}).catch(e=>{this.props.onError(this.props.intl.formatMessage(B.cannot_parse_vcard,{error:e.message}),"err")}),!0))}handleAttachFile(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",C.qy);e.size>t?this.props.onError(this.props.intl.formatMessage(B.file_attachment_too_large,{size:(0,o.lX)(e.size),limit:(0,o.lX)(t)}),"err"):this.setState({docPreview:{file:e,name:e.name,size:e.size,type:e.type}})}handleCallHangup(e,t){this.props.onVideoCallClosed(),this.setState({rtcPanel:null}),this.props.onCallHangup(e,t)}handleCallPanelToggle(){this.setState({minimizedCallPanel:!this.state.minimizedCallPanel})}sendImageAttachment(e,t){const s=this.state.imagePreview.mime,i=this.state.imagePreview.width,a=this.state.imagePreview.height,n=this.state.imagePreview.filename,r=.75*this.props.tinode.getServerParam("maxMessageSize",C.mp)-1024|0;if(t.size>r){const r=this.props.tinode.getLargeFileHelper();if(!r)return void this.props.onError(this.props.intl.formatMessage(B.cannot_initiate_upload));const o=r.upload(t);return void(0,_.ag)(t,C.wj,C.wj,-1,!1).then(e=>(0,_.Sk)(e.blob)).then(h=>{let d=l.Drafty.insertImage(null,0,{mime:s,_tempPreview:h.bits,bits:h.bits,width:i,height:a,filename:n,size:t.size,urlPromise:o});e&&(d=l.Drafty.appendLineBreak(d),d=l.Drafty.append(d,l.Drafty.parse(e))),this.sendMessage(d,o,r)}).catch(e=>this.props.onError(e,"err"))}(0,_.Sk)(t).then(s=>{let r=l.Drafty.insertImage(null,0,{mime:s.mime,bits:s.bits,width:i,height:a,filename:n,size:t.size});e&&(r=l.Drafty.appendLineBreak(r),r=l.Drafty.append(r,l.Drafty.parse(e))),this.sendMessage(r)})}sendVideoAttachment(e,t,s,i){const a=i.width,n=i.height,r=.75*this.props.tinode.getServerParam("maxMessageSize",C.mp)-1024|0,o=[];let h;if(t.size+s.size>r){if(h=this.props.tinode.getLargeFileHelper(),!h)return void this.props.onError(this.props.intl.formatMessage(B.cannot_initiate_upload));o[0]=t.size>.675*r?h.upload(t):null,o[1]=s.size>.275*r?h.upload(s):null}if(0==o.length)return void Promise.all([(0,_.Sk)(t),(0,_.Sk)(s)]).then(s=>{const[r,o]=s;let h=l.Drafty.insertVideo(null,0,{mime:r.mime,bits:r.bits,preview:o.bits,premime:o.mime,width:a,height:n,duration:i.duration,filename:i.name,size:t.size});e&&(h=l.Drafty.appendLineBreak(h),h=l.Drafty.append(h,l.Drafty.parse(e))),this.sendMessage(h)});const d=Promise.all(o),p=[];p[0]=o[0]?null:(0,_.Sk)(t),p[1]=o[1]?null:(0,_.ag)(s,C.QG,C.QG,-1,!1).then(e=>(0,_.Sk)(e.blob)),p[2]=(0,_.ag)(s,C.Cx,C.Cx,-1,!1).then(e=>(0,_.Sk)(e.blob)),Promise.all(p).then(s=>{const[r,o,p]=s;let c=l.Drafty.insertVideo(null,0,{mime:i.mime,bits:r?r.bits:null,_tempPreview:p.bits,preview:o?o.bits:p.bits,premime:o?o.mime:p.mime,width:a,height:n,duration:i.duration,filename:i.name,size:t.size,urlPromise:d});e&&(c=l.Drafty.appendLineBreak(c),c=l.Drafty.append(c,l.Drafty.parse(e))),this.sendMessage(c,d,h)}).catch(e=>this.props.onError(e.message,"err"))}handleAttachImageOrVideo(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",C.qy);e.type.startsWith("video/")?this.setState({videoPreview:{url:URL.createObjectURL(e),blob:e,filename:e.name,size:e.size,mime:e.type}}):(0,_.ag)(e,C.QG,C.QG,t,!1).then(e=>{this.setState({imagePreview:{url:URL.createObjectURL(e.blob),blob:e.blob,filename:e.name,width:e.width,height:e.height,size:e.blob.size,mime:e.mime}})}).catch(e=>{this.props.onError(e.message,"err")})}handleFileDrop(e){if(!e||0==e.length)return;const t=e[0];t.type&&t.type.startsWith("image/")?this.handleAttachImageOrVideo(t):this.handleAttachFile(t)}sendAudioAttachment(e,t,s){fetch(e).then(e=>e.blob()).then(e=>{const i=.75*this.props.tinode.getServerParam("maxMessageSize",C.mp)-1024;if(e.size>i){const i=this.props.tinode.getLargeFileHelper();if(!i)return void this.props.onError(this.props.intl.formatMessage(B.cannot_initiate_upload));const a=i.upload(e),n=l.Drafty.appendAudio(null,{mime:e.type,size:e.size,duration:s,preview:t,urlPromise:a});this.sendMessage(n,a,i)}else(0,_.Sk)(e).then(i=>{this.sendMessage(l.Drafty.appendAudio(null,{mime:i.mime,bits:i.bits,size:e.size,duration:s,preview:t}))})}).catch(e=>{this.props.onError(e.message,"err")})}handleCancelUpload(e,t){const s=this.props.tinode.getTopic(this.state.topic).findMessage(e);s&&(s._cancelled=!0),t.cancel()}handlePickReply(e,t,s,i){e&&t?(t="string"==typeof t?l.Drafty.init(t):t,t=l.Drafty.isValid(t)?l.Drafty.replyContent(t,C.Rz):l.Drafty.append(l.Drafty.init("⚠ "),l.Drafty.wrapInto(this.props.intl.formatMessage(B.invalid_content),"EM")),this.setState({reply:{content:l.Drafty.quote(i,s,t),seq:e}}),this.props.onCancelForwardMessage()):this.setState({reply:null})}handleEditMessage(e,t){if(!e||!t)return void this.setState({reply:null});t="string"==typeof t?l.Drafty.init(t):t;const s=l.Drafty.toMarkdown(t);t=l.Drafty.isValid(t)?l.Drafty.replyContent(t,C.hB):l.Drafty.append(l.Drafty.init("⚠ "),l.Drafty.wrapInto(this.props.intl.formatMessage(B.invalid_content),"EM")),this.setState({reply:{content:l.Drafty.quote(this.props.intl.formatMessage(B.editing_message),null,t),seq:e,editing:!0},contentToEdit:s}),this.props.onCancelForwardMessage()}handleCancelReply(){this.setState({reply:null,contentToEdit:null}),this.props.onCancelForwardMessage()}handleQuoteClick(e){const t=this.getOrCreateMessageRef(e);t&&t.current?(t.current.scrollIntoView({block:"center",behavior:"smooth"}),t.current.classList.add("flash"),setTimeout(e=>{t.current.classList.remove("flash")},1e3)):console.error("Unresolved message ref",e)}handleUnpinMessage(e){this.props.tinode.getTopic(this.state.topic).pinMessage(e,!1)}isDragEnabled(){return this.state.isWriter&&!this.state.unconfirmed&&!this.props.forwardMessage&&!this.state.peerMessagingDisabled}handleDragStart(e){e.preventDefault(),e.stopPropagation(),e.dataTransfer.clearData()}handleDragIn(e){e.preventDefault(),e.stopPropagation(),this.dragCounter++,e.dataTransfer.items&&e.dataTransfer.items.length>0&&this.setState({dragging:!0})}handleDragOut(e){e.preventDefault(),e.stopPropagation(),this.dragCounter--,this.dragCounter<=0&&this.setState({dragging:!1})}handleDrag(e){e.preventDefault(),e.stopPropagation()}handleDrop(e){e.preventDefault(),e.stopPropagation(),this.setState({dragging:!1}),this.isDragEnabled()&&e.dataTransfer.files&&e.dataTransfer.files.length>0&&(this.handleFileDrop(e.dataTransfer.files),this.dragCounter=0)}render(){const{formatMessage:e}=this.props.intl,t=this.state.rtcPanel&&a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(x,{topic:this.state.topic,seq:this.props.callSeq,callState:this.props.callState,callAudioOnly:this.props.callAudioOnly,tinode:this.props.tinode,title:this.state.title,avatar:this.state.avatar||!0,minimized:this.state.minimizedCallPanel,onError:this.props.onError,onHangup:this.handleCallHangup,onToggleMinimize:this.handleCallPanelToggle,onInvite:this.props.onCallInvite,onSendOffer:this.props.onCallSendOffer,onIceCandidate:this.props.onCallIceCandidate,onSendAnswer:this.props.onCallSendAnswer}));let s;if(this.state.topic){let r;if(this.state.imagePreview)r=a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(U,{content:this.state.imagePreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendImageAttachment}));else if(this.state.videoPreview)r=a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(q,{content:this.state.videoPreview,tinode:this.props.tinode,reply:this.state.reply,onError:this.props.onError,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendVideoAttachment}));else if(this.state.imagePostview)r=a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(U,{content:this.state.imagePostview,onClose:this.handleClosePreview}));else if(this.state.videoPostview)r=a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(q,{content:this.state.videoPostview,tinode:this.props.tinode,onError:this.props.onError,onClose:this.handleClosePreview}));else if(this.state.docPreview)r=l.TheCard.isFileSupported(this.state.docPreview.type,this.state.docPreview.name)||this.state.docPreview.type==l.TheCard.contentType?a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(z,{content:this.state.docPreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendFileAttachment})):a().createElement(i.Suspense,{fallback:a().createElement("div",null,a().createElement(n.FormattedMessage,{id:"loading_note",defaultMessage:[{type:0,value:"Loading..."}]}))},a().createElement(L,{content:this.state.docPreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendFileAttachment}));else{const t=this.props.tinode.getTopic(this.state.topic),s=t.isChannelType()||t.chan,i=t.isGroupType()&&!s,h=[];t.trusted&&(t.trusted.verified&&h.push({icon:"verified",color:"badge-inv"}),t.trusted.staff&&h.push({icon:"staff",color:"badge-inv"}),t.trusted.danger&&h.push({icon:"dangerous",color:"badge-inv"}));const d=[];this.state.pins.forEach(e=>d.push(t.latestMsgVersion(e)||t.findMessage(e)));const c=[];let u=null,m=null,g=null;t.messages((e,s,n,l)=>{let r=n?n.from||"chan":null,h="single",d=e.from||"chan";d==u?h=d==r?"middle":"last":d==r&&(h="first"),u=d;const p=!(d==this.props.myUserId),f=t.msgStatus(e,!0);let v,y,E=d;const M=t.userDesc(d);M&&M.public&&(v=M.public.fn,y=(0,_.to)(M.public.photo)),g=i?"chat-box group":"chat-box";const S=this.getOrCreateMessageRef(e.seq);let C=e.head?parseInt(e.head.reply):null;if(C&&!isNaN(C)||(C=null),e.hi)c.push(a().createElement(P,{deleted:!0,key:e.seq}));else{const t=new Date(e.ts);m&&m.toDateString()==t.toDateString()||(c.push(a().createElement(P,{date:(0,o.mf)(e.ts),locale:this.props.intl.locale,key:"date-"+e.seq})),m=t),c.push(a().createElement(b,{tinode:this.props.tinode,topic:this.state.topic,content:e.content,mimeType:e.head&&e.head.mime,replyToSeq:C,edited:e.head&&!e.head.webrtc&&e.head.replace,timestamp:e.ts,response:p,seq:e.seq,isGroup:i,isChan:this.state.channel,userFrom:E,userName:v,userAvatar:y,sequence:h,received:f,uploader:e._uploader,userIsWriter:this.state.isWriter,userIsAdmin:this.state.isAdmin,pinned:this.state.pins.includes(e.seq),viewportWidth:this.props.viewportWidth,showContextMenu:this.handleShowMessageContextMenu,onExpandMedia:this.handleExpandMedia,onFormResponse:this.handleFormResponse,onCancelUpload:this.handleCancelUpload,pickReply:this.handlePickReply,editMessage:this.handleEditMessage,onQuoteClick:this.handleQuoteClick,onAcceptCall:this.props.onAcceptCall,onError:this.props.onError,ref:S,key:e.seq}))}});let f=null;if(s)t.subcnt&&(f=e(B.subscriber_count,{count:t.subcnt}));else{const s=this.props.tinode.getMeTopic().getContact(this.state.topic);s&&(l.Tinode.isP2PTopicName(s.topic)?s.online?f=e(B.online_now):s.seen&&(f=e(B.last_seen,{timestamp:(0,o.cq)(s.seen.when,this.props.intl.locale)})):l.Tinode.isGroupTopicName(s.topic)&&t.subcnt&&(f=e(B.member_count,{count:t.subcnt})))}const v=this.state.avatar||!0,y=this.state.deleted||t.isSelfType()?null:this.props.online?"online"+(this.state.typingIndicator?" typing":""):"offline",E="panel-title"+(this.state.deleted?" deleted":""),C="dark"==this.props.colorSchema?"dark":"";let D=a().createElement(a().Fragment,null,a().createElement("div",{id:"messages-container",className:C},a().createElement("button",{id:"go-to-latest",className:"action-button"+(this.state.showGoToLastButton?"":" hidden"),onClick:this.goToLatestMessage},a().createElement("i",{className:"material-icons"},"arrow_downward")),a().createElement("div",{id:"messages-panel",ref:this.handleScrollReference},a().createElement("ul",{id:"scroller",className:g},c)),this.state.isReader?null:a().createElement("div",{id:"write-only-background"},this.state.readingBlocked?a().createElement("div",{id:"write-only-note"},a().createElement(n.FormattedMessage,{id:"messages_not_readable",defaultMessage:[{type:0,value:"no access to messages"}]})):null)),this.state.peerMessagingDisabled&&!this.state.unconfirmed?a().createElement("div",{id:"peer-messaging-disabled-note"},a().createElement("i",{className:"material-icons secondary"},"block")," ",a().createElement(n.FormattedMessage,{id:"peers_messaging_disabled",defaultMessage:[{type:0,value:"Peer's messaging is disabled."}]})," ",a().createElement("a",{href:"#",onClick:this.handleEnablePeer},a().createElement(n.FormattedMessage,{id:"enable_peers_messaging",defaultMessage:[{type:0,value:"Enable"}]})),"."):null,this.state.unconfirmed?a().createElement(A,{onAction:this.handleNewChatAcceptance}):a().createElement(N.A,{tinode:this.props.tinode,topicName:this.state.topic,noInput:!!this.props.forwardMessage,disabled:!this.state.isWriter||this.state.deleted,reply:this.state.reply,initMessage:this.state.contentToEdit,sendOnEnter:this.props.sendOnEnter,onKeyPress:this.sendKeyPress,onRecordingProgress:this.sendKeyPress,onSendMessage:this.sendMessage,onAttachFile:this.props.forwardMessage?null:this.handleAttachFile,onAttachImage:this.props.forwardMessage?null:this.handleAttachImageOrVideo,onAttachAudio:this.props.forwardMessage?null:this.sendAudioAttachment,onError:this.props.onError,onQuoteClick:this.handleQuoteClick,onCancelReply:this.handleCancelReply}));r=a().createElement(a().Fragment,null,a().createElement("div",{id:"topic-caption-panel",className:"caption-panel"},this.props.displayMobile?a().createElement("a",{href:"#",id:"hide-message-view",onClick:e=>{e.preventDefault(),this.leave(this.state.topic),this.props.onHideMessagesView()}},a().createElement("i",{className:"material-icons"},"arrow_back")):null,a().createElement("div",{className:"avatar-box"},a().createElement(p.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:v,topic:this.state.topic,title:this.state.title,deleted:this.state.deleted}),s?null:a().createElement("span",{className:y})),a().createElement("div",{id:"topic-title-group"},a().createElement("div",{id:"topic-title",className:E},this.state.title||a().createElement("i",null,a().createElement(n.FormattedMessage,{id:"unnamed_topic",defaultMessage:[{type:0,value:"Unnamed"}]})),a().createElement(M.A,{badges:h})),a().createElement("div",{id:"topic-last-seen"},f)),a().createElement("div",{style:{marginLeft:"auto"}}),!this.props.displayMobile&&this.state.pins.length>0?a().createElement(k,{tinode:this.props.tinode,pins:this.state.pins,messages:d,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage}):null,i?a().createElement(w,{tinode:this.props.tinode,subscribers:this.state.onlineSubs}):null,a().createElement("div",null,a().createElement("a",{href:"#",onClick:this.handleContextClick},a().createElement("i",{className:"material-icons"},"more_vert")))),this.props.displayMobile?a().createElement(a().Fragment,null,this.state.pins.length>0?a().createElement(k,{tinode:this.props.tinode,pins:this.state.pins,messages:d,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage}):null,a().createElement(S.A,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError})):null,a().createElement(F.A,{show:this.state.fetchingMessages}),D,this.state.dragging&&this.isDragEnabled()?a().createElement("div",{className:"drag-n-drop"},e(B.drag_file)):null)}s=a().createElement("div",{id:"topic-view",ref:this.mountDnDEvents},r,t)}else s=a().createElement(D,{serverVersion:this.props.serverVersion,serverAddress:this.props.serverAddress});return s}}var j=(0,n.injectIntl)(H)}}]); +"use strict";(self.webpackChunktinode_webapp=self.webpackChunktinode_webapp||[]).push([[429],{6429:function(e,t,s){s.r(t),s.d(t,{default:function(){return Q}});var i=s(1594),a=s.n(i),n=s(8181),o=s(4532),r=s(9895),d=s(8589),l=s(3540),h=s(5446);class c extends a().Component{constructor(e){super(e),this.state={downloader:null,progress:0},this.downloadFile=this.downloadFile.bind(this),this.handleCancel=this.handleCancel.bind(this)}downloadFile(e,t,s){if(!e)return void this.props.onError("Invalid download URL '"+e+"'");const i=this.props.tinode.getLargeFileHelper();this.setState({downloader:i}),i.download(e,t,s,e=>this.setState({progress:e/this.props.size}),e=>this.props.onError(e,"err")).then(e=>this.setState({downloader:null,progress:0})).catch(e=>{e&&this.props.onError("Error downloading file: "+e.message,"err"),this.setState({downloader:null,progress:0})})}handleCancel(){this.props.uploading?this.props.onCancelUpload():this.state.downloader&&this.state.downloader.cancel()}render(){let e=this.props.filename||"file_attachment";e.length>36&&(e=e.substr(0,16)+"..."+e.substr(-16));let t,s,i=this.props.size>0?(0,h.jsxDEV)("span",{className:"small gray",children:["(",(0,d.lX)(this.props.size),")"]},void 0,!0):null;this.props.uploading||this.state.downloader||!(0,l.YO)(this.props.downloadUrl)?(t=(0,l.Jf)(this.props.downloadUrl),s=null):(t="#",s=e=>{e.preventDefault(),this.downloadFile(this.props.downloadUrl,this.props.filename,this.props.mimetype)});const a=(0,h.jsxDEV)(h.Fragment,{children:[(0,h.jsxDEV)("i",{className:"material-icons",children:"file_download"},void 0,!1)," ",(0,h.jsxDEV)(n.FormattedMessage,{id:"save_attachment",defaultMessage:"save",description:"Call to save an attachment"},void 0,!1)]},void 0,!0);return(0,h.jsxDEV)("div",{className:"attachment",children:[(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)("i",{className:"material-icons big gray",children:"insert_drive_file"},void 0,!1)},void 0,!1),(0,h.jsxDEV)("div",{className:"flex-column",children:[(0,h.jsxDEV)("div",{children:[e," ",i]},void 0,!0),this.props.uploading||this.state.downloader?(0,h.jsxDEV)(r.A,{progress:this.props.uploading?this.props.progress:this.state.progress,onCancel:this.handleCancel},void 0,!1):(0,h.jsxDEV)("div",{children:t?(0,h.jsxDEV)("a",{href:t,download:this.props.filename,onClick:s,children:a},void 0,!1):(0,h.jsxDEV)("span",{className:"light-gray",children:a},void 0,!1)},void 0,!1)]},void 0,!0)]},void 0,!0)}}var p=s(6904);const u=(0,n.defineMessages)({message_sending:{id:"message_sending",defaultMessage:"sending...",description:"Message being sent, in place of time stamp"},message_sending_failed:{id:"message_sending_failed",defaultMessage:"failed",description:"Failed to send message, in place of time stamp"},message_edited_marker:{id:"message_edited_marker",defaultMessage:", edited",description:"Marker indicating that the message was edited"}});class g extends a().PureComponent{render(){const{formatMessage:e}=this.props.intl;let t;t=this.props.received<=o.Tinode.MESSAGE_STATUS_SENDING?e(u.message_sending):this.props.received==o.Tinode.MESSAGE_STATUS_FAILED||this.props.received==o.Tinode.MESSAGE_STATUS_FATAL?e(u.message_sending_failed):this.props.timestamp.toLocaleTimeString(this.props.intl.locale,{timeStyle:"short"});const s=(0,l.LO)(this.props.received),i=s?(0,h.jsxDEV)("i",{className:"material-icons small "+s.color,children:s.name},void 0,!1):null,a=this.props.edited?e(u.message_edited_marker):null;return(0,h.jsxDEV)("span",{className:"timestamp",children:[t,a," ",i]},void 0,!0)}}var m=(0,n.injectIntl)(g),v=s(5791),f=s(7151);class b extends a().PureComponent{constructor(e){super(e),this.state={progress:0},e.uploader&&(e.uploader.onProgress=this.handleProgress.bind(this)),this.handleExpandImage=this.handleExpandImage.bind(this),this.handlePlayVideo=this.handlePlayVideo.bind(this),this.handleFormButtonClick=this.handleFormButtonClick.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.handleContextClick=this.handleContextClick.bind(this),this.handleCancelUpload=this.handleCancelUpload.bind(this),this.handleDraftyClick=this.handleDraftyClick.bind(this),this.formatterContext={formatMessage:e.intl.formatMessage.bind(e.intl),viewportWidth:e.viewportWidth,authorizeURL:e.tinode.authorizeURL.bind(e.tinode),onHandleClick:this.handleDraftyClick}}handleDraftyClick=(e,t)=>{switch(t){case"image":this.handleExpandImage(e);break;case"video":this.handlePlayVideo(e);break;case"form_button":this.handleFormButtonClick(e);break;case"quote":this.handleQuoteClick(e);break;case"contact_chat":e.preventDefault();try{const t=new URL(e.target.dataset.val)?.pathname,s=t.split("/").filter(Boolean);f.A.navigateTo(f.A.setUrlTopic("",s.pop()||""))}catch(e){console.error("Invalid URL:",e)}break;case"contact_find":e.preventDefault();let s=f.A.setUrlSidePanel(window.location.hash,"newtpk");s=f.A.addUrlParam(s,"q",e.target.dataset.val),s=f.A.addUrlParam(s,"tab","find"),f.A.navigateTo(s);break;default:console.info("Unhandled drafty action.",t,e.target.dataset)}};handleExpandImage(e){e.preventDefault(),this.props.onExpandMedia({url:e.target.src,filename:e.target.dataset.name,width:e.target.dataset.width,height:e.target.dataset.height,size:e.target.dataset.size,type:e.target.dataset.mime})}handlePlayVideo(e){e.preventDefault(),this.props.onExpandMedia({video:!0,url:e.target.dataset.src,preview:e.target.src,filename:e.target.dataset.name,width:e.target.dataset.width,height:e.target.dataset.height,duration:e.target.dataset.duration,size:e.target.dataset.size,type:e.target.dataset.mime})}handleFormButtonClick(e){e.preventDefault();const t={seq:this.props.seq,resp:{}};e.target.dataset.name&&(t.resp[e.target.dataset.name]=e.target.dataset.val?e.target.dataset.val:void 0===e.target.dataset.val?1:""+e.target.dataset.val),"url"==e.target.dataset.act&&(t.ref=(0,l.Jf)(e.target.dataset.ref)||"about:blank");const s=e.target.dataset.title||"unknown";this.props.onFormResponse(e.target.dataset.act,s,t)}handleContextClick(e){e.preventDefault(),e.stopPropagation();const t=[];if(this.props.received==o.Tinode.MESSAGE_STATUS_FAILED&&t.push("menu_item_send_retry"),this.props.received>o.Tinode.MESSAGE_STATUS_FATAL){if(this.props.userIsWriter&&(t.push("menu_item_reply"),!this.props.response)){let e=!1;o.Drafty.entities(this.props.content,(t,s,i)=>(e=["AU","EX","FM","IM","TC","VC","VD"].includes(i),e)),e||o.Drafty.styles(this.props.content,t=>(e=["QQ"].includes(t),e)),e||t.push("menu_item_edit")}this.props.userIsAdmin&&t.push(this.props.pinned?"menu_item_unpin":"menu_item_pin")}t.push("menu_item_forward"),this.props.showContextMenu({seq:this.props.seq,replace:this.props.edited?parseInt(this.props.edited.split(":")[1]):0,content:this.props.content,userFrom:this.props.userFrom,userName:this.props.userName,y:e.pageY,x:e.pageX,pickReply:this.props.pickReply,editMessage:this.props.editMessage,timestamp:this.props.timestamp},t)}handleProgress(e){this.setState({progress:e})}handleCancelUpload(){this.props.onCancelUpload(this.props.seq,this.props.uploader)}handleQuoteClick(e){e.preventDefault(),e.stopPropagation();const t=this.props.replyToSeq;t&&this.props.onQuoteClick(t)}render(){const e=this.props.sequence+" "+(this.props.response?"left":"right"),t="single"==this.props.sequence||"last"==this.props.sequence?"bubble tip":"bubble",s=this.props.userAvatar||!0;let i="message-content";const r=this.props.isGroup&&this.props.response&&("single"==this.props.sequence||"last"==this.props.sequence);let d=this.props.content;const l=[];if(this.props.mimeType==o.Drafty.getContentType()&&o.Drafty.isValid(d)){o.Drafty.attachments(d,(e,t)=>{o.Drafty.isFormResponseType(e.mime)||l.push((0,h.jsxDEV)(c,{tinode:this.props.tinode,downloadUrl:o.Drafty.getDownloadUrl(e),filename:e.name,uploading:o.Drafty.isProcessing(e),mimetype:e.mime,size:o.Drafty.getEntitySize(e),progress:this.state.progress,onCancelUpload:this.handleCancelUpload,onError:this.props.onError},t,!1))},this);const e=o.Drafty.format(d,v.e3,this.formatterContext);d=a().createElement(a().Fragment,null,e)}else"string"==typeof d?new RegExp("^\\p{RGI_Emoji}{1,5}$","v").test(d||"")&&(i+=" emoji-"+(d||"").match(/(?:👨🏻‍❤️‍💋‍👨🏻|👨🏻‍❤️‍💋‍👨🏼|👨🏻‍❤️‍💋‍👨🏽|👨🏻‍❤️‍💋‍👨🏾|👨🏻‍❤️‍💋‍👨🏿|👨🏼‍❤️‍💋‍👨🏻|👨🏼‍❤️‍💋‍👨🏼|👨🏼‍❤️‍💋‍👨🏽|👨🏼‍❤️‍💋‍👨🏾|👨🏼‍❤️‍💋‍👨🏿|👨🏽‍❤️‍💋‍👨🏻|👨🏽‍❤️‍💋‍👨🏼|👨🏽‍❤️‍💋‍👨🏽|👨🏽‍❤️‍💋‍👨🏾|👨🏽‍❤️‍💋‍👨🏿|👨🏾‍❤️‍💋‍👨🏻|👨🏾‍❤️‍💋‍👨🏼|👨🏾‍❤️‍💋‍👨🏽|👨🏾‍❤️‍💋‍👨🏾|👨🏾‍❤️‍💋‍👨🏿|👨🏿‍❤️‍💋‍👨🏻|👨🏿‍❤️‍💋‍👨🏼|👨🏿‍❤️‍💋‍👨🏽|👨🏿‍❤️‍💋‍👨🏾|👨🏿‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👨🏻|👩🏻‍❤️‍💋‍👨🏼|👩🏻‍❤️‍💋‍👨🏽|👩🏻‍❤️‍💋‍👨🏾|👩🏻‍❤️‍💋‍👨🏿|👩🏻‍❤️‍💋‍👩🏻|👩🏻‍❤️‍💋‍👩🏼|👩🏻‍❤️‍💋‍👩🏽|👩🏻‍❤️‍💋‍👩🏾|👩🏻‍❤️‍💋‍👩🏿|👩🏼‍❤️‍💋‍👨🏻|👩🏼‍❤️‍💋‍👨🏼|👩🏼‍❤️‍💋‍👨🏽|👩🏼‍❤️‍💋‍👨🏾|👩🏼‍❤️‍💋‍👨🏿|👩🏼‍❤️‍💋‍👩🏻|👩🏼‍❤️‍💋‍👩🏼|👩🏼‍❤️‍💋‍👩🏽|👩🏼‍❤️‍💋‍👩🏾|👩🏼‍❤️‍💋‍👩🏿|👩🏽‍❤️‍💋‍👨🏻|👩🏽‍❤️‍💋‍👨🏼|👩🏽‍❤️‍💋‍👨🏽|👩🏽‍❤️‍💋‍👨🏾|👩🏽‍❤️‍💋‍👨🏿|👩🏽‍❤️‍💋‍👩🏻|👩🏽‍❤️‍💋‍👩🏼|👩🏽‍❤️‍💋‍👩🏽|👩🏽‍❤️‍💋‍👩🏾|👩🏽‍❤️‍💋‍👩🏿|👩🏾‍❤️‍💋‍👨🏻|👩🏾‍❤️‍💋‍👨🏼|👩🏾‍❤️‍💋‍👨🏽|👩🏾‍❤️‍💋‍👨🏾|👩🏾‍❤️‍💋‍👨🏿|👩🏾‍❤️‍💋‍👩🏻|👩🏾‍❤️‍💋‍👩🏼|👩🏾‍❤️‍💋‍👩🏽|👩🏾‍❤️‍💋‍👩🏾|👩🏾‍❤️‍💋‍👩🏿|👩🏿‍❤️‍💋‍👨🏻|👩🏿‍❤️‍💋‍👨🏼|👩🏿‍❤️‍💋‍👨🏽|👩🏿‍❤️‍💋‍👨🏾|👩🏿‍❤️‍💋‍👨🏿|👩🏿‍❤️‍💋‍👩🏻|👩🏿‍❤️‍💋‍👩🏼|👩🏿‍❤️‍💋‍👩🏽|👩🏿‍❤️‍💋‍👩🏾|👩🏿‍❤️‍💋‍👩🏿|🧑🏻‍❤️‍💋‍🧑🏼|🧑🏻‍❤️‍💋‍🧑🏽|🧑🏻‍❤️‍💋‍🧑🏾|🧑🏻‍❤️‍💋‍🧑🏿|🧑🏼‍❤️‍💋‍🧑🏻|🧑🏼‍❤️‍💋‍🧑🏽|🧑🏼‍❤️‍💋‍🧑🏾|🧑🏼‍❤️‍💋‍🧑🏿|🧑🏽‍❤️‍💋‍🧑🏻|🧑🏽‍❤️‍💋‍🧑🏼|🧑🏽‍❤️‍💋‍🧑🏾|🧑🏽‍❤️‍💋‍🧑🏿|🧑🏾‍❤️‍💋‍🧑🏻|🧑🏾‍❤️‍💋‍🧑🏼|🧑🏾‍❤️‍💋‍🧑🏽|🧑🏾‍❤️‍💋‍🧑🏿|🧑🏿‍❤️‍💋‍🧑🏻|🧑🏿‍❤️‍💋‍🧑🏼|🧑🏿‍❤️‍💋‍🧑🏽|🧑🏿‍❤️‍💋‍🧑🏾|🏴󠁧󠁢󠁥󠁮󠁧󠁿|🏴󠁧󠁢󠁳󠁣󠁴󠁿|🏴󠁧󠁢󠁷󠁬󠁳󠁿|👨🏻‍❤️‍👨🏻|👨🏻‍❤️‍👨🏼|👨🏻‍❤️‍👨🏽|👨🏻‍❤️‍👨🏾|👨🏻‍❤️‍👨🏿|👨🏻‍🐰‍👨🏼|👨🏻‍🐰‍👨🏽|👨🏻‍🐰‍👨🏾|👨🏻‍🐰‍👨🏿|👨🏻‍🤝‍👨🏼|👨🏻‍🤝‍👨🏽|👨🏻‍🤝‍👨🏾|👨🏻‍🤝‍👨🏿|👨🏻‍🫯‍👨🏼|👨🏻‍🫯‍👨🏽|👨🏻‍🫯‍👨🏾|👨🏻‍🫯‍👨🏿|👨🏼‍❤️‍👨🏻|👨🏼‍❤️‍👨🏼|👨🏼‍❤️‍👨🏽|👨🏼‍❤️‍👨🏾|👨🏼‍❤️‍👨🏿|👨🏼‍🐰‍👨🏻|👨🏼‍🐰‍👨🏽|👨🏼‍🐰‍👨🏾|👨🏼‍🐰‍👨🏿|👨🏼‍🤝‍👨🏻|👨🏼‍🤝‍👨🏽|👨🏼‍🤝‍👨🏾|👨🏼‍🤝‍👨🏿|👨🏼‍🫯‍👨🏻|👨🏼‍🫯‍👨🏽|👨🏼‍🫯‍👨🏾|👨🏼‍🫯‍👨🏿|👨🏽‍❤️‍👨🏻|👨🏽‍❤️‍👨🏼|👨🏽‍❤️‍👨🏽|👨🏽‍❤️‍👨🏾|👨🏽‍❤️‍👨🏿|👨🏽‍🐰‍👨🏻|👨🏽‍🐰‍👨🏼|👨🏽‍🐰‍👨🏾|👨🏽‍🐰‍👨🏿|👨🏽‍🤝‍👨🏻|👨🏽‍🤝‍👨🏼|👨🏽‍🤝‍👨🏾|👨🏽‍🤝‍👨🏿|👨🏽‍🫯‍👨🏻|👨🏽‍🫯‍👨🏼|👨🏽‍🫯‍👨🏾|👨🏽‍🫯‍👨🏿|👨🏾‍❤️‍👨🏻|👨🏾‍❤️‍👨🏼|👨🏾‍❤️‍👨🏽|👨🏾‍❤️‍👨🏾|👨🏾‍❤️‍👨🏿|👨🏾‍🐰‍👨🏻|👨🏾‍🐰‍👨🏼|👨🏾‍🐰‍👨🏽|👨🏾‍🐰‍👨🏿|👨🏾‍🤝‍👨🏻|👨🏾‍🤝‍👨🏼|👨🏾‍🤝‍👨🏽|👨🏾‍🤝‍👨🏿|👨🏾‍🫯‍👨🏻|👨🏾‍🫯‍👨🏼|👨🏾‍🫯‍👨🏽|👨🏾‍🫯‍👨🏿|👨🏿‍❤️‍👨🏻|👨🏿‍❤️‍👨🏼|👨🏿‍❤️‍👨🏽|👨🏿‍❤️‍👨🏾|👨🏿‍❤️‍👨🏿|👨🏿‍🐰‍👨🏻|👨🏿‍🐰‍👨🏼|👨🏿‍🐰‍👨🏽|👨🏿‍🐰‍👨🏾|👨🏿‍🤝‍👨🏻|👨🏿‍🤝‍👨🏼|👨🏿‍🤝‍👨🏽|👨🏿‍🤝‍👨🏾|👨🏿‍🫯‍👨🏻|👨🏿‍🫯‍👨🏼|👨🏿‍🫯‍👨🏽|👨🏿‍🫯‍👨🏾|👩🏻‍❤️‍👨🏻|👩🏻‍❤️‍👨🏼|👩🏻‍❤️‍👨🏽|👩🏻‍❤️‍👨🏾|👩🏻‍❤️‍👨🏿|👩🏻‍❤️‍👩🏻|👩🏻‍❤️‍👩🏼|👩🏻‍❤️‍👩🏽|👩🏻‍❤️‍👩🏾|👩🏻‍❤️‍👩🏿|👩🏻‍🐰‍👩🏼|👩🏻‍🐰‍👩🏽|👩🏻‍🐰‍👩🏾|👩🏻‍🐰‍👩🏿|👩🏻‍🤝‍👨🏼|👩🏻‍🤝‍👨🏽|👩🏻‍🤝‍👨🏾|👩🏻‍🤝‍👨🏿|👩🏻‍🤝‍👩🏼|👩🏻‍🤝‍👩🏽|👩🏻‍🤝‍👩🏾|👩🏻‍🤝‍👩🏿|👩🏻‍🫯‍👩🏼|👩🏻‍🫯‍👩🏽|👩🏻‍🫯‍👩🏾|👩🏻‍🫯‍👩🏿|👩🏼‍❤️‍👨🏻|👩🏼‍❤️‍👨🏼|👩🏼‍❤️‍👨🏽|👩🏼‍❤️‍👨🏾|👩🏼‍❤️‍👨🏿|👩🏼‍❤️‍👩🏻|👩🏼‍❤️‍👩🏼|👩🏼‍❤️‍👩🏽|👩🏼‍❤️‍👩🏾|👩🏼‍❤️‍👩🏿|👩🏼‍🐰‍👩🏻|👩🏼‍🐰‍👩🏽|👩🏼‍🐰‍👩🏾|👩🏼‍🐰‍👩🏿|👩🏼‍🤝‍👨🏻|👩🏼‍🤝‍👨🏽|👩🏼‍🤝‍👨🏾|👩🏼‍🤝‍👨🏿|👩🏼‍🤝‍👩🏻|👩🏼‍🤝‍👩🏽|👩🏼‍🤝‍👩🏾|👩🏼‍🤝‍👩🏿|👩🏼‍🫯‍👩🏻|👩🏼‍🫯‍👩🏽|👩🏼‍🫯‍👩🏾|👩🏼‍🫯‍👩🏿|👩🏽‍❤️‍👨🏻|👩🏽‍❤️‍👨🏼|👩🏽‍❤️‍👨🏽|👩🏽‍❤️‍👨🏾|👩🏽‍❤️‍👨🏿|👩🏽‍❤️‍👩🏻|👩🏽‍❤️‍👩🏼|👩🏽‍❤️‍👩🏽|👩🏽‍❤️‍👩🏾|👩🏽‍❤️‍👩🏿|👩🏽‍🐰‍👩🏻|👩🏽‍🐰‍👩🏼|👩🏽‍🐰‍👩🏾|👩🏽‍🐰‍👩🏿|👩🏽‍🤝‍👨🏻|👩🏽‍🤝‍👨🏼|👩🏽‍🤝‍👨🏾|👩🏽‍🤝‍👨🏿|👩🏽‍🤝‍👩🏻|👩🏽‍🤝‍👩🏼|👩🏽‍🤝‍👩🏾|👩🏽‍🤝‍👩🏿|👩🏽‍🫯‍👩🏻|👩🏽‍🫯‍👩🏼|👩🏽‍🫯‍👩🏾|👩🏽‍🫯‍👩🏿|👩🏾‍❤️‍👨🏻|👩🏾‍❤️‍👨🏼|👩🏾‍❤️‍👨🏽|👩🏾‍❤️‍👨🏾|👩🏾‍❤️‍👨🏿|👩🏾‍❤️‍👩🏻|👩🏾‍❤️‍👩🏼|👩🏾‍❤️‍👩🏽|👩🏾‍❤️‍👩🏾|👩🏾‍❤️‍👩🏿|👩🏾‍🐰‍👩🏻|👩🏾‍🐰‍👩🏼|👩🏾‍🐰‍👩🏽|👩🏾‍🐰‍👩🏿|👩🏾‍🤝‍👨🏻|👩🏾‍🤝‍👨🏼|👩🏾‍🤝‍👨🏽|👩🏾‍🤝‍👨🏿|👩🏾‍🤝‍👩🏻|👩🏾‍🤝‍👩🏼|👩🏾‍🤝‍👩🏽|👩🏾‍🤝‍👩🏿|👩🏾‍🫯‍👩🏻|👩🏾‍🫯‍👩🏼|👩🏾‍🫯‍👩🏽|👩🏾‍🫯‍👩🏿|👩🏿‍❤️‍👨🏻|👩🏿‍❤️‍👨🏼|👩🏿‍❤️‍👨🏽|👩🏿‍❤️‍👨🏾|👩🏿‍❤️‍👨🏿|👩🏿‍❤️‍👩🏻|👩🏿‍❤️‍👩🏼|👩🏿‍❤️‍👩🏽|👩🏿‍❤️‍👩🏾|👩🏿‍❤️‍👩🏿|👩🏿‍🐰‍👩🏻|👩🏿‍🐰‍👩🏼|👩🏿‍🐰‍👩🏽|👩🏿‍🐰‍👩🏾|👩🏿‍🤝‍👨🏻|👩🏿‍🤝‍👨🏼|👩🏿‍🤝‍👨🏽|👩🏿‍🤝‍👨🏾|👩🏿‍🤝‍👩🏻|👩🏿‍🤝‍👩🏼|👩🏿‍🤝‍👩🏽|👩🏿‍🤝‍👩🏾|👩🏿‍🫯‍👩🏻|👩🏿‍🫯‍👩🏼|👩🏿‍🫯‍👩🏽|👩🏿‍🫯‍👩🏾|🧑🏻‍❤️‍🧑🏼|🧑🏻‍❤️‍🧑🏽|🧑🏻‍❤️‍🧑🏾|🧑🏻‍❤️‍🧑🏿|🧑🏻‍🐰‍🧑🏼|🧑🏻‍🐰‍🧑🏽|🧑🏻‍🐰‍🧑🏾|🧑🏻‍🐰‍🧑🏿|🧑🏻‍🤝‍🧑🏻|🧑🏻‍🤝‍🧑🏼|🧑🏻‍🤝‍🧑🏽|🧑🏻‍🤝‍🧑🏾|🧑🏻‍🤝‍🧑🏿|🧑🏻‍🫯‍🧑🏼|🧑🏻‍🫯‍🧑🏽|🧑🏻‍🫯‍🧑🏾|🧑🏻‍🫯‍🧑🏿|🧑🏼‍❤️‍🧑🏻|🧑🏼‍❤️‍🧑🏽|🧑🏼‍❤️‍🧑🏾|🧑🏼‍❤️‍🧑🏿|🧑🏼‍🐰‍🧑🏻|🧑🏼‍🐰‍🧑🏽|🧑🏼‍🐰‍🧑🏾|🧑🏼‍🐰‍🧑🏿|🧑🏼‍🤝‍🧑🏻|🧑🏼‍🤝‍🧑🏼|🧑🏼‍🤝‍🧑🏽|🧑🏼‍🤝‍🧑🏾|🧑🏼‍🤝‍🧑🏿|🧑🏼‍🫯‍🧑🏻|🧑🏼‍🫯‍🧑🏽|🧑🏼‍🫯‍🧑🏾|🧑🏼‍🫯‍🧑🏿|🧑🏽‍❤️‍🧑🏻|🧑🏽‍❤️‍🧑🏼|🧑🏽‍❤️‍🧑🏾|🧑🏽‍❤️‍🧑🏿|🧑🏽‍🐰‍🧑🏻|🧑🏽‍🐰‍🧑🏼|🧑🏽‍🐰‍🧑🏾|🧑🏽‍🐰‍🧑🏿|🧑🏽‍🤝‍🧑🏻|🧑🏽‍🤝‍🧑🏼|🧑🏽‍🤝‍🧑🏽|🧑🏽‍🤝‍🧑🏾|🧑🏽‍🤝‍🧑🏿|🧑🏽‍🫯‍🧑🏻|🧑🏽‍🫯‍🧑🏼|🧑🏽‍🫯‍🧑🏾|🧑🏽‍🫯‍🧑🏿|🧑🏾‍❤️‍🧑🏻|🧑🏾‍❤️‍🧑🏼|🧑🏾‍❤️‍🧑🏽|🧑🏾‍❤️‍🧑🏿|🧑🏾‍🐰‍🧑🏻|🧑🏾‍🐰‍🧑🏼|🧑🏾‍🐰‍🧑🏽|🧑🏾‍🐰‍🧑🏿|🧑🏾‍🤝‍🧑🏻|🧑🏾‍🤝‍🧑🏼|🧑🏾‍🤝‍🧑🏽|🧑🏾‍🤝‍🧑🏾|🧑🏾‍🤝‍🧑🏿|🧑🏾‍🫯‍🧑🏻|🧑🏾‍🫯‍🧑🏼|🧑🏾‍🫯‍🧑🏽|🧑🏾‍🫯‍🧑🏿|🧑🏿‍❤️‍🧑🏻|🧑🏿‍❤️‍🧑🏼|🧑🏿‍❤️‍🧑🏽|🧑🏿‍❤️‍🧑🏾|🧑🏿‍🐰‍🧑🏻|🧑🏿‍🐰‍🧑🏼|🧑🏿‍🐰‍🧑🏽|🧑🏿‍🐰‍🧑🏾|🧑🏿‍🤝‍🧑🏻|🧑🏿‍🤝‍🧑🏼|🧑🏿‍🤝‍🧑🏽|🧑🏿‍🤝‍🧑🏾|🧑🏿‍🤝‍🧑🏿|🧑🏿‍🫯‍🧑🏻|🧑🏿‍🫯‍🧑🏼|🧑🏿‍🫯‍🧑🏽|🧑🏿‍🫯‍🧑🏾|👨‍❤️‍💋‍👨|👨‍👨‍👦‍👦|👨‍👨‍👧‍👦|👨‍👨‍👧‍👧|👨‍👩‍👦‍👦|👨‍👩‍👧‍👦|👨‍👩‍👧‍👧|👩‍❤️‍💋‍👨|👩‍❤️‍💋‍👩|👩‍👩‍👦‍👦|👩‍👩‍👧‍👦|👩‍👩‍👧‍👧|🧑‍🧑‍🧒‍🧒|🏃🏻‍♀️‍➡️|🏃🏻‍♂️‍➡️|🏃🏼‍♀️‍➡️|🏃🏼‍♂️‍➡️|🏃🏽‍♀️‍➡️|🏃🏽‍♂️‍➡️|🏃🏾‍♀️‍➡️|🏃🏾‍♂️‍➡️|🏃🏿‍♀️‍➡️|🏃🏿‍♂️‍➡️|👨🏻‍🦯‍➡️|👨🏻‍🦼‍➡️|👨🏻‍🦽‍➡️|👨🏼‍🦯‍➡️|👨🏼‍🦼‍➡️|👨🏼‍🦽‍➡️|👨🏽‍🦯‍➡️|👨🏽‍🦼‍➡️|👨🏽‍🦽‍➡️|👨🏾‍🦯‍➡️|👨🏾‍🦼‍➡️|👨🏾‍🦽‍➡️|👨🏿‍🦯‍➡️|👨🏿‍🦼‍➡️|👨🏿‍🦽‍➡️|👩🏻‍🦯‍➡️|👩🏻‍🦼‍➡️|👩🏻‍🦽‍➡️|👩🏼‍🦯‍➡️|👩🏼‍🦼‍➡️|👩🏼‍🦽‍➡️|👩🏽‍🦯‍➡️|👩🏽‍🦼‍➡️|👩🏽‍🦽‍➡️|👩🏾‍🦯‍➡️|👩🏾‍🦼‍➡️|👩🏾‍🦽‍➡️|👩🏿‍🦯‍➡️|👩🏿‍🦼‍➡️|👩🏿‍🦽‍➡️|🚶🏻‍♀️‍➡️|🚶🏻‍♂️‍➡️|🚶🏼‍♀️‍➡️|🚶🏼‍♂️‍➡️|🚶🏽‍♀️‍➡️|🚶🏽‍♂️‍➡️|🚶🏾‍♀️‍➡️|🚶🏾‍♂️‍➡️|🚶🏿‍♀️‍➡️|🚶🏿‍♂️‍➡️|🧎🏻‍♀️‍➡️|🧎🏻‍♂️‍➡️|🧎🏼‍♀️‍➡️|🧎🏼‍♂️‍➡️|🧎🏽‍♀️‍➡️|🧎🏽‍♂️‍➡️|🧎🏾‍♀️‍➡️|🧎🏾‍♂️‍➡️|🧎🏿‍♀️‍➡️|🧎🏿‍♂️‍➡️|🧑🏻‍🦯‍➡️|🧑🏻‍🦼‍➡️|🧑🏻‍🦽‍➡️|🧑🏼‍🦯‍➡️|🧑🏼‍🦼‍➡️|🧑🏼‍🦽‍➡️|🧑🏽‍🦯‍➡️|🧑🏽‍🦼‍➡️|🧑🏽‍🦽‍➡️|🧑🏾‍🦯‍➡️|🧑🏾‍🦼‍➡️|🧑🏾‍🦽‍➡️|🧑🏿‍🦯‍➡️|🧑🏿‍🦼‍➡️|🧑🏿‍🦽‍➡️|🫱🏻‍🫲🏼|🫱🏻‍🫲🏽|🫱🏻‍🫲🏾|🫱🏻‍🫲🏿|🫱🏼‍🫲🏻|🫱🏼‍🫲🏽|🫱🏼‍🫲🏾|🫱🏼‍🫲🏿|🫱🏽‍🫲🏻|🫱🏽‍🫲🏼|🫱🏽‍🫲🏾|🫱🏽‍🫲🏿|🫱🏾‍🫲🏻|🫱🏾‍🫲🏼|🫱🏾‍🫲🏽|🫱🏾‍🫲🏿|🫱🏿‍🫲🏻|🫱🏿‍🫲🏼|🫱🏿‍🫲🏽|🫱🏿‍🫲🏾|🏃‍♀️‍➡️|🏃‍♂️‍➡️|👨‍❤️‍👨|👨‍👦‍👦|👨‍👧‍👦|👨‍👧‍👧|👨‍👨‍👦|👨‍👨‍👧|👨‍👩‍👦|👨‍👩‍👧|👨‍🦯‍➡️|👨‍🦼‍➡️|👨‍🦽‍➡️|👩‍❤️‍👨|👩‍❤️‍👩|👩‍👦‍👦|👩‍👧‍👦|👩‍👧‍👧|👩‍👩‍👦|👩‍👩‍👧|👩‍🦯‍➡️|👩‍🦼‍➡️|👩‍🦽‍➡️|🚶‍♀️‍➡️|🚶‍♂️‍➡️|🧎‍♀️‍➡️|🧎‍♂️‍➡️|🧑‍🤝‍🧑|🧑‍🦯‍➡️|🧑‍🦼‍➡️|🧑‍🦽‍➡️|🧑‍🧑‍🧒|🧑‍🧒‍🧒|🏃🏻‍♀️|🏃🏻‍♂️|🏃🏻‍➡️|🏃🏼‍♀️|🏃🏼‍♂️|🏃🏼‍➡️|🏃🏽‍♀️|🏃🏽‍♂️|🏃🏽‍➡️|🏃🏾‍♀️|🏃🏾‍♂️|🏃🏾‍➡️|🏃🏿‍♀️|🏃🏿‍♂️|🏃🏿‍➡️|🏄🏻‍♀️|🏄🏻‍♂️|🏄🏼‍♀️|🏄🏼‍♂️|🏄🏽‍♀️|🏄🏽‍♂️|🏄🏾‍♀️|🏄🏾‍♂️|🏄🏿‍♀️|🏄🏿‍♂️|🏊🏻‍♀️|🏊🏻‍♂️|🏊🏼‍♀️|🏊🏼‍♂️|🏊🏽‍♀️|🏊🏽‍♂️|🏊🏾‍♀️|🏊🏾‍♂️|🏊🏿‍♀️|🏊🏿‍♂️|🏋🏻‍♀️|🏋🏻‍♂️|🏋🏼‍♀️|🏋🏼‍♂️|🏋🏽‍♀️|🏋🏽‍♂️|🏋🏾‍♀️|🏋🏾‍♂️|🏋🏿‍♀️|🏋🏿‍♂️|🏌🏻‍♀️|🏌🏻‍♂️|🏌🏼‍♀️|🏌🏼‍♂️|🏌🏽‍♀️|🏌🏽‍♂️|🏌🏾‍♀️|🏌🏾‍♂️|🏌🏿‍♀️|🏌🏿‍♂️|👁️‍🗨️|👨🏻‍⚕️|👨🏻‍⚖️|👨🏻‍✈️|👨🏻‍🌾|👨🏻‍🍳|👨🏻‍🍼|👨🏻‍🎓|👨🏻‍🎤|👨🏻‍🎨|👨🏻‍🏫|👨🏻‍🏭|👨🏻‍💻|👨🏻‍💼|👨🏻‍🔧|👨🏻‍🔬|👨🏻‍🚀|👨🏻‍🚒|👨🏻‍🦯|👨🏻‍🦰|👨🏻‍🦱|👨🏻‍🦲|👨🏻‍🦳|👨🏻‍🦼|👨🏻‍🦽|👨🏼‍⚕️|👨🏼‍⚖️|👨🏼‍✈️|👨🏼‍🌾|👨🏼‍🍳|👨🏼‍🍼|👨🏼‍🎓|👨🏼‍🎤|👨🏼‍🎨|👨🏼‍🏫|👨🏼‍🏭|👨🏼‍💻|👨🏼‍💼|👨🏼‍🔧|👨🏼‍🔬|👨🏼‍🚀|👨🏼‍🚒|👨🏼‍🦯|👨🏼‍🦰|👨🏼‍🦱|👨🏼‍🦲|👨🏼‍🦳|👨🏼‍🦼|👨🏼‍🦽|👨🏽‍⚕️|👨🏽‍⚖️|👨🏽‍✈️|👨🏽‍🌾|👨🏽‍🍳|👨🏽‍🍼|👨🏽‍🎓|👨🏽‍🎤|👨🏽‍🎨|👨🏽‍🏫|👨🏽‍🏭|👨🏽‍💻|👨🏽‍💼|👨🏽‍🔧|👨🏽‍🔬|👨🏽‍🚀|👨🏽‍🚒|👨🏽‍🦯|👨🏽‍🦰|👨🏽‍🦱|👨🏽‍🦲|👨🏽‍🦳|👨🏽‍🦼|👨🏽‍🦽|👨🏾‍⚕️|👨🏾‍⚖️|👨🏾‍✈️|👨🏾‍🌾|👨🏾‍🍳|👨🏾‍🍼|👨🏾‍🎓|👨🏾‍🎤|👨🏾‍🎨|👨🏾‍🏫|👨🏾‍🏭|👨🏾‍💻|👨🏾‍💼|👨🏾‍🔧|👨🏾‍🔬|👨🏾‍🚀|👨🏾‍🚒|👨🏾‍🦯|👨🏾‍🦰|👨🏾‍🦱|👨🏾‍🦲|👨🏾‍🦳|👨🏾‍🦼|👨🏾‍🦽|👨🏿‍⚕️|👨🏿‍⚖️|👨🏿‍✈️|👨🏿‍🌾|👨🏿‍🍳|👨🏿‍🍼|👨🏿‍🎓|👨🏿‍🎤|👨🏿‍🎨|👨🏿‍🏫|👨🏿‍🏭|👨🏿‍💻|👨🏿‍💼|👨🏿‍🔧|👨🏿‍🔬|👨🏿‍🚀|👨🏿‍🚒|👨🏿‍🦯|👨🏿‍🦰|👨🏿‍🦱|👨🏿‍🦲|👨🏿‍🦳|👨🏿‍🦼|👨🏿‍🦽|👩🏻‍⚕️|👩🏻‍⚖️|👩🏻‍✈️|👩🏻‍🌾|👩🏻‍🍳|👩🏻‍🍼|👩🏻‍🎓|👩🏻‍🎤|👩🏻‍🎨|👩🏻‍🏫|👩🏻‍🏭|👩🏻‍💻|👩🏻‍💼|👩🏻‍🔧|👩🏻‍🔬|👩🏻‍🚀|👩🏻‍🚒|👩🏻‍🦯|👩🏻‍🦰|👩🏻‍🦱|👩🏻‍🦲|👩🏻‍🦳|👩🏻‍🦼|👩🏻‍🦽|👩🏼‍⚕️|👩🏼‍⚖️|👩🏼‍✈️|👩🏼‍🌾|👩🏼‍🍳|👩🏼‍🍼|👩🏼‍🎓|👩🏼‍🎤|👩🏼‍🎨|👩🏼‍🏫|👩🏼‍🏭|👩🏼‍💻|👩🏼‍💼|👩🏼‍🔧|👩🏼‍🔬|👩🏼‍🚀|👩🏼‍🚒|👩🏼‍🦯|👩🏼‍🦰|👩🏼‍🦱|👩🏼‍🦲|👩🏼‍🦳|👩🏼‍🦼|👩🏼‍🦽|👩🏽‍⚕️|👩🏽‍⚖️|👩🏽‍✈️|👩🏽‍🌾|👩🏽‍🍳|👩🏽‍🍼|👩🏽‍🎓|👩🏽‍🎤|👩🏽‍🎨|👩🏽‍🏫|👩🏽‍🏭|👩🏽‍💻|👩🏽‍💼|👩🏽‍🔧|👩🏽‍🔬|👩🏽‍🚀|👩🏽‍🚒|👩🏽‍🦯|👩🏽‍🦰|👩🏽‍🦱|👩🏽‍🦲|👩🏽‍🦳|👩🏽‍🦼|👩🏽‍🦽|👩🏾‍⚕️|👩🏾‍⚖️|👩🏾‍✈️|👩🏾‍🌾|👩🏾‍🍳|👩🏾‍🍼|👩🏾‍🎓|👩🏾‍🎤|👩🏾‍🎨|👩🏾‍🏫|👩🏾‍🏭|👩🏾‍💻|👩🏾‍💼|👩🏾‍🔧|👩🏾‍🔬|👩🏾‍🚀|👩🏾‍🚒|👩🏾‍🦯|👩🏾‍🦰|👩🏾‍🦱|👩🏾‍🦲|👩🏾‍🦳|👩🏾‍🦼|👩🏾‍🦽|👩🏿‍⚕️|👩🏿‍⚖️|👩🏿‍✈️|👩🏿‍🌾|👩🏿‍🍳|👩🏿‍🍼|👩🏿‍🎓|👩🏿‍🎤|👩🏿‍🎨|👩🏿‍🏫|👩🏿‍🏭|👩🏿‍💻|👩🏿‍💼|👩🏿‍🔧|👩🏿‍🔬|👩🏿‍🚀|👩🏿‍🚒|👩🏿‍🦯|👩🏿‍🦰|👩🏿‍🦱|👩🏿‍🦲|👩🏿‍🦳|👩🏿‍🦼|👩🏿‍🦽|👮🏻‍♀️|👮🏻‍♂️|👮🏼‍♀️|👮🏼‍♂️|👮🏽‍♀️|👮🏽‍♂️|👮🏾‍♀️|👮🏾‍♂️|👮🏿‍♀️|👮🏿‍♂️|👯🏻‍♀️|👯🏻‍♂️|👯🏼‍♀️|👯🏼‍♂️|👯🏽‍♀️|👯🏽‍♂️|👯🏾‍♀️|👯🏾‍♂️|👯🏿‍♀️|👯🏿‍♂️|👰🏻‍♀️|👰🏻‍♂️|👰🏼‍♀️|👰🏼‍♂️|👰🏽‍♀️|👰🏽‍♂️|👰🏾‍♀️|👰🏾‍♂️|👰🏿‍♀️|👰🏿‍♂️|👱🏻‍♀️|👱🏻‍♂️|👱🏼‍♀️|👱🏼‍♂️|👱🏽‍♀️|👱🏽‍♂️|👱🏾‍♀️|👱🏾‍♂️|👱🏿‍♀️|👱🏿‍♂️|👳🏻‍♀️|👳🏻‍♂️|👳🏼‍♀️|👳🏼‍♂️|👳🏽‍♀️|👳🏽‍♂️|👳🏾‍♀️|👳🏾‍♂️|👳🏿‍♀️|👳🏿‍♂️|👷🏻‍♀️|👷🏻‍♂️|👷🏼‍♀️|👷🏼‍♂️|👷🏽‍♀️|👷🏽‍♂️|👷🏾‍♀️|👷🏾‍♂️|👷🏿‍♀️|👷🏿‍♂️|💁🏻‍♀️|💁🏻‍♂️|💁🏼‍♀️|💁🏼‍♂️|💁🏽‍♀️|💁🏽‍♂️|💁🏾‍♀️|💁🏾‍♂️|💁🏿‍♀️|💁🏿‍♂️|💂🏻‍♀️|💂🏻‍♂️|💂🏼‍♀️|💂🏼‍♂️|💂🏽‍♀️|💂🏽‍♂️|💂🏾‍♀️|💂🏾‍♂️|💂🏿‍♀️|💂🏿‍♂️|💆🏻‍♀️|💆🏻‍♂️|💆🏼‍♀️|💆🏼‍♂️|💆🏽‍♀️|💆🏽‍♂️|💆🏾‍♀️|💆🏾‍♂️|💆🏿‍♀️|💆🏿‍♂️|💇🏻‍♀️|💇🏻‍♂️|💇🏼‍♀️|💇🏼‍♂️|💇🏽‍♀️|💇🏽‍♂️|💇🏾‍♀️|💇🏾‍♂️|💇🏿‍♀️|💇🏿‍♂️|🕵🏻‍♀️|🕵🏻‍♂️|🕵🏼‍♀️|🕵🏼‍♂️|🕵🏽‍♀️|🕵🏽‍♂️|🕵🏾‍♀️|🕵🏾‍♂️|🕵🏿‍♀️|🕵🏿‍♂️|🙅🏻‍♀️|🙅🏻‍♂️|🙅🏼‍♀️|🙅🏼‍♂️|🙅🏽‍♀️|🙅🏽‍♂️|🙅🏾‍♀️|🙅🏾‍♂️|🙅🏿‍♀️|🙅🏿‍♂️|🙆🏻‍♀️|🙆🏻‍♂️|🙆🏼‍♀️|🙆🏼‍♂️|🙆🏽‍♀️|🙆🏽‍♂️|🙆🏾‍♀️|🙆🏾‍♂️|🙆🏿‍♀️|🙆🏿‍♂️|🙇🏻‍♀️|🙇🏻‍♂️|🙇🏼‍♀️|🙇🏼‍♂️|🙇🏽‍♀️|🙇🏽‍♂️|🙇🏾‍♀️|🙇🏾‍♂️|🙇🏿‍♀️|🙇🏿‍♂️|🙋🏻‍♀️|🙋🏻‍♂️|🙋🏼‍♀️|🙋🏼‍♂️|🙋🏽‍♀️|🙋🏽‍♂️|🙋🏾‍♀️|🙋🏾‍♂️|🙋🏿‍♀️|🙋🏿‍♂️|🙍🏻‍♀️|🙍🏻‍♂️|🙍🏼‍♀️|🙍🏼‍♂️|🙍🏽‍♀️|🙍🏽‍♂️|🙍🏾‍♀️|🙍🏾‍♂️|🙍🏿‍♀️|🙍🏿‍♂️|🙎🏻‍♀️|🙎🏻‍♂️|🙎🏼‍♀️|🙎🏼‍♂️|🙎🏽‍♀️|🙎🏽‍♂️|🙎🏾‍♀️|🙎🏾‍♂️|🙎🏿‍♀️|🙎🏿‍♂️|🚣🏻‍♀️|🚣🏻‍♂️|🚣🏼‍♀️|🚣🏼‍♂️|🚣🏽‍♀️|🚣🏽‍♂️|🚣🏾‍♀️|🚣🏾‍♂️|🚣🏿‍♀️|🚣🏿‍♂️|🚴🏻‍♀️|🚴🏻‍♂️|🚴🏼‍♀️|🚴🏼‍♂️|🚴🏽‍♀️|🚴🏽‍♂️|🚴🏾‍♀️|🚴🏾‍♂️|🚴🏿‍♀️|🚴🏿‍♂️|🚵🏻‍♀️|🚵🏻‍♂️|🚵🏼‍♀️|🚵🏼‍♂️|🚵🏽‍♀️|🚵🏽‍♂️|🚵🏾‍♀️|🚵🏾‍♂️|🚵🏿‍♀️|🚵🏿‍♂️|🚶🏻‍♀️|🚶🏻‍♂️|🚶🏻‍➡️|🚶🏼‍♀️|🚶🏼‍♂️|🚶🏼‍➡️|🚶🏽‍♀️|🚶🏽‍♂️|🚶🏽‍➡️|🚶🏾‍♀️|🚶🏾‍♂️|🚶🏾‍➡️|🚶🏿‍♀️|🚶🏿‍♂️|🚶🏿‍➡️|🤦🏻‍♀️|🤦🏻‍♂️|🤦🏼‍♀️|🤦🏼‍♂️|🤦🏽‍♀️|🤦🏽‍♂️|🤦🏾‍♀️|🤦🏾‍♂️|🤦🏿‍♀️|🤦🏿‍♂️|🤵🏻‍♀️|🤵🏻‍♂️|🤵🏼‍♀️|🤵🏼‍♂️|🤵🏽‍♀️|🤵🏽‍♂️|🤵🏾‍♀️|🤵🏾‍♂️|🤵🏿‍♀️|🤵🏿‍♂️|🤷🏻‍♀️|🤷🏻‍♂️|🤷🏼‍♀️|🤷🏼‍♂️|🤷🏽‍♀️|🤷🏽‍♂️|🤷🏾‍♀️|🤷🏾‍♂️|🤷🏿‍♀️|🤷🏿‍♂️|🤸🏻‍♀️|🤸🏻‍♂️|🤸🏼‍♀️|🤸🏼‍♂️|🤸🏽‍♀️|🤸🏽‍♂️|🤸🏾‍♀️|🤸🏾‍♂️|🤸🏿‍♀️|🤸🏿‍♂️|🤹🏻‍♀️|🤹🏻‍♂️|🤹🏼‍♀️|🤹🏼‍♂️|🤹🏽‍♀️|🤹🏽‍♂️|🤹🏾‍♀️|🤹🏾‍♂️|🤹🏿‍♀️|🤹🏿‍♂️|🤼🏻‍♀️|🤼🏻‍♂️|🤼🏼‍♀️|🤼🏼‍♂️|🤼🏽‍♀️|🤼🏽‍♂️|🤼🏾‍♀️|🤼🏾‍♂️|🤼🏿‍♀️|🤼🏿‍♂️|🤽🏻‍♀️|🤽🏻‍♂️|🤽🏼‍♀️|🤽🏼‍♂️|🤽🏽‍♀️|🤽🏽‍♂️|🤽🏾‍♀️|🤽🏾‍♂️|🤽🏿‍♀️|🤽🏿‍♂️|🤾🏻‍♀️|🤾🏻‍♂️|🤾🏼‍♀️|🤾🏼‍♂️|🤾🏽‍♀️|🤾🏽‍♂️|🤾🏾‍♀️|🤾🏾‍♂️|🤾🏿‍♀️|🤾🏿‍♂️|🦸🏻‍♀️|🦸🏻‍♂️|🦸🏼‍♀️|🦸🏼‍♂️|🦸🏽‍♀️|🦸🏽‍♂️|🦸🏾‍♀️|🦸🏾‍♂️|🦸🏿‍♀️|🦸🏿‍♂️|🦹🏻‍♀️|🦹🏻‍♂️|🦹🏼‍♀️|🦹🏼‍♂️|🦹🏽‍♀️|🦹🏽‍♂️|🦹🏾‍♀️|🦹🏾‍♂️|🦹🏿‍♀️|🦹🏿‍♂️|🧍🏻‍♀️|🧍🏻‍♂️|🧍🏼‍♀️|🧍🏼‍♂️|🧍🏽‍♀️|🧍🏽‍♂️|🧍🏾‍♀️|🧍🏾‍♂️|🧍🏿‍♀️|🧍🏿‍♂️|🧎🏻‍♀️|🧎🏻‍♂️|🧎🏻‍➡️|🧎🏼‍♀️|🧎🏼‍♂️|🧎🏼‍➡️|🧎🏽‍♀️|🧎🏽‍♂️|🧎🏽‍➡️|🧎🏾‍♀️|🧎🏾‍♂️|🧎🏾‍➡️|🧎🏿‍♀️|🧎🏿‍♂️|🧎🏿‍➡️|🧏🏻‍♀️|🧏🏻‍♂️|🧏🏼‍♀️|🧏🏼‍♂️|🧏🏽‍♀️|🧏🏽‍♂️|🧏🏾‍♀️|🧏🏾‍♂️|🧏🏿‍♀️|🧏🏿‍♂️|🧑🏻‍⚕️|🧑🏻‍⚖️|🧑🏻‍✈️|🧑🏻‍🌾|🧑🏻‍🍳|🧑🏻‍🍼|🧑🏻‍🎄|🧑🏻‍🎓|🧑🏻‍🎤|🧑🏻‍🎨|🧑🏻‍🏫|🧑🏻‍🏭|🧑🏻‍💻|🧑🏻‍💼|🧑🏻‍🔧|🧑🏻‍🔬|🧑🏻‍🚀|🧑🏻‍🚒|🧑🏻‍🦯|🧑🏻‍🦰|🧑🏻‍🦱|🧑🏻‍🦲|🧑🏻‍🦳|🧑🏻‍🦼|🧑🏻‍🦽|🧑🏻‍🩰|🧑🏼‍⚕️|🧑🏼‍⚖️|🧑🏼‍✈️|🧑🏼‍🌾|🧑🏼‍🍳|🧑🏼‍🍼|🧑🏼‍🎄|🧑🏼‍🎓|🧑🏼‍🎤|🧑🏼‍🎨|🧑🏼‍🏫|🧑🏼‍🏭|🧑🏼‍💻|🧑🏼‍💼|🧑🏼‍🔧|🧑🏼‍🔬|🧑🏼‍🚀|🧑🏼‍🚒|🧑🏼‍🦯|🧑🏼‍🦰|🧑🏼‍🦱|🧑🏼‍🦲|🧑🏼‍🦳|🧑🏼‍🦼|🧑🏼‍🦽|🧑🏼‍🩰|🧑🏽‍⚕️|🧑🏽‍⚖️|🧑🏽‍✈️|🧑🏽‍🌾|🧑🏽‍🍳|🧑🏽‍🍼|🧑🏽‍🎄|🧑🏽‍🎓|🧑🏽‍🎤|🧑🏽‍🎨|🧑🏽‍🏫|🧑🏽‍🏭|🧑🏽‍💻|🧑🏽‍💼|🧑🏽‍🔧|🧑🏽‍🔬|🧑🏽‍🚀|🧑🏽‍🚒|🧑🏽‍🦯|🧑🏽‍🦰|🧑🏽‍🦱|🧑🏽‍🦲|🧑🏽‍🦳|🧑🏽‍🦼|🧑🏽‍🦽|🧑🏽‍🩰|🧑🏾‍⚕️|🧑🏾‍⚖️|🧑🏾‍✈️|🧑🏾‍🌾|🧑🏾‍🍳|🧑🏾‍🍼|🧑🏾‍🎄|🧑🏾‍🎓|🧑🏾‍🎤|🧑🏾‍🎨|🧑🏾‍🏫|🧑🏾‍🏭|🧑🏾‍💻|🧑🏾‍💼|🧑🏾‍🔧|🧑🏾‍🔬|🧑🏾‍🚀|🧑🏾‍🚒|🧑🏾‍🦯|🧑🏾‍🦰|🧑🏾‍🦱|🧑🏾‍🦲|🧑🏾‍🦳|🧑🏾‍🦼|🧑🏾‍🦽|🧑🏾‍🩰|🧑🏿‍⚕️|🧑🏿‍⚖️|🧑🏿‍✈️|🧑🏿‍🌾|🧑🏿‍🍳|🧑🏿‍🍼|🧑🏿‍🎄|🧑🏿‍🎓|🧑🏿‍🎤|🧑🏿‍🎨|🧑🏿‍🏫|🧑🏿‍🏭|🧑🏿‍💻|🧑🏿‍💼|🧑🏿‍🔧|🧑🏿‍🔬|🧑🏿‍🚀|🧑🏿‍🚒|🧑🏿‍🦯|🧑🏿‍🦰|🧑🏿‍🦱|🧑🏿‍🦲|🧑🏿‍🦳|🧑🏿‍🦼|🧑🏿‍🦽|🧑🏿‍🩰|🧔🏻‍♀️|🧔🏻‍♂️|🧔🏼‍♀️|🧔🏼‍♂️|🧔🏽‍♀️|🧔🏽‍♂️|🧔🏾‍♀️|🧔🏾‍♂️|🧔🏿‍♀️|🧔🏿‍♂️|🧖🏻‍♀️|🧖🏻‍♂️|🧖🏼‍♀️|🧖🏼‍♂️|🧖🏽‍♀️|🧖🏽‍♂️|🧖🏾‍♀️|🧖🏾‍♂️|🧖🏿‍♀️|🧖🏿‍♂️|🧗🏻‍♀️|🧗🏻‍♂️|🧗🏼‍♀️|🧗🏼‍♂️|🧗🏽‍♀️|🧗🏽‍♂️|🧗🏾‍♀️|🧗🏾‍♂️|🧗🏿‍♀️|🧗🏿‍♂️|🧘🏻‍♀️|🧘🏻‍♂️|🧘🏼‍♀️|🧘🏼‍♂️|🧘🏽‍♀️|🧘🏽‍♂️|🧘🏾‍♀️|🧘🏾‍♂️|🧘🏿‍♀️|🧘🏿‍♂️|🧙🏻‍♀️|🧙🏻‍♂️|🧙🏼‍♀️|🧙🏼‍♂️|🧙🏽‍♀️|🧙🏽‍♂️|🧙🏾‍♀️|🧙🏾‍♂️|🧙🏿‍♀️|🧙🏿‍♂️|🧚🏻‍♀️|🧚🏻‍♂️|🧚🏼‍♀️|🧚🏼‍♂️|🧚🏽‍♀️|🧚🏽‍♂️|🧚🏾‍♀️|🧚🏾‍♂️|🧚🏿‍♀️|🧚🏿‍♂️|🧛🏻‍♀️|🧛🏻‍♂️|🧛🏼‍♀️|🧛🏼‍♂️|🧛🏽‍♀️|🧛🏽‍♂️|🧛🏾‍♀️|🧛🏾‍♂️|🧛🏿‍♀️|🧛🏿‍♂️|🧜🏻‍♀️|🧜🏻‍♂️|🧜🏼‍♀️|🧜🏼‍♂️|🧜🏽‍♀️|🧜🏽‍♂️|🧜🏾‍♀️|🧜🏾‍♂️|🧜🏿‍♀️|🧜🏿‍♂️|🧝🏻‍♀️|🧝🏻‍♂️|🧝🏼‍♀️|🧝🏼‍♂️|🧝🏽‍♀️|🧝🏽‍♂️|🧝🏾‍♀️|🧝🏾‍♂️|🧝🏿‍♀️|🧝🏿‍♂️|⛹🏻‍♀️|⛹🏻‍♂️|⛹🏼‍♀️|⛹🏼‍♂️|⛹🏽‍♀️|⛹🏽‍♂️|⛹🏾‍♀️|⛹🏾‍♂️|⛹🏿‍♀️|⛹🏿‍♂️|🏋️‍♀️|🏋️‍♂️|🏌️‍♀️|🏌️‍♂️|🏳️‍⚧️|🏳️‍🌈|🕵️‍♀️|🕵️‍♂️|😶‍🌫️|⛓️‍💥|⛹️‍♀️|⛹️‍♂️|❤️‍🔥|❤️‍🩹|🍄‍🟫|🍋‍🟩|🏃‍♀️|🏃‍♂️|🏃‍➡️|🏄‍♀️|🏄‍♂️|🏊‍♀️|🏊‍♂️|🏴‍☠️|🐕‍🦺|🐦‍🔥|🐻‍❄️|👨‍⚕️|👨‍⚖️|👨‍✈️|👨‍🌾|👨‍🍳|👨‍🍼|👨‍🎓|👨‍🎤|👨‍🎨|👨‍🏫|👨‍🏭|👨‍👦|👨‍👧|👨‍💻|👨‍💼|👨‍🔧|👨‍🔬|👨‍🚀|👨‍🚒|👨‍🦯|👨‍🦰|👨‍🦱|👨‍🦲|👨‍🦳|👨‍🦼|👨‍🦽|👩‍⚕️|👩‍⚖️|👩‍✈️|👩‍🌾|👩‍🍳|👩‍🍼|👩‍🎓|👩‍🎤|👩‍🎨|👩‍🏫|👩‍🏭|👩‍👦|👩‍👧|👩‍💻|👩‍💼|👩‍🔧|👩‍🔬|👩‍🚀|👩‍🚒|👩‍🦯|👩‍🦰|👩‍🦱|👩‍🦲|👩‍🦳|👩‍🦼|👩‍🦽|👮‍♀️|👮‍♂️|👯‍♀️|👯‍♂️|👰‍♀️|👰‍♂️|👱‍♀️|👱‍♂️|👳‍♀️|👳‍♂️|👷‍♀️|👷‍♂️|💁‍♀️|💁‍♂️|💂‍♀️|💂‍♂️|💆‍♀️|💆‍♂️|💇‍♀️|💇‍♂️|😮‍💨|😵‍💫|🙂‍↔️|🙂‍↕️|🙅‍♀️|🙅‍♂️|🙆‍♀️|🙆‍♂️|🙇‍♀️|🙇‍♂️|🙋‍♀️|🙋‍♂️|🙍‍♀️|🙍‍♂️|🙎‍♀️|🙎‍♂️|🚣‍♀️|🚣‍♂️|🚴‍♀️|🚴‍♂️|🚵‍♀️|🚵‍♂️|🚶‍♀️|🚶‍♂️|🚶‍➡️|🤦‍♀️|🤦‍♂️|🤵‍♀️|🤵‍♂️|🤷‍♀️|🤷‍♂️|🤸‍♀️|🤸‍♂️|🤹‍♀️|🤹‍♂️|🤼‍♀️|🤼‍♂️|🤽‍♀️|🤽‍♂️|🤾‍♀️|🤾‍♂️|🦸‍♀️|🦸‍♂️|🦹‍♀️|🦹‍♂️|🧍‍♀️|🧍‍♂️|🧎‍♀️|🧎‍♂️|🧎‍➡️|🧏‍♀️|🧏‍♂️|🧑‍⚕️|🧑‍⚖️|🧑‍✈️|🧑‍🌾|🧑‍🍳|🧑‍🍼|🧑‍🎄|🧑‍🎓|🧑‍🎤|🧑‍🎨|🧑‍🏫|🧑‍🏭|🧑‍💻|🧑‍💼|🧑‍🔧|🧑‍🔬|🧑‍🚀|🧑‍🚒|🧑‍🦯|🧑‍🦰|🧑‍🦱|🧑‍🦲|🧑‍🦳|🧑‍🦼|🧑‍🦽|🧑‍🧒|🧑‍🩰|🧔‍♀️|🧔‍♂️|🧖‍♀️|🧖‍♂️|🧗‍♀️|🧗‍♂️|🧘‍♀️|🧘‍♂️|🧙‍♀️|🧙‍♂️|🧚‍♀️|🧚‍♂️|🧛‍♀️|🧛‍♂️|🧜‍♀️|🧜‍♂️|🧝‍♀️|🧝‍♂️|🧞‍♀️|🧞‍♂️|🧟‍♀️|🧟‍♂️|\*️⃣|🇦🇨|🇦🇩|🇦🇪|🇦🇫|🇦🇬|🇦🇮|🇦🇱|🇦🇲|🇦🇴|🇦🇶|🇦🇷|🇦🇸|🇦🇹|🇦🇺|🇦🇼|🇦🇽|🇦🇿|🇧🇦|🇧🇧|🇧🇩|🇧🇪|🇧🇫|🇧🇬|🇧🇭|🇧🇮|🇧🇯|🇧🇱|🇧🇲|🇧🇳|🇧🇴|🇧🇶|🇧🇷|🇧🇸|🇧🇹|🇧🇻|🇧🇼|🇧🇾|🇧🇿|🇨🇦|🇨🇨|🇨🇩|🇨🇫|🇨🇬|🇨🇭|🇨🇮|🇨🇰|🇨🇱|🇨🇲|🇨🇳|🇨🇴|🇨🇵|🇨🇶|🇨🇷|🇨🇺|🇨🇻|🇨🇼|🇨🇽|🇨🇾|🇨🇿|🇩🇪|🇩🇬|🇩🇯|🇩🇰|🇩🇲|🇩🇴|🇩🇿|🇪🇦|🇪🇨|🇪🇪|🇪🇬|🇪🇭|🇪🇷|🇪🇸|🇪🇹|🇪🇺|🇫🇮|🇫🇯|🇫🇰|🇫🇲|🇫🇴|🇫🇷|🇬🇦|🇬🇧|🇬🇩|🇬🇪|🇬🇫|🇬🇬|🇬🇭|🇬🇮|🇬🇱|🇬🇲|🇬🇳|🇬🇵|🇬🇶|🇬🇷|🇬🇸|🇬🇹|🇬🇺|🇬🇼|🇬🇾|🇭🇰|🇭🇲|🇭🇳|🇭🇷|🇭🇹|🇭🇺|🇮🇨|🇮🇩|🇮🇪|🇮🇱|🇮🇲|🇮🇳|🇮🇴|🇮🇶|🇮🇷|🇮🇸|🇮🇹|🇯🇪|🇯🇲|🇯🇴|🇯🇵|🇰🇪|🇰🇬|🇰🇭|🇰🇮|🇰🇲|🇰🇳|🇰🇵|🇰🇷|🇰🇼|🇰🇾|🇰🇿|🇱🇦|🇱🇧|🇱🇨|🇱🇮|🇱🇰|🇱🇷|🇱🇸|🇱🇹|🇱🇺|🇱🇻|🇱🇾|🇲🇦|🇲🇨|🇲🇩|🇲🇪|🇲🇫|🇲🇬|🇲🇭|🇲🇰|🇲🇱|🇲🇲|🇲🇳|🇲🇴|🇲🇵|🇲🇶|🇲🇷|🇲🇸|🇲🇹|🇲🇺|🇲🇻|🇲🇼|🇲🇽|🇲🇾|🇲🇿|🇳🇦|🇳🇨|🇳🇪|🇳🇫|🇳🇬|🇳🇮|🇳🇱|🇳🇴|🇳🇵|🇳🇷|🇳🇺|🇳🇿|🇴🇲|🇵🇦|🇵🇪|🇵🇫|🇵🇬|🇵🇭|🇵🇰|🇵🇱|🇵🇲|🇵🇳|🇵🇷|🇵🇸|🇵🇹|🇵🇼|🇵🇾|🇶🇦|🇷🇪|🇷🇴|🇷🇸|🇷🇺|🇷🇼|🇸🇦|🇸🇧|🇸🇨|🇸🇩|🇸🇪|🇸🇬|🇸🇭|🇸🇮|🇸🇯|🇸🇰|🇸🇱|🇸🇲|🇸🇳|🇸🇴|🇸🇷|🇸🇸|🇸🇹|🇸🇻|🇸🇽|🇸🇾|🇸🇿|🇹🇦|🇹🇨|🇹🇩|🇹🇫|🇹🇬|🇹🇭|🇹🇯|🇹🇰|🇹🇱|🇹🇲|🇹🇳|🇹🇴|🇹🇷|🇹🇹|🇹🇻|🇹🇼|🇹🇿|🇺🇦|🇺🇬|🇺🇲|🇺🇳|🇺🇸|🇺🇾|🇺🇿|🇻🇦|🇻🇨|🇻🇪|🇻🇬|🇻🇮|🇻🇳|🇻🇺|🇼🇫|🇼🇸|🇽🇰|🇾🇪|🇾🇹|🇿🇦|🇿🇲|🇿🇼|🎅🏻|🎅🏼|🎅🏽|🎅🏾|🎅🏿|🏂🏻|🏂🏼|🏂🏽|🏂🏾|🏂🏿|🏃🏻|🏃🏼|🏃🏽|🏃🏾|🏃🏿|🏄🏻|🏄🏼|🏄🏽|🏄🏾|🏄🏿|🏇🏻|🏇🏼|🏇🏽|🏇🏾|🏇🏿|🏊🏻|🏊🏼|🏊🏽|🏊🏾|🏊🏿|🏋🏻|🏋🏼|🏋🏽|🏋🏾|🏋🏿|🏌🏻|🏌🏼|🏌🏽|🏌🏾|🏌🏿|🐈‍⬛|🐦‍⬛|👂🏻|👂🏼|👂🏽|👂🏾|👂🏿|👃🏻|👃🏼|👃🏽|👃🏾|👃🏿|👆🏻|👆🏼|👆🏽|👆🏾|👆🏿|👇🏻|👇🏼|👇🏽|👇🏾|👇🏿|👈🏻|👈🏼|👈🏽|👈🏾|👈🏿|👉🏻|👉🏼|👉🏽|👉🏾|👉🏿|👊🏻|👊🏼|👊🏽|👊🏾|👊🏿|👋🏻|👋🏼|👋🏽|👋🏾|👋🏿|👌🏻|👌🏼|👌🏽|👌🏾|👌🏿|👍🏻|👍🏼|👍🏽|👍🏾|👍🏿|👎🏻|👎🏼|👎🏽|👎🏾|👎🏿|👏🏻|👏🏼|👏🏽|👏🏾|👏🏿|👐🏻|👐🏼|👐🏽|👐🏾|👐🏿|👦🏻|👦🏼|👦🏽|👦🏾|👦🏿|👧🏻|👧🏼|👧🏽|👧🏾|👧🏿|👨🏻|👨🏼|👨🏽|👨🏾|👨🏿|👩🏻|👩🏼|👩🏽|👩🏾|👩🏿|👫🏻|👫🏼|👫🏽|👫🏾|👫🏿|👬🏻|👬🏼|👬🏽|👬🏾|👬🏿|👭🏻|👭🏼|👭🏽|👭🏾|👭🏿|👮🏻|👮🏼|👮🏽|👮🏾|👮🏿|👯🏻|👯🏼|👯🏽|👯🏾|👯🏿|👰🏻|👰🏼|👰🏽|👰🏾|👰🏿|👱🏻|👱🏼|👱🏽|👱🏾|👱🏿|👲🏻|👲🏼|👲🏽|👲🏾|👲🏿|👳🏻|👳🏼|👳🏽|👳🏾|👳🏿|👴🏻|👴🏼|👴🏽|👴🏾|👴🏿|👵🏻|👵🏼|👵🏽|👵🏾|👵🏿|👶🏻|👶🏼|👶🏽|👶🏾|👶🏿|👷🏻|👷🏼|👷🏽|👷🏾|👷🏿|👸🏻|👸🏼|👸🏽|👸🏾|👸🏿|👼🏻|👼🏼|👼🏽|👼🏾|👼🏿|💁🏻|💁🏼|💁🏽|💁🏾|💁🏿|💂🏻|💂🏼|💂🏽|💂🏾|💂🏿|💃🏻|💃🏼|💃🏽|💃🏾|💃🏿|💅🏻|💅🏼|💅🏽|💅🏾|💅🏿|💆🏻|💆🏼|💆🏽|💆🏾|💆🏿|💇🏻|💇🏼|💇🏽|💇🏾|💇🏿|💏🏻|💏🏼|💏🏽|💏🏾|💏🏿|💑🏻|💑🏼|💑🏽|💑🏾|💑🏿|💪🏻|💪🏼|💪🏽|💪🏾|💪🏿|🕴🏻|🕴🏼|🕴🏽|🕴🏾|🕴🏿|🕵🏻|🕵🏼|🕵🏽|🕵🏾|🕵🏿|🕺🏻|🕺🏼|🕺🏽|🕺🏾|🕺🏿|🖐🏻|🖐🏼|🖐🏽|🖐🏾|🖐🏿|🖕🏻|🖕🏼|🖕🏽|🖕🏾|🖕🏿|🖖🏻|🖖🏼|🖖🏽|🖖🏾|🖖🏿|🙅🏻|🙅🏼|🙅🏽|🙅🏾|🙅🏿|🙆🏻|🙆🏼|🙆🏽|🙆🏾|🙆🏿|🙇🏻|🙇🏼|🙇🏽|🙇🏾|🙇🏿|🙋🏻|🙋🏼|🙋🏽|🙋🏾|🙋🏿|🙌🏻|🙌🏼|🙌🏽|🙌🏾|🙌🏿|🙍🏻|🙍🏼|🙍🏽|🙍🏾|🙍🏿|🙎🏻|🙎🏼|🙎🏽|🙎🏾|🙎🏿|🙏🏻|🙏🏼|🙏🏽|🙏🏾|🙏🏿|🚣🏻|🚣🏼|🚣🏽|🚣🏾|🚣🏿|🚴🏻|🚴🏼|🚴🏽|🚴🏾|🚴🏿|🚵🏻|🚵🏼|🚵🏽|🚵🏾|🚵🏿|🚶🏻|🚶🏼|🚶🏽|🚶🏾|🚶🏿|🛀🏻|🛀🏼|🛀🏽|🛀🏾|🛀🏿|🛌🏻|🛌🏼|🛌🏽|🛌🏾|🛌🏿|🤌🏻|🤌🏼|🤌🏽|🤌🏾|🤌🏿|🤏🏻|🤏🏼|🤏🏽|🤏🏾|🤏🏿|🤘🏻|🤘🏼|🤘🏽|🤘🏾|🤘🏿|🤙🏻|🤙🏼|🤙🏽|🤙🏾|🤙🏿|🤚🏻|🤚🏼|🤚🏽|🤚🏾|🤚🏿|🤛🏻|🤛🏼|🤛🏽|🤛🏾|🤛🏿|🤜🏻|🤜🏼|🤜🏽|🤜🏾|🤜🏿|🤝🏻|🤝🏼|🤝🏽|🤝🏾|🤝🏿|🤞🏻|🤞🏼|🤞🏽|🤞🏾|🤞🏿|🤟🏻|🤟🏼|🤟🏽|🤟🏾|🤟🏿|🤦🏻|🤦🏼|🤦🏽|🤦🏾|🤦🏿|🤰🏻|🤰🏼|🤰🏽|🤰🏾|🤰🏿|🤱🏻|🤱🏼|🤱🏽|🤱🏾|🤱🏿|🤲🏻|🤲🏼|🤲🏽|🤲🏾|🤲🏿|🤳🏻|🤳🏼|🤳🏽|🤳🏾|🤳🏿|🤴🏻|🤴🏼|🤴🏽|🤴🏾|🤴🏿|🤵🏻|🤵🏼|🤵🏽|🤵🏾|🤵🏿|🤶🏻|🤶🏼|🤶🏽|🤶🏾|🤶🏿|🤷🏻|🤷🏼|🤷🏽|🤷🏾|🤷🏿|🤸🏻|🤸🏼|🤸🏽|🤸🏾|🤸🏿|🤹🏻|🤹🏼|🤹🏽|🤹🏾|🤹🏿|🤼🏻|🤼🏼|🤼🏽|🤼🏾|🤼🏿|🤽🏻|🤽🏼|🤽🏽|🤽🏾|🤽🏿|🤾🏻|🤾🏼|🤾🏽|🤾🏾|🤾🏿|🥷🏻|🥷🏼|🥷🏽|🥷🏾|🥷🏿|🦵🏻|🦵🏼|🦵🏽|🦵🏾|🦵🏿|🦶🏻|🦶🏼|🦶🏽|🦶🏾|🦶🏿|🦸🏻|🦸🏼|🦸🏽|🦸🏾|🦸🏿|🦹🏻|🦹🏼|🦹🏽|🦹🏾|🦹🏿|🦻🏻|🦻🏼|🦻🏽|🦻🏾|🦻🏿|🧍🏻|🧍🏼|🧍🏽|🧍🏾|🧍🏿|🧎🏻|🧎🏼|🧎🏽|🧎🏾|🧎🏿|🧏🏻|🧏🏼|🧏🏽|🧏🏾|🧏🏿|🧑🏻|🧑🏼|🧑🏽|🧑🏾|🧑🏿|🧒🏻|🧒🏼|🧒🏽|🧒🏾|🧒🏿|🧓🏻|🧓🏼|🧓🏽|🧓🏾|🧓🏿|🧔🏻|🧔🏼|🧔🏽|🧔🏾|🧔🏿|🧕🏻|🧕🏼|🧕🏽|🧕🏾|🧕🏿|🧖🏻|🧖🏼|🧖🏽|🧖🏾|🧖🏿|🧗🏻|🧗🏼|🧗🏽|🧗🏾|🧗🏿|🧘🏻|🧘🏼|🧘🏽|🧘🏾|🧘🏿|🧙🏻|🧙🏼|🧙🏽|🧙🏾|🧙🏿|🧚🏻|🧚🏼|🧚🏽|🧚🏾|🧚🏿|🧛🏻|🧛🏼|🧛🏽|🧛🏾|🧛🏿|🧜🏻|🧜🏼|🧜🏽|🧜🏾|🧜🏿|🧝🏻|🧝🏼|🧝🏽|🧝🏾|🧝🏿|🫃🏻|🫃🏼|🫃🏽|🫃🏾|🫃🏿|🫄🏻|🫄🏼|🫄🏽|🫄🏾|🫄🏿|🫅🏻|🫅🏼|🫅🏽|🫅🏾|🫅🏿|🫰🏻|🫰🏼|🫰🏽|🫰🏾|🫰🏿|🫱🏻|🫱🏼|🫱🏽|🫱🏾|🫱🏿|🫲🏻|🫲🏼|🫲🏽|🫲🏾|🫲🏿|🫳🏻|🫳🏼|🫳🏽|🫳🏾|🫳🏿|🫴🏻|🫴🏼|🫴🏽|🫴🏾|🫴🏿|🫵🏻|🫵🏼|🫵🏽|🫵🏾|🫵🏿|🫶🏻|🫶🏼|🫶🏽|🫶🏾|🫶🏿|🫷🏻|🫷🏼|🫷🏽|🫷🏾|🫷🏿|🫸🏻|🫸🏼|🫸🏽|🫸🏾|🫸🏿|#️⃣|0️⃣|1️⃣|2️⃣|3️⃣|4️⃣|5️⃣|6️⃣|7️⃣|8️⃣|9️⃣|☝🏻|☝🏼|☝🏽|☝🏾|☝🏿|⛹🏻|⛹🏼|⛹🏽|⛹🏾|⛹🏿|✊🏻|✊🏼|✊🏽|✊🏾|✊🏿|✋🏻|✋🏼|✋🏽|✋🏾|✋🏿|✌🏻|✌🏼|✌🏽|✌🏾|✌🏿|✍🏻|✍🏼|✍🏽|✍🏾|✍🏿|🅰️|🅱️|🅾️|🅿️|🈂️|🈷️|🌡️|🌤️|🌥️|🌦️|🌧️|🌨️|🌩️|🌪️|🌫️|🌬️|🌶️|🍽️|🎖️|🎗️|🎙️|🎚️|🎛️|🎞️|🎟️|🏋️|🏌️|🏍️|🏎️|🏔️|🏕️|🏖️|🏗️|🏘️|🏙️|🏚️|🏛️|🏜️|🏝️|🏞️|🏟️|🏳️|🏵️|🏷️|🐿️|👁️|📽️|🕉️|🕊️|🕯️|🕰️|🕳️|🕴️|🕵️|🕶️|🕷️|🕸️|🕹️|🖇️|🖊️|🖋️|🖌️|🖍️|🖐️|🖥️|🖨️|🖱️|🖲️|🖼️|🗂️|🗃️|🗄️|🗑️|🗒️|🗓️|🗜️|🗝️|🗞️|🗡️|🗣️|🗨️|🗯️|🗳️|🗺️|🛋️|🛍️|🛎️|🛏️|🛠️|🛡️|🛢️|🛣️|🛤️|🛥️|🛩️|🛰️|🛳️|©️|®️|‼️|⁉️|™️|ℹ️|↔️|↕️|↖️|↗️|↘️|↙️|↩️|↪️|⌨️|⏏️|⏭️|⏮️|⏯️|⏱️|⏲️|⏸️|⏹️|⏺️|Ⓜ️|▪️|▫️|▶️|◀️|◻️|◼️|☀️|☁️|☂️|☃️|☄️|☎️|☑️|☘️|☝️|☠️|☢️|☣️|☦️|☪️|☮️|☯️|☸️|☹️|☺️|♀️|♂️|♟️|♠️|♣️|♥️|♦️|♨️|♻️|♾️|⚒️|⚔️|⚕️|⚖️|⚗️|⚙️|⚛️|⚜️|⚠️|⚧️|⚰️|⚱️|⛈️|⛏️|⛑️|⛓️|⛩️|⛰️|⛱️|⛴️|⛷️|⛸️|⛹️|✂️|✈️|✉️|✌️|✍️|✏️|✒️|✔️|✖️|✝️|✡️|✳️|✴️|❄️|❇️|❣️|❤️|➡️|⤴️|⤵️|⬅️|⬆️|⬇️|〰️|〽️|㊗️|㊙️|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55\u{1F004}\u{1F0CF}\u{1F18E}\u{1F191}-\u{1F19A}\u{1F201}\u{1F21A}\u{1F22F}\u{1F232}-\u{1F236}\u{1F238}-\u{1F23A}\u{1F250}\u{1F251}\u{1F300}-\u{1F320}\u{1F32D}-\u{1F335}\u{1F337}-\u{1F37C}\u{1F37E}-\u{1F393}\u{1F3A0}-\u{1F3CA}\u{1F3CF}-\u{1F3D3}\u{1F3E0}-\u{1F3F0}\u{1F3F4}\u{1F3F8}-\u{1F43E}\u{1F440}\u{1F442}-\u{1F4FC}\u{1F4FF}-\u{1F53D}\u{1F54B}-\u{1F54E}\u{1F550}-\u{1F567}\u{1F57A}\u{1F595}\u{1F596}\u{1F5A4}\u{1F5FB}-\u{1F64F}\u{1F680}-\u{1F6C5}\u{1F6CC}\u{1F6D0}-\u{1F6D2}\u{1F6D5}-\u{1F6D8}\u{1F6DC}-\u{1F6DF}\u{1F6EB}\u{1F6EC}\u{1F6F4}-\u{1F6FC}\u{1F7E0}-\u{1F7EB}\u{1F7F0}\u{1F90C}-\u{1F93A}\u{1F93C}-\u{1F945}\u{1F947}-\u{1F9FF}\u{1FA70}-\u{1FA7C}\u{1FA80}-\u{1FA8A}\u{1FA8E}-\u{1FAC6}\u{1FAC8}\u{1FACD}-\u{1FADC}\u{1FADF}-\u{1FAEA}\u{1FAEF}-\u{1FAF8}])/gu).length):d=(0,h.jsxDEV)(h.Fragment,{children:[(0,h.jsxDEV)("i",{className:"material-icons gray",children:"warning_amber"},void 0,!1)," ",(0,h.jsxDEV)("i",{className:"gray",children:(0,h.jsxDEV)(n.FormattedMessage,{id:"invalid_content",defaultMessage:"invalid content",description:"Shown when the message is unreadable"},void 0,!1)},void 0,!1)]},void 0,!0);return(0,h.jsxDEV)("li",{ref:this.props.innerRef,className:e,children:[this.props.isGroup&&this.props.response?(0,h.jsxDEV)("div",{className:"avatar-box",children:r?(0,h.jsxDEV)(p.A,{authorizeURL:this.props.tinode.authorizeURL,topic:this.props.userFrom,title:this.props.userName,avatar:s},void 0,!1):null},void 0,!1):null,(0,h.jsxDEV)("div",{children:[(0,h.jsxDEV)("div",{className:t,children:[(0,h.jsxDEV)("div",{className:"content-meta",children:[(0,h.jsxDEV)("div",{className:i,children:[d,l]},void 0,!0),this.props.timestamp?(0,h.jsxDEV)(m,{edited:this.props.edited,timestamp:this.props.timestamp,received:this.props.received},void 0,!1):null]},void 0,!0),this.props.showContextMenu?(0,h.jsxDEV)("span",{className:"menuTrigger",children:(0,h.jsxDEV)("a",{href:"#",onClick:this.handleContextClick,children:(0,h.jsxDEV)("i",{className:"material-icons",children:"expand_more"},void 0,!1)},void 0,!1)},void 0,!1):null]},void 0,!0),r?(0,h.jsxDEV)("div",{className:"author",children:this.props.userName||(0,h.jsxDEV)("i",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"user_not_found",defaultMessage:"Not found",description:"In place of a user's full name when the user is not found."},void 0,!1)},void 0,!1)},void 0,!1):null]},void 0,!0)]},void 0,!0)}}const D=(0,n.injectIntl)(b);var E=a().forwardRef((e,t)=>(0,h.jsxDEV)(D,{innerRef:t,...e},void 0,!1)),M=s(504),S=s(1334),y=s(9027),x=s(6110);class w extends a().Component{constructor(e){super(e)}render(){const e=[],t=(this.props.subscribers||[]).length,s=Math.min(4,t);return(this.props.subscribers||[]).some(t=>(e.push((0,h.jsxDEV)("div",{className:"avatar-box",children:(0,h.jsxDEV)(p.A,{authorizeURL:this.props.tinode.authorizeURL,topic:t.user,avatar:(0,x.to)(t.public?t.public.photo:null)||!0,title:t.public?t.public.fn:null},void 0,!1)},t.user,!1)),e.length==s)),0==e.length?null:(0,h.jsxDEV)("div",{id:"topic-users",children:[e," ",t>s?(0,h.jsxDEV)("span",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"more_online_members",defaultMessage:"+{overflow} more",description:"Shown in MessagesView title bar when the number of online subscribers exceeds MAX_ONLINE_IN_TOPIC",values:{overflow:t-s}},void 0,!1)},void 0,!1):null]},void 0,!0)}}class C extends a().PureComponent{constructor(e){super(e),this.handleButtonAction=this.handleButtonAction.bind(this)}handleButtonAction(e,t){e.preventDefault(),this.props.onAction(t)}render(){return(0,h.jsxDEV)("div",{className:"accept-invite-panel",children:[(0,h.jsxDEV)("div",{className:"title",children:(0,h.jsxDEV)(n.FormattedMessage,{id:"chat_invitation",defaultMessage:"You are invited to start a new chat. What would you like to do?",description:"New chat invitation message: [Accept] [Ignore] [Block]."},void 0,!1)},void 0,!1),(0,h.jsxDEV)("div",{className:"footer",children:[(0,h.jsxDEV)("button",{className:"primary",onClick:e=>{this.handleButtonAction(e,"accept")},children:(0,h.jsxDEV)(n.FormattedMessage,{id:"chat_invitation_accept",defaultMessage:"Accept",description:"Action [Accept] for chat invitation."},void 0,!1)},void 0,!1),(0,h.jsxDEV)("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"delete")},children:(0,h.jsxDEV)(n.FormattedMessage,{id:"chat_invitation_ignore",defaultMessage:"Ignore",description:"Action [Ignore] for chat invitation."},void 0,!1)},void 0,!1),(0,h.jsxDEV)("button",{className:"secondary",onClick:e=>{this.handleButtonAction(e,"block")},children:(0,h.jsxDEV)(n.FormattedMessage,{id:"chat_invitation_block",defaultMessage:"Block",description:"Action [Block] for chat invitation."},void 0,!1)},void 0,!1)]},void 0,!0)]},void 0,!0)}}var _=s(1013);class A extends a().PureComponent{render(){const e=y.C3+" ("+o.Tinode.getLibrary()+")";return(0,h.jsxDEV)("div",{id:"dummy-view",children:(0,h.jsxDEV)("div",{children:[(0,h.jsxDEV)("a",{href:"https://github.com/tinode/chat/",children:[(0,h.jsxDEV)("img",{id:"logo",alt:"logo",src:"img/logo.svg"},void 0,!1),(0,h.jsxDEV)("h2",{children:"Tinode Web"},void 0,!1)]},void 0,!0),(0,h.jsxDEV)("p",{children:[(0,h.jsxDEV)(n.FormattedMessage,{id:"label_client",defaultMessage:"Client:",description:"Label for a client version"},void 0,!1)," ",e]},void 0,!0),(0,h.jsxDEV)("p",{children:[(0,h.jsxDEV)(n.FormattedMessage,{id:"label_server",defaultMessage:"Server:",description:"Label for a server version"},void 0,!1)," ",this.props.serverVersion," (",this.props.serverAddress,")"]},void 0,!0)]},void 0,!0)},void 0,!1)}}class V extends a().PureComponent{constructor(e){super(e)}render(){let e=null,t="bubble";return this.props.date&&(e=(0,h.jsxDEV)(h.Fragment,{children:this.props.date},void 0,!1),t+=" date"),e?(0,h.jsxDEV)("li",{className:"meta",children:(0,h.jsxDEV)("div",{className:t,children:(0,h.jsxDEV)("div",{className:"message-content",children:e},void 0,!1)},void 0,!1)},void 0,!1):(0,h.jsxDEV)(h.Fragment,{children:null},void 0,!1)}}const F=(0,n.defineMessages)({message_not_found:{id:"message_not_found",defaultMessage:"message not found",description:"Pinned message is not found"},message_deleted:{id:"message_deleted",defaultMessage:"message deleted",description:"Pinned message is deleted"}});class P extends a().PureComponent{constructor(e){super(e),this.touchX=null,this.touchY=null,this.touchSurface=a().createRef(),this.getSelectedIndex=this.getSelectedIndex.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleSelected=this.handleSelected.bind(this),this.handleMoveNext=this.handleMoveNext.bind(this),this.handleMovePrev=this.handleMovePrev.bind(this),this.handleTouchEventStart=this.handleTouchEventStart.bind(this),this.handleTouchEventEnd=this.handleTouchEventEnd.bind(this),this.handleTouchCancel=this.handleTouchCancel.bind(this)}componentDidMount(){this.touchSurface.current.addEventListener("touchstart",this.handleTouchEventStart,{passive:!0}),this.touchSurface.current.addEventListener("touchend",this.handleTouchEventEnd,{passive:!0}),this.touchSurface.current.addEventListener("touchcancel",this.handleTouchCancel,{passive:!0})}componentWillUnmount(){this.touchSurface.current.removeEventListener("touchstart",this.handleTouchEventStart),this.touchSurface.current.removeEventListener("touchend",this.handleTouchEventEnd),this.touchSurface.current.removeEventListener("touchcancel",this.handleTouchCancel)}getSelectedIndex(){return(this.props.pins||[]).length-this.props.selected-1}handleCancel(e){e.preventDefault(),this.props.onCancel(this.props.pins[this.getSelectedIndex()])}handleSelected(e){e.preventDefault(),this.props.onSelected(this.props.pins[this.getSelectedIndex()])}handleMoveNext(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.max(this.props.selected-1,0);s!=this.props.selected&&this.props.setSelected(s)}handleMovePrev(e,t){t||e.preventDefault(),e.stopPropagation();const s=Math.min(this.props.selected+1,(this.props.pins||[]).length-1);s!=this.props.selected&&this.props.setSelected(s)}handleTouchEventStart(e){1==e.touches.length&&(this.touchX=e.touches[0].clientX,this.touchY=e.touches[0].clientY)}handleTouchEventEnd(e){if(null===this.touchX||1!=e.changedTouches.length)return void(this.touchX=null);const t=this.touchX-e.changedTouches[0].clientX,s=this.touchY-e.changedTouches[0].clientY;this.touchX=null,Math.abs(t)>Math.abs(s)||Math.abs(s)<39||(s>0?this.handleMovePrev(e,!0):this.handleMoveNext(e,!0))}handleTouchCancel(){this.touchX=null}render(){const e=this.getSelectedIndex();let t=(this.props.messages||[])[e];t=t?t._deleted?(0,h.jsxDEV)("i",{className:"gray",children:this.props.intl.formatMessage(F.message_deleted)},void 0,!1):o.Drafty.format(t.content,v.TU,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):(0,h.jsxDEV)("i",{className:"gray",children:this.props.intl.formatMessage(F.message_not_found)},void 0,!1);const s=[];return this.props.pins.forEach(t=>{const i=s.length==e?"adot":"dot";s.push((0,h.jsxDEV)("div",{className:i},t,!1))}),(0,h.jsxDEV)("div",{id:"pinned-wrapper",ref:this.touchSurface,children:[this.props.isAdmin?(0,h.jsxDEV)("div",{className:"cancel",children:(0,h.jsxDEV)("a",{href:"#",onClick:this.handleCancel,children:(0,h.jsxDEV)("i",{className:"material-icons gray",children:"close"},void 0,!1)},void 0,!1)},void 0,!1):(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)("i",{className:"material-icons gray",children:"push_pin"},void 0,!1)},void 0,!1),(0,h.jsxDEV)("div",{className:"pinned-scroll",children:s},void 0,!1),(0,h.jsxDEV)("div",{className:"pinned",onClick:this.handleSelected,children:(0,h.jsxDEV)("p",{children:t},void 0,!1)},void 0,!1),(0,h.jsxDEV)("div",{className:"pinned-menu",children:[(0,h.jsxDEV)("span",{className:"menuTrigger upper",children:e>0?(0,h.jsxDEV)("a",{href:"#",onClick:this.handleMovePrev,children:(0,h.jsxDEV)("i",{className:"material-icons",children:"expand_less"},void 0,!1)},void 0,!1):null},void 0,!1),(0,h.jsxDEV)("span",{className:"menuTrigger lower",children:this.props.selected>0?(0,h.jsxDEV)("a",{href:"#",onClick:this.handleMoveNext,children:(0,h.jsxDEV)("i",{className:"material-icons",children:"expand_more"},void 0,!1)},void 0,!1):null},void 0,!1)]},void 0,!0)]},void 0,!0)}}var j=(0,n.injectIntl)(P),T=s(1725);const R=a().lazy(e=>s.e(836).then(s.bind(s,6836))),k=a().lazy(e=>s.e(472).then(s.bind(s,4472))),N=a().lazy(e=>s.e(889).then(s.bind(s,8889))),I=a().lazy(e=>Promise.all([s.e(892),s.e(942)]).then(s.bind(s,8942))),L=a().lazy(e=>s.e(371).then(s.bind(s,6371))),U=(0,n.defineMessages)({online_now:{id:"online_now",defaultMessage:"online now",description:"Indicator that the user or topic is currently online"},last_seen:{id:"last_seen_timestamp",defaultMessage:"Last seen: {timestamp}",description:"Label for the timestamp of when the user or topic was last online"},not_found:{id:"title_not_found",defaultMessage:"Not found",description:"Title shown when topic is not found"},channel:{id:"channel",defaultMessage:"channel",description:"Subtitle shown for channels in MessagesView instead of last seen"},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:"The file size {size} exceeds the {limit} limit.",description:"Error message when attachment is too large"},invalid_content:{id:"invalid_content",defaultMessage:"invalid content",description:"Shown when the message is unreadable"},editing_message:{id:"editing_message",defaultMessage:"Editing",description:"Title over message editing preview"},drag_file:{id:"drag_file",defaultMessage:"Drag file here",description:"Prompt on the file drag-n-drop overlay banner"},self_topic_name:{id:"self_topic_name",defaultMessage:"Saved messages",description:"Name of self topic for UI"},subscriber_count:{id:"subscriber_count",defaultMessage:"{count, plural, one {{count, number} subscriber} two {{count, number} subscribers} three {{count, number} subscribers} few {{count, number} subscribers} many {{count, number} subscribers} other {{count, number} subscribers}}",description:"Count of channel subscribers"},member_count:{id:"member_count",defaultMessage:"{count, plural, one {{count, number} member} two {{count, number} members} three {{count, number} members} few {{count, number} members} many {{count, number} members} other {{count, number} members}}",description:"Count of group topic members"},cannot_parse_vcard:{id:"cannot_parse_vcard",defaultMessage:"Cannot parse vCard file.",description:"Error message when vCard file cannot be parsed"}});function z(e){if(e){const t=e.getExcessive()||"";return e.isJoiner("given")&&(t.includes("R")||t.includes("W"))}return!1}function q(e){if(e){const t=e.getMissing()||"";return e.isJoiner("want")&&(t.includes("R")||t.includes("W"))}return!1}function B(e){return 1==e||3==e}class O extends a().Component{constructor(e){super(e),this.state=O.getDerivedStateFromProps(e,{}),this.componentSetup=this.componentSetup.bind(this),this.leave=this.leave.bind(this),this.sendMessage=this.sendMessage.bind(this),this.retrySend=this.retrySend.bind(this),this.sendImageAttachment=this.sendImageAttachment.bind(this),this.sendVideoAttachment=this.sendVideoAttachment.bind(this),this.sendFileAttachment=this.sendFileAttachment.bind(this),this.sendAudioAttachment=this.sendAudioAttachment.bind(this),this.sendTheCardAttachment=this.sendTheCardAttachment.bind(this),this.sendKeyPress=this.sendKeyPress.bind(this),this.subscribe=this.subscribe.bind(this),this.handleScrollReference=this.handleScrollReference.bind(this),this.mountDnDEvents=this.mountDnDEvents.bind(this),this.handleScrollEvent=this.handleScrollEvent.bind(this),this.handleDescChange=this.handleDescChange.bind(this),this.handleSubsUpdated=this.handleSubsUpdated.bind(this),this.handleMessageUpdate=this.handleMessageUpdate.bind(this),this.handleAuxUpdate=this.handleAuxUpdate.bind(this),this.handleAllMessagesReceived=this.handleAllMessagesReceived.bind(this),this.handleInfoReceipt=this.handleInfoReceipt.bind(this),this.handleExpandMedia=this.handleExpandMedia.bind(this),this.handleClosePreview=this.handleClosePreview.bind(this),this.handleCallPanelToggle=this.handleCallPanelToggle.bind(this),this.handleFormResponse=this.handleFormResponse.bind(this),this.handleContextClick=this.handleContextClick.bind(this),this.handleShowMessageContextMenu=this.handleShowMessageContextMenu.bind(this),this.handleNewChatAcceptance=this.handleNewChatAcceptance.bind(this),this.handleEnablePeer=this.handleEnablePeer.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachImageOrVideo=this.handleAttachImageOrVideo.bind(this),this.handleCancelUpload=this.handleCancelUpload.bind(this),this.postReadNotification=this.postReadNotification.bind(this),this.clearNotificationQueue=this.clearNotificationQueue.bind(this),this.goToLatestMessage=this.goToLatestMessage.bind(this),this.handleFileDrop=this.handleFileDrop.bind(this),this.handlePickReply=this.handlePickReply.bind(this),this.handleEditMessage=this.handleEditMessage.bind(this),this.handleCancelReply=this.handleCancelReply.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.handleUnpinMessage=this.handleUnpinMessage.bind(this),this.handleCallHangup=this.handleCallHangup.bind(this),this.isDragEnabled=this.isDragEnabled.bind(this),this.handleDragStart=this.handleDragStart.bind(this),this.handleDragIn=this.handleDragIn.bind(this),this.handleDragOut=this.handleDragOut.bind(this),this.handleDrag=this.handleDrag.bind(this),this.handleDrop=this.handleDrop.bind(this),this.chatMessageRefs=[],this.getOrCreateMessageRef=this.getOrCreateMessageRef.bind(this),this.getVisibleMessageRange=this.getVisibleMessageRange.bind(this),this.dragCounter=0,this.dndRef=null,this.readNotificationQueue=[],this.readNotificationTimer=null,this.keyPressTimer=null}getOrCreateMessageRef(e){if(this.chatMessageRefs[e])return this.chatMessageRefs[e];const t=a().createRef();return this.chatMessageRefs[e]=t,t}getVisibleMessageRange(e){let t=Number.MAX_SAFE_INTEGER,s=-1,i=!1;return this.chatMessageRefs.every((a,n)=>{if(a.current){const{top:o,bottom:r,height:d}=a.current.getBoundingClientRect();if(o<=e.top?e.top-o<=d:r-e.bottom<=d)i=!0,t=Math.min(t,n),s=Math.max(s,n);else if(i)return!1}return!0}),s>=t?{min:t,max:s}:{min:0,max:0}}componentDidMount(){this.messagesScroller&&this.messagesScroller.addEventListener("scroll",this.handleScrollEvent),this.mountDnDEvents(this.dndRef),this.componentSetup({},{})}componentWillUnmount(){this.messagesScroller&&this.messagesScroller.removeEventListener("scroll",this.handleScrollEvent),this.clearNotificationQueue(),this.dndRef&&(this.dndRef.removeEventListener("dragstart",this.handleDragStart),this.dndRef.removeEventListener("dragenter",this.handleDragIn),this.dndRef.removeEventListener("dragleave",this.handleDragOut),this.dndRef.removeEventListener("dragover",this.handleDrag),this.dndRef.removeEventListener("drop",this.handleDrop))}componentDidUpdate(e,t){!this.messagesScroller||t.topic==this.state.topic&&t.maxSeqId==this.state.maxSeqId&&t.minSeqId==this.state.minSeqId||this.state.scrollPosition<100&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight),this.props.applicationVisible?this.postReadNotification(0):this.clearNotificationQueue(),this.componentSetup(e,t)}componentSetup(e,t){const s=this.props.tinode?this.props.tinode.getTopic(this.state.topic):void 0;if(this.state.topic!=t.topic&&(t.topic&&!o.Tinode.isNewGroupTopicName(t.topic)&&(this.leave(t.topic),t.rtcPanel&&this.handleCallHangup(t.topic,e.callSeq)),s&&(s.onData=this.handleMessageUpdate,s.onAllMessagesReceived=this.handleAllMessagesReceived,s.onInfo=this.handleInfoReceipt,s.onMetaDesc=this.handleDescChange,s.onSubsUpdated=this.handleSubsUpdated,s.onPres=this.handleSubsUpdated,s.onAuxUpdated=this.handleAuxUpdate)),s)if(this.state.topic!=t.topic||this.props.myUserId&&!e.myUserId){const e=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;s.isP2PType()&&e?s.getMeta(s.startMetaQuery().withDesc().build()):this.props.myUserId&&this.subscribe(s)}else s.isSubscribed()&&this.state.isReader&&!t.isReader?s.getMeta(s.startMetaQuery().withLaterData().build()):s.isSubscribed()||!this.props.ready||e.ready||this.subscribe(s)}static getDerivedStateFromProps(e,t){let s={};if(e.topic)if(e.topic!=t.topic){const i=e.tinode.getTopic(e.topic);if(s={topic:e.topic,deleted:i._deleted,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,showGoToLastButton:!1,contentToEdit:null,dragging:!1,selectedPin:0},e.forwardMessage)if(e.forwardMessage.content){const t=e.forwardMessage.content,i=t?.length||t?.size||0;s.docPreview={object:t,type:e.forwardMessage.type,size:i}}else s.reply={content:e.forwardMessage.preview,seq:null};else s.reply=null;if(i){const a=[];e.connected&&i.subscribers(t=>{t.online&&t.user!=e.myUserId&&a.push(t)}),Object.assign(s,{onlineSubs:a}),i.isSelfType()?Object.assign(s,{title:e.intl.formatMessage(U.self_topic_name),avatar:!0}):i.public?Object.assign(s,{title:i.public.fn,avatar:(0,x.to)(i.public.photo)}):Object.assign(s,{title:"",avatar:null});const n=i.p2pPeerDesc();n?Object.assign(s,{peerMessagingDisabled:q(n.acs)}):t.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),Object.assign(s,{minSeqId:i.minMsgSeq(),maxSeqId:i.maxMsgSeq(),latestClearId:i.maxClearId(),channel:i.isChannelType(),pins:(i.aux("pins")||[]).slice(),pinsLoaded:!1}),e.callTopic==i.name&&B(e.callState)&&(s.rtcPanel=e.callTopic)}else Object.assign(s,{minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],title:"",avatar:null,peerMessagingDisabled:!1,channel:!1,pins:[],pinsLoaded:!1})}else e.callTopic==t.topic&&!t.rtcPanel&&B(e.callState)&&(s.rtcPanel=e.callTopic);else s={minSeqId:-1,maxSeqId:-1,latestClearId:-1,onlineSubs:[],topic:null,title:"",avatar:null,isVerified:!1,isStaff:!1,isDangerous:!1,deleted:!1,docPreview:null,imagePreview:null,imagePostview:null,videoPreview:null,videoPostview:null,rtcPanel:null,minimizedCallPanel:!1,typingIndicator:!1,scrollPosition:0,fetchingMessages:!1,peerMessagingDisabled:!1,channel:!1,reply:null,contentToEdit:null,showGoToLastButton:!1,dragging:!1,pins:[],pinsLoaded:!1,selectedPin:0,subsVersion:0};return e.acs?(e.acs.isWriter()!=t.isWriter&&(s.isWriter=!t.isWriter),e.acs.isReader()!=t.isReader&&(s.isReader=!t.isReader),e.acs.isAdmin()!=t.isAdmin&&(s.isAdmin=!t.isAdmin),!e.acs.isReader("given")!=t.readingBlocked&&(s.readingBlocked=!t.readingBlocked),e.acs.isSharer()!=t.isSharer&&(s.isSharer=!t.isSharer)):(t.isWriter&&(s.isWriter=!1),t.isReader&&(s.isReader=!1),t.isAdmin&&(s.isAdmin=!1),t.readingBlocked||(t.readingBlocked=!0),t.isSharer&&(s.isSharer=!1)),z(e.acs)==!t.unconformed&&(s.unconfirmed=!t.unconformed),!e.connected&&t.onlineSubs&&t.onlineSubs.length>0&&(s.onlineSubs=[]),s}subscribe(e){if(e.isSubscribed()||!this.props.ready)return;const t=this.props.newTopicParams&&this.props.newTopicParams._topicName==this.props.topic;let s=e.startMetaQuery().withLaterDesc().withLaterSub().withAux();(this.state.isReader||t)&&(s=s.withLaterData(24),this.state.isReader&&(s=s.withLaterDel()),this.setState({fetchingMessages:!0}));const i=t?this.props.newTopicParams:void 0;e.subscribe(s.build(),i).then(t=>{if(303==t.code)return void f.A.navigateTo(f.A.setUrlTopic("",t.params.topic));this.state.topic!=t.topic&&this.setState({topic:t.topic}),this.state.deleted&&this.setState({deleted:!1}),this.props.onNewTopicCreated(this.props.topic,t.topic);let s=[];e.queuedMessages(t=>{t._sending||(t._fatal||t.head&&t.head.webrtc?s.push(t.seq):e.isSubscribed()&&this.retrySend(t))}),s.length>0&&e.delMessagesList(s,!0)}).catch(e=>{console.error("Failed subscription to",this.state.topic,e),this.props.onError(e.message,"err");const t=O.getDerivedStateFromProps({},{});t.title=this.props.intl.formatMessage(U.not_found),this.setState(t)})}leave(e){if(!e||!this.props.tinode.isTopicCached(e))return;const t=this.props.tinode.getTopic(e);t&&t.isSubscribed()&&t.leave(!1).catch(e=>{}).finally(e=>{this.setState({fetchingMessages:!1}),t.onData=void 0,t.onAllMessagesReceived=void 0,t.onInfo=void 0,t.onMetaDesc=void 0,t.onSubsUpdated=void 0,t.onPres=void 0,t.onAuxUpdated=void 0})}handleScrollReference(e){e&&(e.addEventListener("scroll",this.handleScrollEvent),this.messagesScroller=e,this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)}handleScrollEvent(e){const t=e.target.scrollHeight-e.target.scrollTop-e.target.offsetHeight;if(this.setState({scrollPosition:t,showGoToLastButton:t>100&&t0&&this.setState({fetchingMessages:!0},e=>{t.getMessagesPage(24,a,s,i).catch(e=>this.props.onError(e.message,"err")).finally(e=>this.setState({fetchingMessages:!1}))})}}this.processingScrollEvent=!1}}mountDnDEvents(e){e&&(e.addEventListener("dragstart",this.handleDragStart),e.addEventListener("dragenter",this.handleDragIn),e.addEventListener("dragleave",this.handleDragOut),e.addEventListener("dragover",this.handleDrag),e.addEventListener("drop",this.handleDrop),this.dndRef=e)}goToLatestMessage(){this.setState({scrollPosition:0}),this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.messagesScroller.offsetHeight)}handleDescChange(e){o.Tinode.isSelfTopicName(this.props.topic)?this.setState({title:this.props.intl.formatMessage(U.self_topic_name),avatar:!0}):e.public?this.setState({title:e.public.fn,avatar:(0,x.to)(e.public.photo)}):this.setState({title:"",avatar:null}),e.acs&&this.setState({isWriter:e.acs.isWriter(),isReader:e.acs.isReader(),isAdmin:e.acs.isAdmin(),readingBlocked:!e.acs.isReader("given"),unconfirmed:z(e.acs)})}postReadNotification(e){if(!this.props.applicationVisible||!this.state.topic)return;this.readNotificationTimer||(this.readNotificationTimer=setInterval(e=>{if(0==this.readNotificationQueue.length)return clearInterval(this.readNotificationTimer),void(this.readNotificationTimer=null);let t=-1;for(;this.readNotificationQueue.length>0;){const e=this.readNotificationQueue[0];if(e.topicName!=this.state.topic){this.readNotificationQueue.shift();continue}const s=new Date;if(!(e.sendAt<=s))break;this.readNotificationQueue.shift(),(0==e.seq||o.Tinode.isServerAssignedSeq(e.seq))&&(t=Math.max(t,e.seq))}if(t>=0){const e=this.props.tinode.getTopic(this.state.topic);if(e)try{e.noteRead(t)}catch(e){console.error("Failed to send read notification",e)}}},300));const t=new Date;this.readNotificationQueue.push({topicName:this.state.topic,seq:e,sendAt:t.setMilliseconds(t.getMilliseconds()+1500)})}clearNotificationQueue(){this.readNotificationQueue=[],this.readNotificationTimer&&(clearInterval(this.readNotificationTimer),this.readNotificationTimer=null)}handleSubsUpdated(){if(this.state.topic){const e=[],t=this.props.tinode.getTopic(this.state.topic);t.subscribers(t=>{t.online&&t.user!=this.props.myUserId&&e.push(t)});const s={onlineSubs:e,subsVersion:this.state.subsVersion+1},i=t.p2pPeerDesc();i?Object.assign(s,{peerMessagingDisabled:q(i.acs)}):this.state.peerMessagingDisabled&&Object.assign(s,{peerMessagingDisabled:!1}),this.setState(s)}}handleMessageUpdate(e){if(!this.state.topic)return;const t=this.props.tinode.getTopic(this.state.topic);e?(clearTimeout(this.keyPressTimer),this.setState({maxSeqId:t.maxMsgSeq(),minSeqId:t.minMsgSeq(),typingIndicator:!1},s=>{t.isNewMessage(e.seq)?this.state.scrollPosition>100?this.setState({showGoToLastButton:!0}):this.goToLatestMessage():this.messagesScroller&&(this.messagesScroller.scrollTop=this.messagesScroller.scrollHeight-this.state.scrollPosition-this.messagesScroller.offsetHeight)}),t.msgStatus(e,!0)>=o.Tinode.MESSAGE_STATUS_SENT&&e.from!=this.props.myUserId&&this.postReadNotification(e.seq)):this.setState({latestClearId:t.maxClearId()})}handleAllMessagesReceived(e){if(this.setState({fetchingMessages:!1}),!e){const e=this.props.tinode.getTopic(this.state.topic);return void(e&&this.postReadNotification(e.seq))}if(this.state.pinsLoaded)this.setState({pinsLoaded:!1});else{const e=this.props.tinode.getTopic(this.state.topic);this.setState({pinsLoaded:!0},t=>{e.getPinnedMessages()})}}handleAuxUpdate(e){const t=(e.pins||[]).slice();let s=this.state.selectedPin;t.length>this.state.pins.length?s=0:s>=t.length&&(s=Math.max(0,t.length-1)),this.setState({pins:t,selectedPin:s})}handleInfoReceipt(e){switch(e.what){case"kp":clearTimeout(this.keyPressTimer),this.keyPressTimer=setTimeout(e=>this.setState({typingIndicator:!1}),4e3),this.state.typingIndicator||this.setState({typingIndicator:!0});break;case"read":case"recv":this.forceUpdate();break;default:console.info("Other change in topic: ",e.what)}}handleExpandMedia(e){e&&(e.video?this.setState({videoPostview:e}):this.setState({imagePostview:e}))}handleClosePreview(){this.state.imagePreview&&this.state.imagePreview.url&&URL.revokeObjectURL(this.state.imagePreview.url),this.state.videoPreview&&this.state.videoPreview.url&&URL.revokeObjectURL(this.state.videoPreview.url),this.setState({imagePostview:null,imagePreview:null,docPreview:null,videoPreview:null,videoPostview:null}),this.props.onCancelForwardMessage()}handleFormResponse(e,t,s){if("pub"==e)this.sendMessage(o.Drafty.attachJSON(o.Drafty.parse(t),s));else if("url"==e){const e=new URL(s.ref),t=e.searchParams;for(let e in s.resp)s.resp.hasOwnProperty(e)&&t.set(e,s.resp[e]);["name","seq"].forEach(e=>{s[e]&&t.set(e,s[e])}),t.set("uid",this.props.myUserId),t.set("topic",this.state.topic),e.search=t,window.open(e,"_blank")}else console.info("Unknown action in form",e)}handleContextClick(e){e.preventDefault(),e.stopPropagation(),this.props.showContextMenu({topicName:this.state.topic,y:e.pageY,x:e.pageX})}handleShowMessageContextMenu(e,t){"chan"==e.userFrom&&(e.userFrom=this.state.topic,e.userName=this.state.title),e.topicName=this.state.topic;const s=t||[],i=this.props.tinode.getTopic(e.topicName);if(i)if(i.isSelfType())s.push("message_delete_generic");else{i.isChannelType()||s.push("message_delete");const t=i.getAccessMode();if(t&&t.isDeleter()){let i=t.isOwner();if(!i){const t=0|this.props.tinode.getServerParam(o.Tinode.MSG_DELETE_AGE,0);i=0==t||!!(t>0&&e.timestamp)&&e.timestamp.getTime()>(new Date).getTime()-1e3*t}i&&s.push("message_delete_hard")}}this.props.showContextMenu(e,s)}handleNewChatAcceptance(e){this.props.onNewChat(this.state.topic,e)}handleEnablePeer(e){e.preventDefault(),this.props.onChangePermissions(this.state.topic,"JRWPS",this.state.topic)}sendKeyPress(e){const t=this.props.tinode.getTopic(this.state.topic);t.isSubscribed()&&(e?t.noteRecording(!0):t.noteKeyPress())}sendMessage(e,t,s){let i;if(!e&&this.props.forwardMessage)e=this.props.forwardMessage.msg,i=this.props.forwardMessage.head,this.handleCancelReply();else if(this.state.reply){if(this.state.reply.editing){if(e==this.state.contentToEdit)return void this.handleCancelReply();i={replace:":"+this.state.reply.seq}}else this.state.reply.content&&(i={reply:""+this.state.reply.seq},"string"==typeof e&&(e=o.Drafty.parse(e)),e=o.Drafty.append(o.Drafty.sanitizeEntities(this.state.reply.content),e));this.handleCancelReply()}this.props.sendMessage(e,t,s,i)}retrySend(e){this.props.sendMessage(e.content,void 0,void 0,e.head).then(t=>{this.props.tinode.getTopic(this.state.topic).delMessagesList([e.seq],!0)})}sendFileAttachment(e){const t=.75*this.props.tinode.getServerParam("maxMessageSize",262144)-1024|0;if((o.TheCard.isFileSupported(e.type,e.name)||e.type==o.TheCard.contentType)&&this.sendTheCardAttachment(e,t))return;const s=e=>e===y.Uv?"application/octet-stream":e;if(e.size>t){const t=this.props.tinode.getLargeFileHelper();if(!t)return void this.props.onError(this.props.intl.formatMessage(U.cannot_initiate_upload));const i=t.upload(e),a=o.Drafty.attachFile(null,{mime:s(e.type),filename:e.name,size:e.size,urlPromise:i});this.sendMessage(a,i,t)}else(0,x.bB)(e).then(t=>this.sendMessage(o.Drafty.attachFile(null,{mime:s(t.mime),data:t.bits,filename:t.name,size:e.size}))).catch(e=>this.props.onError(e.message,"err"))}sendTheCardAttachment(e,t){return!(e.size>t||(e.type==o.TheCard.contentType?(this.sendMessage(o.Drafty.appendTheCard(null,e.object)),0):((0,x.QJ)(e).then(e=>{this.sendMessage(o.Drafty.appendTheCard(null,e))}).catch(e=>{this.props.onError(this.props.intl.formatMessage(U.cannot_parse_vcard,{error:e.message}),"err")}),0)))}handleAttachFile(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",y.qy);e.size>t?this.props.onError(this.props.intl.formatMessage(U.file_attachment_too_large,{size:(0,d.lX)(e.size),limit:(0,d.lX)(t)}),"err"):this.setState({docPreview:{file:e,name:e.name,size:e.size,type:e.type}})}handleCallHangup(e,t){this.props.onVideoCallClosed(),this.setState({rtcPanel:null}),this.props.onCallHangup(e,t)}handleCallPanelToggle(){this.setState({minimizedCallPanel:!this.state.minimizedCallPanel})}sendImageAttachment(e,t){const s=this.state.imagePreview.mime,i=this.state.imagePreview.width,a=this.state.imagePreview.height,n=this.state.imagePreview.filename,r=.75*this.props.tinode.getServerParam("maxMessageSize",262144)-1024|0;if(t.size>r){const r=this.props.tinode.getLargeFileHelper();if(!r)return void this.props.onError(this.props.intl.formatMessage(U.cannot_initiate_upload));const d=r.upload(t);return void(0,x.ag)(t,64,64,-1,!1).then(e=>(0,x.Sk)(e.blob)).then(l=>{let h=o.Drafty.insertImage(null,0,{mime:s,_tempPreview:l.bits,bits:l.bits,width:i,height:a,filename:n,size:t.size,urlPromise:d});e&&(h=o.Drafty.appendLineBreak(h),h=o.Drafty.append(h,o.Drafty.parse(e))),this.sendMessage(h,d,r)}).catch(e=>this.props.onError(e,"err"))}(0,x.Sk)(t).then(s=>{let r=o.Drafty.insertImage(null,0,{mime:s.mime,bits:s.bits,width:i,height:a,filename:n,size:t.size});e&&(r=o.Drafty.appendLineBreak(r),r=o.Drafty.append(r,o.Drafty.parse(e))),this.sendMessage(r)})}sendVideoAttachment(e,t,s,i){const a=i.width,n=i.height,r=.75*this.props.tinode.getServerParam("maxMessageSize",262144)-1024|0,d=[];let l;if(t.size+s.size>r){if(l=this.props.tinode.getLargeFileHelper(),!l)return void this.props.onError(this.props.intl.formatMessage(U.cannot_initiate_upload));d[0]=t.size>.675*r?l.upload(t):null,d[1]=s.size>.275*r?l.upload(s):null}if(0==d.length)return void Promise.all([(0,x.Sk)(t),(0,x.Sk)(s)]).then(s=>{const[r,d]=s;let l=o.Drafty.insertVideo(null,0,{mime:r.mime,bits:r.bits,preview:d.bits,premime:d.mime,width:a,height:n,duration:i.duration,filename:i.name,size:t.size});e&&(l=o.Drafty.appendLineBreak(l),l=o.Drafty.append(l,o.Drafty.parse(e))),this.sendMessage(l)});const h=Promise.all(d),c=[];c[0]=d[0]?null:(0,x.Sk)(t),c[1]=d[1]?null:(0,x.ag)(s,1024,1024,-1,!1).then(e=>(0,x.Sk)(e.blob)),c[2]=(0,x.ag)(s,96,96,-1,!1).then(e=>(0,x.Sk)(e.blob)),Promise.all(c).then(s=>{const[r,d,c]=s;let p=o.Drafty.insertVideo(null,0,{mime:i.mime,bits:r?r.bits:null,_tempPreview:c.bits,preview:d?d.bits:c.bits,premime:d?d.mime:c.mime,width:a,height:n,duration:i.duration,filename:i.name,size:t.size,urlPromise:h});e&&(p=o.Drafty.appendLineBreak(p),p=o.Drafty.append(p,o.Drafty.parse(e))),this.sendMessage(p,h,l)}).catch(e=>this.props.onError(e.message,"err"))}handleAttachImageOrVideo(e){const t=this.props.tinode.getServerParam("maxFileUploadSize",y.qy);e.type.startsWith("video/")?this.setState({videoPreview:{url:URL.createObjectURL(e),blob:e,filename:e.name,size:e.size,mime:e.type}}):(0,x.ag)(e,1024,1024,t,!1).then(e=>{this.setState({imagePreview:{url:URL.createObjectURL(e.blob),blob:e.blob,filename:e.name,width:e.width,height:e.height,size:e.blob.size,mime:e.mime}})}).catch(e=>{this.props.onError(e.message,"err")})}handleFileDrop(e){if(!e||0==e.length)return;const t=e[0];t.type&&t.type.startsWith("image/")?this.handleAttachImageOrVideo(t):this.handleAttachFile(t)}sendAudioAttachment(e,t,s){fetch(e).then(e=>e.blob()).then(e=>{const i=.75*this.props.tinode.getServerParam("maxMessageSize",262144)-1024;if(e.size>i){const i=this.props.tinode.getLargeFileHelper();if(!i)return void this.props.onError(this.props.intl.formatMessage(U.cannot_initiate_upload));const a=i.upload(e),n=o.Drafty.appendAudio(null,{mime:e.type,size:e.size,duration:s,preview:t,urlPromise:a});this.sendMessage(n,a,i)}else(0,x.Sk)(e).then(i=>{this.sendMessage(o.Drafty.appendAudio(null,{mime:i.mime,bits:i.bits,size:e.size,duration:s,preview:t}))})}).catch(e=>{this.props.onError(e.message,"err")})}handleCancelUpload(e,t){const s=this.props.tinode.getTopic(this.state.topic).findMessage(e);s&&(s._cancelled=!0),t.cancel()}handlePickReply(e,t,s,i){e&&t?(t="string"==typeof t?o.Drafty.init(t):t,t=o.Drafty.isValid(t)?o.Drafty.replyContent(t,30):o.Drafty.append(o.Drafty.init("⚠ "),o.Drafty.wrapInto(this.props.intl.formatMessage(U.invalid_content),"EM")),this.setState({reply:{content:o.Drafty.quote(i,s,t),seq:e}}),this.props.onCancelForwardMessage()):this.setState({reply:null})}handleEditMessage(e,t){if(!e||!t)return void this.setState({reply:null});t="string"==typeof t?o.Drafty.init(t):t;const s=o.Drafty.toMarkdown(t);t=o.Drafty.isValid(t)?o.Drafty.replyContent(t,48):o.Drafty.append(o.Drafty.init("⚠ "),o.Drafty.wrapInto(this.props.intl.formatMessage(U.invalid_content),"EM")),this.setState({reply:{content:o.Drafty.quote(this.props.intl.formatMessage(U.editing_message),null,t),seq:e,editing:!0},contentToEdit:s}),this.props.onCancelForwardMessage()}handleCancelReply(){this.setState({reply:null,contentToEdit:null}),this.props.onCancelForwardMessage()}handleQuoteClick(e){const t=this.getOrCreateMessageRef(e);t&&t.current?(t.current.scrollIntoView({block:"center",behavior:"smooth"}),t.current.classList.add("flash"),setTimeout(e=>{t.current.classList.remove("flash")},1e3)):console.error("Unresolved message ref",e)}handleUnpinMessage(e){this.props.tinode.getTopic(this.state.topic).pinMessage(e,!1)}isDragEnabled(){return this.state.isWriter&&!this.state.unconfirmed&&!this.props.forwardMessage&&!this.state.peerMessagingDisabled}handleDragStart(e){e.preventDefault(),e.stopPropagation(),e.dataTransfer.clearData()}handleDragIn(e){e.preventDefault(),e.stopPropagation(),this.dragCounter++,e.dataTransfer.items&&e.dataTransfer.items.length>0&&this.setState({dragging:!0})}handleDragOut(e){e.preventDefault(),e.stopPropagation(),this.dragCounter--,this.dragCounter<=0&&this.setState({dragging:!1})}handleDrag(e){e.preventDefault(),e.stopPropagation()}handleDrop(e){e.preventDefault(),e.stopPropagation(),this.setState({dragging:!1}),this.isDragEnabled()&&e.dataTransfer.files&&e.dataTransfer.files.length>0&&(this.handleFileDrop(e.dataTransfer.files),this.dragCounter=0)}render(){const{formatMessage:e}=this.props.intl,t=this.state.rtcPanel&&(0,h.jsxDEV)(i.Suspense,{fallback:(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,h.jsxDEV)(R,{topic:this.state.topic,seq:this.props.callSeq,callState:this.props.callState,callAudioOnly:this.props.callAudioOnly,tinode:this.props.tinode,title:this.state.title,avatar:this.state.avatar||!0,minimized:this.state.minimizedCallPanel,onError:this.props.onError,onHangup:this.handleCallHangup,onToggleMinimize:this.handleCallPanelToggle,onInvite:this.props.onCallInvite,onSendOffer:this.props.onCallSendOffer,onIceCandidate:this.props.onCallIceCandidate,onSendAnswer:this.props.onCallSendAnswer},void 0,!1)},void 0,!1);let s;if(this.state.topic){let a;if(this.state.imagePreview)a=(0,h.jsxDEV)(i.Suspense,{fallback:(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,h.jsxDEV)(N,{content:this.state.imagePreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendImageAttachment},void 0,!1)},void 0,!1);else if(this.state.videoPreview)a=(0,h.jsxDEV)(i.Suspense,{fallback:(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,h.jsxDEV)(L,{content:this.state.videoPreview,tinode:this.props.tinode,reply:this.state.reply,onError:this.props.onError,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendVideoAttachment},void 0,!1)},void 0,!1);else if(this.state.imagePostview)a=(0,h.jsxDEV)(i.Suspense,{fallback:(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,h.jsxDEV)(N,{content:this.state.imagePostview,onClose:this.handleClosePreview},void 0,!1)},void 0,!1);else if(this.state.videoPostview)a=(0,h.jsxDEV)(i.Suspense,{fallback:(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,h.jsxDEV)(L,{content:this.state.videoPostview,tinode:this.props.tinode,onError:this.props.onError,onClose:this.handleClosePreview},void 0,!1)},void 0,!1);else if(this.state.docPreview)a=o.TheCard.isFileSupported(this.state.docPreview.type,this.state.docPreview.name)||this.state.docPreview.type==o.TheCard.contentType?(0,h.jsxDEV)(i.Suspense,{fallback:(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,h.jsxDEV)(I,{content:this.state.docPreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendFileAttachment},void 0,!1)},void 0,!1):(0,h.jsxDEV)(i.Suspense,{fallback:(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,h.jsxDEV)(k,{content:this.state.docPreview,tinode:this.props.tinode,reply:this.state.reply,onCancelReply:this.handleCancelReply,onClose:this.handleClosePreview,onSendMessage:this.sendFileAttachment},void 0,!1)},void 0,!1);else{const t=this.props.tinode.getTopic(this.state.topic),s=t.isChannelType()||t.chan,i=t.isGroupType()&&!s,r=[];t.trusted&&(t.trusted.verified&&r.push({icon:"verified",color:"badge-inv"}),t.trusted.staff&&r.push({icon:"staff",color:"badge-inv"}),t.trusted.danger&&r.push({icon:"dangerous",color:"badge-inv"}));const l=[];this.state.pins.forEach(e=>l.push(t.latestMsgVersion(e)||t.findMessage(e)));const c=[];let u=null,g=null,m=null;t.messages((e,s,a,n)=>{let o=a?a.from||"chan":null,r="single",l=e.from||"chan";l==u?r=l==o?"middle":"last":l==o&&(r="first"),u=l;const p=!(l==this.props.myUserId),v=t.msgStatus(e,!0);let f,b,D=l;const M=t.userDesc(l);M&&M.public&&(f=M.public.fn,b=(0,x.to)(M.public.photo)),m=i?"chat-box group":"chat-box";const S=this.getOrCreateMessageRef(e.seq);let y=e.head?parseInt(e.head.reply):null;if(y&&!isNaN(y)||(y=null),e.hi)c.push((0,h.jsxDEV)(V,{deleted:!0},e.seq,!1));else{const t=new Date(e.ts);g&&g.toDateString()==t.toDateString()||(c.push((0,h.jsxDEV)(V,{date:(0,d.mf)(e.ts),locale:this.props.intl.locale},"date-"+e.seq,!1)),g=t),c.push((0,h.jsxDEV)(E,{tinode:this.props.tinode,topic:this.state.topic,content:e.content,mimeType:e.head&&e.head.mime,replyToSeq:y,edited:e.head&&!e.head.webrtc&&e.head.replace,timestamp:e.ts,response:p,seq:e.seq,isGroup:i,isChan:this.state.channel,userFrom:D,userName:f,userAvatar:b,sequence:r,received:v,uploader:e._uploader,userIsWriter:this.state.isWriter,userIsAdmin:this.state.isAdmin,pinned:this.state.pins.includes(e.seq),viewportWidth:this.props.viewportWidth,showContextMenu:this.handleShowMessageContextMenu,onExpandMedia:this.handleExpandMedia,onFormResponse:this.handleFormResponse,onCancelUpload:this.handleCancelUpload,pickReply:this.handlePickReply,editMessage:this.handleEditMessage,onQuoteClick:this.handleQuoteClick,onAcceptCall:this.props.onAcceptCall,onError:this.props.onError,ref:S},e.seq,!1))}});let v=null;if(s)t.subcnt&&(v=e(U.subscriber_count,{count:t.subcnt}));else{const s=this.props.tinode.getMeTopic().getContact(this.state.topic);s&&(o.Tinode.isP2PTopicName(s.topic)?s.online?v=e(U.online_now):s.seen&&(v=e(U.last_seen,{timestamp:(0,d.cq)(s.seen.when,this.props.intl.locale)})):o.Tinode.isGroupTopicName(s.topic)&&t.subcnt&&(v=e(U.member_count,{count:t.subcnt})))}const f=this.state.avatar||!0,b=this.state.deleted||t.isSelfType()?null:this.props.online?"online"+(this.state.typingIndicator?" typing":""):"offline",D="panel-title"+(this.state.deleted?" deleted":""),y="dark"==this.props.colorSchema?"dark":"";let A=(0,h.jsxDEV)(h.Fragment,{children:[(0,h.jsxDEV)("div",{id:"messages-container",className:y,children:[(0,h.jsxDEV)("button",{id:"go-to-latest",className:"action-button"+(this.state.showGoToLastButton?"":" hidden"),onClick:this.goToLatestMessage,children:(0,h.jsxDEV)("i",{className:"material-icons",children:"arrow_downward"},void 0,!1)},void 0,!1),(0,h.jsxDEV)("div",{id:"messages-panel",ref:this.handleScrollReference,children:(0,h.jsxDEV)("ul",{id:"scroller",className:m,children:c},void 0,!1)},void 0,!1),this.state.isReader?null:(0,h.jsxDEV)("div",{id:"write-only-background",children:this.state.readingBlocked?(0,h.jsxDEV)("div",{id:"write-only-note",children:(0,h.jsxDEV)(n.FormattedMessage,{id:"messages_not_readable",defaultMessage:"no access to messages",description:"Message shown in topic without the read access"},void 0,!1)},void 0,!1):null},void 0,!1)]},void 0,!0),this.state.peerMessagingDisabled&&!this.state.unconfirmed?(0,h.jsxDEV)("div",{id:"peer-messaging-disabled-note",children:[(0,h.jsxDEV)("i",{className:"material-icons secondary",children:"block"},void 0,!1)," ",(0,h.jsxDEV)(n.FormattedMessage,{id:"peers_messaging_disabled",defaultMessage:"Peer's messaging is disabled.",description:"Shown when the p2p peer's messaging is disabled"},void 0,!1)," ",(0,h.jsxDEV)("a",{href:"#",onClick:this.handleEnablePeer,children:(0,h.jsxDEV)(n.FormattedMessage,{id:"enable_peers_messaging",defaultMessage:"Enable",description:"Call to action to enable peer's messaging"},void 0,!1)},void 0,!1),"."]},void 0,!0):null,this.state.unconfirmed?(0,h.jsxDEV)(C,{onAction:this.handleNewChatAcceptance},void 0,!1):(0,h.jsxDEV)(T.A,{tinode:this.props.tinode,topicName:this.state.topic,noInput:!!this.props.forwardMessage,disabled:!this.state.isWriter||this.state.deleted,reply:this.state.reply,initMessage:this.state.contentToEdit,sendOnEnter:this.props.sendOnEnter,onKeyPress:this.sendKeyPress,onRecordingProgress:this.sendKeyPress,onSendMessage:this.sendMessage,onAttachFile:this.props.forwardMessage?null:this.handleAttachFile,onAttachImage:this.props.forwardMessage?null:this.handleAttachImageOrVideo,onAttachAudio:this.props.forwardMessage?null:this.sendAudioAttachment,onError:this.props.onError,onQuoteClick:this.handleQuoteClick,onCancelReply:this.handleCancelReply},void 0,!1)]},void 0,!0);a=(0,h.jsxDEV)(h.Fragment,{children:[(0,h.jsxDEV)("div",{id:"topic-caption-panel",className:"caption-panel",children:[this.props.displayMobile?(0,h.jsxDEV)("a",{href:"#",id:"hide-message-view",onClick:e=>{e.preventDefault(),this.leave(this.state.topic),this.props.onHideMessagesView()},children:(0,h.jsxDEV)("i",{className:"material-icons",children:"arrow_back"},void 0,!1)},void 0,!1):null,(0,h.jsxDEV)("div",{className:"avatar-box",children:[(0,h.jsxDEV)(p.A,{authorizeURL:this.props.tinode.authorizeURL,avatar:f,topic:this.state.topic,title:this.state.title,deleted:this.state.deleted},void 0,!1),s?null:(0,h.jsxDEV)("span",{className:b},void 0,!1)]},void 0,!0),(0,h.jsxDEV)("div",{id:"topic-title-group",children:[(0,h.jsxDEV)("div",{id:"topic-title",className:D,children:[this.state.title||(0,h.jsxDEV)("i",{children:(0,h.jsxDEV)(n.FormattedMessage,{id:"unnamed_topic",defaultMessage:"Unnamed",description:"Title shown when the topic has no name"},void 0,!1)},void 0,!1),(0,h.jsxDEV)(M.A,{badges:r},void 0,!1)]},void 0,!0),(0,h.jsxDEV)("div",{id:"topic-last-seen",children:v},void 0,!1)]},void 0,!0),(0,h.jsxDEV)("div",{style:{marginLeft:"auto"}},void 0,!1),!this.props.displayMobile&&this.state.pins.length>0?(0,h.jsxDEV)(j,{tinode:this.props.tinode,pins:this.state.pins,messages:l,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage},void 0,!1):null,i?(0,h.jsxDEV)(w,{tinode:this.props.tinode,subscribers:this.state.onlineSubs},void 0,!1):null,(0,h.jsxDEV)("div",{children:(0,h.jsxDEV)("a",{href:"#",onClick:this.handleContextClick,children:(0,h.jsxDEV)("i",{className:"material-icons",children:"more_vert"},void 0,!1)},void 0,!1)},void 0,!1)]},void 0,!0),this.props.displayMobile?(0,h.jsxDEV)(h.Fragment,{children:[this.state.pins.length>0?(0,h.jsxDEV)(j,{tinode:this.props.tinode,pins:this.state.pins,messages:l,selected:this.state.selectedPin,isAdmin:this.state.isAdmin,setSelected:e=>this.setState({selectedPin:e}),onSelected:this.handleQuoteClick,onCancel:this.handleUnpinMessage},void 0,!1):null,(0,h.jsxDEV)(S.A,{level:this.props.errorLevel,text:this.props.errorText,onClearError:this.props.onError},void 0,!1)]},void 0,!0):null,(0,h.jsxDEV)(_.A,{show:this.state.fetchingMessages},void 0,!1),A,this.state.dragging&&this.isDragEnabled()?(0,h.jsxDEV)("div",{className:"drag-n-drop",children:e(U.drag_file)},void 0,!1):null]},void 0,!0)}s=(0,h.jsxDEV)("div",{id:"topic-view",ref:this.mountDnDEvents,children:[a,t]},void 0,!0)}else s=(0,h.jsxDEV)(A,{serverVersion:this.props.serverVersion,serverAddress:this.props.serverAddress},void 0,!1);return s}}var Q=(0,n.injectIntl)(O)},1725:function(e,t,s){var i=s(1594),a=s.n(i),n=s(8181),o=s(4532),r=(s(9027),s(6110)),d=s(5791),l=s(5446);const h=a().lazy(e=>Promise.all([s.e(537),s.e(0)]).then(s.bind(s,4e3))),c=(0,n.defineMessages)({messaging_disabled:{id:"messaging_disabled_prompt",defaultMessage:"Messaging disabled",description:"Prompt in SendMessage in read-only topic"},type_new_message:{id:"new_message_prompt",defaultMessage:"New message",description:"Prompt in send message field"},add_image_caption:{id:"image_caption_prompt",defaultMessage:"Image caption",description:"Prompt in SendMessage for attached image"},file_attachment_too_large:{id:"file_attachment_too_large",defaultMessage:"The file size {size} exceeds the {limit} limit.",description:"Error message when attachment is too large"},cannot_initiate_upload:{id:"cannot_initiate_file_upload",defaultMessage:"Cannot initiate file upload.",description:"Generic error messagewhen attachment fails"},icon_title_record_voice:{id:"icon_title_record_voice",defaultMessage:"Record voice message",description:"Icon tool tip for recording a voice message"},icon_title_attach_file:{id:"icon_title_attach_file",defaultMessage:"Attach file",description:"Icon tool tip for attaching a file"},icon_title_add_image:{id:"icon_title_add_image",defaultMessage:"Add image",description:"Icon tool tip for attaching an image"},icon_title_send:{id:"icon_title_send",defaultMessage:"Send message",description:"Icon tool tip for sending a message"}});class p extends a().PureComponent{constructor(e){super(e),this.state={quote:null,message:"",audioRec:!1,audioAvailable:!(!navigator.mediaDevices||!navigator.mediaDevices.getUserMedia)},this.keypressTimestamp=0,this.handlePasteEvent=this.handlePasteEvent.bind(this),this.handleAttachImage=this.handleAttachImage.bind(this),this.handleAttachFile=this.handleAttachFile.bind(this),this.handleAttachAudio=this.handleAttachAudio.bind(this),this.handleSend=this.handleSend.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleMessageTyping=this.handleMessageTyping.bind(this),this.handleDropAttach=this.handleDropAttach.bind(this),this.handleQuoteClick=this.handleQuoteClick.bind(this),this.formatReply=this.formatReply.bind(this)}componentDidMount(){this.messageEditArea&&(this.messageEditArea.addEventListener("paste",this.handlePasteEvent,!1),"all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus()),this.setState({quote:this.formatReply()})}componentWillUnmount(){this.messageEditArea&&this.messageEditArea.removeEventListener("paste",this.handlePasteEvent,!1)}componentDidUpdate(e){if(this.messageEditArea&&("all"==window.getComputedStyle(this.messageEditArea).getPropertyValue("transition-property")&&this.messageEditArea.focus(),this.messageEditArea.style.height="0px",this.messageEditArea.style.height=this.messageEditArea.scrollHeight+"px"),e.topicName!=this.props.topicName)this.setState({message:this.props.initMessage||"",audioRec:!1,quote:null});else if(e.initMessage!=this.props.initMessage){const e=this.props.initMessage||"";this.setState({message:e},t=>{this.messageEditArea.scrollTop=this.messageEditArea.scrollHeight,this.messageEditArea.setSelectionRange(e.length,e.length)})}e.reply!=this.props.reply&&this.setState({quote:this.formatReply()})}formatReply(){return this.props.reply?o.Drafty.format(this.props.reply.content,d.NV,{formatMessage:this.props.intl.formatMessage.bind(this.props.intl),authorizeURL:this.props.tinode.authorizeURL.bind(this.props.tinode)}):null}handlePasteEvent(e){this.props.disabled||(0,r.iJ)(e,e=>{this.props.onAttachImage(e)},e=>{this.props.onAttachFile(e)},this.props.onError)&&e.preventDefault()}handleAttachImage(e){e.target.files&&e.target.files.length>0&&this.props.onAttachImage(e.target.files[0]),e.target.value=""}handleAttachFile(e){e.target.files&&e.target.files.length>0&&this.props.onAttachFile(e.target.files[0]),e.target.value=""}handleDropAttach(e){e&&e.length>0&&this.props.onAttachFile(e[0])}handleAttachAudio(e,t,s){this.setState({audioRec:!1}),this.props.onAttachAudio(e,t,s)}handleSend(e){e.preventDefault();const t=this.state.message.trim();(t||this.props.acceptBlank||this.props.noInput)&&(this.props.onSendMessage(t),this.setState({message:""}))}handleKeyPress(e){if(this.state.audioRec)return e.preventDefault(),void e.stopPropagation();"Enter"===e.key&&("plain"==this.props.sendOnEnter?e.shiftKey||(e.preventDefault(),e.stopPropagation(),this.handleSend(e)):(e.ctrlKey||e.metaKey)&&(e.preventDefault(),e.stopPropagation(),this.handleSend(e)))}handleMessageTyping(e){if(this.setState({message:e.target.value}),this.props.onKeyPress){const e=(new Date).getTime();e-this.keypressTimestamp>3e3&&(this.props.onKeyPress(),this.keypressTimestamp=e)}}handleQuoteClick(e){if(e.preventDefault(),e.stopPropagation(),this.props.reply&&this.props.onQuoteClick){const e=this.props.reply.seq;this.props.onQuoteClick(e)}}render(){const{formatMessage:e}=this.props.intl,t=this.props.disabled?e(c.messaging_disabled):this.props.messagePrompt?e(c[this.props.messagePrompt]):e(c.type_new_message),s=this.props.reply&&this.props.reply.editing?"check_circle":"send",a=this.state.quote?(0,l.jsxDEV)("div",{id:"reply-quote-preview",children:[(0,l.jsxDEV)("div",{className:"cancel",children:(0,l.jsxDEV)("a",{href:"#",onClick:e=>{e.preventDefault(),this.props.onCancelReply()},children:(0,l.jsxDEV)("i",{className:"material-icons gray",children:"close"},void 0,!1)},void 0,!1)},void 0,!1),this.state.quote]},void 0,!0):null,o=this.state.audioAvailable&&this.props.onAttachAudio;return(0,l.jsxDEV)("div",{id:"send-message-wrapper",children:[this.props.noInput?null:a,(0,l.jsxDEV)("div",{id:"send-message-panel",children:this.props.disabled?(0,l.jsxDEV)("div",{id:"writing-disabled",children:t},void 0,!1):(0,l.jsxDEV)(l.Fragment,{children:[this.props.onAttachFile&&!this.state.audioRec?(0,l.jsxDEV)(l.Fragment,{children:[(0,l.jsxDEV)("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachImage.click()},title:e(c.icon_title_add_image),children:(0,l.jsxDEV)("i",{className:"material-icons secondary",children:"photo"},void 0,!1)},void 0,!1),(0,l.jsxDEV)("a",{href:"#",onClick:e=>{e.preventDefault(),this.attachFile.click()},title:e(c.icon_title_attach_file),children:(0,l.jsxDEV)("i",{className:"material-icons secondary",children:"attach_file"},void 0,!1)},void 0,!1)]},void 0,!0):null,this.props.noInput?a||(0,l.jsxDEV)("div",{className:"hr thin"},void 0,!1):this.state.audioRec?(0,l.jsxDEV)(i.Suspense,{fallback:(0,l.jsxDEV)("div",{children:(0,l.jsxDEV)(n.FormattedMessage,{id:"loading_note",defaultMessage:"Loading...",description:"Message shown when component is loading"},void 0,!1)},void 0,!1),children:(0,l.jsxDEV)(h,{onRecordingProgress:e=>this.props.onKeyPress(!0),onDeleted:e=>this.setState({audioRec:!1}),onFinished:this.handleAttachAudio},void 0,!1)},void 0,!1):(0,l.jsxDEV)("textarea",{id:"send-message-input",placeholder:t,value:this.state.message,onChange:this.handleMessageTyping,onKeyDown:this.handleKeyPress,ref:e=>{this.messageEditArea=e}},void 0,!1),this.state.message||!o?(0,l.jsxDEV)("a",{href:"#",onClick:this.handleSend,title:e(c.icon_title_send),children:(0,l.jsxDEV)("i",{className:"material-icons",children:s},void 0,!1)},void 0,!1):this.state.audioRec?null:(0,l.jsxDEV)("a",{href:"#",onClick:e=>{e.preventDefault(),this.setState({audioRec:!0})},title:e(c.icon_title_record_voice),children:(0,l.jsxDEV)("i",{className:"material-icons",children:"mic"},void 0,!1)},void 0,!1),(0,l.jsxDEV)("input",{type:"file",ref:e=>{this.attachFile=e},onChange:this.handleAttachFile,style:{display:"none"}},void 0,!1),(0,l.jsxDEV)("input",{type:"file",ref:e=>{this.attachImage=e},accept:"image/*, video/*",onChange:this.handleAttachImage,style:{display:"none"}},void 0,!1)]},void 0,!0)},void 0,!1)]},void 0,!0)}}t.A=(0,n.injectIntl)(p)}}]); //# sourceMappingURL=429.prod.js.map \ No newline at end of file diff --git a/umd/429.prod.js.map b/umd/429.prod.js.map index ff2535c5..a3924d89 100644 --- a/umd/429.prod.js.map +++ b/umd/429.prod.js.map @@ -1 +1 @@ -{"version":3,"file":"429.prod.js","mappings":"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","sources":["webpack://tinode-webapp/./src/widgets/send-message.jsx","webpack://tinode-webapp/./src/widgets/attachment.jsx","webpack://tinode-webapp/./src/widgets/received-marker.jsx","webpack://tinode-webapp/./src/widgets/chat-message.jsx","webpack://tinode-webapp/./src/widgets/group-subs.jsx","webpack://tinode-webapp/./src/widgets/invitation.jsx","webpack://tinode-webapp/./src/views/logo-view.jsx","webpack://tinode-webapp/./src/widgets/meta-message.jsx","webpack://tinode-webapp/./src/widgets/pinned-messages.jsx","webpack://tinode-webapp/./src/views/messages-view.jsx"],"sourcesContent":["// Send message form.\nimport React, { Suspense } from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\nimport { Drafty } from 'tinode-sdk';\n\n// Lazy-loading AudioRecorder because it's quite large due to\n// a dependency on webm-duration-fix.\nconst AudioRecorder = React.lazy(_ => import('./audio-recorder.jsx'));\n\nimport { KEYPRESS_DELAY } from '../config.js';\nimport { filePasted } from '../lib/blob-helpers.js';\nimport { replyFormatter } from '../lib/formatters.js';\n\nconst messages = defineMessages({\n messaging_disabled: {\n id: 'messaging_disabled_prompt',\n defaultMessage: 'Messaging disabled',\n description: 'Prompt in SendMessage in read-only topic'\n },\n type_new_message: {\n id: 'new_message_prompt',\n defaultMessage: 'New message',\n description: 'Prompt in send message field'\n },\n add_image_caption: {\n id: 'image_caption_prompt',\n defaultMessage: 'Image caption',\n description: 'Prompt in SendMessage for attached image'\n },\n file_attachment_too_large: {\n id: 'file_attachment_too_large',\n defaultMessage: 'The file size {size} exceeds the {limit} limit.',\n description: 'Error message when attachment is too large'\n },\n cannot_initiate_upload: {\n id: 'cannot_initiate_file_upload',\n defaultMessage: 'Cannot initiate file upload.',\n description: 'Generic error messagewhen attachment fails'\n },\n icon_title_record_voice: {\n id: 'icon_title_record_voice',\n defaultMessage: 'Record voice message',\n description: 'Icon tool tip for recording a voice message'\n },\n icon_title_attach_file: {\n id: 'icon_title_attach_file',\n defaultMessage: 'Attach file',\n description: 'Icon tool tip for attaching a file'\n },\n icon_title_add_image: {\n id: 'icon_title_add_image',\n defaultMessage: 'Add image',\n description: 'Icon tool tip for attaching an image'\n },\n icon_title_send: {\n id: 'icon_title_send',\n defaultMessage: 'Send message',\n description: 'Icon tool tip for sending a message'\n },\n});\n\nclass SendMessage extends React.PureComponent {\n constructor(props) {\n super(props);\n\n this.state = {\n quote: null,\n message: '',\n audioRec: false,\n audioAvailable: !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia),\n };\n\n // Timestamp when the previous key press was sent to the server.\n this.keypressTimestamp = 0;\n\n this.handlePasteEvent = this.handlePasteEvent.bind(this);\n this.handleAttachImage = this.handleAttachImage.bind(this);\n this.handleAttachFile = this.handleAttachFile.bind(this);\n this.handleAttachAudio = this.handleAttachAudio.bind(this);\n this.handleSend = this.handleSend.bind(this);\n this.handleKeyPress = this.handleKeyPress.bind(this);\n this.handleMessageTyping = this.handleMessageTyping.bind(this);\n this.handleDropAttach = this.handleDropAttach.bind(this);\n\n this.handleQuoteClick = this.handleQuoteClick.bind(this);\n\n this.formatReply = this.formatReply.bind(this);\n }\n\n componentDidMount() {\n if (this.messageEditArea) {\n this.messageEditArea.addEventListener('paste', this.handlePasteEvent, false);\n if (window.getComputedStyle(this.messageEditArea).getPropertyValue('transition-property') == 'all') {\n // Set focus on desktop, but not on mobile: focus causes soft keyboard to pop up.\n this.messageEditArea.focus();\n }\n }\n\n this.setState({quote: this.formatReply()});\n }\n\n componentWillUnmount() {\n if (this.messageEditArea) {\n this.messageEditArea.removeEventListener('paste', this.handlePasteEvent, false);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (this.messageEditArea) {\n if (window.getComputedStyle(this.messageEditArea).getPropertyValue('transition-property') == 'all') {\n // Set focus on desktop, but not on mobile: focus causes soft keyboard to pop up.\n this.messageEditArea.focus();\n }\n\n // Adjust height of the message area for the amount of text.\n this.messageEditArea.style.height = '0px';\n this.messageEditArea.style.height = this.messageEditArea.scrollHeight + 'px';\n }\n\n if (prevProps.topicName != this.props.topicName) {\n this.setState({message: this.props.initMessage || '', audioRec: false, quote: null});\n } else if (prevProps.initMessage != this.props.initMessage) {\n const msg = this.props.initMessage || '';\n this.setState({message: msg}, _ => {\n // If there is text, scroll to bottom and set caret to the end.\n this.messageEditArea.scrollTop = this.messageEditArea.scrollHeight;\n this.messageEditArea.setSelectionRange(msg.length, msg.length);\n });\n }\n if (prevProps.reply != this.props.reply) {\n this.setState({quote: this.formatReply()});\n }\n }\n\n formatReply() {\n return this.props.reply ?\n Drafty.format(this.props.reply.content, replyFormatter, {\n formatMessage: this.props.intl.formatMessage.bind(this.props.intl),\n authorizeURL: this.props.tinode.authorizeURL.bind(this.props.tinode)\n }) : null;\n }\n\n handlePasteEvent(e) {\n if (this.props.disabled) {\n return;\n }\n // FIXME: handle large files too.\n if (filePasted(e,\n file => { this.props.onAttachImage(file); },\n file => { this.props.onAttachFile(file); },\n this.props.onError)) {\n\n // If a file was pasted, don't paste base64 data into input field.\n e.preventDefault();\n }\n }\n\n handleAttachImage(e) {\n if (e.target.files && e.target.files.length > 0) {\n this.props.onAttachImage(e.target.files[0]);\n }\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n handleAttachFile(e) {\n if (e.target.files && e.target.files.length > 0) {\n this.props.onAttachFile(e.target.files[0]);\n }\n // Clear the value so the same file can be uploaded again.\n e.target.value = '';\n }\n\n handleDropAttach(files) {\n if (files && files.length > 0) {\n this.props.onAttachFile(files[0]);\n }\n }\n\n handleAttachAudio(url, preview, duration) {\n this.setState({audioRec: false});\n this.props.onAttachAudio(url, preview, duration);\n }\n\n handleSend(e) {\n e.preventDefault();\n const message = this.state.message.trim();\n if (message || this.props.acceptBlank || this.props.noInput) {\n this.props.onSendMessage(message);\n this.setState({message: ''});\n }\n }\n\n /* Send on Enter key */\n handleKeyPress(e) {\n if (this.state.audioRec) {\n // Ignore key presses while audio is being recorded.\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n\n // Enter pressed: either send, or enter a new line.\n if (e.key === 'Enter') {\n if (this.props.sendOnEnter == 'plain') {\n // Have Shift-Enter insert a line break instead\n if (!e.shiftKey) {\n e.preventDefault();\n e.stopPropagation();\n\n this.handleSend(e);\n }\n } else {\n if (e.ctrlKey || e.metaKey) {\n e.preventDefault();\n e.stopPropagation();\n\n this.handleSend(e);\n }\n }\n }\n }\n\n handleMessageTyping(e) {\n this.setState({message: e.target.value});\n if (this.props.onKeyPress) {\n const now = new Date().getTime();\n if (now - this.keypressTimestamp > KEYPRESS_DELAY) {\n this.props.onKeyPress();\n this.keypressTimestamp = now;\n }\n }\n }\n\n handleQuoteClick(e) {\n e.preventDefault();\n e.stopPropagation();\n if (this.props.reply && this.props.onQuoteClick) {\n const replyToSeq = this.props.reply.seq;\n this.props.onQuoteClick(replyToSeq);\n }\n }\n\n render() {\n const { formatMessage } = this.props.intl;\n const prompt = this.props.disabled ?\n formatMessage(messages.messaging_disabled) :\n (this.props.messagePrompt ?\n formatMessage(messages[this.props.messagePrompt]) :\n formatMessage(messages.type_new_message));\n\n const sendIcon = (this.props.reply && this.props.reply.editing) ?\n 'check_circle' : 'send';\n\n const quote = this.state.quote ?\n () : null;\n const audioEnabled = this.state.audioAvailable && this.props.onAttachAudio;\n return (\n
    \n {!this.props.noInput ? quote : null}\n
    \n {!this.props.disabled ?\n <>\n {this.props.onAttachFile && !this.state.audioRec ?\n <>\n {e.preventDefault(); this.attachImage.click();}} title={formatMessage(messages.icon_title_add_image)}>\n photo\n \n {e.preventDefault(); this.attachFile.click();}} title={formatMessage(messages.icon_title_attach_file)}>\n attach_file\n \n \n :\n null}\n {this.props.noInput ?\n (quote ||
    ) :\n (this.state.audioRec ?\n (
    }>\n this.props.onKeyPress(true)}\n onDeleted={_ => this.setState({audioRec: false})}\n onFinished={this.handleAttachAudio}/>\n ) :\n