@iccandle/reactjs-widget 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/widget-iccandle.cjs +9 -9
- package/dist/widget-iccandle.js +306 -301
- package/package.json +1 -1
package/dist/widget-iccandle.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode('.iccandle-toaster{--iccandle-secondary: oklch( from var(--iccandle-background) clamp(.92, calc(l - .06) , .98) c h / .92 )}[data-sonner-toaster][data-sonner-theme=dark].iccandle-toaster{--iccandle-secondary: oklch( from var(--iccandle-background) clamp(.22, calc(l + .22) , .34) c h / .92 )}.custom-toast{display:flex;width:100%;gap:12px;border:1px solid var(--iccandle-border, #e5e7eb);border-radius:12px;padding:16px;background:var(--iccandle-background, #ffffff);color:var(--iccandle-text, #111827);box-shadow:0 8px 24px #0f172a1f}.custom-toast__icon-wrap{display:flex;height:40px;width:40px;align-items:center;justify-content:center;border-radius:9999px;background:var(--iccandle-secondary, #f3f4f6);flex-shrink:0}.custom-toast__icon{height:20px;width:20px;color:var(--iccandle-text, #4b5563);opacity:.7}.custom-toast__content{flex:1;min-width:0}.custom-toast__header{display:flex;align-items:flex-start;justify-content:space-between}.custom-toast__title{margin:0;color:var(--iccandle-text, #111827);font-size:14px;line-height:20px;font-weight:600}.custom-toast__description{margin:4px 0 0;color:var(--iccandle-text, #4b5563);font-size:14px;line-height:20px;opacity:.75}.custom-toast__actions{margin-top:12px;display:flex;gap:12px}.custom-toast__button{border:0;border-radius:6px;background:transparent;padding:8px 12px;font-size:14px;line-height:20px;font-weight:500;cursor:pointer}.custom-toast__button:hover{background:color-mix(in oklab,var(--iccandle-border, #e5e7eb) 35%,transparent)}.custom-toast__button--action{color:var(--iccandle-primary, #2563eb)}.custom-toast__button--dismiss{color:var(--iccandle-text, #4b5563);opacity:.85}.iccandle-scanner-popup{position:absolute!important;top:25%!important;left:25%!important;z-index:20!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:.5rem!important;height:38px!important;padding:.25rem!important;background-color:var(--iccandle-background);border:1px solid var(--iccandle-border)!important;border-radius:1rem!important;color:var(--iccandle-text);box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important}@media(max-width:640px){.iccandle-scanner-popup{left:2rem!important}}.iccandle-scanner-popup__inner{display:flex!important;height:100%!important;width:100%!important;align-items:center!important;gap:.25rem!important}.iccandle-scanner-popup__grip{cursor:move!important}.iccandle-scanner-popup__divider{width:2px!important;height:2rem!important;margin-top:.25rem!important;margin-bottom:.25rem!important;background-color:var(--iccandle-border)}.iccandle-scanner-popup__bars{margin-left:.5rem!important;margin-right:.5rem!important;width:100%!important;min-width:3rem!important;flex:1 1 0%!important;white-space:nowrap!important;font-size:.75rem!important;font-weight:600!important;height:100%!important}.iccandle-scanner-popup__action-btn{touch-action:none!important;display:flex!important;height:2rem!important;width:100%!important;align-items:center!important;justify-content:center!important;gap:.5rem!important;margin-left:.25rem!important;margin-right:.25rem!important;font-size:.75rem!important;font-weight:600!important;cursor:pointer!important;padding:.25rem!important;border-radius:.125rem!important;background-color:transparent;border:none!important;outline:none!important;color:var(--iccandle-border);transition:background-color .2s ease-in-out}.iccandle-scanner-popup__action-btn:hover{background-color:color-mix(in srgb,var(--iccandle-background) 40%,transparent)}.iccandle-scanner-popup__action-btn--with-gap{gap:.25rem!important;padding-left:.25rem!important}@keyframes iccandle-scanner-label-gradient{0%{background-position:0% 50%}to{background-position:200% 50%}}.iccandle-scanner-popup__label{background:linear-gradient(90deg,var(--iccandle-primary) 0%,var(--iccandle-primary-gradient-end) 50%,var(--iccandle-primary) 100%);background-size:200% 100%!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent;text-wrap:nowrap!important;animation:iccandle-scanner-label-gradient 2s linear infinite}.iccandle-scanner-popup__action-row{display:flex!important;width:100%!important;align-items:center!important;gap:.25rem!important;flex:1!important}.iccandle-scanner-popup__logo{min-width:1.25rem!important;min-height:1.25rem!important}.iccandle-scanner-popup__settings{touch-action:none!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:.25rem!important;cursor:pointer!important;border-radius:.125rem!important;border:none!important;background:transparent;color:inherit}.iccandle-scanner-popup__settings:hover{background-color:color-mix(in srgb,var(--iccandle-background) 40%,transparent)}.iccandle-scanner-popup__toggle{display:flex!important;height:2rem!important;margin-right:.25rem!important;align-items:center!important;justify-content:center!important;gap:.25rem!important;padding-left:.25rem!important;font-size:.75rem!important;font-weight:600!important;color:var(--iccandle-border);transition-property:color,background-color;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.iccandle-scanner-popup__toggle:hover{background-color:color-mix(in srgb,var(--iccandle-background) 40%,transparent)}.iccandle-simple-tooltip-wrapper{position:relative!important;display:inline-flex!important}.iccandle-simple-tooltip-trigger{display:inline-flex!important;align-items:flex-start!important;gap:4px!important}.iccandle-simple-tooltip-content{position:absolute!important;left:50%!important;bottom:100%!important;transform:translate(-50%)!important;margin-bottom:4px!important;background-color:var(--iccandle-secondary)!important;color:var(--iccandle-text)!important;padding:4px 6px!important;font-size:12px;line-height:1.25;border-radius:2px!important;border:none!important;box-shadow:0 1px 3px #0000001f!important;z-index:50!important;max-width:240px!important;pointer-events:none!important;text-wrap:nowrap!important}.iccandle-simple-tooltip-content p{margin:0!important}.iccandle-info-tooltip-icon{color:#6b7280}.iccandle-info-tooltip-icon--muted{color:color-mix(in oklab,var(--iccandle-text) 70%,transparent)!important}.iccandle-info-tooltip-content{z-index:200!important;height:auto!important;width:fit-content!important;max-width:320px!important;padding:.75rem!important;background-color:var(--iccandle-background)!important;color:var(--iccandle-text)!important;border:1px solid var(--iccandle-border)!important;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a!important;text-wrap:wrap!important}.iccandle-info-tooltip-content__inner{display:flex!important;flex-direction:column!important;gap:.25rem!important;width:100%!important;text-align:left!important}.iccandle-info-tooltip-content__title{margin:0!important;font-size:.875rem!important;font-weight:600!important;line-height:1.25!important;color:var(--iccandle-text)!important}.iccandle-info-tooltip-content__body{display:flex!important;flex-direction:column!important;gap:.375rem!important}.iccandle-info-tooltip-content__description,.iccandle-info-tooltip-content__line{margin:0!important;width:100%!important;font-size:.75rem!important;line-height:1.35!important;color:color-mix(in oklab,var(--iccandle-text) 70%,transparent)!important}.iccandle-info-tooltip-content__line-label{font-weight:500!important;color:var(--iccandle-text)!important}.iccandle-scanner-advanced-options{display:flex!important;flex-direction:column!important;gap:.5rem!important;width:100%!important;max-width:none!important;margin:0!important;padding:0 1rem!important}.iccandle-scanner-advanced-options__row{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:.75rem!important;padding:.25rem 0!important}.iccandle-scanner-advanced-options__label{display:flex!important;align-items:center!important;gap:.5rem!important;flex:1!important;min-width:0!important;font-size:.875rem;color:color-mix(in oklab,var(--iccandle-text) 70%,transparent)}.iccandle-scanner-advanced-options__native-select-wrap{position:relative!important;display:inline-flex!important;align-items:center!important;flex-shrink:0!important}.iccandle-scanner-advanced-options__native-select-wrap--small,.iccandle-scanner-advanced-options__native-select-wrap--large{width:10rem!important;min-width:9rem!important}.iccandle-scanner-advanced-options__native-select{width:100%!important;height:2.5rem!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 2rem 0 .75rem!important;border-radius:.5rem!important;background-color:var(--iccandle-background);border:1px solid var(--iccandle-border)!important;color:var(--iccandle-text);appearance:none!important;-webkit-appearance:none!important;font-size:.875rem;cursor:pointer!important}.iccandle-scanner-advanced-options__native-select:focus{outline:none!important;border-color:color-mix(in oklab,var(--iccandle-border) 55%,var(--iccandle-text));box-shadow:0 0 0 2px color-mix(in oklab,var(--iccandle-text) 25%,transparent)!important}@media(max-width:639px){.iccandle-scanner-advanced-options__row{grid-template-columns:1fr!important}.iccandle-scanner-advanced-options__native-select-wrap--small,.iccandle-scanner-advanced-options__native-select-wrap--large{width:100%!important}}.iccandle-forexIcons{position:relative!important;width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important}.iccandle-forexIcons__img{position:absolute!important;border-radius:9999px!important;border-width:2px!important;border-style:solid!important;border-color:var(--iccandle-background);box-sizing:border-box!important}.iccandle-forexIcons__img--single{top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important}.iccandle-forexIcons__img--left{bottom:0!important;left:0!important;z-index:8!important}.iccandle-forexIcons__img--right{top:0!important;right:0!important}.iccandle-scanner-symbol-search--combobox{position:relative!important;display:block!important;width:100%!important;padding:0 1rem!important;flex:none!important;overflow:visible!important}.iccandle-scanner-symbol-search__trigger{display:flex!important;width:100%!important;height:auto!important;min-height:2.5rem!important;align-items:center!important;justify-content:space-between!important;gap:.5rem!important;padding:.5rem .75rem!important;font-weight:400!important;border:1px solid color-mix(in oklab,var(--iccandle-border) 80%,transparent)!important;border-radius:.5rem!important;background:var(--iccandle-background)!important;color:var(--iccandle-text)!important;cursor:pointer!important;text-align:left!important}.iccandle-scanner-symbol-search__trigger:hover{background:color-mix(in oklab,var(--iccandle-secondary) 20%,var(--iccandle-background))!important}.iccandle-scanner-symbol-search__chips{display:flex!important;min-width:0!important;flex:1 1 auto!important;flex-wrap:wrap!important;align-items:center!important;gap:.25rem!important}.iccandle-scanner-symbol-search__placeholder{font-size:.875rem;font-weight:300;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-scanner-symbol-search__chip{display:inline-flex!important;max-width:7.5rem!important;align-items:center!important;gap:.125rem!important;border-radius:.375rem!important;padding:0 .25rem!important;font-weight:400!important;background:var(--iccandle-secondary)!important;color:var(--iccandle-text)!important}.iccandle-scanner-symbol-search__chip-icon{display:flex!important;height:1rem!important;width:1rem!important;flex-shrink:0!important;transform:scale(.75);align-items:center!important;justify-content:center!important;overflow:hidden!important;pointer-events:none!important}.iccandle-scanner-symbol-search__chip-label{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:11px;line-height:1rem}.iccandle-scanner-symbol-search__chip-remove{display:inline-flex!important;flex-shrink:0!important;border-radius:.125rem!important;padding:.125rem!important;cursor:pointer!important}.iccandle-scanner-symbol-search__chip-remove:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 40%,transparent)}.iccandle-scanner-symbol-search__chip-overflow{display:inline-flex!important;align-items:center!important;border-radius:.375rem!important;padding:0 .375rem!important;font-size:11px;font-weight:400!important;font-variant-numeric:tabular-nums;background:var(--iccandle-secondary)!important;color:var(--iccandle-text)!important}.iccandle-scanner-symbol-search__trigger-meta{display:flex!important;flex-shrink:0!important;align-items:center!important;gap:.375rem!important;font-size:.875rem;font-variant-numeric:tabular-nums}.iccandle-scanner-symbol-search__popover{position:fixed!important;z-index:70!important;box-sizing:border-box!important;padding:0!important;overflow:hidden!important;border-radius:.5rem!important;border:1px solid var(--iccandle-border)!important;background:var(--iccandle-background)!important;color:var(--iccandle-text)!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.iccandle-scanner-symbol-search__search{display:flex!important;align-items:center!important;gap:.5rem!important;border-bottom:1px solid color-mix(in oklab,var(--iccandle-border) 60%,transparent)!important;background:var(--iccandle-background)!important;padding:.5rem .75rem!important}.iccandle-scanner-symbol-search__search-icon{width:1rem!important;height:1rem!important;flex-shrink:0!important;opacity:.5}.iccandle-scanner-symbol-search__command-input{width:100%!important;min-width:0!important;border:none!important;background:transparent!important;color:var(--iccandle-text)!important;font-size:.875rem;outline:none!important}.iccandle-scanner-symbol-search__command-input::placeholder{color:color-mix(in oklab,var(--iccandle-text) 45%,transparent)}.iccandle-scanner-symbol-search__command-list{overflow-x:hidden!important;overflow-y:auto!important}.iccandle-scanner-symbol-search__empty{padding:1.5rem .75rem!important;text-align:center!important;font-size:.875rem;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-scanner-symbol-search__select-all{position:sticky!important;top:0!important;z-index:10!important;display:flex!important;align-items:center!important;gap:.25rem!important;border-bottom:1px solid color-mix(in oklab,var(--iccandle-border) 50%,transparent);background:var(--iccandle-background);padding:.375rem .5rem!important}.iccandle-scanner-symbol-search__group{padding:0!important}.iccandle-scanner-symbol-search__group-row{display:flex!important;align-items:center!important;gap:.25rem!important;padding:.375rem .5rem!important}.iccandle-scanner-symbol-search__group-check-btn,.iccandle-scanner-symbol-search__group-label-btn,.iccandle-scanner-symbol-search__group-expand-btn{display:inline-flex!important;align-items:center!important;border:none!important;background:transparent;color:inherit;cursor:pointer!important}.iccandle-scanner-symbol-search__group-check-btn{height:1.5rem!important;width:1.5rem!important;flex-shrink:0!important;justify-content:center!important;border-radius:.25rem!important}.iccandle-scanner-symbol-search__group-check-btn:hover,.iccandle-scanner-symbol-search__group-label-btn:hover,.iccandle-scanner-symbol-search__group-expand-btn:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 35%,transparent)}.iccandle-scanner-symbol-search__group-label-btn{min-width:0!important;flex:1 1 auto!important;padding:.125rem .25rem!important;border-radius:.25rem!important;text-align:left!important;font-size:.875rem;font-weight:500}.iccandle-scanner-symbol-search__group-expand-btn{min-width:0!important;flex:1 1 auto!important;justify-content:space-between!important;gap:.375rem!important;padding:.125rem .25rem!important;border-radius:.25rem!important;font-size:.75rem;letter-spacing:.02em}.iccandle-scanner-symbol-search__item{display:flex!important;width:100%!important;cursor:pointer!important;align-items:center!important;gap:.5rem!important;border:none!important;background:transparent!important;padding:.5rem .75rem .5rem 1.5rem!important;color:var(--iccandle-text)!important;text-align:left!important}.iccandle-scanner-symbol-search__item:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 55%,transparent)!important}.iccandle-scanner-symbol-search__item-label{min-width:0!important;flex:1 1 auto!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.875rem;font-weight:500}.iccandle-scanner-symbol-search__check{display:flex!important;height:1rem!important;width:1rem!important;flex-shrink:0!important;align-items:center!important;justify-content:center!important;border-radius:.25rem!important;border:1px solid var(--iccandle-primary)!important;opacity:.5}.iccandle-scanner-symbol-search__check--on{border:solid 1px var(--iccandle-primary)!important;color:var(--iccandle-primary)!important;opacity:1}@media(max-width:767px){.iccandle-scanner-symbol-search__trigger{flex-direction:column!important;align-items:stretch!important}}.iccandle-scanner-ai-settings{display:flex!important;flex-direction:column!important;gap:.5rem!important;width:100%!important;padding:0 1rem!important}.iccandle-scanner-ai-settings__row{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:.75rem!important;padding:.25rem 0!important}.iccandle-scanner-ai-settings__label{display:flex!important;align-items:center!important;gap:.5rem!important;min-width:0!important;overflow:visible!important;font-size:.875rem;color:color-mix(in oklab,var(--iccandle-text) 70%,transparent)}.iccandle-scanner-ai-settings__select-wrap{position:relative!important;width:10rem!important;min-width:9rem!important;border-radius:.5rem!important}.iccandle-scanner-ai-settings__select{display:block!important;width:100%!important;height:2.5rem!important;padding:0 2rem 0 .75rem!important;border-radius:.5rem!important;border:1px solid var(--iccandle-border)!important;background-color:var(--iccandle-background);color:var(--iccandle-text);font-size:.875rem;cursor:pointer!important;appearance:none!important;-webkit-appearance:none!important;outline:none!important;box-shadow:none!important}.iccandle-scanner-ai-settings__select:focus,.iccandle-scanner-ai-settings__select:focus-visible{outline:none!important;box-shadow:none!important}.iccandle-scanner-ai-settings__chevron{position:absolute!important;top:50%!important;right:.625rem!important;z-index:2!important;width:1rem!important;height:1rem!important;transform:translateY(-50%)!important;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent);pointer-events:none!important}.ai-gradient-border{position:relative!important;overflow:hidden!important;padding:1px!important;isolation:isolate;background:var(--iccandle-background)}.ai-gradient-border:before{content:"";position:absolute;z-index:0;top:50%;left:50%;width:220%;aspect-ratio:1;background:conic-gradient(from 0deg,#ffb018,#ffde68,#00beaa,#00dfb9,#ffb84d,#ffb018);transform:translate(-50%,-50%);animation:ai-spin-border 4s linear infinite;pointer-events:none}.ai-gradient-border .iccandle-scanner-ai-settings__select{position:relative;z-index:1;height:calc(2.5rem - 2px)!important;border:none!important;border-radius:calc(.5rem - 1px)!important;background-color:var(--iccandle-background)!important}@keyframes ai-spin-border{to{transform:translate(-50%,-50%) rotate(360deg)}}@media(max-width:639px){.iccandle-scanner-ai-settings__row{grid-template-columns:1fr!important}.iccandle-scanner-ai-settings__select-wrap{width:100%!important}}.iccandle-scanner-option{position:fixed!important;inset:0!important;z-index:40!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 .5rem!important;background-color:hsl(from var(--iccandle-background) h s l / .5)}.iccandle-scanner-option__card{position:relative!important;display:flex!important;width:100%!important;max-width:35rem!important;max-height:min(92dvh,100%)!important;flex-direction:column!important;overflow:hidden!important;background-color:var(--iccandle-background);border-radius:1.5rem!important;border:1px solid var(--iccandle-border)!important;color:var(--iccandle-text);box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important}.iccandle-scanner-settings{display:flex!important;min-height:0!important;max-width:100%!important;min-width:0!important;flex:1 1 auto!important;flex-direction:column!important;gap:.5rem!important;overflow:hidden!important}.iccandle-scanner-settings__header{display:flex!important;flex-shrink:0!important;align-items:flex-start!important;justify-content:space-between!important;gap:.75rem!important;padding:1rem 1rem 0!important}.iccandle-scanner-settings__title-wrap{display:flex!important;min-width:0!important;flex:1 1 auto!important;flex-direction:column!important;gap:.125rem!important}.iccandle-scanner-settings__title{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:1.125rem;font-weight:500;color:var(--iccandle-text)}.iccandle-scanner-settings__description{font-size:.875rem;font-weight:400;color:color-mix(in oklab,var(--iccandle-text) 65%,transparent)}.iccandle-scanner-option__close-btn{padding:.5rem!important;border-radius:.5rem!important;background-color:#ffffff1a;flex-shrink:0!important}.iccandle-scanner-option__close-btn:hover{background-color:#ffffff26}.iccandle-scanner-settings__form{display:flex!important;min-height:0!important;max-width:100%!important;min-width:0!important;flex:1 1 auto!important;flex-direction:column!important;overflow:hidden!important}.iccandle-scanner-settings__body{min-height:0!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:1 1 auto!important;overflow-x:hidden!important;overflow-y:auto!important;padding-top:.5rem!important}.iccandle-scanner-settings__section{margin-bottom:.5rem!important}.iccandle-scanner-settings__section-title{padding:0 1rem!important;margin-bottom:.5rem!important;font-size:1rem;font-weight:500;color:var(--iccandle-text)}.iccandle-scanner-settings__accordion-trigger{display:flex!important;width:100%!important;align-items:center!important;justify-content:space-between!important;padding:.5rem 1rem!important;border:none!important;background:transparent;color:var(--iccandle-text);font-size:1rem;font-weight:500;cursor:pointer!important}.iccandle-scanner-settings__accordion-caret{width:0!important;height:0!important;border-left:5px solid transparent!important;border-right:5px solid transparent!important;border-top:6px solid color-mix(in oklab,var(--iccandle-text) 60%,transparent)!important;transition:transform .2s ease}.iccandle-scanner-settings__accordion-caret--open{transform:rotate(180deg)}.iccandle-scanner-settings__accordion-content{padding-bottom:.5rem!important}.iccandle-scanner-option__footer{display:flex!important;flex-direction:column!important;gap:.5rem!important;flex-shrink:0!important;border-top:1px solid var(--iccandle-border)!important}.iccandle-scanner-option__error{padding:.75rem 1rem 0!important;font-size:.875rem;font-weight:500;color:#ef4444;overflow-wrap:anywhere}.iccandle-scanner-option__actions{display:flex!important;flex-wrap:wrap!important;align-items:center!important;justify-content:space-between!important;gap:.75rem!important;padding:1rem!important}.iccandle-scanner-option__always-show{display:flex!important;align-items:center!important;gap:.5rem!important}.iccandle-scanner-option__always-show-label{cursor:pointer!important;font-size:.875rem;font-weight:400;color:color-mix(in oklab,var(--iccandle-text) 70%,transparent)}.iccandle-scanner-option__buttons{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:.75rem!important;margin-left:auto!important}.iccandle-scanner-option__btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:.375rem!important;height:2.25rem!important;padding:0 .875rem!important;border-radius:.5rem!important;font-size:.875rem;font-weight:600;cursor:pointer!important;border:1px solid transparent!important}.iccandle-scanner-option__btn--outline{background:transparent;border-color:var(--iccandle-border);color:var(--iccandle-text)}.iccandle-scanner-option__btn--outline:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 20%,transparent)}.iccandle-scanner-option__btn--primary{background-color:color-mix(in srgb,var(--iccandle-primary) 30%,transparent);color:var(--iccandle-text);border:1px solid var(--iccandle-primary)!important}.iccandle-scanner-option__btn--primary:hover{filter:brightness(.95)}.iccandle-scanner-option__btn--scan{color:#ffb84d}@media(min-width:640px){.iccandle-scanner-option__card{max-height:90dvh!important}.iccandle-scanner-settings__title{font-size:1.25rem}.iccandle-scanner-settings__body{padding-top:1rem!important}}.iccandle-selector-widget{--iccandle-primary: #00dfb9;--iccandle-primary-gradient-end: #ffb84d;--iccandle-background: #ffffff;--iccandle-border: #d1d5dc;--iccandle-text: #000000;--iccandle-secondary: oklch( from var(--iccandle-background) clamp(.92, calc(l - .06) , .98) c h / .92 );font-family:var( --iccandle-font, "Inter Tight", ui-sans-serif, system-ui, sans-serif );position:relative!important;height:100%!important;width:100%!important}.iccandle-selector-widget :where(img,picture,video,canvas,svg){display:revert;max-width:revert}.iccandle-selector-widget__container{--chart-pane-size: 60%;height:100%!important;width:100%!important;min-height:0!important;display:flex!important;overflow:hidden!important}.iccandle-selector-widget__chart-pane{width:var(--chart-pane-size)!important;height:100%!important;flex:0 0 var(--chart-pane-size)!important;flex-shrink:0!important;min-width:0!important;min-height:0!important;overflow:hidden!important}.iccandle-selector-widget__resize-handle{flex-shrink:0!important;width:4px!important;cursor:col-resize!important;background:var(--iccandle-border, #d1d5dc)!important;touch-action:none!important;-webkit-user-select:none!important;user-select:none!important}.iccandle-selector-widget__resize-handle:hover,.iccandle-selector-widget__resize-handle:active{background:var(--iccandle-primary, #00dfb9)!important}.iccandle-selector-widget__resize-handle--stacked{width:100%!important;height:4px!important;cursor:row-resize!important}.iccandle-selector-widget__iframe{flex:1 1 0!important;width:auto!important;height:100%!important;min-width:0!important;min-height:0!important;border:none!important}@media(max-width:1023px){.iccandle-selector-widget__container{flex-direction:column!important}.iccandle-selector-widget__chart-pane{width:100%!important;height:var(--chart-pane-size)!important;flex:0 0 var(--chart-pane-size)!important}.iccandle-selector-widget__iframe{width:100%!important;height:auto!important;flex:1 1 0!important}.iccandle-selector-widget{width:100%!important}}.iccandle-dark{--iccandle-primary: #00dfb9;--iccandle-primary-gradient-end: #ffb84d;--iccandle-background: #1a1a1a;--iccandle-border: rgba(255, 255, 255, .2);--iccandle-text: #ffffff;--iccandle-secondary: oklch( from var(--iccandle-background) clamp(.22, calc(l + .22) , .34) c h / .92 )}.iccandle-selector-widget__overlay{position:fixed!important;inset:0!important;z-index:8!important}.iccandle-pattern-alert-name{display:flex!important;flex-direction:column!important;width:100%!important;height:100%!important;min-height:24rem!important;background-color:var(--iccandle-background)!important;border-radius:1.5rem!important;overflow:hidden!important}.iccandle-pattern-alert-name__header{height:fit-content!important;padding:1rem 1rem 0!important;display:flex!important;flex-direction:column!important;gap:.5rem!important;text-align:left!important}.iccandle-pattern-alert-name__title-row{display:flex!important;align-items:center!important;justify-content:space-between!important}.iccandle-pattern-alert-name__title{display:flex!important;align-items:center!important;gap:.5rem!important;margin:0!important;font-size:1.125rem!important;font-weight:600!important;line-height:1!important;color:var(--iccandle-text)}.iccandle-pattern-alert-name__title-icon{flex-shrink:0!important;color:var(--iccandle-primary)}.iccandle-pattern-alert-name__close-btn{display:flex!important;align-items:center!important;justify-content:center!important;width:2rem!important;height:2rem!important;padding:0!important;border:none!important;border-radius:.375rem!important;background:transparent!important;color:var(--iccandle-text);cursor:pointer!important}.iccandle-pattern-alert-name__close-btn:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 20%,transparent)}@media(min-width:640px){.iccandle-pattern-alert-name__close-btn{display:none!important}}.iccandle-pattern-alert-name__description{margin:0!important;font-size:.875rem!important;color:color-mix(in oklab,var(--iccandle-text) 70%,transparent)}.iccandle-pattern-alert-name__content{display:flex!important;flex:1!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:1.5rem!important;padding:1rem!important}.iccandle-pattern-alert-name__bell-icon{color:var(--iccandle-primary)}.iccandle-pattern-alert-name__form{width:100%!important}.iccandle-pattern-alert-name__field{display:grid!important;width:100%!important;align-items:center!important;gap:.5rem!important}.iccandle-pattern-alert-name__label{font-size:.875rem!important;font-weight:500!important;color:var(--iccandle-text)}.iccandle-pattern-alert-name__input{width:100%!important;height:2.25rem!important;padding:0 .75rem!important;border:1px solid var(--iccandle-border)!important;border-radius:.375rem!important;font-size:.875rem!important;background-color:var(--iccandle-background);color:var(--iccandle-text)}.iccandle-pattern-alert-name__input::placeholder{color:color-mix(in oklab,var(--iccandle-text) 50%,transparent)}.iccandle-pattern-alert-name__input:focus{outline:none!important;border-color:var(--iccandle-primary)!important}.iccandle-pattern-alert-name__error{margin:0!important;font-size:.75rem!important;color:#ef4444}.iccandle-pattern-alert-name__footer-wrap{height:fit-content!important}@media(min-width:640px){.iccandle-pattern-alert-name__footer-wrap{height:25%!important}}.iccandle-pattern-alert-name__divider{margin:0!important;border:none!important;border-top:1px solid var(--iccandle-border)!important}.iccandle-pattern-alert-name__footer{display:flex!important;width:100%!important;align-items:center!important;justify-content:flex-end!important;gap:1rem!important;padding:1rem!important;font-weight:600!important;color:color-mix(in oklab,var(--iccandle-text) 80%,transparent)}.iccandle-pattern-alert-name__btn{height:2.25rem!important;padding:0 .875rem!important;border-radius:.5rem!important;font-size:.875rem!important;font-weight:600!important;cursor:pointer!important;border:1px solid transparent!important}.iccandle-pattern-alert-name__btn--outline{background:transparent;border-color:var(--iccandle-border)!important;color:var(--iccandle-text)}.iccandle-pattern-alert-name__btn--outline:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 20%,transparent)}.iccandle-pattern-alert-name__btn--primary{width:fit-content!important;background-color:color-mix(in srgb,var(--iccandle-primary) 30%,transparent);color:var(--iccandle-primary);border:1px solid var(--iccandle-primary)!important}.iccandle-pattern-alert-name__btn--primary:hover:not(:disabled){filter:brightness(.95)}.iccandle-pattern-alert-name__btn--primary:disabled{opacity:.5!important;cursor:not-allowed!important}.iccandle-scanner-timeframe-search--combobox{position:relative!important;display:block!important;width:100%!important;padding:0 1rem!important;flex:none!important;overflow:visible!important}.iccandle-scanner-timeframe-search__trigger{display:flex!important;width:100%!important;height:auto!important;min-height:2.5rem!important;align-items:center!important;justify-content:space-between!important;gap:.5rem!important;padding:.5rem .75rem!important;font-weight:400!important;border:1px solid color-mix(in oklab,var(--iccandle-border) 80%,transparent)!important;border-radius:.5rem!important;background:var(--iccandle-background)!important;color:var(--iccandle-text)!important;cursor:pointer!important;text-align:left!important}.iccandle-scanner-timeframe-search__trigger:hover{background:color-mix(in oklab,var(--iccandle-secondary) 20%,var(--iccandle-background))!important}.iccandle-scanner-timeframe-search__chips{display:flex!important;min-width:0!important;flex:1 1 auto!important;flex-wrap:wrap!important;align-items:center!important;gap:.25rem!important}.iccandle-scanner-timeframe-search__placeholder{font-size:.875rem;font-weight:300;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-scanner-timeframe-search__chip{display:inline-flex!important;max-width:7.5rem!important;align-items:center!important;gap:.125rem!important;border-radius:.375rem!important;padding:0 .25rem!important;font-weight:400!important;background:var(--iccandle-secondary)!important;color:var(--iccandle-text)!important}.iccandle-scanner-timeframe-search__chip-label{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:11px;line-height:1rem}.iccandle-scanner-timeframe-search__chip-remove{display:inline-flex!important;flex-shrink:0!important;border-radius:.125rem!important;padding:.125rem!important;cursor:pointer!important}.iccandle-scanner-timeframe-search__chip-remove:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 40%,transparent)}.iccandle-scanner-timeframe-search__chip-overflow{display:inline-flex!important;align-items:center!important;border-radius:.375rem!important;padding:0 .375rem!important;font-size:11px;font-weight:400!important;font-variant-numeric:tabular-nums;background:var(--iccandle-secondary)!important;color:var(--iccandle-text)!important}.iccandle-scanner-timeframe-search__trigger-meta{display:flex!important;flex-shrink:0!important;align-items:center!important;gap:.375rem!important;font-size:.875rem;font-variant-numeric:tabular-nums}.iccandle-scanner-timeframe-search__popover{position:fixed!important;z-index:70!important;box-sizing:border-box!important;padding:0!important;overflow:hidden!important;border-radius:.5rem!important;border:1px solid var(--iccandle-border)!important;background:var(--iccandle-background)!important;color:var(--iccandle-text)!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.iccandle-scanner-timeframe-search__search{display:flex!important;align-items:center!important;gap:.5rem!important;border-bottom:1px solid color-mix(in oklab,var(--iccandle-border) 60%,transparent)!important;background:var(--iccandle-background)!important;padding:.5rem .75rem!important}.iccandle-scanner-timeframe-search__search-icon{width:1rem!important;height:1rem!important;flex-shrink:0!important;opacity:.5}.iccandle-scanner-timeframe-search__command-input{width:100%!important;min-width:0!important;border:none!important;background:transparent!important;color:var(--iccandle-text)!important;font-size:.875rem;outline:none!important}.iccandle-scanner-timeframe-search__command-input::placeholder{color:color-mix(in oklab,var(--iccandle-text) 45%,transparent)}.iccandle-scanner-timeframe-search__command-list{overflow-x:hidden!important;overflow-y:auto!important}.iccandle-scanner-timeframe-search__empty{padding:1.5rem .75rem!important;text-align:center!important;font-size:.875rem;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-scanner-timeframe-search__select-all{position:sticky!important;top:0!important;z-index:10!important;display:flex!important;align-items:center!important;gap:.25rem!important;border-bottom:1px solid color-mix(in oklab,var(--iccandle-border) 50%,transparent);background:var(--iccandle-background);padding:.375rem .5rem!important}.iccandle-scanner-timeframe-search__group{padding:0!important}.iccandle-scanner-timeframe-search__group-row{display:flex!important;align-items:center!important;gap:.25rem!important;padding:.375rem .5rem!important}.iccandle-scanner-timeframe-search__group-check-btn,.iccandle-scanner-timeframe-search__group-label-btn,.iccandle-scanner-timeframe-search__group-expand-btn{display:inline-flex!important;align-items:center!important;border:none!important;background:transparent;color:inherit;cursor:pointer!important}.iccandle-scanner-timeframe-search__group-check-btn{height:1.5rem!important;width:1.5rem!important;flex-shrink:0!important;justify-content:center!important;border-radius:.25rem!important}.iccandle-scanner-timeframe-search__group-check-btn:hover,.iccandle-scanner-timeframe-search__group-label-btn:hover,.iccandle-scanner-timeframe-search__group-expand-btn:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 35%,transparent)}.iccandle-scanner-timeframe-search__group-label-btn{min-width:0!important;flex:1 1 auto!important;padding:.125rem .25rem!important;border-radius:.25rem!important;text-align:left!important;font-size:.875rem;font-weight:500}.iccandle-scanner-timeframe-search__group-expand-btn{min-width:0!important;flex:1 1 auto!important;justify-content:space-between!important;gap:.375rem!important;padding:.125rem .25rem!important;border-radius:.25rem!important;font-size:.75rem;letter-spacing:.02em}.iccandle-scanner-timeframe-search__item{display:flex!important;width:100%!important;cursor:pointer!important;align-items:center!important;gap:.5rem!important;border:none!important;background:transparent!important;padding:.5rem .75rem!important;color:var(--iccandle-text)!important;text-align:left!important}.iccandle-scanner-timeframe-search__item:hover{background-color:color-mix(in oklab,var(--iccandle-secondary) 55%,transparent)!important}.iccandle-scanner-timeframe-search__item-label{min-width:0!important;flex:0 1 auto!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.875rem;font-weight:500}.iccandle-scanner-timeframe-search__item-description{margin-left:auto!important;flex-shrink:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font-size:.75rem;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-scanner-timeframe-search__check{display:flex!important;height:1rem!important;width:1rem!important;flex-shrink:0!important;align-items:center!important;justify-content:center!important;border-radius:.25rem!important;border:1px solid var(--iccandle-primary)!important;opacity:.5}.iccandle-scanner-timeframe-search__check--on{border:solid 1px var(--iccandle-primary)!important;color:var(--iccandle-primary)!important;opacity:1}@media(max-width:767px){.iccandle-scanner-timeframe-search__trigger{flex-direction:column!important;align-items:stretch!important}}.iccandle-timeframes-tab{display:flex!important;flex-direction:column!important;min-height:0!important;gap:.5rem!important}.iccandle-timeframes-tab__header{padding:0!important}.iccandle-timeframes-tab__title{margin:0!important;font-size:.875rem!important;font-weight:600!important;color:var(--iccandle-text)}.iccandle-timeframes-tab__description{margin:.25rem 0 0!important;font-size:.75rem!important;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-symbols-tab{display:flex!important;flex-direction:column!important;min-height:0!important;gap:.5rem!important}.iccandle-symbols-tab__header{padding:0!important}.iccandle-symbols-tab__title{margin:0!important;font-size:.875rem!important;font-weight:600!important;color:var(--iccandle-text)}.iccandle-symbols-tab__description{margin:.25rem 0 0!important;font-size:.75rem!important;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-time-config-section{display:flex!important;flex-direction:column!important;gap:.5rem!important;max-width:100%!important;min-width:0!important;font-size:.875rem!important;color:var(--iccandle-text);overflow:visible!important}.iccandle-time-config-section__header{padding:0!important}.iccandle-time-config-section__title{margin:0!important;font-size:.875rem!important;font-weight:600!important;color:var(--iccandle-text)}.iccandle-time-config-section__description{margin:.25rem 0 0!important;font-size:.75rem!important;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-time-config-section__fields{display:flex!important;flex-direction:column!important;gap:.75rem!important;width:100%!important;max-width:100%!important;min-width:0!important;padding:0!important}.iccandle-time-config-section__row{display:flex!important;flex-direction:column!important;gap:.75rem!important;width:100%!important;min-width:0!important}@media(min-width:640px){.iccandle-time-config-section__row{flex-direction:row!important;align-items:flex-end!important}}.iccandle-time-config-section__field{display:flex!important;flex-direction:column!important;gap:.25rem!important;min-width:0!important;flex:1 1 0!important}.iccandle-time-config-section__label{font-size:.75rem!important;font-weight:500!important;color:color-mix(in oklab,var(--iccandle-text) 65%,transparent)}.iccandle-time-config-section__input{height:2.5rem!important;width:100%!important;padding:.5rem .75rem!important;border:1px solid var(--iccandle-border)!important;border-radius:.5rem!important;font-size:.875rem!important;color:var(--iccandle-text);background-color:var(--iccandle-background)}.iccandle-time-config-section__input:disabled{opacity:.5!important;cursor:not-allowed!important}.iccandle-time-config-section__select-wrap{position:relative!important}.iccandle-time-config-section__select-wrap--open{z-index:100!important}.iccandle-time-config-section__select-btn{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;height:2.5rem!important;padding:.5rem .75rem!important;border:1px solid var(--iccandle-border)!important;border-radius:.5rem!important;font-size:.875rem!important;text-align:left!important;color:var(--iccandle-text);background-color:var(--iccandle-background);cursor:pointer!important}.iccandle-time-config-section__select-btn:disabled{opacity:.5!important;cursor:not-allowed!important}.iccandle-time-config-section__select-label{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.iccandle-time-config-section__dropdown{display:flex!important;flex-direction:column!important;overflow:hidden!important;border:1px solid var(--iccandle-border)!important;border-radius:.5rem!important;background-color:var(--iccandle-background);box-shadow:0 4px 12px color-mix(in oklab,var(--iccandle-text) 12%,transparent)!important}.iccandle-time-config-section__dropdown--portal{position:fixed!important;z-index:100!important}.iccandle-time-config-section__dropdown-header{padding:.5rem .75rem!important;border-bottom:1px solid var(--iccandle-border)!important}.iccandle-time-config-section__dropdown-title{margin:0!important;font-size:.875rem!important;font-weight:500!important;color:var(--iccandle-text)}.iccandle-time-config-section__dropdown-subtitle{margin:.125rem 0 0!important;font-size:.75rem!important;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-time-config-section__dropdown-search{padding:.5rem!important;border-bottom:1px solid var(--iccandle-border)!important}.iccandle-time-config-section__dropdown-search-input{width:100%!important;height:2rem!important;padding:0 .5rem!important;border:1px solid var(--iccandle-border)!important;border-radius:.25rem!important;font-size:.875rem!important;color:var(--iccandle-text);background-color:var(--iccandle-background)}.iccandle-time-config-section__dropdown-search-input:focus{outline:none!important;border-color:var(--iccandle-primary, #00dfb9)!important}.iccandle-time-config-section__dropdown-list{margin:0!important;padding:.25rem 0!important;list-style:none!important;overflow-y:auto!important}.iccandle-time-config-section__dropdown-group-label{padding:.375rem .75rem!important;font-size:.75rem!important;font-weight:500!important;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-time-config-section__dropdown-item{display:flex!important;align-items:center!important;width:100%!important;padding:.5rem .75rem!important;border:none!important;font-size:.875rem!important;text-align:left!important;color:var(--iccandle-text);background-color:transparent;cursor:pointer!important}.iccandle-time-config-section__dropdown-item:hover,.iccandle-time-config-section__dropdown-item--selected{background-color:color-mix(in oklab,var(--iccandle-text) 6%,transparent)!important}.iccandle-time-config-section__dropdown-empty{padding:.75rem!important;font-size:.875rem!important;text-align:center!important;color:color-mix(in oklab,var(--iccandle-text) 55%,transparent)}.iccandle-time-config-section__check{width:1rem!important;height:1rem!important;margin-right:.5rem!important;opacity:0!important}.iccandle-time-config-section__check--visible{opacity:1!important}.iccandle-pattern-alert-settings{display:flex!important;flex-direction:column!important;width:100%!important;height:100%!important;min-height:0!important;max-width:100%!important;min-width:0!important;gap:.5rem!important;overflow:hidden!important;background-color:var(--iccandle-background)!important;border-radius:1.5rem!important}@media(min-width:640px){.iccandle-pattern-alert-settings{gap:.75rem!important}}.iccandle-pattern-alert-settings__header-row{display:flex!important;flex-shrink:0!important;align-items:flex-start!important;gap:.5rem!important;padding:16px 16px 0!important}@media(min-width:640px){.iccandle-pattern-alert-settings__header-row{align-items:center!important;gap:2!important}}.iccandle-pattern-alert-settings__header-icon{flex-shrink:0!important;margin-top:.125rem!important;color:var(--iccandle-primary)}@media(min-width:640px){.iccandle-pattern-alert-settings__header-icon{margin-top:0!important}}.iccandle-pattern-alert-settings__header{height:fit-content!important;width:100%!important;min-width:0!important;display:flex!important;flex-direction:column!important;gap:.5rem!important;text-align:left!important}.iccandle-pattern-alert-settings__title-row{display:flex!important;width:100%!important;align-items:flex-start!important;justify-content:space-between!important;gap:.5rem!important}@media(min-width:640px){.iccandle-pattern-alert-settings__title-row{align-items:center!important}}.iccandle-pattern-alert-settings__title{min-width:0!important;margin:0!important;font-size:1rem!important;font-weight:600!important;line-height:1.25!important;color:var(--iccandle-text)}@media(min-width:640px){.iccandle-pattern-alert-settings__title{font-size:1.125rem!important}}.iccandle-pattern-alert-settings__title-text{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.iccandle-pattern-alert-settings__close-btn{display:flex!important;flex-shrink:0!important;align-items:center!important;justify-content:center!important;width:2rem!important;height:2rem!important;padding:0!important;border:none!important;border-radius:.375rem!important;background:transparent!important;color:var(--iccandle-text);cursor:pointer!important}.iccandle-pattern-alert-settings__close-btn:hover{background-color:color-mix(in oklab,var(--iccandle-background) 20%,transparent)}@media(min-width:640px){.iccandle-pattern-alert-settings__close-btn{display:none!important}}.iccandle-pattern-alert-settings__description{margin:0!important;font-size:.875rem!important;text-align:left!important;color:color-mix(in oklab,var(--iccandle-text) 70%,transparent)}.iccandle-pattern-alert-settings__form{display:flex!important;height:100%!important;min-height:0!important;max-width:100%!important;min-width:0!important;flex:1 1 auto!important;flex-direction:column!important;overflow:hidden!important}.iccandle-pattern-alert-settings__sections{display:flex!important;min-height:0!important;width:100%!important;max-width:100%!important;min-width:0!important;flex:1 1 auto!important;flex-direction:column!important;gap:1.5rem!important;overflow-x:hidden!important;overflow-y:auto!important;padding:16px 0!important}.iccandle-pattern-alert-settings__section{display:flex!important;flex-direction:column!important;gap:.5rem!important;min-width:0!important;padding:0 16px!important}.iccandle-pattern-alert-settings__time-config{min-height:0!important;min-width:0!important;max-width:100%!important;overflow:visible!important}.iccandle-pattern-alert-settings__section .iccandle-scanner-timeframe-search--combobox,.iccandle-pattern-alert-settings__section .iccandle-scanner-symbol-search--combobox{padding:0!important}.iccandle-pattern-alert-settings__footer{display:flex!important;flex-shrink:0!important;height:fit-content!important;max-width:100%!important;min-width:0!important;flex-direction:column!important;gap:.5rem!important;border-top:1px solid var(--iccandle-border)!important}.iccandle-pattern-alert-settings__error{max-width:100%!important;min-width:0!important;margin:0!important;padding:16px 16px 0!important;font-size:.875rem!important;font-weight:500!important;color:#ef4444;overflow-wrap:break-word!important;opacity:0!important;transition:opacity .15s ease-in-out!important}.iccandle-pattern-alert-settings__error--visible{opacity:1!important}.iccandle-pattern-alert-settings__actions{display:flex!important;width:100%!important;align-items:center!important;justify-content:flex-end!important;gap:.75rem!important;padding:16px!important;font-weight:600!important;color:color-mix(in oklab,var(--iccandle-text) 80%,transparent)}.iccandle-pattern-alert-settings__actions--with-error{padding-top:0!important}@media(min-width:640px){.iccandle-pattern-alert-settings__actions{gap:1rem!important}}.iccandle-pattern-alert-settings__btn{height:2.25rem!important;width:100%!important;padding:0 .875rem!important;border-radius:.5rem!important;font-size:.875rem!important;font-weight:600!important;cursor:pointer!important;border:1px solid transparent!important}@media(min-width:640px){.iccandle-pattern-alert-settings__btn{width:fit-content!important}}.iccandle-pattern-alert-settings__btn--outline{background:transparent;border-color:var(--iccandle-border)!important;color:var(--iccandle-text)}.iccandle-pattern-alert-settings__btn--outline:hover{background-color:color-mix(in oklab,var(--iccandle-background) 20%,transparent)}.iccandle-pattern-alert-settings__btn--primary{background-color:var(--iccandle-primary)!important;color:var(--iccandle-background)!important;border-color:var(--iccandle-primary)!important}.iccandle-pattern-alert-settings__btn--primary:hover:not(:disabled){filter:brightness(.95)}.iccandle-pattern-alert-settings__btn--primary:disabled{opacity:.5!important;cursor:not-allowed!important}.iccandle-pattern-tracker-modal{position:fixed!important;inset:0!important;z-index:50!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:1rem!important;background-color:#00000080!important}.iccandle-pattern-tracker-modal__content{position:relative!important;display:flex!important;flex-direction:column!important;width:100%!important;max-width:calc(100% - 2rem)!important;padding:0!important;border-radius:1.5rem!important;overflow:hidden!important;outline:none!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important}@media(min-width:640px){.iccandle-pattern-tracker-modal__content{max-height:60%!important;max-width:425px!important}}.iccandle-pattern-tracker-modal__content--settings{height:80%!important;max-width:580px!important}.iccandle-event-info-modal{position:fixed!important;inset:0!important;z-index:60!important}.iccandle-event-info-modal__dialog{position:fixed!important;width:302px!important;padding:1.5rem!important;border-radius:.375rem!important;border:1px solid var(--iccandle-border)!important;background:var(--iccandle-background)!important;color:var(--iccandle-text)!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important;box-sizing:border-box!important}.iccandle-event-info-modal__header{display:flex!important;align-items:center!important;justify-content:space-between!important;margin-bottom:1rem!important;gap:.5rem!important}.iccandle-event-info-modal__title-row{display:flex!important;align-items:center!important;gap:.5rem!important;min-width:0!important}.iccandle-event-info-modal__title{margin:0!important;font-size:1.125rem!important;font-weight:700!important;line-height:1.4!important;overflow:hidden!important;text-overflow:ellipsis!important}.iccandle-event-info-modal__close{display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:.25rem!important;border:none!important;border-radius:.125rem!important;background:transparent!important;color:inherit!important;cursor:pointer!important;flex-shrink:0!important}.iccandle-event-info-modal__close:hover{background:color-mix(in srgb,var(--iccandle-text) 8%,transparent)!important}.iccandle-event-info-modal__date{margin:0 0 1rem!important;font-size:.875rem!important;color:color-mix(in srgb,var(--iccandle-text) 60%,transparent)!important}.iccandle-event-info-modal__rows{display:flex!important;flex-direction:column!important;gap:.5rem!important;font-size:.875rem!important}.iccandle-event-info-modal__row{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:.75rem!important}.iccandle-event-info-modal__label{color:color-mix(in srgb,var(--iccandle-text) 55%,transparent)!important}.iccandle-event-info-modal__value{font-weight:600!important;color:var(--iccandle-text)!important}.iccandle-event-info-modal__actions{display:flex!important;flex-direction:column-reverse!important;gap:.5rem!important;margin-top:1.5rem!important}.iccandle-event-info-modal__actions .iccandle-event-info-modal__btn{width:100%!important}@media(min-width:640px){.iccandle-event-info-modal__actions{flex-direction:row!important;justify-content:flex-end!important}.iccandle-event-info-modal__actions .iccandle-event-info-modal__btn{width:auto!important}}.iccandle-event-info-modal__loading,.iccandle-event-info-modal__empty{display:flex!important;align-items:center!important;justify-content:center!important;min-height:12rem!important;min-width:16rem!important;padding:2rem 0!important;font-size:.875rem!important;color:color-mix(in srgb,var(--iccandle-text) 55%,transparent)!important;text-align:center!important}.iccandle-event-info-modal__spinner{width:1.5rem!important;height:1.5rem!important;animation:iccandle-event-info-spin .8s linear infinite!important}@keyframes iccandle-event-info-spin{to{transform:rotate(360deg)}}')),document.head.appendChild(t)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
|
|
2
2
|
import * as I from "react";
|
|
3
|
-
import z, { forwardRef as us, createElement as fr, useState as pe, createContext as qc, useContext as Wc, useRef as ge, useCallback as ce, useEffect as we, useLayoutEffect as
|
|
3
|
+
import z, { forwardRef as us, createElement as fr, useState as pe, createContext as qc, useContext as Wc, useRef as ge, useCallback as ce, useEffect as we, useLayoutEffect as Di, memo as ds, useMemo as Le, useDeferredValue as zr, useId as wa } from "react";
|
|
4
4
|
import * as hs from "react-dom";
|
|
5
|
-
import
|
|
5
|
+
import Ri, { createPortal as mi } from "react-dom";
|
|
6
6
|
function _c(e) {
|
|
7
7
|
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
|
|
8
8
|
}
|
|
9
|
-
var
|
|
9
|
+
var Qn = { exports: {} }, Cn = {};
|
|
10
10
|
var xa;
|
|
11
11
|
function Vc() {
|
|
12
12
|
if (xa) return Cn;
|
|
@@ -263,7 +263,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
263
263
|
}
|
|
264
264
|
var Sa;
|
|
265
265
|
function Jc() {
|
|
266
|
-
return Sa || (Sa = 1, process.env.NODE_ENV === "production" ?
|
|
266
|
+
return Sa || (Sa = 1, process.env.NODE_ENV === "production" ? Qn.exports = Vc() : Qn.exports = Kc()), Qn.exports;
|
|
267
267
|
}
|
|
268
268
|
var h = Jc();
|
|
269
269
|
function Xc(e) {
|
|
@@ -541,7 +541,7 @@ const tt = new ou(), su = (e, t) => {
|
|
|
541
541
|
getToasts: du
|
|
542
542
|
});
|
|
543
543
|
Xc("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");
|
|
544
|
-
function
|
|
544
|
+
function $n(e) {
|
|
545
545
|
return e.label !== void 0;
|
|
546
546
|
}
|
|
547
547
|
const hu = 3, pu = "24px", mu = "16px", Ta = 4e3, fu = 356, gu = 14, yu = 45, bu = 200;
|
|
@@ -566,10 +566,10 @@ const wu = (e) => {
|
|
|
566
566
|
]), ve = z.useMemo(() => l.duration || G || Ta, [
|
|
567
567
|
l.duration,
|
|
568
568
|
G
|
|
569
|
-
]), be = z.useRef(0), Ee = z.useRef(0),
|
|
569
|
+
]), be = z.useRef(0), Ee = z.useRef(0), Xe = z.useRef(0), We = z.useRef(null), [Zt, Qt] = Y.split("-"), Ut = z.useMemo(() => y.reduce((ae, Pe, ke) => ke >= Q ? ae : ae + Pe.height, 0), [
|
|
570
570
|
y,
|
|
571
571
|
Q
|
|
572
|
-
]), le = au(),
|
|
572
|
+
]), le = au(), Ae = l.invert || d, Ke = D === "loading";
|
|
573
573
|
Ee.current = z.useMemo(() => Q * K + Ut, [
|
|
574
574
|
Q,
|
|
575
575
|
Ut
|
|
@@ -635,11 +635,11 @@ const wu = (e) => {
|
|
|
635
635
|
if (l.promise && D === "loading" || l.duration === 1 / 0 || l.type === "loading") return;
|
|
636
636
|
let ae;
|
|
637
637
|
return C || m || le ? (() => {
|
|
638
|
-
if (
|
|
638
|
+
if (Xe.current < be.current) {
|
|
639
639
|
const Fe = (/* @__PURE__ */ new Date()).getTime() - be.current;
|
|
640
640
|
pt.current = pt.current - Fe;
|
|
641
641
|
}
|
|
642
|
-
|
|
642
|
+
Xe.current = (/* @__PURE__ */ new Date()).getTime();
|
|
643
643
|
})() : pt.current !== 1 / 0 && (be.current = (/* @__PURE__ */ new Date()).getTime(), ae = setTimeout(() => {
|
|
644
644
|
l.onAutoClose == null || l.onAutoClose.call(l, l), de();
|
|
645
645
|
}, pt.current)), () => clearTimeout(ae);
|
|
@@ -691,7 +691,7 @@ const wu = (e) => {
|
|
|
691
691
|
"data-swiping": M,
|
|
692
692
|
"data-dismissible": B,
|
|
693
693
|
"data-type": D,
|
|
694
|
-
"data-invert":
|
|
694
|
+
"data-invert": Ae,
|
|
695
695
|
"data-swipe-out": $,
|
|
696
696
|
"data-swipe-direction": k,
|
|
697
697
|
"data-expanded": !!(C || X && q),
|
|
@@ -709,7 +709,7 @@ const wu = (e) => {
|
|
|
709
709
|
_(!1), T(null), We.current = null;
|
|
710
710
|
},
|
|
711
711
|
onPointerDown: (ae) => {
|
|
712
|
-
ae.button !== 2 && (
|
|
712
|
+
ae.button !== 2 && (Ke || !B || (Mt.current = /* @__PURE__ */ new Date(), Be(Ee.current), ae.target.setPointerCapture(ae.pointerId), ae.target.tagName !== "BUTTON" && (_(!0), We.current = {
|
|
713
713
|
x: ae.clientX,
|
|
714
714
|
y: ae.clientY
|
|
715
715
|
})));
|
|
@@ -759,9 +759,9 @@ const wu = (e) => {
|
|
|
759
759
|
}
|
|
760
760
|
}, ue && !l.jsx && D !== "loading" ? /* @__PURE__ */ z.createElement("button", {
|
|
761
761
|
"aria-label": V,
|
|
762
|
-
"data-disabled":
|
|
762
|
+
"data-disabled": Ke,
|
|
763
763
|
"data-close-button": !0,
|
|
764
|
-
onClick:
|
|
764
|
+
onClick: Ke || !B ? () => {
|
|
765
765
|
} : () => {
|
|
766
766
|
de(), l.onDismiss == null || l.onDismiss.call(l, l);
|
|
767
767
|
},
|
|
@@ -778,20 +778,20 @@ const wu = (e) => {
|
|
|
778
778
|
}, l.jsx ? l.jsx : typeof l.title == "function" ? l.title() : l.title), l.description ? /* @__PURE__ */ z.createElement("div", {
|
|
779
779
|
"data-description": "",
|
|
780
780
|
className: Ct(J, ee, j?.description, l == null || (s = l.classNames) == null ? void 0 : s.description)
|
|
781
|
-
}, typeof l.description == "function" ? l.description() : l.description) : null), /* @__PURE__ */ z.isValidElement(l.cancel) ? l.cancel : l.cancel &&
|
|
781
|
+
}, typeof l.description == "function" ? l.description() : l.description) : null), /* @__PURE__ */ z.isValidElement(l.cancel) ? l.cancel : l.cancel && $n(l.cancel) ? /* @__PURE__ */ z.createElement("button", {
|
|
782
782
|
"data-button": !0,
|
|
783
783
|
"data-cancel": !0,
|
|
784
784
|
style: l.cancelButtonStyle || P,
|
|
785
785
|
onClick: (ae) => {
|
|
786
|
-
|
|
786
|
+
$n(l.cancel) && B && (l.cancel.onClick == null || l.cancel.onClick.call(l.cancel, ae), de());
|
|
787
787
|
},
|
|
788
788
|
className: Ct(j?.cancelButton, l == null || (u = l.classNames) == null ? void 0 : u.cancelButton)
|
|
789
|
-
}, l.cancel.label) : null, /* @__PURE__ */ z.isValidElement(l.action) ? l.action : l.action &&
|
|
789
|
+
}, l.cancel.label) : null, /* @__PURE__ */ z.isValidElement(l.action) ? l.action : l.action && $n(l.action) ? /* @__PURE__ */ z.createElement("button", {
|
|
790
790
|
"data-button": !0,
|
|
791
791
|
"data-action": !0,
|
|
792
792
|
style: l.actionButtonStyle || R,
|
|
793
793
|
onClick: (ae) => {
|
|
794
|
-
|
|
794
|
+
$n(l.action) && (l.action.onClick == null || l.action.onClick.call(l.action, ae), !ae.defaultPrevented && de());
|
|
795
795
|
},
|
|
796
796
|
className: Ct(j?.actionButton, l == null || (c = l.classNames) == null ? void 0 : c.actionButton)
|
|
797
797
|
}, l.action.label) : null);
|
|
@@ -857,7 +857,7 @@ const Pu = /* @__PURE__ */ z.forwardRef(function(t, n) {
|
|
|
857
857
|
return;
|
|
858
858
|
}
|
|
859
859
|
setTimeout(() => {
|
|
860
|
-
|
|
860
|
+
Ri.flushSync(() => {
|
|
861
861
|
w((O) => {
|
|
862
862
|
const H = O.findIndex((E) => E.id === q.id);
|
|
863
863
|
return H !== -1 ? [
|
|
@@ -1004,7 +1004,7 @@ const Pu = /* @__PURE__ */ z.forwardRef(function(t, n) {
|
|
|
1004
1004
|
})) : null;
|
|
1005
1005
|
}));
|
|
1006
1006
|
});
|
|
1007
|
-
var Nn = { exports: {} }, Zi = {},
|
|
1007
|
+
var Nn = { exports: {} }, Zi = {}, ei = { exports: {} }, ti = { exports: {} }, Se = {};
|
|
1008
1008
|
var Ca;
|
|
1009
1009
|
function Su() {
|
|
1010
1010
|
if (Ca) return Se;
|
|
@@ -1157,7 +1157,7 @@ function Tu() {
|
|
|
1157
1157
|
}
|
|
1158
1158
|
var Na;
|
|
1159
1159
|
function ps() {
|
|
1160
|
-
return Na || (Na = 1, process.env.NODE_ENV === "production" ?
|
|
1160
|
+
return Na || (Na = 1, process.env.NODE_ENV === "production" ? ti.exports = Su() : ti.exports = Tu()), ti.exports;
|
|
1161
1161
|
}
|
|
1162
1162
|
var Qi, Da;
|
|
1163
1163
|
function ku() {
|
|
@@ -1636,17 +1636,17 @@ function Nu() {
|
|
|
1636
1636
|
}
|
|
1637
1637
|
var La;
|
|
1638
1638
|
function fs() {
|
|
1639
|
-
if (La) return
|
|
1639
|
+
if (La) return ei.exports;
|
|
1640
1640
|
if (La = 1, process.env.NODE_ENV !== "production") {
|
|
1641
1641
|
var e = ps(), t = !0;
|
|
1642
|
-
|
|
1642
|
+
ei.exports = /* @__PURE__ */ Au()(e.isElement, t);
|
|
1643
1643
|
} else
|
|
1644
|
-
|
|
1645
|
-
return
|
|
1644
|
+
ei.exports = /* @__PURE__ */ Nu()();
|
|
1645
|
+
return ei.exports;
|
|
1646
1646
|
}
|
|
1647
|
-
var
|
|
1647
|
+
var ni = { exports: {} }, Fa;
|
|
1648
1648
|
function Du() {
|
|
1649
|
-
if (Fa) return
|
|
1649
|
+
if (Fa) return ni.exports;
|
|
1650
1650
|
Fa = 1;
|
|
1651
1651
|
function e(n) {
|
|
1652
1652
|
var i, r, a = "";
|
|
@@ -1661,10 +1661,10 @@ function Du() {
|
|
|
1661
1661
|
for (var n, i, r = 0, a = "", o = arguments.length; r < o; r++) (n = arguments[r]) && (i = e(n)) && (a && (a += " "), a += i);
|
|
1662
1662
|
return a;
|
|
1663
1663
|
}
|
|
1664
|
-
return
|
|
1664
|
+
return ni.exports = t, ni.exports.clsx = t, ni.exports;
|
|
1665
1665
|
}
|
|
1666
1666
|
var Ue = {}, zt = {}, Ga;
|
|
1667
|
-
function
|
|
1667
|
+
function Ei() {
|
|
1668
1668
|
if (Ga) return zt;
|
|
1669
1669
|
Ga = 1, Object.defineProperty(zt, "__esModule", {
|
|
1670
1670
|
value: !0
|
|
@@ -1724,7 +1724,7 @@ function Yr() {
|
|
|
1724
1724
|
ja = 1, Object.defineProperty(Ue, "__esModule", {
|
|
1725
1725
|
value: !0
|
|
1726
1726
|
}), Ue.addClassName = b, Ue.addEvent = o, Ue.addUserSelectStyles = S, Ue.createCSSTransform = m, Ue.createSVGTransform = p, Ue.getTouch = y, Ue.getTouchIdentifier = v, Ue.getTranslation = g, Ue.innerHeight = d, Ue.innerWidth = l, Ue.matchesSelector = r, Ue.matchesSelectorAndParentsTo = a, Ue.offsetXYFromParent = f, Ue.outerHeight = u, Ue.outerWidth = c, Ue.removeClassName = N, Ue.removeEvent = s, Ue.scheduleRemoveUserSelectStyles = C;
|
|
1727
|
-
var e =
|
|
1727
|
+
var e = Ei(), t = n(Ru());
|
|
1728
1728
|
function n(w, P) {
|
|
1729
1729
|
if (typeof WeakMap == "function") var R = /* @__PURE__ */ new WeakMap(), L = /* @__PURE__ */ new WeakMap();
|
|
1730
1730
|
return (n = function(J, G) {
|
|
@@ -1865,7 +1865,7 @@ function gs() {
|
|
|
1865
1865
|
Ua = 1, Object.defineProperty(At, "__esModule", {
|
|
1866
1866
|
value: !0
|
|
1867
1867
|
}), At.canDragX = r, At.canDragY = a, At.createCoreData = s, At.createDraggableData = u, At.getBoundPosition = n, At.getControlPosition = o, At.snapToGrid = i;
|
|
1868
|
-
var e =
|
|
1868
|
+
var e = Ei(), t = Yr();
|
|
1869
1869
|
function n(l, f, m) {
|
|
1870
1870
|
if (!l.props.bounds) return [f, m];
|
|
1871
1871
|
let {
|
|
@@ -1954,15 +1954,15 @@ function gs() {
|
|
|
1954
1954
|
}
|
|
1955
1955
|
return At;
|
|
1956
1956
|
}
|
|
1957
|
-
var Dn = {},
|
|
1957
|
+
var Dn = {}, ii = {}, za;
|
|
1958
1958
|
function ys() {
|
|
1959
|
-
if (za) return
|
|
1960
|
-
za = 1, Object.defineProperty(
|
|
1959
|
+
if (za) return ii;
|
|
1960
|
+
za = 1, Object.defineProperty(ii, "__esModule", {
|
|
1961
1961
|
value: !0
|
|
1962
|
-
}),
|
|
1962
|
+
}), ii.default = e;
|
|
1963
1963
|
function e() {
|
|
1964
1964
|
}
|
|
1965
|
-
return
|
|
1965
|
+
return ii;
|
|
1966
1966
|
}
|
|
1967
1967
|
var Ha;
|
|
1968
1968
|
function Eu() {
|
|
@@ -1970,7 +1970,7 @@ function Eu() {
|
|
|
1970
1970
|
Ha = 1, Object.defineProperty(Dn, "__esModule", {
|
|
1971
1971
|
value: !0
|
|
1972
1972
|
}), Dn.default = void 0;
|
|
1973
|
-
var e = u(z), t = s(/* @__PURE__ */ fs()), n = s(
|
|
1973
|
+
var e = u(z), t = s(/* @__PURE__ */ fs()), n = s(Ri), i = Yr(), r = gs(), a = Ei(), o = s(ys());
|
|
1974
1974
|
function s(g) {
|
|
1975
1975
|
return g && g.__esModule ? g : { default: g };
|
|
1976
1976
|
}
|
|
@@ -2275,7 +2275,7 @@ function Ou() {
|
|
|
2275
2275
|
return u.default;
|
|
2276
2276
|
}
|
|
2277
2277
|
}), e.default = void 0;
|
|
2278
|
-
var t = l(z), n = d(/* @__PURE__ */ fs()), i = d(
|
|
2278
|
+
var t = l(z), n = d(/* @__PURE__ */ fs()), i = d(Ri), r = Du(), a = Yr(), o = gs(), s = Ei(), u = d(Eu()), c = d(ys());
|
|
2279
2279
|
function d(v) {
|
|
2280
2280
|
return v && v.__esModule ? v : { default: v };
|
|
2281
2281
|
}
|
|
@@ -2729,7 +2729,7 @@ const od = [
|
|
|
2729
2729
|
const ld = [
|
|
2730
2730
|
["path", { d: "M18 6 6 18", key: "1bl5f8" }],
|
|
2731
2731
|
["path", { d: "m6 6 12 12", key: "d8bk6v" }]
|
|
2732
|
-
],
|
|
2732
|
+
], Oi = ot("x", ld), Ps = ({
|
|
2733
2733
|
size: e = 24,
|
|
2734
2734
|
color: t = "currentColor",
|
|
2735
2735
|
className: n
|
|
@@ -2823,11 +2823,11 @@ function Ss(e, t) {
|
|
|
2823
2823
|
return e.apply(t, arguments);
|
|
2824
2824
|
};
|
|
2825
2825
|
}
|
|
2826
|
-
const { toString: ud } = Object.prototype, { getPrototypeOf: qr } = Object, { iterator:
|
|
2826
|
+
const { toString: ud } = Object.prototype, { getPrototypeOf: qr } = Object, { iterator: Mi, toStringTag: Ts } = Symbol, Ii = /* @__PURE__ */ ((e) => (t) => {
|
|
2827
2827
|
const n = ud.call(t);
|
|
2828
2828
|
return e[n] || (e[n] = n.slice(8, -1).toLowerCase());
|
|
2829
|
-
})(/* @__PURE__ */ Object.create(null)), Tt = (e) => (e = e.toLowerCase(), (t) =>
|
|
2830
|
-
function
|
|
2829
|
+
})(/* @__PURE__ */ Object.create(null)), Tt = (e) => (e = e.toLowerCase(), (t) => Ii(t) === e), Li = (e) => (t) => typeof t === e, { isArray: Sn } = Array, wn = Li("undefined");
|
|
2830
|
+
function Hn(e) {
|
|
2831
2831
|
return e !== null && !wn(e) && e.constructor !== null && !wn(e.constructor) && rt(e.constructor.isBuffer) && e.constructor.isBuffer(e);
|
|
2832
2832
|
}
|
|
2833
2833
|
const ks = Tt("ArrayBuffer");
|
|
@@ -2835,22 +2835,22 @@ function dd(e) {
|
|
|
2835
2835
|
let t;
|
|
2836
2836
|
return typeof ArrayBuffer < "u" && ArrayBuffer.isView ? t = ArrayBuffer.isView(e) : t = e && e.buffer && ks(e.buffer), t;
|
|
2837
2837
|
}
|
|
2838
|
-
const hd =
|
|
2839
|
-
if (
|
|
2838
|
+
const hd = Li("string"), rt = Li("function"), Cs = Li("number"), Yn = (e) => e !== null && typeof e == "object", pd = (e) => e === !0 || e === !1, ci = (e) => {
|
|
2839
|
+
if (Ii(e) !== "object")
|
|
2840
2840
|
return !1;
|
|
2841
2841
|
const t = qr(e);
|
|
2842
|
-
return (t === null || t === Object.prototype || Object.getPrototypeOf(t) === null) && !(Ts in e) && !(
|
|
2842
|
+
return (t === null || t === Object.prototype || Object.getPrototypeOf(t) === null) && !(Ts in e) && !(Mi in e);
|
|
2843
2843
|
}, md = (e) => {
|
|
2844
|
-
if (!
|
|
2844
|
+
if (!Yn(e) || Hn(e))
|
|
2845
2845
|
return !1;
|
|
2846
2846
|
try {
|
|
2847
2847
|
return Object.keys(e).length === 0 && Object.getPrototypeOf(e) === Object.prototype;
|
|
2848
2848
|
} catch {
|
|
2849
2849
|
return !1;
|
|
2850
2850
|
}
|
|
2851
|
-
}, fd = Tt("Date"), gd = Tt("File"), yd = Tt("Blob"), bd = Tt("FileList"), vd = (e) =>
|
|
2851
|
+
}, fd = Tt("Date"), gd = Tt("File"), yd = Tt("Blob"), bd = Tt("FileList"), vd = (e) => Yn(e) && rt(e.pipe), wd = (e) => {
|
|
2852
2852
|
let t;
|
|
2853
|
-
return e && (typeof FormData == "function" && e instanceof FormData || rt(e.append) && ((t =
|
|
2853
|
+
return e && (typeof FormData == "function" && e instanceof FormData || rt(e.append) && ((t = Ii(e)) === "formdata" || // detect form-data instance
|
|
2854
2854
|
t === "object" && rt(e.toString) && e.toString() === "[object FormData]"));
|
|
2855
2855
|
}, xd = Tt("URLSearchParams"), [Pd, Sd, Td, kd] = [
|
|
2856
2856
|
"ReadableStream",
|
|
@@ -2858,7 +2858,7 @@ const hd = Ii("string"), rt = Ii("function"), Cs = Ii("number"), Hn = (e) => e !
|
|
|
2858
2858
|
"Response",
|
|
2859
2859
|
"Headers"
|
|
2860
2860
|
].map(Tt), Cd = (e) => e.trim ? e.trim() : e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "");
|
|
2861
|
-
function
|
|
2861
|
+
function qn(e, t, { allOwnKeys: n = !1 } = {}) {
|
|
2862
2862
|
if (e === null || typeof e > "u")
|
|
2863
2863
|
return;
|
|
2864
2864
|
let i, r;
|
|
@@ -2866,7 +2866,7 @@ function Yn(e, t, { allOwnKeys: n = !1 } = {}) {
|
|
|
2866
2866
|
for (i = 0, r = e.length; i < r; i++)
|
|
2867
2867
|
t.call(null, e[i], i, e);
|
|
2868
2868
|
else {
|
|
2869
|
-
if (
|
|
2869
|
+
if (Hn(e))
|
|
2870
2870
|
return;
|
|
2871
2871
|
const a = n ? Object.getOwnPropertyNames(e) : Object.keys(e), o = a.length;
|
|
2872
2872
|
let s;
|
|
@@ -2875,7 +2875,7 @@ function Yn(e, t, { allOwnKeys: n = !1 } = {}) {
|
|
|
2875
2875
|
}
|
|
2876
2876
|
}
|
|
2877
2877
|
function As(e, t) {
|
|
2878
|
-
if (
|
|
2878
|
+
if (Hn(e))
|
|
2879
2879
|
return null;
|
|
2880
2880
|
t = t.toLowerCase();
|
|
2881
2881
|
const n = Object.keys(e);
|
|
@@ -2891,13 +2891,13 @@ function yr() {
|
|
|
2891
2891
|
if (a === "__proto__" || a === "constructor" || a === "prototype")
|
|
2892
2892
|
return;
|
|
2893
2893
|
const o = e && As(n, a) || a;
|
|
2894
|
-
|
|
2894
|
+
ci(n[o]) && ci(r) ? n[o] = yr(n[o], r) : ci(r) ? n[o] = yr({}, r) : Sn(r) ? n[o] = r.slice() : (!t || !wn(r)) && (n[o] = r);
|
|
2895
2895
|
};
|
|
2896
2896
|
for (let r = 0, a = arguments.length; r < a; r++)
|
|
2897
|
-
arguments[r] &&
|
|
2897
|
+
arguments[r] && qn(arguments[r], i);
|
|
2898
2898
|
return n;
|
|
2899
2899
|
}
|
|
2900
|
-
const Ad = (e, t, n, { allOwnKeys: i } = {}) => (
|
|
2900
|
+
const Ad = (e, t, n, { allOwnKeys: i } = {}) => (qn(
|
|
2901
2901
|
t,
|
|
2902
2902
|
(r, a) => {
|
|
2903
2903
|
n && rt(r) ? Object.defineProperty(e, a, {
|
|
@@ -2949,7 +2949,7 @@ const Ad = (e, t, n, { allOwnKeys: i } = {}) => (Yn(
|
|
|
2949
2949
|
n[t] = e[t];
|
|
2950
2950
|
return n;
|
|
2951
2951
|
}, Md = /* @__PURE__ */ ((e) => (t) => e && t instanceof e)(typeof Uint8Array < "u" && qr(Uint8Array)), Id = (e, t) => {
|
|
2952
|
-
const i = (e && e[
|
|
2952
|
+
const i = (e && e[Mi]).call(e);
|
|
2953
2953
|
let r;
|
|
2954
2954
|
for (; (r = i.next()) && !r.done; ) {
|
|
2955
2955
|
const a = r.value;
|
|
@@ -2965,7 +2965,7 @@ const Ad = (e, t, n, { allOwnKeys: i } = {}) => (Yn(
|
|
|
2965
2965
|
return i.toUpperCase() + r;
|
|
2966
2966
|
}), _a = (({ hasOwnProperty: e }) => (t, n) => e.call(t, n))(Object.prototype), Bd = Tt("RegExp"), Ds = (e, t) => {
|
|
2967
2967
|
const n = Object.getOwnPropertyDescriptors(e), i = {};
|
|
2968
|
-
|
|
2968
|
+
qn(n, (r, a) => {
|
|
2969
2969
|
let o;
|
|
2970
2970
|
(o = t(r, a, e)) !== !1 && (i[a] = o || r);
|
|
2971
2971
|
}), Object.defineProperties(e, i);
|
|
@@ -2994,19 +2994,19 @@ const Ad = (e, t, n, { allOwnKeys: i } = {}) => (Yn(
|
|
|
2994
2994
|
}, zd = () => {
|
|
2995
2995
|
}, Hd = (e, t) => e != null && Number.isFinite(e = +e) ? e : t;
|
|
2996
2996
|
function Yd(e) {
|
|
2997
|
-
return !!(e && rt(e.append) && e[Ts] === "FormData" && e[
|
|
2997
|
+
return !!(e && rt(e.append) && e[Ts] === "FormData" && e[Mi]);
|
|
2998
2998
|
}
|
|
2999
2999
|
const qd = (e) => {
|
|
3000
3000
|
const t = new Array(10), n = (i, r) => {
|
|
3001
|
-
if (
|
|
3001
|
+
if (Yn(i)) {
|
|
3002
3002
|
if (t.indexOf(i) >= 0)
|
|
3003
3003
|
return;
|
|
3004
|
-
if (
|
|
3004
|
+
if (Hn(i))
|
|
3005
3005
|
return i;
|
|
3006
3006
|
if (!("toJSON" in i)) {
|
|
3007
3007
|
t[r] = i;
|
|
3008
3008
|
const a = Sn(i) ? [] : {};
|
|
3009
|
-
return
|
|
3009
|
+
return qn(i, (o, s) => {
|
|
3010
3010
|
const u = n(o, r + 1);
|
|
3011
3011
|
!wn(u) && (a[s] = u);
|
|
3012
3012
|
}), t[r] = void 0, a;
|
|
@@ -3015,7 +3015,7 @@ const qd = (e) => {
|
|
|
3015
3015
|
return i;
|
|
3016
3016
|
};
|
|
3017
3017
|
return n(e, 0);
|
|
3018
|
-
}, Wd = Tt("AsyncFunction"), _d = (e) => e && (
|
|
3018
|
+
}, Wd = Tt("AsyncFunction"), _d = (e) => e && (Yn(e) || rt(e)) && rt(e.then) && rt(e.catch), Rs = ((e, t) => e ? setImmediate : t ? ((n, i) => (nn.addEventListener(
|
|
3019
3019
|
"message",
|
|
3020
3020
|
({ source: r, data: a }) => {
|
|
3021
3021
|
r === nn && a === n && i.length && i.shift()();
|
|
@@ -3023,17 +3023,17 @@ const qd = (e) => {
|
|
|
3023
3023
|
!1
|
|
3024
3024
|
), (r) => {
|
|
3025
3025
|
i.push(r), nn.postMessage(n, "*");
|
|
3026
|
-
}))(`axios@${Math.random()}`, []) : (n) => setTimeout(n))(typeof setImmediate == "function", rt(nn.postMessage)), Vd = typeof queueMicrotask < "u" ? queueMicrotask.bind(nn) : typeof process < "u" && process.nextTick || Rs, Kd = (e) => e != null && rt(e[
|
|
3026
|
+
}))(`axios@${Math.random()}`, []) : (n) => setTimeout(n))(typeof setImmediate == "function", rt(nn.postMessage)), Vd = typeof queueMicrotask < "u" ? queueMicrotask.bind(nn) : typeof process < "u" && process.nextTick || Rs, Kd = (e) => e != null && rt(e[Mi]), F = {
|
|
3027
3027
|
isArray: Sn,
|
|
3028
3028
|
isArrayBuffer: ks,
|
|
3029
|
-
isBuffer:
|
|
3029
|
+
isBuffer: Hn,
|
|
3030
3030
|
isFormData: wd,
|
|
3031
3031
|
isArrayBufferView: dd,
|
|
3032
3032
|
isString: hd,
|
|
3033
3033
|
isNumber: Cs,
|
|
3034
3034
|
isBoolean: pd,
|
|
3035
|
-
isObject:
|
|
3036
|
-
isPlainObject:
|
|
3035
|
+
isObject: Yn,
|
|
3036
|
+
isPlainObject: ci,
|
|
3037
3037
|
isEmptyObject: md,
|
|
3038
3038
|
isReadableStream: Pd,
|
|
3039
3039
|
isRequest: Sd,
|
|
@@ -3049,14 +3049,14 @@ const qd = (e) => {
|
|
|
3049
3049
|
isURLSearchParams: xd,
|
|
3050
3050
|
isTypedArray: Md,
|
|
3051
3051
|
isFileList: bd,
|
|
3052
|
-
forEach:
|
|
3052
|
+
forEach: qn,
|
|
3053
3053
|
merge: yr,
|
|
3054
3054
|
extend: Ad,
|
|
3055
3055
|
trim: Cd,
|
|
3056
3056
|
stripBOM: Nd,
|
|
3057
3057
|
inherits: Dd,
|
|
3058
3058
|
toFlatObject: Rd,
|
|
3059
|
-
kindOf:
|
|
3059
|
+
kindOf: Ii,
|
|
3060
3060
|
kindOfTest: Tt,
|
|
3061
3061
|
endsWith: Ed,
|
|
3062
3062
|
toArray: Od,
|
|
@@ -3152,7 +3152,7 @@ function Xd(e) {
|
|
|
3152
3152
|
const Zd = F.toFlatObject(F, {}, null, function(t) {
|
|
3153
3153
|
return /^is[A-Z]/.test(t);
|
|
3154
3154
|
});
|
|
3155
|
-
function
|
|
3155
|
+
function Fi(e, t, n) {
|
|
3156
3156
|
if (!F.isObject(e))
|
|
3157
3157
|
throw new TypeError("target must be an object");
|
|
3158
3158
|
t = t || new FormData(), n = F.toFlatObject(n, {
|
|
@@ -3230,7 +3230,7 @@ function Ka(e) {
|
|
|
3230
3230
|
});
|
|
3231
3231
|
}
|
|
3232
3232
|
function Wr(e, t) {
|
|
3233
|
-
this._pairs = [], e &&
|
|
3233
|
+
this._pairs = [], e && Fi(e, this, t);
|
|
3234
3234
|
}
|
|
3235
3235
|
const Ms = Wr.prototype;
|
|
3236
3236
|
Ms.append = function(t, n) {
|
|
@@ -3336,14 +3336,14 @@ self instanceof WorkerGlobalScope && typeof self.importScripts == "function", ah
|
|
|
3336
3336
|
hasStandardBrowserWebWorkerEnv: rh,
|
|
3337
3337
|
navigator: vr,
|
|
3338
3338
|
origin: ah
|
|
3339
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
3339
|
+
}, Symbol.toStringTag, { value: "Module" })), Je = {
|
|
3340
3340
|
...oh,
|
|
3341
3341
|
...nh
|
|
3342
3342
|
};
|
|
3343
3343
|
function sh(e, t) {
|
|
3344
|
-
return
|
|
3344
|
+
return Fi(e, new Je.classes.URLSearchParams(), {
|
|
3345
3345
|
visitor: function(n, i, r, a) {
|
|
3346
|
-
return
|
|
3346
|
+
return Je.isNode && F.isBuffer(n) ? (this.append(i, n.toString("base64")), !1) : a.defaultVisitor.apply(this, arguments);
|
|
3347
3347
|
},
|
|
3348
3348
|
...t
|
|
3349
3349
|
});
|
|
@@ -3385,7 +3385,7 @@ function uh(e, t, n) {
|
|
|
3385
3385
|
}
|
|
3386
3386
|
return (n || JSON.stringify)(e);
|
|
3387
3387
|
}
|
|
3388
|
-
const
|
|
3388
|
+
const Wn = {
|
|
3389
3389
|
transitional: _r,
|
|
3390
3390
|
adapter: ["xhr", "http", "fetch"],
|
|
3391
3391
|
transformRequest: [function(t, n) {
|
|
@@ -3404,7 +3404,7 @@ const qn = {
|
|
|
3404
3404
|
return sh(t, this.formSerializer).toString();
|
|
3405
3405
|
if ((s = F.isFileList(t)) || i.indexOf("multipart/form-data") > -1) {
|
|
3406
3406
|
const u = this.env && this.env.FormData;
|
|
3407
|
-
return
|
|
3407
|
+
return Fi(
|
|
3408
3408
|
s ? { "files[]": t } : t,
|
|
3409
3409
|
u && new u(),
|
|
3410
3410
|
this.formSerializer
|
|
@@ -3414,7 +3414,7 @@ const qn = {
|
|
|
3414
3414
|
return a || r ? (n.setContentType("application/json", !1), uh(t)) : t;
|
|
3415
3415
|
}],
|
|
3416
3416
|
transformResponse: [function(t) {
|
|
3417
|
-
const n = this.transitional ||
|
|
3417
|
+
const n = this.transitional || Wn.transitional, i = n && n.forcedJSONParsing, r = this.responseType === "json";
|
|
3418
3418
|
if (F.isResponse(t) || F.isReadableStream(t))
|
|
3419
3419
|
return t;
|
|
3420
3420
|
if (t && F.isString(t) && (i && !this.responseType || r)) {
|
|
@@ -3438,8 +3438,8 @@ const qn = {
|
|
|
3438
3438
|
maxContentLength: -1,
|
|
3439
3439
|
maxBodyLength: -1,
|
|
3440
3440
|
env: {
|
|
3441
|
-
FormData:
|
|
3442
|
-
Blob:
|
|
3441
|
+
FormData: Je.classes.FormData,
|
|
3442
|
+
Blob: Je.classes.Blob
|
|
3443
3443
|
},
|
|
3444
3444
|
validateStatus: function(t) {
|
|
3445
3445
|
return t >= 200 && t < 300;
|
|
@@ -3452,7 +3452,7 @@ const qn = {
|
|
|
3452
3452
|
}
|
|
3453
3453
|
};
|
|
3454
3454
|
F.forEach(["delete", "get", "head", "post", "put", "patch"], (e) => {
|
|
3455
|
-
|
|
3455
|
+
Wn.headers[e] = {};
|
|
3456
3456
|
});
|
|
3457
3457
|
const dh = F.toObjectSet([
|
|
3458
3458
|
"age",
|
|
@@ -3483,8 +3483,8 @@ const dh = F.toObjectSet([
|
|
|
3483
3483
|
function Rn(e) {
|
|
3484
3484
|
return e && String(e).trim().toLowerCase();
|
|
3485
3485
|
}
|
|
3486
|
-
function
|
|
3487
|
-
return e === !1 || e == null ? e : F.isArray(e) ? e.map(
|
|
3486
|
+
function ui(e) {
|
|
3487
|
+
return e === !1 || e == null ? e : F.isArray(e) ? e.map(ui) : String(e);
|
|
3488
3488
|
}
|
|
3489
3489
|
function ph(e) {
|
|
3490
3490
|
const t = /* @__PURE__ */ Object.create(null), n = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;
|
|
@@ -3529,7 +3529,7 @@ let at = class {
|
|
|
3529
3529
|
if (!d)
|
|
3530
3530
|
throw new Error("header name must be a non-empty string");
|
|
3531
3531
|
const l = F.findKey(r, d);
|
|
3532
|
-
(!l || r[l] === void 0 || c === !0 || c === void 0 && r[l] !== !1) && (r[l || u] =
|
|
3532
|
+
(!l || r[l] === void 0 || c === !0 || c === void 0 && r[l] !== !1) && (r[l || u] = ui(s));
|
|
3533
3533
|
}
|
|
3534
3534
|
const o = (s, u) => F.forEach(s, (c, d) => a(c, d, u));
|
|
3535
3535
|
if (F.isPlainObject(t) || t instanceof this.constructor)
|
|
@@ -3597,11 +3597,11 @@ let at = class {
|
|
|
3597
3597
|
return F.forEach(this, (r, a) => {
|
|
3598
3598
|
const o = F.findKey(i, a);
|
|
3599
3599
|
if (o) {
|
|
3600
|
-
n[o] =
|
|
3600
|
+
n[o] = ui(r), delete n[a];
|
|
3601
3601
|
return;
|
|
3602
3602
|
}
|
|
3603
3603
|
const s = t ? fh(a) : String(a).trim();
|
|
3604
|
-
s !== a && delete n[a], n[s] =
|
|
3604
|
+
s !== a && delete n[a], n[s] = ui(r), i[s] = !0;
|
|
3605
3605
|
}), this;
|
|
3606
3606
|
}
|
|
3607
3607
|
concat(...t) {
|
|
@@ -3656,7 +3656,7 @@ F.reduceDescriptors(at.prototype, ({ value: e }, t) => {
|
|
|
3656
3656
|
});
|
|
3657
3657
|
F.freezeMethods(at);
|
|
3658
3658
|
function ar(e, t) {
|
|
3659
|
-
const n = this ||
|
|
3659
|
+
const n = this || Wn, i = t || n, r = at.from(i.headers);
|
|
3660
3660
|
let a = i.data;
|
|
3661
3661
|
return F.forEach(e, function(s) {
|
|
3662
3662
|
a = s.call(n, a, r.normalize(), t ? t.status : void 0);
|
|
@@ -3665,7 +3665,7 @@ function ar(e, t) {
|
|
|
3665
3665
|
function Fs(e) {
|
|
3666
3666
|
return !!(e && e.__CANCEL__);
|
|
3667
3667
|
}
|
|
3668
|
-
let
|
|
3668
|
+
let _n = class extends he {
|
|
3669
3669
|
/**
|
|
3670
3670
|
* A `CanceledError` is an object that is thrown when an operation is canceled.
|
|
3671
3671
|
*
|
|
@@ -3721,7 +3721,7 @@ function vh(e, t) {
|
|
|
3721
3721
|
}, i - l)));
|
|
3722
3722
|
}, () => r && o(r)];
|
|
3723
3723
|
}
|
|
3724
|
-
const
|
|
3724
|
+
const fi = (e, t, n = 3) => {
|
|
3725
3725
|
let i = 0;
|
|
3726
3726
|
const r = bh(50, 250);
|
|
3727
3727
|
return vh((a) => {
|
|
@@ -3747,10 +3747,10 @@ const mi = (e, t, n = 3) => {
|
|
|
3747
3747
|
total: e,
|
|
3748
3748
|
loaded: i
|
|
3749
3749
|
}), t[1]];
|
|
3750
|
-
}, Qa = (e) => (...t) => F.asap(() => e(...t)), wh =
|
|
3751
|
-
new URL(
|
|
3752
|
-
|
|
3753
|
-
) : () => !0, xh =
|
|
3750
|
+
}, Qa = (e) => (...t) => F.asap(() => e(...t)), wh = Je.hasStandardBrowserEnv ? /* @__PURE__ */ ((e, t) => (n) => (n = new URL(n, Je.origin), e.protocol === n.protocol && e.host === n.host && (t || e.port === n.port)))(
|
|
3751
|
+
new URL(Je.origin),
|
|
3752
|
+
Je.navigator && /(msie|trident)/i.test(Je.navigator.userAgent)
|
|
3753
|
+
) : () => !0, xh = Je.hasStandardBrowserEnv ? (
|
|
3754
3754
|
// Standard browser envs support document.cookie
|
|
3755
3755
|
{
|
|
3756
3756
|
write(e, t, n, i, r, a, o) {
|
|
@@ -3866,7 +3866,7 @@ const js = (e) => {
|
|
|
3866
3866
|
"Authorization",
|
|
3867
3867
|
"Basic " + btoa((s.username || "") + ":" + (s.password ? unescape(encodeURIComponent(s.password)) : ""))
|
|
3868
3868
|
), F.isFormData(n)) {
|
|
3869
|
-
if (
|
|
3869
|
+
if (Je.hasStandardBrowserEnv || Je.hasStandardBrowserWebWorkerEnv)
|
|
3870
3870
|
o.setContentType(void 0);
|
|
3871
3871
|
else if (F.isFunction(n.getHeaders)) {
|
|
3872
3872
|
const u = n.getHeaders(), c = ["content-type", "content-length"];
|
|
@@ -3875,7 +3875,7 @@ const js = (e) => {
|
|
|
3875
3875
|
});
|
|
3876
3876
|
}
|
|
3877
3877
|
}
|
|
3878
|
-
if (
|
|
3878
|
+
if (Je.hasStandardBrowserEnv && (i && F.isFunction(i) && (i = i(t)), i || i !== !1 && wh(t.url))) {
|
|
3879
3879
|
const u = r && a && xh.read(a);
|
|
3880
3880
|
u && o.set(r, u);
|
|
3881
3881
|
}
|
|
@@ -3928,11 +3928,11 @@ const js = (e) => {
|
|
|
3928
3928
|
)), y = null;
|
|
3929
3929
|
}, a === void 0 && o.setContentType(null), "setRequestHeader" in y && F.forEach(o.toJSON(), function(x, b) {
|
|
3930
3930
|
y.setRequestHeader(b, x);
|
|
3931
|
-
}), F.isUndefined(r.withCredentials) || (y.withCredentials = !!r.withCredentials), s && s !== "json" && (y.responseType = r.responseType), c && ([f, p] =
|
|
3932
|
-
y && (i(!C || C.type ? new
|
|
3931
|
+
}), F.isUndefined(r.withCredentials) || (y.withCredentials = !!r.withCredentials), s && s !== "json" && (y.responseType = r.responseType), c && ([f, p] = fi(c, !0), y.addEventListener("progress", f)), u && y.upload && ([l, m] = fi(u), y.upload.addEventListener("progress", l), y.upload.addEventListener("loadend", m)), (r.cancelToken || r.signal) && (d = (C) => {
|
|
3932
|
+
y && (i(!C || C.type ? new _n(null, e, y) : C), y.abort(), y = null);
|
|
3933
3933
|
}, r.cancelToken && r.cancelToken.subscribe(d), r.signal && (r.signal.aborted ? d() : r.signal.addEventListener("abort", d)));
|
|
3934
3934
|
const S = yh(r.url);
|
|
3935
|
-
if (S &&
|
|
3935
|
+
if (S && Je.protocols.indexOf(S) === -1) {
|
|
3936
3936
|
i(new he("Unsupported protocol " + S + ":", he.ERR_BAD_REQUEST, e));
|
|
3937
3937
|
return;
|
|
3938
3938
|
}
|
|
@@ -3946,7 +3946,7 @@ const js = (e) => {
|
|
|
3946
3946
|
if (!r) {
|
|
3947
3947
|
r = !0, s();
|
|
3948
3948
|
const d = c instanceof Error ? c : this.reason;
|
|
3949
|
-
i.abort(d instanceof he ? d : new
|
|
3949
|
+
i.abort(d instanceof he ? d : new _n(d instanceof Error ? d.message : d));
|
|
3950
3950
|
}
|
|
3951
3951
|
};
|
|
3952
3952
|
let o = t && setTimeout(() => {
|
|
@@ -4018,7 +4018,7 @@ const js = (e) => {
|
|
|
4018
4018
|
}, {
|
|
4019
4019
|
highWaterMark: 2
|
|
4020
4020
|
});
|
|
4021
|
-
}, to = 64 * 1024, { isFunction:
|
|
4021
|
+
}, to = 64 * 1024, { isFunction: ri } = F, Rh = (({ Request: e, Response: t }) => ({
|
|
4022
4022
|
Request: e,
|
|
4023
4023
|
Response: t
|
|
4024
4024
|
}))(F.global), {
|
|
@@ -4034,12 +4034,12 @@ const js = (e) => {
|
|
|
4034
4034
|
e = F.merge.call({
|
|
4035
4035
|
skipUndefined: !0
|
|
4036
4036
|
}, Rh, e);
|
|
4037
|
-
const { fetch: t, Request: n, Response: i } = e, r = t ?
|
|
4037
|
+
const { fetch: t, Request: n, Response: i } = e, r = t ? ri(t) : typeof fetch == "function", a = ri(n), o = ri(i);
|
|
4038
4038
|
if (!r)
|
|
4039
4039
|
return !1;
|
|
4040
|
-
const s = r &&
|
|
4040
|
+
const s = r && ri(no), u = r && (typeof io == "function" ? /* @__PURE__ */ ((p) => (g) => p.encode(g))(new io()) : async (p) => new Uint8Array(await new n(p).arrayBuffer())), c = a && s && ro(() => {
|
|
4041
4041
|
let p = !1;
|
|
4042
|
-
const g = new n(
|
|
4042
|
+
const g = new n(Je.origin, {
|
|
4043
4043
|
body: new no(),
|
|
4044
4044
|
method: "POST",
|
|
4045
4045
|
get duplex() {
|
|
@@ -4064,7 +4064,7 @@ const js = (e) => {
|
|
|
4064
4064
|
if (F.isBlob(p))
|
|
4065
4065
|
return p.size;
|
|
4066
4066
|
if (F.isSpecCompliantForm(p))
|
|
4067
|
-
return (await new n(
|
|
4067
|
+
return (await new n(Je.origin, {
|
|
4068
4068
|
method: "POST",
|
|
4069
4069
|
body: p
|
|
4070
4070
|
}).arrayBuffer()).byteLength;
|
|
@@ -4107,7 +4107,7 @@ const js = (e) => {
|
|
|
4107
4107
|
if (F.isFormData(v) && (U = k.headers.get("content-type")) && P.setContentType(U), k.body) {
|
|
4108
4108
|
const [q, O] = Za(
|
|
4109
4109
|
X,
|
|
4110
|
-
|
|
4110
|
+
fi(Qa(N))
|
|
4111
4111
|
);
|
|
4112
4112
|
v = eo(k.body, to, q, O);
|
|
4113
4113
|
}
|
|
@@ -4132,7 +4132,7 @@ const js = (e) => {
|
|
|
4132
4132
|
});
|
|
4133
4133
|
const U = F.toFiniteNumber(V.headers.get("content-length")), [q, O] = b && Za(
|
|
4134
4134
|
U,
|
|
4135
|
-
|
|
4135
|
+
fi(Qa(b), !0)
|
|
4136
4136
|
) || [];
|
|
4137
4137
|
V = new i(
|
|
4138
4138
|
eo(V.body, to, q, () => {
|
|
@@ -4234,13 +4234,13 @@ const zs = {
|
|
|
4234
4234
|
};
|
|
4235
4235
|
function or(e) {
|
|
4236
4236
|
if (e.cancelToken && e.cancelToken.throwIfRequested(), e.signal && e.signal.aborted)
|
|
4237
|
-
throw new
|
|
4237
|
+
throw new _n(null, e);
|
|
4238
4238
|
}
|
|
4239
4239
|
function oo(e) {
|
|
4240
4240
|
return or(e), e.headers = at.from(e.headers), e.data = ar.call(
|
|
4241
4241
|
e,
|
|
4242
4242
|
e.transformRequest
|
|
4243
|
-
), ["post", "put", "patch"].indexOf(e.method) !== -1 && e.headers.setContentType("application/x-www-form-urlencoded", !1), zs.getAdapter(e.adapter ||
|
|
4243
|
+
), ["post", "put", "patch"].indexOf(e.method) !== -1 && e.headers.setContentType("application/x-www-form-urlencoded", !1), zs.getAdapter(e.adapter || Wn.adapter, e)(e).then(function(i) {
|
|
4244
4244
|
return or(e), i.data = ar.call(
|
|
4245
4245
|
e,
|
|
4246
4246
|
e.transformResponse,
|
|
@@ -4254,14 +4254,14 @@ function oo(e) {
|
|
|
4254
4254
|
), i.response.headers = at.from(i.response.headers))), Promise.reject(i);
|
|
4255
4255
|
});
|
|
4256
4256
|
}
|
|
4257
|
-
const Hs = "1.13.5",
|
|
4257
|
+
const Hs = "1.13.5", Gi = {};
|
|
4258
4258
|
["object", "boolean", "number", "function", "string", "symbol"].forEach((e, t) => {
|
|
4259
|
-
|
|
4259
|
+
Gi[e] = function(i) {
|
|
4260
4260
|
return typeof i === e || "a" + (t < 1 ? "n " : " ") + e;
|
|
4261
4261
|
};
|
|
4262
4262
|
});
|
|
4263
4263
|
const so = {};
|
|
4264
|
-
|
|
4264
|
+
Gi.transitional = function(t, n, i) {
|
|
4265
4265
|
function r(a, o) {
|
|
4266
4266
|
return "[Axios v" + Hs + "] Transitional option '" + a + "'" + o + (i ? ". " + i : "");
|
|
4267
4267
|
}
|
|
@@ -4279,7 +4279,7 @@ Fi.transitional = function(t, n, i) {
|
|
|
4279
4279
|
)), t ? t(a, o, s) : !0;
|
|
4280
4280
|
};
|
|
4281
4281
|
};
|
|
4282
|
-
|
|
4282
|
+
Gi.spelling = function(t) {
|
|
4283
4283
|
return (n, i) => (console.warn(`${i} is likely a misspelling of ${t}`), !0);
|
|
4284
4284
|
};
|
|
4285
4285
|
function Lh(e, t, n) {
|
|
@@ -4299,10 +4299,10 @@ function Lh(e, t, n) {
|
|
|
4299
4299
|
throw new he("Unknown option " + a, he.ERR_BAD_OPTION);
|
|
4300
4300
|
}
|
|
4301
4301
|
}
|
|
4302
|
-
const
|
|
4302
|
+
const di = {
|
|
4303
4303
|
assertOptions: Lh,
|
|
4304
|
-
validators:
|
|
4305
|
-
}, ft =
|
|
4304
|
+
validators: Gi
|
|
4305
|
+
}, ft = di.validators;
|
|
4306
4306
|
let an = class {
|
|
4307
4307
|
constructor(t) {
|
|
4308
4308
|
this.defaults = t || {}, this.interceptors = {
|
|
@@ -4338,17 +4338,17 @@ let an = class {
|
|
|
4338
4338
|
_request(t, n) {
|
|
4339
4339
|
typeof t == "string" ? (n = n || {}, n.url = t) : n = t || {}, n = sn(this.defaults, n);
|
|
4340
4340
|
const { transitional: i, paramsSerializer: r, headers: a } = n;
|
|
4341
|
-
i !== void 0 &&
|
|
4341
|
+
i !== void 0 && di.assertOptions(i, {
|
|
4342
4342
|
silentJSONParsing: ft.transitional(ft.boolean),
|
|
4343
4343
|
forcedJSONParsing: ft.transitional(ft.boolean),
|
|
4344
4344
|
clarifyTimeoutError: ft.transitional(ft.boolean),
|
|
4345
4345
|
legacyInterceptorReqResOrdering: ft.transitional(ft.boolean)
|
|
4346
4346
|
}, !1), r != null && (F.isFunction(r) ? n.paramsSerializer = {
|
|
4347
4347
|
serialize: r
|
|
4348
|
-
} :
|
|
4348
|
+
} : di.assertOptions(r, {
|
|
4349
4349
|
encode: ft.function,
|
|
4350
4350
|
serialize: ft.function
|
|
4351
|
-
}, !0)), n.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? n.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls : n.allowAbsoluteUrls = !0),
|
|
4351
|
+
}, !0)), n.allowAbsoluteUrls !== void 0 || (this.defaults.allowAbsoluteUrls !== void 0 ? n.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls : n.allowAbsoluteUrls = !0), di.assertOptions(n, {
|
|
4352
4352
|
baseUrl: ft.spelling("baseURL"),
|
|
4353
4353
|
withXsrfToken: ft.spelling("withXSRFToken")
|
|
4354
4354
|
}, !0), n.method = (n.method || this.defaults.method || "get").toLowerCase();
|
|
@@ -4456,7 +4456,7 @@ let Fh = class Ys {
|
|
|
4456
4456
|
i.unsubscribe(a);
|
|
4457
4457
|
}, o;
|
|
4458
4458
|
}, t(function(a, o, s) {
|
|
4459
|
-
i.reason || (i.reason = new
|
|
4459
|
+
i.reason || (i.reason = new _n(a, o, s), n(i.reason));
|
|
4460
4460
|
});
|
|
4461
4461
|
}
|
|
4462
4462
|
/**
|
|
@@ -4593,13 +4593,13 @@ function qs(e) {
|
|
|
4593
4593
|
return qs(sn(e, r));
|
|
4594
4594
|
}, n;
|
|
4595
4595
|
}
|
|
4596
|
-
const Ge = qs(
|
|
4596
|
+
const Ge = qs(Wn);
|
|
4597
4597
|
Ge.Axios = an;
|
|
4598
|
-
Ge.CanceledError =
|
|
4598
|
+
Ge.CanceledError = _n;
|
|
4599
4599
|
Ge.CancelToken = Fh;
|
|
4600
4600
|
Ge.isCancel = Fs;
|
|
4601
4601
|
Ge.VERSION = Hs;
|
|
4602
|
-
Ge.toFormData =
|
|
4602
|
+
Ge.toFormData = Fi;
|
|
4603
4603
|
Ge.AxiosError = he;
|
|
4604
4604
|
Ge.Cancel = Ge.CanceledError;
|
|
4605
4605
|
Ge.all = function(t) {
|
|
@@ -4630,7 +4630,7 @@ const {
|
|
|
4630
4630
|
formToJSON: uP,
|
|
4631
4631
|
getAdapter: dP,
|
|
4632
4632
|
mergeConfig: hP
|
|
4633
|
-
} = Ge, lo = "An unknown error occurred",
|
|
4633
|
+
} = Ge, lo = "An unknown error occurred", Bn = "https://embed-iccandle-app.iccandle.ai", jn = "tv:clicked-news-event", gi = "tv:selected-news-events", Wt = 100, Uh = 100, Ws = (e) => e === "1" ? 120 : e === "5" ? 480 : e === "1D" ? 20 * 3600 : parseInt(e, 10) * 60, wt = (e) => e === "1" ? 60 : e === "5" ? 300 : e === "1D" ? 1440 * 3600 : parseInt(e, 10) * 60, zh = [
|
|
4634
4634
|
"en",
|
|
4635
4635
|
"zh",
|
|
4636
4636
|
"vi",
|
|
@@ -4639,9 +4639,9 @@ const {
|
|
|
4639
4639
|
"ja",
|
|
4640
4640
|
"mn",
|
|
4641
4641
|
"ru"
|
|
4642
|
-
],
|
|
4642
|
+
], yi = "en";
|
|
4643
4643
|
function _s(e) {
|
|
4644
|
-
return e && zh.includes(e) ? e :
|
|
4644
|
+
return e && zh.includes(e) ? e : yi;
|
|
4645
4645
|
}
|
|
4646
4646
|
const Hh = { or: "OR", error: "Error", warning: "Warning", cancel: "Cancel", continuing: "Continuing...", email: "Email", password: "Password", termsOfService: "Terms of Service", privacyPolicy: "Privacy Policy", continueWithGoogle: "Continue with Google", continuingWithGoogle: "Continuing with Google...", signIn: "Sign in", signUp: "Sign up", agreeAndContinue: "Agree & continue", changePlan: "Change Plan", upgradePlan: "Upgrade Plan +", manageBilling: "Manage Billing", getInTouch: "Get in touch", copyright: "© {year} IC Candle, Inc. All rights reserved.", session: "Session", sessions: "Sessions", activeWorkspaces: "Active workspaces", date: "Date", product: "Product", plan: "Plan", planNames: { free: "Free Plan", standard: "Standard Plan", pro: "Pro Plan", expert: "Expert Plan" }, status: "Status", amount: "Amount", detail: "Detail", total: "Total", prioritySupport: "Priority support", all: "All", minutely: "Minutely", hourly: "Hourly", daily: "Daily", chatAssistant: "Chat assistant", timeframes: "Timeframes", symbols: "Symbols", timeSettings: "Time Settings", step: "Step {number}:", learnMore: "Learn more", success: "Success", validationError: "Validation Error", previous: "Previous", next: "Next", saving: "Saving...", save: "Save", saveChanges: "Save Changes", nextStep: "Next Step", columnTimeframe: "TIMEFRAME", columnSymbol: "SYMBOL", columnDescription: "DESCRIPTION", symbol: "Symbol", timeframe: "Timeframe", candles: "Candles", up: "Up", down: "Down", play: "Play", close: "Close", simulate: "Simulate", actual: "Actual", forecast: "Forecast", interestRate: "Interest Rate", soon: "Soon", back: "Back", similarity: "Similarity", nextCandles: "Next {count}", nextCandlesFull: "Next {count} candles", probabilityOutcome: "Probability Outcome:", estimatedProbability: "estimated probability:", riskDisclaimer: "Financial markets involve a high level of risk and may result in the loss of capital. iC Candle provides information for educational purposes only and does not offer financial advice. Past performance does not guarantee future results.", rangeTooFarToRender: "Range too far to render.", marketSessions: "Market sessions", askTradingQuestion: "Ask a trading question", mrCandleThinking: "Mr. Candle is thinking...", simulateBullishPriceAction: "Simulate Bullish Price Action", simulateBearishPriceAction: "Simulate Bearish Price Action", dismiss: "Dismiss", loadingMore: "Loading more", savedPatternDeleted: "Saved Pattern Deleted" }, Yh = { confirm: "Confirm", deletePatternTitle: "Delete Pattern", deletePatternDescription: "Are you sure you want to delete this pattern?", deleteAllNotificationsTitle: "Delete all notifications", deleteAllNotificationsDescription: "Are you sure you want to delete all notifications?", disableSignalsTitle: "Disable Signals", disableSignalsDescription: "Are you sure you want to disable signals?", disableSignalsForDescription: "Are you sure you want to disable signals for {patternTitle}?", togglePatternModeTitle: "Toggle Pattern Mode", togglePatternModeDisableDescription: "Are you sure you want to disable this pattern?", togglePatternModeEnableDescription: "Are you sure you want to enable this pattern?", closeFeatureDescription: "Are you sure you want to close this feature?" }, qh = { today: "Today", yesterday: "Yesterday", day: "{count, plural, one {# day} other {# days}}", hour: "{count, plural, one {# hour} other {# hours}}", minute: "{count, plural, one {# minute} other {# minutes}}", zeroMinutes: "0 minutes", dayShort: "day", hourShort: "hr", minuteShort: "min", zeroMin: "0min", justNow: "Just now", minutesAgo: "{count, plural, one {# minute ago} other {# minutes ago}}", hoursAgo: "{count, plural, one {# hour ago} other {# hours ago}}", daysAgo: "{count, plural, one {# day ago} other {# days ago}}", monthsAgo: "{count, plural, one {# month ago} other {# months ago}}", yearsAgo: "{count, plural, one {# year ago} other {# years ago}}" }, Wh = { classicPatternTracker: "Classic Pattern Tracker", trackedPatternReminder: "Tracked Pattern Reminder", classicPattern: "Classic Pattern", trackedPattern: "Tracked Pattern", enableClassicNotifications: "Turn on real‑time notifications for classic price formations", waitingForPatternSignals: "Waiting for pattern signals", noPatternsDetected: "No patterns detected right now", signalsActiveDescription: "Your signals are active. We'll notify you as soon as matching patterns are found", noCustomPatternDetected: "No {patternName} detected right now", trackMorePatternsByScan: "Track more patterns by going to scan", seeMore: "See more" }, _h = { title: "Time Settings", description: "Choose the local time window when pattern alerts can trigger.", startTime: "Start time", endTime: "End time", session: "Session", timezone: "Timezone", yourTimezone: "Your timezone", selectSession: "Select session", searchSession: "Search session...", noSessionFound: "No session found.", sessionsHeading: "Sessions", selectTimezone: "Select Timezone", selectTimezoneHint: "Search and choose the timezone for this alert.", searchTimezone: "Search timezone...", noTimezoneFound: "No timezone found.", timezonesHeading: "Timezones", allTime: "All time", customize: "Customize", newYorkSession: "New York Session", londonSession: "London Session", tokyoSession: "Tokyo Session", sydneySession: "Sydney Session" }, Vh = { newsScan: { analyzing: "Analyzing the current news event...", searching: "Searching for historically similar news releases...", ranking: "Ranking the most relevant similar news...", preparingReplay: "Preparing similar news for replay...", ready: "Similar news events are ready for impact analysis." }, newsAi: { replaying: "Replaying historical price actions...", startingSimulation: "Starting impact simulation model...", calculatingScenarios: "Calculating upward and downward scenarios...", complete: "Simulation complete." }, selectorScan: { scanning: "Scanning 20+ years of market history...", finding: "Finding structurally similar patterns...", linking: "Linking market behavior with underlying drivers...", preparing: "Preparing structured historical datasets...", ready: "Patterns ready for replay and outcome analysis." }, selectorAi: { replaying: "Replaying historical pattern behavior...", learning: "Learning impact patterns from past movements...", calculating: "Calculating price action dynamics...", initializing: "Initializing simulation model...", complete: "Simulation complete." } }, Kh = { Layout: { tagline: "Designed for Traders Who Value Insight Over Noise" }, Legal: { termsAndPrivacy: "Terms & Privacy", googleTermsDescription: "By continuing with Google, you agree to our <terms></terms> and <privacy></privacy>.", legalAgreement: "I agree to the <terms></terms> and <privacy></privacy>.", pleaseAgreeToContinue: "Please agree to continue", pleaseAgreeDescription: "You must agree to the Terms of Service and Privacy Policy to continue with Google." }, SignIn: { dontHaveAccount: "Don't have an account?", googleVerifyingAuthorization: "Google is verifying authorization...", invalidCredentials: "Invalid credentials", invalidEmail: "Invalid email address", emailRequired: "Email is required", passwordRequired: "Password is required", pleaseCheckInfo: "Please check your information again", emailPlaceholder: "Enter your personal or work email", change: "Change", forgotPassword: "Forgot password", continueWithEmail: "Continue with email" }, SignUp: { repeatPassword: "Repeat password", termsAgreement: "By continuing, you agree to our <terms></terms> and <privacy></privacy>", continueWithEmail: "Continue with email", alreadyHaveAccount: "Already have an account?", signUpError: "An error occurred during sign-up." }, PasswordRecovery: { title: "Password recovery", emailRequired: "Email is required!", emailPlaceholder: "your@example.com", sendConfirmationCode: "Send confirmation code", somethingWrong: "Something wrong", pleaseWaitAndRetry: "Please wait and try again", confirmationCodeSent: "Confirmation code sent", checkYourEmail: "Please check your email" }, ResetPassword: { title: "Reset password", confirmationCode: "Confirmation code", confirmationCodeRequired: "Confirmation code is required.", newPassword: "New password", repeatNewPassword: "Repeat new password", passwordMinLength: "Password must be at least 8 characters.", repeatPasswordMinLength: "Repeat password must be at least 8 characters.", passwordsMustMatch: "Passwords must match.", pleaseStartAgain: "Please start again", resetSuccess: "Reset success", useNewPassword: "Please use your new password", passwordNotConfirmed: "Password not confirmed!" }, Confirm: { title: "Confirm your account", codeSentTo: "Confirmation code is sent to:", otpDescription: "Please enter the one-time password sent to your email.", otpLength: "OTP must be 6 characters.", turnstileError: "Some error occurred in turnstile", confirmError: "An error occurred during confirm: {message}", confirm: "Confirm" } }, Jh = { features: { title: "Features", patternSelector: { title: "Pattern Selector", subtitle: "Analyzes your idea against historical market data to find similar price patterns and outcomes." }, patternTracker: { title: "Pattern Tracker", subtitle: "Continuously scans the market in the background and alerts you when a matching pattern appears." }, newsImpact: { title: "News Impact", subtitle: "Shows how past news releases impacted price movement so you can see how markets reacted before." } }, resources: { title: "Resources", learnAndUse: { title: "Learn & Use", subtitle: "Learn analytics concepts and how to use the platform effectively." }, updatesAndInsights: { title: "Updates & Insights", subtitle: "News and updates on what we're building and exploring." }, whoWeAre: { title: "Who We Are", subtitle: "Who we are, what we believe, and why we build." }, helpCenter: { title: "Help Center", subtitle: "Find help, guidance, and answers when you need them." } }, pricing: { title: "Pricing" } }, Xh = { badge: "Features", title: "AI-Powered Market Analytics, Built for Smarter Decisions", description: "Leverage advanced analytics and historical intelligence to discover patterns, analyze market reactions, and understand probability before making decisions.", creditUsage: "Credit usage", resetAfter: "Reset after", resetAfterColon: "Reset after:", useThisFeature: "Use this feature", automateNow: "Automate Now", analyzeNow: "Analyze now", inSession: "You are in session", sessionActive: "Session is currently active", continueSession: "Continue session", pageHeader: { account: { title: "Profile", infoTitle: "Your Account", infoDescription: "Manage your settings, preferences, and connections" }, subscription: { title: "Subscription", infoTitle: "Your Plan", infoDescription: "Manage your plan, billing, and payments" }, support: { title: "Support", infoTitle: "Get Help", infoDescription: "Find answers to your questions and connect with our support team" }, referral: { title: "Community", infoTitle: "Community Growth Program", infoDescription: "Refer friends, earn rebates, grow together" } } }, Zh = { chooseYour: "Choose your", plan: "Plan", annualPromo: `Get more than 2 months for free
|
|
4647
4647
|
by subscribing annually`, monthly: "Monthly", yearly: "Yearly", yearlyBadge: "-20%", comparePlans: "Compare Plans", compareSubtitle: "A full breakdown of what's included in each tier.", usage: "USAGE", usageSection: "Usage", features: "FEATURES", featuresSection: "Features", freePricePerMonth: "$0 / month", pricePerMonth: "{price} / month", patternSelector: "Pattern Selector", patternTracker: "Pattern Tracker", newsImpact: "News Impact", scanResultLimit: "Scan result limit", historicalData: "Historical data", webhook: "Webhook", patternExport: "Pattern export", scansPerDay: "{count} scans / day", scansPerDayDefault: "2 scans / day", patternsCount: "{count} patterns", perDay: "{count} / day", perDayDefault: "1 / day", tabsCount: "{count} tabs", tabsCountDefault: "1 tab", limited: "Limited", historicalYears: "20+ years", included: "✓", notIncluded: "—", planChangedSuccess: "Plan changed to {planTitle} successfully!", subscriptionSuccess: "Subscription to {planTitle} successful!", paymentSuccessful: "Payment Successful!", planUpdated: "Your plan has been updated.", planUpdatedDescription: "Your plan has been updated. You can start using your new features right away.", subscriptionActive: "Your subscription is now active.", subscriptionActiveDescription: "Your subscription to {planTitle} is now active. Thank you for your purchase!", manageBillingInfo: "Manage your billing information", continueToApp: "Continue to App", loadingPaymentDetails: "Loading payment details...", paymentError: "Payment Error", noSessionId: "No session ID provided", goToApp: "Go to App", alreadySubscribedPlan: "You are already subscribed to this plan.", activeSubscriptionManage: "You already have an active subscription. Please manage your billing to change plans.", planChangeScheduled: "Plan change scheduled", planChangeScheduledDesc: "Your plan will switch to {planTitle} on your next billing date.", alreadyOnPlan: "You are already on this plan", changePlanFailed: "Failed to change plan. Please use Manage Billing.", alreadyActiveSubscription: "You already have an active subscription", noChangesMade: "No changes made", alreadyOnPlanDesc: "You're already on the {planTitle} plan.", badgeFree: "Free", badgePopular: "Popular", badgeBestDeal: "Best Deal", badgeMaximumAccess: "Maximum Access", freeForEveryone: "Free for everyone", usdPerMonth: "USD/month", yearlyAmount: "{amount} USD / year", monthlyAmount: "{amount} USD / month", currentPlan: "Current Plan", startForFree: "Start for free", getPlan: "Get {planTitle}", switchToPlan: "Switch to {planTitle}", changePlanConfirmTitle: "Change Plan Confirmation", changePlanConfirmDesc: "You are currently on the {currentPlan} plan. Choose when you want the new price to take effect.", changeNextBilling: "Change next billing", changeNow: "Change now", confirmNextBillingTitle: "Confirm next billing change", confirmNextBillingDesc: "Are you sure you want to schedule this plan change for your next billing date? Your current {currentPlan} plan will remain active until then. On your next billing date, your plan will switch to {planTitle} ({amount}).", yesChangeNextBilling: "Yes, change next billing", continueToCheckout: "Continue to checkout", freeCheckoutDesc: "You are currently on the free plan. Continue to checkout to subscribe to {planTitle}.", continue: "Continue", agreeRefundPolicy: "I agree to the <link>Refund and Cancellation Policy</link>.", everythingInPlan: "Everything in <plan></plan> plan", plans: { free: { title: "Free", subtitle: "Explore and try", heading3: "Best for individual traders" }, standard: { title: "Standard", subtitle: "Analyze with confidence", heading3: "Best for individual traders" }, pro: { title: "Pro", subtitle: "Analyze in depth", heading3: "Team & Professional Tier" }, expert: { title: "Expert", subtitle: "Analyze without limits", heading3: "For professional traders" } }, planFeatures: { categories: { candleScanner: "Candle Scanner", candleSignal: "Candle Signal" }, labels: { patternSelector: "Pattern Selector", patternTracker: "Pattern Tracker", newsImpact: "News Impact", scanResultLimit: "Scan result limit", activeTabs: "Active Tabs", timeframes: "Timeframes", webhook: "Webhook" }, values: { scansPerDay: "{count} scans per day", patterns: "{count}", perDay: "{count}", tabsWorkspace: "{count} (workspace)", enabled: "Enabled", disabled: "Disabled" } } }, Qh = { Connections: { connectedAccount: "Connected account", creditUsage: "Credit Usage", totalCreditsUsed: "Total credits used", resetsIn: "Resets in {duration}", understandingCredits: "Understanding credits and usage", nearLimit: "Near Limit" }, Subscription: { myPlan: "My plan", thanksForSubscribing: "Thanks for subscribing!", billingHistory: "Billing History", nextBillingDate: "Next billing date", whichPlan: "Which plan is right for you?", patternSelectorCreditsPerDay: "{count} Pattern Selector credits / day", patternTrackerCreditsPerDay: "{count} Pattern Tracker credits / day", newsImpactCreditsPerDay: "{count} News Impact credits / day", chatAssistantCreditsPerDay: "{count} Chat Assistant credits / day", prioritySupport: "Priority support" }, Billing: { noInvoices: "No invoices found.", loadError: "Failed to load invoices. Please try again later.", viewInvoice: "View invoice" } }, $h = { referralRebate: "Referral Rebate", referredUsers: "Referred Users", totalRebateEarned: "Total rebate earned", referredUsersCount: "Referred users", activeReferrals: "Active referrals", referralLink: "Referral Link", shareDescription: "Share your referral link with friends. When they subscribe, you'll earn a rebate on their plan.", joinedDate: "Joined Date", loading: "Loading...", noReferralCodeAvailable: "No referral code available", updateReferralCodeTitle: "Update Referral Code", createReferralCodeTitle: "Create Referral Code", updateReferralCodeDescription: "Update your referral code below.", createReferralCodeDescription: "Enter a referral code to start sharing your referral link.", enterReferralCodePlaceholder: "Enter referral code", enterReferralCode: "Please enter a referral code", codeCreatedSuccess: "Referral code created successfully", codeUpdatedSuccess: "Referral code updated successfully", codeMinChars: "Minimum 5 characters", codeMaxChars: "Maximum 15 characters", create: "Create", update: "Update", pageNumber: "Page {page}", noReferredUsersYet: "No referred users yet", shareReferralEmptyDescription: "Share your referral link to start growing your network and earning rebates." }, ep = { mainMenu: { coreFeatures: "Core Features", account: "Account", subscription: "Subscription", communityGrowthProgram: "Community Growth Program", support: "Support" }, patternMenu: { trackedPatterns: { label: "My tracked patterns", tooltipTitle: "High-probability pattern setups detected by AI", tooltipDescription: "iC Candle tracks global markets 24/7 to detect your tracked patterns, providing confidence levels and breakout direction. Use filters to find your best setups, then click any pattern for full details." }, classicPatterns: { label: "Classic patterns", tooltipTitle: "Classic Patterns", tooltipDescription: "Choose the patterns you care about—double tops, head & shoulders, flags, rectangles, and more—then activate signals. We'll watch every tick across your selected markets and notify you the instant a formation completes. Customize delivery by telegram, email, or in‑app notification so you never miss a setup." } }, helperBar: { watchList: "Watch List", savedPatterns: "Saved Patterns", newsMovingMarket: "What is moving MARKET?", favoritesCount: "Favorites ({count})", groupWithCount: "{label} ({count})", noItemsInWatchList: "No items in Watch List", watchListLast: "Last", watchListChg: "Chg", watchListChgPercent: "Chg%", removeFromFavorites: "Remove from favorites", addToFavorites: "Add to favorites", removeSymbolFromFavorites: "Remove {symbol} from favorites", addSymbolToFavorites: "Add {symbol} to favorites", groupCommodity: "Commodity", groupForex: "Forex", groupCrypto: "Crypto", groupIndices: "Indices", groupStock: "Stock" }, profileMenu: { darkTheme: "Dark theme", chatWithUs: "Chat with us", termsAndConditions: "Terms & Conditions", logOut: "Log out" }, tabAdded: "Tab added", tabMemoryWarning: "Adding more tabs may increase memory usage on your device.", tabLimitReached: "Tab Limit Reached", tabLimitReachedMax: "You've reached the maximum number of tabs allowed on your current plan.", tabLimitReachedUpgrade: "You've reached the maximum number of tabs allowed on your current plan. Please upgrade to access more.", notifications: "Notifications", noNotifications: "No notifications", notificationsOfflineReconnect: "(Offline) Please reconnect notifications", headerNav: { selectorTitle: "Pattern Selector", selectorShortTitle: "Selector", patternTitle: "Pattern Tracker", patternShortTitle: "Track", newsTitle: "News Impact", newsShortTitle: "News" }, guideFeatures: { selector: { title: "Pattern Selector", description: "Analyzes your idea against historical market data to find similar price patterns and outcomes." }, pattern: { title: "Pattern Tracker", description: "Continuously scans the market in the background and alerts you when a matching pattern appears." }, news: { title: "News Impact", description: "Shows how past news releases impacted price movement so you can see how markets reacted before." } } }, tp = { mostSimilarNews: "Most Similar News:", selectEvent: "Select Event", economicCalendarAnalysis: "Economic Calendar Analysis", economicCalendar: "Economic Calendar", predictAvailable: "Predict Available", predictUnavailable: "Predict Unavailable", actualReleased: "Actual Released", analyzeImpact: "Analyze impact", candleDataTooFar: "Candle data too far from event.", tryAnotherTimeframe: "Please try another timeframe.", aiIntelligence: "AI Intelligence", matchPercent: "{percent}% match", whatHappenedOnNews: "What happened on this news:", newsBeforeEvent: "News Before This {eventName}", time15MinLater: "15 min later", time30MinLater: "30 min later", time1HourLater: "1 hour later", time2HoursLater: "2 hours later", time4HoursLater: "4 hours later", noDataHere: "No data here", pleaseWaitAndRetry: "Please wait and try again", current: "Current", previousMonth: "Previous month", nextMonth: "Next month", holiday: "Holiday", seeAll: "See all", selectedSymbols: "Selected symbols", marketNews: "Market News", patternType: "Pattern type", unknownPublishDate: "Unknown publish date", noMatchingArticleDetails: "No matching article details", model: "Model", temperature: "Temperature", temperatureLow: "Low", temperatureMedium: "Medium", temperatureHigh: "High", previousActual: "Previous Actual", currentForecast: "Current Forecast", previousForecast: "Previous Forecast", goToEventDetail: "Go to event detail", eventInfoNotFound: "Event information not found", ppi: "Producer Price Index measures changes in prices of goods and services sold by manufacturers and producers.", cpi: "Consumer Price Index measures changes in prices of goods and services bought by consumers.", coreCpi: "Core CPI measures changes in consumer prices excluding food and energy; a key inflation gauge used by central banks.", jolts: "Job Openings and Labor Turnover Survey measures unfilled job vacancies in the U.S.", nfp: "Nonfarm Payrolls measures changes in the number of U.S. jobs, excluding farm and certain sectors.", ijc: "Initial Jobless Claims measures the number of individuals filing for unemployment insurance for the first time in the U.S., indicating labor market conditions.", fomc: "Federal Open Market Committee is the U.S. central bank that sets interest rates and conducts monetary policy.", fedRate: "Federal Reserve interest rate decision announcement that sets the target federal funds rate, influencing monetary policy and financial markets.", gdpAdvance: "Gross Domestic Product measures the total value of goods and services produced in an economy. Advance GDP is the first estimate release.", gdpMonthly: "Gross Domestic Product measures the total value of goods and services produced in an economy. Monthly releases track short-term growth (e.g. UK GDP m/m).", unemploymentRate: "Unemployment Rate measures the percentage of the labor force that is unemployed.", ahe: "Average Hourly Earnings measures the month-over-month change in wages paid to workers, excluding farm workers.", corePce: "Core PCE Price Index measures the month-over-month change in personal consumption expenditures excluding food and energy, the Fed's preferred inflation gauge.", retailSales: "Retail Sales measures the month-over-month change in the total value of sales at the retail level.", ismManufacturingPmi: "ISM Manufacturing PMI measures the health of the U.S. manufacturing sector based on survey data; values above 50 indicate expansion.", ismServicesPmi: "ISM Services PMI measures the health of the U.S. services sector based on survey data; values above 50 indicate expansion.", gdpPrelim: "Prelim GDP is the second estimate of quarterly GDP growth; measures the total value of goods and services produced in an economy.", adpNfp: "ADP Non-Farm Employment Change measures the change in private-sector payroll employment from ADP/Moody's survey; a leading indicator for official Nonfarm Payrolls.", eci: "Employment Cost Index measures the quarterly change in the cost of labor including wages and benefits, a key inflation indicator watched by the Fed.", flashManufacturingPmi: "Flash Manufacturing PMI is a preliminary estimate of manufacturing sector activity based on survey data; values above 50 indicate expansion.", flashServicesPmi: "Flash Services PMI is a preliminary estimate of services sector activity based on survey data; values above 50 indicate expansion.", claimantCount: "UK Claimant Count Change measures the monthly change in people claiming unemployment-related benefits; a key gauge of the UK labor market.", boeRate: "Bank of England Official Bank Rate is the interest rate set by the Monetary Policy Committee; it guides UK monetary policy and sterling markets.", ecbMainRefinancingRate: "ECB Main Refinancing Rate is the European Central Bank's key policy rate for liquidity-providing operations; it guides euro-area monetary policy and EUR markets.", snbPolicyRate: "Swiss National Bank Policy Rate is the SNB's key policy interest rate (SARON-based framework); it guides Swiss monetary policy and CHF markets.", cadEmploymentChange: "Canadian Employment Change measures the monthly change in employed people from Statistics Canada's Labour Force Survey; a key gauge of the Canadian labor market and CAD." }, np = { matchPercent: "Match {percent}%", matchLabel: "Match", mismatch: "Mismatch", noResultsFound: "No results found", result: "Result", filter: "Filter", filterBy: "Filter by", clearFilter: "Clear filter", selectFilterType: "Select filter type", matchPercentLabel: "Match %", selectSymbol: "Select Symbol", selectMatchPercent: "Select Match %", selectDateRange: "Select Date Range", dateLast1Month: "Last 1 month", dateLast6Months: "Last 6 months", dateLastYear: "Last year", dateLast3Years: "Last 3 years", dateAllTime: "All time", noDataFound: "No data found", runScanToSeePatternResults: "Run a scan to see pattern results here", scanAgainToPlay: "Scan again to play the chart", scan: "Scan", activateSelector: "Activate Selector", resetAfterDuration: "Reset after: {duration}", markets: "Markets", scannerOptions: "Scanner Options", saveOptions: "Save options", searchSymbol: "Search symbol", probabilityCalculation: "Probability calculation", probabilityCalculationTooltip: "Defines the number of upcoming candles used for probability calculation.", period: "Period", periodTooltip: "Searches from the selected period.", timeframeTooltip: "Defines the candle timeframe for scan results.", topResultsTooltip: "Defines the number of scan results.", auto: "Auto", settings: "Settings", collapseToolbar: "Collapse toolbar", expandToolbar: "Expand toolbar", availableBars: "Available sizes: 10-50, 60, 70, 80, 90, 100", clearReplayFirst: "Please clear the replay chart first", pleaseLoginFirst: "Please login first", trackPattern: "Track Pattern", selectAll: "Select all", searchTimeframe: "Search timeframe", selectAllTimeframes: "Select all timeframes", selectTimeframeAria: "Select timeframe {label}", selectSymbolAria: "Select symbol {symbol}", timeframeTypeMinutes: "Minutes", searchFilterSaved: "Search filter saved successfully.", periodAll: "All", periodLastYear: "Last year", periodLast3Years: "Last 3 years", periodLast5Years: "Last 5 years", periodLast15Years: "Last 15 years", topResults: "Top Results", tabSymbols: "Symbols", tabAdvancedOptions: "Advanced options", tabBasic: "Basic", tabAdvancedFilter: "Advanced Filter", priceMovementData: "Price Movement Data:", askAssistantExplanation: "Ask the assistant for explanation", selectCandleCount: "Select candle count", priceChanges: "Price Changes", candlesCount: "{count} candles", basedOnDirectionPatterns: 'Based on "{direction}" following this patterns', noAiMovementData: "No AI movement data for {direction}ward direction", scannerOptionsDescription: "Configure symbols and scan parameters.", alwaysShow: "Always show", aiModel: "AI Intelligence model", aiTemperature: "AI temperature", aiModelTooltipLight: "Trained on the last 2 years of data.", aiModelTooltipPro: "Trained on all historical data.", aiTemperatureTooltip: "Defines the consistency level of AI predictions." }, ip = { scannedAt: "Scanned At:", trackerActivated: "Tracker Activated", match: "Match: {percent}%", result: "Result", windowSize: "Window Size: {size}", patternSelectorHistory: "Pattern Selector History", noFilter: "No filter", favorite: "Favorite", windowSizeFilter: "Window size", windowSizePlaceholder: "Window size (10-50)", submit: "Submit" }, rp = { trackYourCustomPatterns: "Track your custom patterns", selectedSymbol: "Selected Symbol", selectedSymbols: "Selected Symbols", timezone: "Timezone", selectedTimeframes: "Selected Timeframes", moreItems: "{count, plural, one {# more item} other {# more items}}", selectedBars: "Selected Bars", barsCount: "{count} bars", timeFrame: "Time Frame", patternType: "Pattern Type", created: "Created", editPattern: "Edit pattern", createNewTracker: "Create new tracker", firstYouHaveToScan: "First you have to scan", goToScan: "Go to scan", addToPatternTracker: "Add to Pattern Tracker", goToPatternTracker: "Go To Pattern Tracker", addToPatternTrackerDescription: "You'll receive real-time updates when this pattern appears. Enter a name to help you recognize this alert.", patternName: "Pattern Name", patternNamePlaceholder: "Enter a name for this pattern", patternNameMinChars: "Minimum 5 characters required.", patternNameMaxChars: "20 character limit reached.", patternNameErrorTitle: "Pattern Name Error", patternNameErrorDescription: "Please enter a name for the pattern signal", customPatternSignalTooltip: "You will be notified once pattern is formed on MARKET as Custom Pattern Signal", noPatternDataFound: "No pattern data found", limitReached: "Limit Reached", limitReachedTrackerDescription: "You've reached the maximum number of pattern tracker.", trackerUpgradeToastDescription: "You've reached the maximum number of signals allowed on your current plan. Please upgrade to access more.", patternConfigUpdated: "Pattern Config Updated", patternConfigUpdatedDesc: 'Pattern config "{name}" has been updated', patternConfigError: "Pattern Config Error", patternConfigErrorDesc: "Failed to update pattern config", patternSaved: "Pattern Saved", patternSavedDesc: 'Pattern name "{name}" has been saved', patternSignalError: "Pattern Signal Error", patternSignalErrorDesc: "Failed to save the pattern", trackerTutorialPlanLimitExpert: "Your plan has {limit} pattern to tracker limit.", trackerTutorialPlanNoTracking: "Your plan doesn't include pattern tracking. Our upgraded plans let you add patterns to the tracker.", trackerTutorialPlanTrackingLimit: "Your plan allows tracking up to {limit} patterns. Our upgraded plans let you track more patterns.", currentPlan: "Current plan", planFree: "Free", configurePatternTracker: "Configure Pattern Tracker", selectTimeframesAndSymbols: "Select the timeframes and symbols you want to monitor for this pattern.", selectTimeframes: "Select Timeframes", chooseTimeframes: "Choose the timeframes you want to monitor for this pattern.", searchTimeframes: "Search timeframes", timeframeSelected: "{count} timeframe selected", timeframesSelected: "{count} timeframes selected", symbolSelected: "{count} symbol selected", symbolsSelected: "{count} symbols selected", patternSelected: "{count} pattern", patternsSelected: "{count} patterns", patternTypes: "Pattern Types", patternSubscribed: "Pattern Subscribed", patternSubscribedDesc: 'Pattern "{name}" is now being tracked', patternSubscriptionError: "Pattern Subscription Error", subscriptionModalAria: "Pattern tracker subscription", noPatternCandles: "No pattern candles found", chartSymbolRequired: "Chart symbol is required", userIdRequired: "User ID is required", subscribe: "Subscribe", subscribing: "Subscribing...", tabTimeShort: "Time", signalDialog: { title: "Signal Settings - {patternTitle}", successDescription: "Signal settings updated successfully", selectOneTimeframe: "Please select at least one timeframe", selectOneSymbol: "Please select at least one symbol", selectOneTimeframeAndSymbol: "Please select at least one timeframe and one symbol", selectCurrencyPairs: "Select Currency Pairs", chooseCurrencyPairs: "Choose the currency pairs you want to monitor for patterns", searchCurrencyPairs: "Search currency pairs" }, noMatchesFound: "No matches found", filterCategoryPattern: "Pattern", filterCategorySymbol: "Symbol", filterCategoryTimeframe: "Timeframe", selectCategory: "Select category", searchCategory: "Search {category}...", timeframeOptions: { M15: { displayName: "15 Minutes", description: "15-minute timeframe" }, M30: { displayName: "30 Minutes", description: "30-minute timeframe" }, H1: { displayName: "1 Hour", description: "1-hour timeframe" }, H2: { displayName: "2 Hours", description: "2-hour timeframe" }, H4: { displayName: "4 Hours", description: "4-hour timeframe" }, D: { displayName: "1 Day", description: "Daily timeframe" } } }, ap = { priceActionPattern: "Price action pattern", labels: { flagbear: "Bearish Flag", flagbull: "Bullish Flag", dd_top: "Double Top", dd_bot: "Double Bottom", aad_up: "AAD Up", aad_down: "AAD Down", has_bull: "Head and Shoulders Bullish", has_bear: "Head and Shoulders Bearish", rectangle: "Rectangle" }, timeframes: { M1: "1 minute", M5: "5 minutes", M15: "15 minutes", M30: "30 minutes", H1: "1 hour", H2: "2 hours", H4: "4 hours", D1: "Daily" }, patterns: { doubleBottom: { desc: '<div><p>These patterns form when price tests the same level twice and fails to break through.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It shows that the market is losing momentum in one direction.</li><li>A breakout outside the range usually signals a reversal is coming.</li></ul></div>' }, doubleTop: { desc: '<div><p>These patterns form when price tests the same level twice and fails to break through.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It shows that the market is losing momentum in one direction.</li><li>A breakout outside the range usually signals a reversal is coming.</li></ul></div>' }, bullishFlag: { desc: '<div><p>A brief pause or consolidation after a strong move (either up or down).</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>Price moves in a small, sloped channel against the trend.</li><li>Once it breaks out of the flag, the trend often continues in the same direction.</li></ul></div>' }, bearishFlag: { desc: '<div><p>A brief pause or consolidation after a strong move (either up or down).</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>Price moves in a small, sloped channel against the trend.</li><li>Once it breaks out of the flag, the trend often continues in the same direction.</li></ul></div>' }, bullishHeadShoulders: { desc: '<div><p>This pattern shows a shift in market strength and signals a possible trend reversal.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It has three parts: one larger move (the "head") and two smaller ones (the "shoulders").</li><li>When the pattern completes, price often breaks away and moves in the opposite direction of the trend before it.</li></ul></div>' }, bearishHeadShoulders: { desc: '<div><p>This pattern shows a shift in market strength and signals a possible trend reversal.</p><ul style="list-style-type: disc; margin-left: 20px; margin-top: 10px;"><li>It has three parts: one larger move (the "head") and two smaller ones (the "shoulders").</li><li>When the pattern completes, price often breaks away and moves in the opposite direction of the trend before it.</li></ul></div>' } } }, op = { chartPatterns: "What is in a chart patterns?", flagPattern: "How do I trade a flag pattern effectively?", rectanglePattern: "What are the key features of a rectangle pattern to watch for?" }, sp = { pip: "What is a pip?", majorCurrencyPairs: "What are the major currency pairs to trade?", lotSize: "What is a lot size?", leverage: "What is a leverage?", margin: "What is a margin?", bullishFlagTrack: "Track bullish flag pattern for all symbols and timeframes" }, lp = { cpi: "What is CPI, and how does it affect the market?", nfp: "What is NFP, and how does it affect the market?", eurImpactfulNews: "What is the most impactful news in the market for USD?" }, cp = "lang", up = "Profile", dp = { statistics: { heading: "Thousands of traders have already changed the way they see the market.", tradersReport: "7 out of 10 traders report improved consistency in their trading decisions.", satisfactionRate: '96% satisfaction rate from beta testers who said, "It feels like trading with a brain beside me."', usersChanged: "More than 80% of users say iC Candle changed how they analyze the market.", lessTimeWatching: "Average user spends 40% less time watching charts, thanks to pattern reminders." }, feedback: { backtestingTitle: "Feels like backtesting on a next level.", backtestingDesc: "Backtesting on iC Candle is honestly a game changer. It's crazy how fast and clear everything is now. I'm low-key obsessed. Hard to imagine any active trader working without this at this point.", confirmsTitle: "Confirms My Setups", confirmsDesc: "Omg, finally a tool that actually proves whether my own analysis is legit. Since I started using iCCandle, my hesitation in trading has dropped like 80%. I'm way more confident now.", marketHistoryTitle: "Market History Leads My Trades", marketHistoryDesc: "Using historical reactions for my trades has kinda become my whole new vibe. The value I'm getting vs. what I'm paying for the subscription? Not even comparable.", chatGPTTitle: "The Trader's ChatGPT", chatGPTDesc: "I use ChatGPT for literally everything in my daily life, everyone knows how much it makes things easier. And honestly… I think I just found the trader's version of ChatGPT." }, tags: { all: "All", blog: "Blog", crypto: "Crypto", event: "Event", pairs: "Pairs" } }, hp = { title: "Page Not Found", description: "The page you're looking for doesn't exist or has been moved.", backToHomepage: "Back to Homepage", imageAlt: "Not Found" }, pp = /* @__PURE__ */ JSON.parse(`{"Page":{"title":{"terms":"Terms of Service","privacy":"Privacy Policy","refund":"Refund and Cancellation Policy","cookie":"Cookie Policy"},"tabs":{"terms":"Terms","privacy":"Privacy","refund":"Refund","cookie":"Cookies"},"nav":{"terms":"Terms of Service","privacy":"Privacy Policy","refund":"Refund and Cancellation Policy","cookie":"Cookie Policy"}},"Terms":{"title":"Terms of Service, TOS, Terms, Conditions, Disclaimers, Contract, Agreement","intro":{"p1":"This agreement is made between Pixel Nexus Global, a Singaporean Limited Liability company operating as www.iccandle.ai (“Pixel Nexus Global,” “we,” “us,” or “our”), and the individual or entity purchasing or utilizing services offered through the Platform (“Customer,” “you,” or “your”). If you are acquiring the Services on behalf of a third party, you confirm that you have the legal authority to bind that party to these Terms of Service and will be liable for their use of the Services.","p2":"By accessing the Platform and Services outlined in this document and promoted on www.iccandle.ai, or by subscribing to services via the iccandle.ai website, you acknowledge that you have read, understood, and agreed to these Terms, Conditions, and Disclaimers. You further agree that your relationship with us is governed by the provisions set forth in this TOS.","p2Emphasis":"If you do not accept these terms, you must discontinue all use of iccandle.ai and any associated services or Platforms immediately."},"sections":[{"title":"1. The Services","paragraphs":["Pixel Nexus Global will provide active customers in good standing with access to its AI-powered analytical tool (the “Platform”). As used in this Agreement, the term “Services” refers to Pixel Nexus Global’s provision of your access to the Platform. The Services will be provided to you under one or more subscriptions, account activations, sign-ups, or orders placed by you on the iccandle.ai website and accepted by Pixel Nexus Global (an “Order”).","In case of any conflict between these TOS and an Order, the terms of these TOS shall take precedence. By accepting the Services, you acknowledge and agree that any different or additional terms proposed by you in an Order or otherwise are expressly rejected by Pixel Nexus Global, unless we have agreed to such terms in a written document signed by an authorized representative."]},{"title":"2. Your Obligations","subsections":[{"title":"Customer Information and Account Responsibilities","paragraphs":["You agree to provide Pixel Nexus Global with accurate information when creating your account, throughout our business relationship, and in all correspondence with us. We may occasionally need to contact you via email or telephone regarding the Services. You agree to maintain a valid email address that you check daily and to promptly notify us of any changes to your contact information.","Pixel Nexus Global shall not be responsible for any service interruptions, damages, or consequences resulting from misdirected communications due to your failure to provide current contact details. You also agree to complete all data entitlement surveys within the platform completely and truthfully to maintain compliance with exchange regulations."]},{"title":"Permitted Use of Platform","paragraphs":["Your use of the Platform must comply with these TOS and any accompanying documentation we provide. If you permit third parties to access the Platform, you agree to: (i) restrict their use in accordance with these terms; (ii) ensure their compliance with these TOS and our Privacy Policy; and (iii) remain fully liable for any violations of these TOS or the Privacy Policy by such third parties."]},{"title":"Intellectual Property and Legal Compliance","paragraphs":["You agree not to alter, obscure, or remove any trademark or proprietary notices. You may only use the Platform in accordance with: (i) the laws governing these TOS; and (ii) all applicable laws in your jurisdiction.","Unauthorized use is strictly prohibited."]}]},{"title":"3. Term","subsections":[{"title":"Effective Date and Term Duration","paragraphs":["These Terms of Service (TOS) become effective (\\"Effective Date\\") on the earlier of: (i) the date you click \\"I accept\\" as recorded by our servers; or (ii) the date you first access or use the Platform.","These TOS remain in effect for the duration of any active Order."]},{"title":"Subscription Terms and Renewals","paragraphs":["The Services will automatically renew for successive periods (monthly, quarterly, or annually) as specified in your Order. If unspecified, the default initial subscription period (\\"Initial Term\\") is one month. Subsequent renewal periods (\\"Renewal Terms\\") will match the Initial Term’s duration."]},{"title":"Trial Period Terms","paragraphs":["Pixel Nexus Global may offer trial periods (paid or free) as indicated on the iccandle.ai trial signup page. During any trial period:"],"listOrdered":["All terms and conditions of this agreement apply as if you were a paid subscriber","You may cancel at any time during the trial to prevent automatic renewal","Trial terms and conditions are subject to change without notice"]},{"title":"Subscription Management Responsibility","paragraphs":["You are solely responsible for managing your subscription, including:"],"listDisc":["Monitoring renewal dates","Updating payment information","Initiating cancellations","Maintaining current contact information"],"paragraphsAfter":["Pixel Nexus Global is not responsible for any charges due to failure to manage your subscription."]}]},{"title":"4. Termination","subsections":[{"title":"Cancellation and Termination Policy","paragraphs":["Details about cancellation and refund policies are available on our Refund and Cancellation Policy page at iccandle.ai. Terminating your account disables automatic renewals but does not cancel past invoices or make prior payments refundable unless stated otherwise in our Refund and Cancellation Policy.","Any currently due invoices must be paid in full to settle your account. Your access to Pixel Nexus Global services will continue until the expiration of your prepaid period or trial term."]},{"title":"Termination for Convenience","paragraphs":["Either party may terminate any Order by providing written notice at least one (1) day before the expiration of the Initial Term or any Renewal Term. For purposes of this provision, “written notice” includes communication through email, live chat, telephone, or via the Online Portal, indicating a desire not to continue service with Pixel Nexus Global in the future."]},{"title":"Termination for Policy Violations","paragraphs":["Pixel Nexus Global reserve the right to immediately suspend Services and/or terminate any Order in cases of violation of these TOS, breach of our Privacy Policy, or use of Services in a manner contrary to law or generally accepted internet standards. Such termination may occur without prior notice, dispute resolution process, or refund of any fees."]},{"title":"Effect of Termination","paragraphs":["The expiration or termination of any Order does not affect any rights or obligations that either (i) came into effect upon or after such expiration/termination, or (ii) survive the termination and were incurred by the parties prior to termination. Upon termination, you must promptly settle any outstanding balance. Pixel Nexus Global is not obligated to return any paid fees for terminations occurring prior to completion of a full term, except as may be expressly provided in our Refund and Cancellation Policy.","All termination matters are governed by the complete terms set forth in this agreement, and Pixel Nexus Global maintains full discretion in enforcing these provisions."]}]},{"title":"5. License Grant and Restrictions","paragraphs":["Pixel Nexus Global grants you a limited, revocable, non-exclusive, non-transferable, worldwide license to utilize our proprietary technology (\\"Pixel Nexus Technology\\") solely for accessing and employing our analytical engines as part of the Services, including any generated reports (\\"Reports\\"). This license is restricted to your account's registered users and automatically terminates upon expiration or termination of these TOS.","No rights beyond this limited license are conferred. All ownership rights in the Pixel Nexus Technology remain exclusively with Pixel Nexus Global or its licensors. You are expressly prohibited from: transferring, leasing, lending, sublicensing, reselling, or distributing the technology; using it for timesharing or service bureau purposes; or permitting unauthorized third-party access. You may not circumvent any protective measures safeguarding our proprietary interests, nor modify, reproduce, decompile, reverse engineer, or create derivative works from the Pixel Nexus Technology or Platform components. Upon termination, you must immediately cease using and permanently delete all Pixel Nexus Technology in your possession, ensuring any third parties with access do likewise."],"subsections":[{"title":"Ownership Rights","paragraphs":["Pixel Nexus Global retains all rights, title, and interest in the Pixel Nexus Technology and Platform, including but not limited to all derivative works, improvements, enhancements, and associated intellectual property rights such as trademarks and copyrights."]},{"title":"Feedback Provisions","paragraphs":["You may voluntarily provide, or we may solicit, input regarding the Platform or Services (\\"Feedback\\"), including suggestions for modifications or improvements. You acknowledge such Feedback constitutes Pixel Nexus Global's confidential proprietary information and irrevocably assign all related rights and interests to us. Pixel Nexus Global may utilize Feedback for any purpose without limitation or compensation obligation. This assignment applies globally and survives termination of these TOS.","All rights not expressly granted herein are reserved by Pixel Nexus Global. Any unauthorized use constitutes breach of these TOS and may result in immediate termination of your access rights."]}]},{"title":"6. Data Usage and Intellectual Property Rights","paragraphs":["Pixel Nexus Global may utilize information you provide or data collected from your use of the Platform and Services (\\"Operational Information\\") to deliver technical support and facilitate the implementation, operation, and administration of the Services. By using our Services, you grant us a perpetual, irrevocable license to process and analyze this Operational Information. We may combine this data with aggregate information from our general business operations to enhance existing Services or develop new products and offerings.","Pixel Nexus Global shall retain exclusive ownership of all intellectual property derived from such analysis and improvements. You hereby irrevocably waive any potential rights to this intellectual property and assign all rights, title, and interest therein to Pixel Nexus Global. You further agree to provide reasonable cooperation in securing and protecting these rights. We reserve the right to commercialize this Operational Information through sale, monetization, or incorporation into other products and services, without obligation to compensate you or grant you any ownership interest.","This license shall terminate upon expiration or cancellation of these Terms of Service, except with respect to historical data that has been aggregated and anonymized such that it cannot be identified as originating from your organization. Pixel Nexus Global may retain and continue to use such anonymized, aggregated data indefinitely for any lawful business purpose.","All intellectual property rights not expressly granted herein remain the exclusive property of Pixel Nexus Global. Your continued use of the Services constitutes acceptance of these terms regarding data usage and intellectual property rights."]},{"title":"7. Accuracy of Information Disclaimer","paragraphs":["Pixel Nexus Global relies on third-party data feeds to power its platform and therefore cannot guarantee the absolute accuracy of the information displayed. Different features within our system (such as scanners, automated analysis tools, charting functions, and back testing capabilities) may utilize separate data providers, which can result in variances between datasets across different platform features. Users should always verify analysis results and scanner conditions to ensure data consistency.","The platform's analytical outputs are inherently dependent on the quality of underlying third-party data, and Pixel Nexus Global makes no representations or warranties regarding the accuracy of these analyses. The iccandle.ai website, Services, and Platform are designed solely for informational and research purposes - they should never serve as the sole basis for investment decisions. Pixel Nexus Global disclaims all liability for any financial losses resulting from reliance on potentially inaccurate data or analysis within the Platform.","The Pixel Nexus Global system is provided strictly on an \\"as-is\\" basis without guarantees or warranties of any kind, as its functionality depends on unverified third- party data sources. The platform is intended exclusively for educational, entertainment, and general informational use - not as professional financial advice or a substitute for independent investment research. Users assume all risk associated with interpreting and acting upon any information displayed within the system.","By accessing and using the Platform, you acknowledge these inherent limitations and agree that Pixel Nexus Global shall not be held responsible for any consequences arising from data inaccuracies, analysis errors, or investment decisions made based on platform content."]},{"title":"8. Disclaimer of Investment Advice and Platform Limitations","paragraphs":["The analytical tools and outputs provided by Pixel Nexus Global's iccandle.ai platform are strictly for informational and research purposes only and should not be construed as investment advice. The platform relies on third-party data sources that may contain inaccuracies, and different features may produce varying results due to separate data providers. All analysis, including results from our Pattern Selector, Pattern Tracker, and News Impact Intelligence, is provided \\"AS-IS\\" without any guarantees of accuracy. These tools demonstrate historical patterns, probabilities, and market behavior under past conditions and cannot predict future results, as actual market outcomes may differ due to liquidity, execution, and other variables. You must never rely solely on platform analysis when making investment decisions."]},{"title":"9. Risk Acknowledgement and User Responsibility","paragraphs":["By using Pixel Nexus Global's platform (iccandle.ai), you expressly acknowledge and accept full responsibility for all risks associated with any investment decisions made based on information or analysis obtained from our Platform. You understand that our services rely on third-party data sources that may contain inaccuracies, and that our analytical models employ mathematical formulas and sequences that have not been independently verified for predictive accuracy. Pixel Nexus Global cannot and does not guarantee the reliability of any market data, technical indicators, or analytical outputs generated by the Platform.","Prior to executing any trades, you agree to either: (i) consult with a qualified, licensed financial professional; or (ii) conduct comprehensive independent research using multiple verified information sources.","Pixel Nexus Global expressly disclaims all liability for any trading losses, missed opportunities, or other financial consequences resulting from your reliance on Platform content. By continuing to use iccandle.ai, you confirm your understanding that our tools are designed for informational purposes only and that you alone bear complete responsibility for all investment choices and outcomes. This warning constitutes an essential term of our agreement, and your use of the Platform signifies your unconditional acceptance of these risk disclosures."]},{"title":"10. Disclaimer of Warranties and Service Limitations","paragraphs":["The Pixel Nexus Global platform (iccandle.ai), including all Services, scripts, reports, analytical engines, and related technology, is provided strictly on an \\"AS-IS\\" and \\"AS- AVAILABLE\\" basis. Pixel Nexus Global makes no representations or warranties of any kind, whether express or implied. This includes, but is not limited to, all implied warranties of non-infringement, merchantability, fitness for a particular purpose, accuracy, quality, or achievement of specific results. No warranties arise from any course of dealing, performance, or trade usage.","Pixel Nexus Global does not guarantee that the Service will meet your requirements, operate without interruption, remain error-free, or be secure from viruses or other harmful components. Compatibility with all websites or browsers is not assured, and Pixel Nexus Global disclaims all liability for issues arising from browser incompatibility or third-party services, even if such services appear integrated with our Platform. Any data transmitted via our Services remains your sole responsibility, and Pixel Nexus Global expressly disclaims liability for such content. No warranties provided by third- party vendors to Pixel Nexus Global extend to you, and you are not a third-party beneficiary of such agreements."],"subsections":[{"title":"Alert Features and Beta Functionality","paragraphs":["The Platform includes alert features (e.g., \\"Dynamic Price Alerts\\" and \\"Multi-Factor Alerts\\"), which are provided without warranty or guarantee of reliability. Technical delays or failures may occur due to cellular networks, email services, system errors, or other factors. You acknowledge that alerts may not function as intended and agree that Pixel Nexus Global bears no liability for trading losses resulting from reliance on these features, regardless of whether they were used correctly.","Certain features labeled as 'Beta' are under active development and may exhibit unstable or unreliable performance, including inconsistent data or incorrect information due to software bugs or programming errors. These Beta features carry additional risks and should be used with extreme caution."]},{"title":"General Provisions","paragraphs":["This warranty disclaimer applies to all oral or written information provided by Pixel Nexus Global, its employees, affiliates, or third-party vendors. You may not rely on any such statements or representations.","Some jurisdictions may not permit the exclusion of certain warranties. If applicable to you, any warranty claim must be filed within ninety (90) days of the Service provision that gave rise to the claim. Failure to submit a claim within this period constitutes an irrevocable waiver of your right to pursue such claims thereafter.","Third-party websites linked through the Pixel Nexus Global platform are not under our control, and we assume no responsibility for their content or functionality. Accessing these external sites is entirely at your own risk. Such links are provided for convenience only and do not constitute an endorsement or recommendation by Pixel Nexus Global.","By using the Platform, you acknowledge and accept these limitations and disclaimers in full."]}]},{"title":"11. Limitation of Liability","paragraphs":["Pixel Nexus Global's total liability under this Agreement shall not exceed the aggregate fees actually paid by you to Pixel Nexus Global during the one (1) month period immediately preceding the event giving rise to such liability. For purposes of this limitation, \\"Pixel Nexus Global\\" includes its employees, agents, owners, directors, officers, affiliates, and any third-party service providers facilitating the Services.","To the maximum extent permitted by law, you agree that under no circumstances - including negligence - shall Pixel Nexus Global or its licensors, agents, employees, officers, or third-party vendors be liable for any indirect, incidental, special, consequential, or punitive damages. This exclusion applies to, but is not limited to, damages for:"],"listOrdered":["Lost profits or revenue","Business interruption","Data loss or corruption","Lost savings","Any other financial losses incurred by you, end users, or third parties"],"paragraphsAfter":["These limitations apply regardless of whether the action arises in contract, tort (including negligence), or any other legal theory, and shall remain in effect even if Pixel Nexus Global has been advised of the possibility of such damages. While some jurisdictions may not allow limitations on certain liabilities, you agree that, where such restrictions apply, Pixel Nexus Global's liability shall be limited to the maximum extent permitted by applicable law.","This limitation of liability constitutes an essential basis of the bargain between you and Pixel Nexus Global and shall survive termination of this Agreement. By using the Services, you acknowledge that these limitations are reasonable and reflect the risk allocation between both parties."]},{"title":"12. Notices","paragraphs":["All official notices will be sent to your account’s listed contact information. You are responsible for maintaining current and accurate contact details in our records at all times.","For most inquiries, including technical support and billing matters, please visit our website at www.iccandle.ai for contact information and support options.","However, any legal notices regarding these Terms of Service or other Pixel Nexus Global policies must be sent exclusively via postal mail to our designated address:"],"address":{"company":"Pixel Nexus Global PTE. LTD.","lines":["160 Robinson Road, #14-04","Singapore Business Federation Center","Singapore 068914"]}},{"title":"13. Force Majeure","paragraphs":["Neither party shall be liable for any failure or delay in performance (except for payment obligations) due to events beyond their reasonable control, including, but not limited to, acts of God, natural disasters, war, civil unrest, epidemics, labor disputes, utility failures, telecommunication outages, supply chain disruptions, government actions, or other unforeseeable catastrophic events; provided that: (i) the affected party notifies the other in writing within ten (10) days of the event’s commencement; (ii) all payment obligations remain unaffected; (iii) the time for performance shall be extended day-for-day to match the duration of the disruption; and (iv) both parties use commercially reasonable efforts to mitigate the impact.","It is understood that this clause does not permit termination of the Agreement solely due to force majeure conditions, nor does it extend the Agreement term beyond its original expiration date without mutual written agreement."]},{"title":"14. No Waiver","paragraphs":["No failure or delay by Pixel Nexus Global in exercising any right under these Terms shall operate as a waiver of that right, nor shall any single or partial exercise of any right preclude the further or full exercise of that right or any other right under these Terms."]},{"title":"15. Assignment","paragraphs":["Pixel Nexus Global may assign these Terms, or any rights hereunder, without your consent. You may not assign these Terms without our prior written approval. These Terms shall be binding upon, and inure to the benefit of, the parties' respective successors and permitted assigns."]},{"title":"16. Severability","paragraphs":["If any provision of these Terms is held to be invalid or unenforceable by a court of competent jurisdiction, that provision shall be modified to the minimum extent necessary to make it valid and enforceable while preserving its original intent. All other provisions shall remain in full force and effect."]},{"title":"17. No Agency","paragraphs":["Nothing in these Terms creates an agency, partnership, joint venture or employment relationship between the parties. Neither party has authority to bind the other or incur obligations on the other's behalf."]},{"title":"18. Privacy & Conflicts","paragraphs":["Our Privacy Policy is incorporated herein by reference. In the event of a conflict between agreements: (i) these Terms prevail over the Privacy Policy; (ii) any separate service agreement shall prevail over conflicting provisions of these Terms, but only with respect to those specific provisions; and (iii) in all other cases, these Terms shall govern."]},{"title":"19. Jurisdiction and Disclaimer","paragraphs":["The services and information provided on iccandle.ai are not intended for use in jurisdictions where such services would be contrary to local laws or regulations. Access to and use of this website are strictly prohibited for citizens of the following jurisdictions: United States of America, Canada, Russian Federation, Iran, North Korea, Myanmar, Syria, Cuba, Crimea, Donetsk, and Luhansk regions of Ukraine, Afghanistan, Belarus, and Venezuela. This list may be updated at any time without prior notice. Users are solely responsible for ensuring that their access to and use of this website comply with all applicable laws and regulations in their country. iccandle.ai accepts no responsibility or liability for any non-compliance by users with their local regulatory requirements and reserves the right to restrict, block, or terminate access at its sole discretion."]}],"content":"Terms of Service, TOS, Terms, Conditions, Disclaimers, Contract, Agreement\\nThis agreement is made between Pixel Nexus Global, a Singaporean Limited Liability company operating as www.iccandle.ai (“Pixel Nexus Global,” “we,” “us,” or “our”), and the individual or entity purchasing or utilizing services offered through the Platform (“Customer,” “you,” or “your”). If you are acquiring the Services on behalf of a third party, you confirm that you have the legal authority to bind that party to these Terms of Service and will be liable for their use of the Services.\\n\\nBy accessing the Platform and Services outlined in this document and promoted on www.iccandle.ai, or by subscribing to services via the iccandle.ai website, you acknowledge that you have read, understood, and agreed to these Terms, Conditions, and Disclaimers. You further agree that your relationship with us is governed by the provisions set forth in this TOS. If you do not accept these terms, you must discontinue all use of iccandle.ai and any associated services or Platforms immediately.\\n\\n1. The Services\\nPixel Nexus Global will provide active customers in good standing with access to its AI-powered analytical tool (the “Platform”). As used in this Agreement, the term “Services” refers to Pixel Nexus Global’s provision of your access to the Platform. The Services will be provided to you under one or more subscriptions, account activations, sign-ups, or orders placed by you on the iccandle.ai website and accepted by Pixel Nexus Global (an “Order”).\\n\\nIn case of any conflict between these TOS and an Order, the terms of these TOS shall take precedence. By accepting the Services, you acknowledge and agree that any different or additional terms proposed by you in an Order or otherwise are expressly rejected by Pixel Nexus Global, unless we have agreed to such terms in a written document signed by an authorized representative.\\n\\n2. Your Obligations\\nCustomer Information and Account Responsibilities\\nYou agree to provide Pixel Nexus Global with accurate information when creating your account, throughout our business relationship, and in all correspondence with us. We may occasionally need to contact you via email or telephone regarding the Services. You agree to maintain a valid email address that you check daily and to promptly notify us of any changes to your contact information.\\n\\nPixel Nexus Global shall not be responsible for any service interruptions, damages, or consequences resulting from misdirected communications due to your failure to provide current contact details. You also agree to complete all data entitlement surveys within the platform completely and truthfully to maintain compliance with exchange regulations.\\n\\nPermitted Use of Platform\\nYour use of the Platform must comply with these TOS and any accompanying documentation we provide. If you permit third parties to access the Platform, you agree to: (i) restrict their use in accordance with these terms; (ii) ensure their compliance with these TOS and our Privacy Policy; and (iii) remain fully liable for any violations of these TOS or the Privacy Policy by such third parties.\\n\\nIntellectual Property and Legal Compliance\\nYou agree not to alter, obscure, or remove any trademark or proprietary notices. You may only use the Platform in accordance with: (i) the laws governing these TOS; and (ii) all applicable laws in your jurisdiction.\\n\\nUnauthorized use is strictly prohibited.\\n\\n3. Term\\nEffective Date and Term Duration\\nThese Terms of Service (TOS) become effective (\\"Effective Date\\") on the earlier of: (i) the date you click \\"I accept\\" as recorded by our servers; or (ii) the date you first access or use the Platform.\\n\\nThese TOS remain in effect for the duration of any active Order.\\n\\nSubscription Terms and Renewals\\nThe Services will automatically renew for successive periods (monthly, quarterly, or annually) as specified in your Order. If unspecified, the default initial subscription period (\\"Initial Term\\") is one month. Subsequent renewal periods (\\"Renewal Terms\\") will match the Initial Term’s duration.\\n\\nTrial Period Terms\\nPixel Nexus Global may offer trial periods (paid or free) as indicated on the iccandle.ai trial signup page. During any trial period:\\n\\nAll terms and conditions of this agreement apply as if you were a paid subscriber\\nYou may cancel at any time during the trial to prevent automatic renewal\\nTrial terms and conditions are subject to change without notice\\nSubscription Management Responsibility\\nYou are solely responsible for managing your subscription, including:\\n\\nMonitoring renewal dates\\nUpdating payment information\\nInitiating cancellations\\nMaintaining current contact information\\nPixel Nexus Global is not responsible for any charges due to failure to manage your subscription.\\n\\n4. Termination\\nCancellation and Termination Policy\\nDetails about cancellation and refund policies are available on our Refund and Cancellation Policy page at iccandle.ai. Terminating your account disables automatic renewals but does not cancel past invoices or make prior payments refundable unless stated otherwise in our Refund and Cancellation Policy.\\n\\nAny currently due invoices must be paid in full to settle your account. Your access to Pixel Nexus Global services will continue until the expiration of your prepaid period or trial term.\\n\\nTermination for Convenience\\nEither party may terminate any Order by providing written notice at least one (1) day before the expiration of the Initial Term or any Renewal Term. For purposes of this provision, “written notice” includes communication through email, live chat, telephone, or via the Online Portal, indicating a desire not to continue service with Pixel Nexus Global in the future.\\n\\nTermination for Policy Violations\\nPixel Nexus Global reserve the right to immediately suspend Services and/or terminate any Order in cases of violation of these TOS, breach of our Privacy Policy, or use of Services in a manner contrary to law or generally accepted internet standards. Such termination may occur without prior notice, dispute resolution process, or refund of any fees.\\n\\nEffect of Termination\\nThe expiration or termination of any Order does not affect any rights or obligations that either (i) came into effect upon or after such expiration/termination, or (ii) survive the termination and were incurred by the parties prior to termination. Upon termination, you must promptly settle any outstanding balance. Pixel Nexus Global is not obligated to return any paid fees for terminations occurring prior to completion of a full term, except as may be expressly provided in our Refund and Cancellation Policy.\\n\\nAll termination matters are governed by the complete terms set forth in this agreement, and Pixel Nexus Global maintains full discretion in enforcing these provisions.\\n\\n5. License Grant and Restrictions\\nPixel Nexus Global grants you a limited, revocable, non-exclusive, non-transferable, worldwide license to utilize our proprietary technology (\\"Pixel Nexus Technology\\") solely for accessing and employing our analytical engines as part of the Services, including any generated reports (\\"Reports\\"). This license is restricted to your account's registered users and automatically terminates upon expiration or termination of these TOS.\\n\\nNo rights beyond this limited license are conferred. All ownership rights in the Pixel Nexus Technology remain exclusively with Pixel Nexus Global or its licensors. You are expressly prohibited from: transferring, leasing, lending, sublicensing, reselling, or distributing the technology; using it for timesharing or service bureau purposes; or permitting unauthorized third-party access. You may not circumvent any protective measures safeguarding our proprietary interests, nor modify, reproduce, decompile, reverse engineer, or create derivative works from the Pixel Nexus Technology or Platform components. Upon termination, you must immediately cease using and permanently delete all Pixel Nexus Technology in your possession, ensuring any third parties with access do likewise.\\n\\nOwnership Rights\\nPixel Nexus Global retains all rights, title, and interest in the Pixel Nexus Technology and Platform, including but not limited to all derivative works, improvements, enhancements, and associated intellectual property rights such as trademarks and copyrights.\\n\\nFeedback Provisions\\nYou may voluntarily provide, or we may solicit, input regarding the Platform or Services (\\"Feedback\\"), including suggestions for modifications or improvements. You acknowledge such Feedback constitutes Pixel Nexus Global's confidential proprietary information and irrevocably assign all related rights and interests to us. Pixel Nexus Global may utilize Feedback for any purpose without limitation or compensation obligation. This assignment applies globally and survives termination of these TOS.\\n\\nAll rights not expressly granted herein are reserved by Pixel Nexus Global. Any unauthorized use constitutes breach of these TOS and may result in immediate termination of your access rights.\\n\\n6. Data Usage and Intellectual Property Rights\\nPixel Nexus Global may utilize information you provide or data collected from your use of the Platform and Services (\\"Operational Information\\") to deliver technical support and facilitate the implementation, operation, and administration of the Services. By using our Services, you grant us a perpetual, irrevocable license to process and analyze this Operational Information. We may combine this data with aggregate information from our general business operations to enhance existing Services or develop new products and offerings.\\n\\nPixel Nexus Global shall retain exclusive ownership of all intellectual property derived from such analysis and improvements. You hereby irrevocably waive any potential rights to this intellectual property and assign all rights, title, and interest therein to Pixel Nexus Global. You further agree to provide reasonable cooperation in securing and protecting these rights. We reserve the right to commercialize this Operational Information through sale, monetization, or incorporation into other products and services, without obligation to compensate you or grant you any ownership interest.\\n\\nThis license shall terminate upon expiration or cancellation of these Terms of Service, except with respect to historical data that has been aggregated and anonymized such that it cannot be identified as originating from your organization. Pixel Nexus Global may retain and continue to use such anonymized, aggregated data indefinitely for any lawful business purpose.\\n\\nAll intellectual property rights not expressly granted herein remain the exclusive property of Pixel Nexus Global. Your continued use of the Services constitutes acceptance of these terms regarding data usage and intellectual property rights.\\n\\n7. Accuracy of Information Disclaimer\\nPixel Nexus Global relies on third-party data feeds to power its platform and therefore cannot guarantee the absolute accuracy of the information displayed. Different features within our system (such as scanners, automated analysis tools, charting functions, and back testing capabilities) may utilize separate data providers, which can result in variances between datasets across different platform features. Users should always verify analysis results and scanner conditions to ensure data consistency.\\n\\nThe platform's analytical outputs are inherently dependent on the quality of underlying third-party data, and Pixel Nexus Global makes no representations or warranties regarding the accuracy of these analyses. The iccandle.ai website, Services, and Platform are designed solely for informational and research purposes - they should never serve as the sole basis for investment decisions. Pixel Nexus Global disclaims all liability for any financial losses resulting from reliance on potentially inaccurate data or analysis within the Platform.\\n\\nThe Pixel Nexus Global system is provided strictly on an \\"as-is\\" basis without guarantees or warranties of any kind, as its functionality depends on unverified third- party data sources. The platform is intended exclusively for educational, entertainment, and general informational use - not as professional financial advice or a substitute for independent investment research. Users assume all risk associated with interpreting and acting upon any information displayed within the system.\\n\\nBy accessing and using the Platform, you acknowledge these inherent limitations and agree that Pixel Nexus Global shall not be held responsible for any consequences arising from data inaccuracies, analysis errors, or investment decisions made based on platform content.\\n\\n8. Disclaimer of Investment Advice and Platform Limitations\\nThe analytical tools and outputs provided by Pixel Nexus Global's iccandle.ai platform are strictly for informational and research purposes only and should not be construed as investment advice. The platform relies on third-party data sources that may contain inaccuracies, and different features may produce varying results due to separate data providers. All analysis, including results from our Pattern Selector, Pattern Tracker, and News Impact Intelligence, is provided \\"AS-IS\\" without any guarantees of accuracy. These tools demonstrate historical patterns, probabilities, and market behavior under past conditions and cannot predict future results, as actual market outcomes may differ due to liquidity, execution, and other variables. You must never rely solely on platform analysis when making investment decisions.\\n\\n9. Risk Acknowledgement and User Responsibility\\nBy using Pixel Nexus Global's platform (iccandle.ai), you expressly acknowledge and accept full responsibility for all risks associated with any investment decisions made based on information or analysis obtained from our Platform. You understand that our services rely on third-party data sources that may contain inaccuracies, and that our analytical models employ mathematical formulas and sequences that have not been independently verified for predictive accuracy. Pixel Nexus Global cannot and does not guarantee the reliability of any market data, technical indicators, or analytical outputs generated by the Platform.\\n\\nPrior to executing any trades, you agree to either: (i) consult with a qualified, licensed financial professional; or (ii) conduct comprehensive independent research using multiple verified information sources.\\n\\nPixel Nexus Global expressly disclaims all liability for any trading losses, missed opportunities, or other financial consequences resulting from your reliance on Platform content. By continuing to use iccandle.ai, you confirm your understanding that our tools are designed for informational purposes only and that you alone bear complete responsibility for all investment choices and outcomes. This warning constitutes an essential term of our agreement, and your use of the Platform signifies your unconditional acceptance of these risk disclosures.\\n\\n10. Disclaimer of Warranties and Service Limitations\\nThe Pixel Nexus Global platform (iccandle.ai), including all Services, scripts, reports, analytical engines, and related technology, is provided strictly on an \\"AS-IS\\" and \\"AS- AVAILABLE\\" basis. Pixel Nexus Global makes no representations or warranties of any kind, whether express or implied. This includes, but is not limited to, all implied warranties of non-infringement, merchantability, fitness for a particular purpose, accuracy, quality, or achievement of specific results. No warranties arise from any course of dealing, performance, or trade usage.\\n\\nPixel Nexus Global does not guarantee that the Service will meet your requirements, operate without interruption, remain error-free, or be secure from viruses or other harmful components. Compatibility with all websites or browsers is not assured, and Pixel Nexus Global disclaims all liability for issues arising from browser incompatibility or third-party services, even if such services appear integrated with our Platform. Any data transmitted via our Services remains your sole responsibility, and Pixel Nexus Global expressly disclaims liability for such content. No warranties provided by third- party vendors to Pixel Nexus Global extend to you, and you are not a third-party beneficiary of such agreements.\\n\\nAlert Features and Beta Functionality\\nThe Platform includes alert features (e.g., \\"Dynamic Price Alerts\\" and \\"Multi-Factor Alerts\\"), which are provided without warranty or guarantee of reliability. Technical delays or failures may occur due to cellular networks, email services, system errors, or other factors. You acknowledge that alerts may not function as intended and agree that Pixel Nexus Global bears no liability for trading losses resulting from reliance on these features, regardless of whether they were used correctly.\\n\\nCertain features labeled as 'Beta' are under active development and may exhibit unstable or unreliable performance, including inconsistent data or incorrect information due to software bugs or programming errors. These Beta features carry additional risks and should be used with extreme caution.\\n\\nGeneral Provisions\\nThis warranty disclaimer applies to all oral or written information provided by Pixel Nexus Global, its employees, affiliates, or third-party vendors. You may not rely on any such statements or representations.\\n\\nSome jurisdictions may not permit the exclusion of certain warranties. If applicable to you, any warranty claim must be filed within ninety (90) days of the Service provision that gave rise to the claim. Failure to submit a claim within this period constitutes an irrevocable waiver of your right to pursue such claims thereafter.\\n\\nThird-party websites linked through the Pixel Nexus Global platform are not under our control, and we assume no responsibility for their content or functionality. Accessing these external sites is entirely at your own risk. Such links are provided for convenience only and do not constitute an endorsement or recommendation by Pixel Nexus Global.\\n\\nBy using the Platform, you acknowledge and accept these limitations and disclaimers in full.\\n\\n11. Limitation of Liability\\nPixel Nexus Global's total liability under this Agreement shall not exceed the aggregate fees actually paid by you to Pixel Nexus Global during the one (1) month period immediately preceding the event giving rise to such liability. For purposes of this limitation, \\"Pixel Nexus Global\\" includes its employees, agents, owners, directors, officers, affiliates, and any third-party service providers facilitating the Services.\\n\\nTo the maximum extent permitted by law, you agree that under no circumstances - including negligence - shall Pixel Nexus Global or its licensors, agents, employees, officers, or third-party vendors be liable for any indirect, incidental, special, consequential, or punitive damages. This exclusion applies to, but is not limited to, damages for:\\n\\nLost profits or revenue\\nBusiness interruption\\nData loss or corruption\\nLost savings\\nAny other financial losses incurred by you, end users, or third parties\\nThese limitations apply regardless of whether the action arises in contract, tort (including negligence), or any other legal theory, and shall remain in effect even if Pixel Nexus Global has been advised of the possibility of such damages. While some jurisdictions may not allow limitations on certain liabilities, you agree that, where such restrictions apply, Pixel Nexus Global's liability shall be limited to the maximum extent permitted by applicable law.\\n\\nThis limitation of liability constitutes an essential basis of the bargain between you and Pixel Nexus Global and shall survive termination of this Agreement. By using the Services, you acknowledge that these limitations are reasonable and reflect the risk allocation between both parties.\\n\\n12. Notices\\nAll official notices will be sent to your account’s listed contact information. You are responsible for maintaining current and accurate contact details in our records at all times.\\n\\nFor most inquiries, including technical support and billing matters, please visit our website at www.iccandle.ai for contact information and support options.\\n\\nHowever, any legal notices regarding these Terms of Service or other Pixel Nexus Global policies must be sent exclusively via postal mail to our designated address:\\n\\nPixel Nexus Global PTE. LTD.\\n160 Robinson Road, #14-04\\n\\nSingapore Business Federation Center\\n\\nSingapore 068914\\n\\n13. Force Majeure\\nNeither party shall be liable for any failure or delay in performance (except for payment obligations) due to events beyond their reasonable control, including, but not limited to, acts of God, natural disasters, war, civil unrest, epidemics, labor disputes, utility failures, telecommunication outages, supply chain disruptions, government actions, or other unforeseeable catastrophic events; provided that: (i) the affected party notifies the other in writing within ten (10) days of the event’s commencement; (ii) all payment obligations remain unaffected; (iii) the time for performance shall be extended day-for-day to match the duration of the disruption; and (iv) both parties use commercially reasonable efforts to mitigate the impact.\\n\\nIt is understood that this clause does not permit termination of the Agreement solely due to force majeure conditions, nor does it extend the Agreement term beyond its original expiration date without mutual written agreement.\\n\\n14. No Waiver\\nNo failure or delay by Pixel Nexus Global in exercising any right under these Terms shall operate as a waiver of that right, nor shall any single or partial exercise of any right preclude the further or full exercise of that right or any other right under these Terms.\\n\\n15. Assignment\\nPixel Nexus Global may assign these Terms, or any rights hereunder, without your consent. You may not assign these Terms without our prior written approval. These Terms shall be binding upon, and inure to the benefit of, the parties' respective successors and permitted assigns.\\n\\n16. Severability\\nIf any provision of these Terms is held to be invalid or unenforceable by a court of competent jurisdiction, that provision shall be modified to the minimum extent necessary to make it valid and enforceable while preserving its original intent. All other provisions shall remain in full force and effect.\\n\\n17. No Agency\\nNothing in these Terms creates an agency, partnership, joint venture or employment relationship between the parties. Neither party has authority to bind the other or incur obligations on the other's behalf.\\n\\n18. Privacy & Conflicts\\nOur Privacy Policy is incorporated herein by reference. In the event of a conflict between agreements: (i) these Terms prevail over the Privacy Policy; (ii) any separate service agreement shall prevail over conflicting provisions of these Terms, but only with respect to those specific provisions; and (iii) in all other cases, these Terms shall govern.\\n\\n19. Jurisdiction and Disclaimer\\nThe services and information provided on iccandle.ai are not intended for use in jurisdictions where such services would be contrary to local laws or regulations. Access to and use of this website are strictly prohibited for citizens of the following jurisdictions: United States of America, Canada, Russian Federation, Iran, North Korea, Myanmar, Syria, Cuba, Crimea, Donetsk, and Luhansk regions of Ukraine, Afghanistan, Belarus, and Venezuela. This list may be updated at any time without prior notice. Users are solely responsible for ensuring that their access to and use of this website comply with all applicable laws and regulations in their country. iccandle.ai accepts no responsibility or liability for any non-compliance by users with their local regulatory requirements and reserves the right to restrict, block, or terminate access at its sole discretion."},"Refund":{"title":"Refund and Cancellation Policy","intro":"This Refund and Cancellation Policy (\\"Policy\\") governs refund and cancellation terms for services provided by Pixel Nexus Global Pte. Ltd. (\\"we,\\" \\"us,\\" \\"our\\") through the iccandle.ai platform (\\"Services\\"). This Policy is incorporated by reference into our Terms of Service and should be read in conjunction with those Terms.","sections":[{"title":"1. Definitions","definitions":[{"term":"Subscription","text":"A recurring paid access to the Services for a specified period (e.g., monthly or annually)."},{"term":"Billing Period","text":"The recurring time interval for which a Subscription fee is charged."},{"term":"Subscription Change","text":"Any upgrade or downgrade to a different Subscription plan."}]},{"title":"2. Cancellation Terms","subsections":[{"title":"Subscription Cancellation","listDisc":["You may cancel your Subscription at any time through your account dashboard or by contacting support.","Cancellation will take effect at the end of the current billing period; you will retain access to the Services through the end of that period.","Cancelling your Subscription does not automatically entitle you to a refund of fees already paid."]}]},{"title":"3. Refund Terms","subsections":[{"title":"3.1 General Rule","paragraphs":["Except as expressly provided in this Policy or required by applicable law, all fees paid for Subscriptions are non‑refundable once charged."]},{"title":"3.2 Refund Eligibility","paragraphs":["We may issue a refund at our sole discretion only in limited circumstances, including but not limited to:"],"listDisc":["Duplicate payments (verified duplicate charges will be refunded).","Technical errors that demonstrably prevented access to Services, where the error was not caused by user actions and is verified by us.","Applicable statutory rights under consumer protection law where these rights apply and cannot be waived."],"paragraphsAfter":["Refunds, if approved, will be processed to the original payment method within a commercially reasonable timeframe determined by payment processors and banking partners."]},{"title":"3.3 No Refund for Partial Use","paragraphs":["Refunds will not be issued for:"],"listDisc":["Partial use of the Services during a billing period.","Downgrades of Subscription plans.","Change of mind or business decisions after payment.","Subscription cancellations submitted after a billing cycle has renewed."]}]},{"title":"4. Subscription Changes (Upgrade or Downgrade)","paragraphs":["We provide two options when changing your Subscription plan:"],"subsections":[{"title":"4.1 Change Now","paragraphs":["If you select \\"Change Now,\\" your new plan will take effect immediately, and the associated charge will be applied.","Please note that no refunds, credits, or prorated adjustments will be provided for any unused portion of your current plan."]},{"title":"4.2 Change on Next Billing","paragraphs":["If you choose \\"Change on Next Billing,\\" your current plan will remain active until the end of the current Billing Period.","The new plan will take effect at the start of the next Billing Period.","No refunds or credits apply to the current Billing Period."]}]},{"title":"5. Cancellation After renewal","paragraphs":["If an automatic renewal has already occurred before you submit a cancellation request: The renewal fee is non-refundable. The cancellation will apply to the next Billing Period."]},{"title":"6. Chargebacks and Disputes","paragraphs":["We maintain a strict no-tolerance policy toward unjustified chargebacks.","Initiating a chargeback or payment dispute without first contacting us to seek resolution is considered a breach of this Refund and Cancellation Policy and our Terms of Service. Such actions may result in immediate suspension or permanent termination of your account, without notice, and forfeiture of access to the Services.","We reserve the right to challenge and dispute any chargeback that we deem unauthorized, abusive, or inconsistent with this Policy. This includes providing payment processors, banks, and financial institutions with all relevant evidence, including but not limited to:"],"listDisc":["Proof of service delivery and access logs","Account activity records","Acceptance of our Terms of Service and policies","Communication history with the customer"],"paragraphsAfter":["Customers are strongly encouraged to contact our support team first to resolve any billing concerns. We are committed to addressing legitimate issues in good faith; however, chargebacks used as a substitute for cancellation or refund requests will not be tolerated."]},{"title":"7. Modification of Policy","paragraphs":["We may update this Policy from time to time. Material changes will be posted on our website or communicated via email prior to taking effect. Continued use of the Services after such updates constitutes acceptance of the revised Policy."]},{"title":"8. Contact Information","paragraphs":["For all cancellation and refund requests, please contact our support team via our help center."]}],"content":"Refund and Cancellation Policy\\nThis Refund and Cancellation Policy (“Policy”) governs refund and cancellation terms for services provided by Pixel Nexus Global Pte. Ltd. (“we,” “us,” “our”) through the iccandle.ai platform (“Services”). This Policy is incorporated by reference into our Terms of Service and should be read in conjunction with those Terms.\\n\\n1. Definitions\\nSubscription: A recurring paid access to the Services for a specified period (e.g., monthly or annually).\\n\\nBilling Period: The recurring time interval for which a Subscription fee is charged.\\n\\nSubscription Change: Any upgrade or downgrade to a different Subscription plan.\\n\\n2. Cancellation Terms\\nSubscription Cancellation\\nYou may cancel your Subscription at any time through your account dashboard or by contacting support.\\nCancellation will take effect at the end of the current billing period; you will retain access to the Services through the end of that period.\\nCancelling your Subscription does not automatically entitle you to a refund of fees already paid.\\n3. Refund Terms\\n3.1 General Rule\\nExcept as expressly provided in this Policy or required by applicable law, all fees paid for Subscriptions are non‑refundable once charged.\\n\\n3.2 Refund Eligibility\\nWe may issue a refund at our sole discretion only in limited circumstances, including but not limited to:\\n\\nDuplicate payments (verified duplicate charges will be refunded).\\nTechnical errors that demonstrably prevented access to Services, where the error was not caused by user actions and is verified by us.\\nApplicable statutory rights under consumer protection law where these rights apply and cannot be waived.\\nRefunds, if approved, will be processed to the original payment method within a commercially reasonable timeframe determined by payment processors and banking partners.\\n\\n3.3 No Refund for Partial Use\\nRefunds will not be issued for:\\n\\nPartial use of the Services during a billing period.\\nDowngrades of Subscription plans.\\nChange of mind or business decisions after payment.\\nSubscription cancellations submitted after a billing cycle has renewed.\\n4. Subscription Changes (Upgrade or Downgrade)\\nWe provide two options when changing your Subscription plan:\\n\\n4.1 Change Now\\nIf you select “Change Now,” your new plan will take effect immediately, and the associated charge will be applied.\\n\\nPlease note that no refunds, credits, or prorated adjustments will be provided for any unused portion of your current plan.\\n\\n4.2 Change on Next Billing\\nIf you choose “Change on Next Billing,” your current plan will remain active until the end of the current Billing Period.\\n\\nThe new plan will take effect at the start of the next Billing Period.\\n\\nNo refunds or credits apply to the current Billing Period.\\n\\n5. Cancellation After renewal\\nIf an automatic renewal has already occurred before you submit a cancellation request: The renewal fee is non-refundable. The cancellation will apply to the next Billing Period.\\n\\n6. Chargebacks and Disputes\\nWe maintain a strict no-tolerance policy toward unjustified chargebacks.\\n\\nInitiating a chargeback or payment dispute without first contacting us to seek resolution is considered a breach of this Refund and Cancellation Policy and our Terms of Service. Such actions may result in immediate suspension or permanent termination of your account, without notice, and forfeiture of access to the Services.\\n\\nWe reserve the right to challenge and dispute any chargeback that we deem unauthorized, abusive, or inconsistent with this Policy. This includes providing payment processors, banks, and financial institutions with all relevant evidence, including but not limited to:\\n\\nProof of service delivery and access logs\\nAccount activity records\\nAcceptance of our Terms of Service and policies\\nCommunication history with the customer\\nCustomers are strongly encouraged to contact our support team first to resolve any billing concerns. We are committed to addressing legitimate issues in good faith; however, chargebacks used as a substitute for cancellation or refund requests will not be tolerated.\\n\\n7. Modification of Policy\\nWe may update this Policy from time to time. Material changes will be posted on our website or communicated via email prior to taking effect. Continued use of the Services after such updates constitutes acceptance of the revised Policy.\\n\\n8. Contact Information\\nFor all cancellation and refund requests, please contact our support team via our help center."},"Privacy":{"title":"Privacy Policy","intro":"This Privacy Policy explains how Pixel Nexus Global Pte. Ltd. (\\"we\\", \\"us\\", or \\"our\\") collects, uses, discloses, and protects personal information when you use our website, applications, and services (collectively, the \\"Services\\").","sections":[{"title":"1. Information We Collect","paragraphs":["We collect the following information:"],"listDisc":["Email address provided when you sign up for our Services","Service usage information, including interactions with features, pages viewed, session activity, and general usage patterns, collected to improve the functionality, performance, and user experience of our Services"],"paragraphsAfter":["We do not collect, store, or process payment card details or other sensitive payment information."]},{"title":"2. Payments and Stripe","paragraphs":["All payment transactions are processed by our third-party payment service provider, Stripe.","When you make a payment, Stripe collects and processes payment-related information (such as card details, billing information, and transaction data) directly. This information is handled in accordance with Stripe’s Privacy Policy and security standards, including PCI-DSS compliance.","We only receive limited information from Stripe necessary to operate our Services, including:"],"listDisc":["Payment confirmation","Subscription status","Transaction identifiers"],"paragraphsAfter":["We do not have access to your full payment details.","You can review Stripe’s Privacy Policy here:"],"stripePrivacyUrl":"https://stripe.com/privacy"},{"title":"3. How We Use Your Information","paragraphs":["We use the email addresses we collect to:"],"listDisc":["Provide, operate, and maintain our Services","Analyze service usage and improve product functionality, performance, and user experience","Communicate with you regarding technical notices, updates, and support","Inform you about products, services, features, and events"]},{"title":"4. Information Sharing","paragraphs":["We do not sell your personal information.","We may share your information only with:"],"listDisc":["Service providers who support our operations (including hosting, analytics, and payment processing via Stripe)","Professional advisors, such as legal, accounting, or compliance consultants","Law enforcement or regulatory authorities, when required by law or to protect our legal rights"],"paragraphsAfter":["All third-party service providers are required to process personal data in accordance with applicable data protection laws."]},{"title":"5. Your Rights","paragraphs":["Depending on your location, you may have the right to:"],"listDisc":["Access your personal information","Correct or update your email address","Request deletion of your email address","Object to or restrict certain processing activities"],"paragraphsAfter":["Requests related to payment data should be directed to Stripe, as they act as the data controller for payment information."]},{"title":"6. Third-Party Policies","paragraphs":["Our Services rely on third-party providers such as Stripe. Their handling of personal data is governed by their own privacy policies, and we encourage you to review them."]},{"title":"7. Contact Us","paragraphs":["If you have any questions about this Privacy Policy or our data practices, please contact us at:","support@iccandle.ai"]}],"content":"Privacy Policy\\nThis Privacy Policy explains how Pixel Nexus Global Pte. Ltd. (“we”, “us”, or “our”) collects, uses, discloses, and protects personal information when you use our website, applications, and services (collectively, the “Services”).\\n\\n1. Information We Collect\\nWe collect the following information:\\n\\nEmail address provided when you sign up for our Services\\nService usage information, including interactions with features, pages viewed, session activity, and general usage patterns, collected to improve the functionality, performance, and user experience of our Services\\nWe do not collect, store, or process payment card details or other sensitive payment information.\\n\\n2. Payments and Stripe\\nAll payment transactions are processed by our third-party payment service provider, Stripe.\\n\\nWhen you make a payment, Stripe collects and processes payment-related information (such as card details, billing information, and transaction data) directly. This information is handled in accordance with Stripe’s Privacy Policy and security standards, including PCI-DSS compliance.\\n\\nWe only receive limited information from Stripe necessary to operate our Services, including:\\n\\nPayment confirmation\\nSubscription status\\nTransaction identifiers\\nWe do not have access to your full payment details.\\n\\nYou can review Stripe’s Privacy Policy here: https://stripe.com/privacy\\n\\n3. How We Use Your Information\\nWe use the email addresses we collect to:\\n\\nProvide, operate, and maintain our Services\\nAnalyze service usage and improve product functionality, performance, and user experience\\nCommunicate with you regarding technical notices, updates, and support\\nInform you about products, services, features, and events\\n4. Information Sharing\\nWe do not sell your personal information.\\n\\nWe may share your information only with:\\n\\nService providers who support our operations (including hosting, analytics, and payment processing via Stripe)\\nProfessional advisors, such as legal, accounting, or compliance consultants\\nLaw enforcement or regulatory authorities, when required by law or to protect our legal rights\\nAll third-party service providers are required to process personal data in accordance with applicable data protection laws.\\n\\n5. Your Rights\\nDepending on your location, you may have the right to:\\n\\nAccess your personal information\\nCorrect or update your email address\\nRequest deletion of your email address\\nObject to or restrict certain processing activities\\nRequests related to payment data should be directed to Stripe, as they act as the data controller for payment information.\\n\\n6. Third-Party Policies\\nOur Services rely on third-party providers such as Stripe. Their handling of personal data is governed by their own privacy policies, and we encourage you to review them.\\n\\n7. Contact Us\\nIf you have any questions about this Privacy Policy or our data practices, please contact us at: support@iccandle.ai"},"Cookie":{"title":"Cookie Policy","intro":["This Cookie Policy explains how Pixel Nexus Global Pte. Ltd. (\\"we\\", \\"us\\", or \\"our\\") uses cookies and similar technologies when you visit or use iccandle.ai and related services (collectively, the \\"Services\\").","This Policy should be read together with our Privacy Policy."],"sections":[{"title":"1. What Are Cookies?","paragraphs":["Cookies are small text files placed on your device when you visit a website. They are widely used to make websites work efficiently, enhance user experience, and provide information to website operators.","Cookies may be:"],"listDisc":["Session cookies (deleted when you close your browser), or","Persistent cookies (stored for a set period or until deleted)."]},{"title":"2. Types of Cookies We Use","subsections":[{"title":"2.1 Strictly Necessary Cookies","paragraphs":["These cookies are essential for the operation of our Services and cannot be switched off. They are required to:"],"listDisc":["Enable secure login and authentication","Maintain user sessions","Protect against fraud and abuse"],"paragraphsAfter":["Without these cookies, the Services cannot function properly."]},{"title":"2.2 Functional Cookies","paragraphs":["These cookies allow us to remember your preferences and settings, such as:"],"listDisc":["Language or regional preferences","Account-related selections"],"paragraphsAfter":["They improve usability but are not strictly necessary."]},{"title":"2.3 Analytics and Performance Cookies","paragraphs":["We use analytics cookies to understand how users interact with our Services. These cookies collect information such as:"],"listDisc":["Pages visited and features used","Session duration and interaction patterns","Error and performance data"],"paragraphsAfter":["This information is used solely to improve our product, functionality, and user experience. Analytics data is aggregated and does not directly identify individual users."]},{"title":"2.4 Third-Party Cookies","paragraphs":["Some cookies are placed by third-party service providers that support our Services, including:"],"listDisc":["Payment processing services (e.g., Stripe)","Analytics and infrastructure providers"],"paragraphsAfter":["These third parties may use cookies in accordance with their own privacy and cookie policies."]}]},{"title":"3. What We Do NOT Use Cookies For","listDisc":["We do not use cookies for advertising or behavioral targeting","We do not sell cookie data","We do not use cookies to collect sensitive personal information"]},{"title":"4. Managing Cookies","paragraphs":["You can manage or disable cookies through your browser settings. Most browsers allow you to:"],"listDisc":["View cookies stored on your device","Delete existing cookies","Block cookies entirely or from specific websites"],"paragraphsAfter":["Please note that disabling certain cookies may affect the functionality and performance of the Services."]},{"title":"5. Changes to This Cookie Policy","paragraphs":["We may update this Cookie Policy from time to time to reflect changes in technology, law, or our practices. Material changes will be posted on our website. Continued use of the Services after changes take effect constitutes acceptance of the updated Policy."]},{"title":"6. Contact Us","paragraphs":["If you have any questions about this Cookie Policy or our use of cookies, please contact us at:","support@iccandle.ai"]}],"content":"Cookie Policy\\nThis Cookie Policy explains how Pixel Nexus Global Pte. Ltd. (“we”, “us”, or “our”) uses cookies and similar technologies when you visit or use iccandle.ai and related services (collectively, the “Services”).\\n\\nThis Policy should be read together with our Privacy Policy.\\n\\n1. What Are Cookies?\\nCookies are small text files placed on your device when you visit a website. They are widely used to make websites work efficiently, enhance user experience, and provide information to website operators.\\n\\nCookies may be:\\n\\nSession cookies (deleted when you close your browser), or\\nPersistent cookies (stored for a set period or until deleted).\\n2. Types of Cookies We Use\\n2.1 Strictly Necessary Cookies\\nThese cookies are essential for the operation of our Services and cannot be switched off. They are required to:\\n\\nEnable secure login and authentication\\nMaintain user sessions\\nProtect against fraud and abuse\\nWithout these cookies, the Services cannot function properly.\\n\\n2.2 Functional Cookies\\nThese cookies allow us to remember your preferences and settings, such as:\\n\\nLanguage or regional preferences\\nAccount-related selections\\nThey improve usability but are not strictly necessary.\\n\\n2.3 Analytics and Performance Cookies\\nWe use analytics cookies to understand how users interact with our Services. These cookies collect information such as:\\n\\nPages visited and features used\\nSession duration and interaction patterns\\nError and performance data\\nThis information is used solely to improve our product, functionality, and user experience. Analytics data is aggregated and does not directly identify individual users.\\n\\n2.4 Third-Party Cookies\\nSome cookies are placed by third-party service providers that support our Services, including:\\n\\nPayment processing services (e.g., Stripe)\\nAnalytics and infrastructure providers\\nThese third parties may use cookies in accordance with their own privacy and cookie policies.\\n\\n3. What We Do NOT Use Cookies For\\nWe do not use cookies for advertising or behavioral targeting\\nWe do not sell cookie data\\nWe do not use cookies to collect sensitive personal information\\n4. Managing Cookies\\nYou can manage or disable cookies through your browser settings. Most browsers allow you to:\\n\\nView cookies stored on your device\\nDelete existing cookies\\nBlock cookies entirely or from specific websites\\nPlease note that disabling certain cookies may affect the functionality and performance of the Services.\\n\\n5. Changes to This Cookie Policy\\nWe may update this Cookie Policy from time to time to reflect changes in technology, law, or our practices. Material changes will be posted on our website. Continued use of the Services after changes take effect constitutes acceptance of the updated Policy.\\n\\n6. Contact Us\\nIf you have any questions about this Cookie Policy or our use of cookies, please contact us at:\\n\\nsupport@iccandle.ai"}}`), mp = {
|
|
@@ -4923,7 +4923,7 @@ function Jr(e, t, n) {
|
|
|
4923
4923
|
const i = uo(co[e], t) ?? uo(co.en, t) ?? t;
|
|
4924
4924
|
return Yg(i, n);
|
|
4925
4925
|
}
|
|
4926
|
-
let Vs =
|
|
4926
|
+
let Vs = yi;
|
|
4927
4927
|
function qg(e) {
|
|
4928
4928
|
Vs = e;
|
|
4929
4929
|
}
|
|
@@ -4931,8 +4931,8 @@ function Wg() {
|
|
|
4931
4931
|
return Vs;
|
|
4932
4932
|
}
|
|
4933
4933
|
const Ks = qc({
|
|
4934
|
-
language:
|
|
4935
|
-
t: (e, t) => Jr(
|
|
4934
|
+
language: yi,
|
|
4935
|
+
t: (e, t) => Jr(yi, e, t)
|
|
4936
4936
|
}), _g = {
|
|
4937
4937
|
info: {
|
|
4938
4938
|
icon: Hu
|
|
@@ -5279,7 +5279,7 @@ function Zg({
|
|
|
5279
5279
|
const M = U.period * 365.25 * 24 * 60 * 60, _ = T - M;
|
|
5280
5280
|
H.filter || (H.filter = {}), H.filter.period = _;
|
|
5281
5281
|
}
|
|
5282
|
-
const E = `${
|
|
5282
|
+
const E = `${Bn}/${p}?symbol=${H.symbol}&ref_res=${H.reference_resolution}&tk=${H.top_k}&res=${H.resolution}&cid=${H.candle_id}&from=${H.start_timestamp * 1e3}&to=${H.end_timestamp * 1e3}` + (H.filter?.symbols?.length ? `&fs=${H.filter.symbols}` : "") + (H.filter?.period != null ? `&period=${H.filter.period}` : "") + (U.model ? `&model=${U.model}` : "") + (U.temperature != null ? `&temp=${U.temperature}` : "") + (m === "dark" ? "&theme=dark" : "&theme=light");
|
|
5283
5283
|
g(), t(E);
|
|
5284
5284
|
}, [
|
|
5285
5285
|
y,
|
|
@@ -5623,7 +5623,7 @@ const ty = (e, t) => {
|
|
|
5623
5623
|
nextPart: e,
|
|
5624
5624
|
validators: t,
|
|
5625
5625
|
classGroupId: n
|
|
5626
|
-
}),
|
|
5626
|
+
}), bi = "-", fo = [], iy = "arbitrary..", ry = (e) => {
|
|
5627
5627
|
const t = oy(e), {
|
|
5628
5628
|
conflictingClassGroups: n,
|
|
5629
5629
|
conflictingClassGroupModifiers: i
|
|
@@ -5632,7 +5632,7 @@ const ty = (e, t) => {
|
|
|
5632
5632
|
getClassGroupId: (o) => {
|
|
5633
5633
|
if (o.startsWith("[") && o.endsWith("]"))
|
|
5634
5634
|
return ay(o);
|
|
5635
|
-
const s = o.split(
|
|
5635
|
+
const s = o.split(bi), u = s[0] === "" && s.length > 1 ? 1 : 0;
|
|
5636
5636
|
return rl(s, u, t);
|
|
5637
5637
|
},
|
|
5638
5638
|
getConflictingClassGroupIds: (o, s) => {
|
|
@@ -5654,7 +5654,7 @@ const ty = (e, t) => {
|
|
|
5654
5654
|
const o = n.validators;
|
|
5655
5655
|
if (o === null)
|
|
5656
5656
|
return;
|
|
5657
|
-
const s = t === 0 ? e.join(
|
|
5657
|
+
const s = t === 0 ? e.join(bi) : e.slice(t).join(bi), u = o.length;
|
|
5658
5658
|
for (let c = 0; c < u; c++) {
|
|
5659
5659
|
const d = o[c];
|
|
5660
5660
|
if (d.validator(s))
|
|
@@ -5709,7 +5709,7 @@ const ty = (e, t) => {
|
|
|
5709
5709
|
}
|
|
5710
5710
|
}, al = (e, t) => {
|
|
5711
5711
|
let n = e;
|
|
5712
|
-
const i = t.split(
|
|
5712
|
+
const i = t.split(bi), r = i.length;
|
|
5713
5713
|
for (let a = 0; a < r; a++) {
|
|
5714
5714
|
const o = i[a];
|
|
5715
5715
|
let s = n.nextPart.get(o);
|
|
@@ -5888,7 +5888,7 @@ const ty = (e, t) => {
|
|
|
5888
5888
|
// For example, `hsl(0 0% 0%)` would be classified as a length without this check.
|
|
5889
5889
|
// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.
|
|
5890
5890
|
ky.test(e) && !Cy.test(e)
|
|
5891
|
-
), Qr = () => !1, Ry = (e) => Ay.test(e), Ey = (e) => Ny.test(e), Oy = (e) => !oe(e) && !se(e), My = (e) => Xt(e, hl, Qr), oe = (e) => sl.test(e), en = (e) => Xt(e, pl, Dy), bo = (e) => Xt(e, zy, fe), Iy = (e) => Xt(e, fl, cl), Ly = (e) => Xt(e, ml, Qr), vo = (e) => Xt(e, ul, Qr), Fy = (e) => Xt(e, dl, Ey),
|
|
5891
|
+
), Qr = () => !1, Ry = (e) => Ay.test(e), Ey = (e) => Ny.test(e), Oy = (e) => !oe(e) && !se(e), My = (e) => Xt(e, hl, Qr), oe = (e) => sl.test(e), en = (e) => Xt(e, pl, Dy), bo = (e) => Xt(e, zy, fe), Iy = (e) => Xt(e, fl, cl), Ly = (e) => Xt(e, ml, Qr), vo = (e) => Xt(e, ul, Qr), Fy = (e) => Xt(e, dl, Ey), ai = (e) => Xt(e, gl, Ry), se = (e) => ll.test(e), En = (e) => cn(e, pl), Gy = (e) => cn(e, ml), wo = (e) => cn(e, ul), By = (e) => cn(e, hl), jy = (e) => cn(e, dl), oi = (e) => cn(e, gl, !0), Uy = (e) => cn(e, fl, !0), Xt = (e, t, n) => {
|
|
5892
5892
|
const i = sl.exec(e);
|
|
5893
5893
|
return i ? i[1] ? t(i[1]) : n(i[2]) : !1;
|
|
5894
5894
|
}, cn = (e, t, n = !1) => {
|
|
@@ -7417,8 +7417,8 @@ const ty = (e, t) => {
|
|
|
7417
7417
|
"",
|
|
7418
7418
|
"none",
|
|
7419
7419
|
d,
|
|
7420
|
-
|
|
7421
|
-
|
|
7420
|
+
oi,
|
|
7421
|
+
ai
|
|
7422
7422
|
]
|
|
7423
7423
|
}],
|
|
7424
7424
|
/**
|
|
@@ -7433,7 +7433,7 @@ const ty = (e, t) => {
|
|
|
7433
7433
|
* @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow
|
|
7434
7434
|
*/
|
|
7435
7435
|
"inset-shadow": [{
|
|
7436
|
-
"inset-shadow": ["none", l,
|
|
7436
|
+
"inset-shadow": ["none", l, oi, ai]
|
|
7437
7437
|
}],
|
|
7438
7438
|
/**
|
|
7439
7439
|
* Inset Box Shadow Color
|
|
@@ -7500,7 +7500,7 @@ const ty = (e, t) => {
|
|
|
7500
7500
|
* @see https://tailwindcss.com/docs/text-shadow
|
|
7501
7501
|
*/
|
|
7502
7502
|
"text-shadow": [{
|
|
7503
|
-
"text-shadow": ["none", f,
|
|
7503
|
+
"text-shadow": ["none", f, oi, ai]
|
|
7504
7504
|
}],
|
|
7505
7505
|
/**
|
|
7506
7506
|
* Text Shadow Color
|
|
@@ -7773,8 +7773,8 @@ const ty = (e, t) => {
|
|
|
7773
7773
|
"",
|
|
7774
7774
|
"none",
|
|
7775
7775
|
m,
|
|
7776
|
-
|
|
7777
|
-
|
|
7776
|
+
oi,
|
|
7777
|
+
ai
|
|
7778
7778
|
]
|
|
7779
7779
|
}],
|
|
7780
7780
|
/**
|
|
@@ -8540,9 +8540,9 @@ const gn = (e, t) => {
|
|
|
8540
8540
|
}
|
|
8541
8541
|
return e.toString().length > 11 ? e : e * 1e3;
|
|
8542
8542
|
};
|
|
8543
|
-
var
|
|
8543
|
+
var Vn = (e) => e.type === "checkbox", rn = (e) => e instanceof Date, nt = (e) => e == null;
|
|
8544
8544
|
const yl = (e) => typeof e == "object";
|
|
8545
|
-
var qe = (e) => !nt(e) && !Array.isArray(e) && yl(e) && !rn(e), bl = (e) => qe(e) && e.target ?
|
|
8545
|
+
var qe = (e) => !nt(e) && !Array.isArray(e) && yl(e) && !rn(e), bl = (e) => qe(e) && e.target ? Vn(e.target) ? e.target.checked : e.target.value : e, Wy = (e) => e.substring(0, e.search(/\.\d+(\.|$)/)) || e, vl = (e, t) => e.has(Wy(t)), _y = (e) => {
|
|
8546
8546
|
const t = e.constructor && e.constructor.prototype;
|
|
8547
8547
|
return qe(t) && t.hasOwnProperty("isPrototypeOf");
|
|
8548
8548
|
}, $r = typeof window < "u" && typeof window.HTMLElement < "u" && typeof document < "u";
|
|
@@ -8580,7 +8580,7 @@ var ji = (e) => /^\w*$/.test(e), Ie = (e) => e === void 0, ea = (e) => Array.isA
|
|
|
8580
8580
|
e[s] = u, e = e[s];
|
|
8581
8581
|
}
|
|
8582
8582
|
};
|
|
8583
|
-
const
|
|
8583
|
+
const vi = {
|
|
8584
8584
|
BLUR: "blur",
|
|
8585
8585
|
FOCUS_OUT: "focusout",
|
|
8586
8586
|
CHANGE: "change"
|
|
@@ -8743,13 +8743,13 @@ function Ky(e) {
|
|
|
8743
8743
|
value: bl(x),
|
|
8744
8744
|
name: n
|
|
8745
8745
|
},
|
|
8746
|
-
type:
|
|
8746
|
+
type: vi.CHANGE
|
|
8747
8747
|
}), [n]), v = z.useCallback(() => p.current.onBlur({
|
|
8748
8748
|
target: {
|
|
8749
8749
|
value: ne(r._formValues, n),
|
|
8750
8750
|
name: n
|
|
8751
8751
|
},
|
|
8752
|
-
type:
|
|
8752
|
+
type: vi.BLUR
|
|
8753
8753
|
}), [n, r._formValues]), S = z.useCallback((x) => {
|
|
8754
8754
|
const b = ne(r._fields, n);
|
|
8755
8755
|
b && b._f && x && (b._f.ref = {
|
|
@@ -8876,12 +8876,12 @@ function Pl(e, t) {
|
|
|
8876
8876
|
}
|
|
8877
8877
|
return n;
|
|
8878
8878
|
}
|
|
8879
|
-
var Qe = (e) => qe(e) && !Object.keys(e).length, aa = (e) => e.type === "file",
|
|
8879
|
+
var Qe = (e) => qe(e) && !Object.keys(e).length, aa = (e) => e.type === "file", wi = (e) => {
|
|
8880
8880
|
if (!$r)
|
|
8881
8881
|
return !1;
|
|
8882
8882
|
const t = e ? e.ownerDocument : 0;
|
|
8883
8883
|
return e instanceof (t && t.defaultView ? t.defaultView.HTMLElement : HTMLElement);
|
|
8884
|
-
}, Sl = (e) => e.type === "select-multiple", oa = (e) => e.type === "radio", Zy = (e) => oa(e) ||
|
|
8884
|
+
}, Sl = (e) => e.type === "select-multiple", oa = (e) => e.type === "radio", Zy = (e) => oa(e) || Vn(e), cr = (e) => wi(e) && e.isConnected;
|
|
8885
8885
|
function Qy(e, t) {
|
|
8886
8886
|
const n = t.slice(0, -1).length;
|
|
8887
8887
|
let i = 0;
|
|
@@ -8955,7 +8955,7 @@ var Al = (e) => Array.isArray(e) ? e.reduce((t, n) => n && n.checked && !n.disab
|
|
|
8955
8955
|
} : t, To) : To;
|
|
8956
8956
|
function ko(e) {
|
|
8957
8957
|
const t = e.ref;
|
|
8958
|
-
return aa(t) ? t.files : oa(t) ? Al(e.refs).value : Sl(t) ? [...t.selectedOptions].map(({ value: n }) => n) :
|
|
8958
|
+
return aa(t) ? t.files : oa(t) ? Al(e.refs).value : Sl(t) ? [...t.selectedOptions].map(({ value: n }) => n) : Vn(t) ? kl(e.refs).value : Cl(Ie(t.value) ? e.ref.value : t.value, e);
|
|
8959
8959
|
}
|
|
8960
8960
|
var tb = (e, t, n, i) => {
|
|
8961
8961
|
const r = {};
|
|
@@ -8969,7 +8969,7 @@ var tb = (e, t, n, i) => {
|
|
|
8969
8969
|
fields: r,
|
|
8970
8970
|
shouldUseNativeValidation: i
|
|
8971
8971
|
};
|
|
8972
|
-
},
|
|
8972
|
+
}, xi = (e) => e instanceof RegExp, On = (e) => Ie(e) ? e : xi(e) ? e.source : qe(e) ? xi(e.value) ? e.value.source : e.value : e, Co = (e) => ({
|
|
8973
8973
|
isOnSubmit: !e || e === bt.onSubmit,
|
|
8974
8974
|
isOnBlur: e === bt.onBlur,
|
|
8975
8975
|
isOnChange: e === bt.onChange,
|
|
@@ -9039,7 +9039,7 @@ function Ro(e, t, n = "validate") {
|
|
|
9039
9039
|
ref: t
|
|
9040
9040
|
};
|
|
9041
9041
|
}
|
|
9042
|
-
var mn = (e) => qe(e) && !
|
|
9042
|
+
var mn = (e) => qe(e) && !xi(e) ? e : {
|
|
9043
9043
|
value: e,
|
|
9044
9044
|
message: ""
|
|
9045
9045
|
}, Eo = async (e, t, n, i, r, a) => {
|
|
@@ -9048,7 +9048,7 @@ var mn = (e) => qe(e) && !wi(e) ? e : {
|
|
|
9048
9048
|
return {};
|
|
9049
9049
|
const C = s ? s[0] : o, x = (G) => {
|
|
9050
9050
|
r && C.reportValidity && (C.setCustomValidity(st(G) ? "" : G || ""), C.reportValidity());
|
|
9051
|
-
}, b = {}, N = oa(o), w =
|
|
9051
|
+
}, b = {}, N = oa(o), w = Vn(o), P = N || w, R = (y || aa(o)) && Ie(o.value) && Ie(S) || wi(o) && o.value === "" || S === "" || Array.isArray(S) && !S.length, L = Xy.bind(null, g, i, b), J = (G, Y, K, X = Ft.maxLength, j = Ft.minLength) => {
|
|
9052
9052
|
const W = G ? Y : K;
|
|
9053
9053
|
b[g] = {
|
|
9054
9054
|
type: G ? X : j,
|
|
@@ -9087,7 +9087,7 @@ var mn = (e) => qe(e) && !wi(e) ? e : {
|
|
|
9087
9087
|
}
|
|
9088
9088
|
if (m && !R && ct(S)) {
|
|
9089
9089
|
const { value: G, message: Y } = mn(m);
|
|
9090
|
-
if (
|
|
9090
|
+
if (xi(G) && !S.match(G) && (b[g] = {
|
|
9091
9091
|
type: Ft.pattern,
|
|
9092
9092
|
message: Y,
|
|
9093
9093
|
ref: o,
|
|
@@ -9304,7 +9304,7 @@ function ub(e = {}) {
|
|
|
9304
9304
|
let ee = D;
|
|
9305
9305
|
if (te) {
|
|
9306
9306
|
const Q = te._f;
|
|
9307
|
-
Q && (!Q.disabled && Re(a, A, Cl(D, Q)), ee =
|
|
9307
|
+
Q && (!Q.disabled && Re(a, A, Cl(D, Q)), ee = wi(Q.ref) && nt(D) ? "" : D, Sl(Q.ref) ? [...Q.ref.options].forEach((ue) => ue.selected = ee.includes(ue.value)) : Q.refs ? Vn(Q.ref) ? Q.refs.forEach((ue) => {
|
|
9308
9308
|
(!ue.defaultChecked || !ue.disabled) && (Array.isArray(ee) ? ue.checked = !!ee.find((ve) => ve === ue.value) : ue.checked = ee === ue.value || !!ee);
|
|
9309
9309
|
}) : Q.refs.forEach((ue) => ue.checked = ue.value === ee) : aa(Q.ref) ? Q.ref.value = "" : (Q.ref.value = ee, Q.ref.type || m.state.next({
|
|
9310
9310
|
name: A,
|
|
@@ -9345,9 +9345,9 @@ function ub(e = {}) {
|
|
|
9345
9345
|
}, ue = Co(t.mode), ve = Co(t.reValidateMode);
|
|
9346
9346
|
if (ee) {
|
|
9347
9347
|
let be, Ee;
|
|
9348
|
-
const
|
|
9349
|
-
Re(a, B,
|
|
9350
|
-
const Ut = N(B,
|
|
9348
|
+
const Xe = D.type ? ko(ee._f) : bl(A), We = A.type === vi.BLUR || A.type === vi.FOCUS_OUT, Zt = !ib(ee._f) && !t.resolver && !ne(n.errors, B) && !ee._f.deps || ob(We, ne(n.touchedFields, B), n.isSubmitted, ve, ue), Qt = No(B, s, We);
|
|
9349
|
+
Re(a, B, Xe), We ? (!D || !D.readOnly) && (ee._f.onBlur && ee._f.onBlur(A), u && u(0)) : ee._f.onChange && ee._f.onChange(A);
|
|
9350
|
+
const Ut = N(B, Xe, We), le = !Qe(Ut) || Qt;
|
|
9351
9351
|
if (!We && m.state.next({
|
|
9352
9352
|
name: B,
|
|
9353
9353
|
type: A.type,
|
|
@@ -9355,13 +9355,13 @@ function ub(e = {}) {
|
|
|
9355
9355
|
}), Zt)
|
|
9356
9356
|
return (l.isValid || f.isValid) && (t.mode === "onBlur" ? We && y() : We || y()), le && m.state.next({ name: B, ...Qt ? {} : Ut });
|
|
9357
9357
|
if (!We && Qt && m.state.next({ ...n }), t.resolver) {
|
|
9358
|
-
const { errors:
|
|
9359
|
-
if (v([B]), Q(
|
|
9360
|
-
const
|
|
9361
|
-
be = de.error, B = de.name, Ee = Qe(
|
|
9358
|
+
const { errors: Ae } = await P([B]);
|
|
9359
|
+
if (v([B]), Q(Xe), te) {
|
|
9360
|
+
const Ke = Do(n.errors, i, B), de = Do(Ae, i, Ke.name || B);
|
|
9361
|
+
be = de.error, B = de.name, Ee = Qe(Ae);
|
|
9362
9362
|
}
|
|
9363
9363
|
} else
|
|
9364
|
-
v([B], !0), be = (await Eo(ee, s.disabled, a, p, t.shouldUseNativeValidation))[B], v([B]), Q(
|
|
9364
|
+
v([B], !0), be = (await Eo(ee, s.disabled, a, p, t.shouldUseNativeValidation))[B], v([B]), Q(Xe), te && (be ? Ee = !1 : (l.isValid || f.isValid) && (Ee = await L(i, !0)));
|
|
9365
9365
|
te && (ee._f.deps && (!Array.isArray(ee._f.deps) || ee._f.deps.length > 0) && T(ee._f.deps), w(B, Ee, be, Ut));
|
|
9366
9366
|
}
|
|
9367
9367
|
}, ie = (A, D) => {
|
|
@@ -9549,8 +9549,8 @@ function ub(e = {}) {
|
|
|
9549
9549
|
...Object.keys(fn(r, a))
|
|
9550
9550
|
]);
|
|
9551
9551
|
for (const ve of Array.from(ue)) {
|
|
9552
|
-
const be = ne(n.dirtyFields, ve), Ee = ne(a, ve),
|
|
9553
|
-
be && !Ie(Ee) ? Re(Q, ve, Ee) : !be && !Ie(
|
|
9552
|
+
const be = ne(n.dirtyFields, ve), Ee = ne(a, ve), Xe = ne(Q, ve);
|
|
9553
|
+
be && !Ie(Ee) ? Re(Q, ve, Ee) : !be && !Ie(Xe) && W(ve, Xe);
|
|
9554
9554
|
}
|
|
9555
9555
|
} else {
|
|
9556
9556
|
if ($r && Ie(A))
|
|
@@ -9558,7 +9558,7 @@ function ub(e = {}) {
|
|
|
9558
9558
|
const ve = ne(i, ue);
|
|
9559
9559
|
if (ve && ve._f) {
|
|
9560
9560
|
const be = Array.isArray(ve._f.refs) ? ve._f.refs[0] : ve._f.ref;
|
|
9561
|
-
if (
|
|
9561
|
+
if (wi(be)) {
|
|
9562
9562
|
const Ee = be.closest("form");
|
|
9563
9563
|
if (Ee) {
|
|
9564
9564
|
Ee.reset();
|
|
@@ -10412,19 +10412,19 @@ function Ab(e) {
|
|
|
10412
10412
|
}
|
|
10413
10413
|
});
|
|
10414
10414
|
return I.useEffect(() => {
|
|
10415
|
-
const c =
|
|
10415
|
+
const c = si(i.current);
|
|
10416
10416
|
a.current = s === "mounted" ? c : "none";
|
|
10417
10417
|
}, [s]), Vt(() => {
|
|
10418
10418
|
const c = i.current, d = r.current;
|
|
10419
10419
|
if (d !== e) {
|
|
10420
|
-
const f = a.current, m =
|
|
10420
|
+
const f = a.current, m = si(c);
|
|
10421
10421
|
e ? u("MOUNT") : m === "none" || c?.display === "none" ? u("UNMOUNT") : u(d && f !== m ? "ANIMATION_OUT" : "UNMOUNT"), r.current = e;
|
|
10422
10422
|
}
|
|
10423
10423
|
}, [e, u]), Vt(() => {
|
|
10424
10424
|
if (t) {
|
|
10425
10425
|
let c;
|
|
10426
10426
|
const d = t.ownerDocument.defaultView ?? window, l = (m) => {
|
|
10427
|
-
const g =
|
|
10427
|
+
const g = si(i.current).includes(CSS.escape(m.animationName));
|
|
10428
10428
|
if (m.target === t && g && (u("ANIMATION_END"), !r.current)) {
|
|
10429
10429
|
const y = t.style.animationFillMode;
|
|
10430
10430
|
t.style.animationFillMode = "forwards", c = d.setTimeout(() => {
|
|
@@ -10432,7 +10432,7 @@ function Ab(e) {
|
|
|
10432
10432
|
});
|
|
10433
10433
|
}
|
|
10434
10434
|
}, f = (m) => {
|
|
10435
|
-
m.target === t && (a.current =
|
|
10435
|
+
m.target === t && (a.current = si(i.current));
|
|
10436
10436
|
};
|
|
10437
10437
|
return t.addEventListener("animationstart", f), t.addEventListener("animationcancel", l), t.addEventListener("animationend", l), () => {
|
|
10438
10438
|
d.clearTimeout(c), t.removeEventListener("animationstart", f), t.removeEventListener("animationcancel", l), t.removeEventListener("animationend", l);
|
|
@@ -10446,7 +10446,7 @@ function Ab(e) {
|
|
|
10446
10446
|
}, [])
|
|
10447
10447
|
};
|
|
10448
10448
|
}
|
|
10449
|
-
function
|
|
10449
|
+
function si(e) {
|
|
10450
10450
|
return e?.animationName || "none";
|
|
10451
10451
|
}
|
|
10452
10452
|
function Nb(e) {
|
|
@@ -10596,7 +10596,7 @@ var Ub = "Portal", Gl = I.forwardRef((e, t) => {
|
|
|
10596
10596
|
const { container: n, ...i } = e, [r, a] = I.useState(!1);
|
|
10597
10597
|
Vt(() => a(!0), []);
|
|
10598
10598
|
const o = n || r && globalThis?.document?.body;
|
|
10599
|
-
return o ?
|
|
10599
|
+
return o ? Ri.createPortal(/* @__PURE__ */ h.jsx(kt.div, { ...i, ref: t }), o) : null;
|
|
10600
10600
|
});
|
|
10601
10601
|
Gl.displayName = Ub;
|
|
10602
10602
|
function zb(e) {
|
|
@@ -10854,7 +10854,7 @@ function _t(e) {
|
|
|
10854
10854
|
function _l(e) {
|
|
10855
10855
|
return _t(e) ? "indeterminate" : e ? "checked" : "unchecked";
|
|
10856
10856
|
}
|
|
10857
|
-
const _b = ["top", "right", "bottom", "left"], Kt = Math.min, lt = Math.max,
|
|
10857
|
+
const _b = ["top", "right", "bottom", "left"], Kt = Math.min, lt = Math.max, Pi = Math.round, li = Math.floor, Rt = (e) => ({
|
|
10858
10858
|
x: e,
|
|
10859
10859
|
y: e
|
|
10860
10860
|
}), Vb = {
|
|
@@ -10895,10 +10895,10 @@ function Xb(e, t, n) {
|
|
|
10895
10895
|
n === void 0 && (n = !1);
|
|
10896
10896
|
const i = Tn(e), r = da(e), a = ua(r);
|
|
10897
10897
|
let o = r === "x" ? i === (n ? "end" : "start") ? "right" : "left" : i === "start" ? "bottom" : "top";
|
|
10898
|
-
return t.reference[a] > t.floating[a] && (o =
|
|
10898
|
+
return t.reference[a] > t.floating[a] && (o = Si(o)), [o, Si(o)];
|
|
10899
10899
|
}
|
|
10900
10900
|
function Zb(e) {
|
|
10901
|
-
const t =
|
|
10901
|
+
const t = Si(e);
|
|
10902
10902
|
return [Dr(e), t, Dr(t)];
|
|
10903
10903
|
}
|
|
10904
10904
|
function Dr(e) {
|
|
@@ -10922,7 +10922,7 @@ function tv(e, t, n, i) {
|
|
|
10922
10922
|
let a = ev(Bt(e), n === "start", i);
|
|
10923
10923
|
return r && (a = a.map((o) => o + "-" + r), t && (a = a.concat(a.map(Dr)))), a;
|
|
10924
10924
|
}
|
|
10925
|
-
function
|
|
10925
|
+
function Si(e) {
|
|
10926
10926
|
return e.replace(/left|right|bottom|top/g, (t) => Vb[t]);
|
|
10927
10927
|
}
|
|
10928
10928
|
function nv(e) {
|
|
@@ -10942,7 +10942,7 @@ function Vl(e) {
|
|
|
10942
10942
|
left: e
|
|
10943
10943
|
};
|
|
10944
10944
|
}
|
|
10945
|
-
function
|
|
10945
|
+
function Ti(e) {
|
|
10946
10946
|
const {
|
|
10947
10947
|
x: t,
|
|
10948
10948
|
y: n,
|
|
@@ -11024,7 +11024,7 @@ async function iv(e, t) {
|
|
|
11024
11024
|
elementContext: l = "floating",
|
|
11025
11025
|
altBoundary: f = !1,
|
|
11026
11026
|
padding: m = 0
|
|
11027
|
-
} = Gt(t, e), p = Vl(m), y = s[f ? l === "floating" ? "reference" : "floating" : l], v =
|
|
11027
|
+
} = Gt(t, e), p = Vl(m), y = s[f ? l === "floating" ? "reference" : "floating" : l], v = Ti(await a.getClippingRect({
|
|
11028
11028
|
element: (n = await (a.isElement == null ? void 0 : a.isElement(y))) == null || n ? y : y.contextElement || await (a.getDocumentElement == null ? void 0 : a.getDocumentElement(s.floating)),
|
|
11029
11029
|
boundary: c,
|
|
11030
11030
|
rootBoundary: d,
|
|
@@ -11040,7 +11040,7 @@ async function iv(e, t) {
|
|
|
11040
11040
|
} : {
|
|
11041
11041
|
x: 1,
|
|
11042
11042
|
y: 1
|
|
11043
|
-
}, b =
|
|
11043
|
+
}, b = Ti(a.convertOffsetParentRelativeRectToViewportRelativeRect ? await a.convertOffsetParentRelativeRectToViewportRelativeRect({
|
|
11044
11044
|
elements: s,
|
|
11045
11045
|
rect: S,
|
|
11046
11046
|
offsetParent: C,
|
|
@@ -11178,7 +11178,7 @@ const rv = async (e, t, n) => {
|
|
|
11178
11178
|
} = Gt(e, t);
|
|
11179
11179
|
if ((n = a.arrow) != null && n.alignmentOffset)
|
|
11180
11180
|
return {};
|
|
11181
|
-
const v = Bt(r), S = Nt(s), C = Bt(s) === s, x = await (u.isRTL == null ? void 0 : u.isRTL(c.floating)), b = f || (C || !g ? [
|
|
11181
|
+
const v = Bt(r), S = Nt(s), C = Bt(s) === s, x = await (u.isRTL == null ? void 0 : u.isRTL(c.floating)), b = f || (C || !g ? [Si(s)] : Zb(s)), N = p !== "none";
|
|
11182
11182
|
!f && N && b.push(...tv(s, g, p, x));
|
|
11183
11183
|
const w = [s, ...b], P = await u.detectOverflow(t, y), R = [];
|
|
11184
11184
|
let L = ((i = a.flip) == null ? void 0 : i.overflows) || [];
|
|
@@ -11506,7 +11506,7 @@ function Uo(e) {
|
|
|
11506
11506
|
return !Yi() || typeof ShadowRoot > "u" ? !1 : e instanceof ShadowRoot || e instanceof ut(e).ShadowRoot;
|
|
11507
11507
|
}
|
|
11508
11508
|
const pv = /* @__PURE__ */ new Set(["inline", "contents"]);
|
|
11509
|
-
function
|
|
11509
|
+
function Kn(e) {
|
|
11510
11510
|
const {
|
|
11511
11511
|
overflow: t,
|
|
11512
11512
|
overflowX: n,
|
|
@@ -11578,17 +11578,17 @@ function Jt(e) {
|
|
|
11578
11578
|
}
|
|
11579
11579
|
function Xl(e) {
|
|
11580
11580
|
const t = Jt(e);
|
|
11581
|
-
return xn(t) ? e.ownerDocument ? e.ownerDocument.body : e.body : Et(t) &&
|
|
11581
|
+
return xn(t) ? e.ownerDocument ? e.ownerDocument.body : e.body : Et(t) && Kn(t) ? t : Xl(t);
|
|
11582
11582
|
}
|
|
11583
|
-
function
|
|
11583
|
+
function Un(e, t, n) {
|
|
11584
11584
|
var i;
|
|
11585
11585
|
t === void 0 && (t = []), n === void 0 && (n = !0);
|
|
11586
11586
|
const r = Xl(e), a = r === ((i = e.ownerDocument) == null ? void 0 : i.body), o = ut(r);
|
|
11587
11587
|
if (a) {
|
|
11588
11588
|
const s = Rr(o);
|
|
11589
|
-
return t.concat(o, o.visualViewport || [],
|
|
11589
|
+
return t.concat(o, o.visualViewport || [], Kn(r) ? r : [], s && n ? Un(s) : []);
|
|
11590
11590
|
}
|
|
11591
|
-
return t.concat(r,
|
|
11591
|
+
return t.concat(r, Un(r, [], n));
|
|
11592
11592
|
}
|
|
11593
11593
|
function Rr(e) {
|
|
11594
11594
|
return e.parent && Object.getPrototypeOf(e.parent) ? e.frameElement : null;
|
|
@@ -11596,7 +11596,7 @@ function Rr(e) {
|
|
|
11596
11596
|
function Zl(e) {
|
|
11597
11597
|
const t = St(e);
|
|
11598
11598
|
let n = parseFloat(t.width) || 0, i = parseFloat(t.height) || 0;
|
|
11599
|
-
const r = Et(e), a = r ? e.offsetWidth : n, o = r ? e.offsetHeight : i, s =
|
|
11599
|
+
const r = Et(e), a = r ? e.offsetWidth : n, o = r ? e.offsetHeight : i, s = Pi(n) !== a || Pi(i) !== o;
|
|
11600
11600
|
return s && (n = a, i = o), {
|
|
11601
11601
|
width: n,
|
|
11602
11602
|
height: i,
|
|
@@ -11615,7 +11615,7 @@ function vn(e) {
|
|
|
11615
11615
|
height: r,
|
|
11616
11616
|
$: a
|
|
11617
11617
|
} = Zl(t);
|
|
11618
|
-
let o = (a ?
|
|
11618
|
+
let o = (a ? Pi(n.width) : n.width) / i, s = (a ? Pi(n.height) : n.height) / r;
|
|
11619
11619
|
return (!o || !Number.isFinite(o)) && (o = 1), (!s || !Number.isFinite(s)) && (s = 1), {
|
|
11620
11620
|
x: o,
|
|
11621
11621
|
y: s
|
|
@@ -11647,7 +11647,7 @@ function ln(e, t, n, i) {
|
|
|
11647
11647
|
u *= y.x, c *= y.y, d *= y.x, l *= y.y, u += C, c += x, p = ut(g), g = Rr(p);
|
|
11648
11648
|
}
|
|
11649
11649
|
}
|
|
11650
|
-
return
|
|
11650
|
+
return Ti({
|
|
11651
11651
|
width: d,
|
|
11652
11652
|
height: l,
|
|
11653
11653
|
x: u,
|
|
@@ -11680,7 +11680,7 @@ function Tv(e) {
|
|
|
11680
11680
|
scrollTop: 0
|
|
11681
11681
|
}, c = Rt(1);
|
|
11682
11682
|
const d = Rt(0), l = Et(i);
|
|
11683
|
-
if ((l || !l && !a) && ((kn(i) !== "body" ||
|
|
11683
|
+
if ((l || !l && !a) && ((kn(i) !== "body" || Kn(o)) && (u = Wi(i)), Et(i))) {
|
|
11684
11684
|
const m = ln(i);
|
|
11685
11685
|
c = vn(i), d.x = m.x + i.clientLeft, d.y = m.y + i.clientTop;
|
|
11686
11686
|
}
|
|
@@ -11754,7 +11754,7 @@ function Ho(e, t, n) {
|
|
|
11754
11754
|
height: t.height
|
|
11755
11755
|
};
|
|
11756
11756
|
}
|
|
11757
|
-
return
|
|
11757
|
+
return Ti(i);
|
|
11758
11758
|
}
|
|
11759
11759
|
function ec(e, t) {
|
|
11760
11760
|
const n = Jt(e);
|
|
@@ -11764,12 +11764,12 @@ function Rv(e, t) {
|
|
|
11764
11764
|
const n = t.get(e);
|
|
11765
11765
|
if (n)
|
|
11766
11766
|
return n;
|
|
11767
|
-
let i =
|
|
11767
|
+
let i = Un(e, [], !1).filter((s) => Pt(s) && kn(s) !== "body"), r = null;
|
|
11768
11768
|
const a = St(e).position === "fixed";
|
|
11769
11769
|
let o = a ? Jt(e) : e;
|
|
11770
11770
|
for (; Pt(o) && !xn(o); ) {
|
|
11771
11771
|
const s = St(o), u = ha(o);
|
|
11772
|
-
!u && s.position === "fixed" && (r = null), (a ? !u && !r : !u && s.position === "static" && !!r && Nv.has(r.position) ||
|
|
11772
|
+
!u && s.position === "fixed" && (r = null), (a ? !u && !r : !u && s.position === "static" && !!r && Nv.has(r.position) || Kn(o) && !u && ec(e, o)) ? i = i.filter((d) => d !== o) : r = s, o = Jt(o);
|
|
11773
11773
|
}
|
|
11774
11774
|
return t.set(e, i), i;
|
|
11775
11775
|
}
|
|
@@ -11812,7 +11812,7 @@ function Mv(e, t, n) {
|
|
|
11812
11812
|
u.x = _i(r);
|
|
11813
11813
|
}
|
|
11814
11814
|
if (i || !i && !a)
|
|
11815
|
-
if ((kn(t) !== "body" ||
|
|
11815
|
+
if ((kn(t) !== "body" || Kn(r)) && (s = Wi(t)), i) {
|
|
11816
11816
|
const m = ln(t, !0, a, t);
|
|
11817
11817
|
u.x = m.x + t.clientLeft, u.y = m.y + t.clientTop;
|
|
11818
11818
|
} else r && c();
|
|
@@ -11901,7 +11901,7 @@ function Gv(e, t) {
|
|
|
11901
11901
|
} = c;
|
|
11902
11902
|
if (s || t(), !f || !m)
|
|
11903
11903
|
return;
|
|
11904
|
-
const p =
|
|
11904
|
+
const p = li(l), g = li(r.clientWidth - (d + f)), y = li(r.clientHeight - (l + m)), v = li(d), C = {
|
|
11905
11905
|
rootMargin: -p + "px " + -g + "px " + -y + "px " + -v + "px",
|
|
11906
11906
|
threshold: lt(0, Kt(1, u)) || 1
|
|
11907
11907
|
};
|
|
@@ -11938,7 +11938,7 @@ function Bv(e, t, n, i) {
|
|
|
11938
11938
|
elementResize: o = typeof ResizeObserver == "function",
|
|
11939
11939
|
layoutShift: s = typeof IntersectionObserver == "function",
|
|
11940
11940
|
animationFrame: u = !1
|
|
11941
|
-
} = i, c = ma(e), d = r || a ? [...c ?
|
|
11941
|
+
} = i, c = ma(e), d = r || a ? [...c ? Un(c) : [], ...Un(t)] : [];
|
|
11942
11942
|
d.forEach((v) => {
|
|
11943
11943
|
r && v.addEventListener("scroll", n, {
|
|
11944
11944
|
passive: !0
|
|
@@ -11980,8 +11980,8 @@ const jv = cv, Uv = uv, zv = ov, Hv = hv, Yv = sv, qo = av, qv = dv, Wv = (e, t,
|
|
|
11980
11980
|
});
|
|
11981
11981
|
};
|
|
11982
11982
|
var _v = typeof document < "u", Vv = function() {
|
|
11983
|
-
},
|
|
11984
|
-
function
|
|
11983
|
+
}, hi = _v ? Di : Vv;
|
|
11984
|
+
function ki(e, t) {
|
|
11985
11985
|
if (e === t)
|
|
11986
11986
|
return !0;
|
|
11987
11987
|
if (typeof e != typeof t)
|
|
@@ -11993,7 +11993,7 @@ function Ti(e, t) {
|
|
|
11993
11993
|
if (Array.isArray(e)) {
|
|
11994
11994
|
if (n = e.length, n !== t.length) return !1;
|
|
11995
11995
|
for (i = n; i-- !== 0; )
|
|
11996
|
-
if (!
|
|
11996
|
+
if (!ki(e[i], t[i]))
|
|
11997
11997
|
return !1;
|
|
11998
11998
|
return !0;
|
|
11999
11999
|
}
|
|
@@ -12004,7 +12004,7 @@ function Ti(e, t) {
|
|
|
12004
12004
|
return !1;
|
|
12005
12005
|
for (i = n; i-- !== 0; ) {
|
|
12006
12006
|
const a = r[i];
|
|
12007
|
-
if (!(a === "_owner" && e.$$typeof) && !
|
|
12007
|
+
if (!(a === "_owner" && e.$$typeof) && !ki(e[a], t[a]))
|
|
12008
12008
|
return !1;
|
|
12009
12009
|
}
|
|
12010
12010
|
return !0;
|
|
@@ -12020,7 +12020,7 @@ function Wo(e, t) {
|
|
|
12020
12020
|
}
|
|
12021
12021
|
function dr(e) {
|
|
12022
12022
|
const t = I.useRef(e);
|
|
12023
|
-
return
|
|
12023
|
+
return hi(() => {
|
|
12024
12024
|
t.current = e;
|
|
12025
12025
|
}), t;
|
|
12026
12026
|
}
|
|
@@ -12046,7 +12046,7 @@ function Kv(e) {
|
|
|
12046
12046
|
middlewareData: {},
|
|
12047
12047
|
isPositioned: !1
|
|
12048
12048
|
}), [f, m] = I.useState(i);
|
|
12049
|
-
|
|
12049
|
+
ki(f, i) || m(i);
|
|
12050
12050
|
const [p, g] = I.useState(null), [y, v] = I.useState(null), S = I.useCallback((V) => {
|
|
12051
12051
|
V !== N.current && (N.current = V, g(V));
|
|
12052
12052
|
}, []), C = I.useCallback((V) => {
|
|
@@ -12068,21 +12068,21 @@ function Kv(e) {
|
|
|
12068
12068
|
// setting it to `true` when `open === false` (must be specified).
|
|
12069
12069
|
isPositioned: G.current !== !1
|
|
12070
12070
|
};
|
|
12071
|
-
K.current && !
|
|
12071
|
+
K.current && !ki(P.current, T) && (P.current = T, hs.flushSync(() => {
|
|
12072
12072
|
l(T);
|
|
12073
12073
|
}));
|
|
12074
12074
|
});
|
|
12075
12075
|
}, [f, t, n, J, G]);
|
|
12076
|
-
|
|
12076
|
+
hi(() => {
|
|
12077
12077
|
c === !1 && P.current.isPositioned && (P.current.isPositioned = !1, l((V) => ({
|
|
12078
12078
|
...V,
|
|
12079
12079
|
isPositioned: !1
|
|
12080
12080
|
})));
|
|
12081
12081
|
}, [c]);
|
|
12082
12082
|
const K = I.useRef(!1);
|
|
12083
|
-
|
|
12083
|
+
hi(() => (K.current = !0, () => {
|
|
12084
12084
|
K.current = !1;
|
|
12085
|
-
}), []),
|
|
12085
|
+
}), []), hi(() => {
|
|
12086
12086
|
if (x && (N.current = x), b && (w.current = b), x && b) {
|
|
12087
12087
|
if (L.current)
|
|
12088
12088
|
return L.current(x, b, Y);
|
|
@@ -12419,7 +12419,7 @@ var dw = lc, hw = uc, pw = dc, mw = pc, [Vi] = sa("Tooltip", [
|
|
|
12419
12419
|
);
|
|
12420
12420
|
};
|
|
12421
12421
|
gc.displayName = fc;
|
|
12422
|
-
var
|
|
12422
|
+
var zn = "Tooltip", [yw, Jn] = Vi(zn), yc = (e) => {
|
|
12423
12423
|
const {
|
|
12424
12424
|
__scopeTooltip: t,
|
|
12425
12425
|
children: n,
|
|
@@ -12428,13 +12428,13 @@ var Un = "Tooltip", [yw, Kn] = Vi(Un), yc = (e) => {
|
|
|
12428
12428
|
onOpenChange: a,
|
|
12429
12429
|
disableHoverableContent: o,
|
|
12430
12430
|
delayDuration: s
|
|
12431
|
-
} = e, u = ya(
|
|
12431
|
+
} = e, u = ya(zn, e.__scopeTooltip), c = Ki(t), [d, l] = I.useState(null), f = Eb(), m = I.useRef(0), p = o ?? u.disableHoverableContent, g = s ?? u.delayDuration, y = I.useRef(!1), [v, S] = Ml({
|
|
12432
12432
|
prop: i,
|
|
12433
12433
|
defaultProp: r ?? !1,
|
|
12434
12434
|
onChange: (w) => {
|
|
12435
12435
|
w ? (u.onOpen(), document.dispatchEvent(new CustomEvent(Er))) : u.onClose(), a?.(w);
|
|
12436
12436
|
},
|
|
12437
|
-
caller:
|
|
12437
|
+
caller: zn
|
|
12438
12438
|
}), C = I.useMemo(() => v ? y.current ? "delayed-open" : "instant-open" : "closed", [v]), x = I.useCallback(() => {
|
|
12439
12439
|
window.clearTimeout(m.current), m.current = 0, y.current = !1, S(!0);
|
|
12440
12440
|
}, [S]), b = I.useCallback(() => {
|
|
@@ -12468,10 +12468,10 @@ var Un = "Tooltip", [yw, Kn] = Vi(Un), yc = (e) => {
|
|
|
12468
12468
|
}
|
|
12469
12469
|
) });
|
|
12470
12470
|
};
|
|
12471
|
-
yc.displayName =
|
|
12471
|
+
yc.displayName = zn;
|
|
12472
12472
|
var Or = "TooltipTrigger", bc = I.forwardRef(
|
|
12473
12473
|
(e, t) => {
|
|
12474
|
-
const { __scopeTooltip: n, ...i } = e, r =
|
|
12474
|
+
const { __scopeTooltip: n, ...i } = e, r = Jn(Or, n), a = ya(Or, n), o = Ki(n), s = I.useRef(null), u = jt(t, s, r.onTriggerChange), c = I.useRef(!1), d = I.useRef(!1), l = I.useCallback(() => c.current = !1, []);
|
|
12475
12475
|
return I.useEffect(() => () => document.removeEventListener("pointerup", l), [l]), /* @__PURE__ */ h.jsx(hw, { asChild: !0, ...o, children: /* @__PURE__ */ h.jsx(
|
|
12476
12476
|
kt.button,
|
|
12477
12477
|
{
|
|
@@ -12501,17 +12501,17 @@ bc.displayName = Or;
|
|
|
12501
12501
|
var ba = "TooltipPortal", [bw, vw] = Vi(ba, {
|
|
12502
12502
|
forceMount: void 0
|
|
12503
12503
|
}), vc = (e) => {
|
|
12504
|
-
const { __scopeTooltip: t, forceMount: n, children: i, container: r } = e, a =
|
|
12504
|
+
const { __scopeTooltip: t, forceMount: n, children: i, container: r } = e, a = Jn(ba, t);
|
|
12505
12505
|
return /* @__PURE__ */ h.jsx(bw, { scope: t, forceMount: n, children: /* @__PURE__ */ h.jsx(Ui, { present: n || a.open, children: /* @__PURE__ */ h.jsx(Gl, { asChild: !0, container: r, children: i }) }) });
|
|
12506
12506
|
};
|
|
12507
12507
|
vc.displayName = ba;
|
|
12508
12508
|
var Pn = "TooltipContent", wc = I.forwardRef(
|
|
12509
12509
|
(e, t) => {
|
|
12510
|
-
const n = vw(Pn, e.__scopeTooltip), { forceMount: i = n.forceMount, side: r = "top", ...a } = e, o =
|
|
12510
|
+
const n = vw(Pn, e.__scopeTooltip), { forceMount: i = n.forceMount, side: r = "top", ...a } = e, o = Jn(Pn, e.__scopeTooltip);
|
|
12511
12511
|
return /* @__PURE__ */ h.jsx(Ui, { present: i || o.open, children: o.disableHoverableContent ? /* @__PURE__ */ h.jsx(xc, { side: r, ...a, ref: t }) : /* @__PURE__ */ h.jsx(ww, { side: r, ...a, ref: t }) });
|
|
12512
12512
|
}
|
|
12513
12513
|
), ww = I.forwardRef((e, t) => {
|
|
12514
|
-
const n =
|
|
12514
|
+
const n = Jn(Pn, e.__scopeTooltip), i = ya(Pn, e.__scopeTooltip), r = I.useRef(null), a = jt(t, r), [o, s] = I.useState(null), { trigger: u, onClose: c } = n, d = r.current, { onPointerInTransitChange: l } = i, f = I.useCallback(() => {
|
|
12515
12515
|
s(null), l(!1);
|
|
12516
12516
|
}, [l]), m = I.useCallback(
|
|
12517
12517
|
(p, g) => {
|
|
@@ -12536,7 +12536,7 @@ var Pn = "TooltipContent", wc = I.forwardRef(
|
|
|
12536
12536
|
return document.addEventListener("pointermove", p), () => document.removeEventListener("pointermove", p);
|
|
12537
12537
|
}
|
|
12538
12538
|
}, [u, d, o, c, f]), /* @__PURE__ */ h.jsx(xc, { ...e, ref: a });
|
|
12539
|
-
}), [xw, Pw] = Vi(
|
|
12539
|
+
}), [xw, Pw] = Vi(zn, { isInside: !1 }), Sw = /* @__PURE__ */ pb("TooltipContent"), xc = I.forwardRef(
|
|
12540
12540
|
(e, t) => {
|
|
12541
12541
|
const {
|
|
12542
12542
|
__scopeTooltip: n,
|
|
@@ -12545,7 +12545,7 @@ var Pn = "TooltipContent", wc = I.forwardRef(
|
|
|
12545
12545
|
onEscapeKeyDown: a,
|
|
12546
12546
|
onPointerDownOutside: o,
|
|
12547
12547
|
...s
|
|
12548
|
-
} = e, u =
|
|
12548
|
+
} = e, u = Jn(Pn, n), c = Ki(n), { onClose: d } = u;
|
|
12549
12549
|
return I.useEffect(() => (document.addEventListener(Er, d), () => document.removeEventListener(Er, d)), [d]), I.useEffect(() => {
|
|
12550
12550
|
if (u.trigger) {
|
|
12551
12551
|
const l = (f) => {
|
|
@@ -13077,7 +13077,7 @@ const kc = ds(function({
|
|
|
13077
13077
|
},
|
|
13078
13078
|
[k]
|
|
13079
13079
|
);
|
|
13080
|
-
|
|
13080
|
+
Di(() => {
|
|
13081
13081
|
if (!p) return;
|
|
13082
13082
|
w();
|
|
13083
13083
|
const E = () => w();
|
|
@@ -13102,7 +13102,7 @@ const kc = ds(function({
|
|
|
13102
13102
|
});
|
|
13103
13103
|
return () => cancelAnimationFrame(E);
|
|
13104
13104
|
}, [p]);
|
|
13105
|
-
const q = K(Y), O = s <= 1 ? c("Pattern.symbolSelected", { count: s }) : c("Pattern.symbolsSelected", { count: s }), H = p && y && S ?
|
|
13105
|
+
const q = K(Y), O = s <= 1 ? c("Pattern.symbolSelected", { count: s }) : c("Pattern.symbolsSelected", { count: s }), H = p && y && S ? mi(
|
|
13106
13106
|
/* @__PURE__ */ h.jsxs(
|
|
13107
13107
|
"div",
|
|
13108
13108
|
{
|
|
@@ -13279,7 +13279,7 @@ const kc = ds(function({
|
|
|
13279
13279
|
onKeyDown: (M) => {
|
|
13280
13280
|
(M.key === "Enter" || M.key === " ") && (M.preventDefault(), M.stopPropagation(), r(E.ticker, !1));
|
|
13281
13281
|
},
|
|
13282
|
-
children: /* @__PURE__ */ h.jsx(
|
|
13282
|
+
children: /* @__PURE__ */ h.jsx(Oi, { className: "h-2.5 w-2.5" })
|
|
13283
13283
|
}
|
|
13284
13284
|
)
|
|
13285
13285
|
]
|
|
@@ -13525,7 +13525,7 @@ const Xw = ({
|
|
|
13525
13525
|
onClick: t,
|
|
13526
13526
|
className: "iccandle-scanner-option__close-btn",
|
|
13527
13527
|
"aria-label": o("Common.close"),
|
|
13528
|
-
children: /* @__PURE__ */ h.jsx(
|
|
13528
|
+
children: /* @__PURE__ */ h.jsx(Oi, { size: 20 })
|
|
13529
13529
|
}
|
|
13530
13530
|
)
|
|
13531
13531
|
] }),
|
|
@@ -13688,7 +13688,7 @@ const Xw = ({
|
|
|
13688
13688
|
function Qw(e, t) {
|
|
13689
13689
|
we(() => {
|
|
13690
13690
|
const n = async ({ origin: i, data: r }) => {
|
|
13691
|
-
if (i !==
|
|
13691
|
+
if (i !== Bn || typeof r != "string") return;
|
|
13692
13692
|
let a;
|
|
13693
13693
|
try {
|
|
13694
13694
|
a = JSON.parse(r);
|
|
@@ -13697,13 +13697,13 @@ function Qw(e, t) {
|
|
|
13697
13697
|
}
|
|
13698
13698
|
if (a.name !== "news.selectedEventPayloads") return;
|
|
13699
13699
|
const o = a.data ?? [], s = JSON.parse(
|
|
13700
|
-
localStorage.getItem(
|
|
13700
|
+
localStorage.getItem(gi) || "[]"
|
|
13701
13701
|
), u = e?.activeChart?.();
|
|
13702
13702
|
await e?.headerReady(), o.length < s.length && await new Promise((c) => {
|
|
13703
13703
|
setTimeout(() => {
|
|
13704
13704
|
u?.clearMarks(2), c(!0);
|
|
13705
13705
|
}, 150);
|
|
13706
|
-
}), localStorage.setItem(
|
|
13706
|
+
}), localStorage.setItem(gi, JSON.stringify(o)), u?.refreshMarks();
|
|
13707
13707
|
try {
|
|
13708
13708
|
if (t.current && t.current.length > 0 && (t.current.forEach((c) => {
|
|
13709
13709
|
try {
|
|
@@ -13754,16 +13754,16 @@ function ex(e, t, n = []) {
|
|
|
13754
13754
|
};
|
|
13755
13755
|
});
|
|
13756
13756
|
}
|
|
13757
|
-
const
|
|
13758
|
-
const t = new Date(e +
|
|
13757
|
+
const pi = 8, Cc = 4, Ir = 6, Lr = 5, Ac = (e) => {
|
|
13758
|
+
const t = new Date(e + pi * 60 * 60 * 1e3), n = t.getUTCDay(), i = t.getUTCHours();
|
|
13759
13759
|
return n === 0 ? !1 : n === 1 ? i >= Ir : n === 6 ? i < Cc : i !== Lr;
|
|
13760
13760
|
}, Nc = (e) => {
|
|
13761
|
-
const t = new Date(e +
|
|
13761
|
+
const t = new Date(e + pi * 60 * 60 * 1e3), n = t.getUTCDay(), i = t.getUTCHours();
|
|
13762
13762
|
if (n === 0 || n === 1 && i < Ir || n === 6 && i >= Cc) {
|
|
13763
13763
|
const r = (8 - n) % 7;
|
|
13764
|
-
return t.setUTCDate(t.getUTCDate() + r), t.setUTCHours(Ir, 0, 0, 0), t.getTime() -
|
|
13764
|
+
return t.setUTCDate(t.getUTCDate() + r), t.setUTCHours(Ir, 0, 0, 0), t.getTime() - pi * 60 * 60 * 1e3;
|
|
13765
13765
|
}
|
|
13766
|
-
return n >= 2 && n <= 5 && i === Lr ? (t.setUTCHours(Lr + 1, 0, 0, 0), t.getTime() -
|
|
13766
|
+
return n >= 2 && n <= 5 && i === Lr ? (t.setUTCHours(Lr + 1, 0, 0, 0), t.getTime() - pi * 60 * 60 * 1e3) : e;
|
|
13767
13767
|
}, tx = (e, t, n) => {
|
|
13768
13768
|
const i = wt(t) * 1e3, r = [];
|
|
13769
13769
|
let a = e;
|
|
@@ -13906,9 +13906,9 @@ function es(e) {
|
|
|
13906
13906
|
let Ec = [];
|
|
13907
13907
|
const hr = (e) => {
|
|
13908
13908
|
Ec = e;
|
|
13909
|
-
}, cx = () => Ec,
|
|
13910
|
-
const n =
|
|
13911
|
-
return t.find((i) =>
|
|
13909
|
+
}, cx = () => Ec, Ci = (e) => e > 1e11 ? e : e * 1e3, Oc = (e, t) => {
|
|
13910
|
+
const n = Ci(e);
|
|
13911
|
+
return t.find((i) => Ci(i.time) === n);
|
|
13912
13912
|
}, Br = "Generated Candles - By iC Candle", jr = "Generated Candles Background - By iC Candle", Ji = "revealed_count", Mc = {
|
|
13913
13913
|
id: Ji,
|
|
13914
13914
|
name: "Revealed Count",
|
|
@@ -14301,7 +14301,7 @@ const hr = (e) => {
|
|
|
14301
14301
|
n
|
|
14302
14302
|
) / 1e3 - (Wt * P + P * 100);
|
|
14303
14303
|
if (b > 0 && x.length > 0) {
|
|
14304
|
-
const X =
|
|
14304
|
+
const X = Ci(
|
|
14305
14305
|
x[b - 1].time
|
|
14306
14306
|
) / 1e3 + Wt / 3 * P;
|
|
14307
14307
|
w.setVisibleRange({
|
|
@@ -14310,7 +14310,7 @@ const hr = (e) => {
|
|
|
14310
14310
|
});
|
|
14311
14311
|
return;
|
|
14312
14312
|
}
|
|
14313
|
-
const J = x[x.length - 1] ?? N[N.length - 1], Y = (J ?
|
|
14313
|
+
const J = x[x.length - 1] ?? N[N.length - 1], Y = (J ? Ci(J.time) : gn(
|
|
14314
14314
|
o[o.length - 1].timestamp,
|
|
14315
14315
|
n
|
|
14316
14316
|
)) / 1e3 + Wt / 3 * P;
|
|
@@ -14497,7 +14497,7 @@ const hr = (e) => {
|
|
|
14497
14497
|
}
|
|
14498
14498
|
}, gx = (e) => {
|
|
14499
14499
|
try {
|
|
14500
|
-
localStorage.removeItem(
|
|
14500
|
+
localStorage.removeItem(jn);
|
|
14501
14501
|
} catch {
|
|
14502
14502
|
}
|
|
14503
14503
|
try {
|
|
@@ -14508,7 +14508,7 @@ const hr = (e) => {
|
|
|
14508
14508
|
}
|
|
14509
14509
|
}, yx = (e, t) => {
|
|
14510
14510
|
try {
|
|
14511
|
-
localStorage.setItem(
|
|
14511
|
+
localStorage.setItem(jn, JSON.stringify(t));
|
|
14512
14512
|
} catch {
|
|
14513
14513
|
}
|
|
14514
14514
|
try {
|
|
@@ -14629,7 +14629,7 @@ const hr = (e) => {
|
|
|
14629
14629
|
} catch (i) {
|
|
14630
14630
|
return console.error("Error preparing event target candles", i), !1;
|
|
14631
14631
|
}
|
|
14632
|
-
},
|
|
14632
|
+
}, Ai = (e) => {
|
|
14633
14633
|
if (e)
|
|
14634
14634
|
try {
|
|
14635
14635
|
e.onChartReady(() => {
|
|
@@ -14643,7 +14643,7 @@ const hr = (e) => {
|
|
|
14643
14643
|
console.error("Error resetting chart data", t);
|
|
14644
14644
|
}
|
|
14645
14645
|
}, mr = (e, t) => {
|
|
14646
|
-
t([]), Ve.getState().setPlayEndTimestamp(null), Dt(!1),
|
|
14646
|
+
t([]), Ve.getState().setPlayEndTimestamp(null), Dt(!1), Ai(e);
|
|
14647
14647
|
}, zc = (e, t) => {
|
|
14648
14648
|
if (e)
|
|
14649
14649
|
try {
|
|
@@ -14757,7 +14757,7 @@ function Px(e, t, n, i, r, a, o, s) {
|
|
|
14757
14757
|
g.current = s;
|
|
14758
14758
|
}, [s]), we(() => {
|
|
14759
14759
|
const C = ({ origin: x, data: b }) => {
|
|
14760
|
-
if (x !==
|
|
14760
|
+
if (x !== Bn) return;
|
|
14761
14761
|
let N;
|
|
14762
14762
|
try {
|
|
14763
14763
|
N = typeof b == "string" ? JSON.parse(b) : b;
|
|
@@ -14808,7 +14808,7 @@ function Px(e, t, n, i, r, a, o, s) {
|
|
|
14808
14808
|
);
|
|
14809
14809
|
break;
|
|
14810
14810
|
}
|
|
14811
|
-
d.current(null), Ve.getState().setPlayEndTimestamp(null), Dt(!1),
|
|
14811
|
+
d.current(null), Ve.getState().setPlayEndTimestamp(null), Dt(!1), Ai(c.current);
|
|
14812
14812
|
break;
|
|
14813
14813
|
}
|
|
14814
14814
|
case "selector.closeResult":
|
|
@@ -15074,7 +15074,7 @@ const Cx = ds(function({
|
|
|
15074
15074
|
},
|
|
15075
15075
|
[X]
|
|
15076
15076
|
);
|
|
15077
|
-
|
|
15077
|
+
Di(() => {
|
|
15078
15078
|
if (!p) return;
|
|
15079
15079
|
b();
|
|
15080
15080
|
const T = () => b();
|
|
@@ -15099,7 +15099,7 @@ const Cx = ds(function({
|
|
|
15099
15099
|
});
|
|
15100
15100
|
return () => cancelAnimationFrame(T);
|
|
15101
15101
|
}, [p]);
|
|
15102
|
-
const W = R(w), V = s <= 1 ? c("Pattern.timeframeSelected", { count: s }) : c("Pattern.timeframesSelected", { count: s }), ie = p && y && S ?
|
|
15102
|
+
const W = R(w), V = s <= 1 ? c("Pattern.timeframeSelected", { count: s }) : c("Pattern.timeframesSelected", { count: s }), ie = p && y && S ? mi(
|
|
15103
15103
|
/* @__PURE__ */ h.jsxs(
|
|
15104
15104
|
"div",
|
|
15105
15105
|
{
|
|
@@ -15227,7 +15227,7 @@ const Cx = ds(function({
|
|
|
15227
15227
|
onKeyDown: (k) => {
|
|
15228
15228
|
(k.key === "Enter" || k.key === " ") && (k.preventDefault(), k.stopPropagation(), r(T.value, !1));
|
|
15229
15229
|
},
|
|
15230
|
-
children: /* @__PURE__ */ h.jsx(
|
|
15230
|
+
children: /* @__PURE__ */ h.jsx(Oi, { className: "h-2.5 w-2.5" })
|
|
15231
15231
|
}
|
|
15232
15232
|
)
|
|
15233
15233
|
]
|
|
@@ -15396,7 +15396,7 @@ const Cx = ds(function({
|
|
|
15396
15396
|
hour: "2-digit",
|
|
15397
15397
|
minute: "2-digit"
|
|
15398
15398
|
}).format(new Date(u));
|
|
15399
|
-
},
|
|
15399
|
+
}, Ni = (e, t) => {
|
|
15400
15400
|
const n = va.find((i) => i.value === e);
|
|
15401
15401
|
return n ? {
|
|
15402
15402
|
start_time: os(n.start, n.timezone, t),
|
|
@@ -15409,13 +15409,13 @@ const Cx = ds(function({
|
|
|
15409
15409
|
if (e.preset_session) {
|
|
15410
15410
|
if (e.preset_session === "all_time") return "all_time";
|
|
15411
15411
|
if (e.preset_session === "customize") return "customize";
|
|
15412
|
-
const a =
|
|
15412
|
+
const a = Ni(e.preset_session, n);
|
|
15413
15413
|
if (a && a.start_time === e.start_time && a.end_time === e.end_time)
|
|
15414
15414
|
return e.preset_session;
|
|
15415
15415
|
}
|
|
15416
15416
|
if (!i) return "customize";
|
|
15417
15417
|
const r = va.find((a) => {
|
|
15418
|
-
const o =
|
|
15418
|
+
const o = Ni(a.value, n);
|
|
15419
15419
|
return o && o.start_time === e.start_time && o.end_time === e.end_time;
|
|
15420
15420
|
});
|
|
15421
15421
|
return r ? r.value : "customize";
|
|
@@ -15501,7 +15501,7 @@ const Cx = ds(function({
|
|
|
15501
15501
|
);
|
|
15502
15502
|
return;
|
|
15503
15503
|
}
|
|
15504
|
-
const H =
|
|
15504
|
+
const H = Ni(
|
|
15505
15505
|
O,
|
|
15506
15506
|
e?.timezone || P
|
|
15507
15507
|
);
|
|
@@ -15515,7 +15515,7 @@ const Cx = ds(function({
|
|
|
15515
15515
|
{ ...e, timezone: P },
|
|
15516
15516
|
{ shouldDirty: !1 }
|
|
15517
15517
|
);
|
|
15518
|
-
}, [e, R, t, P]),
|
|
15518
|
+
}, [e, R, t, P]), Di(() => {
|
|
15519
15519
|
if (!m && !l) return;
|
|
15520
15520
|
const O = () => {
|
|
15521
15521
|
m && j(a.current, x), l && j(
|
|
@@ -15550,7 +15550,7 @@ const Cx = ds(function({
|
|
|
15550
15550
|
H.showPicker?.();
|
|
15551
15551
|
} catch {
|
|
15552
15552
|
}
|
|
15553
|
-
}, U = m && c && C ?
|
|
15553
|
+
}, U = m && c && C ? mi(
|
|
15554
15554
|
/* @__PURE__ */ h.jsxs(
|
|
15555
15555
|
"div",
|
|
15556
15556
|
{
|
|
@@ -15617,7 +15617,7 @@ const Cx = ds(function({
|
|
|
15617
15617
|
}
|
|
15618
15618
|
),
|
|
15619
15619
|
c
|
|
15620
|
-
) : null, q = l && c && b ?
|
|
15620
|
+
) : null, q = l && c && b ? mi(
|
|
15621
15621
|
/* @__PURE__ */ h.jsxs(
|
|
15622
15622
|
"div",
|
|
15623
15623
|
{
|
|
@@ -15672,7 +15672,7 @@ const Cx = ds(function({
|
|
|
15672
15672
|
onClick: () => {
|
|
15673
15673
|
const H = O;
|
|
15674
15674
|
if (R !== "all_time" && R !== "customize") {
|
|
15675
|
-
const E =
|
|
15675
|
+
const E = Ni(
|
|
15676
15676
|
R,
|
|
15677
15677
|
H
|
|
15678
15678
|
);
|
|
@@ -16254,7 +16254,7 @@ function Hx({
|
|
|
16254
16254
|
className: "iccandle-event-info-modal__close",
|
|
16255
16255
|
"aria-label": a("Common.close"),
|
|
16256
16256
|
ref: c,
|
|
16257
|
-
children: /* @__PURE__ */ h.jsx(
|
|
16257
|
+
children: /* @__PURE__ */ h.jsx(Oi, { size: 20 })
|
|
16258
16258
|
}
|
|
16259
16259
|
)
|
|
16260
16260
|
] }),
|
|
@@ -16332,7 +16332,7 @@ function Yx({
|
|
|
16332
16332
|
function qx(e) {
|
|
16333
16333
|
try {
|
|
16334
16334
|
const t = JSON.parse(
|
|
16335
|
-
localStorage.getItem(
|
|
16335
|
+
localStorage.getItem(jn) || "null"
|
|
16336
16336
|
);
|
|
16337
16337
|
if (t && String(t.id) === String(e))
|
|
16338
16338
|
return t;
|
|
@@ -16340,7 +16340,7 @@ function qx(e) {
|
|
|
16340
16340
|
}
|
|
16341
16341
|
try {
|
|
16342
16342
|
return JSON.parse(
|
|
16343
|
-
localStorage.getItem(
|
|
16343
|
+
localStorage.getItem(gi) || "[]"
|
|
16344
16344
|
).find((n) => String(n.id) === String(e)) ?? null;
|
|
16345
16345
|
} catch {
|
|
16346
16346
|
return null;
|
|
@@ -16393,9 +16393,9 @@ const fP = ({
|
|
|
16393
16393
|
}
|
|
16394
16394
|
p.current = null;
|
|
16395
16395
|
}
|
|
16396
|
-
le.getAllShapes().filter((
|
|
16396
|
+
le.getAllShapes().filter((Ae) => Ae.name === "date_range").forEach((Ae) => {
|
|
16397
16397
|
try {
|
|
16398
|
-
le.removeEntity(
|
|
16398
|
+
le.removeEntity(Ae.id);
|
|
16399
16399
|
} catch {
|
|
16400
16400
|
}
|
|
16401
16401
|
});
|
|
@@ -16405,13 +16405,18 @@ const fP = ({
|
|
|
16405
16405
|
q(!1), M([]), x([]);
|
|
16406
16406
|
}, [e, x]), mt = ce(
|
|
16407
16407
|
(le) => {
|
|
16408
|
-
|
|
16408
|
+
let Ae = le;
|
|
16409
|
+
try {
|
|
16410
|
+
Ae = new URL(le, `${Bn}/`).pathname;
|
|
16411
|
+
} catch {
|
|
16412
|
+
}
|
|
16413
|
+
Ae.includes("/news") && Mt(), Y?.length && (Ve.getState().setPlayEndTimestamp(null), Ve.getState().setGapCount(0), K(null), Dt(!1), Ai(e));
|
|
16409
16414
|
},
|
|
16410
16415
|
[e, Y, Mt]
|
|
16411
16416
|
), un = ce(() => k(!0), []), A = ce(() => k(!1), []), D = ce(() => {
|
|
16412
16417
|
Ve.getState().setPlayEndTimestamp(null), Ve.getState().setGapCount(0);
|
|
16413
16418
|
const le = !!Y?.length;
|
|
16414
|
-
K(null), Dt(!1), le &&
|
|
16419
|
+
K(null), Dt(!1), le && Ai(e), v.current?.();
|
|
16415
16420
|
}, [e, Y]), B = ce(
|
|
16416
16421
|
() => $("settings"),
|
|
16417
16422
|
[]
|
|
@@ -16428,7 +16433,7 @@ const fP = ({
|
|
|
16428
16433
|
P(!1), L(null), G(null);
|
|
16429
16434
|
}, []), ve = ce(
|
|
16430
16435
|
(le) => {
|
|
16431
|
-
const
|
|
16436
|
+
const Ae = le.default_symbol || et, Ke = W === "dark" ? "dark" : "light";
|
|
16432
16437
|
Mt(), K(null), Ve.getState().setPlayEndTimestamp(null);
|
|
16433
16438
|
const de = {
|
|
16434
16439
|
id: le.id,
|
|
@@ -16443,7 +16448,7 @@ const fP = ({
|
|
|
16443
16448
|
status: le.status
|
|
16444
16449
|
};
|
|
16445
16450
|
try {
|
|
16446
|
-
localStorage.setItem(
|
|
16451
|
+
localStorage.setItem(jn, JSON.stringify(de));
|
|
16447
16452
|
} catch {
|
|
16448
16453
|
}
|
|
16449
16454
|
try {
|
|
@@ -16466,7 +16471,7 @@ const fP = ({
|
|
|
16466
16471
|
le.timestamp,
|
|
16467
16472
|
g
|
|
16468
16473
|
)))(), r(
|
|
16469
|
-
`${
|
|
16474
|
+
`${Bn}/${l}/news/similar-events/${le.id}?symbol=${encodeURIComponent(Ae)}&theme=${Ke}`
|
|
16470
16475
|
);
|
|
16471
16476
|
},
|
|
16472
16477
|
[
|
|
@@ -16481,34 +16486,34 @@ const fP = ({
|
|
|
16481
16486
|
), be = ce(
|
|
16482
16487
|
(le) => {
|
|
16483
16488
|
if (!le || !e) return;
|
|
16484
|
-
let
|
|
16489
|
+
let Ae;
|
|
16485
16490
|
try {
|
|
16486
|
-
|
|
16491
|
+
Ae = e.activeChart();
|
|
16487
16492
|
} catch (Ce) {
|
|
16488
16493
|
console.log("Error getting active chart", Ce);
|
|
16489
16494
|
return;
|
|
16490
16495
|
}
|
|
16491
|
-
if (!
|
|
16492
|
-
const
|
|
16496
|
+
if (!Ae) return;
|
|
16497
|
+
const Ke = Ae.getTimeScale(), de = Ae.getVisibleRange();
|
|
16493
16498
|
if (!de?.from || !de?.to) return;
|
|
16494
16499
|
const $t = C.current?.firstElementChild || C.current;
|
|
16495
16500
|
if (!$t) return;
|
|
16496
|
-
const dn = $t.getBoundingClientRect(), It =
|
|
16501
|
+
const dn = $t.getBoundingClientRect(), It = Ke.width(), hn = (Ce) => {
|
|
16497
16502
|
let De = 0, Oe = It, Me = It / 2;
|
|
16498
16503
|
const ze = 0.1;
|
|
16499
|
-
for (let
|
|
16500
|
-
const gt = (De + Oe) / 2,
|
|
16501
|
-
if (
|
|
16504
|
+
for (let Xn = 0; Xn < 30; Xn++) {
|
|
16505
|
+
const gt = (De + Oe) / 2, Zn = Ke.coordinateToTime(gt);
|
|
16506
|
+
if (Zn === null) {
|
|
16502
16507
|
const Yc = (Ce - de.from) / (de.to - de.from);
|
|
16503
16508
|
Me = Math.max(0, Math.min(It, Yc * It));
|
|
16504
16509
|
break;
|
|
16505
16510
|
}
|
|
16506
|
-
const
|
|
16507
|
-
if (Math.abs(
|
|
16511
|
+
const Ne = Zn - Ce;
|
|
16512
|
+
if (Math.abs(Ne) < ze) {
|
|
16508
16513
|
Me = gt;
|
|
16509
16514
|
break;
|
|
16510
16515
|
}
|
|
16511
|
-
|
|
16516
|
+
Ne > 0 ? Oe = gt : De = gt, Me = gt;
|
|
16512
16517
|
}
|
|
16513
16518
|
const Ze = dn.left + Me + 53, xe = dn.bottom - 103;
|
|
16514
16519
|
return { x: Ze, y: xe };
|
|
@@ -16521,23 +16526,23 @@ const fP = ({
|
|
|
16521
16526
|
[e]
|
|
16522
16527
|
), Ee = ce(() => {
|
|
16523
16528
|
ie(!0);
|
|
16524
|
-
}, []),
|
|
16529
|
+
}, []), Xe = ce(() => {
|
|
16525
16530
|
y.current || (p.current = null, q(!1));
|
|
16526
16531
|
}, []), We = ce(
|
|
16527
16532
|
(le) => {
|
|
16528
|
-
ye(le === "1" || le === "5" ? "60" : le), ht(le),
|
|
16533
|
+
ye(le === "1" || le === "5" ? "60" : le), ht(le), Xe();
|
|
16529
16534
|
},
|
|
16530
|
-
[
|
|
16535
|
+
[Xe]
|
|
16531
16536
|
), Zt = ce(
|
|
16532
16537
|
(le) => {
|
|
16533
16538
|
pt(
|
|
16534
16539
|
le.library_custom_fields?.ticker || le.ticker || le.name || le.base_name + "" || ""
|
|
16535
|
-
),
|
|
16540
|
+
), Xe();
|
|
16536
16541
|
},
|
|
16537
|
-
[
|
|
16542
|
+
[Xe]
|
|
16538
16543
|
);
|
|
16539
16544
|
we(() => {
|
|
16540
|
-
let le,
|
|
16545
|
+
let le, Ae, Ke;
|
|
16541
16546
|
return e && e.onChartReady(() => {
|
|
16542
16547
|
const de = e.activeChart();
|
|
16543
16548
|
if (de) {
|
|
@@ -16604,18 +16609,18 @@ const fP = ({
|
|
|
16604
16609
|
const ke = de.getShapeById(ae);
|
|
16605
16610
|
if (!ke) return;
|
|
16606
16611
|
const Fe = ke.getPoints(), je = Fe[0].time, Ce = Fe[1].time, { data: De } = await de.exportData();
|
|
16607
|
-
let Oe = De.findIndex((
|
|
16612
|
+
let Oe = De.findIndex((Ne) => Ne[0] === Ce), Me = De.findIndex((Ne) => Ne[0] === je);
|
|
16608
16613
|
Oe === -1 && (Oe = De.length - 2, Me = De.length - 1 - sr);
|
|
16609
16614
|
let Ze = De.slice(Me, Oe + 1).length - 1;
|
|
16610
16615
|
Ze > tn.max ? (Ze = Math.round(Ze / 10) * 10 - 1, Ze > tn.custom[tn.custom.length - 1] && (Ze = tn.custom[tn.custom.length - 1] - 1)) : Ze <= tn.min && (Ze = tn.min - 1), p.current && de.removeEntity(p.current), de.getAllShapes().filter(
|
|
16611
|
-
(
|
|
16612
|
-
).forEach((
|
|
16613
|
-
de.removeEntity(
|
|
16616
|
+
(Ne) => Ne.name === "date_range"
|
|
16617
|
+
).forEach((Ne) => {
|
|
16618
|
+
de.removeEntity(Ne.id);
|
|
16614
16619
|
});
|
|
16615
16620
|
const gt = De.slice(
|
|
16616
16621
|
Oe - Ze,
|
|
16617
16622
|
Oe + 1
|
|
16618
|
-
),
|
|
16623
|
+
), Zn = De.slice(Oe - 49, Oe + 1);
|
|
16619
16624
|
if (p.current = await de.createMultipointShape(
|
|
16620
16625
|
[
|
|
16621
16626
|
{
|
|
@@ -16627,29 +16632,29 @@ const fP = ({
|
|
|
16627
16632
|
],
|
|
16628
16633
|
xr(j.current())
|
|
16629
16634
|
), H(gt.length), M(
|
|
16630
|
-
gt.map((
|
|
16631
|
-
o:
|
|
16632
|
-
h:
|
|
16633
|
-
l:
|
|
16634
|
-
c:
|
|
16635
|
-
timestamp:
|
|
16635
|
+
gt.map((Ne) => ({
|
|
16636
|
+
o: Ne[1],
|
|
16637
|
+
h: Ne[2],
|
|
16638
|
+
l: Ne[3],
|
|
16639
|
+
c: Ne[4],
|
|
16640
|
+
timestamp: Ne[0]
|
|
16636
16641
|
}))
|
|
16637
16642
|
), x(
|
|
16638
|
-
|
|
16639
|
-
o:
|
|
16640
|
-
h:
|
|
16641
|
-
l:
|
|
16642
|
-
c:
|
|
16643
|
-
timestamp:
|
|
16643
|
+
Zn.map((Ne) => ({
|
|
16644
|
+
o: Ne[1],
|
|
16645
|
+
h: Ne[2],
|
|
16646
|
+
l: Ne[3],
|
|
16647
|
+
c: Ne[4],
|
|
16648
|
+
timestamp: Ne[0]
|
|
16644
16649
|
}))
|
|
16645
16650
|
), q(!0), p.current) {
|
|
16646
|
-
const
|
|
16647
|
-
|
|
16651
|
+
const Ne = de.getShapeById(p.current);
|
|
16652
|
+
Ne && Ne.setSavingEnabled && (Ne.setProperties({
|
|
16648
16653
|
customText: {
|
|
16649
16654
|
visible: !0,
|
|
16650
16655
|
text: mo
|
|
16651
16656
|
}
|
|
16652
|
-
}),
|
|
16657
|
+
}), Ne.setSavingEnabled(!1));
|
|
16653
16658
|
}
|
|
16654
16659
|
}
|
|
16655
16660
|
},
|
|
@@ -16674,18 +16679,18 @@ const fP = ({
|
|
|
16674
16679
|
return !1;
|
|
16675
16680
|
}
|
|
16676
16681
|
};
|
|
16677
|
-
|
|
16678
|
-
|
|
16682
|
+
Ke = (ae) => {
|
|
16683
|
+
Ae && clearTimeout(Ae), Ae = setTimeout(() => {
|
|
16679
16684
|
hn(ae) ? q(!1) : p.current && q(!0);
|
|
16680
16685
|
}, 150);
|
|
16681
|
-
}, de.onIntervalChanged().subscribe(null, We), de.onSymbolChanged().subscribe(null, Zt), de.onVisibleRangeChanged().subscribe(null,
|
|
16686
|
+
}, de.onIntervalChanged().subscribe(null, We), de.onSymbolChanged().subscribe(null, Zt), de.onVisibleRangeChanged().subscribe(null, Ke), e.subscribe?.("drawing_event", le);
|
|
16682
16687
|
}
|
|
16683
16688
|
}), () => {
|
|
16684
16689
|
p.current = null, v.current = null;
|
|
16685
16690
|
try {
|
|
16686
|
-
if (
|
|
16691
|
+
if (Ae && clearTimeout(Ae), e) {
|
|
16687
16692
|
const de = e.activeChart();
|
|
16688
|
-
de && (
|
|
16693
|
+
de && (Ke && de.onVisibleRangeChanged().unsubscribe(null, Ke), de.onIntervalChanged().unsubscribe(null, We), de.onSymbolChanged().unsubscribe(null, Zt)), le && e.unsubscribe("drawing_event", le);
|
|
16689
16694
|
}
|
|
16690
16695
|
} catch {
|
|
16691
16696
|
}
|
|
@@ -16742,8 +16747,8 @@ const fP = ({
|
|
|
16742
16747
|
f,
|
|
16743
16748
|
e.getTheme()
|
|
16744
16749
|
);
|
|
16745
|
-
} catch (
|
|
16746
|
-
console.error("Failed to create generated candle studies:",
|
|
16750
|
+
} catch (Ae) {
|
|
16751
|
+
console.error("Failed to create generated candle studies:", Ae);
|
|
16747
16752
|
}
|
|
16748
16753
|
}), () => {
|
|
16749
16754
|
le = !0;
|
|
@@ -16751,14 +16756,14 @@ const fP = ({
|
|
|
16751
16756
|
}, [e, f]), mx(e, f, Be, et, Y);
|
|
16752
16757
|
const Ut = ce(() => {
|
|
16753
16758
|
try {
|
|
16754
|
-
localStorage.removeItem(
|
|
16759
|
+
localStorage.removeItem(gi), localStorage.removeItem(jn);
|
|
16755
16760
|
} catch {
|
|
16756
16761
|
}
|
|
16757
16762
|
const le = e?.activeChart?.();
|
|
16758
16763
|
if (le) {
|
|
16759
|
-
S.current && S.current.length > 0 && (S.current.forEach((
|
|
16764
|
+
S.current && S.current.length > 0 && (S.current.forEach((Ae) => {
|
|
16760
16765
|
try {
|
|
16761
|
-
le.removeEntity(
|
|
16766
|
+
le.removeEntity(Ae);
|
|
16762
16767
|
} catch {
|
|
16763
16768
|
}
|
|
16764
16769
|
}), S.current = []);
|
|
@@ -16877,7 +16882,7 @@ const fP = ({
|
|
|
16877
16882
|
}
|
|
16878
16883
|
};
|
|
16879
16884
|
export {
|
|
16880
|
-
|
|
16885
|
+
Bn as WIDGET_RESULT_URL,
|
|
16881
16886
|
fP as WidgetIccandle,
|
|
16882
16887
|
mP as getCustomIndicators,
|
|
16883
16888
|
gP as handleResultIframeLoad,
|