Files
ai/charting_library/bundles/alert-dialog.42e245eb82504c55c632.js
2023-02-02 13:31:14 +00:00

25 lines
72 KiB
JavaScript

(self.webpackChunktradingview=self.webpackChunktradingview||[]).push([[2465],{39227:()=>{},89213:()=>{},69423:()=>{},6891:()=>{},56912:()=>{},73168:()=>{},74437:()=>{},66927:t=>{t.exports={clock:"clock-LMkaUMzm",header:"header-LMkaUMzm",number:"number-LMkaUMzm",active:"active-LMkaUMzm",body:"body-LMkaUMzm",clockFace:"clockFace-LMkaUMzm",face:"face-LMkaUMzm",inner:"inner-LMkaUMzm",hand:"hand-LMkaUMzm",knob:"knob-LMkaUMzm",centerDot:"centerDot-LMkaUMzm"}},9745:(t,e,s)=>{"use strict";s.d(e,{Icon:()=>i});var n=s(59496);const i=n.forwardRef((t,e)=>{const{icon:s="",...i}=t;return n.createElement("span",{...i,ref:e,dangerouslySetInnerHTML:{__html:s}})})},1787:(t,e,s)=>{"use strict";s.d(e,{solutionIds:()=>n});const n=JSON.parse('{"EXTENDED_HOURS":43000502023,"PRE_MARKET":43000502023,"POST_MARKET":43000502023,"SPREAD_CHARTS":43000502298,"ALERTS":43000520149,"ALERT_ON_STRATEGY":43000481368,"ALERT_WEBHOOK":43000529348,"ALERT_DESCRIPTION_PLACEHOLDER":43000531021,"VOLUME_PROFILE":43000502040,"VOLUME_PROFILE_INDICATOR":43000557450,"RENKO":43000502284,"KAGI":43000502272,"LINE_BREAK":43000502273,"PNF":43000502276,"FINANCIAL_DATA":43000543506,"BROKER_RATING":43000542490,"CRYPTO_MARKET_CAP":43000540941,"CRYPTO_PAYMENT":43000485536,"ALERT_ON_SPREAD":43000478406,"ALERT_ON_CUSTOM_SCRIPT":43000478415,"ALERT_FUNCTION":43000597494,"SMS_VERIFICATION":43000553429,"MAGNET_MODE":43000537270,"PINE_CANNOT_DETERMINE":43000587849,"PRIVACY_SETTINGS":43000548335,"PUBLICATION_TYPE":43000609497,"SCRIPT_ACCESS":43000482573,"MEMORY_LIMITS_EXCEEDED":43000590233,"FREE_USER_FAQS":43000590947,"STRATEGY_UNREALISTIC_RESULTS":43000481029,"STRATEGY_FUTURE_DATA":43000614705,"STREAM_RULES":43000591348,"HOW_TO_USE_PAPER":43000516466,"HOW_TO_USE_CQG":43000516372,"HOW_TO_USE_OANDA":43000516375,"HOW_TO_USE_FOREXCOM":43000516374,"FAVORITE_IDEA":43000555216,"YOUTUBE_ERROR":43000612153,"AUTHORS_INSTRUCTIONS_PUBCLICATION":43000549951,"AUTHORS_INSTRUCTIONS_EDIT":43000614618,"SCRIPT_INSTRUCTIONS":43000482573,"BAR_REPLAY_UNAVAILABILITY":43000475470,"WHAT_IS_CBOE_BZX_EXCHANGE":43000473924,"GOPRO_UPGRADE_DESCRIPTION":43000473324,"GOPRO_DOWNGRADE_DESCRIPTION":43000485437,"BROKERAGE_REVIEWS":43000591351,"CHANGE_SUBSCRIPTION":43000635806,"PINE_LIBRARY_INFO":43000638371,"HOW_TO_CREATE_A_STREAM":43000560174,"HOW_DO_I_UPDATE_DESKTOP_APP":43000647779,"TECHNICAL_RATINGS":43000614331,"BACKTESTING_WIDGET":43000561856,"DEEP_BACKTESTING_WIDGET":43000670566,"DEEP_BACKTESTING":43000666199,"DEEP_BACKTESTING_AVAILABLE_DATA":43000668210}')},91426:(t,e,s)=>{"use strict";s.r(e),s.d(e,{AlertDialog:()=>Wt});s(46322);var n=s(97754),i=s.n(n),o=s(43370),a=s(4889),r=s(28353),l=(s(8250),s(42845),s(78754),s(22358),s(77544)),c=s(16256),d=s(52714),h=s.n(d);class p{constructor(t,e){this._src=t,this._state=new(h())(!1),e&&(this._selected=!0)}play(){c.play(this._src.path),this._state.setValue(!0),c.onStopped(this._src.path,()=>this._state.setValue(!1))}stop(){c.stop(this._src.path),this._state.setValue(!1)}toggle(){c.isPlaying(this._src.path)?this.stop():this.play()}get selected(){return!!this._selected}
get value(){return this._src.path}get caption(){return this._src.title}get state(){return this._state}}var u=s(72781);s(74437);var _=s(23127);const m="yes",v="close";class g{constructor({label:t,name:e,maxLength:s,error:n=""}){this._name=e,this._field=document.createElement("label"),this._field.classList.add("tv-rename-chart-dialog__field");const i=document.createElement("span");i.classList.add("tv-rename-chart-dialog__label"),i.innerHTML=t,this._inputElement=document.createElement("input"),this._inputElement.classList.add("tv-control-input"),this._inputElement.setAttribute("type","text"),this._inputElement.setAttribute("name",e),this._inputElement.setAttribute("maxlength",s),this._field.appendChild(i),this._field.appendChild(this._inputElement),this._error=n}appendTo(t){t.appendChild(this._field)}focus(){this._inputElement.focus()}select(){this.focus(),this._inputElement.select()}set value(t){this._inputElement.value=t}get value(){return this._inputElement.value}get name(){return this._name}get valid(){return!!this._inputElement.value.trim()}set error(t){this._error=t}get error(){return this._error}}class f extends g{constructor(t){const e=t.regExp;delete t.regExp,super(t),this._regExp=e}get valid(){return this._regExp.test(this.value)}}var b=s(76861),C=s(23127);class w extends class{constructor({fields:t,confirm:e,manager:s,title:n="",destroyOnClose:i=!0,modal:o=!1}={}){this._form=document.createElement("div"),this._fields=t,this._appendFieldsToForm(),this._title=n,this._destroyOnClose=i,this._modal=o,this._manager=s,this._isConfirmDialogOpened=!1,e&&(this._needCheckConfirm=!0,this._shouldShowConfirm=e.shouldShowDialog,this._getConfirmMessage=e.getMessage)}setField(t,e){this._fields.find(e=>e.name===t).value=e}show(){const t=this._createDialog();return new Promise(e=>{t.then(t=>{t.on("action:submit",t=>this._onSubmit(t,e)),t.open(),t.on("beforeClose",this._unmountFields.bind(this)),this._fields[0].select()})})}_appendFieldsToForm(){this._fields.forEach(t=>{t.appendTo(this._form)})}async _createDialog(){const{createDialog:t}=await Promise.all([s.e(509),s.e(3118),s.e(1729),s.e(6708),s.e(1536),s.e(7678),s.e(4834)]).then(s.bind(s,89725));return t({type:this._modal?"modal":"popup",title:this._title,content:_(this._form),actionsWrapTemplate:'<div class="tv-dialog__section tv-dialog__section--actions i-align_right tv-dialog__section--no-border">',width:470,destroyOnClose:this._destroyOnClose,manager:this._manager,isClickOutFn:()=>{if(this._isConfirmDialogOpened)return!1},actions:[{name:"submit",type:"primary",text:(0,r.t)("Save"),key:13,addClass:"js-submit-button"},{name:"cancel",type:"default",text:(0,r.t)("Cancel"),method:"close",addClass:"js-cancel-button"}]})}_onSubmit(t,e){const s=this._validate();if(s)t.error(s.error),s.focus();else{if(!this._needCheckConfirm)return e(this._collectValues(),t),void t.close();Promise.resolve(this._shouldShowConfirm(this._collectValues())).then(s=>{if(!s)return e(this._collectValues(),t),void t.close();this._showConfirmDialog().then(s=>{s===v&&(t.focus(),this._fields[0].focus()),
s===m&&(e(this._collectValues(),t),t.close())})})}}_showConfirmDialog(){return new Promise(t=>{Promise.resolve(this._getConfirmMessage(this._collectValues())).then(e=>{this._isConfirmDialogOpened=!0,async function(t){const e={actions:[{key:13,name:"yes",text:r.t("Yes"),type:"success"},{method:"close",name:"no",text:r.t("No"),type:"default"}],actionsWrapTemplate:'<div class="tv-dialog__section tv-dialog__section--actions tv-dialog__section--no-border">',content:r.t("Are you sure?"),contentWrapTemplate:'<div class="tv-dialog__section tv-dialog__section--no-border"><div class="tv-text"><p></p></div></div>',destroyOnClose:!0,title:r.t("Confirmation"),width:400,dataset:{"dialog-type":"confirm-dialog"}},{createDialog:n}=await Promise.all([s.e(509),s.e(3118),s.e(1729),s.e(6708),s.e(1536),s.e(7678),s.e(4834)]).then(s.bind(s,89725));return n({...e,...t})}({type:"modal",content:document.createTextNode(e),manager:this._manager}).then(e=>{e.on("action:yes",e=>{t(m),e.close()}),e.on("afterClose",()=>{t(v),this._isConfirmDialogOpened=!1}),e.open()})})})}_validate(){return this._fields.find(t=>!t.valid)}_collectValues(){return this._fields.reduce((t,e)=>(t[e.name]=e.value,t),{})}_unmountFields(){this._fields.forEach(t=>{t.unmount&&t.unmount()})}}{constructor({paramName:t,dialogTitle:e="",initialValue:s="",fieldLabel:n="",maxLength:i=null,validateRegExp:o=null,error:a="",destroyOnClose:r=!0,modal:l=!1}={}){const c={label:n,name:t,maxLength:i,error:a};let d;o?(c.regExp=o,d=f):d=g;super({fields:[new d(c)],title:e,destroyOnClose:r,modal:l}),s&&(this.value=s),this._paramName=t}_onSubmit(t,e){if(this._isLoading(t))return;const s=this._validate();if(s)this._showError(t,s);else{this._setLoading(t);const s=this._collectValues()[this._paramName];this._updateValue(s).then(n=>{t.close(),n&&n.email_changed?(0,u.createNoticeDialog)({type:"modal",title:(0,r.t)("Confirm your email"),content:(0,r.t)("Check {changed_email} to confirm your email address. You won't get any notifications until you confirm it.").format({changed_email:s})}).then((function(t){t.open(),t.on("destroy",()=>{e(n)})})):e(n)}).catch(e=>{this._setLoading(t,"stop"),this._showError(t,this._fields[0],e&&e.message||(0,r.t)("Unknown Error"))})}}_isLoading(t){return t.$actions.find(".js-submit-button").is(".i-loading")}_setLoading(t,e="start"){t.$actions.find(".js-submit-button").tvButtonLoader(e)}_updateValue(t){return new Promise((e,s)=>{!function(t){if(!t||!t.name||void 0===t.value)return void console.warn("Required options.name and options.value");function e(t){var e=Array.prototype.slice.call(arguments);e.shift(),"function"==typeof t&&t.apply(this,e)}function s(s){403===s.status?e(t.onError,(0,r.t)("Please, try to reload page to edit user data")):e(t.onError,(0,b.isProd)()?(0,r.t)("Sorry, an error has occurred"):s.responseText)}if("sms_email"===t.name&&""===t.value.trim())return s({}),void e(t.onComplete);var n={};n[t.name]=t.value;let i="/accounts/change_status/";"email"===t.name&&(i="/api/v1/users/change-email/"),C.post(i,n,(function(s){
!s.errors||C.isEmptyObject(s.errors)?("email"!==t.name&&(user[t.name]=s[t.name]),e(t.onSuccess,s)):"email"===t.name?e(t.onError,Object.values(s.errors)):e(t.onError,s.errors[t.name])})).error((function(t){s(t)})).always((function(){e(t.onComplete)}))}({name:this._paramName,value:t,onSuccess:e,onError:t=>s(new Error((t||[]).join(" ")))})})}_showError(t,e,s){t.error(s||e.error),e.focus()}}var E=s(2872),y=s.n(E),S=s(62867),x=s(55306),k=s(56840);var T=s(33550),I=s(85459),M=s.n(I),$=s(55532),O=s.n($),D=s(59496),P=s(87995),N=s(27404),A=s(88537),R=s(66927);class j extends D.PureComponent{constructor(){super(...arguments),this._renderNumber=(t,e)=>{const s=n(R.number,{[R.active]:t===this.props.activeNumber,[R.inner]:this.props.isInner}),i=this.props.format?this.props.format(t):t.toString();return D.createElement("span",{key:t,className:s,style:this._numberStyle(this.props.radius-this.props.spacing,e),"data-value":i},D.createElement("span",null,i))}}render(){return D.createElement("div",{className:R.face,style:this._faceStyle(),onMouseDown:this.props.onMouseDown,onTouchStart:this.props.onTouchStart},this.props.numbers.map(this._renderNumber))}_faceStyle(){return{height:2*this.props.radius,width:2*this.props.radius}}_numberStyle(t,e){const s=Math.PI/180*360/12*e;return{left:t+t*Math.sin(s)+this.props.spacing,top:t-t*Math.cos(s)+this.props.spacing}}}class L extends D.PureComponent{constructor(t){super(t),this._onMouseMove=t=>{this._move(W(t))},this._onTouchMove=t=>{this._move(z(t))},this._onMouseUp=()=>{document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),this._endMove()},this._onTouchEnd=t=>{document.removeEventListener("touchmove",this._onTouchMove),document.removeEventListener("touchend",this._onTouchEnd),this._endMove(t)}}componentWillUnmount(){document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),document.removeEventListener("touchmove",this._onTouchMove),document.removeEventListener("touchend",this._onTouchEnd)}render(){const t={height:this.props.length,transform:`rotate(${this.props.angle}deg)`};return D.createElement("div",{className:R.hand,style:t},D.createElement("span",{className:R.knob}))}mouseStart(t){document.addEventListener("mousemove",this._onMouseMove),document.addEventListener("mouseup",this._onMouseUp),this._move(W(t.nativeEvent))}touchStart(t){document.addEventListener("touchmove",this._onTouchMove),document.addEventListener("touchend",this._onTouchEnd),this._move(z(t.nativeEvent)),t.stopPropagation()}_endMove(t){this.props.onMoveEnd&&this.props.onMoveEnd(t)}_move(t){const e=this._trimAngleToValue(this._positionToAngle(t)),s=this._getPositionRadius(t);!this.props.onMove||isNaN(e)||isNaN(s)||this.props.onMove(360===e?0:e,s)}_trimAngleToValue(t){return this.props.step*Math.round(t/this.props.step)}_positionToAngle(t){return function(t,e,s,n){const i=function(t,e,s,n){return 180*(Math.atan2(n-e,s-t)+Math.PI/2)/Math.PI}(t,e,s,n);return i<0?360+i:i
}(this.props.center.x,this.props.center.y,t.x,t.y)}_getPositionRadius(t){const e=this.props.center.x-t.x,s=this.props.center.y-t.y;return Math.sqrt(e*e+s*s)}}function W(t){return{x:t.pageX-window.scrollX,y:t.pageY-window.scrollY}}function z(t){return{x:t.touches[0].pageX-window.scrollX,y:t.touches[0].pageY-window.scrollY}}var F=s(23935);const V=[0,...(0,F.range)(13,24)],H=[12,...(0,F.range)(1,12)];class U extends D.PureComponent{constructor(t){super(t),this._onMouseDown=t=>{this._hand.mouseStart(t)},this._onTouchStart=t=>{this._hand.touchStart(t)},this._onHandMove=(t,e)=>{const s=e<this.props.radius-this.props.spacing;this.state.isInner!==s?this.setState({isInner:s},()=>{this.props.onChange(this._valueFromDegrees(t))}):this.props.onChange(this._valueFromDegrees(t))},this._onHandMoveEnd=()=>{this.props.onSelect&&this.props.onSelect()},this.state={isInner:this.props.selected>0&&this.props.selected<=12}}render(){const{center:t,radius:e,spacing:s,selected:n}=this.props;return D.createElement("div",null,D.createElement(j,{radius:e,spacing:s,numbers:V,activeNumber:n,format:F.twoDigitsFormat,onMouseDown:this._onMouseDown,onTouchStart:this._onTouchStart}),this._renderInnerFace(.46*e),D.createElement(L,{ref:t=>this._hand=t,length:e-(this.state.isInner?.46*e:s)-this.props.numberRadius,angle:30*n,step:30,center:t,onMove:this._onHandMove,onMoveEnd:this._onHandMoveEnd}))}_renderInnerFace(t){return D.createElement(j,{radius:this.props.radius,spacing:t,numbers:H,activeNumber:this.props.selected,onMouseDown:this._onMouseDown,onTouchStart:this._onTouchStart,isInner:!0})}_valueFromDegrees(t){return this.state.isInner?H[t/30]:V[t/30]}}const B=(0,F.range)(0,60,5);class G extends D.PureComponent{constructor(){super(...arguments),this._onMouseDown=t=>{this._hand.mouseStart(t)},this._onTouchStart=t=>{this._hand.touchStart(t)},this._onHandMove=t=>{this.props.onChange(t/6)},this._onHandMoveEnd=t=>{this.props.onSelect&&this.props.onSelect(t)}}render(){return D.createElement("div",null,D.createElement(j,{radius:this.props.radius,spacing:this.props.spacing,numbers:B,activeNumber:this.props.selected,format:F.twoDigitsFormat,onMouseDown:this._onMouseDown,onTouchStart:this._onTouchStart}),D.createElement(L,{ref:t=>this._hand=t,length:this.props.radius-this.props.spacing-this.props.numberRadius,angle:6*this.props.selected,step:6,center:this.props.center,onMove:this._onHandMove,onMoveEnd:this._onHandMoveEnd}))}}var Y;!function(t){t[t.Hours=0]="Hours",t[t.Minutes=1]="Minutes"}(Y||(Y={}));class q extends D.PureComponent{constructor(t){super(t),this._clockFace=null,this._raf=null,this._recalculateTimeout=null,this._calculateShapeBinded=this._calculateShape.bind(this),this._onChangeHours=t=>{this.state.time.hours()!==t&&this._onChange(this.state.time.clone().hours(t))},this._onChangeMinutes=t=>{this.state.time.minutes()!==t&&this._onChange(this.state.time.clone().minutes(t))},this._onSelectHours=()=>{this._displayMinutes()},this._onSelectMinutes=t=>{t&&t.target instanceof Node&&this._clockFace&&this._clockFace.contains(t.target)&&t.preventDefault(),
this.props.onSelect&&this.props.onSelect(this.state.time.clone())},this._displayHours=()=>{this.setState({faceType:Y.Hours})},this._displayMinutes=()=>{this.setState({faceType:Y.Minutes})},this._setClockFace=t=>{this._clockFace=t},this.state={center:{x:0,y:0},radius:0,time:this.props.selectedTime,faceType:Y.Hours}}render(){return D.createElement("div",{className:n(R.clock,this.props.className)},D.createElement("div",{className:R.header},D.createElement("span",{className:n(R.number,{[R.active]:this.state.faceType===Y.Hours}),onClick:this._displayHours},this.state.time.format("HH")),D.createElement("span",null,":"),D.createElement("span",{className:n(R.number,{[R.active]:this.state.faceType===Y.Minutes}),onClick:this._displayMinutes},this.state.time.format("mm"))),D.createElement("div",{className:R.body},D.createElement("div",{className:R.clockFace,ref:this._setClockFace},this.state.faceType===Y.Hours?this._renderHours():null,this.state.faceType===Y.Minutes?this._renderMinutes():null,D.createElement("span",{className:R.centerDot}))))}componentDidMount(){this._calculateShape(),this._recalculateTimeout=setTimeout(this._calculateShapeBinded,1),window.addEventListener("resize",this._calculateShapeBinded),window.addEventListener("scroll",this._calculateShapeBinded,!0)}componentWillUnmount(){this._clearTimeout(),window.removeEventListener("resize",this._calculateShapeBinded),window.removeEventListener("scroll",this._calculateShapeBinded,!0),null!==this._raf&&(cancelAnimationFrame(this._raf),this._raf=null)}_clearTimeout(){null!==this._recalculateTimeout&&(clearTimeout(this._recalculateTimeout),this._recalculateTimeout=null)}_renderHours(){return D.createElement(U,{center:this.state.center,radius:this.state.radius,spacing:.18*this.state.radius,selected:this.state.time.hours(),numberRadius:13,onChange:this._onChangeHours,onSelect:this._onSelectHours})}_renderMinutes(){return D.createElement(G,{center:this.state.center,radius:this.state.radius,spacing:.18*this.state.radius,selected:this.state.time.minutes(),numberRadius:13,onChange:this._onChangeMinutes,onSelect:this._onSelectMinutes})}_onChange(t){this.setState({time:t}),this.props.onChange&&this.props.onChange(t.clone())}_calculateShape(){null===this._raf&&(this._raf=requestAnimationFrame(()=>{const{left:t,top:e,width:s}=(0,A.ensureNotNull)(this._clockFace).getBoundingClientRect();this.setState({center:{x:t+s/2,y:e+s/2},radius:s/2}),this._raf=null}))}}var K=s(76685),X=s(32563),J=s(44384),Z=s(23982),Q=s(67029);class tt extends D.PureComponent{constructor(t){super(t),this._format="HH:mm",this._fixValue=t=>((t=(t=t.substring(0,5)).replace(/:+/g,":")).endsWith(":")||2!==t.length||(t+=":"),t),this._isValid=t=>/^[0-9]{2}:[0-9]{2}/.test(t)&&$(t,this._format).isValid(),this._onType=t=>{const e=this._isValid(t)?$(t,this._format):null;e?this.setState({time:e,isInvalid:!1}):this.setState({isInvalid:!0}),this.props.onPick(e)},this._onSelect=t=>{this.setState({time:t,showClock:!1,isInvalid:!1}),this.props.onPick(t)},this._showClock=()=>{this.setState({showClock:!0})},this._hideClock=()=>{
this.setState({showClock:!1})},this._getErrors=()=>{const t=this.props.errors?[...this.props.errors]:[];return this.state.isInvalid&&t.push((0,r.t)("Please enter the right time format hh:mm")),t},this.state={time:t.initial,showClock:!1,isInvalid:!this._isValid(t.initial.format(this._format))}}render(){return X.mobiletouch?D.createElement(Z.NativePickerInput,{value:this.state.time.format(this._format),type:"time",onChange:this._onType,icon:K,disabled:this.props.disabled,size:this.props.size,errors:this._getErrors(),showErrorMessages:this.props.showErrorMessages,name:this.props.name,readonly:this.props.readonly,className:n(this._getFontSizeClassName(this.props.size),this.props.className),InputComponent:this.props.InputComponent}):D.createElement(J.PickerInput,{value:this.state.time.format(this._format),inputRegex:/[0-9:]/,fixValue:this._fixValue,onType:this._onType,onShowPicker:this._showClock,onHidePicker:this._hideClock,showPicker:this.state.showClock,icon:K,disabled:this.props.disabled,size:this.props.size,errors:this._getErrors(),showErrorMessages:this.props.showErrorMessages,name:this.props.name,readonly:this.props.readonly,className:n(this._getFontSizeClassName(this.props.size),this.props.className),InputComponent:this.props.InputComponent},D.createElement(q,{selectedTime:this.state.time,onSelect:this._onSelect}))}UNSAFE_componentWillReceiveProps(t){this.props.initial!==t.initial&&this.setState({time:t.initial,isInvalid:!this._isValid(t.initial.format(this._format))})}_getFontSizeClassName(t){return t?"large"===t?Q.InputClasses.FontSizeLarge:Q.InputClasses.FontSizeMedium:void 0}}class et extends(M()){constructor({min:t=new Date(-864e13),max:e=new Date(864e13),value:s=new Date,noRangeValidation:n=!1,showErrorMessages:i=!0,readonly:o=!1,dateContainer:a,timeContainer:r,size:l,dateName:c,timeName:d,className:h}){super(),this._min=t,this._max=e,this._momentMin=O()(t),this._momentMax=O()(e),this._initValue=O()(s),this._dateContainer=a,this._timeContainer=r,this._noRangeValidation=n,this._size=l,this._showErrorMessages=i,this._dateName=c,this._timeName=d,this._readonly=o,this._className=h,this._dateValue=this._initValue.clone().startOf("day"),this._timeValue=this._initValue.clone(),this._disabled=!1,this._customErrors=[],this._errors={time:!1,date:!1,dateRange:!this._noRangeValidation&&!this._isInRange(s)},this._onDatePick=t=>{const e=t?O()(t):null;this.emit("pick",e),e?(this._errors.date=!1,e.isSame(this._dateValue)||(this._dateValue=e,this._resolveFullDateUpdate(),this._renderComponents())):this._errors.date=!0},this._onTimePick=t=>{this.emit("pick",t),t?(this._errors.time=!1,t.isSame(this._timeValue)||(this._timeValue=t,this._resolveFullDateUpdate(),this._renderComponents())):this._errors.time=!0},this._renderComponents()}isValid(){return!Object.values(this._errors).some(t=>t)&&!this._customErrors.length}destroy(){P.unmountComponentAtNode(this._dateContainer),P.unmountComponentAtNode(this._timeContainer)}setDisabled(t){this._disabled=t,this._renderComponents()}setErrors(t){
for(const e of t)this._customErrors.includes(e)||this._customErrors.push(e);this._renderComponents()}removeErrors(t){for(const e of t){const t=this._customErrors.indexOf(e);-1!==t&&this._customErrors.splice(t,1)}this._renderComponents()}setCurrentDateTime(){const t=O()(new Date);this._onDatePick(t.toDate()),this._onTimePick(t),this._initValue=t}_isInRange(t){return this._min<=t&&this._max>=t}_resolveFullDateUpdate(){const t=this._getFullDate();t&&(this._noRangeValidation||this._isInRange(t)?(this._errors.dateRange=!1,this.emit("change",t)):this._errors.dateRange=!0)}_getFullDate(){return this._errors.date||this._errors.time?null:this._dateValue.clone().hours(this._timeValue.hours()).minutes(this._timeValue.minutes()).toDate()}_renderComponents(){const t=[...this._customErrors];this._errors.dateRange&&t.push((0,r.t)("Specified date is not within the allowed range")),P.render(D.createElement(N.DatePicker,{initial:this._initValue.toDate(),onPick:this._onDatePick,minDate:this._momentMin.toDate(),maxDate:this._momentMax.toDate(),disabled:this._disabled,noRangeValidation:!0,errors:t,size:this._size,showErrorMessages:this._showErrorMessages,name:this._dateName,readonly:this._readonly,className:this._className}),this._dateContainer),P.render(D.createElement(tt,{initial:this._initValue,onPick:this._onTimePick,disabled:this._disabled,errors:t,size:this._size,showErrorMessages:this._showErrorMessages,name:this._timeName,readonly:this._readonly,className:this._className}),this._timeContainer)}}var st=s(87463),nt=s(94738),it=s(84015),ot=s(59255),at=s(35908),rt=s(51768),lt=s(48743),ct=s(1787),dt=s(30152),ht=s(51712),pt=s(78599),ut=s(81268),_t=s.n(ut),mt=s(68587),vt=(s(73168),s(39227),s(6891),s(69423),s(89213),s(56912),s(23127)),gt=s(13398);const ft=(0,r.t)("Click here to learn more about webhooks"),bt=(0,r.t)("Click here to learn more about placeholders"),Ct=(0,r.t)("Click here to learn more about alerts on strategy"),wt=(0,r.t)("Click here to learn more about alert function usage");function Et(t,e,n){return`\n\t\t<button\n\t\t\ttype="button"\n\t\t\tclass="${i()("apply-common-tooltip","tv-alert-dialog__info","tv-alert-dialog__info--interactive",n,t)}"\n\t\t\ttitle="${e}"\n\t\t>\n\t\t\t${s(17681)}\n\t\t</button>`}function yt(){return`\n\t\t<div class="tv-alert-dialog__fieldset-value-item">\n\t\t\t<label>\n\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t<input class="tv-control-checkbox__input" type="checkbox" name="send-push"{{#actions_push}} checked{{/actions_push}}>\n\t\t\t\t\t<span class="tv-control-checkbox__box">${s(4135)}</span>\n\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t</span>\n\t\t\t\t<span class="tv-control-checkbox__label tv-alert-dialog__checkbox-label">\n\t\t\t\t\t{{#is_mobile_app}}${(0,r.t)("Push notifications")}{{/is_mobile_app}}\n\t\t\t\t\t{{^is_mobile_app}}${(0,r.t)("Notify on app")}{{/is_mobile_app}}\n\t\t\t\t</span>\n\t\t\t</label>\n\t\t</div>`}function St(){
return`\n\t\t<div class="tv-alert-dialog__fieldset-value-item">\n\t\t\t<label>\n\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t<input class="tv-control-checkbox__input" type="checkbox" name="show-popup"{{#actions_popup}} checked{{/actions_popup}}>\n\t\t\t\t\t<span class="tv-control-checkbox__box">${s(4135)}</span>\n\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t</span>\n\t\t\t\t<span class="tv-control-checkbox__label tv-alert-dialog__checkbox-label">\n\t\t\t\t\t{{#is_mobile_app}}${(0,r.t)("Show desktop pop-up")}{{/is_mobile_app}}\n\t\t\t\t\t{{^is_mobile_app}}${(0,r.t)("Show pop-up")}{{/is_mobile_app}}\n\t\t\t\t</span>\n\t\t\t</label>\n\t\t</div>`}function xt(){return`\n\t\t<div class="tv-alert-dialog__fieldset-value-item">\n\t\t\t<label>\n\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t<input class="tv-control-checkbox__input" type="checkbox" name="send-email"{{#actions_email}} checked{{/actions_email}}>\n\t\t\t\t\t<span class="tv-control-checkbox__box">${s(4135)}</span>\n\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t</span>\n\t\t\t\t<span class="tv-control-checkbox__label tv-alert-dialog__checkbox-label">${(0,r.t)("Send email")}</span>\n\t\t\t</label>\n\t\t</div>`}function kt(){return`\n\t\t<div class="tv-alert-dialog__fieldset-value-item">\n\t\t\t<label>\n\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t<input class="tv-control-checkbox__input" type="checkbox" name="webhook-toggle"{{#webhook_url_active}} checked{{/webhook_url_active}}>\n\t\t\t\t\t<span class="tv-control-checkbox__box">${s(4135)}</span>\n\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t</span>\n\t\t\t\t<span class="tv-control-checkbox__label tv-alert-dialog__checkbox-label">${(0,r.t)("Webhook URL")}</span>\n\t\t\t</label>\n\t\t\t${Et("js-webhook-solution-btn",ft)}\n\t\t</div>\n\t\t<div class="tv-alert-dialog__fieldset-value-item tv-alert-dialog__fieldset-value-item--nested tv-alert-dialog__fieldset-value--group js-webhook-input-wrap">\n\t\t\t<input type="url" name="webhook-url" class="tv-control-input tv-control-input--size_small" value="{{webhook_url_value}}" placeholder="https://example.com/alert-hook/">\n\t\t</div>`}function Tt(){return`\n\t\t<div class="tv-alert-dialog__fieldset-value-item js-sound-switch">\n\t\t\t<label>\n\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t<input class="tv-control-checkbox__input" type="checkbox" name="play-sound"{{#actions_sound}} checked{{/actions_sound}}>\n\t\t\t\t\t<span class="tv-control-checkbox__box">${s(4135)}</span>\n\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t</span>\n\t\t\t\t<span class="tv-control-checkbox__label tv-alert-dialog__checkbox-label">\n\t\t\t\t\t{{#is_mobile_app}}${(0,r.t)("Play sound on desktop")}{{/is_mobile_app}}\n\t\t\t\t\t{{^is_mobile_app}}${(0,
r.t)("Play sound")}{{/is_mobile_app}}\n\t\t\t\t</span>\n\t\t\t</label>\n\t\t</div>\n\t\t<div class="tv-alert-dialog__fieldset-value-item tv-alert-dialog__fieldset-value-item--nested tv-alert-dialog__fieldset-value--group js-sound-settings">\n\t\t\t<div class="tv-alert-dialog__group-item tv-alert-dialog__group-item--left">\n\t\t\t\t<select class="tv-control-select tv-control-select--size_small" name="sound-name">\n\t\t\t\t\t{{#sounds}}\n\t\t\t\t\t\t<option value="{{value}}"{{#selected}} selected{{/selected}}>{{caption}}</option>\n\t\t\t\t\t{{/sounds}}\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t\t<div class="tv-alert-dialog__group-item tv-alert-dialog__group-item--right">\n\t\t\t\t<select class="tv-control-select tv-control-select--size_small" name="sound-duration">\n\t\t\t\t\t{{#sound_durations}}\n\t\t\t\t\t\t<option value="{{value}}"{{#selected}} selected{{/selected}}>{{caption}}</option>\n\t\t\t\t\t{{/sound_durations}}\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>`}function It(){return`\n\t\t<div class="tv-alert-dialog__fieldset-value-item">\n\t\t\t<label>\n\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t<input class="tv-control-checkbox__input" type="checkbox" name="send-sms"{{#actions_sms}} checked{{/actions_sms}}>\n\t\t\t\t\t<span class="tv-control-checkbox__box">${s(4135)}</span>\n\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t</span>\n\t\t\t\t<span class="tv-control-checkbox__label tv-alert-dialog__checkbox-label">${(0,r.t)("Send email-to-SMS")}</span>\n\t\t\t</label>\n\t\t</div>`}function Mt(t,e){return`\n\t\t${t.join("\n")}\n\t\t\n\t\t<div class="tv-alert-dialog__fieldset-wrapper-toggle js-fieldset-wrapper-toggle">\n\t\t\t<div class="tv-alert-dialog__fieldset-wrapper-toggle-arrow">${s(88613)}</div>\n\t\t\t<span class="tv-alert-dialog__fieldset-wrapper-toggle-text tv-alert-dialog__fieldset-wrapper-toggle-text--more">${(0,r.t)("More actions")}</span>\n\t\t\t<span class="tv-alert-dialog__fieldset-wrapper-toggle-text tv-alert-dialog__fieldset-wrapper-toggle-text--less">${(0,r.t)("Fewer actions")}</span>\n\t\t</div>\n\t\t<div class="tv-alert-dialog__fieldset-wrapper js-fieldset-wrapper" style="max-height: 0">\n\t\t\t<div class="js-fieldset-wrapper-container">\n\t\t\t\t${e.join("\n")}\n\t\t\t</div>\n\t\t</div>`}function $t(t,e){t.click(()=>{(0,dt.showSupportDialog)({solutionId:e})})}const Ot=(0,it.isOnMobileAppPage)("any"),Dt={title_wrap:'<div class="tv-alert-dialog__title-wrap">{{title}}</div>',base:`<form novalidate class="js-alert-form">\n\t\t\t<fieldset class="tv-control-fieldset">\n\n\t\t\t\t{{#display_condition}}<div class="js-condition-first-operand-placeholder"></div>\n\t\t\t\t<div class="js-condition-operator-placeholder"></div>\n\t\t\t\t<div class="js-condition-second-operand-placeholder"></div>{{/display_condition}}\n\n\t\t\t\t{{#display_frequency}}\n\t\t\t\t<span class="js-fire-rate-row">\n\t\t\t\t\t<label class="tv-alert-dialog__fieldset-label tv-control-fieldset__label">${(0,
r.t)("Options")}</label>\n\t\t\t\t\t<span class="tv-control-fieldset__value tv-alert-dialog__fieldset-value tv-alert-dialog__fieldset-value--space-bottom">\n\t\t\t\t\t\t<span class="tv-alert-dialog__fieldset-value-item tv-alert-dialog__frequency_control js-fire-rate-input-wrap"></span>\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t\t{{/display_frequency}}\n\n\t\t\t\t<label class="tv-control-fieldset__label tv-control-fieldset__label--size_small">${(0,r.t)("Expiration time")}</label>\n\t\t\t\t<span class="tv-control-fieldset__value tv-alert-dialog__fieldset-value tv-alert-dialog__fieldset-value--group">\n\t\t\t\t<div class="tv-alert-dialog__expiration">\n\t\t\t\t\t<div class="tv-alert-dialog__group-item tv-alert-dialog__group-item--left js-date-container"></div>\n\t\t\t\t\t<div class="tv-alert-dialog__group-item tv-alert-dialog__group-item--right js-time-container"></div>\n\t\t\t\t</div>\n\t\t\t\t\t{{#display_open_ended}}\n\t\t\t\t\t<div class="tv-alert-dialog__fieldset-value-item tv-alert-dialog__fieldset-value-item--open-ended">\n\t\t\t\t\t\t<label>\n\t\t\t\t\t\t\t<span class="tv-control-checkbox">\n\t\t\t\t\t\t\t\t<input class="tv-control-checkbox__input js-inf-exp" type="checkbox"{{#inf_exp}} checked{{/inf_exp}}>\n\t\t\t\t\t\t\t\t<span class="tv-control-checkbox__box">${s(4135)}</span>\n\t\t\t\t\t\t\t\t<span class="tv-control-checkbox__ripple js-ripple"></span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class="tv-control-checkbox__label tv-alert-dialog__checkbox-label">${(0,r.t)("Open-ended",{context:"alert_expiration"})}</span>\n\t\t\t\t\t\t</label>\n\t\t\t\t\t</div>\n\t\t\t\t\t{{/display_open_ended}}\n\t\t\t\t</span>\n\n\t\t\t\t<label class="tv-control-fieldset__label">${(0,r.t)("Alert actions")}</label>\n\t\t\t\t<span class="tv-control-fieldset__value tv-alert-dialog__fieldset-value">\n\t\t\t\t\t{{#is_screener_alert}}\n\t\t\t\t\t${Mt([St(),xt()],[Tt(),It()])}\n\t\t\t\t\t{{/is_screener_alert}}\n\n\t\t\t\t\t{{^is_screener_alert}}\n\t\t\t\t\t\t{{#is_mobile_app}}\n\t\t\t\t\t\t${Mt([yt()],[St(),xt(),kt(),Tt(),It()])}\n\t\t\t\t\t\t{{/is_mobile_app}}\n\n\t\t\t\t\t\t{{^is_mobile_app}}\n\t\t\t\t\t\t${Mt([yt(),St(),xt(),kt()],[Tt(),It()])}\n\t\t\t\t\t\t{{/is_mobile_app}}\n\t\t\t\t\t{{/is_screener_alert}}\n\t\t\t\t</span>\n\n\t\t\t\t{{#display_alert_name}}\n\t\t\t\t<label class="tv-control-fieldset__label tv-control-fieldset__label--size_small">${(0,r.t)("Alert name")}</label>\n\t\t\t\t<span class="tv-control-fieldset__value tv-alert-dialog__fieldset-value">\n\t\t\t\t\t<input type="text" name="alert-name" class="tv-control-input tv-control-input--size_small" value="{{name_value}}">\n\t\t\t\t</span>\n\t\t\t\t{{/display_alert_name}}\n\n\t\t\t\t<span class="js-description-row">\n\t\t\t\t\t<label class="tv-control-fieldset__label">${(0,
r.t)("Message")}</label>\n\t\t\t\t\t<span class="tv-control-fieldset__value tv-alert-dialog__fieldset-value tv-alert-dialog__fieldset-value--no-margin">\n\t\t\t\t\t\t<textarea type="text" name="description" class="tv-control-textarea" rows="{{description_textarea_rows}}">{{description}}</textarea>\n\t\t\t\t\t\t{{#display_placeholders_hint}}\n\t\t\t\t\t\t<span class="tv-alert-dialog__text-message">\n\t\t\t\t\t\t\t${(0,r.t)("You can use special placeholders such as {listOfPlaceholders}, etc.").format({listOfPlaceholders:"&#123;&#123;close&#125;&#125;, &#123;&#123;time&#125;&#125;, &#123;&#123;plot_0&#125;&#125;"})}\n\t\t\t\t\t\t\t${Et("js-placeholders-solution-btn",bt,"tv-alert-dialog__info--inside-text")}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t{{/display_placeholders_hint}}\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</fieldset>\n\t\t</form>`,condition_row:'<label class="tv-alert-dialog__fieldset-label--small tv-control-fieldset__label{{^label}} tv-alert-dialog__fieldset-label--empty{{/label}}">{{#label}}{{label}}{{/label}}{{^label}}&nbsp;{{/label}}</label>\n\t\t<span class="tv-control-fieldset__value tv-alert-dialog__fieldset-value tv-alert-dialog__fieldset-value--group{{#last}} tv-alert-dialog__fieldset-value--space-bottom{{/last}}">\n\t\t\t<div class="tv-alert-dialog__group-item tv-alert-dialog__group-item--left{{#with_labels}} tv-alert-dialog__group-item--right-lbl{{/with_labels}} {{js_left_wrap_class}}" style="width: {{left_width}}"></div>\n\t\t\t<div class="tv-alert-dialog__group-item tv-alert-dialog__group-item--right{{#with_labels}} tv-alert-dialog__group-item--left-lbl tv-alert-dialog__group-item--right-lbl-wide{{/with_labels}} {{js_right_wrap_class}}" style="width: {{right_width}}"></div>\n\t\t</span>',condition_operators_row:'<label class="tv-alert-dialog__fieldset-label--small tv-control-fieldset__label tv-alert-dialog__fieldset-label--empty">&nbsp;</label>\n\t\t\t\t<span class="tv-control-fieldset__value tv-alert-dialog__fieldset-value js-condition-operator-input-wrap">\n\t\t\t\t\t<span class="tv-alert-dialog__select-placeholder">&nbsp;</span>\n\t\t\t\t</span>',select:'<select class="tv-control-select tv-control-select--size_small" name="{{name}}">\n\t\t\t{{#options}}\n\t\t\t\t<option value="{{value}}"{{#selected}} selected{{/selected}}>{{caption}}</option>\n\t\t\t{{/options}}\n\t\t</select>',groupedSelect:'<select class="tv-control-select tv-control-select--size_small" name="{{name}}">\n\t\t\t{{#groups}}\n\t\t\t\t<optgroup label="">\n\t\t\t\t\t{{#.}}\n\t\t\t\t\t\t<option value="{{value}}"{{#selected}} selected{{/selected}}>{{caption}}</option>\n\t\t\t\t\t{{/.}}\n\t\t\t\t</optgroup>\n\t\t\t{{/groups}}\n\t\t</select>',readonly:'<input type="hidden" name="{{name}}" value="{{value}}">{{#caption}}<input type="text" value="{{caption}}" class="tv-control-input tv-control-input--size_small" readonly>{{/caption}}',
select_placeholder_width_hidden_input:'<span class="tv-alert-dialog__select-placeholder">{{#showStrategyHint}}'+Et("js-strategy-solution-btn",Ct,"tv-alert-dialog__info--no-indent")+'{{/showStrategyHint}}{{^showStrategyHint}}&nbsp;{{/showStrategyHint}}<input type="hidden" name="{{name}}" value="{{value}}"></span>',number_input:`<div class="tv-control-number-input tv-control-number-input--size_small js-number-input__wrap {{js_wrap_class}}">\n\t\t\t<input type="text" name="{{name}}" class="tv-alert-dialog__number-input tv-control-input tv-control-input--size_small js-number-input">\n\t\t\t<div class="tv-control-number-input__controls">\n\t\t\t\t<div tabindex="-2" class="tv-control-number-input__wrapper js-input-up">\n\t\t\t\t\t<div class="tv-control-number-input__up">${_t()}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="tv-control-number-input__splinter"></div>\n\t\t\t\t<div tabindex="-2" class="tv-control-number-input__wrapper js-input-down">\n\t\t\t\t\t<div class="tv-control-number-input__down">${_t()}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>`,number_input_label:'<span class="tv-alert-dialog__input-lbl{{#left}} tv-alert-dialog__input-lbl--left{{/left}}{{#right}} tv-alert-dialog__input-lbl--right{{/right}}">{{{text}}}</span>'},Pt=t=>!1===t?Promise.resolve(!1):(k.getBool("alerts.push.showDialog",!0)&&s.e(1662).then(s.bind(s,80208)).then(({showAlertsPushDialog:t})=>t()).then(t=>{k.setValue("alerts.push.showDialog",!t)}),Promise.resolve(!0)),Nt=({$numberInput:t,step:e,min:s,max:n,formatter:i=null,value:o=null,onChange:a=(t=>{}),readonly:r=!1}={})=>{const l=t.find(".js-input-up"),c=t.find(".js-input-down"),d=t.find("input"),h=t=>Math.min(n,Math.max(s,t));let p,u;p=i&&i.format?t=>i.format(t):t=>""+Math.floor(t),u=i&&i.parse?t=>{const e=i.parse(t);return"number"==typeof e?e:e.res?e.value:NaN}:t=>parseInt(t);const _=()=>{const t=u(d.val());isNaN(t)||(o=h(t)),isNaN(o)&&(o=s)},m=(t,e)=>{const s=d.val(),n=p(h(o));(n!==s||e)&&(d.val(n),!0!==t&&d.trigger("change"),a(o))},v=(t=1)=>{r||(o=h(o+e*t),m())};null===o&&_(),l.on("click",()=>v()),c.on("click",()=>v(-1)),d.on("change",()=>{_(),m(!0,!0)}),X.mobiletouch?d.on("input",()=>{_(),a(o)}):d.on("mousewheel",t=>{var e=t.deltaY*(t.deltaFactor/100);t.preventDefault(),v(e)}),d.on("focus",()=>t.addClass("i-active")).on("blur",()=>t.removeClass("i-active")),m()},At=(t,e,s,n,i,o=!1)=>1===e.length?Lt(t,e[0],s,o):Rt(t,e,s,n,i),Rt=(t,e,s,n,i)=>{const o=vt(gt.render(Dt.select,{name:t,options:e}));return s.append(o),o.tvControlSelect({boundingElement:i}),"function"==typeof n&&o.on("change",n),o},jt=(t,e,s,n,i)=>{const o=vt(gt.render(Dt.groupedSelect,{name:t,groups:e}));return s.append(o),o.tvControlSelect({boundingElement:i,showOptgroupSeparators:!0}),"function"==typeof n&&o.on("change",n),o},Lt=(t,e,s,n=!1)=>{const i=vt(gt.render(Dt.readonly,{name:t,value:e.value,caption:n||!e.caption?null:e.caption}));return s.append(i),i};class Wt extends l.TVPopup{constructor(t={}){let e=!1;const s=t.conditionEditor;s&&(delete t.conditionEditor,e=s.hasCondition())
;const n=t.alertState,i=t.readonly,a=t.hasInfiniteExpiration;delete t.alertState,delete t.readonly,delete t.hasInfiniteExpiration;const l=(d=n.soundParams.name,c.availableSounds.filter(t=>t.soundForAlerts).map(t=>new p(t,d===t.path)));var d;const h=function(t){const e=[{value:"0",caption:(0,r.t)("Once")},{value:"5",caption:(0,r.t)("5 seconds")},{value:"10",caption:(0,r.t)("10 seconds")},{value:"30",caption:(0,r.t)("30 seconds")},{value:"60",caption:(0,r.t)("Minute")}];return t&&e.forEach(e=>{e.value===t&&(e.selected=!0)}),e}(String((0,at.ensureDurationInSeconds)(n.soundParams.duration)));var u;i||((u=n).notifyWith.email&&!user.has_active_email&&(u.notifyWith.email=!1),u.notifyWith.sms&&!user.sms_email&&(u.notifyWith.sms=!1));const _=t.alertCategory===nt.AlertCategory.Price,m=t.alertCategory===nt.AlertCategory.Screener;t.content=gt.render(Dt.base,{is_mobile_app:Ot,is_screener_alert:m,display_condition:e,display_frequency:e&&Boolean(n.frequency),display_open_ended:a,display_placeholders_hint:_,display_alert_name:_,inf_exp:n.noExpiration,actions_popup:n.notifyWith.popup,actions_sound:n.notifyWith.sound,actions_email:n.notifyWith.email,actions_sms:n.notifyWith.sms,actions_push:n.notifyWith.push,sounds:l,sound_durations:h,description:n.message,description_textarea_rows:5,webhook_url_active:null!==n.webhookUrl,webhook_url_value:n.webhookUrl||"",name_value:n.name}),t.actions=[],i||t.actions.push({name:"submit",type:"primary",text:t.submitCaption||(0,r.t)("Create",{context:"alert"}),key:13,addClass:"js-submit-button"}),t.actions.push({name:"cancel",type:"default",text:(0,r.t)("Cancel"),addClass:"js-cancel-button"}),!i&&t.enableDeleteButton&&(t.actions.push({name:"delete",type:"danger",text:t.deleteCaption||(0,r.t)("Delete"),addClass:"tv-alert-dialog__delete-button js-delete-button"}),delete t.enableDeleteButton),t.title&&(t.title=gt.render(Dt.title_wrap,{title:t.title})),super(t),this.stateChange=new(y()),this._alertState=n,this._sounds=l,this._soundDurations=h,this._readonly=i,this._setupExpiration(),this._setupAction("popup","show-popup"),this._setupAction("sound","play-sound");const v=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;this._setupAction("email","send-email",t=>(({newValue:t,paramName:e,paramExistsFlagName:s,dialogTitle:n="",fieldLabel:i="",regExp:o=null,error:a=""})=>!1===t?Promise.resolve(t):user[e]||user[s]?Promise.resolve(!0):new w({paramName:e,dialogTitle:n,fieldLabel:i,maxLength:300,validateRegExp:o,error:a,modal:!0}).show().then(()=>!0))({newValue:t,paramName:"email",paramExistsFlagName:"has_active_email",dialogTitle:(0,r.t)("Set email"),fieldLabel:(0,r.t)("Please, enter your email"),regExp:v,error:(0,r.t)("Enter a valid email address")})),this._setupAction("sms","send-sms",t=>{return(e=t)&&!window.user.sms_email?(0,pt.createSMSEmailDialog)({featureSource:"alert_sms_to_email"}).then(t=>(t.open(),new Promise(e=>{t.on("verification:success",()=>e(!0)),t.on("verification:cancel",()=>e(!1))
}))):Promise.resolve(e);var e}),this._setupAction("push","send-push",t=>Pt(t)),this._setupSoundControls(),this._setupWebhookControls(),this._setUpAlertName(),this._setupActionsWrapperToggle(),this._setupDescription(),this.$content.find("textarea").on("keydown",t=>t.stopPropagation()),e&&this._setupCondition(s);const g=this.$actions.find(".js-submit-button");g&&g.tvButtonLoader();const f=this.$actions.find(".js-delete-button");f&&f.size()&&f.tvButtonLoader();const b=this.$actions.find(".js-cancel-button");this.on("action:submit",()=>{if(this.isLoading())return;const{notifyWith:t}=this.getAlertState();for(const e in t)t[e]&&(0,rt.trackEvent)("alert","notification",e);this._disableTimeoutId=setTimeout(()=>this._setInputsDisabledState(!0),300),g.tvButtonLoader("start"),b.addClass("i-disabled")}).on("action:delete",()=>{this.isLoading()||(this._disableTimeoutId=setTimeout(()=>this._setInputsDisabledState(!0),300),f.tvButtonLoader("start"),b.addClass("i-disabled"))}).on("action:cancel",()=>{b.is(".i-disabled")||this.close()}),i&&this._setInputsReadonlyState();const C=new ot.default((0,o.default)(()=>{this.calcHeight(),this.fixPos()},100));C.observe(this.$scrollWrapInner[0]),this.on("destroy",()=>{C.disconnect()})}restoreButtons(){this.$actions.find(".js-submit-button").tvButtonLoader("stop"),this.$actions.find(".js-cancel-button").removeClass("i-disabled");const t=this.$actions.find(".js-delete-button");t.size()&&t.tvButtonLoader("stop"),clearTimeout(this._disableTimeoutId),this._setInputsDisabledState(!1)}getAlertState(){return this._alertState}setAlertState(t){this._alertState=t}isLoading(){if(this.$actions.find(".js-submit-button").tvButtonLoader("get","loading"))return!0;const t=this.$actions.find(".js-delete-button");return!(!t.size()||!t.tvButtonLoader("get","loading"))}error(t,e){let s=null;if(e){if("expirationDate"===e)return this.$scrollWrap.is(".i-scrollable")?void super.error(t):(this._dateTimeInput.setErrors([t]),void this._dateTimeInput.once("pick",()=>{this._dateTimeInput.removeErrors([t])}));s=this.$content.find(`[name="${e}"]`)}s&&s.size()?(s.is(".js-number-input")&&(s=s.closest(".js-number-input__wrap")),s.tvControlError("add",{id:t,message:t,maxWidth:210}).tvControlError("render").one("change input",e=>{s.tvControlError("remove",{id:t}).tvControlError("render")})):super.error(t)}_setInputsReadonlyState(){this.$content.find("select").tvControlSelect("setReadonly",!0),this.$content.find("input, textarea").toArray().forEach(t=>{const e=vt(t),s=e.attr("type");"text"===s||"url"===s?e.prop("readonly",!0):"checkbox"===s&&e.prop("disabled",!0)})}_setInputsDisabledState(t){this._dateTimeInput.setDisabled(t),this.$content.find("select").tvControlSelect(t?"disable":"enable"),this.$content.find("input, textarea").toArray().forEach(e=>{const s=vt(e),n=s.attr("type");"text"!==n&&"checkbox"!==n||(s.prop("disabled",t),s.is(".js-number-input")&&s.closest(".js-number-input__wrap").toggleClass("i-disabled",t))})}_onConditionMainSeriesChange(){
const t=this._$mainSeriesInput.val(),e=this._conditionEditor.getMainSeriesSelectOptions().filter(e=>e.value===t).map(t=>t.actualSymbol)[0];this._conditionEditor.updateMainSeriesIdForAlert(t,e)&&this._setupConditionOperators(),this._updateConditionFirstOperand(),this._onConditionChange()}_setupConditionMainSeries(){this._conditionPlaceholders.$first.html(gt.render(Dt.condition_row,{label:(0,r.t)("Condition"),js_left_wrap_class:"js-main-series-select-wrap",js_right_wrap_class:"js-main-series-plot-index-select-wrap",left_width:"50%",right_width:"50%"})),this._$mainSeriesInput=At("main-series",this._conditionEditor.getMainSeriesSelectOptions(),this._conditionPlaceholders.$first.find(".js-main-series-select-wrap"),()=>this._onConditionMainSeriesChange(),this.$scrollWrap.get(0)),this._onConditionMainSeriesChange()}_onConditionOperatorChange(){const t=this._$operatorInput.val();this._conditionEditor.updateOperator(t)&&this._updateConditionFirstOperand(),this._onConditionChange()}_setupConditionOperators(){const t=this._conditionEditor.getOperatorOptionGroups(),e=1===t.length&&1===t[0].length?t[0][0]:null;if(e&&!e.caption)return void this._conditionPlaceholders.$operator.empty();this._conditionPlaceholders.$operator.html(Dt.condition_operators_row);const s=this._conditionPlaceholders.$operator.find(".js-condition-operator-input-wrap");s.empty(),this._$operatorInput=((t,e,s,n,i,o=!1)=>1===e.length&&1===e[0].length?Lt(t,e[0][0],s,o):jt(t,e,s,n,i))("condition-id",t,s,()=>this._onConditionOperatorChange(),this.$scrollWrap.get(0))}_setupSecondOperandMoving(t,e,s){const n=vt(gt.render(Dt.condition_row,{js_left_wrap_class:"js-second-operand-move-value-wrap",js_right_wrap_class:"js-second-operand-move-period-wrap",left_width:"45%",right_width:"55%",last:!0,with_labels:!0})),i=vt(gt.render(Dt.number_input,{js_wrap_class:"js-move-value-input-wrap",name:t.name})),o=vt(gt.render(Dt.number_input_label,{right:!0,text:s})),a=vt(gt.render(Dt.number_input_label,{left:!0,text:(0,r.t)("in")})),l=vt(gt.render(Dt.number_input,{js_wrap_class:"js-period-input-wrap",name:e.name})),c=vt(gt.render(Dt.number_input_label,{right:!0,text:(0,r.t)("bars")}));n.find(".js-second-operand-move-value-wrap").append(i).append(o),n.find(".js-second-operand-move-period-wrap").append(a).append(l).append(c),this._conditionPlaceholders.$second.append(n);Nt({$numberInput:i,value:t.value,step:t.step,min:t.min,max:t.max,formatter:t.formatter,onChange:t=>{this._conditionEditor.updateMovingValue(t),this._onConditionChange()},readonly:this._readonly}),Nt({$numberInput:l,value:e.value,step:e.step,min:e.min,max:e.max,onChange:t=>{this._conditionEditor.updateMovingPeriod(t),this._onConditionChange()},readonly:this._readonly})}_onSecondOperandSeriesChange(t,e){const s=e.val();this._conditionEditor.updateSecondOperandSeriesIdForAlert(s,t);const n=this._conditionEditor.getSecondOperandSeriesValueType(t),i=this._conditionPlaceholders.$second.find(".js-second-operand-value-wrap__"+t.name);i.empty();const o=t.valueName,a=e=>{this._conditionEditor.updateSecondOperandValue(e,t),
this._onConditionChange()};if("value"===n){const e="js-second-operand-value__"+o,s=vt(gt.render(Dt.number_input,{js_wrap_class:e,name:o}));i.append(s);const n=this._conditionEditor.getSecondOperandSeriesValueOptions(t);Nt({$numberInput:s,value:n.value,step:n.step||1,min:n.min||0,max:n.max||1/0,formatter:n.formatter,onChange:a,readonly:this._readonly}),a(n.value)}else if("plotIndex"===n){const e=this._conditionEditor.getSecondOperandPlotIndexOptions(s,t),n=At(o,e,i,()=>{a(n.val()),this._updateConditionSecondOperand()},this.$scrollWrap.get(0),this._conditionEditor.getSecondOperandPlots(t).length<=1);a(n.val())}}_setupSecondOperandSeries(t,e){const s="js-second-operand-select-wrap__"+t.name,n="js-second-operand-value-wrap__"+t.name,i=vt(gt.render(Dt.condition_row,{label:t.label,js_left_wrap_class:s,js_right_wrap_class:n,left_width:"50%",right_width:"50%",last:e}));this._conditionPlaceholders.$second.append(i);const o=this._conditionPlaceholders.$second.find("."+s),a=t.options;let r;const l=()=>{o.empty(),r=At(t.name,a,o,()=>{this._onSecondOperandSeriesChange(t,r),(()=>{const t=r.val(),e=a.length;for(let s=e-1;s>=0;--s){const e=a[s];e.value!==t&&e.removeOnChange&&a.splice(s,1)}return e!==a.length})()&&l(),this._updateConditionSecondOperand()},this.$scrollWrap.get(0))};l(),this._onSecondOperandSeriesChange(t,r)}_setupConditionSecondOperandRow(t,e){t.isMoving?this._setupSecondOperandMoving(t.value,t.period,t.unit):this._setupSecondOperandSeries(t,e)}_updateConditionFirstOperand(){const t=this._conditionEditor.getMainSeriesPlotIndexOptions(),e=this._conditionPlaceholders.$first.find(".js-main-series-plot-index-select-wrap");if(Array.isArray(t)&&t.length){e.empty();const s=()=>{this._conditionEditor.updateMainSeriesPlotIndex(n.val()),this._updateConditionSecondOperand(),this._onConditionChange()},n=At("main-series-plot-index",t,e,s,this.$scrollWrap.get(0),!0);s()}else{e.html(gt.render(Dt.select_placeholder_width_hidden_input,{name:"main-series-plot-index",value:"0",showStrategyHint:this._conditionEditor.isStrategy()&&!this._conditionEditor.isSeriesWithAlertFunction()}));$t(e.find(".js-strategy-solution-btn"),ct.solutionIds.ALERT_ON_STRATEGY),this._updateConditionSecondOperand()}}_updateConditionSecondOperand(){const t=this._conditionEditor.getSecondOperandInputs();if(Array.isArray(t)){this._conditionPlaceholders.$second.empty();for(let e=0;e<t.length;++e)this._setupConditionSecondOperandRow(t[e],e===t.length-1)}else this.error((0,r.t)("Unable to create dialog. Please contact support"))}_updateConditionDescription(){const t=this._conditionEditor,e=t.isOnlyAlertFunctionCondition();if(this.$content.find(".js-description-row").toggleClass("i-hidden",e),this._isCustomDescription)return;const s=t.getDescription();this.$content.find('[name="description"]').val(s),this._alertState.message=s,this.stateChange.fire([{name:"message"}])}_updateConditionName(){if(this._isCustomName)return;const t=this._conditionEditor.getName();this.$content.find('[name="alert-name"]').val(t),this._alertState.name=t,this.stateChange.fire([{name:"name"}])}
_updateConditionHint(){const t=this.$content.find(".js-condition-operator-input-wrap"),e=this._conditionEditor;if(e.isSeriesWithAlertFunction()&&(e.isOnlyAlertFunctionCondition()||e.isStrategy())){const e=vt(Et("js-alert-function-solution-btn",wt,"tv-alert-dialog__info--outstanding"));t.append(e),t.addClass("tv-alert-dialog__fieldset-value--with-hint"),$t(e,ct.solutionIds.ALERT_FUNCTION)}else t.find(".js-alert-function-solution-btn").remove(),t.removeClass("tv-alert-dialog__fieldset-value--with-hint")}_onConditionChangeImpl(){this._updateFireRate(),this._updateConditionDescription(),this._updateConditionName(),this._updateConditionHint()}_setupCondition(t){const e=this.$content.find(".js-condition-first-operand-placeholder"),s=this.$content.find(".js-condition-operator-placeholder"),n=this.$content.find(".js-condition-second-operand-placeholder");if(!t.hasCondition())return e.remove(),s.remove(),void n.remove();this._conditionPlaceholders={$first:e,$operator:s,$second:n},this._conditionEditor=t,this._onConditionChange=(0,a.default)(()=>this._onConditionChangeImpl(),1),this._setupConditionOperators(),this._setupConditionMainSeries(),this._conditionEditor.isDescriptionSetByUser()?this._isCustomDescription=!0:this.$content.find('[name="description"]').one("input",()=>{this._isCustomDescription=!0}),this._conditionEditor.isNameSetByUser()?this._isCustomName=!0:this.$content.find('[name="alert-name"]').one("input",()=>{this._isCustomName=!0})}_updateFireRate(){const t=t=>{const{frequency:e,autoDeactivation:s}=(n=t,JSON.parse(n));var n;this._alertState.autoDeactivation=s,this._alertState.frequency=e,this.stateChange.fire([{name:"frequency"},{name:"autoDeactivation"}])},e=this._conditionEditor?this._conditionEditor.getFireRateOptions():[];e.forEach(t=>{t.value=zt(t.value.autoDeactivation,t.value.frequency)});let s=zt(this._alertState.autoDeactivation,this._alertState.frequency);!e.some(t=>t.value===s)&&e.length>0&&(s=e[0].value);const n=this.$content.find(".js-fire-rate-row");if(1<e.length){n.removeClass("i-hidden");const i=this.$content.find(".js-fire-rate-input-wrap");i.empty(),function(t,e,s,n,i=!1,o=2){if(!t||0===t.length)return;t=t.slice(0);const a=Math.ceil(t.length/o);for(let e=0;e<a;e++){const s=e*o;r(t.slice(s,s+o),e)}function r(t,o){const a=vt(`<div class="tv-buttons-group tv-buttons-group--primary_ghost tv-buttons-group--size-small js-buttons-group${i?" tv-buttons-group--readonly":""}">\n\t\t\t</div>`);if(s.append(a),t.forEach(t=>{const s=vt(`<div class="apply-common-tooltip common-tooltip-${o%2?"below":"above"} common-tooltip-narrow tv-buttons-group__option js-buttons-group-option" title="${t.title}">\n\t\t\t\t<div class="tv-alert-dialog__button-caption" data-title="${t.caption}">${t.caption}</div>\n\t\t\t</div>`);t.disabled?s.addClass("i-disabled"):t.value===e&&s.addClass("i-active"),a.append(s)}),!i){a.find(".js-buttons-group-option").click(e=>{const i=vt(e.target).closest(".js-buttons-group-option");if(!i.hasClass("i-disabled")){s.find(".js-buttons-group-option").removeClass("i-active"),i.addClass("i-active")
;const e=t[i.index()];n&&e&&n(e.value)}})}}a>1&&s.find(".js-buttons-group").addClass("tv-buttons-group--table-like")}(e,s,i,t,this._readonly)}else n.addClass("i-hidden");t(s)}_setupExpiration(){const t=this._alertState.expirationDate;this._dateTimeInput=new et({min:this.options.minExpire instanceof Date?this.options.minExpire:new Date,max:this.options.maxExpire instanceof Date?this.options.maxExpire:void 0,value:t,dateContainer:this.$content.find(".js-date-container")[0],timeContainer:this.$content.find(".js-time-container")[0],noRangeValidation:!0,size:"small",dateName:"alert_exp_date",timeName:"alert_exp_time",readonly:this._readonly,className:"tv-alert-dialog__date-time-input container"}),this._dateTimeInput.on("change",t=>{this._alertState.expirationDate=t,this.stateChange.fire([{name:"expirationDate"}])}),this._dateTimeInput.on("pick",t=>{this.toggleAction("submit",!!t)}),this.on("beforeClose",()=>{this._dateTimeInput.destroy()});const e=this.$content.find(".js-inf-exp").get(0);if(e){function s(t){this._alertState.noExpiration=t,this.stateChange.fire([{name:"noExpiration"}]),e.checked=t,this._dateTimeInput.setDisabled(t)}e.addEventListener("click",()=>{(0,st.trackGoProFeature)("alertsNoExpiration"),e.checked=!e.checked,e.checked?s.call(this,!1):(0,ht.runOrGoPro)(()=>{s.call(this,!0)},S.ProductFeatures.ALERTS_NO_EXPIRATION,{feature:"alertsNoExpiration"})}),e.checked&&this._dateTimeInput.setDisabled(!0)}}_setupAction(t,e,s){const n=this.$content.find(`[name="${e}"]`);n.on("click",e=>setTimeout(()=>{if("function"==typeof s){const e=n.prop("checked");n.prop("checked",!e),s(e).then(e=>{n.prop("checked",e),e!==this._alertState.notifyWith[t]&&(this._alertState.notifyWith[t]=e,this.stateChange.fire([{name:["notifyWith",t]}]))})}else this._alertState.notifyWith[t]=n.prop("checked"),this.stateChange.fire([{name:["notifyWith",t]}])},0))}_setupWebhookControls(){const t=this.$content.find('input[name="webhook-toggle"]'),e=this.$content.find('input[name="webhook-url"]'),s=this.$content.find(".js-webhook-input-wrap"),n=this.$content.find(".js-webhook-solution-btn"),i=t=>{s.toggleClass("tv-alert-dialog__fieldset-value-item--collapsed",t)},o=t=>{n.toggleClass("i-hidden",!t)},a=()=>{const s=t.prop("checked");if(s&&!(0,T.enabled)(S.ProductFeatures.ALERTS_WEBHOOK))return(0,x.showGoProAlertsWebhookDialog)(),void t.prop("checked",!1);i(!s),o(s),r(s?e.val().trim():null)},r=t=>{this._alertState.webhookUrl=t,this.stateChange.fire([{name:"webhookUrl"}])},l=t.prop("checked");i(!l),o(l),t.on("change",()=>setTimeout(a,0)),e.on("change input",()=>{r(e.val().trim())}),$t(n,ct.solutionIds.ALERT_WEBHOOK)}_setUpAlertName(){const t=(0,r.t)("Alert name can't be longer than {charCount} character.",{plural:"Alert name can't be longer than {charCount} characters.",count:300}).format({charCount:300});this._setupLimitInputHandler(this.$content.find('input[name="alert-name"]'),300,"name",t)}_setupSoundControls(){
const t=this.$content.find('input[name="play-sound"]'),e=this.$content.find(".js-sound-settings"),n=()=>e.toggleClass("tv-alert-dialog__fieldset-value-item--collapsed",!t.prop("checked"));n(),t.on("change",()=>setTimeout(n,0));const i=this.$content.find('select[name="sound-name"]'),o=this.$content.find('select[name="sound-duration"]');i.tvControlSelect(),o.tvControlSelect();const a=i.data("tvControlSelect"),r=()=>this._sounds.forEach(t=>{const e=a.items.find(e=>e.value===t.value).$el;if(e.is(".js-has-sound-player"))return;const n=vt(`<span class="tv-alert-dialog__sound-toggle">${s(73362)}</span>`).on("click",e=>{e.stopPropagation(),t.toggle()}).appendTo(e);t.state.subscribe(t=>n.toggleClass("tv-alert-dialog__sound-toggle--playing",t)),e.addClass("tv-alert-dialog__sound-select_option js-has-sound-player")});i.data("tvControlSelect").$el.on("beforeOpenMenu",()=>r()),i.on("change",t=>{const e=i.val();this._alertState.soundParams.name!==e&&(this._alertState.soundParams.name=e,this.stateChange.fire([{name:["soundParams","name"]}]))}),o.on("change",t=>{const e=Number(o.val());this._alertState.soundParams.duration!==e&&(this._alertState.soundParams.duration=e,this.stateChange.fire([{name:["soundParams","duration"]}]))})}_setupActionsWrapperToggle(){const t=mt.dur/1.5;let e=!1;const s=this.$content.find(".js-fieldset-wrapper"),n=this.$content.find(".js-fieldset-wrapper-container"),i=this.$content.find(".js-fieldset-wrapper-toggle").on("click",()=>{e||(e=!0,(0,lt.lazyVelocity)().then(()=>{const o=i.is(".i-active");i.toggleClass("i-active"),o&&s.css({maxHeight:s.height(),overflow:""}),s.velocity({"max-height":o?0:n.height()},{duration:t,complete(){o||s.css({maxHeight:"",overflow:"visible"}),e=!1}}),s.toggleClass("i-active")}))})}_setupDescription(){const t=(0,r.t)("Your message can't be longer than {charCount} character.",{plural:"Your message can't be longer than {charCount} characters.",count:4e3}).format({charCount:4e3});this._setupLimitInputHandler(this.$content.find('[name="description"]'),4e3,"message",t),$t(this.$content.find(".js-placeholders-solution-btn"),ct.solutionIds.ALERT_DESCRIPTION_PLACEHOLDER)}_setupLimitInputHandler(t,e,s,n){t.tvControlError("render"),t.on("change input",()=>{let i=t.val().trim();i.length>e?(i=i.slice(0,e),t.val(i),t.tvControlError("add",{id:n,message:n}).tvControlError("render")):t.tvControlError("hasErrors")&&t.tvControlError("remove",{id:n}).tvControlError("render"),this._alertState[s]!==i&&(this._alertState[s]=i,this.stateChange.fire([{name:s}]))})}}function zt(t,e){return JSON.stringify({autoDeactivation:t,frequency:e})}},77544:(t,e,s)=>{"use strict";s.d(e,{TVPopup:()=>u});var n=s(68587),i=s(52150),o=s(51536),a=s(30812),r=s(35190),l=s(25760),c=s(23127);const d=c("body"),h=c(window),p={closeOnClickAtOtherDialogs:!0,draggable:!0,scrollWrap:'<div class="tv-dialog__scroll-wrap">',scrollWrapInner:'<div class="tv-dialog__scroll-wrap-inner">',withScroll:!0};class u extends o.TVDialogAbstract{constructor(t={}){super({...p,...t}),
this.$scrollWrap=this.$content.hasClass("js-dialog__scroll-wrap")?this.$content:this.$content.find(".js-dialog__scroll-wrap"),this.$scrollWrap.length?this.$scrollWrapInner=this.$scrollWrap.children().first():(this.$scrollWrap=this.$content.wrap(c(this.options.scrollWrap)).parent(),this.$scrollWrapInner=this.$content.wrap(c(this.options.scrollWrapInner)).parent()),this.$actions&&this.$scrollWrap.addClass("i-with-actions"),this.options.withScroll&&(this.scroll=new a.SidebarCustomScroll(this.$scrollWrap[0],this.$scrollWrapInner[0]),this.scroll.scrolled.subscribe(null,()=>this.trigger("scroll"))),this.$scrollWrap.css("overflow","");const e=this.getDialogId();this.$el.addClass("tv-dialog--popup i-closed i-hidden"),this.options.width&&this.$el.css({width:"calc(100% - 20px)","max-width":this.options.width}),this._hotkeys=l.createGroup({desc:"Dialog",isDisabled:()=>!this.opened,modal:!1}),this.options.closeOnEsc&&this._hotkeys.add({desc:"Close",hotkey:27,handler:()=>this.close()}),this.$el.on("mousedown touchstart",this.toTop.bind(this)),this.options.closeOnOutsideClick&&(this._preventClick=!0,this.on("beforeOpen",()=>{setTimeout(()=>{this.opened&&(c(document).on("mousedown touchstart",()=>{this._preventClick=!1}),c(document).on("click.tv-popup-"+e,t=>{if(this._preventClick)return;const e=c(t.target).closest(".js-dialog");(this.options.closeOnClickAtOtherDialogs||0===e.length)&&this.isEventOut(t)&&this.close()}))},0)}),this.on("beforeClose",()=>c(document).off("click.tv-popup-"+e))),this.on("change:zIndex",()=>{this.$el.css("z-index",this.zIndex)}),this.on("destroy",()=>{const t=()=>{this.$el.remove(),this._hotkeys.destroy()};this.opened?(this.close(),setTimeout(t,n.dur/2)):t()})}open(){return this.opened||(this.opened=!0,this.trigger("beforeOpen",[this]),this.$el.appendTo(this.$wrap).removeClass("i-hidden").css((()=>{this.calcHeight();const t=h.height(),e=h.width(),s=this.$el.height(),n=this.$el.width();let i=this.options.position;return i||(i={top:t/2-s/2,left:e/2-n/2}),i.top>t-s&&(i.top=t-s),i.left>e-n&&(i.left=e-n),i.top<10&&(i.top=10),i.left<10&&(i.left=10),i})()),this.focus(),this.toTop(),this._doOpenAnimation().then(()=>{this.opened&&(this.$el.removeClass("i-closed"),this.options.draggable&&((0,r.lazyJqueryUI)(this.$el).draggable({handle:".js-dialog__drag",cancel:"input, textarea, button, select, option, .js-dialog__no-drag, .js-dialog__close",containment:"window",cursor:"-webkit-grabbing",stop:(t,e)=>{this.trigger("dragEnd",[this])}}),this.$el.find(".js-dialog__drag").addClass("tv-dialog__grab")),this.trigger("afterOpen",[this]))}),h.on("resize.tv-popup-"+this.getDialogId(),()=>{this.calcHeight(),this.fixPos()})),this}close(){if(this.opened)return this.trigger("beforeClose",[this]),this.$el.addClass("i-closed"),this.opened=!1,this._doCloseAnimation().then(()=>{this.opened||((0,r.lazyJqueryUI)(this.$el).draggable("instance").then(t=>{t&&t.destroy()}),this.$el.addClass("i-hidden").detach(),d.css("cursor","auto"),this.trigger("afterClose",[this]),this.options.destroyOnClose&&this.destroy())}),
h.off("resize.tv-popup-"+this.getDialogId()),this}hide(){this.$el.addClass("i-hidden")}show(){this.$el.removeClass("i-hidden")}fixPos(){const t=this.$el[0].getBoundingClientRect(),e={};t.bottom>i.mediaState.height-10&&(e.top=i.mediaState.height-10-t.height,e.top<10&&(e.top=10)),t.right>i.mediaState.width-10&&(e.left=i.mediaState.width-10-t.width,e.left<10&&(e.left=10)),(e.top||e.left)&&this.$el.css(e)}calcHeight(){const t=this.$el[0].getBoundingClientRect(),e=this.$scrollWrapInner[0].getBoundingClientRect(),s=this.$scrollWrap[0].getBoundingClientRect();let n=this.options.height&&this.options.height<i.mediaState.height-20?this.options.height:i.mediaState.height-20;this.$scrollWrap.css({height:""}).removeClass("i-scrollable");const o=this.$el[0].getBoundingClientRect();(this.options.height||o.height>n)&&(n-=t.height-s.height,n<60&&(n=60),this.$scrollWrap.css({height:n})),this.options.withScroll&&this.scroll.resize();const a=n<e.height;a||this.$scrollWrapInner.css("top",0),this.$scrollWrap.toggleClass("i-scrollable",a),this.$actions&&this.$actions.toggleClass("tv-dialog__section--actions_with-border",a)}updateScroll(){this.scroll&&(this.scroll.updateScroll(),this.scroll.updateScrollBar())}scrollToStart(){this.scroll&&this.scroll.scrollToStart()}_doOpenAnimation(){return Promise.resolve()}_doCloseAnimation(){return Promise.resolve()}}},30152:(t,e,s)=>{"use strict";s.d(e,{showSupportDialog:()=>n});s(51872);function n(t){return Promise.all([s.e(9685),s.e(5514),s.e(8463),s.e(9289),s.e(509),s.e(3118),s.e(5998),s.e(8844),s.e(1253),s.e(8247),s.e(9297),s.e(9255),s.e(3812),s.e(5376),s.e(1536),s.e(5423),s.e(9957),s.e(7274)]).then(s.bind(s,89053)).then(e=>new e.SupportDialog(t).open())}},78599:(t,e,s)=>{"use strict";async function n(t){return(await Promise.all([s.e(8463),s.e(509),s.e(3118),s.e(5998),s.e(3848),s.e(8844),s.e(9410),s.e(5113),s.e(9565),s.e(8138),s.e(3014),s.e(1536),s.e(9040),s.e(8606)]).then(s.bind(s,44279))).createPhoneDialog(t)}async function i(t){return(await Promise.all([s.e(8463),s.e(509),s.e(3118),s.e(5998),s.e(3848),s.e(8844),s.e(9410),s.e(5113),s.e(9565),s.e(8138),s.e(3014),s.e(1536),s.e(9040),s.e(8606)]).then(s.bind(s,44279))).createEmailDialog(t)}s.d(e,{createPhoneDialog:()=>n,createSMSEmailDialog:()=>i})},48743:(t,e,s)=>{"use strict";s.d(e,{lazyVelocity:()=>i});s(23127);var n=s(23127);async function i(){await s.e(2112).then(s.t.bind(s,37356,23))}n.fn.velocity=function(...t){return i().then(()=>{n.fn.velocity.apply(this,t)}),this}},39640:(t,e,s)=>{"use strict";function n(t,e,s,n,i){function o(i){if(t>i.timeStamp)return;const o=i.target;void 0!==s&&null!==e&&null!==o&&o.ownerDocument===n&&(e.contains(o)||s(i))}return i.click&&n.addEventListener("click",o,!1),i.mouseDown&&n.addEventListener("mousedown",o,!1),i.touchEnd&&n.addEventListener("touchend",o,!1),i.touchStart&&n.addEventListener("touchstart",o,!1),()=>{n.removeEventListener("click",o,!1),n.removeEventListener("mousedown",o,!1),n.removeEventListener("touchend",o,!1),n.removeEventListener("touchstart",o,!1)}}s.d(e,{addOutsideEventListener:()=>n})},
74664:(t,e,s)=>{"use strict";s.d(e,{breakpoints:()=>n,mobileFirstBreakpoints:()=>i,mobileFirstLegacyBreakpoints:()=>o});const n={desktop:1/0,desktopHd:1919,phone:767,"phone-vertical":479,tablet:1019},i={base:0,"media-mf-phone-vertical":320,"media-mf-phone-landscape":568,"media-mf-tablet-vertical":768,"media-mf-tablet-landscape":1024,"media-mf-laptop":1280,"media-mf-desktop-medium":1440,"media-mf-desktop-large":1920,"media-mf-desktop-extra-large":2560},o={"media-mf-legacy-phone-vertical":330,"media-mf-legacy-phone":480,"media-mf-legacy-notebook":1020,"media-mf-legacy-desktop-medium":1480,"media-mf-legacy-desktop":1531}},68722:(t,e,s)=>{"use strict";s.d(e,{getScrollbarWidth:()=>n,matchMediaMinMax:()=>i,setStyle:()=>o,getCSSProperty:()=>a,getCSSPropertyNumericValue:()=>r});const n=(()=>{let t;return()=>{var e;if(void 0===t){const s=document.createElement("div"),n=s.style;n.visibility="hidden",n.width="100px",n.msOverflowStyle="scrollbar",document.body.appendChild(s);const i=s.offsetWidth;s.style.overflow="scroll";const o=document.createElement("div");o.style.width="100%",s.appendChild(o);const a=o.offsetWidth;null===(e=s.parentNode)||void 0===e||e.removeChild(s),t=i-a}return t}})();function i(t,e){return e===1/0?window.matchMedia(`(min-width: ${t}px)`):window.matchMedia(`(min-width: ${t}px) and (max-width: ${e}px)`)}function o(t,e,s){null!==t&&t.style.setProperty(e,s)}function a(t,e){return getComputedStyle(t,null).getPropertyValue(e)}function r(t,e){return parseInt(a(t,e))}},52150:(t,e,s)=>{"use strict";s.d(e,{mediaState:()=>c});var n=s(85459),i=s.n(n),o=s(69677),a=s(74664),r=s(68722);class l extends(i()){constructor(){super(),this.width=0,this.height=0,this.device=null,this.breakpoints=a.breakpoints,this._checkDevice(),window.addEventListener("resize",this._checkDevice),Object.entries(a.breakpoints).sort(([t,e],[s,n])=>e-n).forEach(([t,e],s,n)=>{let i;if(0!==s){const[,t]=n[s-1];i=t+1}else i=0;const o=(0,r.matchMediaMinMax)(i,e);o.matches&&this._setNewDevice(t),o.addListener(e=>{e.matches&&(this._checkDevice(),this._setNewDevice(t))})}),(0,o.whenDocumentReady)(this._checkDevice.bind(this)),this.isPhoneSizeDevice.bind(this)}isPhoneSizeDevice(){return"phone"===this.device||"phone-vertical"===this.device}_checkDevice(){this.width=window.innerWidth,this.height=window.innerHeight}_setNewDevice(t){const e=this.device;this.device=t,this.trigger("changeDevice",[t,e])}}const c=new l},58095:(t,e,s)=>{"use strict";s.d(e,{useOutsideEvent:()=>o});var n=s(59496),i=s(39640);function o(t){const{click:e,mouseDown:s,touchEnd:o,touchStart:a,handler:r,reference:l,ownerDocument:c=document}=t,d=(0,n.useRef)(null),h=(0,n.useRef)(new CustomEvent("timestamp").timeStamp);return(0,n.useLayoutEffect)(()=>{const t={click:e,mouseDown:s,touchEnd:o,touchStart:a},n=l?l.current:d.current;return(0,i.addOutsideEventListener)(h.current,n,r,c,t)},[e,s,o,a,r]),l||d}},76594:(t,e,s)=>{"use strict";s.d(e,{OutsideEvent:()=>i});var n=s(58095);function i(t){const{children:e,...s}=t;return e((0,n.useOutsideEvent)(s))}},88216:(t,e,s)=>{"use strict";s.d(e,{
OverlapManager:()=>o,getRootOverlapManager:()=>r});var n=s(88537);class i{constructor(){this._storage=[]}add(t){this._storage.push(t)}remove(t){this._storage=this._storage.filter(e=>t!==e)}has(t){return this._storage.includes(t)}getItems(){return this._storage}}class o{constructor(t=document){this._storage=new i,this._windows=new Map,this._index=0,this._document=t,this._container=t.createDocumentFragment()}setContainer(t){const e=this._container,s=null===t?this._document.createDocumentFragment():t;!function(t,e){Array.from(t.childNodes).forEach(t=>{t.nodeType===Node.ELEMENT_NODE&&e.appendChild(t)})}(e,s),this._container=s}registerWindow(t){this._storage.has(t)||this._storage.add(t)}ensureWindow(t,e={position:"fixed",direction:"normal"}){const s=this._windows.get(t);if(void 0!==s)return s;this.registerWindow(t);const n=this._document.createElement("div");if(n.style.position=e.position,n.style.zIndex=this._index.toString(),n.dataset.id=t,void 0!==e.index){const t=this._container.childNodes.length;if(e.index>=t)this._container.appendChild(n);else if(e.index<=0)this._container.insertBefore(n,this._container.firstChild);else{const t=this._container.childNodes[e.index];this._container.insertBefore(n,t)}}else"reverse"===e.direction?this._container.insertBefore(n,this._container.firstChild):this._container.appendChild(n);return this._windows.set(t,n),++this._index,n}unregisterWindow(t){this._storage.remove(t);const e=this._windows.get(t);void 0!==e&&(null!==e.parentElement&&e.parentElement.removeChild(e),this._windows.delete(t))}getZindex(t){const e=this.ensureWindow(t);return parseInt(e.style.zIndex||"0")}moveToTop(t){if(this.getZindex(t)!==this._index){this.ensureWindow(t).style.zIndex=(++this._index).toString()}}removeWindow(t){this.unregisterWindow(t)}}const a=new WeakMap;function r(t=document){const e=t.getElementById("overlap-manager-root");if(null!==e)return(0,n.ensureDefined)(a.get(e));{const e=new o(t),s=function(t){const e=t.createElement("div");return e.style.position="absolute",e.style.zIndex=150..toString(),e.style.top="0px",e.style.left="0px",e.id="overlap-manager-root",e}(t);return a.set(s,e),e.setContainer(s),t.body.appendChild(s),e}}},86431:(t,e,s)=>{"use strict";s.d(e,{makeOverlapable:()=>o});var n=s(59496),i=s(65718);function o(t){return class extends n.PureComponent{render(){const{isOpened:e,root:s}=this.props;if(!e)return null;const o=n.createElement(t,{...this.props,zIndex:150});return"parent"===s?o:n.createElement(i.Portal,null,o)}}}},65718:(t,e,s)=>{"use strict";s.d(e,{Portal:()=>l,PortalContext:()=>c});var n=s(59496),i=s(87995),o=s(9423),a=s(88216),r=s(50655);class l extends n.PureComponent{constructor(){super(...arguments),this._uuid=(0,o.guid)()}componentWillUnmount(){this._manager().removeWindow(this._uuid)}render(){const t=this._manager().ensureWindow(this._uuid,this.props.layerOptions);return t.style.top=this.props.top||"",t.style.bottom=this.props.bottom||"",t.style.left=this.props.left||"",t.style.right=this.props.right||"",t.style.pointerEvents=this.props.pointerEvents||"",
i.createPortal(n.createElement(c.Provider,{value:this},this.props.children),t)}moveToTop(){this._manager().moveToTop(this._uuid)}_manager(){return null===this.context?(0,a.getRootOverlapManager)():this.context}}l.contextType=r.SlotContext;const c=n.createContext(null)},50655:(t,e,s)=>{"use strict";s.d(e,{Slot:()=>i,SlotContext:()=>o});var n=s(59496);class i extends n.Component{shouldComponentUpdate(){return!1}render(){return n.createElement("div",{style:{position:"fixed",zIndex:150,left:0,top:0},ref:this.props.reference})}}const o=n.createContext(null)},81268:t=>{t.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 8" width="16" height="8"><path fill="currentColor" d="M0 1.475l7.396 6.04.596.485.593-.49L16 1.39 14.807 0 7.393 6.122 8.58 6.12 1.186.08z"/></svg>'},88613:t=>{t.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8"><path fill="none" stroke="currentcolor" stroke-linecap="round" stroke-width="2" d="m1 6 5-4 5 4"/></svg>'},76685:t=>{t.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 14" width="14px" height="14px"><path fill-rule="evenodd" d="M7 0C3.15 0 0 3.15 0 7s3.15 7 7 7 7-3.15 7-7-3.15-7-7-7zm0 12.25c-2.888 0-5.25-2.363-5.25-5.25 0-2.888 2.362-5.25 5.25-5.25 2.887 0 5.25 2.362 5.25 5.25 0 2.887-2.363 5.25-5.25 5.25zm.25-8H6V8h3.75V6.75h-2.5v-2.5z"/></svg>'},73362:t=>{t.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><path d="M1.33 0L10 5L1.33 10z"/></svg>'},17681:t=>{t.exports='<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 18 18" width="18" height="18" fill="none"><path fill="currentColor" fill-rule="evenodd" clip-rule="evenodd" d="M9 16A7 7 0 1 0 9 2a7 7 0 0 0 0 14zm0 1A8 8 0 1 0 9 1a8 8 0 0 0 0 16zm-1-4a1 1 0 1 1 2 0 1 1 0 0 1-2 0zM7 7a2 2 0 1 1 4 0c0 .38-.11.6-.26.77a2.38 2.38 0 0 1-.84.53c-.26.13-.58.29-.83.5A1.5 1.5 0 0 0 8.5 10v.5h1V10c0-.2.07-.32.21-.44a3.18 3.18 0 0 1 .76-.43c.32-.15.7-.36 1-.7.33-.35.53-.81.53-1.43a3 3 0 1 0-6 0h1z"/></svg>'}}]);