@topvisor/ui 1.5.9-pnpm.4 → 1.5.9-pnpm.5
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/assets/schedule.css +1 -1
- package/package.json +1 -1
- package/schedule/schedule.amd.js +1 -1
- package/schedule/schedule.amd.js.map +1 -1
- package/schedule/schedule.js +341 -276
- package/schedule/schedule.js.map +1 -1
- package/src/api/api/types/client/request.d.ts +3 -1
- package/src/components/schedule/schedule/compoents/calendar/composables/useDaysByCalendarMode.d.ts +6 -0
- package/src/components/schedule/schedule/compoents/calendar/types.d.ts +22 -19
- package/src/components/schedule/schedule/compoents/{email → emails}/selector/types.d.ts +2 -2
- package/src/components/schedule/schedule/compoents/{email → emails}/types.d.ts +1 -2
- package/src/components/schedule/schedule/compoents/{reportSend → socials}/types.d.ts +5 -4
- package/src/components/schedule/schedule/compoents/timeSelector/types.d.ts +4 -13
- package/src/components/schedule/schedule/types.d.ts +28 -45
- package/src/components/schedule/schedule/utils.d.ts +24 -0
- package/src/components/schedule/schedule.d.ts +2 -7
- package/utils/searchers.amd.js.map +1 -1
- package/utils/searchers.js.map +1 -1
- package/src/components/schedule/schedule/compoents/calendar/utils.d.ts +0 -10
- package/src/components/schedule/schedule/compoents/timeSelectors/types.d.ts +0 -10
package/assets/schedule.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.top-
|
|
1
|
+
.top-scheduleTimeSelector{flex-direction:column;gap:10px;display:flex}.top-scheduleTimeSelector_item{align-items:center;display:flex}.top-scheduleTimeSelector_item>.top-button{margin-left:var(--top-gap-2)}.top-scheduleTimeSelector .top-select{width:60px}.top-scheduleTimeSelector .top-select:hover{z-index:1}.top-scheduleTimeSelector_hour .top-select_select{border-top-right-radius:0;border-bottom-right-radius:0}.top-scheduleTimeSelector_minute .top-select_select{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.top-scheduleTimeSelector .top-button{--top-icon-color:var(--color-text-primary)}.top-scheduleCalendar{gap:var(--top-gap-4);flex-direction:column;display:flex}.top-scheduleCalendar_header{justify-content:space-between;align-items:flex-end;display:flex}.top-scheduleCalendar_calendar{gap:var(--top-gap-2);grid-template-columns:repeat(7,1fr);display:grid}.top-scheduleCalendar_calendarDay{--top-icon-size:18px;cursor:pointer;box-sizing:border-box;border:1px solid var(--color-line-1);border-radius:var(--top-radius-2);justify-content:center;align-items:center;width:36px;height:36px;display:flex}.top-scheduleCalendar_calendarDay:hover{border-color:var(--top-schedule-border-color);background:var(--color-layout-front-3)}.top-scheduleCalendar_calendarDay:focus-within{outline:1px solid var(--top-schedule-border-color);outline-offset:2px}.top-scheduleCalendar_calendarDay:has(>:checked){border-color:var(--top-schedule-header-background);background:var(--top-schedule-accent-background);color:var(--color-text-white)}.top-scheduleCalendar_calendarDay:has(>:checked):hover{background:var(--top-schedule-accent-background-hover)}.top-scheduleCalendar_calendarDayCheckbox{pointer-events:none;opacity:0;width:1px;height:1px;position:absolute}.top-scheduleCalendar_selectionSummary{text-align:center}.top-scheduleCalendar_selectionSummary:not(.top-error){color:var(--color-text-3)}.top-schedule{--top-schedule-border-color:var(--color-line-primary-1);--top-schedule-header-background:var(--color-layout-front-primary-3);--top-schedule-accent-background:var(--color-bg-primary-1);--top-schedule-accent-background-hover:var(--color-bg-primary-2);--top-schedule-body-padding:var(--top-padding-4);border:1px solid var(--top-schedule-border-color);border-radius:var(--top-radius-4);background:var(--color-layout-front-1);align-self:start;width:100%;max-width:332px;overflow:hidden}.top-schedule-type_report{--top-schedule-border-color:var(--color-line-warning-1);--top-schedule-header-background:var(--color-layout-front-warning-3);--top-schedule-accent-background:var(--color-bg-warning-1);--top-schedule-accent-background-hover:var(--color-bg-warning-2)}.top-schedule_header{padding:var(--top-padding-4);background:var(--top-schedule-header-background);gap:var(--top-gap-4);flex-direction:column;display:flex}.top-schedule_header:not(:last-child){border-bottom:1px solid var(--top-schedule-border-color)}.top-schedule_headerTitle{font-size:18px;font-weight:600}.top-schedule_headerMods{width:100%}.top-schedule_afterYandexUpdatedDelay{width:auto}.top-schedule_body{padding:var(--top-schedule-body-padding)}.top-schedule_body hr{border:0;border-top:1px solid var(--color-line-1);margin:var(--top-schedule-body-padding) calc(-1 * var(--top-schedule-body-padding))}.top-scheduleEmailSelector .top-input{width:100%}.top-scheduleEmailSelector .top-input_input{padding-right:var(--top-padding-10)}.top-scheduleEmailSelector_submit.top-button{--top-icon-size:20px;top:50%;right:var(--top-padding-2);z-index:1;position:absolute;transform:translateY(-50%)}.top-scheduleEmailSelector_submit.top-button:focus-visible{position:absolute}.top-scheduleEmailSelector .ui-autocomplete{border-radius:var(--top-radius-2);background:var(--color-layout-front-2);gap:var(--top-gap-1);padding:var(--top-padding-2)!important}.top-scheduleEmailSelector .ui-autocomplete .ui-menu-item{margin:0!important}.top-scheduleEmailSelector .ui-autocomplete .ui-menu-item .ui-menu-item-wrapper{border-radius:var(--top-radius-2);align-items:flex-end;gap:var(--top-gap-2);transition:var(--transition-normal);box-sizing:border-box;background:0 0;display:flex;padding:var(--top-padding-1) var(--top-padding-2)!important;margin:0!important}.top-scheduleEmailSelector .ui-autocomplete .ui-menu-item:hover .ui-menu-item-wrapper,.top-scheduleEmailSelector .ui-autocomplete .ui-menu-item .ui-menu-item-wrapper.ui-state-active{background:var(--color-layout-front-3)}.top-scheduleEmailSelector .ui-autocomplete .ui-menu-item .ui-menu-item-wrapper *{background:0 0;padding:0}.top-scheduleEmail{flex-direction:column;gap:10px;display:flex}.top-scheduleEmail_title{font-weight:600}.top-scheduleEmail_emails{border:1px solid var(--color-line-1);border-radius:var(--top-radius-2)}.top-scheduleEmail_emailsItem{--top-icon-size:20px;padding:var(--top-padding-1) var(--top-padding-4);padding-right:var(--top-padding-2);border-bottom:1px solid var(--color-line-1);justify-content:space-between;align-items:center;gap:var(--top-gap-1);display:flex}.top-scheduleEmail_emailsItem:last-child{border-bottom:0}.top-scheduleSocials{flex-direction:column;gap:10px;display:flex}.top-scheduleSocials_title{font-weight:600}.top-scheduleSocials_channels{border:1px solid var(--color-line-1);border-radius:var(--top-radius-2)}.top-scheduleSocials_channel{height:40px;padding:0 var(--top-padding-4);padding-right:var(--top-padding-2);border-bottom:1px solid var(--color-line-1);align-items:center;gap:var(--top-gap-2);display:flex}.top-scheduleSocials_channel:last-child{border-bottom:0}.top-scheduleSocials_channelIcon{--top-icon-size:20px;--top-icon-color:var(--color-text-3)}.top-scheduleSocials_channelLabel{flex-grow:0}.top-scheduleSocials_channelSettings{--top-icon-size:16px}.top-scheduleSocials_channelSwitcher{margin-left:auto}
|
package/package.json
CHANGED
package/schedule/schedule.amd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
define([`require`,`exports`,`../.chunks/forms-Ch1q0UUt.es.amd`,`../utils/check.amd`,`../utils/string.amd`,`vue`,`../.chunks/app-CY6euLQJ.es.amd`,`../require/css.amd!../assets/schedule.css`],function(e,t,n,r,i,a){"use strict";if(o===void 0)var o=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.TopScheduleTimeSelectors=t.TopScheduleTimeSelector=t.TopScheduleReportSend=t.TopScheduleEmailSelector=t.TopScheduleEmail=t.TopScheduleContainer=t.TopScheduleCalendar=t.TopSchedule=void 0;var s={class:`top-schedule_header`},c={class:`top-schedule_headerTitle`},l={key:0,class:`top-schedule_body`},u=(0,a.defineComponent)({name:`TopSchedule`,__name:`schedule`,props:{styling:{},triggerType:{default:`onDemand`},triggerTypes:{},triggerTypeOptions:{},title:{}},emits:[`update:triggerType`],setup(e,{emit:t,slots:r}){let i=e,o=(0,n.E)(),u={go:o.Projects.Checks,report:o.Projects.Reports,neutral:``},d=i.title??u[i.styling];return(i,o)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)({"top-schedule":!0,[`top-schedule-style_${e.styling}`]:!0})},[(0,a.createElementVNode)(`div`,s,[(0,a.createElementVNode)(`div`,c,(0,a.toDisplayString)((0,a.unref)(d)),1),(0,a.createVNode)(n.n,{class:`top-schedule_headerTriggerType`,modelValue:e.triggerType,"onUpdate:modelValue":o[0]||=e=>t(`update:triggerType`,e),options:e.triggerTypeOptions,size:`s`},null,8,[`modelValue`,`options`])]),e.triggerType!==`onDemand`&&r.body?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,l,[(0,a.renderSlot)(i.$slots,`body`)])):(0,a.createCommentVNode)(``,!0)],2))}}),d={},f={class:`top-schedule_bodyContainer`};t.TopSchedule=u;function p(e,t){return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,f,[(0,a.renderSlot)(e.$slots,`default`)])}var m=(0,n.u)(d,[[`render`,p]]),h=e=>{let t=(0,n.E)();switch(e){case`dayOfMonth`:{let e=Array.from({length:27},(e,t)=>({value:String(t+1),title:String(t+1)}));return e.push({value:`LAST_OF_MONTH`,title:``,isIcon:!0}),e}case`dayOfWeek`:return[{value:`MONDAY`,title:t.Calendar.Dw_1},{value:`TUESDAY`,title:t.Calendar.Dw_2},{value:`WEDNESDAY`,title:t.Calendar.Dw_3},{value:`THURSDAY`,title:t.Calendar.Dw_4},{value:`FRIDAY`,title:t.Calendar.Dw_5},{value:`SATURDAY`,title:t.Calendar.Dw_6},{value:`SUNDAY`,title:t.Calendar.Dw_7}]}},g={class:`top-scheduleCalendar`},_={class:`top-scheduleCalendar_header`},v={class:`top-scheduleCalendar_calendar`},y=[`value`],b=[`data-top-icon`],x=(0,a.defineComponent)({__name:`calendar`,props:{modelValue:{},mode:{},timesCount:{default:1}},emits:[`update:modelValue`],setup(e,{emit:t}){let r=(0,n.E)(),o=e,s=t,c=(0,a.computed)({get:()=>o.modelValue,set:e=>s(`update:modelValue`,e)}),l=(0,a.computed)(()=>h(o.mode)),u={dayOfWeek:{totalDaysCount:7,period:r.Common.a_week},dayOfMonth:{totalDaysCount:28,period:r.Common.a_month}},d=(0,a.computed)(()=>{let e=c.value.length,{totalDaysCount:t,period:n}=u[o.mode],a=e===t;if(a&&o.timesCount===1)return r.Common.Every_day;let s=o.timesCount===1?e:o.timesCount;return`${a?r.Common.Every_day:`${e}`}${o.timesCount>1?` × ${o.timesCount}`:``} ${(0,i.numberEnding)(s,r.Common.time_a_0,r.Common.time_a_0,r.Common.time_a_2)} ${n}`}),f=(0,a.computed)(()=>c.value.length>1),p=()=>{c.value=f.value?[]:l.value.map(e=>e.value)};return(e,t)=>{let n=(0,a.resolveComponent)(`TopButton`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,g,[(0,a.createElementVNode)(`div`,_,[(0,a.renderSlot)(e.$slots,`header`),(0,a.createVNode)(n,{class:`top-scheduleCalendar_headerButton`,onClick:p,color:`theme`,tabindex:`0`},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(f.value?e.$i18n.Common.Clear:e.$i18n.Common.Select_all),1)]),_:1})]),(0,a.createElementVNode)(`div`,v,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(l.value,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`label`,{class:`top-scheduleCalendar_calendarDay`,key:e.value},[(0,a.withDirectives)((0,a.createElementVNode)(`input`,{class:`top-scheduleCalendar_calendarDayRadio`,type:`checkbox`,value:e.value,"onUpdate:modelValue":t[0]||=e=>c.value=e,tabindex:`0`},null,8,y),[[a.vModelCheckbox,c.value]]),(0,a.createElementVNode)(`span`,{class:`top-scheduleCalendar_calendarDayTitle`,"data-top-icon":e.isIcon?e.title:void 0},[e.isIcon?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createTextVNode)((0,a.toDisplayString)(e.title),1)],64))],8,b)]))),128))]),(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)({"top-scheduleCalendar_selectionSummary":!0,"top-error":!c.value.length})},(0,a.toDisplayString)(d.value),3)])}}}),S=(0,a.defineComponent)({__name:`selector`,props:{modelValue:{},emails:{default:()=>[]},getEmailSuggestions:{type:Function,default:()=>[]}},emits:[`update:modelValue`,`submit`],setup(e,{emit:t}){let i=t,o=e,s=t,c=(0,n.E)(),l=n.O.$,u=(0,a.ref)(),d=(0,a.ref)(),f=null,p={},m=e=>e.filter(e=>!o.emails.includes(e)),h=(e=o.modelValue)=>{let t=String(e).trim();if(t){if(!(0,r.isEmail)(t)){n.O.notice(c.Common.Enter_valid_email_notice,`error`);return}s(`submit`,t)}},g=async()=>{if(await(0,a.nextTick)(),f=d.value?.$el.querySelector(`input`)??null,f){if(!l?.ui?.autocomplete){console.info(`Для работы autocomplete требуется глобальная загрузка jQuery UI Autocomplete`);return}l(f).autocomplete({appendTo:u.value,minLength:0,source:async(e,t)=>{let n=e.term;n in p||(p[n]=await o.getEmailSuggestions(n)),t(m(p[n]).map(e=>({label:e,value:e})))},select:(e,t)=>{t.item&&f&&(e.preventDefault(),h(t.item.value),s(`update:modelValue`,``),l(f).trigger(`focus`))}}),l(f).attr(`autocomplete`,`disabled`),l(f).on(`focus.scheduleEmailSelector`,()=>{f&&l(f).trigger(`input`)})}};return(0,a.onMounted)(()=>{g()}),(0,a.onBeforeUnmount)(()=>{l?.ui?.autocomplete&&f&&(l(f).off(`focus.scheduleEmailSelector`),l(f).autocomplete(`destroy`))}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`top-scheduleEmailSelector`,ref_key:`elRootRef`,ref:u},[(0,a.createVNode)(n.c,{ref_key:`elInputRef`,ref:d,modelValue:e.modelValue,"onUpdate:modelValue":r[1]||=e=>i(`update:modelValue`,e),onKeydown:r[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>h(),[`prevent`]),[`enter`]),title:t.$i18n.Common.Enter_email,type:`email`,size:`l`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(n.h,{class:`top-scheduleEmailSelector_submit`,color:`theme`,icon:``,onClick:r[0]||=(0,a.withModifiers)(e=>h(),[`prevent`])})]),_:1},8,[`modelValue`,`title`])],512))}}),C={class:`top-scheduleEmail`},w={class:`top-scheduleEmail_title`},T={key:1,class:`top-scheduleEmail_emails`},E={class:`top-ellipsis1`},D=(0,a.defineComponent)({__name:`email`,props:{emails:{default:()=>[]},getEmailSuggestions:{type:Function,default:()=>[]},maxEmailsCount:{default:-1}},emits:[`add:email`,`remove:email`],setup(e,{emit:t}){let n=t,r=e,i=t,o=(0,a.ref)(``),s=e=>{let t=e.trim();if(!t||r.emails.includes(t)){o.value=``;return}i(`add:email`,t),o.value=``};return(t,r)=>{let i=(0,a.resolveComponent)(`TopButton`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,C,[(0,a.createElementVNode)(`div`,w,(0,a.toDisplayString)(t.$i18n.Projects.Reports_send_to_address)+` E-mail: `,1),e.maxEmailsCount&&e.emails.length===e.maxEmailsCount?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createBlock)(S,{key:0,modelValue:o.value,"onUpdate:modelValue":r[0]||=e=>o.value=e,getEmailSuggestions:e.getEmailSuggestions,emails:e.emails,onSubmit:s},null,8,[`modelValue`,`getEmailSuggestions`,`emails`])),e.emails.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,T,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.emails,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`top-scheduleEmail_emailsItem`,key:e},[(0,a.createElementVNode)(`span`,E,(0,a.toDisplayString)(e),1),(0,a.createVNode)(i,{onClick:t=>n(`remove:email`,e),color:`theme`,icon:``},null,8,[`onClick`])]))),128))])):(0,a.createCommentVNode)(``,!0)])}}}),O={class:`top-scheduleReportSend`},k={class:`top-scheduleReportSend_title`},A={class:`top-scheduleReportSend_channels`},j=[`data-top-icon`],M={class:`top-scheduleReportSend_channelLabel top-ellipsis1`},N={key:0,class:`top-scheduleReportSend_channel`},P=[`data-top-icon`],F=[`href`],I=(0,a.defineComponent)({__name:`reportSend`,props:{channels:{},connectors:{default:()=>[]}},emits:[`update:channelSelected`],setup(e,{emit:t}){let n=e,r=e=>n.channels.some(t=>t.source===e),i={informer:``,telegram:``};return(n,o)=>{let s=(0,a.resolveComponent)(`TopButton`),c=(0,a.resolveComponent)(`TopSwitcher`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,O,[(0,a.createElementVNode)(`div`,k,(0,a.toDisplayString)(n.$i18n.Projects.Reports_send),1),(0,a.createElementVNode)(`div`,A,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.channels,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`top-scheduleReportSend_channel`,key:`${e.source}-${e.id}`},[(0,a.createElementVNode)(`span`,{class:`top-scheduleReportSend_channelIcon`,"data-top-icon":i[e.source]},null,8,j),(0,a.createElementVNode)(`span`,M,(0,a.toDisplayString)(e.label),1),e.settingLink?((0,a.openBlock)(),(0,a.createBlock)(s,{key:0,class:`top-scheduleReportSend_channelSettings`,size:`xs`,href:e.settingLink,target:`_blank`,icon:``,color:`theme`,tabindex:`0`},null,8,[`href`])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(c,{class:`top-scheduleReportSend_channelSwitcher`,modelValue:e.selected,"onUpdate:modelValue":n=>t(`update:channelSelected`,{id:e.id,source:e.source,selected:n})},null,8,[`modelValue`,`onUpdate:modelValue`])]))),128)),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.connectors,e=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:e.source},[r(e.source)?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,N,[(0,a.createElementVNode)(`span`,{class:`top-scheduleReportSend_channelIcon`,"data-top-icon":i[e.source]},null,8,P),(0,a.createElementVNode)(`a`,{class:`top-scheduleReportSend_channelLabel top-ellipsis1`,href:e.connectLink,target:`_blank`},(0,a.toDisplayString)(e.connectLabel),9,F)]))],64))),128))])])}}}),L={class:`top-scheduleTimeSelector`},R=(0,a.defineComponent)({__name:`timeSelector`,props:{hour:{},minute:{}},emits:[`update:hour`,`update:minute`],setup(e,{emit:t}){let n=e,r=Array.from({length:24},(e,t)=>({value:String(t),title:String(t).padStart(2,`0`)})),i=[{value:`0`,title:`00`},{value:`15`,title:`15`},{value:`30`,title:`30`},{value:`45`,title:`45`}],o=(0,a.computed)(()=>i.some(e=>e.value===n.minute)?i:[...i,{value:n.minute,title:n.minute.padStart(2,`0`),disabled:!0}]);return(n,i)=>{let s=(0,a.resolveComponent)(`TopSelect`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,L,[(0,a.createVNode)(s,{class:`top-scheduleTimeSelector_hour`,modelValue:e.hour,options:(0,a.unref)(r),"onUpdate:modelValue":i[0]||=e=>t(`update:hour`,e)},null,8,[`modelValue`,`options`]),(0,a.createVNode)(s,{class:`top-scheduleTimeSelector_minute`,modelValue:e.minute,options:o.value,"onUpdate:modelValue":i[1]||=e=>t(`update:minute`,e)},null,8,[`modelValue`,`options`])])}}}),z={class:`top-scheduleTimeSelectors`},B=(0,a.defineComponent)({__name:`timeSelectors`,props:{times:{}},emits:[`update:times`],setup(e,{emit:t}){let n=t,r=e,i=t,o=new WeakMap,s=0,c=e=>{let t=(0,a.toRaw)(e),n=o.get(t);if(n!==void 0)return n;let r=s++;return o.set(t,r),r},l=(e,t)=>{let n=r.times.map((n,r)=>{if(r!==e)return n;let i={...n,...t};return o.set(i,c(n)),i});i(`update:times`,n)},u=()=>{let e=[{hour:`0`,minute:`0`},...r.times];i(`update:times`,e)};return(t,r)=>{let i=(0,a.resolveComponent)(`TopButton`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,z,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.times,(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`top-scheduleTimeSelectors_item`,key:c(t)},[(0,a.createVNode)(R,{hour:t.hour,minute:t.minute,"onUpdate:hour":e=>l(r,{hour:e}),"onUpdate:minute":e=>l(r,{minute:e})},null,8,[`hour`,`minute`,`onUpdate:hour`,`onUpdate:minute`]),r?((0,a.openBlock)(),(0,a.createBlock)(i,{key:0,onClick:t=>n(`update:times`,e.times.filter((e,t)=>t!==r)),color:`theme`,icon:``},null,8,[`onClick`])):((0,a.openBlock)(),(0,a.createBlock)(i,{key:1,class:`top-scheduleTimeSelectors_itemAdd`,onClick:u,color:`theme`,icon:``}))]))),128))])}}});t.TopScheduleContainer=m,t.TopScheduleCalendar=x,t.TopScheduleEmailSelector=S,t.TopScheduleEmail=D,t.TopScheduleReportSend=I,t.TopScheduleTimeSelector=R,t.TopScheduleTimeSelectors=B});
|
|
1
|
+
define([`require`,`exports`,`../.chunks/forms-Ch1q0UUt.es.amd`,`../utils/check.amd`,`../utils/string.amd`,`vue`,`../.chunks/app-CY6euLQJ.es.amd`,`../require/css.amd!../assets/schedule.css`],function(e,t,n,r,i,a){"use strict";if(o===void 0)var o=window.Vue;Object.defineProperty(t,"__esModule",{value:!0}),t.TopScheduleSocials=t.TopScheduleEmails=t.TopSchedule=void 0;var s=e=>{let t=(0,n.E)();return(0,a.computed)(()=>{switch((0,a.toValue)(e)){case`dayOfMonth`:{let e=Array.from({length:27},(e,t)=>({value:String(t+1),title:String(t+1)}));return e.push({value:`LAST_OF_MONTH`,title:``,isIcon:!0}),e}case`dayOfWeek`:return[{value:`MONDAY`,title:t.Calendar.Dw_1},{value:`TUESDAY`,title:t.Calendar.Dw_2},{value:`WEDNESDAY`,title:t.Calendar.Dw_3},{value:`THURSDAY`,title:t.Calendar.Dw_4},{value:`FRIDAY`,title:t.Calendar.Dw_5},{value:`SATURDAY`,title:t.Calendar.Dw_6},{value:`SUNDAY`,title:t.Calendar.Dw_7}];default:return[]}})},c={class:`top-scheduleTimeSelector`},l=(0,a.defineComponent)({__name:`timeSelector`,props:(0,a.mergeModels)({modelValue:{},multipleTimes:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=(0,a.useModel)(e,`modelValue`),r=Array.from({length:24},(e,t)=>({value:String(t),title:String(t).padStart(2,`0`)})),i=Array.from({length:4},(e,t)=>{let n=t*15;return{value:String(n),title:String(n).padStart(2,`0`)}}),o=(e,t)=>{let r=[...n.value];r[e]={...r[e],...t},n.value=r},s=()=>{n.value=[{hour:`0`,minute:`0`},...n.value]},l=e=>{n.value=n.value.filter((t,n)=>n!==e)};return(e,u)=>{let d=(0,a.resolveComponent)(`TopSelect`),f=(0,a.resolveComponent)(`TopButton`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,c,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(n.value,(e,c)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{key:c,class:`top-scheduleTimeSelector_item`},[(0,a.createVNode)(d,{class:`top-scheduleTimeSelector_hour`,modelValue:e.hour,options:(0,a.unref)(r),"onUpdate:modelValue":e=>o(c,{hour:e})},null,8,[`modelValue`,`options`,`onUpdate:modelValue`]),(0,a.createVNode)(d,{class:`top-scheduleTimeSelector_minute`,modelValue:e.minute,options:(0,a.unref)(i),availableCustomValue:``,"onUpdate:modelValue":e=>o(c,{minute:e})},null,8,[`modelValue`,`options`,`onUpdate:modelValue`]),t.multipleTimes||n.value.length>1?((0,a.openBlock)(),(0,a.createBlock)(f,{key:0,onClick:e=>c?l(c):s(),color:`theme`,icon:c?``:``},null,8,[`onClick`,`icon`])):(0,a.createCommentVNode)(``,!0)]))),128))])}}}),u={class:`top-scheduleCalendar`},d={class:`top-scheduleCalendar_header`},f={class:`top-scheduleCalendar_calendar`},p=[`value`,`checked`,`onChange`],m=[`data-top-icon`],h=(0,a.defineComponent)({__name:`calendar`,props:(0,a.mergeModels)({modelValue:{},mode:{},times:{},multipleTimes:{type:Boolean}},{modelValue:{required:!0},modelModifiers:{},times:{required:!0},timesModifiers:{}}),emits:[`update:modelValue`,`update:times`],setup(e){let t=e,n=(0,a.useModel)(e,`modelValue`),r=(0,a.useModel)(e,`times`);r.value.length||(r.value=[{hour:`0`,minute:`0`}]);let o=s(()=>t.mode),c=(0,a.computed)(()=>n.value.includes(`ALL`)||n.value.length===o.value.length),h=e=>{let t=n.value.includes(`ALL`)?o.value.map(e=>e.value):[...n.value],r=t.indexOf(e);r===-1?t.push(e):t.splice(r,1),n.value=t.length===o.value.length?[`ALL`]:t},g=()=>{n.value=c.value?[]:[`ALL`]};return(t,s)=>{let _=(0,a.resolveComponent)(`TopButton`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,u,[(0,a.createElementVNode)(`div`,d,[(0,a.createVNode)(l,{modelValue:r.value,"onUpdate:modelValue":s[0]||=e=>r.value=e,multipleTimes:e.multipleTimes},null,8,[`modelValue`,`multipleTimes`]),(0,a.createVNode)(_,{onClick:s[1]||=e=>g(),color:`theme`,tabindex:`0`},{default:(0,a.withCtx)(()=>[(0,a.createTextVNode)((0,a.toDisplayString)(c.value?t.$i18n.Common.Clear:t.$i18n.Common.Select_all),1)]),_:1})]),(0,a.createElementVNode)(`div`,f,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)((0,a.unref)(o),e=>((0,a.openBlock)(),(0,a.createElementBlock)(`label`,{class:`top-scheduleCalendar_calendarDay`,key:e.value},[(0,a.createElementVNode)(`input`,{class:`top-scheduleCalendar_calendarDayCheckbox`,type:`checkbox`,value:e.value,checked:n.value.includes(`ALL`)||n.value.includes(e.value),onChange:t=>h(e.value),tabindex:`0`},null,40,p),(0,a.createElementVNode)(`span`,{class:`top-scheduleCalendar_calendarDayTitle`,"data-top-icon":e.isIcon?e.title:void 0},[e.isIcon?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createTextVNode)((0,a.toDisplayString)(e.title),1)],64))],8,m)]))),128))]),(0,a.createElementVNode)(`span`,{class:(0,a.normalizeClass)({"top-scheduleCalendar_selectionSummary":!0,"top-error":!n.value.length})},[(0,a.createTextVNode)((0,a.toDisplayString)(c.value?t.$i18n.Common.Every_day:n.value.length)+` `,1),r.value.length>1||!c.value?((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:0},[(0,a.createTextVNode)((0,a.toDisplayString)(r.value.length>1?` × ${r.value.length}`:``)+` `+(0,a.toDisplayString)((0,a.unref)(i.numberEnding)(r.value.length===1?n.value.length:r.value.length,t.$i18n.Common.time_a_0,t.$i18n.Common.time_a_0,t.$i18n.Common.time_a_2))+` `+(0,a.toDisplayString)(e.mode===`dayOfWeek`?t.$i18n.Common.a_week:t.$i18n.Common.a_month),1)],64)):(0,a.createCommentVNode)(``,!0)],2)])}}}),g=[`onDemand`,`dayOfWeek`,`dayOfMonth`,`afterYandexUpdated`],_=()=>{let e=(0,n.E)();return[{value:`0`,title:e.Projects.immediately},...Array.from({length:24},(t,n)=>({value:String(n+1),title:e(`Projects`,`in_hour`,{hour:n+1})}))]},v=e=>e===`dayOfWeek`||e===`dayOfMonth`,y=(e,t=`onDemand`)=>e.includes(`YANDEX_UPDATE`)?`afterYandexUpdated`:e.includes(`CHECK_POSITIONS`)?`afterCheck`:e.includes(`LAST_OF_MONTH`)||e.some(e=>/^\d+$/.test(e))?`dayOfMonth`:e.length?v(t)?t:`dayOfWeek`:t,b=e=>{let t=(0,n.E)(),r={onDemand:t.Projects.Settings_on_demand,dayOfWeek:t.Projects.Report_on_weekdays,dayOfMonth:t.Projects.Settings_particular_days,afterYandexUpdated:t.Projects.After_updates,afterCheck:e.includes(`afterCheck`)?t.Dynamics.Report_after_tracking_30min_1:``};return e.map(e=>({value:e,title:r[e]}))},x={class:`top-schedule_header`},S={class:`top-schedule_headerTitle`},C={key:0,class:`top-schedule_body`},w={key:2},T=(0,a.defineComponent)({name:`TopSchedule`,__name:`schedule`,props:(0,a.mergeModels)({modelValue:{},type:{default:`go`},availableMods:{},multipleTimes:{type:Boolean},title:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:[`update:modelValue`],setup(e,{slots:t}){let r=e,i=(0,a.useModel)(e,`modelValue`),o=(0,a.ref)(y(i.value.days)),s=(0,a.computed)(()=>b(r.availableMods??(r.type===`report`?[...g,`afterCheck`]:g))),c=_(),l={};return(0,a.watch)(i,()=>{l[o.value]={days:[...i.value.days],times:i.value.times.map(e=>({...e}))}},{deep:!0,immediate:!0}),(0,a.watch)(()=>i.value.days,()=>o.value=y(i.value.days,o.value),{deep:!0,immediate:!0}),(0,a.watch)(o,e=>{let t=l[e];switch(e){case`onDemand`:i.value={days:[],times:[]};break;case`dayOfWeek`:case`dayOfMonth`:i.value={...i.value,days:t?.days??[`ALL`],times:t?.times??[{hour:`0`,minute:`0`}]};break;case`afterYandexUpdated`:i.value={days:[`YANDEX_UPDATE`],times:t?.times??[{hour:`0`,minute:`0`}]};break;case`afterCheck`:i.value={days:[`CHECK_POSITIONS`],times:t?.times??[{hour:`0`,minute:`30`}]}}}),(r,l)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:(0,a.normalizeClass)([`top-schedule`,`top-schedule-type_`+e.type])},[(0,a.createElementVNode)(`div`,x,[(0,a.createElementVNode)(`div`,S,(0,a.toDisplayString)(e.title??(e.type===`go`?r.$i18n.Projects.Checks:r.$i18n.Projects.Reports)),1),(0,a.createVNode)(n.n,{class:`top-schedule_headerMods`,modelValue:o.value,"onUpdate:modelValue":l[0]||=e=>o.value=e,options:s.value,size:`s`},null,8,[`modelValue`,`options`])]),o.value!==`onDemand`&&((0,a.unref)(v)(o.value)||o.value===`afterYandexUpdated`||t.settings)?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,C,[o.value===`afterYandexUpdated`&&i.value.times[0]?((0,a.openBlock)(),(0,a.createBlock)(n.n,{key:0,class:`top-schedule_afterYandexUpdatedDelay`,modelValue:i.value.times[0].hour,"onUpdate:modelValue":l[1]||=e=>i.value.times[0].hour=e,options:(0,a.unref)(c),size:`s`},null,8,[`modelValue`,`options`])):(0,a.createCommentVNode)(``,!0),(0,a.unref)(v)(o.value)?((0,a.openBlock)(),(0,a.createBlock)(h,{key:1,modelValue:i.value.days,"onUpdate:modelValue":l[2]||=e=>i.value.days=e,times:i.value.times,"onUpdate:times":l[3]||=e=>i.value.times=e,mode:o.value,multipleTimes:e.multipleTimes},null,8,[`modelValue`,`times`,`mode`,`multipleTimes`])):(0,a.createCommentVNode)(``,!0),(0,a.unref)(v)(o.value)&&t.settings?((0,a.openBlock)(),(0,a.createElementBlock)(`hr`,w)):(0,a.createCommentVNode)(``,!0),(0,a.renderSlot)(r.$slots,`settings`,{mode:o.value})])):(0,a.createCommentVNode)(``,!0)],2))}}),E=(0,a.defineComponent)({__name:`selector`,props:{modelValue:{},emails:{default:()=>[]},getEmailSuggestions:{type:Function,default:()=>[]}},emits:[`update:modelValue`,`submit`],setup(e,{emit:t}){let i=t,o=e,s=t,c=(0,n.E)(),l=n.O.$,u=(0,a.ref)(),d=(0,a.ref)(),f=null,p={},m=e=>e.filter(e=>!o.emails.includes(e)),h=(e=o.modelValue)=>{let t=String(e).trim();if(t){if(!(0,r.isEmail)(t)){n.O.notice(c.Common.Enter_valid_email_notice,`error`);return}s(`submit`,t)}},g=async()=>{if(await(0,a.nextTick)(),f=d.value?.$el.querySelector(`input`)??null,f){if(!l?.ui?.autocomplete){console.info(`Для работы autocomplete требуется глобальная загрузка jQuery UI Autocomplete`);return}l(f).autocomplete({appendTo:u.value,minLength:0,source:async(e,t)=>{let n=e.term;n in p||(p[n]=await o.getEmailSuggestions(n)),t(m(p[n]).map(e=>({label:e,value:e})))},select:(e,t)=>{t.item&&f&&(e.preventDefault(),h(t.item.value),s(`update:modelValue`,``),l(f).trigger(`focus`))}}),l(f).attr(`autocomplete`,`disabled`),l(f).on(`focus.scheduleEmailSelector`,()=>{f&&l(f).trigger(`input`)})}};return(0,a.onMounted)(()=>{g()}),(0,a.onBeforeUnmount)(()=>{l?.ui?.autocomplete&&f&&(l(f).off(`focus.scheduleEmailSelector`),l(f).autocomplete(`destroy`))}),(t,r)=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`top-scheduleEmailSelector`,ref_key:`elRootRef`,ref:u},[(0,a.createVNode)(n.c,{ref_key:`elInputRef`,ref:d,modelValue:e.modelValue,"onUpdate:modelValue":r[1]||=e=>i(`update:modelValue`,e),onKeydown:r[2]||=(0,a.withKeys)((0,a.withModifiers)(e=>h(),[`prevent`]),[`enter`]),title:t.$i18n.Common.Enter_email,type:`email`,size:`l`},{default:(0,a.withCtx)(()=>[(0,a.createVNode)(n.h,{class:`top-scheduleEmailSelector_submit`,color:`theme`,icon:``,onClick:r[0]||=(0,a.withModifiers)(e=>h(),[`prevent`])})]),_:1},8,[`modelValue`,`title`])],512))}}),D={class:`top-scheduleEmail`},O={class:`top-scheduleEmail_title`},k={key:1,class:`top-scheduleEmail_emails`},A={class:`top-ellipsis1`},j=(0,a.defineComponent)({__name:`emails`,props:{emails:{default:()=>[]},getEmailSuggestions:{type:Function,default:()=>[]},maxEmailsCount:{default:-1}},emits:[`add:email`,`remove:email`],setup(e,{emit:t}){let n=t,r=e,i=t,o=(0,a.ref)(``),s=e=>{let t=e.trim();if(!t||r.emails.includes(t)){o.value=``;return}i(`add:email`,t),o.value=``};return(t,r)=>{let i=(0,a.resolveComponent)(`TopButton`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,D,[(0,a.createElementVNode)(`div`,O,(0,a.toDisplayString)(t.$i18n.Projects.Reports_send_to_address)+` E-mail: `,1),e.maxEmailsCount&&e.emails.length===e.maxEmailsCount?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createBlock)(E,{key:0,modelValue:o.value,"onUpdate:modelValue":r[0]||=e=>o.value=e,getEmailSuggestions:e.getEmailSuggestions,emails:e.emails,onSubmit:s},null,8,[`modelValue`,`getEmailSuggestions`,`emails`])),e.emails.length?((0,a.openBlock)(),(0,a.createElementBlock)(`div`,k,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.emails,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`top-scheduleEmail_emailsItem`,key:e},[(0,a.createElementVNode)(`span`,A,(0,a.toDisplayString)(e),1),(0,a.createVNode)(i,{onClick:t=>n(`remove:email`,e),color:`theme`,icon:``},null,8,[`onClick`])]))),128))])):(0,a.createCommentVNode)(``,!0)])}}}),M={class:`top-scheduleSocials`},N={class:`top-scheduleSocials_title`},P={class:`top-scheduleSocials_channels`},F=[`data-top-icon`],I={class:`top-scheduleSocials_channelLabel top-ellipsis1`},L={key:0,class:`top-scheduleSocials_channel`},R=[`data-top-icon`],z=[`href`],B=(0,a.defineComponent)({__name:`socials`,props:{channels:{},connectors:{}},emits:[`update:channelSelected`],setup(e,{emit:t}){let n=e,r=e=>n.channels.some(t=>t.source===e),i={informer:``,telegram:``};return(n,o)=>{let s=(0,a.resolveComponent)(`TopButton`),c=(0,a.resolveComponent)(`TopSwitcher`);return(0,a.openBlock)(),(0,a.createElementBlock)(`div`,M,[(0,a.createElementVNode)(`div`,N,(0,a.toDisplayString)(n.$i18n.Projects.Reports_send_to_address),1),(0,a.createElementVNode)(`div`,P,[((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.channels,e=>((0,a.openBlock)(),(0,a.createElementBlock)(`div`,{class:`top-scheduleSocials_channel`,key:`${e.source}-${e.id}`},[(0,a.createElementVNode)(`span`,{class:`top-scheduleSocials_channelIcon`,"data-top-icon":i[e.source]},null,8,F),(0,a.createElementVNode)(`span`,I,(0,a.toDisplayString)(e.label),1),e.settingLink?((0,a.openBlock)(),(0,a.createBlock)(s,{key:0,class:`top-scheduleSocials_channelSettings`,size:`xs`,href:e.settingLink,target:`_blank`,icon:``,color:`theme`,tabindex:`0`},null,8,[`href`])):(0,a.createCommentVNode)(``,!0),(0,a.createVNode)(c,{class:`top-scheduleSocials_channelSwitcher`,modelValue:e.selected,"onUpdate:modelValue":n=>t(`update:channelSelected`,{id:e.id,source:e.source,selected:n})},null,8,[`modelValue`,`onUpdate:modelValue`])]))),128)),((0,a.openBlock)(!0),(0,a.createElementBlock)(a.Fragment,null,(0,a.renderList)(e.connectors,e=>((0,a.openBlock)(),(0,a.createElementBlock)(a.Fragment,{key:e.source},[r(e.source)?(0,a.createCommentVNode)(``,!0):((0,a.openBlock)(),(0,a.createElementBlock)(`div`,L,[(0,a.createElementVNode)(`span`,{class:`top-scheduleSocials_channelIcon`,"data-top-icon":i[e.source]},null,8,R),(0,a.createElementVNode)(`a`,{class:`top-scheduleSocials_channelLabel top-ellipsis1`,href:e.connectLink,target:`_blank`},(0,a.toDisplayString)(e.connectLabel),9,z)]))],64))),128))])])}}});t.TopSchedule=T,t.TopScheduleEmails=j,t.TopScheduleSocials=B});
|
|
2
2
|
//# sourceMappingURL=schedule.amd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["schedule/schedule.js","../../src/components/schedule/schedule/schedule.vue","../../src/components/schedule/schedule/compoents/container/container.vue","../../src/components/schedule/schedule/compoents/calendar/utils.ts","../../src/components/schedule/schedule/compoents/calendar/calendar.vue","../../src/components/schedule/schedule/compoents/email/selector/selector.vue","../../src/components/schedule/schedule/compoents/email/email.vue","../../src/components/schedule/schedule/compoents/reportSend/reportSend.vue","../../src/components/schedule/schedule/compoents/timeSelector/timeSelector.vue","../../src/components/schedule/schedule/compoents/timeSelectors/timeSelectors.vue"],"names":["vue","exports","j","M","N","P","vue_1","n","a","t","forms_Ch1q0UUt_es_js_1","s","c","e","F","I","L","R","z","B","V","H","U","W","G","i","o","u","g","_","string_js_1","y","b","K","l","d","p","m","v","C","w","check_js_1","T","q","J","Y","X","Z","re","ie","ae","oe","se","Q","ce","le","ue","de","$","fe","pe"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-Ch1q0UUt.es.js\", \"../utils/check.js\", \"../utils/string.js\", \"vue\", \"../.chunks/app-CY6euLQJ.es.js\"], function (require, exports, forms_Ch1q0UUt_es_js_1, check_js_1, string_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TopScheduleTimeSelectors = exports.TopScheduleTimeSelector = exports.TopScheduleReportSend = exports.TopScheduleEmailSelector = exports.TopScheduleEmail = exports.TopScheduleContainer = exports.TopScheduleCalendar = exports.TopSchedule = void 0;\n //#region src/components/schedule/schedule/schedule.vue?vue&type=script&setup=true&lang.ts\n var j = { class: \"top-schedule_header\" }, M = { class: \"top-schedule_headerTitle\" }, N = {\n key: 0,\n class: \"top-schedule_body\"\n }, P = /* @__PURE__ */ (0, vue_1.defineComponent)({\n name: \"TopSchedule\",\n __name: \"schedule\",\n props: {\n styling: {},\n triggerType: { default: \"onDemand\" },\n triggerTypes: {},\n triggerTypeOptions: {},\n title: {}\n },\n emits: [\"update:triggerType\"],\n setup(t, { emit: n, slots: r }) {\n let a = t, o = (0, forms_Ch1q0UUt_es_js_1.E)(), s = {\n go: o.Projects.Checks,\n report: o.Projects.Reports,\n neutral: \"\"\n }, c = a.title ?? s[a.styling];\n return (e, a) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)({\n \"top-schedule\": !0,\n [`top-schedule-style_${t.styling}`]: !0\n }) }, [(0, vue_1.createElementVNode)(\"div\", j, [(0, vue_1.createElementVNode)(\"div\", M, (0, vue_1.toDisplayString)((0, vue_1.unref)(c)), 1), (0, vue_1.createVNode)(forms_Ch1q0UUt_es_js_1.n, {\n class: \"top-schedule_headerTriggerType\",\n modelValue: t.triggerType,\n \"onUpdate:modelValue\": a[0] ||= (e) => n(\"update:triggerType\", e),\n options: t.triggerTypeOptions,\n size: \"s\"\n }, null, 8, [\"modelValue\", \"options\"])]), t.triggerType !== \"onDemand\" && r.body ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", N, [(0, vue_1.renderSlot)(e.$slots, \"body\")])) : (0, vue_1.createCommentVNode)(\"\", !0)], 2));\n }\n }), F = {}, I = { class: \"top-schedule_bodyContainer\" };\n exports.TopSchedule = P;\n function L(e, t) {\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", I, [(0, vue_1.renderSlot)(e.$slots, \"default\")]);\n }\n var R = /*#__PURE__*/ (0, forms_Ch1q0UUt_es_js_1.u)(F, [[\"render\", L]]), z = (t) => {\n let n = (0, forms_Ch1q0UUt_es_js_1.E)();\n switch (t) {\n case \"dayOfMonth\": {\n let e = Array.from({ length: 27 }, (e, t) => ({\n value: String(t + 1),\n title: String(t + 1)\n }));\n return e.push({\n value: \"LAST_OF_MONTH\",\n title: \"\",\n isIcon: !0\n }), e;\n }\n case \"dayOfWeek\": return [\n {\n value: \"MONDAY\",\n title: n.Calendar.Dw_1\n },\n {\n value: \"TUESDAY\",\n title: n.Calendar.Dw_2\n },\n {\n value: \"WEDNESDAY\",\n title: n.Calendar.Dw_3\n },\n {\n value: \"THURSDAY\",\n title: n.Calendar.Dw_4\n },\n {\n value: \"FRIDAY\",\n title: n.Calendar.Dw_5\n },\n {\n value: \"SATURDAY\",\n title: n.Calendar.Dw_6\n },\n {\n value: \"SUNDAY\",\n title: n.Calendar.Dw_7\n }\n ];\n }\n }, B = { class: \"top-scheduleCalendar\" }, V = { class: \"top-scheduleCalendar_header\" }, H = { class: \"top-scheduleCalendar_calendar\" }, U = [\"value\"], W = [\"data-top-icon\"], G = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"calendar\",\n props: {\n modelValue: {},\n mode: {},\n timesCount: { default: 1 }\n },\n emits: [\"update:modelValue\"],\n setup(t, { emit: n }) {\n let r = (0, forms_Ch1q0UUt_es_js_1.E)(), i = t, a = n, o = (0, vue_1.computed)({\n get: () => i.modelValue,\n set: (e) => a(\"update:modelValue\", e)\n }), u = (0, vue_1.computed)(() => z(i.mode)), g = {\n dayOfWeek: {\n totalDaysCount: 7,\n period: r.Common.a_week\n },\n dayOfMonth: {\n totalDaysCount: 28,\n period: r.Common.a_month\n }\n }, _ = (0, vue_1.computed)(() => {\n let e = o.value.length, { totalDaysCount: t, period: n } = g[i.mode], a = e === t;\n if (a && i.timesCount === 1)\n return r.Common.Every_day;\n let c = i.timesCount === 1 ? e : i.timesCount;\n return `${a ? r.Common.Every_day : `${e}`}${i.timesCount > 1 ? ` × ${i.timesCount}` : \"\"} ${(0, string_js_1.numberEnding)(c, r.Common.time_a_0, r.Common.time_a_0, r.Common.time_a_2)} ${n}`;\n }), y = (0, vue_1.computed)(() => o.value.length > 1), b = () => {\n o.value = y.value ? [] : u.value.map((e) => e.value);\n };\n return (e, t) => {\n let n = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", B, [\n (0, vue_1.createElementVNode)(\"div\", V, [(0, vue_1.renderSlot)(e.$slots, \"header\"), (0, vue_1.createVNode)(n, {\n class: \"top-scheduleCalendar_headerButton\",\n onClick: b,\n color: \"theme\",\n tabindex: \"0\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(y.value ? e.$i18n.Common.Clear : e.$i18n.Common.Select_all), 1)]),\n _: 1\n })]),\n (0, vue_1.createElementVNode)(\"div\", H, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(u.value, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"label\", {\n class: \"top-scheduleCalendar_calendarDay\",\n key: e.value\n }, [(0, vue_1.withDirectives)((0, vue_1.createElementVNode)(\"input\", {\n class: \"top-scheduleCalendar_calendarDayRadio\",\n type: \"checkbox\",\n value: e.value,\n \"onUpdate:modelValue\": t[0] ||= (e) => o.value = e,\n tabindex: \"0\"\n }, null, 8, U), [[vue_1.vModelCheckbox, o.value]]), (0, vue_1.createElementVNode)(\"span\", {\n class: \"top-scheduleCalendar_calendarDayTitle\",\n \"data-top-icon\": e.isIcon ? e.title : void 0\n }, [e.isIcon ? (0, vue_1.createCommentVNode)(\"\", !0) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 0 }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.title), 1)], 64))], 8, W)]))), 128))]),\n (0, vue_1.createElementVNode)(\"span\", { class: (0, vue_1.normalizeClass)({\n \"top-scheduleCalendar_selectionSummary\": !0,\n \"top-error\": !o.value.length\n }) }, (0, vue_1.toDisplayString)(_.value), 3)\n ]);\n };\n }\n }), K = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"selector\",\n props: {\n modelValue: {},\n emails: { default: () => [] },\n getEmailSuggestions: {\n type: Function,\n default: () => []\n }\n },\n emits: [\"update:modelValue\", \"submit\"],\n setup(i, { emit: a }) {\n let s = a, c = i, l = a, u = (0, forms_Ch1q0UUt_es_js_1.E)(), d = forms_Ch1q0UUt_es_js_1.O.$, p = (0, vue_1.ref)(), m = (0, vue_1.ref)(), g = null, v = {}, C = (e) => e.filter((e) => !c.emails.includes(e)), w = (e = c.modelValue) => {\n let n = String(e).trim();\n if (n) {\n if (!(0, check_js_1.isEmail)(n)) {\n forms_Ch1q0UUt_es_js_1.O.notice(u.Common.Enter_valid_email_notice, \"error\");\n return;\n }\n l(\"submit\", n);\n }\n }, T = async () => {\n if (await (0, vue_1.nextTick)(), g = m.value?.$el.querySelector(\"input\") ?? null, g) {\n if (!d?.ui?.autocomplete) {\n console.info(\"Для работы autocomplete требуется глобальная загрузка jQuery UI Autocomplete\");\n return;\n }\n d(g).autocomplete({\n appendTo: p.value,\n minLength: 0,\n source: async (e, t) => {\n let n = e.term;\n n in v || (v[n] = await c.getEmailSuggestions(n)), t(C(v[n]).map((e) => ({\n label: e,\n value: e\n })));\n },\n select: (e, t) => {\n t.item && g && (e.preventDefault(), w(t.item.value), l(\"update:modelValue\", \"\"), d(g).trigger(\"focus\"));\n }\n }), d(g).attr(\"autocomplete\", \"disabled\"), d(g).on(\"focus.scheduleEmailSelector\", () => {\n g && d(g).trigger(\"input\");\n });\n }\n };\n return (0, vue_1.onMounted)(() => {\n T();\n }), (0, vue_1.onBeforeUnmount)(() => {\n d?.ui?.autocomplete && g && (d(g).off(\"focus.scheduleEmailSelector\"), d(g).autocomplete(\"destroy\"));\n }), (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-scheduleEmailSelector\",\n ref_key: \"elRootRef\",\n ref: p\n }, [(0, vue_1.createVNode)(forms_Ch1q0UUt_es_js_1.c, {\n ref_key: \"elInputRef\",\n ref: m,\n modelValue: i.modelValue,\n \"onUpdate:modelValue\": t[1] ||= (e) => s(\"update:modelValue\", e),\n onKeydown: t[2] ||= (0, vue_1.withKeys)((0, vue_1.withModifiers)((e) => w(), [\"prevent\"]), [\"enter\"]),\n title: e.$i18n.Common.Enter_email,\n type: \"email\",\n size: \"l\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)(forms_Ch1q0UUt_es_js_1.h, {\n class: \"top-scheduleEmailSelector_submit\",\n color: \"theme\",\n icon: \"\",\n onClick: t[0] ||= (0, vue_1.withModifiers)((e) => w(), [\"prevent\"])\n })]),\n _: 1\n }, 8, [\"modelValue\", \"title\"])], 512));\n }\n }), q = { class: \"top-scheduleEmail\" }, J = { class: \"top-scheduleEmail_title\" }, Y = {\n key: 1,\n class: \"top-scheduleEmail_emails\"\n }, X = { class: \"top-ellipsis1\" }, Z = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"email\",\n props: {\n emails: { default: () => [] },\n getEmailSuggestions: {\n type: Function,\n default: () => []\n },\n maxEmailsCount: { default: -1 }\n },\n emits: [\"add:email\", \"remove:email\"],\n setup(e, { emit: t }) {\n let n = t, r = e, i = t, a = (0, vue_1.ref)(\"\"), o = (e) => {\n let t = e.trim();\n if (!t || r.emails.includes(t)) {\n a.value = \"\";\n return;\n }\n i(\"add:email\", t), a.value = \"\";\n };\n return (t, r) => {\n let i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", q, [\n (0, vue_1.createElementVNode)(\"div\", J, (0, vue_1.toDisplayString)(t.$i18n.Projects.Reports_send_to_address) + \" E-mail: \", 1),\n e.maxEmailsCount && e.emails.length === e.maxEmailsCount ? (0, vue_1.createCommentVNode)(\"\", !0) : ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(K, {\n key: 0,\n modelValue: a.value,\n \"onUpdate:modelValue\": r[0] ||= (e) => a.value = e,\n getEmailSuggestions: e.getEmailSuggestions,\n emails: e.emails,\n onSubmit: o\n }, null, 8, [\n \"modelValue\",\n \"getEmailSuggestions\",\n \"emails\"\n ])),\n e.emails.length ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", Y, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(e.emails, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-scheduleEmail_emailsItem\",\n key: e\n }, [(0, vue_1.createElementVNode)(\"span\", X, (0, vue_1.toDisplayString)(e), 1), (0, vue_1.createVNode)(i, {\n onClick: (t) => n(\"remove:email\", e),\n color: \"theme\",\n icon: \"\"\n }, null, 8, [\"onClick\"])]))), 128))])) : (0, vue_1.createCommentVNode)(\"\", !0)\n ]);\n };\n }\n }), re = { class: \"top-scheduleReportSend\" }, ie = { class: \"top-scheduleReportSend_title\" }, ae = { class: \"top-scheduleReportSend_channels\" }, oe = [\"data-top-icon\"], se = { class: \"top-scheduleReportSend_channelLabel top-ellipsis1\" }, Q = {\n key: 0,\n class: \"top-scheduleReportSend_channel\"\n }, ce = [\"data-top-icon\"], le = [\"href\"], ue = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"reportSend\",\n props: {\n channels: {},\n connectors: { default: () => [] }\n },\n emits: [\"update:channelSelected\"],\n setup(e, { emit: t }) {\n let n = e, r = (e) => n.channels.some((t) => t.source === e), i = {\n informer: \"\",\n telegram: \"\"\n };\n return (n, a) => {\n let o = (0, vue_1.resolveComponent)(\"TopButton\"), s = (0, vue_1.resolveComponent)(\"TopSwitcher\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", re, [(0, vue_1.createElementVNode)(\"div\", ie, (0, vue_1.toDisplayString)(n.$i18n.Projects.Reports_send), 1), (0, vue_1.createElementVNode)(\"div\", ae, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(e.channels, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-scheduleReportSend_channel\",\n key: `${e.source}-${e.id}`\n }, [\n (0, vue_1.createElementVNode)(\"span\", {\n class: \"top-scheduleReportSend_channelIcon\",\n \"data-top-icon\": i[e.source]\n }, null, 8, oe),\n (0, vue_1.createElementVNode)(\"span\", se, (0, vue_1.toDisplayString)(e.label), 1),\n e.settingLink ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(o, {\n key: 0,\n class: \"top-scheduleReportSend_channelSettings\",\n size: \"xs\",\n href: e.settingLink,\n target: \"_blank\",\n icon: \"\",\n color: \"theme\",\n tabindex: \"0\"\n }, null, 8, [\"href\"])) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createVNode)(s, {\n class: \"top-scheduleReportSend_channelSwitcher\",\n modelValue: e.selected,\n \"onUpdate:modelValue\": (n) => t(\"update:channelSelected\", {\n id: e.id,\n source: e.source,\n selected: n\n })\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]))), 128)), ((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(e.connectors, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: e.source }, [r(e.source) ? (0, vue_1.createCommentVNode)(\"\", !0) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", Q, [(0, vue_1.createElementVNode)(\"span\", {\n class: \"top-scheduleReportSend_channelIcon\",\n \"data-top-icon\": i[e.source]\n }, null, 8, ce), (0, vue_1.createElementVNode)(\"a\", {\n class: \"top-scheduleReportSend_channelLabel top-ellipsis1\",\n href: e.connectLink,\n target: \"_blank\"\n }, (0, vue_1.toDisplayString)(e.connectLabel), 9, le)]))], 64))), 128))])]);\n };\n }\n }), de = { class: \"top-scheduleTimeSelector\" }, $ = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"timeSelector\",\n props: {\n hour: {},\n minute: {}\n },\n emits: [\"update:hour\", \"update:minute\"],\n setup(e, { emit: t }) {\n let n = e, r = Array.from({ length: 24 }, (e, t) => ({\n value: String(t),\n title: String(t).padStart(2, \"0\")\n })), i = [\n {\n value: \"0\",\n title: \"00\"\n },\n {\n value: \"15\",\n title: \"15\"\n },\n {\n value: \"30\",\n title: \"30\"\n },\n {\n value: \"45\",\n title: \"45\"\n }\n ], a = (0, vue_1.computed)(() => i.some((e) => e.value === n.minute) ? i : [...i, {\n value: n.minute,\n title: n.minute.padStart(2, \"0\"),\n disabled: !0\n }]);\n return (n, i) => {\n let o = (0, vue_1.resolveComponent)(\"TopSelect\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", de, [(0, vue_1.createVNode)(o, {\n class: \"top-scheduleTimeSelector_hour\",\n modelValue: e.hour,\n options: (0, vue_1.unref)(r),\n \"onUpdate:modelValue\": i[0] ||= (e) => t(\"update:hour\", e)\n }, null, 8, [\"modelValue\", \"options\"]), (0, vue_1.createVNode)(o, {\n class: \"top-scheduleTimeSelector_minute\",\n modelValue: e.minute,\n options: a.value,\n \"onUpdate:modelValue\": i[1] ||= (e) => t(\"update:minute\", e)\n }, null, 8, [\"modelValue\", \"options\"])]);\n };\n }\n }), fe = { class: \"top-scheduleTimeSelectors\" }, pe = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"timeSelectors\",\n props: { times: {} },\n emits: [\"update:times\"],\n setup(e, { emit: t }) {\n let n = t, r = e, i = t, a = /* @__PURE__ */ new WeakMap(), o = 0, s = (e) => {\n let t = (0, vue_1.toRaw)(e), n = a.get(t);\n if (n !== void 0)\n return n;\n let r = o++;\n return a.set(t, r), r;\n }, l = (e, t) => {\n let n = r.times.map((n, r) => {\n if (r !== e)\n return n;\n let i = {\n ...n,\n ...t\n };\n return a.set(i, s(n)), i;\n });\n i(\"update:times\", n);\n }, d = () => {\n let e = [{\n hour: \"0\",\n minute: \"0\"\n }, ...r.times];\n i(\"update:times\", e);\n };\n return (t, r) => {\n let i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", fe, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(e.times, (t, r) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-scheduleTimeSelectors_item\",\n key: s(t)\n }, [(0, vue_1.createVNode)($, {\n hour: t.hour,\n minute: t.minute,\n \"onUpdate:hour\": (e) => l(r, { hour: e }),\n \"onUpdate:minute\": (e) => l(r, { minute: e })\n }, null, 8, [\n \"hour\",\n \"minute\",\n \"onUpdate:hour\",\n \"onUpdate:minute\"\n ]), r ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(i, {\n key: 0,\n onClick: (t) => n(\"update:times\", e.times.filter((e, t) => t !== r)),\n color: \"theme\",\n icon: \"\"\n }, null, 8, [\"onClick\"])) : ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(i, {\n key: 1,\n class: \"top-scheduleTimeSelectors_itemAdd\",\n onClick: d,\n color: \"theme\",\n icon: \"\"\n }))]))), 128))]);\n };\n }\n });\n exports.TopScheduleContainer = R;\n exports.TopScheduleCalendar = G;\n exports.TopScheduleEmailSelector = K;\n exports.TopScheduleEmail = Z;\n exports.TopScheduleReportSend = ue;\n exports.TopScheduleTimeSelector = $;\n exports.TopScheduleTimeSelectors = pe;\n});\n//# sourceMappingURL=schedule.js.map\n","<script setup lang=\"ts\">\nimport TopSelect from '@/components/forms/select/select.vue';\nimport type { Props, Emits, TriggerType } from '@/components/schedule/schedule/types';\nimport { useI18n } from '@/core/plugins/i18n';\n\ndefineOptions({\n\tname: 'TopSchedule',\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n\ttriggerType: 'onDemand',\n});\n\ndefineEmits<Emits>();\n\nconst i18n = useI18n();\nconst labelByStyling = {\n\t'go': i18n.Projects.Checks,\n\t'report': i18n.Projects.Reports,\n\t'neutral': '',\n};\nconst title = props.title ?? labelByStyling[props.styling];\n</script>\n\n<template>\n\t<div\n\t\t:class=\"{\n\t\t\t'top-schedule': true,\n\t\t\t[`top-schedule-style_${styling}`]: true,\n\t\t}\"\n\t>\n\t\t<div class=\"top-schedule_header\">\n\t\t\t<div class=\"top-schedule_headerTitle\">\n\t\t\t\t{{ title }}\n\t\t\t</div>\n\n\t\t\t<TopSelect\n\t\t\t\tclass=\"top-schedule_headerTriggerType\"\n\t\t\t\t:modelValue=\"triggerType\"\n\t\t\t\t@update:modelValue=\"$emit('update:triggerType', $event as TriggerType)\"\n\t\t\t\t:options=\"triggerTypeOptions\"\n\t\t\t\tsize=\"s\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div\n\t\t\tv-if=\"triggerType !== 'onDemand' && $slots.body\"\n\t\t\tclass=\"top-schedule_body\"\n\t\t>\n\t\t\t<slot name=\"body\"></slot>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<template>\n\t<div class=\"top-schedule_bodyContainer\">\n\t\t<slot></slot>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","import type { Day, Props } from './types';\nimport { useI18n } from '@/core/app';\n\n/**\n * Количество дней в месяце\n */\nexport const COUNT_DAYS_IN_MONTHS = 27;\n\n/**\n * Количество дней в неделе\n */\nexport const COUNT_DAYS_IN_WEEK = 7;\n\nexport const genDaysByCalendarMode = (mode: Props['mode']): Day[] => {\n\tconst i18n = useI18n();\n\n\tswitch (mode) {\n\t\tcase 'dayOfMonth': {\n\t\t\tconst days: Day[] = Array.from({ length: COUNT_DAYS_IN_MONTHS }, (_, index) => ({\n\t\t\t\tvalue: String(index + 1) as Day['value'],\n\t\t\t\ttitle: String(index + 1),\n\t\t\t}));\n\n\t\t\tdays.push({\n\t\t\t\tvalue: 'LAST_OF_MONTH',\n\t\t\t\ttitle: '',\n\t\t\t\tisIcon: true,\n\t\t\t});\n\n\t\t\treturn days;\n\t\t}\n\n\t\tcase 'dayOfWeek': {\n\t\t\treturn [\n\t\t\t\t{ value: 'MONDAY', title: i18n.Calendar.Dw_1 },\n\t\t\t\t{ value: 'TUESDAY', title: i18n.Calendar.Dw_2 },\n\t\t\t\t{ value: 'WEDNESDAY', title: i18n.Calendar.Dw_3 },\n\t\t\t\t{ value: 'THURSDAY', title: i18n.Calendar.Dw_4 },\n\t\t\t\t{ value: 'FRIDAY', title: i18n.Calendar.Dw_5 },\n\t\t\t\t{ value: 'SATURDAY', title: i18n.Calendar.Dw_6 },\n\t\t\t\t{ value: 'SUNDAY', title: i18n.Calendar.Dw_7 },\n\t\t\t];\n\t\t}\n\t}\n};\n","<script setup lang=\"ts\">\nimport type { Props, Emits } from '@/components/schedule/schedule/compoents/calendar/types';\nimport { COUNT_DAYS_IN_MONTHS, COUNT_DAYS_IN_WEEK, genDaysByCalendarMode } from '@/components/schedule/schedule/compoents/calendar/utils';\nimport { numberEnding } from '@/core/utils/string';\nimport { computed } from 'vue';\nimport { useI18n } from '@/core/app';\n\nconst i18n = useI18n();\nconst props = withDefaults(defineProps<Props>(), {\n\ttimesCount: 1,\n});\nconst emit = defineEmits<Emits>();\n\nconst selectedDays = computed<Props['modelValue']>({\n\tget: () => props.modelValue,\n\tset: value => emit('update:modelValue', value),\n});\n\nconst days = computed(() => genDaysByCalendarMode(props.mode));\n\n/**\n * Параметры отображения выбранных дней для каждого режима календаря\n */\nconst modeConfig = {\n\tdayOfWeek: {\n\t\ttotalDaysCount: COUNT_DAYS_IN_WEEK,\n\t\tperiod: i18n.Common.a_week,\n\t},\n\tdayOfMonth: {\n\t\t// плюс \"последний день месяца\"\n\t\ttotalDaysCount: COUNT_DAYS_IN_MONTHS + 1,\n\t\tperiod: i18n.Common.a_month,\n\t},\n};\n\n/**\n * Текстовая сводка выбранных дней и временных слотов\n */\nconst selectionSummary = computed(() => {\n\t// Количество выбранных пользователем дней\n\tconst daysCount = selectedDays.value.length;\n\t// Общее количество доступных дней и название периода для текущего режима\n\tconst { totalDaysCount, period } = modeConfig[props.mode];\n\t// Выбраны ли все доступные дни\n\tconst isEveryDay = daysCount === totalDaysCount;\n\n\tif (isEveryDay && props.timesCount === 1) return i18n.Common.Every_day;\n\n\t// Число, для которого нужно подобрать склонение слова «раз»\n\tconst count = props.timesCount === 1 ? daysCount : props.timesCount;\n\t// Подпись количества выбранных дней\n\tconst daysLabel = isEveryDay ? i18n.Common.Every_day : `${daysCount}`;\n\t// Множитель времени отображается только при нескольких временных слотах\n\tconst multiplier = props.timesCount > 1 ? ` × ${props.timesCount}` : '';\n\t// Склонённая подпись количества запусков\n\tconst countLabel = numberEnding(\n\t\tcount,\n\t\ti18n.Common.time_a_0,\n\t\ti18n.Common.time_a_0,\n\t\ti18n.Common.time_a_2,\n\t);\n\n\treturn `${daysLabel}${multiplier} ${countLabel} ${period}`;\n});\n\nconst isClearAction = computed(() => selectedDays.value.length > 1);\n\nconst toggleAllDays = () => {\n\tselectedDays.value = isClearAction.value ? [] : days.value.map(day => day.value);\n};\n</script>\n\n<template>\n\t<div class=\"top-scheduleCalendar\">\n\t\t<div class=\"top-scheduleCalendar_header\">\n\t\t\t<slot name=\"header\"></slot>\n\n\t\t\t<TopButton\n\t\t\t\tclass=\"top-scheduleCalendar_headerButton\"\n\t\t\t\t@click=\"toggleAllDays\"\n\t\t\t\tcolor=\"theme\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t>\n\t\t\t\t{{ isClearAction ? $i18n.Common.Clear : $i18n.Common.Select_all}}\n\t\t\t</TopButton>\n\t\t</div>\n\n\t\t<div class=\"top-scheduleCalendar_calendar\">\n\t\t\t<label\n\t\t\t\tclass=\"top-scheduleCalendar_calendarDay\"\n\t\t\t\tv-for=\"day in days\"\n\t\t\t\t:key=\"day.value\"\n\t\t\t>\n\t\t\t\t<input\n\t\t\t\t\tclass=\"top-scheduleCalendar_calendarDayRadio\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t:value=\"day.value\"\n\t\t\t\t\tv-model=\"selectedDays\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t>\n\n\t\t\t\t<span\n\t\t\t\t\tclass=\"top-scheduleCalendar_calendarDayTitle\"\n\t\t\t\t\t:data-top-icon=\"day.isIcon ? day.title : undefined\"\n\t\t\t\t>\n\t\t\t\t\t<template v-if=\"!day.isIcon\">\n\t\t\t\t\t\t{{ day.title }}\n\t\t\t\t\t</template>\n\t\t\t\t</span>\n\t\t\t</label>\n\t\t</div>\n\n\t\t<span\n\t\t\t:class=\"{\n\t\t\t\t'top-scheduleCalendar_selectionSummary': true,\n\t\t\t\t'top-error': !selectedDays.length\n\t\t\t}\"\n\t\t>\n\t\t\t{{ selectionSummary }}\n\t\t</span>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { nextTick, onBeforeUnmount, onMounted, ref } from 'vue';\nimport TopInput from '@/components/forms/input/input.vue';\nimport TopButton from '@/components/forms/button/button.vue';\nimport Core from '@/core/core/core';\nimport { isEmail } from '@/core/utils/check';\nimport { useI18n } from '@/core/plugins/i18n';\nimport type { Props, Emits } from '@/components/schedule/schedule/compoents/email/selector/types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\temails: () => [],\n\tgetEmailSuggestions: () => [],\n});\n\nconst emit = defineEmits<Emits>();\nconst i18n = useI18n();\nconst $ = Core.$;\n\nconst elRootRef = ref<HTMLElement>();\nconst elInputRef = ref<InstanceType<typeof TopInput>>();\nlet elInput: HTMLInputElement | null = null;\nconst autocompleteCache: Record<string, string[]> = {};\n\nconst filterEmails = (emails: string[]) => emails.filter(email => !props.emails.includes(email));\n\nconst submit = (value: unknown = props.modelValue) => {\n\tconst email = String(value).trim();\n\tif (!email) return;\n\tif (!isEmail(email)) {\n\t\tvoid Core.notice(i18n.Common.Enter_valid_email_notice, 'error');\n\n\t\treturn;\n\t}\n\n\temit('submit', email);\n};\n\nconst initAutocomplete = async () => {\n\tawait nextTick();\n\n\telInput = elInputRef.value?.$el.querySelector('input') ?? null;\n\tif (!elInput) return;\n\n\tif (!$?.ui?.autocomplete) {\n\t\tconsole.info('Для работы autocomplete требуется глобальная загрузка jQuery UI Autocomplete');\n\n\t\treturn;\n\t}\n\n\t$(elInput).autocomplete({\n\t\tappendTo: elRootRef.value,\n\t\tminLength: 0,\n\t\tsource: async (request: { term: string }, response: (items: Array<{ label: string, value: string }>) => void) => {\n\t\t\tconst term = request.term;\n\t\t\tif (!(term in autocompleteCache)) {\n\t\t\t\tautocompleteCache[term] = await props.getEmailSuggestions(term);\n\t\t\t}\n\n\t\t\tresponse(filterEmails(autocompleteCache[term]).map(email => ({\n\t\t\t\tlabel: email,\n\t\t\t\tvalue: email,\n\t\t\t})));\n\t\t},\n\t\tselect: (event: Event, ui: { item?: { value: string } }) => {\n\t\t\tif (!ui.item || !elInput) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tsubmit(ui.item.value);\n\t\t\temit('update:modelValue', '');\n\n\t\t\t$(elInput).trigger('focus');\n\t\t},\n\t});\n\n\t$(elInput).attr('autocomplete', 'disabled');\n\t$(elInput).on('focus.scheduleEmailSelector', () => {\n\t\tif (!elInput) return;\n\n\t\t$(elInput).trigger('input');\n\t});\n};\n\nonMounted(() => {\n\tvoid initAutocomplete();\n});\n\nonBeforeUnmount(() => {\n\tif (!$?.ui?.autocomplete || !elInput) return;\n\n\t$(elInput).off('focus.scheduleEmailSelector');\n\t$(elInput).autocomplete('destroy');\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-scheduleEmailSelector\"\n\t\tref=\"elRootRef\"\n\t>\n\t\t<TopInput\n\t\t\tref=\"elInputRef\"\n\t\t\t:modelValue\n\t\t\t@update:modelValue=\"$emit('update:modelValue', $event)\"\n\t\t\t@keydown.enter.prevent=\"submit()\"\n\t\t\t:title=\"$i18n.Common.Enter_email\"\n\t\t\ttype=\"email\"\n\t\t\tsize=\"l\"\n\t\t>\n\t\t\t<TopButton\n\t\t\t\tclass=\"top-scheduleEmailSelector_submit\"\n\t\t\t\tcolor=\"theme\"\n\t\t\t\ticon=\"\"\n\t\t\t\t@click.prevent=\"submit()\"\n\t\t\t/>\n\t\t</TopInput>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport type { Props, Emits } from '@/components/schedule/schedule/compoents/email/types';\nimport ScheduleEmailSelector from '@/components/schedule/schedule/compoents/email/selector/selector.vue';\n\nconst props = withDefaults(defineProps<Props>(), {\n\temails: () => [],\n\tgetEmailSuggestions: () => [],\n\tmaxEmailsCount: -1,\n});\n\nconst emit = defineEmits<Emits>();\n\nconst value = ref('');\n\nconst addEmail = (email: string) => {\n\tconst preparedEmail = email.trim();\n\tif (!preparedEmail || props.emails.includes(preparedEmail)) {\n\t\tvalue.value = '';\n\n\t\treturn;\n\t}\n\n\temit('add:email', preparedEmail);\n\n\tvalue.value = '';\n};\n</script>\n\n<template>\n\t<div class=\"top-scheduleEmail\">\n\t\t<div class=\"top-scheduleEmail_title\">\n\t\t\t{{ $i18n.Projects.Reports_send_to_address }} E-mail:\n\t\t</div>\n\n\t\t<ScheduleEmailSelector\n\t\t\tv-if=\"!(maxEmailsCount && emails.length === maxEmailsCount)\"\n\t\t\tv-model=\"value\"\n\t\t\t:getEmailSuggestions=\"getEmailSuggestions\"\n\t\t\t:emails=\"emails\"\n\t\t\t@submit=\"addEmail\"\n\t\t/>\n\n\t\t<div\n\t\t\tv-if=\"emails.length\"\n\t\t\tclass=\"top-scheduleEmail_emails\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"top-scheduleEmail_emailsItem\"\n\t\t\t\tv-for=\"email in emails\"\n\t\t\t\t:key=\"email\"\n\t\t\t>\n\t\t\t\t<span class=\"top-ellipsis1\">{{ email }}</span>\n\n\t\t\t\t<TopButton\n\t\t\t\t\t@click=\"$emit('remove:email', email)\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\ticon=\"\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport type { Emits, Props, ReportChannelSource } from '@/components/schedule/schedule/compoents/reportSend/types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\tconnectors: () => [],\n});\ndefineEmits<Emits>();\n\nconst hasChannel = (source: ReportChannelSource) => props.channels.some(channel => channel.source === source);\n\nconst sourceIconBySource: Record<ReportChannelSource, string> = {\n\tinformer: '',\n\ttelegram: '',\n};\n</script>\n\n<template>\n\t<div class=\"top-scheduleReportSend\">\n\t\t<div class=\"top-scheduleReportSend_title\">\n\t\t\t{{ $i18n.Projects.Reports_send }}\n\t\t</div>\n\n\t\t<div class=\"top-scheduleReportSend_channels\">\n\t\t\t<div\n\t\t\t\tclass=\"top-scheduleReportSend_channel\"\n\t\t\t\tv-for=\"channel in channels\"\n\t\t\t\t:key=\"`${channel.source}-${channel.id}`\"\n\t\t\t>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"top-scheduleReportSend_channelIcon\"\n\t\t\t\t\t:data-top-icon=\"sourceIconBySource[channel.source]\"\n\t\t\t\t></span>\n\n\t\t\t\t<span class=\"top-scheduleReportSend_channelLabel top-ellipsis1\">\n\t\t\t\t\t{{ channel.label }}\n\t\t\t\t</span>\n\n\t\t\t\t<TopButton\n\t\t\t\t\tv-if=\"channel.settingLink\"\n\t\t\t\t\tclass=\"top-scheduleReportSend_channelSettings\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t:href=\"channel.settingLink\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\ticon=\"\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t></TopButton>\n\n\t\t\t\t<TopSwitcher\n\t\t\t\t\tclass=\"top-scheduleReportSend_channelSwitcher\"\n\t\t\t\t\t:modelValue=\"channel.selected\"\n\t\t\t\t\t@update:modelValue=\"$emit('update:channelSelected', {\n\t\t\t\t\t\tid: channel.id,\n\t\t\t\t\t\tsource: channel.source,\n\t\t\t\t\t\tselected: $event as boolean,\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<template\n\t\t\t\tv-for=\"connector in connectors\"\n\t\t\t\t:key=\"connector.source\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"!hasChannel(connector.source)\"\n\t\t\t\t\tclass=\"top-scheduleReportSend_channel\"\n\t\t\t\t>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"top-scheduleReportSend_channelIcon\"\n\t\t\t\t\t\t:data-top-icon=\"sourceIconBySource[connector.source]\"\n\t\t\t\t\t></span>\n\n\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"top-scheduleReportSend_channelLabel top-ellipsis1\"\n\t\t\t\t\t\t:href=\"connector.connectLink\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ connector.connectLabel }}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport type { Props, Emits, Time } from '@/components/schedule/schedule/compoents/timeSelector/types';\n\nconst props = defineProps<Props>();\ndefineEmits<Emits>();\n\n/**\n * Варианты выбора часа\n */\nconst hourOptions = Array.from({ length: 24 }, (_, index) => ({\n\tvalue: String(index),\n\ttitle: String(index).padStart(2, '0'),\n}));\n\n/**\n * Варианты выбора минут по умолчанию\n */\nconst defaultMinuteOptions = [\n\t{\n\t\tvalue: '0',\n\t\ttitle: '00',\n\t},\n\t{\n\t\tvalue: '15',\n\t\ttitle: '15',\n\t},\n\t{\n\t\tvalue: '30',\n\t\ttitle: '30',\n\t},\n\t{\n\t\tvalue: '45',\n\t\ttitle: '45',\n\t},\n];\n\n/**\n * Варианты выбора минут\n *\n * Дополняются выбранным нестандартным значением, чтобы вывести его в интерфейсе\n */\nconst minuteOptions = computed(() => {\n\tif (defaultMinuteOptions.some((option) => option.value === props.minute)) return defaultMinuteOptions;\n\n\treturn [\n\t\t...defaultMinuteOptions, {\n\t\t\tvalue: props.minute,\n\t\t\ttitle: props.minute.padStart(2, '0'),\n\t\t\tdisabled: true,\n\t\t},\n\t];\n});\n</script>\n\n<template>\n\t<div class=\"top-scheduleTimeSelector\">\n\t\t<TopSelect\n\t\t\tclass=\"top-scheduleTimeSelector_hour\"\n\t\t\t:modelValue=\"hour\"\n\t\t\t:options=\"hourOptions\"\n\t\t\t@update:modelValue=\"$emit('update:hour', $event as Time['hour'])\"\n\t\t/>\n\n\t\t<TopSelect\n\t\t\tclass=\"top-scheduleTimeSelector_minute\"\n\t\t\t:modelValue=\"minute\"\n\t\t\t:options=\"minuteOptions\"\n\t\t\t@update:modelValue=\"$emit('update:minute', $event as Time['minute'])\"\n\t\t/>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { toRaw } from 'vue';\nimport type { Props, Emits } from '@/components/schedule/schedule/compoents/timeSelectors/types';\nimport type { Time } from '@/components/schedule/schedule/compoents/timeSelector/types';\nimport TimeSelector from '@/components/schedule/schedule/compoents/timeSelector/timeSelector.vue';\n\nconst props = defineProps<Props>();\nconst emit = defineEmits<Emits>();\nconst timeKeys = new WeakMap<Time, number>();\nlet nextTimeKey = 0;\n\nconst getTimeKey = (rawOrProxyTime: Time) => {\n\t// time может быть proxy или обычным объектом\n\tconst time = toRaw(rawOrProxyTime);\n\n\tconst existingKey = timeKeys.get(time);\n\tif (existingKey !== undefined) return existingKey;\n\n\tconst key = nextTimeKey++;\n\ttimeKeys.set(time, key);\n\n\treturn key;\n};\n\nconst updateTime = (index: number, patch: Partial<Props['times'][number]>) => {\n\tconst updatedTimes = props.times.map((time, i) => {\n\t\tif (i !== index) return time;\n\n\t\tconst updatedTime = { ...time, ...patch };\n\t\ttimeKeys.set(updatedTime, getTimeKey(time));\n\n\t\treturn updatedTime;\n\t});\n\n\temit('update:times', updatedTimes);\n};\n\nconst addTime = () => {\n\tconst time: Time = {\n\t\thour: '0',\n\t\tminute: '0',\n\t};\n\n\tconst updatedTimes = [\n\t\ttime,\n\t\t...props.times,\n\t];\n\n\temit('update:times', updatedTimes);\n};\n</script>\n\n<template>\n\t<div class=\"top-scheduleTimeSelectors\">\n\t\t<div\n\t\t\tclass=\"top-scheduleTimeSelectors_item\"\n\t\t\tv-for=\"(time, index) in times\"\n\t\t\t:key=\"getTimeKey(time)\"\n\t\t>\n\t\t\t<TimeSelector\n\t\t\t\t:hour=\"time.hour\"\n\t\t\t\t:minute=\"time.minute\"\n\t\t\t\t@update:hour=\"updateTime(index, { hour: $event as Time['hour'] })\"\n\t\t\t\t@update:minute=\"updateTime(index, { minute: $event as Time['minute'] })\"\n\t\t\t/>\n\n\t\t\t<TopButton\n\t\t\t\tv-if=\"index\"\n\t\t\t\t@click=\"$emit('update:times', times.filter((_, i) => i !== index))\"\n\t\t\t\tcolor=\"theme\"\n\t\t\t\ticon=\"\"\n\t\t\t/>\n\n\t\t\t<TopButton\n\t\t\t\tv-else\n\t\t\t\tclass=\"top-scheduleTimeSelectors_itemAdd\"\n\t\t\t\t@click=\"addTime\"\n\t\t\t\tcolor=\"theme\"\n\t\t\t\ticon=\"\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"]}
|
|
1
|
+
{"version":3,"sources":["schedule/schedule.js","../../src/components/schedule/schedule/compoents/calendar/composables/useDaysByCalendarMode.ts","../../src/components/schedule/schedule/compoents/timeSelector/timeSelector.vue","../../src/components/schedule/schedule/compoents/calendar/calendar.vue","../../src/components/schedule/schedule/utils.ts","../../src/components/schedule/schedule/schedule.vue","../../src/components/schedule/schedule/compoents/emails/selector/selector.vue","../../src/components/schedule/schedule/compoents/emails/emails.vue","../../src/components/schedule/schedule/compoents/socials/socials.vue"],"names":["vue","exports","N","n","forms_Ch1q0UUt_es_js_1","vue_1","t","P","F","a","o","c","p","h","s","I","L","R","z","B","V","i","l","g","string_js_1","H","U","W","G","K","q","te","J","Y","X","r","Z","u","f","v","C","w","check_js_1","T","e","Q","ne","re","ie","ae","oe","$","se","ce","le","ue","de","fe","pe"],"mappings":"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","sourcesContent":["define([\"require\", \"exports\", \"../.chunks/forms-Ch1q0UUt.es.js\", \"../utils/check.js\", \"../utils/string.js\", \"vue\", \"../.chunks/app-CY6euLQJ.es.js\"], function (require, exports, forms_Ch1q0UUt_es_js_1, check_js_1, string_js_1, vue_1) {\n \"use strict\";\n Object.defineProperty(exports, \"__esModule\", { value: true });\n exports.TopScheduleSocials = exports.TopScheduleEmails = exports.TopSchedule = void 0;\n //#region src/components/schedule/schedule/compoents/calendar/composables/useDaysByCalendarMode.ts\n var N = (t) => {\n let n = (0, forms_Ch1q0UUt_es_js_1.E)();\n return (0, vue_1.computed)(() => {\n switch ((0, vue_1.toValue)(t)) {\n case \"dayOfMonth\": {\n let e = Array.from({ length: 27 }, (e, t) => ({\n value: String(t + 1),\n title: String(t + 1)\n }));\n return e.push({\n value: \"LAST_OF_MONTH\",\n title: \"\",\n isIcon: !0\n }), e;\n }\n case \"dayOfWeek\": return [\n {\n value: \"MONDAY\",\n title: n.Calendar.Dw_1\n },\n {\n value: \"TUESDAY\",\n title: n.Calendar.Dw_2\n },\n {\n value: \"WEDNESDAY\",\n title: n.Calendar.Dw_3\n },\n {\n value: \"THURSDAY\",\n title: n.Calendar.Dw_4\n },\n {\n value: \"FRIDAY\",\n title: n.Calendar.Dw_5\n },\n {\n value: \"SATURDAY\",\n title: n.Calendar.Dw_6\n },\n {\n value: \"SUNDAY\",\n title: n.Calendar.Dw_7\n }\n ];\n default: return [];\n }\n });\n }, P = { class: \"top-scheduleTimeSelector\" }, F = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"timeSelector\",\n props: /*@__PURE__*/ (0, vue_1.mergeModels)({\n modelValue: {},\n multipleTimes: { type: Boolean }\n }, {\n modelValue: { required: !0 },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e) {\n let t = e, n = (0, vue_1.useModel)(e, \"modelValue\"), r = Array.from({ length: 24 }, (e, t) => ({\n value: String(t),\n title: String(t).padStart(2, \"0\")\n })), i = Array.from({ length: 4 }, (e, t) => {\n let n = t * 15;\n return {\n value: String(n),\n title: String(n).padStart(2, \"0\")\n };\n }), a = (e, t) => {\n let r = [...n.value];\n r[e] = {\n ...r[e],\n ...t\n }, n.value = r;\n }, o = () => {\n n.value = [{\n hour: \"0\",\n minute: \"0\"\n }, ...n.value];\n }, c = (e) => {\n n.value = n.value.filter((t, n) => n !== e);\n };\n return (e, f) => {\n let p = (0, vue_1.resolveComponent)(\"TopSelect\"), h = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", P, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(n.value, (e, s) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n key: s,\n class: \"top-scheduleTimeSelector_item\"\n }, [\n (0, vue_1.createVNode)(p, {\n class: \"top-scheduleTimeSelector_hour\",\n modelValue: e.hour,\n options: (0, vue_1.unref)(r),\n \"onUpdate:modelValue\": (e) => a(s, { hour: e })\n }, null, 8, [\n \"modelValue\",\n \"options\",\n \"onUpdate:modelValue\"\n ]),\n (0, vue_1.createVNode)(p, {\n class: \"top-scheduleTimeSelector_minute\",\n modelValue: e.minute,\n options: (0, vue_1.unref)(i),\n availableCustomValue: \"\",\n \"onUpdate:modelValue\": (e) => a(s, { minute: e })\n }, null, 8, [\n \"modelValue\",\n \"options\",\n \"onUpdate:modelValue\"\n ]),\n t.multipleTimes || n.value.length > 1 ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(h, {\n key: 0,\n onClick: (e) => s ? c(s) : o(),\n color: \"theme\",\n icon: s ? \"\" : \"\"\n }, null, 8, [\"onClick\", \"icon\"])) : (0, vue_1.createCommentVNode)(\"\", !0)\n ]))), 128))]);\n };\n }\n }), I = { class: \"top-scheduleCalendar\" }, L = { class: \"top-scheduleCalendar_header\" }, R = { class: \"top-scheduleCalendar_calendar\" }, z = [\n \"value\",\n \"checked\",\n \"onChange\"\n ], B = [\"data-top-icon\"], V = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"calendar\",\n props: /*@__PURE__*/ (0, vue_1.mergeModels)({\n modelValue: {},\n mode: {},\n times: {},\n multipleTimes: { type: Boolean }\n }, {\n modelValue: { required: !0 },\n modelModifiers: {},\n times: { required: !0 },\n timesModifiers: {}\n }),\n emits: [\"update:modelValue\", \"update:times\"],\n setup(e) {\n let t = e, n = (0, vue_1.useModel)(e, \"modelValue\"), r = (0, vue_1.useModel)(e, \"times\");\n r.value.length || (r.value = [{\n hour: \"0\",\n minute: \"0\"\n }]);\n let i = N(() => t.mode), a = (0, vue_1.computed)(() => n.value.includes(\"ALL\") || n.value.length === i.value.length), l = (e) => {\n let t = n.value.includes(\"ALL\") ? i.value.map((e) => e.value) : [...n.value], r = t.indexOf(e);\n r === -1 ? t.push(e) : t.splice(r, 1), n.value = t.length === i.value.length ? [\"ALL\"] : t;\n }, h = () => {\n n.value = a.value ? [] : [\"ALL\"];\n };\n return (t, c) => {\n let g = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", I, [\n (0, vue_1.createElementVNode)(\"div\", L, [(0, vue_1.createVNode)(F, {\n modelValue: r.value,\n \"onUpdate:modelValue\": c[0] ||= (e) => r.value = e,\n multipleTimes: e.multipleTimes\n }, null, 8, [\"modelValue\", \"multipleTimes\"]), (0, vue_1.createVNode)(g, {\n onClick: c[1] ||= (e) => h(),\n color: \"theme\",\n tabindex: \"0\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(a.value ? t.$i18n.Common.Clear : t.$i18n.Common.Select_all), 1)]),\n _: 1\n })]),\n (0, vue_1.createElementVNode)(\"div\", R, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)((0, vue_1.unref)(i), (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"label\", {\n class: \"top-scheduleCalendar_calendarDay\",\n key: e.value\n }, [(0, vue_1.createElementVNode)(\"input\", {\n class: \"top-scheduleCalendar_calendarDayCheckbox\",\n type: \"checkbox\",\n value: e.value,\n checked: n.value.includes(\"ALL\") || n.value.includes(e.value),\n onChange: (t) => l(e.value),\n tabindex: \"0\"\n }, null, 40, z), (0, vue_1.createElementVNode)(\"span\", {\n class: \"top-scheduleCalendar_calendarDayTitle\",\n \"data-top-icon\": e.isIcon ? e.title : void 0\n }, [e.isIcon ? (0, vue_1.createCommentVNode)(\"\", !0) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 0 }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(e.title), 1)], 64))], 8, B)]))), 128))]),\n (0, vue_1.createElementVNode)(\"span\", { class: (0, vue_1.normalizeClass)({\n \"top-scheduleCalendar_selectionSummary\": !0,\n \"top-error\": !n.value.length\n }) }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(a.value ? t.$i18n.Common.Every_day : n.value.length) + \" \", 1), r.value.length > 1 || !a.value ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: 0 }, [(0, vue_1.createTextVNode)((0, vue_1.toDisplayString)(r.value.length > 1 ? ` × ${r.value.length}` : \"\") + \" \" + (0, vue_1.toDisplayString)((0, vue_1.unref)(string_js_1.numberEnding)(r.value.length === 1 ? n.value.length : r.value.length, t.$i18n.Common.time_a_0, t.$i18n.Common.time_a_0, t.$i18n.Common.time_a_2)) + \" \" + (0, vue_1.toDisplayString)(e.mode === \"dayOfWeek\" ? t.$i18n.Common.a_week : t.$i18n.Common.a_month), 1)], 64)) : (0, vue_1.createCommentVNode)(\"\", !0)], 2)\n ]);\n };\n }\n }), H = [\n \"onDemand\",\n \"dayOfWeek\",\n \"dayOfMonth\",\n \"afterYandexUpdated\"\n ], U = () => {\n let t = (0, forms_Ch1q0UUt_es_js_1.E)();\n return [{\n value: \"0\",\n title: t.Projects.immediately\n }, ...Array.from({ length: 24 }, (e, n) => ({\n value: String(n + 1),\n title: t(\"Projects\", \"in_hour\", { hour: n + 1 })\n }))];\n }, W = (e) => e === \"dayOfWeek\" || e === \"dayOfMonth\", G = (e, t = \"onDemand\") => e.includes(\"YANDEX_UPDATE\") ? \"afterYandexUpdated\" : e.includes(\"CHECK_POSITIONS\") ? \"afterCheck\" : e.includes(\"LAST_OF_MONTH\") || e.some((e) => /^\\d+$/.test(e)) ? \"dayOfMonth\" : e.length ? W(t) ? t : \"dayOfWeek\" : t, K = (t) => {\n let n = (0, forms_Ch1q0UUt_es_js_1.E)(), r = {\n onDemand: n.Projects.Settings_on_demand,\n dayOfWeek: n.Projects.Report_on_weekdays,\n dayOfMonth: n.Projects.Settings_particular_days,\n afterYandexUpdated: n.Projects.After_updates,\n afterCheck: t.includes(\"afterCheck\") ? n.Dynamics.Report_after_tracking_30min_1 : \"\"\n };\n return t.map((e) => ({\n value: e,\n title: r[e]\n }));\n }, q = { class: \"top-schedule_header\" }, te = { class: \"top-schedule_headerTitle\" }, J = {\n key: 0,\n class: \"top-schedule_body\"\n }, Y = { key: 2 }, X = /* @__PURE__ */ (0, vue_1.defineComponent)({\n name: \"TopSchedule\",\n __name: \"schedule\",\n props: /*@__PURE__*/ (0, vue_1.mergeModels)({\n modelValue: {},\n type: { default: \"go\" },\n availableMods: {},\n multipleTimes: { type: Boolean },\n title: {}\n }, {\n modelValue: { required: !0 },\n modelModifiers: {}\n }),\n emits: [\"update:modelValue\"],\n setup(e, { slots: t }) {\n let n = e, r = (0, vue_1.useModel)(e, \"modelValue\"), a = (0, vue_1.ref)(G(r.value.days)), o = (0, vue_1.computed)(() => K(n.availableMods ?? (n.type === \"report\" ? [...H, \"afterCheck\"] : H))), s = U(), p = {};\n return (0, vue_1.watch)(r, () => {\n p[a.value] = {\n days: [...r.value.days],\n times: r.value.times.map((e) => ({ ...e }))\n };\n }, {\n deep: !0,\n immediate: !0\n }), (0, vue_1.watch)(() => r.value.days, () => a.value = G(r.value.days, a.value), {\n deep: !0,\n immediate: !0\n }), (0, vue_1.watch)(a, (e) => {\n let t = p[e];\n switch (e) {\n case \"onDemand\":\n r.value = {\n days: [],\n times: []\n };\n break;\n case \"dayOfWeek\":\n case \"dayOfMonth\":\n r.value = {\n ...r.value,\n days: t?.days ?? [\"ALL\"],\n times: t?.times ?? [{\n hour: \"0\",\n minute: \"0\"\n }]\n };\n break;\n case \"afterYandexUpdated\":\n r.value = {\n days: [\"YANDEX_UPDATE\"],\n times: t?.times ?? [{\n hour: \"0\",\n minute: \"0\"\n }]\n };\n break;\n case \"afterCheck\": r.value = {\n days: [\"CHECK_POSITIONS\"],\n times: t?.times ?? [{\n hour: \"0\",\n minute: \"30\"\n }]\n };\n }\n }), (n, c) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", { class: (0, vue_1.normalizeClass)([\"top-schedule\", \"top-schedule-type_\" + e.type]) }, [(0, vue_1.createElementVNode)(\"div\", q, [(0, vue_1.createElementVNode)(\"div\", te, (0, vue_1.toDisplayString)(e.title ?? (e.type === \"go\" ? n.$i18n.Projects.Checks : n.$i18n.Projects.Reports)), 1), (0, vue_1.createVNode)(forms_Ch1q0UUt_es_js_1.n, {\n class: \"top-schedule_headerMods\",\n modelValue: a.value,\n \"onUpdate:modelValue\": c[0] ||= (e) => a.value = e,\n options: o.value,\n size: \"s\"\n }, null, 8, [\"modelValue\", \"options\"])]), a.value !== \"onDemand\" && ((0, vue_1.unref)(W)(a.value) || a.value === \"afterYandexUpdated\" || t.settings) ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", J, [\n a.value === \"afterYandexUpdated\" && r.value.times[0] ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(forms_Ch1q0UUt_es_js_1.n, {\n key: 0,\n class: \"top-schedule_afterYandexUpdatedDelay\",\n modelValue: r.value.times[0].hour,\n \"onUpdate:modelValue\": c[1] ||= (e) => r.value.times[0].hour = e,\n options: (0, vue_1.unref)(s),\n size: \"s\"\n }, null, 8, [\"modelValue\", \"options\"])) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.unref)(W)(a.value) ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(V, {\n key: 1,\n modelValue: r.value.days,\n \"onUpdate:modelValue\": c[2] ||= (e) => r.value.days = e,\n times: r.value.times,\n \"onUpdate:times\": c[3] ||= (e) => r.value.times = e,\n mode: a.value,\n multipleTimes: e.multipleTimes\n }, null, 8, [\n \"modelValue\",\n \"times\",\n \"mode\",\n \"multipleTimes\"\n ])) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.unref)(W)(a.value) && t.settings ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"hr\", Y)) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.renderSlot)(n.$slots, \"settings\", { mode: a.value })\n ])) : (0, vue_1.createCommentVNode)(\"\", !0)], 2));\n }\n }), Z = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"selector\",\n props: {\n modelValue: {},\n emails: { default: () => [] },\n getEmailSuggestions: {\n type: Function,\n default: () => []\n }\n },\n emits: [\"update:modelValue\", \"submit\"],\n setup(i, { emit: o }) {\n let s = o, c = i, l = o, u = (0, forms_Ch1q0UUt_es_js_1.E)(), f = forms_Ch1q0UUt_es_js_1.O.$, p = (0, vue_1.ref)(), h = (0, vue_1.ref)(), g = null, v = {}, C = (e) => e.filter((e) => !c.emails.includes(e)), w = (e = c.modelValue) => {\n let n = String(e).trim();\n if (n) {\n if (!(0, check_js_1.isEmail)(n)) {\n forms_Ch1q0UUt_es_js_1.O.notice(u.Common.Enter_valid_email_notice, \"error\");\n return;\n }\n l(\"submit\", n);\n }\n }, T = async () => {\n if (await (0, vue_1.nextTick)(), g = h.value?.$el.querySelector(\"input\") ?? null, g) {\n if (!f?.ui?.autocomplete) {\n console.info(\"Для работы autocomplete требуется глобальная загрузка jQuery UI Autocomplete\");\n return;\n }\n f(g).autocomplete({\n appendTo: p.value,\n minLength: 0,\n source: async (e, t) => {\n let n = e.term;\n n in v || (v[n] = await c.getEmailSuggestions(n)), t(C(v[n]).map((e) => ({\n label: e,\n value: e\n })));\n },\n select: (e, t) => {\n t.item && g && (e.preventDefault(), w(t.item.value), l(\"update:modelValue\", \"\"), f(g).trigger(\"focus\"));\n }\n }), f(g).attr(\"autocomplete\", \"disabled\"), f(g).on(\"focus.scheduleEmailSelector\", () => {\n g && f(g).trigger(\"input\");\n });\n }\n };\n return (0, vue_1.onMounted)(() => {\n T();\n }), (0, vue_1.onBeforeUnmount)(() => {\n f?.ui?.autocomplete && g && (f(g).off(\"focus.scheduleEmailSelector\"), f(g).autocomplete(\"destroy\"));\n }), (e, t) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-scheduleEmailSelector\",\n ref_key: \"elRootRef\",\n ref: p\n }, [(0, vue_1.createVNode)(forms_Ch1q0UUt_es_js_1.c, {\n ref_key: \"elInputRef\",\n ref: h,\n modelValue: i.modelValue,\n \"onUpdate:modelValue\": t[1] ||= (e) => s(\"update:modelValue\", e),\n onKeydown: t[2] ||= (0, vue_1.withKeys)((0, vue_1.withModifiers)((e) => w(), [\"prevent\"]), [\"enter\"]),\n title: e.$i18n.Common.Enter_email,\n type: \"email\",\n size: \"l\"\n }, {\n default: (0, vue_1.withCtx)(() => [(0, vue_1.createVNode)(forms_Ch1q0UUt_es_js_1.h, {\n class: \"top-scheduleEmailSelector_submit\",\n color: \"theme\",\n icon: \"\",\n onClick: t[0] ||= (0, vue_1.withModifiers)((e) => w(), [\"prevent\"])\n })]),\n _: 1\n }, 8, [\"modelValue\", \"title\"])], 512));\n }\n }), Q = { class: \"top-scheduleEmail\" }, ne = { class: \"top-scheduleEmail_title\" }, re = {\n key: 1,\n class: \"top-scheduleEmail_emails\"\n }, ie = { class: \"top-ellipsis1\" }, ae = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"emails\",\n props: {\n emails: { default: () => [] },\n getEmailSuggestions: {\n type: Function,\n default: () => []\n },\n maxEmailsCount: { default: -1 }\n },\n emits: [\"add:email\", \"remove:email\"],\n setup(e, { emit: t }) {\n let n = t, r = e, i = t, a = (0, vue_1.ref)(\"\"), o = (e) => {\n let t = e.trim();\n if (!t || r.emails.includes(t)) {\n a.value = \"\";\n return;\n }\n i(\"add:email\", t), a.value = \"\";\n };\n return (t, r) => {\n let i = (0, vue_1.resolveComponent)(\"TopButton\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", Q, [\n (0, vue_1.createElementVNode)(\"div\", ne, (0, vue_1.toDisplayString)(t.$i18n.Projects.Reports_send_to_address) + \" E-mail: \", 1),\n e.maxEmailsCount && e.emails.length === e.maxEmailsCount ? (0, vue_1.createCommentVNode)(\"\", !0) : ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(Z, {\n key: 0,\n modelValue: a.value,\n \"onUpdate:modelValue\": r[0] ||= (e) => a.value = e,\n getEmailSuggestions: e.getEmailSuggestions,\n emails: e.emails,\n onSubmit: o\n }, null, 8, [\n \"modelValue\",\n \"getEmailSuggestions\",\n \"emails\"\n ])),\n e.emails.length ? ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", re, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(e.emails, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-scheduleEmail_emailsItem\",\n key: e\n }, [(0, vue_1.createElementVNode)(\"span\", ie, (0, vue_1.toDisplayString)(e), 1), (0, vue_1.createVNode)(i, {\n onClick: (t) => n(\"remove:email\", e),\n color: \"theme\",\n icon: \"\"\n }, null, 8, [\"onClick\"])]))), 128))])) : (0, vue_1.createCommentVNode)(\"\", !0)\n ]);\n };\n }\n }), oe = { class: \"top-scheduleSocials\" }, $ = { class: \"top-scheduleSocials_title\" }, se = { class: \"top-scheduleSocials_channels\" }, ce = [\"data-top-icon\"], le = { class: \"top-scheduleSocials_channelLabel top-ellipsis1\" }, ue = {\n key: 0,\n class: \"top-scheduleSocials_channel\"\n }, de = [\"data-top-icon\"], fe = [\"href\"], pe = /* @__PURE__ */ (0, vue_1.defineComponent)({\n __name: \"socials\",\n props: {\n channels: {},\n connectors: {}\n },\n emits: [\"update:channelSelected\"],\n setup(e, { emit: t }) {\n let n = e, r = (e) => n.channels.some((t) => t.source === e), i = {\n informer: \"\",\n telegram: \"\"\n };\n return (n, a) => {\n let o = (0, vue_1.resolveComponent)(\"TopButton\"), c = (0, vue_1.resolveComponent)(\"TopSwitcher\");\n return (0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", oe, [(0, vue_1.createElementVNode)(\"div\", $, (0, vue_1.toDisplayString)(n.$i18n.Projects.Reports_send_to_address), 1), (0, vue_1.createElementVNode)(\"div\", se, [((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(e.channels, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", {\n class: \"top-scheduleSocials_channel\",\n key: `${e.source}-${e.id}`\n }, [\n (0, vue_1.createElementVNode)(\"span\", {\n class: \"top-scheduleSocials_channelIcon\",\n \"data-top-icon\": i[e.source]\n }, null, 8, ce),\n (0, vue_1.createElementVNode)(\"span\", le, (0, vue_1.toDisplayString)(e.label), 1),\n e.settingLink ? ((0, vue_1.openBlock)(), (0, vue_1.createBlock)(o, {\n key: 0,\n class: \"top-scheduleSocials_channelSettings\",\n size: \"xs\",\n href: e.settingLink,\n target: \"_blank\",\n icon: \"\",\n color: \"theme\",\n tabindex: \"0\"\n }, null, 8, [\"href\"])) : (0, vue_1.createCommentVNode)(\"\", !0),\n (0, vue_1.createVNode)(c, {\n class: \"top-scheduleSocials_channelSwitcher\",\n modelValue: e.selected,\n \"onUpdate:modelValue\": (n) => t(\"update:channelSelected\", {\n id: e.id,\n source: e.source,\n selected: n\n })\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\"])\n ]))), 128)), ((0, vue_1.openBlock)(!0), (0, vue_1.createElementBlock)(vue_1.Fragment, null, (0, vue_1.renderList)(e.connectors, (e) => ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(vue_1.Fragment, { key: e.source }, [r(e.source) ? (0, vue_1.createCommentVNode)(\"\", !0) : ((0, vue_1.openBlock)(), (0, vue_1.createElementBlock)(\"div\", ue, [(0, vue_1.createElementVNode)(\"span\", {\n class: \"top-scheduleSocials_channelIcon\",\n \"data-top-icon\": i[e.source]\n }, null, 8, de), (0, vue_1.createElementVNode)(\"a\", {\n class: \"top-scheduleSocials_channelLabel top-ellipsis1\",\n href: e.connectLink,\n target: \"_blank\"\n }, (0, vue_1.toDisplayString)(e.connectLabel), 9, fe)]))], 64))), 128))])]);\n };\n }\n });\n exports.TopSchedule = X;\n exports.TopScheduleEmails = ae;\n exports.TopScheduleSocials = pe;\n});\n//# sourceMappingURL=schedule.js.map\n","import { computed, type MaybeRefOrGetter, toValue } from 'vue';\nimport type { Day, Props } from '../types';\nimport { useI18n } from '@/core/app';\n\n/**\n * Формирует список дней для выбранного режима календаря.\n */\nexport const useDaysByCalendarMode = (mode: MaybeRefOrGetter<Props['mode']>) => {\n\tconst i18n = useI18n();\n\n\treturn computed<Day[]>(() => {\n\t\tswitch (toValue(mode)) {\n\t\t\t// Дни месяца\n\t\t\tcase 'dayOfMonth': {\n\t\t\t\tconst days: Day[] = Array.from({ length: 27 }, (_, index) => ({\n\t\t\t\t\tvalue: String(index + 1) as Day['value'],\n\t\t\t\t\ttitle: String(index + 1),\n\t\t\t\t}));\n\n\t\t\t\tdays.push({\n\t\t\t\t\tvalue: 'LAST_OF_MONTH',\n\t\t\t\t\ttitle: '',\n\t\t\t\t\tisIcon: true,\n\t\t\t\t});\n\n\t\t\t\treturn days;\n\t\t\t}\n\n\t\t\t// Дни недели\n\t\t\tcase 'dayOfWeek':\n\t\t\t\treturn [\n\t\t\t\t\t{ value: 'MONDAY', title: i18n.Calendar.Dw_1 },\n\t\t\t\t\t{ value: 'TUESDAY', title: i18n.Calendar.Dw_2 },\n\t\t\t\t\t{ value: 'WEDNESDAY', title: i18n.Calendar.Dw_3 },\n\t\t\t\t\t{ value: 'THURSDAY', title: i18n.Calendar.Dw_4 },\n\t\t\t\t\t{ value: 'FRIDAY', title: i18n.Calendar.Dw_5 },\n\t\t\t\t\t{ value: 'SATURDAY', title: i18n.Calendar.Dw_6 },\n\t\t\t\t\t{ value: 'SUNDAY', title: i18n.Calendar.Dw_7 },\n\t\t\t\t];\n\n\t\t\tdefault:\n\t\t\t\treturn [];\n\t\t}\n\t});\n};\n","<script setup lang=\"ts\">\nimport type { Props } from '@/components/schedule/schedule/compoents/timeSelector/types';\n\nconst props = defineProps<Props>();\n\nconst times = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\n/**\n * Варианты выбора часа от 00 до 23.\n */\nconst hourOptions = Array.from({ length: 24 }, (_, index) => ({\n\tvalue: String(index),\n\ttitle: String(index).padStart(2, '0'),\n}));\n\n/**\n * Предустановленные варианты минут.\n *\n * Поддерижвает вставку произвольного значения через `modelValue`.\n */\nconst minuteOptions = Array.from({ length: 4 }, (_, index) => {\n\tconst minute = index * 15;\n\n\treturn {\n\t\tvalue: String(minute),\n\t\ttitle: String(minute).padStart(2, '0'),\n\t};\n});\n\nconst updateTimeByIndex = (index: number, patch: Partial<Props['modelValue'][number]>) => {\n\tconst nextTimes = [...times.value];\n\tnextTimes[index] = { ...nextTimes[index], ...patch };\n\n\ttimes.value = nextTimes;\n};\n\nconst addTime = () => {\n\ttimes.value = [\n\t\t{\n\t\t\thour: '0',\n\t\t\tminute: '0',\n\t\t},\n\t\t...times.value,\n\t];\n};\n\nconst delTime = (index: number) => {\n\ttimes.value = times.value.filter((_, timeIndex) => timeIndex !== index);\n};\n\n</script>\n\n<template>\n\t<div class=\"top-scheduleTimeSelector\">\n\t\t<div v-for=\"(time, index) in times\" :key=\"index\" class=\"top-scheduleTimeSelector_item\">\n\t\t\t<TopSelect\n\t\t\t\tclass=\"top-scheduleTimeSelector_hour\"\n\t\t\t\t:modelValue=\"time.hour\"\n\t\t\t\t:options=\"hourOptions\"\n\t\t\t\t@update:modelValue=\"updateTimeByIndex(index, { hour: $event as Props['modelValue'][number]['hour'] })\"\n\t\t\t/>\n\n\t\t\t<TopSelect\n\t\t\t\tclass=\"top-scheduleTimeSelector_minute\"\n\t\t\t\t:modelValue=\"time.minute\"\n\t\t\t\t:options=\"minuteOptions\"\n\t\t\t\tavailableCustomValue\n\t\t\t\t@update:modelValue=\"updateTimeByIndex(index, { minute: $event as Props['modelValue'][number]['minute'] })\"\n\t\t\t/>\n\n\t\t\t<TopButton\n\t\t\t\tv-if=\"props.multipleTimes || times.length > 1\"\n\t\t\t\t@click=\"index ? delTime(index) : addTime()\"\n\t\t\t\tcolor=\"theme\"\n\t\t\t\t:icon=\"index ? '' : ''\"\n\t\t\t/>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport type { Props } from '@/components/schedule/schedule/compoents/calendar/types';\nimport { useDaysByCalendarMode } from './composables/useDaysByCalendarMode';\nimport { numberEnding } from '@/core/utils/string';\nimport { computed } from 'vue';\nimport TopScheduleTimeSelector from '@/components/schedule/schedule/compoents/timeSelector/timeSelector.vue';\n\nconst props = defineProps<Props>();\n\nconst selectedDays = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\nconst times = defineModel<Props['times']>('times', {\n\trequired: true,\n});\n\nif (!times.value.length) times.value = [{ hour: '0', minute: '0' }];\n\nconst days = useDaysByCalendarMode(() => props.mode);\n\nconst isAllDaysSelected = computed(() => selectedDays.value.includes('ALL') || selectedDays.value.length === days.value.length);\n\nconst toggleDay = (day: Props['modelValue'][number]) => {\n\tconst nextDays = selectedDays.value.includes('ALL') ? days.value.map(item => item.value) : [...selectedDays.value];\n\tconst dayIndex = nextDays.indexOf(day);\n\n\tif (dayIndex === -1) {\n\t\tnextDays.push(day);\n\t} else {\n\t\tnextDays.splice(dayIndex, 1);\n\t}\n\n\tselectedDays.value = nextDays.length === days.value.length ? ['ALL'] : nextDays;\n};\n\nconst toggleSelectAll = () => {\n\tselectedDays.value = isAllDaysSelected.value ? [] : ['ALL'];\n};\n</script>\n\n<template>\n\t<div class=\"top-scheduleCalendar\">\n\t\t<div class=\"top-scheduleCalendar_header\">\n\t\t\t<TopScheduleTimeSelector v-model=\"times\" :multipleTimes />\n\n\t\t\t<TopButton\n\t\t\t\t@click=\"toggleSelectAll()\"\n\t\t\t\tcolor=\"theme\"\n\t\t\t\ttabindex=\"0\"\n\t\t\t>\n\t\t\t\t{{ isAllDaysSelected ? $i18n.Common.Clear : $i18n.Common.Select_all }}\n\t\t\t</TopButton>\n\t\t</div>\n\n\t\t<div class=\"top-scheduleCalendar_calendar\">\n\t\t\t<label\n\t\t\t\tclass=\"top-scheduleCalendar_calendarDay\"\n\t\t\t\tv-for=\"day in days\"\n\t\t\t\t:key=\"day.value\"\n\t\t\t>\n\t\t\t\t<input\n\t\t\t\t\tclass=\"top-scheduleCalendar_calendarDayCheckbox\"\n\t\t\t\t\ttype=\"checkbox\"\n\t\t\t\t\t:value=\"day.value\"\n\t\t\t\t\t:checked=\"selectedDays.includes('ALL') || selectedDays.includes(day.value)\"\n\t\t\t\t\t@change=\"toggleDay(day.value)\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t>\n\n\t\t\t\t<span\n\t\t\t\t\tclass=\"top-scheduleCalendar_calendarDayTitle\"\n\t\t\t\t\t:data-top-icon=\"day.isIcon ? day.title : undefined\"\n\t\t\t\t>\n\t\t\t\t\t<template v-if=\"!day.isIcon\">\n\t\t\t\t\t\t{{ day.title }}\n\t\t\t\t\t</template>\n\t\t\t\t</span>\n\t\t\t</label>\n\t\t</div>\n\n\t\t<span\n\t\t\t:class=\"{\n\t\t\t\t'top-scheduleCalendar_selectionSummary': true,\n\t\t\t'top-error': !selectedDays.length\n\t\t\t}\"\n\t\t>\n\t\t\t<!-- Каждый день или Число проверок в неделю / месяц-->\n\t\t\t{{\n\t\t\t\tisAllDaysSelected ?\n\t\t\t\t\t$i18n.Common.Every_day :\n\t\t\t\t\tselectedDays.length\n\t\t\t}}\n\n\t\t\t<template v-if=\"times.length > 1 || !isAllDaysSelected\">\n\t\t\t\t<!-- Добавить число временных слотов, если их несколько -->\n\t\t\t\t{{ times.length > 1 ? ` × ${times.length}` : '' }}\n\n\t\t\t\t<!-- Суффикс \"раз\" -->\n\t\t\t\t{{\n\t\t\t\t\tnumberEnding(\n\t\t\t\t\t\ttimes.length === 1 ? selectedDays.length : times.length,\n\t\t\t\t\t\t$i18n.Common.time_a_0,\n\t\t\t\t\t\t$i18n.Common.time_a_0,\n\t\t\t\t\t\t$i18n.Common.time_a_2,\n\t\t\t\t\t)\n\t\t\t\t}}\n\n\t\t\t\t<!-- В неделю / месяц-->\n\t\t\t\t{{ mode === 'dayOfWeek' ? $i18n.Common.a_week : $i18n.Common.a_month }}\n\t\t\t</template>\n\t\t</span>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","import type { Props as CalendarProps } from './compoents/calendar/types';\nimport type { Mode, Props } from './types';\nimport type { Option as TopSelectOption } from '@/components/forms/select/types';\nimport { useI18n } from '@/core/plugins/i18n';\n\nexport const defaultMods: Mode[] = ['onDemand', 'dayOfWeek', 'dayOfMonth', 'afterYandexUpdated'];\n\n/**\n * Генерирует варианты задержки запуска после апдейта Яндекса.\n *\n * См. Апометр\n */\nexport const genAfterYandexUpdatedOptions = (): TopSelectOption[] => {\n\tconst i18n = useI18n();\n\n\treturn [\n\t\t{\n\t\t\tvalue: '0',\n\t\t\ttitle: i18n.Projects.immediately,\n\t\t},\n\t\t...Array.from({ length: 24 }, (_, index) => ({\n\t\t\tvalue: String(index + 1),\n\t\t\ttitle: i18n('Projects', 'in_hour', { hour: index + 1 }),\n\t\t})),\n\t];\n};\n\n/**\n * Проверяет, относится ли режим к календарным режимам.\n *\n * Календарный режим, это режим с выбором дней недели или месяца.\n */\nexport const isCalendarMode = (value: Mode): value is CalendarProps['mode'] => value === 'dayOfWeek' || value === 'dayOfMonth';\n\n/**\n * Определяет режим расписания по выбранным дням.\n */\nexport const getModeByDays = (days: Props['modelValue']['days'], currentMode: Mode = 'onDemand'): Mode => {\n\tif (days.includes('YANDEX_UPDATE')) return 'afterYandexUpdated';\n\tif (days.includes('CHECK_POSITIONS')) return 'afterCheck';\n\tif (days.includes('LAST_OF_MONTH') || days.some(day => /^\\d+$/.test(day))) return 'dayOfMonth';\n\n\tif (days.length) {\n\t\t// Сохраняем текущий календарный режм\n\t\tif (isCalendarMode(currentMode)) return currentMode;\n\n\t\t// Режим по умолчанию для `ALL`\n\t\treturn 'dayOfWeek';\n\t}\n\n\treturn currentMode;\n};\n\n/**\n * Подписи режимов принадлежат компоненту, а не каждому его потребителю.\n */\nexport const genModeOptions = (modes: Mode[]): TopSelectOption[] => {\n\tconst i18n = useI18n();\n\n\t// Словарь Dynamics нужен только потребителям режима afterCheck.\n\tconst titles: Record<Mode, string> = {\n\t\tonDemand: i18n.Projects.Settings_on_demand,\n\t\tdayOfWeek: i18n.Projects.Report_on_weekdays,\n\t\tdayOfMonth: i18n.Projects.Settings_particular_days,\n\t\tafterYandexUpdated: i18n.Projects.After_updates,\n\t\tafterCheck: modes.includes('afterCheck') ? i18n.Dynamics.Report_after_tracking_30min_1 : '',\n\t};\n\n\treturn modes.map(value => ({ value, title: titles[value] }));\n};\n","<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport TopSelect from '@/components/forms/select/select.vue';\nimport TopScheduleCalendar from './compoents/calendar/calendar.vue';\nimport type { Mode, Props, Slots } from './types';\nimport { defaultMods, genAfterYandexUpdatedOptions, genModeOptions, getModeByDays, isCalendarMode } from './utils';\n\ndefineOptions({\n\tname: 'TopSchedule',\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n\t// Тип `go` соответствует запуску инструмента по расписанию.\n\ttype: 'go',\n});\n\ndefineSlots<Slots>();\n\nconst model = defineModel<Props['modelValue']>({\n\trequired: true,\n});\n\n// Выбранный режим\nconst mode = ref<Mode>(getModeByDays(model.value.days));\n\n// Список режимов в селекторе зависит от типа расписания и переданных ограничений.\nconst modeOptions = computed(() => genModeOptions(\n\tprops.availableMods ?? (props.type === 'report' ? [...defaultMods, 'afterCheck'] : defaultMods),\n));\n\nconst afterYandexUpdatedOptions = genAfterYandexUpdatedOptions();\n\n// Кеш с выбранными днями и временными слотами для каждого режима.\nconst stateByMode: Partial<Record<Mode, Props['modelValue']>> = {};\n\n// Сохранять настройки выбранного режима\nwatch(model, () => {\n\tstateByMode[mode.value] = {\n\t\tdays: [...model.value.days],\n\t\ttimes: model.value.times.map(time => ({ ...time })),\n\t};\n}, { deep: true, immediate: true });\n\n/**\n * При смене `days` сразу првоеряем доступное значение режима и обновляем его, если надо.\n *\n * @note 1 в цепочке перед `watch(mode)`, цепочки не цикличны\n */\nwatch(\n\t() => model.value.days,\n\t() => mode.value = getModeByDays(model.value.days, mode.value),\n\t{ deep: true, immediate: true },\n);\n\n/**\n * При смене режима устанавливаем соответствующие `days` и `times`.\n *\n * Для календарных режимов восстанавливаем ранее сохранённый выбор дней.\n *\n * @note 2 в цепочке после `watch(() => model.value.days)`, цепочки не цикличны\n */\nwatch(mode, (nextMode) => {\n\t// Ранее сохраненные настройки режима.\n\tconst stateCached = stateByMode[nextMode];\n\n\tswitch (nextMode) {\n\t\tcase 'onDemand':\n\t\t\tmodel.value = {\n\t\t\t\tdays: [],\n\t\t\t\ttimes: [],\n\t\t\t};\n\n\t\t\tbreak;\n\n\t\tcase 'dayOfWeek':\n\t\tcase 'dayOfMonth': {\n\t\t\tmodel.value = {\n\t\t\t\t...model.value,\n\t\t\t\tdays: stateCached?.days ?? ['ALL'],\n\t\t\t\ttimes: stateCached?.times ?? [{ hour: '0', minute: '0' }],\n\t\t\t};\n\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'afterYandexUpdated':\n\t\t\tmodel.value = {\n\t\t\t\tdays: ['YANDEX_UPDATE'],\n\t\t\t\ttimes: stateCached?.times ?? [{ hour: '0', minute: '0' }],\n\t\t\t};\n\n\t\t\tbreak;\n\n\t\tcase 'afterCheck':\n\t\t\tmodel.value = {\n\t\t\t\tdays: ['CHECK_POSITIONS'],\n\t\t\t\ttimes: stateCached?.times ?? [{ hour: '0', minute: '30' }],\n\t\t\t};\n\n\t\t\tbreak;\n\t}\n});\n</script>\n\n<template>\n\t<div :class=\"['top-schedule', 'top-schedule-type_' + type]\">\n\t\t<div class=\"top-schedule_header\">\n\t\t\t<div class=\"top-schedule_headerTitle\">\n\t\t\t\t{{ title ?? (type === 'go' ? $i18n.Projects.Checks : $i18n.Projects.Reports) }}\n\t\t\t</div>\n\t\t\t<TopSelect\n\t\t\t\tclass=\"top-schedule_headerMods\"\n\t\t\t\tv-model=\"mode\"\n\t\t\t\t:options=\"modeOptions\"\n\t\t\t\tsize=\"s\"\n\t\t\t/>\n\t\t</div>\n\n\t\t<div v-if=\"mode !== 'onDemand' && (isCalendarMode(mode) || mode === 'afterYandexUpdated' || $slots.settings)\" class=\"top-schedule_body\">\n\t\t\t<TopSelect\n\t\t\t\tv-if=\"mode === 'afterYandexUpdated' && model.times[0]\"\n\t\t\t\tclass=\"top-schedule_afterYandexUpdatedDelay\"\n\t\t\t\tv-model=\"model.times[0].hour\"\n\t\t\t\t:options=\"afterYandexUpdatedOptions\"\n\t\t\t\tsize=\"s\"\n\t\t\t/>\n\n\t\t\t<TopScheduleCalendar\n\t\t\t\tv-if=\"isCalendarMode(mode)\"\n\t\t\t\tv-model=\"model.days\"\n\t\t\t\tv-model:times=\"model.times\"\n\t\t\t\t:mode\n\t\t\t\t:multipleTimes\n\t\t\t/>\n\n\t\t\t<hr v-if=\"isCalendarMode(mode) && $slots.settings\">\n\n\t\t\t<slot name=\"settings\" :mode></slot>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { nextTick, onBeforeUnmount, onMounted, ref } from 'vue';\nimport TopInput from '@/components/forms/input/input.vue';\nimport TopButton from '@/components/forms/button/button.vue';\nimport Core from '@/core/core/core';\nimport { isEmail } from '@/core/utils/check';\nimport { useI18n } from '@/core/plugins/i18n';\nimport type { Props, Emits } from '@/components/schedule/schedule/compoents/emails/selector/types';\n\nconst props = withDefaults(defineProps<Props>(), {\n\temails: () => [],\n\tgetEmailSuggestions: () => [],\n});\n\nconst emit = defineEmits<Emits>();\nconst i18n = useI18n();\nconst $ = Core.$;\n\nconst elRootRef = ref<HTMLElement>();\nconst elInputRef = ref<InstanceType<typeof TopInput>>();\nlet elInput: HTMLInputElement | null = null;\nconst autocompleteCache: Record<string, string[]> = {};\n\nconst filterEmails = (emails: string[]) => emails.filter(email => !props.emails.includes(email));\n\nconst submit = (value: unknown = props.modelValue) => {\n\tconst email = String(value).trim();\n\tif (!email) return;\n\tif (!isEmail(email)) {\n\t\tvoid Core.notice(i18n.Common.Enter_valid_email_notice, 'error');\n\n\t\treturn;\n\t}\n\n\temit('submit', email);\n};\n\nconst initAutocomplete = async () => {\n\tawait nextTick();\n\n\telInput = elInputRef.value?.$el.querySelector('input') ?? null;\n\tif (!elInput) return;\n\n\tif (!$?.ui?.autocomplete) {\n\t\tconsole.info('Для работы autocomplete требуется глобальная загрузка jQuery UI Autocomplete');\n\n\t\treturn;\n\t}\n\n\t$(elInput).autocomplete({\n\t\tappendTo: elRootRef.value,\n\t\tminLength: 0,\n\t\tsource: async (request: { term: string }, response: (items: Array<{ label: string, value: string }>) => void) => {\n\t\t\tconst term = request.term;\n\t\t\tif (!(term in autocompleteCache)) {\n\t\t\t\tautocompleteCache[term] = await props.getEmailSuggestions(term);\n\t\t\t}\n\n\t\t\tresponse(filterEmails(autocompleteCache[term]).map(email => ({\n\t\t\t\tlabel: email,\n\t\t\t\tvalue: email,\n\t\t\t})));\n\t\t},\n\t\tselect: (event: Event, ui: { item?: { value: string } }) => {\n\t\t\tif (!ui.item || !elInput) return;\n\n\t\t\tevent.preventDefault();\n\t\t\tsubmit(ui.item.value);\n\t\t\temit('update:modelValue', '');\n\n\t\t\t$(elInput).trigger('focus');\n\t\t},\n\t});\n\n\t$(elInput).attr('autocomplete', 'disabled');\n\t$(elInput).on('focus.scheduleEmailSelector', () => {\n\t\tif (!elInput) return;\n\n\t\t$(elInput).trigger('input');\n\t});\n};\n\nonMounted(() => {\n\tvoid initAutocomplete();\n});\n\nonBeforeUnmount(() => {\n\tif (!$?.ui?.autocomplete || !elInput) return;\n\n\t$(elInput).off('focus.scheduleEmailSelector');\n\t$(elInput).autocomplete('destroy');\n});\n</script>\n\n<template>\n\t<div\n\t\tclass=\"top-scheduleEmailSelector\"\n\t\tref=\"elRootRef\"\n\t>\n\t\t<TopInput\n\t\t\tref=\"elInputRef\"\n\t\t\t:modelValue\n\t\t\t@update:modelValue=\"$emit('update:modelValue', $event)\"\n\t\t\t@keydown.enter.prevent=\"submit()\"\n\t\t\t:title=\"$i18n.Common.Enter_email\"\n\t\t\ttype=\"email\"\n\t\t\tsize=\"l\"\n\t\t>\n\t\t\t<TopButton\n\t\t\t\tclass=\"top-scheduleEmailSelector_submit\"\n\t\t\t\tcolor=\"theme\"\n\t\t\t\ticon=\"\"\n\t\t\t\t@click.prevent=\"submit()\"\n\t\t\t/>\n\t\t</TopInput>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport type { Props, Emits } from '@/components/schedule/schedule/compoents/emails/types';\nimport ScheduleEmailSelector from '@/components/schedule/schedule/compoents/emails/selector/selector.vue';\n\nconst props = withDefaults(defineProps<Props>(), {\n\temails: () => [],\n\tgetEmailSuggestions: () => [],\n\tmaxEmailsCount: -1,\n});\n\nconst emit = defineEmits<Emits>();\n\nconst value = ref('');\n\nconst addEmail = (email: string) => {\n\tconst preparedEmail = email.trim();\n\tif (!preparedEmail || props.emails.includes(preparedEmail)) {\n\t\tvalue.value = '';\n\n\t\treturn;\n\t}\n\n\temit('add:email', preparedEmail);\n\n\tvalue.value = '';\n};\n</script>\n\n<template>\n\t<div class=\"top-scheduleEmail\">\n\t\t<div class=\"top-scheduleEmail_title\">\n\t\t\t{{ $i18n.Projects.Reports_send_to_address }} E-mail:\n\t\t</div>\n\n\t\t<ScheduleEmailSelector\n\t\t\tv-if=\"!(maxEmailsCount && emails.length === maxEmailsCount)\"\n\t\t\tv-model=\"value\"\n\t\t\t:getEmailSuggestions\n\t\t\t:emails\n\t\t\t@submit=\"addEmail\"\n\t\t/>\n\n\t\t<div\n\t\t\tv-if=\"emails.length\"\n\t\t\tclass=\"top-scheduleEmail_emails\"\n\t\t>\n\t\t\t<div\n\t\t\t\tclass=\"top-scheduleEmail_emailsItem\"\n\t\t\t\tv-for=\"email in emails\"\n\t\t\t\t:key=\"email\"\n\t\t\t>\n\t\t\t\t<span class=\"top-ellipsis1\">{{ email }}</span>\n\n\t\t\t\t<TopButton\n\t\t\t\t\t@click=\"$emit('remove:email', email)\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\ticon=\"\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n","<script setup lang=\"ts\">\nimport type { Emits, Props } from '@/components/schedule/schedule/compoents/socials/types';\n\nconst props = defineProps<Props>();\ndefineEmits<Emits>();\n\ntype ReportChannelSource = Props['channels'][number]['source'];\n\nconst hasChannel = (source: ReportChannelSource) => props.channels.some(channel => channel.source === source);\n\nconst sourceIconBySource: Record<ReportChannelSource, string> = {\n\tinformer: '',\n\ttelegram: '',\n};\n</script>\n\n<template>\n\t<div class=\"top-scheduleSocials\">\n\t\t<div class=\"top-scheduleSocials_title\">\n\t\t\t{{ $i18n.Projects.Reports_send_to_address }}\n\t\t</div>\n\n\t\t<div class=\"top-scheduleSocials_channels\">\n\t\t\t<div\n\t\t\t\tclass=\"top-scheduleSocials_channel\"\n\t\t\t\tv-for=\"channel in channels\"\n\t\t\t\t:key=\"`${channel.source}-${channel.id}`\"\n\t\t\t>\n\t\t\t\t<span\n\t\t\t\t\tclass=\"top-scheduleSocials_channelIcon\"\n\t\t\t\t\t:data-top-icon=\"sourceIconBySource[channel.source]\"\n\t\t\t\t></span>\n\n\t\t\t\t<span class=\"top-scheduleSocials_channelLabel top-ellipsis1\">\n\t\t\t\t\t{{ channel.label }}\n\t\t\t\t</span>\n\n\t\t\t\t<TopButton\n\t\t\t\t\tv-if=\"channel.settingLink\"\n\t\t\t\t\tclass=\"top-scheduleSocials_channelSettings\"\n\t\t\t\t\tsize=\"xs\"\n\t\t\t\t\t:href=\"channel.settingLink\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\ticon=\"\"\n\t\t\t\t\tcolor=\"theme\"\n\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t></TopButton>\n\n\t\t\t\t<TopSwitcher\n\t\t\t\t\tclass=\"top-scheduleSocials_channelSwitcher\"\n\t\t\t\t\t:modelValue=\"channel.selected\"\n\t\t\t\t\t@update:modelValue=\"$emit('update:channelSelected', {\n\t\t\t\t\t\tid: channel.id,\n\t\t\t\t\t\tsource: channel.source,\n\t\t\t\t\t\tselected: $event as boolean,\n\t\t\t\t\t})\"\n\t\t\t\t/>\n\t\t\t</div>\n\n\t\t\t<template\n\t\t\t\tv-for=\"connector in connectors\"\n\t\t\t\t:key=\"connector.source\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"!hasChannel(connector.source)\"\n\t\t\t\tclass=\"top-scheduleSocials_channel\"\n\t\t\t\t>\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"top-scheduleSocials_channelIcon\"\n\t\t\t\t\t\t:data-top-icon=\"sourceIconBySource[connector.source]\"\n\t\t\t\t\t></span>\n\n\t\t\t\t\t<a\n\t\t\t\t\t\tclass=\"top-scheduleSocials_channelLabel top-ellipsis1\"\n\t\t\t\t\t\t:href=\"connector.connectLink\"\n\t\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ connector.connectLabel }}\n\t\t\t\t\t</a>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t</div>\n\t</div>\n</template>\n\n<style>\n@import \"./style.css\";\n</style>\n"]}
|