")}])}}},function(){var t=this;return(0,t._self._c)("k-input",{ref:"input",staticClass:"k-block-type-list-input",attrs:{disabled:t.disabled,keys:t.keys,marks:t.marks,value:t.content.text,type:"list"},on:{input:function(e){return t.update({text:e})}}})},[]).exports;const vs=ut({extends:Xe,computed:{placeholder(){return this.field("text",{}).placeholder}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this;return(0,t._self._c)("k-input",{ref:"input",staticClass:"k-block-type-markdown-input",attrs:{buttons:!1,disabled:t.disabled,placeholder:t.placeholder,spellcheck:!1,value:t.content.text,font:"monospace",type:"textarea"},on:{input:function(e){return t.update({text:e})}}})},[]).exports;const $s=ut({extends:Xe,computed:{citationField(){return this.field("citation",{})},textField(){return this.field("text",{})}},methods:{focus(){this.$refs.text.focus()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-block-type-quote-editor"},[e("k-writer-input",{ref:"text",staticClass:"k-block-type-quote-text",attrs:{disabled:t.disabled,inline:t.textField.inline??!1,marks:t.textField.marks,placeholder:t.textField.placeholder,value:t.content.text},on:{input:function(e){return t.update({text:e})}}}),e("k-writer-input",{ref:"citation",staticClass:"k-block-type-quote-citation",attrs:{disabled:t.disabled,inline:t.citationField.inline??!0,marks:t.citationField.marks,placeholder:t.citationField.placeholder,value:t.content.citation},on:{input:function(e){return t.update({citation:e})}}})],1)},[]).exports;const ws=ut({extends:Xe,inheritAttrs:!1,computed:{columns(){return this.table.columns??this.fields},fields(){return this.table.fields??{}},rows(){return this.content.rows??[]},table(){let t=null;for(const e of Object.values(this.fieldset.tabs??{}))e.fields.rows&&(t=e.fields.rows);return t??{}}}},function(){var t=this;return(0,t._self._c)("k-table",{class:["k-block-type-table-preview",t.$attrs.class],style:t.$attrs.style,attrs:{columns:t.columns,empty:t.$t("field.structure.empty"),rows:t.rows},nativeOn:{dblclick:function(e){return t.open.apply(null,arguments)}}})},[]).exports;const xs=ut({extends:Xe,emits:["open","split","update"],computed:{component(){const t="k-"+this.textField.type+"-input";return this.$helper.isComponent(t)?t:"k-writer-input"},isSplitable(){return this.content.text.length>0&&!1===this.$refs.input.isCursorAtStart&&!1===this.$refs.input.isCursorAtEnd},keys(){const t={"Mod-Enter":this.split};return!0===this.textField.inline&&(t.Enter=this.split),t},textField(){return this.field("text",{})}},methods:{focus(){this.$refs.input.focus()},merge(t){this.update({text:t.map(t=>t.content.text).join(this.textField.inline?" ":"")})},split(){var t,e;const s=null==(e=(t=this.$refs.input).getSplitContent)?void 0:e.call(t);s&&("writer"===this.textField.type&&(s[0]=s[0].replace(/(<\/p>)$/,""),s[1]=s[1].replace(/^(
<\/p>)/,"")),this.$emit("split",s.map(t=>({text:t}))))}}},function(){var t=this;return(0,t._self._c)(t.component,t._b({ref:"input",tag:"component",staticClass:"k-block-type-text-input",attrs:{disabled:t.disabled,keys:t.keys,value:t.content.text},on:{input:function(e){return t.update({text:e})}}},"component",t.textField,!1))},[]).exports;const _s=ut({extends:Xe,computed:{captionMarks(){return this.field("caption",{marks:!0}).marks},location(){return this.content.location},poster(){var t,e;return null==(e=null==(t=this.content.poster)?void 0:t[0])?void 0:e.url},video(){var t,e;return"kirby"===this.content.location?null==(e=null==(t=this.content.video)?void 0:t[0])?void 0:e.url:this.$helper.embed.video(this.content.url??"",!0)}}},function(){var t=this,e=t._self._c;return e("k-block-figure",{staticClass:"k-block-type-video-figure",attrs:{caption:t.content.caption,"caption-marks":t.captionMarks,disabled:t.disabled,"empty-text":t.$t("field.blocks.video.placeholder")+" …","is-empty":!t.video,"empty-icon":"video"},on:{open:t.open,update:t.update}},[e("k-frame",{attrs:{ratio:"16/9"}},[t.video?["kirby"==t.location?e("video",{attrs:{src:t.video,poster:t.poster,controls:""}}):e("iframe",{attrs:{src:t.video,referrerpolicy:"strict-origin-when-cross-origin"}})]:t._e()],2)],1)},[]).exports,Ss={install(t){t.component("k-block",es),t.component("k-blocks",ns),t.component("k-block-options",Qe),t.component("k-block-pasteboard",os),t.component("k-block-selector",as),t.component("k-block-background-dropdown",ls),t.component("k-block-figure",cs),t.component("k-block-figure-caption",us),t.component("k-block-title",Je),t.component("k-block-type-code",ps),t.component("k-block-type-default",Xe),t.component("k-block-type-fields",ds),t.component("k-block-type-gallery",ms),t.component("k-block-type-heading",fs),t.component("k-block-type-image",ks),t.component("k-block-type-line",bs),t.component("k-block-type-list",ys),t.component("k-block-type-markdown",vs),t.component("k-block-type-quote",$s),t.component("k-block-type-table",ws),t.component("k-block-type-text",xs),t.component("k-block-type-video",_s)}};const Cs=ut({mixins:[Ne,ss],inheritAttrs:!1,data:()=>({opened:[]}),computed:{hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.value.length},isFull(){return this.max&&this.value.length>=this.max},options(){return[{click:()=>this.$refs.blocks.copyAll(),disabled:this.isEmpty,icon:"template",text:this.$t("copy.all")},{click:()=>this.$refs.blocks.pasteboard(),disabled:this.isFull,icon:"download",text:this.$t("paste")},"-",{click:()=>this.$refs.blocks.removeAll(),disabled:this.isEmpty,icon:"trash",text:this.$t("delete.all")}]}},methods:{focus(){this.$refs.blocks.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-blocks-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFieldsets?{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,disabled:t.isFull,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.blocks.choose(t.value.length)}}}),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[e("k-blocks",t._b({ref:"blocks",on:{close:function(e){t.opened=e},open:function(e){t.opened=e},input:function(e){return t.$emit("input",e)}}},"k-blocks",t.$props,!1))],1),t.disabled||t.isEmpty||t.isFull||!t.hasFieldsets?t._e():e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.blocks.choose(t.value.length)}}})],1)],1)},[]).exports,Os={mixins:[Ee,ot],props:{columns:{default:1,type:Number},max:Number,min:Number,theme:String,value:{type:Array,default:()=>[]}}},As={mixins:[je,Os],data:()=>({selected:[]}),computed:{choices(){return this.options.map((t,e)=>{const s=this.selected.includes(t.value);return{autofocus:this.autofocus&&0===e,checked:s,disabled:this.disabled||t.disabled||!s&&this.isFull,id:`${this.id}-${e}`,info:t.info,label:t.text,name:this.name??this.id,type:"checkbox",value:t.value}})},isFull(){return this.max&&this.selected.length>=this.max}},watch:{value:{handler(t){this.selected=Array.isArray(t)?t:[]},immediate:!0}},methods:{focus(){var t;null==(t=this.$el.querySelector("input"))||t.focus()},input(t,e){if(!0===e)this.selected.push(t);else{const e=this.selected.indexOf(t);-1!==e&&this.selected.splice(e,1)}this.$emit("input",this.selected)},select(){this.focus()}}};const Ms=ut(As,function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-checkboxes-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.selected)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("ul",{staticClass:"k-grid",style:{"--columns":t.columns},attrs:{"data-variant":"choices"}},t._l(t.choices,function(s,i){return e("li",{key:i},[e("k-choice-input",t._b({on:{input:function(e){return t.input(s.value,e)}}},"k-choice-input",s,!1))],1)}),0)])],1)},[]).exports,Ds={props:{counter:{type:Boolean,default:!0}},computed:{counterOptions(){const t=this.counterValue??this.value;return!(!1===this.counter||this.disabled||!t)&&{count:Array.isArray(t)?t.length:String(t).length,min:this.$props.min??this.$props.minlength,max:this.$props.max??this.$props.maxlength}},counterValue:()=>null}};const Es=ut({mixins:[Ne,Ve,Os,Ds],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t,e=this,s=e._self._c;return s("k-field",e._b({class:["k-checkboxes-field",e.$attrs.class],style:e.$attrs.style,attrs:{counter:e.counterOptions,input:e.id+"-0"}},"k-field",e.$props,!1),[(null==(t=e.options)?void 0:t.length)?s("k-checkboxes-input",e._b({ref:"input",on:{input:function(t){return e.$emit("input",t)}}},"k-checkboxes-input",e.$props,!1)):s("k-empty",{attrs:{text:e.$t("options.none"),icon:"checklist"}})],1)},[]).exports,js={mixins:[Ee,K,W,X,st,it,rt,at,ct],props:{ariaLabel:String,preselect:Boolean,type:{default:"text",type:String},value:{type:String}}};const Is=ut({mixins:[je,js],mounted(){this.$props.autofocus&&this.focus(),this.$props.preselect&&this.select()},methods:{select(){this.$el.select()}}},function(){var t=this;return(0,t._self._c)("input",t._b({directives:[{name:"direction",rawName:"v-direction"}],class:["k-string-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-label":t.ariaLabel,"data-font":t.font},on:{input:function(e){return t.$emit("input",e.target.value)}}},"input",{autocomplete:t.autocomplete,autofocus:t.autofocus,disabled:t.disabled,id:t.id,maxlength:t.maxlength,minlength:t.minlength,name:t.name,pattern:t.pattern,placeholder:t.placeholder,required:t.required,spellcheck:t.spellcheck,type:t.type,value:t.value},!1))},[]).exports,Bs={mixins:[js],props:{autocomplete:null,font:null,maxlength:null,minlength:null,pattern:null,spellcheck:null,alpha:{type:Boolean,default:!0},format:{type:String,default:"hex",validator:t=>["hex","rgb","hsl"].includes(t)}}},Ls={mixins:[Is,Bs],watch:{value(){this.validate()}},mounted(){this.validate()},methods:{convert(t){if(!t)return t;try{return this.$library.colors.toString(t,this.format,this.alpha)}catch{const e=document.createElement("div");return e.style.color=t,document.body.append(e),t=window.getComputedStyle(e).color,e.remove(),this.$library.colors.toString(t,this.format,this.alpha)}},convertAndEmit(t){this.emit(this.convert(t))},emit(t){this.$emit("input",t)},onBlur(){this.convertAndEmit(this.value)},onPaste(t){t instanceof ClipboardEvent&&(t=this.$helper.clipboard.read(t,!0)),this.convertAndEmit(t)},async onSave(){var t;this.convertAndEmit(this.value),await this.$nextTick(),null==(t=this.$el.form)||t.requestSubmit()},validate(){let t="";null===this.$library.colors.parse(this.value)&&(t=this.$t("error.validation.color",{format:this.format})),this.$el.setCustomValidity(t)}}};const Ts=ut(Ls,function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-colorname-input",attrs:{spellcheck:!1,autocomplete:"off",type:"text"},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{blur:function(e){return t.onBlur.apply(null,arguments)},paste:function(e){return t.onPaste.apply(null,arguments)},keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.metaKey?(e.stopPropagation(),e.preventDefault(),t.onSave.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.onSave.apply(null,arguments)}]}},"k-string-input",t.$props,!1))},[]).exports,Ps={mixins:[Ne,Ve,Bs],inheritAttrs:!1,props:{icon:{type:String,default:"pipette"},mode:{type:String,default:"picker",validator:t=>["picker","input","options"].includes(t)},options:{type:Array,default:()=>[]}},computed:{convertedOptions(){return this.options.map(t=>({...t,value:this.convert(t.value)}))},currentOption(){return this.convertedOptions.find(t=>t.value===this.value)}},methods:{convert(t){return this.$library.colors.toString(t,this.format,this.alpha)}}};const qs=ut(Ps,function(){var t,e=this,s=e._self._c;return s("k-field",e._b({class:["k-color-field",e.$attrs.class],style:e.$attrs.style,attrs:{input:e.id}},"k-field",e.$props,!1),["options"===e.mode?s("k-coloroptions-input",e._b({staticClass:"k-color-field-options",attrs:{options:e.convertedOptions},on:{input:function(t){return e.$emit("input",t)}}},"k-coloroptions-input",e.$props,!1)):s("k-input",e._b({attrs:{type:"color"},scopedSlots:e._u([{key:"before",fn:function(){return["picker"===e.mode?[s("button",{staticClass:"k-color-field-picker-toggle",attrs:{disabled:e.disabled,type:"button"},on:{click:function(t){return e.$refs.picker.toggle()}}},[s("k-color-frame",{attrs:{color:e.value}})],1),s("k-dropdown-content",{ref:"picker",staticClass:"k-color-field-picker"},[s("k-colorpicker-input",e._b({ref:"color",attrs:{options:e.convertedOptions},on:{input:function(t){return e.$emit("input",t)}},nativeOn:{click:function(t){t.stopPropagation()}}},"k-colorpicker-input",e.$props,!1))],1)]:s("k-color-frame",{attrs:{color:e.value}})]},proxy:!0},{key:"default",fn:function(){return[s("k-colorname-input",e._b({on:{input:function(t){return e.$emit("input",t)}}},"k-colorname-input",e.$props,!1))]},proxy:!0},(null==(t=e.currentOption)?void 0:t.text)?{key:"after",fn:function(){return[s("span",{domProps:{innerHTML:e._s(e.currentOption.text)}})]},proxy:!0}:null,"picker"===e.mode?{key:"icon",fn:function(){return[s("k-button",{staticClass:"k-input-icon-button",attrs:{icon:e.icon},on:{click:function(t){return t.stopPropagation(),e.$refs.picker.toggle()}}})]},proxy:!0}:null],null,!0)},"k-input",e.$props,!1))],1)},[]).exports,Ns={props:{max:String,min:String,value:String}},Fs={mixins:[Ee,Ns],props:{display:{type:String,default:"DD.MM.YYYY"},step:{type:Object,default:()=>({size:1,unit:"day"})},type:{type:String,default:"date"}}},zs={mixins:[je,Fs],emits:["input","focus","submit"],data:()=>({dt:null,formatted:null}),computed:{inputType:()=>"date",pattern(){return this.$library.dayjs.pattern(this.display)},rounding(){return{...this.$options.props.step.default(),...this.step}}},watch:{value:{handler(t,e){if(t!==e){const e=this.toDatetime(t);this.commit(e)}},immediate:!0}},methods:{async alter(t){let e=this.parse()??this.round(this.$library.dayjs()),s=this.rounding.unit,i=this.rounding.size;const n=this.selection();null!==n&&("meridiem"===n.unit?(t="pm"===e.format("a")?"subtract":"add",s="hour",i=12):(s=n.unit,s!==this.rounding.unit&&(i=1))),e=e[t](i,s).round(this.rounding.unit,this.rounding.size),this.commit(e),this.emit(e),await this.$nextTick(),this.select(n)},commit(t){this.dt=t,this.formatted=this.pattern.format(t),this.validate()},emit(t){this.$emit("input",this.toISO(t))},onArrowDown(){this.alter("subtract")},onArrowUp(){this.alter("add")},onBlur(){const t=this.parse();this.commit(t),this.emit(t)},async onEnter(){this.onBlur(),await this.$nextTick(),this.$emit("submit")},onInput(t){const e=this.parse(),s=this.pattern.format(e);if(!t||s==t)return this.commit(e),this.emit(e)},async onTab(t){if(""==this.$el.value)return;this.onBlur(),await this.$nextTick();const e=this.selection();if(this.$el&&e.start===this.$el.selectionStart&&e.end===this.$el.selectionEnd-1)if(t.shiftKey){if(0===e.index)return;this.selectPrev(e.index)}else{if(e.index===this.pattern.parts.length-1)return;this.selectNext(e.index)}else{if(this.$el&&this.$el.selectionStart==e.end+1&&e.index==this.pattern.parts.length-1)return;if(this.$el&&this.$el.selectionEnd-1>e.end){const t=this.pattern.at(this.$el.selectionEnd,this.$el.selectionEnd);this.select(this.pattern.parts[t.index])}else this.select(this.pattern.parts[e.index])}t.preventDefault()},parse(){const t=this.$library.dayjs.interpret(this.$el.value,this.inputType);return this.round(t)},round(t){return null==t?void 0:t.round(this.rounding.unit,this.rounding.size)},select(t){var e;t??(t=this.selection()),null==(e=this.$el)||e.setSelectionRange(t.start,t.end+1)},selectFirst(){this.select(this.pattern.parts[0])},selectLast(){this.select(this.pattern.parts[this.pattern.parts.length-1])},selectNext(t){this.select(this.pattern.parts[t+1])},selectPrev(t){this.select(this.pattern.parts[t-1])},selection(){return this.pattern.at(this.$el.selectionStart,this.$el.selectionEnd)},toDatetime(t){return this.round(this.$library.dayjs.iso(t,this.inputType))},toISO(t){return null==t?void 0:t.toISO(this.inputType)},validate(){var t,e,s;const i=[];this.required&&!this.dt&&i.push(this.$t("error.validation.required")),this.min&&!1===(null==(t=this.dt)?void 0:t.validate(this.min,"min",this.rounding.unit))&&i.push(this.$t("error.validation.date.after",{date:this.min})),this.max&&!1===(null==(e=this.dt)?void 0:e.validate(this.max,"max",this.rounding.unit))&&i.push(this.$t("error.validation.date.before",{date:this.max})),null==(s=this.$el)||s.setCustomValidity(i.join(", "))}}};const Ys=ut(zs,function(){var t=this;return(0,t._self._c)("input",{directives:[{name:"direction",rawName:"v-direction"}],class:["k-string-input",`k-${t.type}-input`,t.$attrs.class],style:t.$attrs.style,attrs:{id:t.id,autofocus:t.autofocus,disabled:t.disabled,placeholder:t.display,required:t.required,autocomplete:"off",spellcheck:"false",type:"text"},domProps:{value:t.formatted},on:{blur:t.onBlur,focus:function(e){return t.$emit("focus")},input:function(e){return t.onInput(e.target.value)},keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.stopPropagation(),e.preventDefault(),t.onArrowDown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.stopPropagation(),e.preventDefault(),t.onArrowUp.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.metaKey?(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"s",void 0,e.key,void 0)?null:e.ctrlKey?(e.stopPropagation(),e.preventDefault(),t.onEnter.apply(null,arguments)):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"tab",9,e.key,"Tab")?null:t.onTab.apply(null,arguments)}]}})},[]).exports,Rs={mixins:[Ne,Ve,Fs],inheritAttrs:!1,props:{calendar:{type:Boolean,default:!0},icon:{type:String,default:"calendar"},time:{type:[Boolean,Object],default:()=>({})},times:{type:Boolean,default:!0}},emits:["input","submit"],data(){return{iso:this.toIso(this.value)}},computed:{isEmpty(){return this.time?!this.iso.date||!this.iso.time:!this.iso.date}},watch:{value(t,e){t!==e&&(this.iso=this.toIso(t))}},methods:{focus(){this.$refs.dateInput.focus()},now(){const t=this.$library.dayjs();return{date:t.toISO("date"),time:this.time?t.toISO("time"):"00:00:00"}},onInput(){if(this.isEmpty)return this.$emit("input","");const t=this.$library.dayjs.iso(this.iso.date+" "+this.iso.time);(t||null!==this.iso.date&&null!==this.iso.time)&&this.$emit("input",(null==t?void 0:t.toISO())??"")},onDateInput(t){t&&!this.iso.time&&(this.iso.time=this.now().time),this.iso.date=t,this.onInput()},onTimeInput(t){t&&!this.iso.date&&(this.iso.date=this.now().date),this.iso.time=t,this.onInput()},onTimesInput(t){var e;null==(e=this.$refs.times)||e.close(),this.onTimeInput(t+":00")},toIso(t){const e=this.$library.dayjs.iso(t);return{date:(null==e?void 0:e.toISO("date"))??null,time:(null==e?void 0:e.toISO("time"))??null}}}};const Hs=ut(Rs,function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-date-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("div",{ref:"body",staticClass:"k-date-field-body",attrs:{"data-has-time":Boolean(t.time)}},[e("k-input",t._b({ref:"dateInput",attrs:{type:"date"},on:{input:t.onDateInput,submit:function(e){return t.$emit("submit")}},scopedSlots:t._u([t.calendar?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.icon,title:t.$t("date.select")},on:{click:function(e){return t.$refs.calendar.toggle()}}}),e("k-dropdown-content",{ref:"calendar",attrs:{"align-x":"end"}},[e("k-calendar",{attrs:{value:t.iso.date,min:t.min,max:t.max},on:{input:t.onDateInput}})],1)]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1)),t.time?e("k-input",{ref:"timeInput",attrs:{disabled:t.disabled,display:t.time.display,required:t.required,step:t.time.step,value:t.iso.time,icon:t.time.icon,type:"time"},on:{input:t.onTimeInput,submit:function(e){return t.$emit("submit")}},scopedSlots:t._u([t.times?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.time.icon??"clock",title:t.$t("time.select")},on:{click:function(e){return t.$refs.times.toggle()}}}),e("k-dropdown-content",{ref:"times",attrs:{"align-x":"end"}},[e("k-timeoptions-input",{attrs:{display:t.time.display,value:t.value},on:{input:t.onTimesInput}})],1)]},proxy:!0}:null],null,!0)}):t._e()],1)])},[]).exports,Us={mixins:[js],props:{autocomplete:{type:String,default:"email"},placeholder:{type:String,default:()=>window.panel.t("email.placeholder")}}};const Vs=ut({mixins:[Is,Us]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-email-input",attrs:{type:"email"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Ks=ut({mixins:[Ne,Ve,Us],inheritAttrs:!1,props:{link:{type:Boolean,default:!0},icon:{type:String,default:"email"}},computed:{mailto(){var t;return(null==(t=this.value)?void 0:t.length)>0?"mailto:"+this.value:null}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-email-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"email"},on:{input:function(e){return t.$emit("input",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.link?e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon,link:t.mailto,title:t.$t("open"),tabindex:"-1",target:"_blank"}}):t._e()]},proxy:!0}])},"k-input",t.$props,!1))],1)},[]).exports,Ws={mixins:[Ne,Ve],inheritAttrs:!1,props:{empty:String,field:{type:Object,default:()=>({})},max:Number,min:Number,sortable:{type:Boolean,default:!0},value:{type:Array,default:()=>[]}},emits:["input","sort"],data:()=>({entries:[]}),computed:{dragOptions(){return{disabled:!1===this.isSortable,handle:!0,list:this.entries,sort:this.isSortable}},isSortable(){return!0!==this.disabled&&(!(this.entries.length<=1)&&!1!==this.sortable)},more(){return!0!==this.disabled&&!(this.max&&this.entries.length>=this.max)},options(){return[{disabled:0===this.entries.length||this.disabled,icon:"template",text:this.$t("copy.all"),click:this.copyAll},"-",{disabled:0===this.entries.length||this.disabled,icon:"trash",text:this.$t("delete.all"),click:this.removeAll}]},values(){return this.entries.map(t=>t.value)}},watch:{value:{handler(t){t??(t=[]),t!==this.values&&(this.entries=t.map(t=>({id:this.$helper.uuid(),value:t})))},immediate:!0}},methods:{async add(t=null,e=null){var s;if(!1===this.more||!0===this.disabled)return;e??(e=null==(s=this.$helper.field.form({field:this.field}))?void 0:s.field);const i={id:this.$helper.uuid(),value:e??""};t??(t=this.entries.length),this.entries.splice(t,0,i),this.save(),await this.$nextTick(),this.focus(t)},copyAll(){const t=this.values.map(t=>"- "+t).join("\n");this.$helper.clipboard.write(t),this.$panel.notification.success(this.$t("copy.success"))},async duplicate(t){if(!1===this.more||!0===this.disabled||void 0===this.entries[t])return;const e={...this.entries[t],id:this.$helper.uuid()};this.entries.splice(t+1,0,e),this.save(),await this.$nextTick(),this.focus(t+1)},focus(t,e="input"){var s,i,n;null==(n=null==(i=null==(s=this.$refs["entry-"+t+"-"+e])?void 0:s[0])?void 0:i.focus)||n.call(i)},onInput(t,e){this.entries[t].value=e,this.save()},remove(t){!0!==this.disabled&&(this.entries.splice(t,1),this.save(),this.focus(t-1))},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.entries.delete.confirm.all")},on:{submit:()=>{this.entries=[],this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.values)},async sort(t,e){if(!1===this.isSortable)return;const s=this.entries[t];this.entries.splice(t,1),this.entries.splice(t+e,0,s),this.save(),await this.$nextTick(),this.focus(t+e,"sort-handle")},sortDown(t){t>=this.entries.length-1||this.sort(t,1)},sortUp(t){t<=0||this.sort(t,-1)}}};const Js=ut(Ws,function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-entries-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},nativeOn:{click:function(t){t.stopPropagation()}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[t.more?e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.add()}}}):t._e(),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.entries)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[0===t.entries.length?e("k-empty",{attrs:{icon:"list-bullet"},on:{click:function(e){return t.add()}}},[t._v(" "+t._s(t.empty??t.$t("field.entries.empty"))+" ")]):e("k-draggable",t._b({staticClass:"k-entries-field-items",on:{sort:t.save}},"k-draggable",t.dragOptions,!1),t._l(t.entries,function(s,i){return e("div",{key:s.id,staticClass:"k-entries-field-item"},[t.isSortable?e("k-button",{ref:"entry-"+i+"-sort-handle",refInFor:!0,staticClass:"k-sort-handle k-entries-field-item-sort-handle",attrs:{title:t.$t("sort.drag"),icon:"sort",size:"sm"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:t.sortUp(i)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:t.sortDown(i)}]}}):t._e(),e(`k-${t.field.type}-field`,t._b({ref:"entry-"+i+"-input",refInFor:!0,tag:"component",staticClass:"k-entries-field-item-input",attrs:{disabled:t.disabled,value:s.value,counter:!1,label:!1},on:{input:function(e){return t.onInput(i,e)}}},"component",t.field,!1)),e("k-button-group",{staticClass:"k-entries-field-item-options",attrs:{layout:"collapsed"}},[t.more?e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"sm"},on:{click:function(e){return t.add(i+1)}}}):t._e(),t.more?e("k-button",{attrs:{title:t.$t("duplicate"),icon:"copy",size:"sm"},on:{click:function(e){return t.duplicate(i)}}}):t._e(),t.disabled?t._e():e("k-button",{attrs:{title:t.$t("remove"),icon:"trash",size:"sm"},on:{click:function(e){return t.remove(i)}}})],1)],1)}),0)],1),t.more?e("footer",{staticClass:"k-entries-field-footer"},[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.add()}}})],1):t._e()],1)},[]).exports,Gs={type:"model",mixins:[Ne,W,et],inheritAttrs:!1,props:{empty:String,info:String,link:Boolean,max:Number,min:Number,multiple:Boolean,parent:String,search:Boolean,size:String,text:String,value:{type:Array,default:()=>[]}},emits:["change","input"],data(){return{selected:this.value}},computed:{buttons(){return[{autofocus:this.autofocus,text:this.$t("select"),icon:"checklist",responsive:!0,click:()=>this.open()}]},collection(){return{empty:this.emptyProps,items:this.selected,layout:this.layout,link:this.link,size:this.size,sortable:!this.disabled&&this.selected.length>1,theme:this.disabled?"disabled":null}},hasDropzone:()=>!1,more(){return!this.max||this.max>this.selected.length}},watch:{value(t){this.selected=t}},methods:{drop(){},focus(){},onInput(){this.$emit("input",this.selected)},open(){if(this.disabled)return!1;this.$panel.dialog.open({component:`k-${this.$options.type}-dialog`,props:{endpoint:this.endpoints.field,hasSearch:this.search,max:this.max,multiple:this.multiple,value:this.selected.map(t=>t.id)},on:{submit:t=>{this.select(t),this.$panel.dialog.close()}}})},remove(t){this.selected.splice(t,1),this.onInput()},removeById(t){this.selected=this.selected.filter(e=>e.id!==t),this.onInput()},select(t){if(0===t.length)return this.selected=[],void this.onInput();this.selected=this.selected.filter(e=>t.find(t=>t.id===e.id));for(const e of t)this.selected.find(t=>e.id===t.id)||this.selected.push(e);this.onInput()}}};const Xs=ut(Gs,function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-models-field",`k-${t.$options.type}-field`,t.$attrs.class],style:t.$attrs.style,attrs:{input:!1},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function(){return[e("k-button-group",{ref:"buttons",staticClass:"k-field-options",attrs:{buttons:t.buttons,layout:"collapsed",size:"xs",variant:"filled"}})]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-dropzone",{attrs:{disabled:!t.hasDropzone},on:{drop:t.drop}},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-collection",t._b({on:{empty:t.open,sort:t.onInput,sortChange:function(e){return t.$emit("change",e)}},scopedSlots:t._u([t.disabled?null:{key:"options",fn:function({index:s}){return[e("k-button",{attrs:{title:t.$t("remove"),icon:"remove"},on:{click:function(e){return t.remove(s)}}})]}}],null,!0)},"k-collection",t.collection,!1))],1)],1)],1)},[]).exports;const Zs=ut({extends:Xs,type:"files",props:{uploads:[Boolean,Object,Array]},computed:{buttons(){const t=Xs.computed.buttons.call(this);return this.hasDropzone&&t.unshift({autofocus:this.autofocus,text:this.$t("upload"),responsive:!0,icon:"upload",click:()=>this.$panel.upload.pick(this.uploadOptions)}),t},emptyProps(){return{icon:"image",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.files.empty"):this.$t("field.files.empty.single"))}},hasDropzone(){return!this.disabled&&this.more&&this.uploads},uploadOptions(){return{accept:this.uploads.accept,max:this.max,multiple:this.multiple,preview:this.uploads.preview,url:this.$panel.urls.api+"/"+this.endpoints.field+"/upload",on:{done:async t=>{!1===this.multiple&&(this.selected=[]);for(const e of t)void 0===this.selected.find(t=>t.id===e.id)&&this.selected.push(e);this.onInput(),await this.$panel.content.update()}}}}},mounted(){this.$events.on("file.delete",this.removeById)},destroyed(){this.$events.off("file.delete",this.removeById)},methods:{drop(t){return!1!==this.uploads&&this.$panel.upload.open(t,this.uploadOptions)}}},null,null).exports;const Qs=ut({},function(){return(0,this._self._c)("div",{staticClass:"k-field k-gap-field"})},[]).exports;const ti=ut({mixins:[Z,tt],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("div",{class:["k-headline-field",t.$attrs.class],style:t.$attrs.style},[e("k-headline",{staticClass:"h2"},[t._v(" "+t._s(t.label)+" ")]),t.help?e("footer",{staticClass:"k-field-footer"},[e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}})],1):t._e()],1)},[]).exports;const ei=ut({mixins:[Z,tt],props:{icon:String,text:String,theme:{type:String,default:"info"}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-field k-info-field"},[t.label?e("k-headline",[t._v(t._s(t.label))]):t._e(),e("k-box",{attrs:{icon:t.icon,theme:t.theme}},[e("k-text",{attrs:{html:t.text}})],1),t.help?e("footer",{staticClass:"k-field-footer"},[e("k-text",{staticClass:"k-help k-field-help",attrs:{html:t.help}})],1):t._e()],1)},[]).exports,si={mixins:[G],props:{endpoints:Object,fieldsetGroups:Object,fieldsets:Object,id:String,isSelected:Boolean}};const ii=ut({mixins:[si],props:{blocks:Array,width:{type:String,default:"1/1"}},emits:["input"]},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-column k-layout-column",style:{"--width":t.width},attrs:{id:t.id,tabindex:"0"},on:{dblclick:function(e){return t.$refs.blocks.choose(t.blocks.length)}}},[e("k-blocks",t._b({ref:"blocks",on:{input:function(e){return t.$emit("input",e)}},nativeOn:{dblclick:function(t){t.stopPropagation()}}},"k-blocks",{disabled:t.disabled,endpoints:t.endpoints,fieldsets:t.fieldsets,fieldsetGroups:t.fieldsetGroups,group:"layout",value:t.blocks},!1))],1)},[]).exports,ni={mixins:[si],props:{columns:Array,layouts:{type:Array,default:()=>[["1/1"]]},settings:Object}};const oi=ut({mixins:[ni],props:{attrs:[Array,Object]},emits:["append","change","copy","duplicate","prepend","remove","select","updateAttrs","updateColumn"],computed:{options(){return[{click:()=>this.$emit("prepend"),icon:"angle-up",text:this.$t("insert.before")},{click:()=>this.$emit("append"),icon:"angle-down",text:this.$t("insert.after")},"-",{click:()=>this.openSettings(),icon:"settings",text:this.$t("settings"),when:!1===this.$helper.object.isEmpty(this.settings)},{click:()=>this.$emit("duplicate"),icon:"copy",text:this.$t("duplicate")},{click:()=>this.$emit("change"),disabled:1===this.layouts.length,icon:"dashboard",text:this.$t("field.layout.change")},"-",{click:()=>this.$emit("copy"),icon:"template",text:this.$t("copy")},{click:()=>this.$emit("paste"),icon:"download",text:this.$t("paste.after")},"-",{click:()=>this.remove(),icon:"trash",text:this.$t("field.layout.delete")}]},tabs(){let t=this.settings.tabs;for(const[e,s]of Object.entries(t))for(const i in s.fields)t[e].fields[i].endpoints={field:this.endpoints.field+"/fields/"+i,section:this.endpoints.section,model:this.endpoints.model};return t}},methods:{openSettings(){this.$panel.drawer.open({component:"k-form-drawer",props:{icon:"settings",tabs:this.tabs,title:this.$t("settings"),value:this.attrs},on:{input:t=>this.$emit("updateAttrs",t)}})},remove(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.layout.delete.confirm")},on:{submit:()=>{this.$emit("remove"),this.$panel.dialog.close()}}})}}},function(){var t=this,e=t._self._c;return e("section",{staticClass:"k-layout",attrs:{"data-disabled":t.disabled,"data-selected":t.isSelected,tabindex:"0"},on:{click:function(e){return t.$emit("select")}}},[e("k-grid",{staticClass:"k-layout-columns"},t._l(t.columns,function(s,i){return e("k-layout-column",t._b({key:s.id,on:{input:function(e){return t.$emit("updateColumn",{column:s,columnIndex:i,blocks:e})}}},"k-layout-column",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldsetGroups:t.fieldsetGroups,fieldsets:t.fieldsets},!1))}),1),t.disabled?t._e():e("nav",{staticClass:"k-layout-toolbar"},[t.settings?e("k-button",{staticClass:"k-layout-toolbar-button",attrs:{title:t.$t("settings"),icon:"settings"},on:{click:t.openSettings}}):t._e(),e("k-button",{staticClass:"k-layout-toolbar-button",attrs:{icon:"angle-down"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}}),e("k-sort-handle")],1)],1)},[]).exports,ri={mixins:[ni,Q],props:{empty:String,min:Number,max:Number,selector:Object,value:{type:Array,default:()=>[]}}},ai={mixins:[ri],emits:["input"],data(){return{current:null,nextIndex:null,rows:this.value,selected:null}},computed:{draggableOptions(){return{handle:!0,list:this.rows}},hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0}},watch:{value(){this.rows=this.value}},methods:{copy(t,e){if(0===this.rows.length)return!1;const s=void 0!==e?this.rows[e]:this.rows;this.$helper.clipboard.write(JSON.stringify(s),t),this.$panel.notification.success({message:this.$t("copy.success.multiple",{count:s.length??1}),icon:"template"})},change(t,e){const s=e.columns.map(t=>t.width),i=this.layouts.findIndex(t=>t.toString()===s.toString());this.$panel.dialog.open({component:"k-layout-selector",props:{label:this.$t("field.layout.change"),layouts:this.layouts,selector:this.selector,value:this.layouts[i]},on:{submit:s=>{this.onChange(s,i,{rowIndex:t,layoutIndex:i,layout:e}),this.$panel.dialog.close()}}})},duplicate(t,e){const s=this.$helper.object.clone(e),i=this.updateIds(s);this.rows.splice(t+1,0,...i),this.save()},async onAdd(t){let e=await this.$api.post(this.endpoints.field+"/layout",{columns:t});this.rows.splice(this.nextIndex,0,e),this.save()},async onChange(t,e,s){if(e===this.layouts[s.layoutIndex])return;const i=s.layout,n=await this.$api.post(this.endpoints.field+"/layout",{attrs:i.attrs,columns:t}),o=i.columns.filter(t=>{var e;return(null==(e=null==t?void 0:t.blocks)?void 0:e.length)>0}),r=[];if(0===o.length)r.push(n);else{const t=Math.ceil(o.length/n.columns.length)*n.columns.length;for(let e=0;e{var i;return t.blocks=(null==(i=o[s+e])?void 0:i.blocks)??[],t}),t.columns.filter(t=>{var e;return null==(e=null==t?void 0:t.blocks)?void 0:e.length}).length&&r.push(t)}}this.rows.splice(s.rowIndex,1,...r),this.save()},async paste(t,e=this.rows.length){let s=await this.$api.post(this.endpoints.field+"/layout/paste",{json:this.$helper.clipboard.read(t)});s.length&&(this.rows.splice(e,0,...s),this.save()),this.$panel.notification.success({message:this.$t("paste.success",{count:s.length}),icon:"download"})},pasteboard(t){this.$panel.dialog.open({component:"k-block-pasteboard",on:{paste:e=>this.paste(e,t)}})},remove(t){const e=this.rows.findIndex(e=>e.id===t.id);-1!==e&&this.$delete(this.rows,e),this.save()},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.layout.delete.confirm.all")},on:{submit:()=>{this.rows=[],this.save(),this.$panel.dialog.close()}}})},save(){this.$emit("input",this.rows)},select(t){if(this.nextIndex=t,1===this.layouts.length)return this.onAdd(this.layouts[0]);this.$panel.dialog.open({component:"k-layout-selector",props:{layouts:this.layouts,selector:this.selector,value:null},on:{submit:t=>{this.onAdd(t),this.$panel.dialog.close()}}})},updateAttrs(t,e){this.rows[t].attrs=e,this.save()},updateColumn(t){this.rows[t.index].columns[t.columnIndex].blocks=t.blocks,this.save()},updateIds(t){return!1===Array.isArray(t)&&(t=[t]),t.map(t=>(t.id=this.$helper.uuid(),t.columns=t.columns.map(t=>(t.id=this.$helper.uuid(),t.blocks=t.blocks.map(t=>(t.id=this.$helper.uuid(),t)),t)),t))}}};const li=ut(ai,function(){var t=this,e=t._self._c;return e("div",[t.hasFieldsets&&t.rows.length?[e("k-draggable",t._b({staticClass:"k-layouts",on:{sort:t.save}},"k-draggable",t.draggableOptions,!1),t._l(t.rows,function(s,i){return e("k-layout",t._b({key:s.id,on:{append:function(e){return t.select(i+1)},change:function(e){return t.change(i,s)},copy:function(e){return t.copy(e,i)},duplicate:function(e){return t.duplicate(i,s)},paste:function(e){return t.pasteboard(i+1)},prepend:function(e){return t.select(i)},remove:function(e){return t.remove(s)},select:function(e){t.selected=s.id},updateAttrs:function(e){return t.updateAttrs(i,e)},updateColumn:function(e){return t.updateColumn({layout:s,index:i,...e})}}},"k-layout",{...s,disabled:t.disabled,endpoints:t.endpoints,fieldsetGroups:t.fieldsetGroups,fieldsets:t.fieldsets,isSelected:t.selected===s.id,layouts:t.layouts,settings:t.settings},!1))}),1)]:!1===t.hasFieldsets?e("k-empty",{staticClass:"k-layout-empty",attrs:{icon:"dashboard"}},[t._v(" "+t._s(t.$t("field.blocks.fieldsets.empty"))+" ")]):e("k-empty",{staticClass:"k-layout-empty",attrs:{icon:"dashboard"},on:{click:function(e){return t.select(0)}}},[t._v(" "+t._s(t.empty??t.$t("field.layout.empty"))+" ")])],2)},[]).exports;const ci=ut({mixins:[Ne,ri,W],inheritAttrs:!1,computed:{hasFieldsets(){return this.$helper.object.length(this.fieldsets)>0},isEmpty(){return 0===this.value.length},options(){return[{click:()=>this.$refs.layouts.copy(),disabled:this.isEmpty,icon:"template",text:this.$t("copy.all")},{click:()=>this.$refs.layouts.pasteboard(),icon:"download",text:this.$t("paste")},"-",{click:()=>this.$refs.layouts.removeAll(),disabled:this.isEmpty,icon:"trash",text:this.$t("delete.all")}]}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-layout-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFieldsets?{key:"options",fn:function(){return[e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{staticClass:"input-focus",attrs:{autofocus:t.autofocus,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.layouts.select(0)}}}),e("k-button",{attrs:{icon:"dots",variant:"filled",size:"xs"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:t.options,"align-x":"end"}})],1)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[e("k-layouts",t._b({ref:"layouts",on:{input:function(e){return t.$emit("input",e)}}},"k-layouts",t.$props,!1))],1),!t.disabled&&t.hasFieldsets?e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.layouts.select(t.value.length)}}})],1):t._e()],1)},[]).exports;const ui=ut({},function(){return(0,this._self._c)("hr",{staticClass:"k-line-field"})},[]).exports,pi={mixins:[{mixins:[Ne,Ve,Ee,ot],props:{value:{default:"",type:String}}}],inheritAttrs:!1,data:()=>({linkType:null,linkValue:null,expanded:!1}),computed:{activeTypes(){return this.$helper.link.types(this.options)},activeTypesOptions(){const t=[];for(const e in this.activeTypes)t.push({click:()=>this.switchType(e),current:e===this.currentType.id,icon:this.activeTypes[e].icon,label:this.activeTypes[e].label});return t},currentType(){return this.activeTypes[this.linkType]??Object.values(this.activeTypes)[0]}},watch:{value:{async handler(t,e){if(t===e||t===this.linkValue)return;const s=this.$helper.link.detect(t,this.activeTypes);s&&(this.linkType=s.type,this.linkValue=s.link)},immediate:!0}},mounted(){this.$events.on("click",this.onOutsideClick)},destroyed(){this.$events.off("click",this.onOutsideClick)},methods:{clear(){this.linkValue="",this.$emit("input","")},focus(){var t;null==(t=this.$refs.input)||t.focus()},onInput(t){const e=(null==t?void 0:t.trim())??"";if(this.linkType??(this.linkType=this.currentType.id),this.linkValue=e,!e.length)return this.clear();this.$emit("input",this.currentType.value(e))},onOutsideClick(t){!1===this.$el.contains(t.target)&&(this.expanded=!1)},removeModel(){this.clear(),this.expanded=!1},selectModel(t){t.uuid?this.onInput(t.uuid):(this.switchType("url"),this.onInput(t.url))},async switchType(t){t!==this.currentType.id&&(this.linkType=t,this.clear(),"page"===this.currentType.id||"file"===this.currentType.id?this.expanded=!0:this.expanded=!1,await this.$nextTick(),this.focus())},toggle(){this.expanded=!this.expanded}}};const di=ut(pi,function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-link-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({attrs:{icon:!1}},"k-input",t.$props,!1),[e("div",{staticClass:"k-link-input-header"},[e("k-button",{staticClass:"k-link-input-toggle",attrs:{disabled:t.disabled,dropdown:!t.disabled&&t.activeTypesOptions.length>1,icon:t.currentType.icon,variant:"filled"},on:{click:function(e){t.activeTypesOptions.length>1?t.$refs.types.toggle():t.toggle()}}},[t._v(" "+t._s(t.currentType.label)+" ")]),e("k-dropdown-content",{ref:"types",attrs:{options:t.activeTypesOptions}}),"page"===t.currentType.id||"file"===t.currentType.id?e("div",{staticClass:"k-link-input-model",on:{click:t.toggle}},[e("k-link-field-preview",{attrs:{removable:!0,type:t.currentType.id,value:t.value},on:{remove:t.removeModel},scopedSlots:t._u([{key:"placeholder",fn:function(){return[e("k-button",{staticClass:"k-link-input-model-placeholder"},[t._v(" "+t._s(t.currentType.placeholder)+" ")])]},proxy:!0}],null,!1,3171606015)}),e("k-button",{staticClass:"k-link-input-model-toggle",attrs:{icon:"bars"}})],1):e("k-"+t.currentType.input+"-input",{ref:"input",tag:"component",attrs:{id:t.id,disabled:t.disabled,pattern:t.currentType.pattern??null,placeholder:t.currentType.placeholder,required:t.required,value:t.linkValue},on:{input:t.onInput}})],1),"page"===t.currentType.id?e("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"k-link-input-body",attrs:{"data-type":"page"}},[e("div",{staticClass:"k-page-browser"},[e("k-page-tree",{attrs:{current:t.$helper.link.getPageUUID(t.value),root:!1},on:{select:function(e){return t.selectModel(e)}}})],1)]):"file"===t.currentType.id?e("div",{directives:[{name:"show",rawName:"v-show",value:t.expanded,expression:"expanded"}],staticClass:"k-link-input-body",attrs:{"data-type":"file"}},[e("k-file-browser",{attrs:{opened:t.$panel.view.props.model.uuid??t.$panel.view.props.model.id,selected:t.$helper.link.getFileUUID(t.value)},on:{select:function(e){return t.selectModel(e)}}})],1):t._e()])],1)},[]).exports;const hi=t=>({$from:e})=>((t,e)=>{for(let s=t.depth;s>0;s--){const i=t.node(s);if(e(i))return{pos:s>0?t.before(s):0,start:t.start(s),depth:s,node:i}}})(e,t),mi=t=>e=>{if((t=>t instanceof p)(e)){const{node:s,$from:i}=e;if(((t,e)=>Array.isArray(t)&&t.indexOf(e.type)>-1||e.type===t)(t,s))return{node:s,pos:i.pos,depth:i.depth}}},fi=(t,e,s={})=>{const i=mi(e)(t.selection)||hi(t=>t.type===e)(t.selection);return 0!==wt(s)&&i?i.node.hasMarkup(e,{...i.node.attrs,...s}):!!i};function gi(t=null,e=null){if(!t||!e)return!1;const s=t.parent.childAfter(t.parentOffset);if(!s.node)return!1;const i=s.node.marks.find(t=>t.type===e);if(!i)return!1;let n=t.index(),o=t.start()+s.offset,r=n+1,a=o+s.node.nodeSize;for(;n>0&&i.isInSet(t.parent.child(n-1).marks);)n-=1,o-=t.parent.child(n).nodeSize;for(;r{n=[...n,...t.marks]});const o=n.find(t=>t.type.name===e.name);return o?o.attrs:{}},getNodeAttrs:function(t,e){const{from:s,to:i}=t.selection;let n=[];t.doc.nodesBetween(s,i,t=>{n=[...n,t]});const o=n.reverse().find(t=>t.type.name===e.name);return o?o.attrs:{}},insertNode:function(t,e,s,i){return(n,o)=>{o(n.tr.replaceSelectionWith(t.create(e,s,i)).scrollIntoView())}},markInputRule:function(t,e,s){return new a(t,(t,i,n,o)=>{const r=s instanceof Function?s(i):s,{tr:a}=t,l=i.length-1;let c=o,u=n;if(i[l]){const s=n+i[0].indexOf(i[l-1]),r=s+i[l-1].length-1,p=s+i[l-1].lastIndexOf(i[l]),d=p+i[l].length,h=function(t,e,s){let i=[];return s.doc.nodesBetween(t,e,(t,e)=>{i=[...i,...t.marks.map(s=>({start:e,end:e+t.nodeSize,mark:s}))]}),i}(n,o,t).filter(t=>{const{excluded:s}=t.mark.type;return s.find(t=>t.name===e.name)}).filter(t=>t.end>s);if(h.length)return!1;ds&&a.delete(s,p),u=s,c=u+i[l].length}return a.addMark(u,c,e.create(r)),a.removeStoredMark(e),a})},markIsActive:function(t,e){const{from:s,$from:i,to:n,empty:o}=t.selection;return o?!!e.isInSet(t.storedMarks||i.marks()):!!t.doc.rangeHasMark(s,n,e)},markPasteRule:function(t,e,s){const i=(n,o)=>{const r=[];return n.forEach(n=>{var a;if(n.isText){const{text:i,marks:l}=n;let c,u=0;const p=!!l.filter(t=>"link"===t.type.name)[0];for(;!p&&null!==(c=t.exec(i));)if((null==(a=null==o?void 0:o.type)?void 0:a.allowsMarkType(e))&&c[1]){const t=c.index,i=t+c[0].length,o=t+c[0].indexOf(c[1]),a=o+c[1].length,l=s instanceof Function?s(c):s;t>0&&r.push(n.cut(u,t)),r.push(n.cut(o,a).mark(e.create(l).addToSet(n.marks))),u=i}unew c(i(t.content),t.openStart,t.openEnd)}})},minMax:function(t=0,e=0,s=0){return Math.min(Math.max(parseInt(t,10),e),s)},nodeIsActive:fi,nodeInputRule:function(t,e,s){return new a(t,(t,i,n,o)=>{const r=s instanceof Function?s(i):s,{tr:a}=t;return i[0]&&a.replaceWith(n,o,e.create(r)),a})},pasteRule:function(t,e,s){const i=n=>{const o=[];return n.forEach(n=>{if(n.isText){const{text:i}=n;let r,a=0;do{if(r=t.exec(i),r){const t=r.index,i=t+r[0].length,l=s instanceof Function?s(r[0]):s;t>0&&o.push(n.cut(a,t)),o.push(n.cut(t,i).mark(e.create(l).addToSet(n.marks))),a=i}}while(r);anew c(i(t.content),t.openStart,t.openEnd)}})},removeMark:function(t){return(e,s)=>{const{tr:i,selection:n}=e;let{from:o,to:r}=n;const{$from:a,empty:l}=n;if(l){const e=gi(a,t);o=e.from,r=e.to}return i.removeMark(o,r,t),s(i)}},toggleBlockType:function(t,e,s={}){return(i,n,o)=>fi(i,t,s)?d(e)(i,n,o):d(t,s)(i,n,o)},toggleList:function(t,e){return(s,i,n)=>{const{schema:o,selection:r}=s,{$from:a,$to:l}=r,c=a.blockRange(l);if(!c)return!1;const u=hi(t=>ki(t,o))(r);if(c.depth>=1&&u&&c.depth-u.depth<=1){if(u.node.type===t)return h(e)(s,i,n);if(ki(u.node,o)&&t.validContent(u.node.content)){const{tr:e}=s;return e.setNodeMarkup(u.pos,t),i&&i(e),!1}}return m(t)(s,i,n)}},toggleWrap:function(t,e={}){return(s,i,n)=>fi(s,t,e)?f(s,i):g(t,e)(s,i,n)},updateMark:function(t,e){return(s,i)=>{const{tr:n,selection:o,doc:r}=s,{ranges:a,empty:l}=o;if(l){const{from:s,to:i}=gi(o.$from,t);r.rangeHasMark(s,i,t)&&n.removeMark(s,i,t),n.addMark(s,i,t.create(e))}else a.forEach(s=>{const{$to:i,$from:o}=s;r.rangeHasMark(o.pos,i.pos,t)&&n.removeMark(o.pos,i.pos,t),n.addMark(o.pos,i.pos,t.create(e))});return i(n)}}};class yi{emit(t,...e){this._callbacks??(this._callbacks={});const s=this._callbacks[t]??[];for(const i of s)i.apply(this,e);return this}off(t,e){if(arguments.length){const s=this._callbacks?this._callbacks[t]:null;s&&(e?this._callbacks[t]=s.filter(t=>t!==e):delete this._callbacks[t])}else this._callbacks={};return this}on(t,e){var s;return this._callbacks??(this._callbacks={}),(s=this._callbacks)[t]??(s[t]=[]),this._callbacks[t].push(e),this}}class vi{constructor(t=[],e){for(const s of t)s.bindEditor(e),s.init();this.extensions=t}commands({schema:t,view:e}){return this.extensions.filter(t=>t.commands).reduce((s,i)=>{const{name:n,type:o}=i,r={},a=i.commands({schema:t,utils:bi,...["node","mark"].includes(o)?{type:t[`${o}s`][n]}:{}}),l=(t,s)=>{r[t]=t=>{if("function"!=typeof s||!e.editable)return!1;e.focus();const i=s(t);return"function"==typeof i?i(e.state,e.dispatch,e):i}};if("object"==typeof a)for(const[t,e]of Object.entries(a))l(t,e);else l(n,a);return{...s,...r}},{})}buttons(t="mark"){const e={};for(const s of this.extensions)if(s.type===t&&s.button)if(Array.isArray(s.button))for(const t of s.button)e[t.id??t.name]=t;else e[s.name]={name:s.name,...s.button};return e}getAllowedExtensions(t){return t instanceof Array||!t?t instanceof Array?this.extensions.filter(e=>!t.includes(e.name)):this.extensions:[]}getFromExtensions(t,e,s=this.extensions){return s.filter(t=>["extension"].includes(t.type)).filter(e=>e[t]).map(s=>s[t]({...e,utils:bi}))}getFromNodesAndMarks(t,e,s=this.extensions){return s.filter(t=>["node","mark"].includes(t.type)).filter(e=>e[t]).map(s=>s[t]({...e,type:e.schema[`${s.type}s`][s.name],utils:bi}))}inputRules({schema:t,excludedExtensions:e}){const s=this.getAllowedExtensions(e);return[...this.getFromExtensions("inputRules",{schema:t},s),...this.getFromNodesAndMarks("inputRules",{schema:t},s)].reduce((t,e)=>[...t,...e],[])}keymaps({schema:t}){return[...this.getFromExtensions("keys",{schema:t}),...this.getFromNodesAndMarks("keys",{schema:t})].map(t=>S(t))}get marks(){return this.extensions.filter(t=>"mark"===t.type).reduce((t,{name:e,schema:s})=>({...t,[e]:s}),{})}get markViews(){return this.extensions.filter(t=>["mark"].includes(t.type)).filter(t=>t.view).reduce((t,{name:e,view:s})=>({...t,[e]:s}),{})}get nodes(){return this.extensions.filter(t=>"node"===t.type).reduce((t,{name:e,schema:s})=>({...t,[e]:s}),{})}get nodeViews(){return this.extensions.filter(t=>["node"].includes(t.type)).filter(t=>t.view).reduce((t,{name:e,view:s})=>({...t,[e]:s}),{})}get options(){const{view:t}=this;return this.extensions.reduce((e,s)=>({...e,[s.name]:new Proxy(s.options,{set(e,s,i){const n=e[s]!==i;return Object.assign(e,{[s]:i}),n&&t.updateState(t.state),!0}})}),{})}pasteRules({schema:t,excludedExtensions:e}){const s=this.getAllowedExtensions(e);return[...this.getFromExtensions("pasteRules",{schema:t},s),...this.getFromNodesAndMarks("pasteRules",{schema:t},s)].reduce((t,e)=>[...t,...e],[])}plugins({schema:t}){return[...this.getFromExtensions("plugins",{schema:t}),...this.getFromNodesAndMarks("plugins",{schema:t})].reduce((t,e)=>[...t,...e],[]).map(t=>t instanceof l?t:new l(t))}}class $i{constructor(t={}){this.options={...this.defaults,...t}}init(){return null}bindEditor(t=null){this.editor=t}get name(){return null}get type(){return"extension"}get defaults(){return{}}plugins(){return[]}inputRules(){return[]}pasteRules(){return[]}keys(){return{}}}class wi extends $i{constructor(t={}){super(t)}get type(){return"node"}get schema(){return{}}commands(){return{}}}class xi extends wi{get defaults(){return{inline:!1}}get name(){return"doc"}get schema(){return{content:this.options.inline?"inline*":"block+"}}}class _i extends wi{get button(){return{id:this.name,icon:"paragraph",label:window.panel.$t("toolbar.button.paragraph"),name:this.name,separator:!0}}commands({utils:t,schema:e,type:s}){return{paragraph:()=>this.editor.activeNodes.includes("bulletList")?t.toggleList(e.nodes.bulletList,e.nodes.listItem):this.editor.activeNodes.includes("orderedList")?t.toggleList(e.nodes.orderedList,e.nodes.listItem):this.editor.activeNodes.includes("quote")?t.toggleWrap(e.nodes.quote):t.setBlockType(s)}}get schema(){return{content:"inline*",group:"block",draggable:!1,parseDOM:[{tag:"p"}],toDOM:()=>["p",0]}}get name(){return"paragraph"}}let Si=class extends wi{get name(){return"text"}get schema(){return{group:"inline"}}};class Ci extends yi{constructor(t={}){super(),this.defaults={autofocus:!1,content:"",disableInputRules:!1,disablePasteRules:!1,editable:!0,element:null,extensions:[],emptyDocument:{type:"doc",content:[]},events:{},inline:!1,parseOptions:{},topNode:"doc",useBuiltInExtensions:!0},this.init(t)}blur(){this.view.dom.blur()}get builtInExtensions(){return!0!==this.options.useBuiltInExtensions?[]:[new xi({inline:this.options.inline}),new Si,new _i]}buttons(t){return this.extensions.buttons(t)}clearContent(t=!1){this.setContent(this.options.emptyDocument,t)}command(t,...e){var s,i;null==(i=(s=this.commands)[t])||i.call(s,...e)}createCommands(){return this.extensions.commands({schema:this.schema,view:this.view})}createDocument(t,e=this.options.parseOptions){if(null===t)return this.schema.nodeFromJSON(this.options.emptyDocument);if("object"==typeof t)try{return this.schema.nodeFromJSON(t)}catch(s){return window.console.warn("Invalid content.","Passed value:",t,"Error:",s),this.schema.nodeFromJSON(this.options.emptyDocument)}if("string"==typeof t){const s=`${t}
`,i=(new window.DOMParser).parseFromString(s,"text/html").body.firstElementChild;return C.fromSchema(this.schema).parse(i,e)}return!1}createEvents(){const t=this.options.events??{};for(const[e,s]of Object.entries(t))this.on(e,s);return t}createExtensions(){return new vi([...this.builtInExtensions,...this.options.extensions],this)}createFocusEvents(){const t=(t,e,s=!0)=>{this.focused=s,this.emit(s?"focus":"blur",{event:e,state:t.state,view:t});const i=this.state.tr.setMeta("focused",s);this.view.dispatch(i)};return new l({props:{attributes:{tabindex:0},handleDOMEvents:{focus:(e,s)=>t(e,s,!0),blur:(e,s)=>t(e,s,!1)}}})}createInputRules(){return this.extensions.inputRules({schema:this.schema,excludedExtensions:this.options.disableInputRules})}createKeymaps(){return this.extensions.keymaps({schema:this.schema})}createMarks(){return this.extensions.marks}createMarkViews(){return this.extensions.markViews}createNodes(){return this.extensions.nodes}createNodeViews(){return this.extensions.nodeViews}createPasteRules(){return this.extensions.pasteRules({schema:this.schema,excludedExtensions:this.options.disablePasteRules})}createPlugins(){return this.extensions.plugins({schema:this.schema})}createSchema(){return new O({topNode:this.options.topNode,nodes:this.nodes,marks:this.marks})}createState(){return A.create({schema:this.schema,doc:this.createDocument(this.options.content),plugins:[...this.plugins,M({rules:this.inputRules}),...this.pasteRules,...this.keymaps,S({Backspace:I}),S(B),this.createFocusEvents()]})}createView(){return new D(this.element,{dispatchTransaction:this.dispatchTransaction.bind(this),attributes:{class:"k-text"},editable:()=>this.options.editable,handlePaste:(t,e)=>{if("function"==typeof this.events.paste){const t=e.clipboardData.getData("text/html"),s=e.clipboardData.getData("text/plain");if(!0===this.events.paste(e,t,s))return!0}},handleDrop:(...t)=>{this.emit("drop",...t)},markViews:this.createMarkViews(),nodeViews:this.createNodeViews(),state:this.createState()})}destroy(){this.view&&this.view.destroy()}dispatchTransaction(t){const e=this.state,s=this.state.apply(t);this.view.updateState(s),this.setActiveNodesAndMarks();const i={editor:this,getHTML:this.getHTML.bind(this),getJSON:this.getJSON.bind(this),state:this.state,transaction:t};this.emit("transaction",i),t.docChanged&&!t.getMeta("preventUpdate")&&t.steps.length>0&&this.emit("update",i);const{from:n,to:o}=this.state.selection,r=!e||!e.selection.eq(s.selection);this.emit(s.selection.empty?"deselect":"select",{...i,from:n,hasChanged:r,to:o})}focus(t=null){if(this.view.focused&&null===t||!1===t)return;const{from:e,to:s}=this.selectionAtPosition(t);this.setSelection(e,s),setTimeout(()=>this.view.focus(),10)}getHTML(t=this.state.doc.content){const e=document.createElement("div"),s=E.fromSchema(this.schema).serializeFragment(t);return e.appendChild(s),this.options.inline&&e.querySelector("p")?e.querySelector("p").innerHTML:e.innerHTML}getHTMLStartToSelection(){const t=this.state.doc.slice(0,this.selection.head).content;return this.getHTML(t)}getHTMLSelectionToEnd(){const t=this.state.doc.slice(this.selection.head).content;return this.getHTML(t)}getHTMLStartToSelectionToEnd(){return[this.getHTMLStartToSelection(),this.getHTMLSelectionToEnd()]}getJSON(){return this.state.doc.toJSON()}getMarkAttrs(t=null){return this.activeMarkAttrs[t]}getSchemaJSON(){return JSON.parse(JSON.stringify({nodes:this.nodes,marks:this.marks}))}init(t={}){this.options={...this.defaults,...t},this.element=this.options.element,this.focused=!1,this.events=this.createEvents(),this.extensions=this.createExtensions(),this.nodes=this.createNodes(),this.marks=this.createMarks(),this.schema=this.createSchema(),this.keymaps=this.createKeymaps(),this.inputRules=this.createInputRules(),this.pasteRules=this.createPasteRules(),this.plugins=this.createPlugins(),this.view=this.createView(),this.commands=this.createCommands(),this.setActiveNodesAndMarks(),!1!==this.options.autofocus&&this.focus(this.options.autofocus),this.emit("init",{view:this.view,state:this.state}),this.extensions.view=this.view,this.setContent(this.options.content)}insertText(t,e=!1){const{tr:s}=this.state,i=s.insertText(t);if(this.view.dispatch(i),e){const e=s.selection.from,i=e-t.length;this.setSelection(i,e)}}get isActive(){return Object.entries({...this.activeMarks,...this.activeNodes}).reduce((t,[e,s])=>({...t,[e]:(t={})=>s(t)}),{})}isEditable(){return this.options.editable}isEmpty(){if(this.state)return 0===this.state.doc.textContent.length}removeMark(t){if(this.schema.marks[t])return bi.removeMark(this.schema.marks[t])(this.state,this.view.dispatch)}get selection(){return this.state.selection}get selectionAtEnd(){return j.atEnd(this.state.doc)}get selectionIsAtEnd(){return this.selection.head===this.selectionAtEnd.head}get selectionAtStart(){return j.atStart(this.state.doc)}get selectionIsAtStart(){return this.selection.head===this.selectionAtStart.head}selectionAtPosition(t=null){return null===t?this.selection:"start"===t||!0===t?this.selectionAtStart:"end"===t?this.selectionAtEnd:{from:t,to:t}}setActiveNodesAndMarks(){this.activeMarks=Object.values(this.schema.marks).filter(t=>bi.markIsActive(this.state,t)).map(t=>t.name),this.activeMarkAttrs=Object.entries(this.schema.marks).reduce((t,[e,s])=>({...t,[e]:bi.getMarkAttrs(this.state,s)}),{}),this.activeNodes=Object.values(this.schema.nodes).filter(t=>bi.nodeIsActive(this.state,t)).map(t=>t.name),this.activeNodeAttrs=Object.entries(this.schema.nodes).reduce((t,[e,s])=>({...t,[e]:bi.getNodeAttrs(this.state,s)}),{})}setContent(t={},e=!1,s){const{doc:i,tr:n}=this.state,o=this.createDocument(t,s),r=n.replaceWith(0,i.content.size,o).setMeta("preventUpdate",!e);this.view.dispatch(r)}setSelection(t=0,e=0){const{doc:s,tr:i}=this.state,n=bi.minMax(t,0,s.content.size),o=bi.minMax(e,0,s.content.size),r=j.create(s,n,o),a=i.setSelection(r);this.view.dispatch(a)}get state(){var t;return null==(t=this.view)?void 0:t.state}toggleMark(t){if(this.schema.marks[t])return bi.toggleMark(this.schema.marks[t])(this.state,this.view.dispatch)}updateMark(t,e){if(this.schema.marks[t])return bi.updateMark(this.schema.marks[t],e)(this.state,this.view.dispatch)}}class Oi extends $i{command(){return()=>{}}remove(){this.editor.removeMark(this.name)}get schema(){return{}}get type(){return"mark"}toggle(){return this.editor.toggleMark(this.name)}update(t){this.editor.updateMark(this.name,t)}}class Ai extends Oi{get button(){return{icon:"bold",label:window.panel.$t("toolbar.button.bold")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))$/,t),e.markInputRule(/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))$/,t)]}keys(){return{"Mod-b":()=>this.toggle()}}get name(){return"bold"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:^|\s)(\*\*(?!\s+\*\*)((?:[^*]+))\*\*(?!\s+\*\*))/g,t),e.markPasteRule(/(?:^|\s)(__(?!\s+__)((?:[^_]+))__(?!\s+__))/g,t)]}get schema(){return{parseDOM:[{tag:"strong"},{tag:"b",getAttrs:t=>"normal"!==t.style.fontWeight&&null},{style:"font-weight",getAttrs:t=>/^(bold(er)?|[5-9]\d{2,})$/.test(t)&&null}],toDOM:()=>["strong",0]}}}class Mi extends Oi{get button(){return{icon:"clear",label:window.panel.$t("toolbar.button.clear")}}commands(){return()=>this.clear()}clear(){const{state:t}=this.editor,{from:e,to:s}=t.tr.selection;for(const i of this.editor.activeMarks){const n=t.schema.marks[i],o=this.editor.state.tr.removeMark(e,s,n);this.editor.view.dispatch(o)}}get name(){return"clear"}}let Di=class extends Oi{get button(){return{icon:"code",label:window.panel.$t("toolbar.button.code")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:`)([^`]+)(?:`)$/,t)]}keys(){return{"Mod-`":()=>this.toggle()}}get name(){return"code"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:`)([^`]+)(?:`)/g,t)]}get schema(){return{excludes:"_",parseDOM:[{tag:"code"}],toDOM:()=>["code",0]}}};class Ei extends Oi{get button(){return{icon:"email",label:window.panel.$t("toolbar.button.email")}}commands(){return{email:t=>{if(t.altKey||t.metaKey)return this.remove();this.editor.emit("email",this.editor)},insertEmail:(t={})=>{const{selection:e}=this.editor.state;if(e.empty&&this.editor.insertText(t.href,!0),t.href)return this.update(t)},removeEmail:()=>this.remove(),toggleEmail:(t={})=>{var e;(null==(e=t.href)?void 0:e.length)>0?this.editor.command("insertEmail",t):this.editor.command("removeEmail")}}}get defaults(){return{target:null}}get name(){return"email"}pasteRules({type:t,utils:e}){return[e.pasteRule(/^[\w-.]+@([\w-]+\.)+[\w-]{2,4}$/gi,t,t=>({href:t}))]}plugins(){return[{props:{handleClick:(t,e,s)=>{const i=this.editor.getMarkAttrs("email");i.href&&!0===s.altKey&&s.target instanceof HTMLAnchorElement&&(s.stopPropagation(),window.open(i.href))}}}]}get schema(){return{attrs:{href:{default:null},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href^='mailto:']",getAttrs:t=>({href:t.getAttribute("href").replace("mailto:",""),title:t.getAttribute("title")})}],toDOM:t=>["a",{...t.attrs,href:"mailto:"+t.attrs.href},0]}}}class ji extends Oi{get button(){return{icon:"italic",label:window.panel.$t("toolbar.button.italic")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))$/,t),e.markInputRule(/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))$/,t)]}keys(){return{"Mod-i":()=>this.toggle()}}get name(){return"italic"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/(?:^|\s)(\*(?!\s+\*)((?:[^*]+))\*(?!\s+\*))/g,t),e.markPasteRule(/(?:^|\s)(_(?!\s+_)((?:[^_]+))_(?!\s+_))/g,t)]}get schema(){return{parseDOM:[{tag:"i"},{tag:"em"},{style:"font-style=italic"}],toDOM:()=>["em",0]}}}let Ii=class extends Oi{get button(){return{icon:"url",label:window.panel.$t("toolbar.button.link")}}commands(){return{link:t=>{if(t.altKey||t.metaKey)return this.remove();this.editor.emit("link",this.editor)},insertLink:(t={})=>{const{selection:e}=this.editor.state;if(e.empty&&!1===this.editor.activeMarks.includes("link")&&this.editor.insertText(t.href,!0),t.href)return this.update(t)},removeLink:()=>this.remove(),toggleLink:(t={})=>{var e;(null==(e=t.href)?void 0:e.length)>0?this.editor.command("insertLink",t):this.editor.command("removeLink")}}}get defaults(){return{target:null}}get name(){return"link"}pasteRules({type:t,utils:e}){return[e.pasteRule(/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z]{2,}\b([-a-zA-Z0-9@:%_+.~#?&//=,]*)/gi,t,t=>({href:t}))]}plugins(){return[{props:{handleClick:(t,e,s)=>{const i=this.editor.getMarkAttrs("link");i.href&&!0===s.altKey&&s.target instanceof HTMLAnchorElement&&(s.stopPropagation(),window.open(i.href,i.target))}}}]}get schema(){return{attrs:{href:{default:null},target:{default:null},title:{default:null}},inclusive:!1,parseDOM:[{tag:"a[href]:not([href^='mailto:'])",getAttrs:t=>({href:t.getAttribute("href"),target:t.getAttribute("target"),title:t.getAttribute("title")})}],toDOM:t=>["a",{...t.attrs},0]}}};class Bi extends Oi{get button(){return{icon:"strikethrough",label:window.panel.$t("toolbar.button.strike")}}commands(){return()=>this.toggle()}inputRules({type:t,utils:e}){return[e.markInputRule(/~([^~]+)~$/,t)]}keys(){return{"Mod-d":()=>this.toggle()}}get name(){return"strike"}pasteRules({type:t,utils:e}){return[e.markPasteRule(/~([^~]+)~/g,t)]}get schema(){return{parseDOM:[{tag:"s"},{tag:"del"},{tag:"strike"},{style:"text-decoration",getAttrs:t=>"line-through"===t}],toDOM:()=>["s",0]}}}let Li=class extends Oi{get button(){return{icon:"superscript",label:window.panel.$t("toolbar.button.sup")}}commands(){return()=>this.toggle()}get name(){return"sup"}get schema(){return{parseDOM:[{tag:"sup"}],toDOM:()=>["sup",0]}}};class Ti extends Oi{get button(){return{icon:"subscript",label:window.panel.$t("toolbar.button.sub")}}commands(){return()=>this.toggle()}get name(){return"sub"}get schema(){return{parseDOM:[{tag:"sub"}],toDOM:()=>["sub",0]}}}class Pi extends Oi{get button(){return{icon:"underline",label:window.panel.$t("toolbar.button.underline")}}commands(){return()=>this.toggle()}keys(){return{"Mod-u":()=>this.toggle()}}get name(){return"underline"}get schema(){return{parseDOM:[{tag:"u"},{style:"text-decoration",getAttrs:t=>"underline"===t}],toDOM:()=>["u",0]}}}class qi extends wi{get button(){return{id:this.name,icon:"list-bullet",label:window.panel.$t("toolbar.button.ul"),name:this.name,when:["listItem","bulletList","orderedList","paragraph"]}}commands({type:t,schema:e,utils:s}){return()=>s.toggleList(t,e.nodes.listItem)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^\s*([-+*])\s$/,t)]}keys({type:t,schema:e,utils:s}){return{"Shift-Ctrl-8":s.toggleList(t,e.nodes.listItem)}}get name(){return"bulletList"}get schema(){return{content:"listItem+",group:"block",parseDOM:[{tag:"ul"}],toDOM:()=>["ul",0]}}}class Ni extends wi{commands({utils:t,type:e}){return()=>this.createHardBreak(t,e)}createHardBreak(t,e){return t.chainCommands(t.exitCode,t.insertNode(e))}get defaults(){return{enter:!1,text:!1}}keys({utils:t,type:e}){const s=this.createHardBreak(t,e);let i={"Mod-Enter":s,"Shift-Enter":s};return this.options.enter&&(i.Enter=s),i}get name(){return"hardBreak"}get schema(){return{inline:!0,group:"inline",selectable:!1,parseDOM:[{tag:"br"}],toDOM:()=>["br"]}}}class Fi extends wi{get button(){const t=this.options.levels.map(t=>({id:`h${t}`,command:`h${t}`,icon:`h${t}`,label:window.panel.$t("toolbar.button.heading."+t),attrs:{level:t},name:this.name,when:["heading","paragraph"]}));return t[t.length-1].separator=!0,t}commands({type:t,schema:e,utils:s}){let i={toggleHeading:i=>s.toggleBlockType(t,e.nodes.paragraph,i)};for(const n of this.options.levels)i[`h${n}`]=()=>s.toggleBlockType(t,e.nodes.paragraph,{level:n});return i}get defaults(){return{levels:[1,2,3,4,5,6]}}inputRules({type:t,utils:e}){return this.options.levels.map(s=>e.textblockTypeInputRule(new RegExp(`^(#{1,${s}})\\s$`),t,()=>({level:s})))}keys({type:t,utils:e}){return this.options.levels.reduce((s,i)=>({...s,[`Shift-Ctrl-${i}`]:e.setBlockType(t,{level:i})}),{})}get name(){return"heading"}get schema(){return{attrs:{level:{default:1}},content:"inline*",group:"block",defining:!0,draggable:!1,parseDOM:this.options.levels.map(t=>({tag:`h${t}`,attrs:{level:t}})),toDOM:t=>[`h${t.attrs.level}`,0]}}}class zi extends wi{commands({type:t,utils:e}){return()=>e.insertNode(t)}inputRules({type:t,utils:e}){const s=e.nodeInputRule(/^(?:---|___\s|\*\*\*\s)$/,t),i=s.handler;return s.handler=(t,e,s,n)=>i(t,e,s,n).replaceWith(s-1,s,""),[s]}get name(){return"horizontalRule"}get schema(){return{group:"block",parseDOM:[{tag:"hr"}],toDOM:()=>["hr"]}}}class Yi extends wi{keys({type:t,utils:e}){return{Enter:e.splitListItem(t),"Shift-Tab":e.liftListItem(t),Tab:e.sinkListItem(t)}}get name(){return"listItem"}get schema(){return{content:"paragraph block*",defining:!0,draggable:!1,parseDOM:[{tag:"li"}],toDOM:()=>["li",0]}}}class Ri extends wi{get button(){return{id:this.name,icon:"list-numbers",label:window.panel.$t("toolbar.button.ol"),name:this.name,when:["listItem","bulletList","orderedList","paragraph"],separator:!0}}commands({type:t,schema:e,utils:s}){return()=>s.toggleList(t,e.nodes.listItem)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^(\d+)\.\s$/,t,t=>({order:+t[1]}),(t,e)=>e.childCount+e.attrs.order===+t[1])]}keys({type:t,schema:e,utils:s}){return{"Shift-Ctrl-9":s.toggleList(t,e.nodes.listItem)}}get name(){return"orderedList"}get schema(){return{attrs:{order:{default:1}},content:"listItem+",group:"block",parseDOM:[{tag:"ol",getAttrs:t=>({order:t.hasAttribute("start")?+t.getAttribute("start"):1})}],toDOM:t=>1===t.attrs.order?["ol",0]:["ol",{start:t.attrs.order},0]}}}class Hi extends wi{get button(){return{id:this.name,icon:"quote",label:window.panel.$t("field.blocks.quote.name"),name:this.name}}commands({type:t,utils:e}){return()=>e.toggleWrap(t)}inputRules({type:t,utils:e}){return[e.wrappingInputRule(/^\s*>\s$/,t)]}keys({utils:t}){return{"Shift-Tab":(e,s)=>t.lift(e,s)}}get name(){return"quote"}get schema(){return{content:"block+",group:"block",defining:!0,draggable:!1,parseDOM:[{tag:"blockquote"}],toDOM:()=>["blockquote",0]}}}let Ui=class extends $i{commands(){return{undo:()=>q,redo:()=>P,undoDepth:()=>T,redoDepth:()=>L}}get defaults(){return{depth:"",newGroupDelay:""}}keys(){return{"Mod-z":q,"Mod-y":P,"Shift-Mod-z":P,"Mod-я":q,"Shift-Mod-я":P}}get name(){return"history"}plugins(){return[N({depth:this.options.depth,newGroupDelay:this.options.newGroupDelay})]}};class Vi extends $i{commands(){return{insertHtml:t=>(e,s)=>{let i=document.createElement("div");i.innerHTML=t.trim();const n=C.fromSchema(e.schema).parse(i);s(e.tr.replaceSelectionWith(n).scrollIntoView())}}}}class Ki extends $i{keys(){const t={};for(const e in this.options)t[e]=()=>(this.options[e](),!0);return t}}let Wi=class extends $i{constructor(t){super(),this.writer=t}get component(){return this.writer.$refs.toolbar}init(){this.editor.on("deselect",({event:t})=>{var e;return null==(e=this.component)?void 0:e.close(t)}),this.editor.on("select",({hasChanged:t})=>{var e;!1!==t&&(null==(e=this.component)||e.open())})}get type(){return"toolbar"}};const Ji={mixins:[Ee,st,it,at,ct],props:{breaks:Boolean,code:Boolean,emptyDocument:{type:Object,default:()=>({type:"doc",content:[]})},extensions:Array,headings:{default:()=>[1,2,3,4,5,6],type:[Array,Boolean]},inline:Boolean,keys:Object,marks:{type:[Array,Boolean],default:!0},nodes:{type:[Array,Boolean],default:()=>["heading","bulletList","orderedList"]},paste:{type:Function,default:()=>()=>!1},toolbar:{type:Object,default:()=>({inline:!0})},value:{type:String,default:""}}};const Gi=ut({mixins:[je,Ji],emits:["input"],data(){return{editor:null,json:{},html:this.value,isEmpty:!0}},computed:{characters(){const t=this.$helper.string.stripHTML(this.value??"");return this.$helper.string.unescapeHTML(t).length},isCursorAtEnd(){return this.editor.selectionIsAtEnd},isCursorAtStart(){return this.editor.selectionIsAtStart},toolbarOptions(){return{marks:Array.isArray(this.marks)||!1===this.marks?this.marks:void 0,...this.toolbar,editor:this.editor}}},watch:{value(t,e){t!==e&&t!==this.html&&(this.html=t,this.editor.setContent(this.html),this.isEmpty=this.editor.isEmpty())}},mounted(){this.editor=new Ci({autofocus:this.autofocus,content:this.value,editable:!this.disabled,element:this.$el,emptyDocument:this.emptyDocument,parseOptions:{preserveWhitespace:!0},events:{link:t=>{this.$panel.dialog.open({component:"k-link-dialog",props:{value:t.getMarkAttrs("link")},on:{cancel:()=>t.focus(),submit:e=>{this.$panel.dialog.close(),t.command("toggleLink",e)}}})},email:t=>{this.$panel.dialog.open({component:"k-email-dialog",props:{value:this.editor.getMarkAttrs("email")},on:{cancel:()=>t.focus(),submit:e=>{this.$panel.dialog.close(),t.command("toggleEmail",e)}}})},paste:this.paste,update:t=>{if(!this.editor)return;const e=JSON.stringify(this.editor.getJSON());e!==JSON.stringify(this.json)&&(this.json=e,this.isEmpty=t.editor.isEmpty(),this.html=t.editor.getHTML(),this.isEmpty&&(0===t.editor.activeNodes.length||t.editor.activeNodes.includes("paragraph"))&&(this.html=""),this.$emit("input",this.html),this.validate())}},extensions:[...this.createMarks(),...this.createNodes(),new Ki(this.keys),new Ui,new Vi,new Wi(this),...this.extensions||[]],inline:this.inline}),this.isEmpty=this.editor.isEmpty(),this.json=this.editor.getJSON(),this.$panel.events.on("click",this.onBlur),this.$panel.events.on("focus",this.onBlur),this.validate(),this.$props.autofocus&&this.focus()},beforeDestroy(){this.editor.destroy(),this.$panel.events.off("click",this.onBlur),this.$panel.events.off("focus",this.onBlur)},methods:{command(t,...e){this.editor.command(t,...e)},createMarks(){return this.filterExtensions({clear:new Mi,code:new Di,underline:new Pi,strike:new Bi,link:new Ii,email:new Ei,bold:new Ai,italic:new ji,sup:new Li,sub:new Ti,...this.createMarksFromPanelPlugins()},this.marks)},createMarksFromPanelPlugins(){const t=window.panel.plugins.writerMarks??{},e={};for(const s in t)e[s]=Object.create(Oi.prototype,Object.getOwnPropertyDescriptors({name:s,...t[s]}));return e},createNodes(){const t=new Ni({text:!0,enter:this.inline});return this.filterExtensions({bulletList:new qi,orderedList:new Ri,heading:new Fi({levels:this.headings}),horizontalRule:new zi,listItem:new Yi,quote:new Hi,...this.createNodesFromPanelPlugins()},this.nodes,(e,s)=>((e.includes("bulletList")||e.includes("orderedList"))&&s.push(new Yi),!0===this.inline&&(s=s.filter(t=>!0===t.schema.inline)),s.push(t),s))},createNodesFromPanelPlugins(){const t=window.panel.plugins.writerNodes??{},e={};for(const s in t)e[s]=Object.create(wi.prototype,Object.getOwnPropertyDescriptors({name:s,...t[s]}));return e},getHTML(){return this.editor.getHTML()},filterExtensions(t,e,s){!1===e?e=[]:!0!==e&&!1!==Array.isArray(e)||(e=Object.keys(t));let i=[];for(const n in t)e.includes(n)&&i.push(t[n]);return"function"==typeof s&&(i=s(e,i)),i},focus(){this.editor.focus()},getSplitContent(){return this.editor.getHTMLStartToSelectionToEnd()},onBlur(t){var e;!1===this.$el.contains(t.target)&&(null==(e=this.$refs.toolbar)||e.close())},onCommand(t,...e){this.editor.command(t,...e)},async validate(){var t;await new Promise(t=>setTimeout(()=>t(""),50));let e="";!1===this.isEmpty&&this.minlength&&this.charactersthis.maxlength&&(e=this.$t("error.validation.maxlength",{max:this.maxlength})),null==(t=this.$refs.output)||t.setCustomValidity(e)}}},function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"direction",rawName:"v-direction"}],ref:"editor",class:["k-writer","k-writer-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":t.isEmpty,"data-placeholder":t.placeholder,spellcheck:t.spellcheck}},[t.editor&&!t.disabled?e("k-writer-toolbar",t._b({ref:"toolbar",on:{command:t.onCommand}},"k-writer-toolbar",t.toolbarOptions,!1)):t._e(),e("textarea",{ref:"output",staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1"},domProps:{value:t.value}})],1)},[]).exports;class Xi extends xi{get schema(){return{content:this.options.nodes.join("|")}}}const Zi={mixins:[Ji],inheritAttrs:!1,props:{nodes:{type:Array,default:()=>["bulletList","orderedList"]}}};const Qi=ut({mixins:[je,Zi],data(){return{list:this.value,html:this.value}},computed:{listExtensions(){return[new Xi({inline:!0,nodes:this.nodes})]}},watch:{value(t){t!==this.html&&(this.list=t,this.html=t)}},methods:{focus(){this.$refs.input.focus()},onInput(t){let e=(new DOMParser).parseFromString(t,"text/html").querySelector("ul, ol");e&&0!==e.textContent.trim().length?(this.list=t,this.html=t.replace(/(|<\/p>)/gi,""),this.$emit("input",this.html)):this.$emit("input",this.list="")}}},function(){var t=this;return(0,t._self._c)("k-writer-input",t._b({ref:"input",class:["k-list-input",t.$attrs.class],style:t.$attrs.style,attrs:{extensions:t.listExtensions,value:t.list},on:{input:t.onInput}},"k-writer-input",t.$props,!1))},[]).exports;const tn=ut({mixins:[Ne,Ve,Zi],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-list-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:!1,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"list"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,en={props:{disabled:Boolean,html:{type:Boolean},removable:Boolean,theme:{type:String,default:"dark"}}};const sn=ut({mixins:[en],props:{element:String,image:{type:Object},link:String,text:String},emits:["remove"],computed:{isRemovable(){return this.removable&&!this.disabled}},methods:{remove(){this.isRemovable&&this.$emit("remove")},focus(){this.$el.focus()}}},function(){var t=this,e=t._self._c;return e(t.element??(t.link?"k-link":"button"),{tag:"component",staticClass:"k-tag",attrs:{"aria-disabled":t.disabled,"data-theme":t.theme,to:t.link,type:"button"},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete","Del"])?null:(e.preventDefault(),t.remove.apply(null,arguments))}}},[t._t("image",function(){var s;return[(null==(s=t.image)?void 0:s.src)?e("k-image-frame",t._b({staticClass:"k-tag-image"},"k-image-frame",t.image,!1)):t.image?e("k-icon-frame",t._b({staticClass:"k-tag-image"},"k-icon-frame",t.image,!1)):t._e()]}),t.text?[t.html?e("span",{staticClass:"k-tag-text",domProps:{innerHTML:t._s(t.text)}}):e("span",{staticClass:"k-tag-text"},[t._v(t._s(t.text))])]:t.$slots.default?[e("span",{staticClass:"k-tag-text"},[t._t("default")],2)]:t._e(),t.isRemovable?e("k-icon-frame",{staticClass:"k-tag-toggle",attrs:{icon:"cancel-small"},nativeOn:{click:function(e){return e.stopPropagation(),t.remove.apply(null,arguments)}}}):t._e()],2)},[]).exports,nn={mixins:[en,Q,ot],inheritAttrs:!1,props:{element:{type:String,default:"div"},layout:String,sort:{default:!1,type:Boolean},value:{default:()=>[],type:Array}}};const on=ut({mixins:[nn],props:{draggable:{default:!0,type:Boolean}},emits:["edit","input"],data:()=>({tags:[]}),computed:{dragOptions(){return{delay:1,disabled:!this.isDraggable,draggable:".k-tag",handle:".k-tag-text"}},isDraggable(){return!0!==this.sort&&!1!==this.draggable&&0!==this.tags.length&&!0!==this.disabled}},watch:{value:{handler(){let t=this.$helper.object.clone(this.value);if(!0===this.sort){const e=[];for(const s of this.options){const i=t.indexOf(s.value);-1!==i&&(e.push(s),t.splice(i,1))}e.push(...t),t=e}this.tags=t.map(this.tag).filter(t=>t)},immediate:!0}},methods:{edit(t,e,s){!1===this.disabled&&this.$emit("edit",t,e,s)},focus(t="last"){this.$refs.navigate.move(t)},index(t){return this.tags.findIndex(e=>e.value===t.value)},input(){this.$emit("input",this.tags.map(t=>t.value))},navigate(t){this.focus(t)},remove(t){this.tags.length<=1?this.navigate("last"):this.navigate("prev"),this.tags.splice(t,1),this.input()},option(t){return this.options.find(e=>e.value===t.value)},select(){this.focus()},tag(t){"object"!=typeof t&&(t={value:t});const e=this.option(t);return e||{text:this.$helper.string.escapeHTML(t.text??t.value),...t}}}},function(){var t=this,e=t._self._c;return e("k-navigate",{ref:"navigate",attrs:{axis:"list"===t.layout?"y":"x",select:":where(.k-tag, .k-tags-navigatable):not(:disabled)"}},[e("k-draggable",{class:["k-tags",t.$attrs.class],style:t.$attrs.style,attrs:{"data-layout":t.layout,element:t.element,list:t.tags,options:t.dragOptions},on:{end:t.input},scopedSlots:t._u([{key:"footer",fn:function(){return[t._t("default")]},proxy:!0}],null,!0)},t._l(t.tags,function(s,i){return e("k-tag",{key:s.id??s.value??s.text,attrs:{disabled:t.disabled,element:t.element,html:t.html,image:s.image,link:s.link,removable:t.removable&&!t.disabled,theme:t.theme,name:"tag"},on:{remove:function(e){return t.remove(i,s)}},nativeOn:{click:function(t){t.stopPropagation()},keypress:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.edit(i,s,e)},dblclick:function(e){return t.edit(i,s,e)}}},[e("span",{domProps:{innerHTML:t._s(s.text)}})])}),1)],1)},[]).exports,rn={mixins:[nt,lt,nn,Ie],props:{value:{default:()=>[],type:Array}},methods:{open(){this.$refs.dropdown.open(this.$el)}}};const an=ut({mixins:[je,rn]},function(){var t=this,e=t._self._c;return e("div",{class:["k-multiselect-input",t.$attrs.class],style:t.$attrs.style},[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.value),anchor:".k-multiselect-input-toggle"}},"k-input-validator",{min:t.min,max:t.max,required:t.required},!1),[e("k-tags",t._b({ref:"tags",attrs:{removable:!0},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){return e.stopPropagation(),t.open.apply(null,arguments)}}},"k-tags",t.$props,!1),[!t.max||t.value.length({editing:null}),computed:{canAdd(){return!this.max||this.value.length!1===this.value.includes(t.value))},picklist(){return{disabled:this.disabled,create:this.showCreate,ignore:this.ignore,min:this.min,max:this.max,search:this.showSearch}},replacableOptions(){return this.options.filter(t=>{var e;return!1===this.value.includes(t.value)||t.value===(null==(e=this.editing)?void 0:e.tag.value)})},showCreate(){return"options"!==this.accept&&(!this.editing||{submit:this.$t("replace.with")})},showSearch(){return!1!==this.search&&(this.editing?{placeholder:this.$t("replace.with"),...this.search}:"options"===this.accept?{placeholder:this.$t("filter"),...this.search}:this.search)}},methods:{create(t){const e=t.split(this.separator).map(t=>t.trim()),s=this.$helper.object.clone(this.value);for(let i of e)i=this.$refs.tags.tag(i,this.separator),!0===this.isAllowed(i)&&s.push(i.value);this.$emit("input",s),this.$refs.create.close()},async edit(t,e){this.editing={index:t,tag:e},this.$refs.replace.open()},focus(){this.canAdd&&this.$refs.create.open()},isAllowed(t){return"object"==typeof t&&0!==t.value.trim().length&&(!("options"===this.accept&&!this.$refs.tags.option(t))&&!0!==this.value.includes(t.value))},pick(t){this.$emit("input",t),this.$refs.create.close()},replace(t){const{index:e}=this.editing,s=this.$refs.tags.tag(t);if(this.$refs.replace.close(),this.editing=null,!1===this.isAllowed(s))return!1;const i=this.$helper.object.clone(this.value);i.splice(e,1,s.value),this.$emit("input",i),this.$refs.tags.navigate(e)},toggle(t){return!(t.metaKey||t.altKey||t.ctrlKey)&&("ArrowDown"===t.key?(this.$refs.create.open(),void t.preventDefault()):void(String.fromCharCode(t.keyCode).match(/(\w)/g)&&this.$refs.create.open()))}}};const un=ut(cn,function(){var t,e=this,s=e._self._c;return s("div",{staticClass:"k-tags-input",attrs:{"data-can-add":e.canAdd}},[s("k-input-validator",e._b({attrs:{value:JSON.stringify(e.value)}},"k-input-validator",{min:e.min,max:e.max,required:e.required},!1),[s("k-tags",e._b({ref:"tags",attrs:{removable:!0},on:{edit:e.edit,input:function(t){return e.$emit("input",t)}},nativeOn:{click:function(t){var s,i;t.stopPropagation(),null==(i=null==(s=e.$refs.toggle)?void 0:s.$el)||i.click()}}},"k-tags",e.$props,!1),[!e.max||e.value.length({object:{}}),computed:{hasFields(){return this.$helper.object.length(this.fields)>0},isEmpty(){return null===this.object||0===this.$helper.object.length(this.object)}},watch:{value:{handler(t){this.object=this.valueToObject(t)},immediate:!0}},methods:{add(){this.object=this.$helper.field.form(this.fields),this.save(),this.open()},cell(t,e){this.$set(this.object,t,e),this.save()},form(t){const e=this.$helper.field.subfields(this,this.fields);if(t)for(const s in e)e[s].autofocus=s===t;return e},remove(){this.object={},this.save()},open(t){if(this.disabled)return!1;this.$panel.drawer.open({component:"k-form-drawer",props:{breadcrumb:[],icon:"box",tab:"object",tabs:{object:{fields:this.form(t)}},title:this.label,value:this.object},on:{input:t=>{for(const e in t)this.$set(this.object,e,t[e]);this.save()}}})},save(){this.$emit("input",this.object)},valueToObject:t=>"object"!=typeof t?{}:t}};const bn=ut(kn,function(){var t=this,e=t._self._c;return e("k-field",t._b({staticClass:"k-object-field",attrs:{input:t.id},scopedSlots:t._u([!t.disabled&&t.hasFields?{key:"options",fn:function(){return[t.isEmpty?e("k-button",{attrs:{id:t.id,icon:"add",size:"xs",variant:"filled"},on:{click:t.add}}):e("k-button",{attrs:{icon:"remove",size:"xs",variant:"filled"},on:{click:t.remove}})]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[t.hasFields?[t.isEmpty?e("k-empty",{attrs:{icon:"box"},on:{click:t.add}},[t._v(" "+t._s(t.empty??t.$t("field.object.empty"))+" ")]):e("table",{staticClass:"k-table k-object-field-table",attrs:{"aria-disabled":t.disabled}},[e("tbody",[t._l(t.fields,function(s){return[s.saveable&&t.$helper.field.isVisible(s,t.value)?e("tr",{key:s.name,on:{click:function(e){return t.open(s.name)}}},[e("th",{attrs:{"data-has-button":"","data-mobile":"true"}},[e("button",{attrs:{type:"button"}},[t._v(t._s(s.label))])]),e("k-table-cell",{attrs:{column:s,field:s,mobile:!0,value:t.object[s.name]},on:{input:function(e){return t.cell(s.name,e)}}})],1):t._e()]})],2)])]:[e("k-empty",{attrs:{icon:"box"}},[t._v(t._s(t.$t("fields.empty")))])],e("input",{staticClass:"input-hidden",attrs:{type:"checkbox",required:t.required},domProps:{checked:!t.isEmpty}})],2)},[]).exports;const yn=ut({extends:Xs,type:"pages",computed:{emptyProps(){return{icon:"page",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.pages.empty"):this.$t("field.pages.empty.single"))}}}},null,null).exports,vn={mixins:[js],props:{autocomplete:{type:String,default:"new-password"}}};const $n=ut({mixins:[Is,vn]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-password-input",attrs:{type:"password"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const wn=ut({mixins:[Ne,Ve,vn,Ds],inheritAttrs:!1,props:{minlength:{type:Number,default:8},icon:{type:String,default:"key"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-password-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"password"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,xn={mixins:[Ee,ot],props:{columns:{default:1,type:Number},reset:{default:!0,type:Boolean},theme:String,value:[String,Number,Boolean]}},_n={mixins:[je,xn],computed:{choices(){return this.options.map((t,e)=>({autofocus:this.autofocus&&0===e,checked:this.value===t.value,disabled:this.disabled||t.disabled,id:`${this.id}-${e}`,info:t.info,label:t.text,name:this.name??this.id,type:"radio",value:t.value}))}},methods:{focus(){var t;null==(t=this.$el.querySelector("input"))||t.focus()},select(){this.focus()},toggle(t){t===this.value&&this.reset&&!this.required&&this.$emit("input","")}}};const Sn=ut(_n,function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-radio-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",{attrs:{required:t.required,value:JSON.stringify(t.value)}},[e("ul",{staticClass:"k-grid",style:{"--columns":t.columns},attrs:{"data-variant":"choices"}},t._l(t.choices,function(s,i){return e("li",{key:i},[e("k-choice-input",t._b({on:{input:function(e){return t.$emit("input",s.value)}},nativeOn:{click:function(e){return e.stopPropagation(),t.toggle(s.value)}}},"k-choice-input",s,!1))],1)}),0)])],1)},[]).exports;const Cn=ut({mixins:[Ne,Ve,xn],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t,e=this,s=e._self._c;return s("k-field",e._b({class:["k-radio-field",e.$attrs.class],style:e.$attrs.style,attrs:{input:e.id+"-0"}},"k-field",e.$props,!1),[(null==(t=e.options)?void 0:t.length)?s("k-radio-input",e._b({ref:"input",on:{input:function(t){return e.$emit("input",t)}}},"k-radio-input",e.$props,!1)):s("k-empty",{attrs:{text:e.$t("options.none"),icon:"checklist"}})],1)},[]).exports,On={mixins:[Ee],props:{default:[Number,String],max:{type:Number,default:100},min:{type:Number,default:0},step:{type:[Number,String],default:1},tooltip:{type:[Boolean,Object],default:()=>({before:null,after:null})},value:[Number,String]}},An={mixins:[je,On],computed:{baseline(){return this.min<0?0:this.min},isEmpty(){return""===this.value||void 0===this.value||null===this.value},label(){return this.required||this.value||0===this.value?this.format(this.position):"–"},maxLength(){return Math.max(this.format(this.min).length,this.format(this.max).length)},position(){return this.value||0===this.value?this.value:this.default??this.baseline}},watch:{value:{handler(){this.validate()},immediate:!0}},mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){var t;null==(t=this.$el.querySelector("input"))||t.focus()},format(t){const e=document.lang?document.lang.replace("_","-"):"en",s=this.step.toString().split("."),i=s.length>1?s[1].length:0;return new Intl.NumberFormat(e,{minimumFractionDigits:i}).format(t)},onInput(t){this.$emit("input",t)},validate(){var t;const e=[];this.required&&!0===this.isEmpty&&e.push(this.$t("error.validation.required")),!1===this.isEmpty&&this.min&&this.valuethis.max&&e.push(this.$t("error.validation.max",{max:this.max})),null==(t=this.$refs.range)||t.setCustomValidity(e.join(", "))}}};const Mn=ut(An,function(){var t=this,e=t._self._c;return e("div",{class:["k-range-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled}},[e("input",t._b({ref:"range",attrs:{type:"range"},domProps:{value:t.position},on:{input:function(e){return t.$emit("input",e.target.valueAsNumber)}}},"input",{autofocus:t.autofocus,disabled:t.disabled,id:t.id,max:t.max,min:t.min,name:t.name,required:t.required,step:t.step},!1)),t.tooltip?e("output",{staticClass:"k-range-input-tooltip",attrs:{for:t.id}},[t.tooltip.before?e("span",{staticClass:"k-range-input-tooltip-before"},[t._v(t._s(t.tooltip.before))]):t._e(),e("span",{staticClass:"k-range-input-tooltip-text",style:`--digits: ${t.maxLength}ch`},[t._v(" "+t._s(t.label)+" ")]),t.tooltip.after?e("span",{staticClass:"k-range-input-tooltip-after"},[t._v(t._s(t.tooltip.after))]):t._e()]):t._e()])},[]).exports;const Dn=ut({mixins:[Ve,Ne,On],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-range-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"range"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,En={mixins:[Ee,ot,at],props:{ariaLabel:String,value:{type:[String,Number,Boolean],default:""}}},jn={mixins:[je,En],emits:["click","input"],computed:{empty(){return this.placeholder??"—"},hasEmptyOption(){return!this.required||this.isEmpty},isEmpty(){return null===this.value||void 0===this.value||""===this.value},label(){const t=this.text(this.value);return this.isEmpty||null===t?this.empty:t}},mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){this.$refs.input.focus()},onClick(t){t.stopPropagation(),this.$emit("click",t)},select(){this.focus()},text(t){let e=null;for(const s of this.options)s.value==t&&(e=s.text);return e}}};const In=ut(jn,function(){var t=this,e=t._self._c;return e("span",{class:["k-select-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-disabled":t.disabled,"data-empty":t.isEmpty}},[e("select",{ref:"input",staticClass:"k-select-input-native",attrs:{id:t.id,autofocus:t.autofocus,"aria-label":t.ariaLabel,disabled:t.disabled,name:t.name,required:t.required},domProps:{value:t.value},on:{change:function(e){return t.$emit("input",e.target.value)},click:t.onClick}},[t.hasEmptyOption?e("option",{attrs:{disabled:t.required,value:""}},[t._v(" "+t._s(t.empty)+" ")]):t._e(),t._l(t.options,function(s){return e("option",{key:s.value,attrs:{disabled:s.disabled},domProps:{value:s.value}},[t._v(" "+t._s(s.text)+" ")])})],2),t._v(" "+t._s(t.label)+" ")])},[]).exports;const Bn=ut({mixins:[Ne,Ve,En],inheritAttrs:!1,props:{icon:{type:String,default:"angle-down"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-select-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"select"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Ln={mixins:[js],props:{autocomplete:null,spellcheck:null,allow:{type:String,default:""},formData:{type:Object,default:()=>({})},sync:{type:String}}},Tn={extends:Is,mixins:[Ln],data(){return{slug:this.sluggify(this.value),slugs:this.$panel.language.rules??this.$panel.system.slugs,syncValue:null}},watch:{formData:{handler(t){return!this.disabled&&(!(!this.sync||void 0===t[this.sync])&&(t[this.sync]!=this.syncValue&&(this.syncValue=t[this.sync],void this.onInput(this.sluggify(this.syncValue)))))},deep:!0,immediate:!0},value(t){(t=this.sluggify(t))!==this.slug&&(this.slug=t,this.$emit("input",this.slug))}},methods:{sluggify(t){return this.$helper.slug(t,[this.slugs,this.$panel.system.ascii],this.allow)},onInput(t){this.slug=this.sluggify(t),this.$emit("input",this.slug)}}};const Pn=ut(Tn,function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-slug-input",attrs:{spellcheck:!1,value:t.slug,autocomplete:"off"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports,qn={mixins:[Ne,Ve,Ln],inheritAttrs:!1,props:{icon:{type:String,default:"url"},path:{type:String},wizard:{type:[Boolean,Object],default:!1}},data(){return{slug:this.value}},computed:{preview(){return void 0!==this.help?this.help:void 0!==this.path?this.path+this.value:null}},watch:{value(){this.slug=this.value}},methods:{focus(){this.$refs.input.focus()},onWizard(){var t;let e=null==(t=this.wizard)?void 0:t.field;if(e){const t=this.formData[e.toLowerCase()];t&&(this.slug=t)}}}};const Nn=ut(qn,function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-slug-field",t.$attrs.class],style:t.$attrs.style,attrs:{help:t.preview,input:t.id},scopedSlots:t._u([t.wizard&&t.wizard.text?{key:"options",fn:function(){return[e("k-button",{attrs:{text:t.wizard.text,icon:"sparkling",size:"xs",variant:"filled"},on:{click:t.onWizard}})]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{value:t.slug,type:"slug"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Fn={props:{reports:{type:Array,default:()=>[]},size:{type:String,default:"large"}}};const zn=ut({mixins:[Fn]},function(){var t=this,e=t._self._c;return t.reports.length>0?e("dl",{staticClass:"k-stats",attrs:{"data-size":t.size}},t._l(t.reports,function(s,i){return e("k-stat",t._b({key:i},"k-stat",s,!1))}),1):e("k-empty",{attrs:{icon:"chart"}},[t._v(t._s(t.$t("stats.empty")))])},[]).exports;const Yn=ut({mixins:[Z,Q,tt,nt,Fn]},function(){var t=this,e=t._self._c;return e("k-field",{attrs:{id:t.id,help:t.help,input:!1,label:t.label,name:t.name,type:"stats"}},[e("k-stats",{attrs:{reports:t.reports,size:t.size}})],1)},[]).exports,Rn={data:()=>({isSelecting:!1,selected:[]}),created(){this.$events.on(this.batchEditingEvent,this.stopSelectingCollision)},destroyed(){this.$events.off(this.batchEditingEvent,this.stopSelectingCollision)},computed:{batchDeleteConfirmMessage(){return this.$t(`${this.type}.delete.confirm.selected`,{count:this.selected.length})},batchEditingButtons(){const t=[];return t.push({disabled:0===this.selected.length,icon:"trash",text:this.$t("delete")+` (${this.selected.length})`,theme:"negative",click:()=>{this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.batchDeleteConfirmMessage},on:{submit:async()=>{this.$panel.dialog.close(),0!==this.selected.length&&(await this.onBatchDelete(),this.stopSelecting())}}})},responsive:!0}),t.push({icon:"cancel",text:this.$t("cancel"),click:this.onSelectToggle,responsive:!0}),t},batchEditingEvent:()=>"selecting",batchEditingIdentifier:()=>"id",batchEditingToggle(){return{icon:"checklist",click:this.onSelectToggle,title:this.$t("select"),responsive:!0}},canSelect:()=>!0},methods:{onBatchDelete(){throw new Error("Not implemented")},onSelect(t){this.selected.includes(t)?this.selected=this.selected.filter(e=>e[this.batchEditingIdentifier]!==t[this.batchEditingIdentifier]):this.selected.push(t)},onSelectToggle(){this.isSelecting?this.stopSelecting():this.startSelecting()},startSelecting(){this.isSelecting=!0,this.selected=[],this.$events.emit(this.batchEditingEvent,this.name)},stopSelecting(){this.isSelecting=!1,this.selected=[]},stopSelectingCollision(t){t!==this.name&&this.stopSelecting()}}},Hn={mixins:[Ne,Rn],inheritAttrs:!1,props:{autofocus:Boolean,batch:{type:Boolean,default:!1},columns:Object,duplicate:{type:Boolean,default:!0},empty:String,fields:[Array,Object],limit:Number,max:Number,min:Number,prepend:{type:Boolean,default:!1},sortable:{type:Boolean,default:!0},sortBy:String,value:{type:Array,default:()=>[]}},data:()=>({items:[],page:1}),computed:{batchDeleteConfirmMessage(){return this.$t("field.structure.delete.confirm.selected",{count:this.selected.length})},batchEditingEvent:()=>"structure.selecting",batchEditingIdentifier:()=>"_id",canSelect(){return!0===this.batch&&this.items.length>0},index(){return this.limit?(this.page-1)*this.limit+1:1},hasFields(){return this.$helper.object.length(this.fields)>0},isSortable(){return!this.sortBy&&(!this.limit&&(!0!==this.disabled&&(!(this.items.length<=1)&&!1!==this.sortable)))},more(){return!0!==this.disabled&&!(this.max&&this.items.length>=this.max)},options(){return this.disabled?[]:[{icon:"edit",text:this.$t("edit"),click:"edit"},{disabled:!this.duplicate||!this.more,icon:"copy",text:this.$t("duplicate"),click:"duplicate"},"-",{icon:"trash",text:this.$t("delete"),click:"remove"}]},paginatedItems(){return this.limit?this.items.slice(this.pagination.offset,this.pagination.offset+this.limit):this.items},pagination(){let t=0;return this.limit&&(t=(this.page-1)*this.limit),{page:this.page,offset:t,limit:this.limit,total:this.items.length,align:"center",details:!0}}},watch:{value:{handler(t){this.stopSelecting(),t!==this.items&&(this.items=this.toItems(t))},immediate:!0}},methods:{add(t=null){if(!1===this.more)return!1;t??(t=this.$helper.field.form(this.fields)),t._id??(t._id=this.$helper.uuid()),!0===this.prepend?this.items.unshift(t):this.items.push(t),this.save(),this.open(t)},close(){this.$panel.drawer.close(this.id)},focus(){var t,e;null==(e=null==(t=this.$refs.add)?void 0:t.focus)||e.call(t)},form(t){const e=this.$helper.field.subfields(this,this.fields);if(t)for(const s in e)e[s].autofocus=s===t;return e},findIndex(t){return this.items.findIndex(e=>e._id===t._id)},navigate(t,e){const s=this.findIndex(t);-1!==s&&this.open(this.items[s+e],null,!0)},open(t,e,s=!1){const i=this.findIndex(t);if(-1===i)return!1;this.stopSelecting(),this.$panel.drawer.open({component:"k-structure-drawer",id:this.id,props:{disabled:this.disabled,icon:this.icon??"list-bullet",next:this.items[i+1],prev:this.items[i-1],tabs:{content:{fields:this.form(e)}},title:this.label,value:t},replace:s,on:{input:e=>{const s=this.findIndex(t);this.$panel.drawer.props.next=this.items[s+1],this.$panel.drawer.props.prev=this.items[s-1],this.$set(this.items,s,e),this.save()},next:()=>{this.navigate(t,1)},prev:()=>{this.navigate(t,-1)},remove:()=>{this.remove(t)}}})},option(t,e){switch(t){case"remove":this.remove(e);break;case"duplicate":this.add({...this.$helper.object.clone(e),_id:this.$helper.uuid()});break;case"edit":this.open(e)}},onBatchDelete(){this.removeSelected()},onTableInput(t){this.limit&&(t=this.items.toSpliced(this.pagination.offset,this.limit,...t)),this.save(t)},paginate({page:t}){this.page=t,this.stopSelecting()},remove(t){const e=this.findIndex(t);this.disabled||-1===e||this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.structure.delete.confirm")},on:{submit:()=>{this.items.splice(e,1),this.save(),this.$panel.dialog.close(),this.close(),0===this.paginatedItems.length&&this.page>1&&this.page--}}})},removeAll(){this.$panel.dialog.open({component:"k-remove-dialog",props:{text:this.$t("field.structure.delete.confirm.all")},on:{submit:()=>{this.page=1,this.items=[],this.save(),this.$panel.dialog.close()}}})},removeSelected(){this.items=this.items.filter(t=>!this.selected.includes(t)),this.save()},save(t=this.items){this.$emit("input",t)},sort(t){return this.sortBy?this.$helper.array.sortBy(t,this.sortBy):t},toItems(t){return!1===Array.isArray(t)?[]:(t=t.map(t=>({_id:t._id??this.$helper.uuid(),...t})),this.sort(t))}}};const Un=ut(Hn,function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-structure-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id},nativeOn:{click:function(t){t.stopPropagation()}},scopedSlots:t._u([t.hasFields&&!t.disabled?{key:"options",fn:function(){return[t.isSelecting?e("k-button-group",{attrs:{buttons:t.batchEditingButtons,size:"xs",variant:"filled"}}):e("k-button-group",[t.canSelect?[e("k-button",t._b({attrs:{size:"xs",variant:"filled"}},"k-button",t.batchEditingToggle,!1))]:t._e(),e("k-button-group",{attrs:{layout:"collapsed"}},[e("k-button",{attrs:{autofocus:t.autofocus,disabled:!t.more,responsive:!0,text:t.$t("add"),icon:"add",variant:"filled",size:"xs"},on:{click:function(e){return t.add()}}}),e("k-button",{attrs:{icon:"dots",size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.options.toggle()}}}),e("k-dropdown-content",{ref:"options",attrs:{options:[{click:()=>t.add(),disabled:!t.more,icon:"add",text:t.$t("add")},{click:()=>t.removeAll(),disabled:0===t.items.length||t.disabled,icon:"trash",text:t.$t("delete.all")}],"align-x":"end"}})],1)],2)]},proxy:!0}:null],null,!0)},"k-field",t.$props,!1),[e("k-input-validator",t._b({attrs:{value:JSON.stringify(t.items)}},"k-input-validator",{id:t.id,min:t.min,max:t.max,required:t.required},!1),[t.hasFields?[0===t.items.length?e("k-empty",{attrs:{icon:"list-bullet"},on:{click:function(e){return t.add()}}},[t._v(" "+t._s(t.empty??t.$t("field.structure.empty"))+" ")]):[e("k-table",{attrs:{columns:t.columns,disabled:t.disabled,fields:t.fields,empty:t.$t("field.structure.empty"),index:t.index,options:t.options,pagination:!(!t.limit||t.isSelecting)&&t.pagination,rows:t.paginatedItems,selecting:t.isSelecting,sortable:t.isSortable},on:{cell:function(e){return t.open(e.row,e.columnIndex)},input:t.onTableInput,option:t.option,paginate:t.paginate,select:t.onSelect}}),t.more?e("footer",[e("k-button",{attrs:{title:t.$t("add"),icon:"add",size:"xs",variant:"filled"},on:{click:function(e){return t.add()}}})],1):t._e()]]:[e("k-empty",{attrs:{icon:"list-bullet"}},[t._v(t._s(t.$t("fields.empty")))])]],2)],1)},[]).exports,Vn={mixins:[js],props:{autocomplete:{default:"tel"},placeholder:{default:()=>window.panel.t("tel.placeholder")}}};const Kn=ut({mixins:[Is,Vn]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-tel-input",attrs:{type:"tel"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Wn=ut({mixins:[Ne,Ve,Vn],inheritAttrs:!1,props:{icon:{type:String,default:"phone"}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-tel-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"tel"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Jn={mixins:[js]};const Gn=ut({mixins:[Is,Jn]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({class:["k-text-input",t.$attrs.class],attrs:{type:"text"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const Xn=ut({mixins:[Ne,Ve,Jn,Ds],inheritAttrs:!1,computed:{inputType(){return this.$helper.isComponent(`k-${this.type}-input`)?this.type:"text"}},methods:{focus(){this.$refs.input.focus()},select(){this.$refs.input.select()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-text-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id},scopedSlots:t._u([{key:"options",fn:function(){return[t._t("options")]},proxy:!0}],null,!0)},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:t.inputType},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,Zn={props:{buttons:{type:[Array,Boolean],default:!0},uploads:[Boolean,Object,Array]}};const Qn=ut({mixins:[Zn],emits:["command"],computed:{commands(){return{headlines:{label:this.$t("toolbar.button.headings"),icon:"title",dropdown:[{label:this.$t("toolbar.button.heading.1"),icon:"h1",click:()=>this.command("prepend","#")},{label:this.$t("toolbar.button.heading.2"),icon:"h2",click:()=>this.command("prepend","##")},{label:this.$t("toolbar.button.heading.3"),icon:"h3",click:()=>this.command("prepend","###")}]},bold:{label:this.$t("toolbar.button.bold"),icon:"bold",click:()=>this.command("toggle","**"),shortcut:"b"},italic:{label:this.$t("toolbar.button.italic"),icon:"italic",click:()=>this.command("toggle","*"),shortcut:"i"},link:{label:this.$t("toolbar.button.link"),icon:"url",click:()=>this.command("dialog","link"),shortcut:"k"},email:{label:this.$t("toolbar.button.email"),icon:"email",click:()=>this.command("dialog","email"),shortcut:"e"},file:{label:this.$t("toolbar.button.file"),icon:"attachment",click:()=>this.command("file"),dropdown:this.uploads?[{label:this.$t("toolbar.button.file.select"),icon:"check",click:()=>this.command("file")},{label:this.$t("toolbar.button.file.upload"),icon:"upload",click:()=>this.command("upload")}]:void 0},code:{label:this.$t("toolbar.button.code"),icon:"code",click:()=>this.command("toggle","`")},ul:{label:this.$t("toolbar.button.ul"),icon:"list-bullet",click:()=>this.command("insert",(t,e)=>e.split("\n").map(t=>"- "+t).join("\n"))},ol:{label:this.$t("toolbar.button.ol"),icon:"list-numbers",click:()=>this.command("insert",(t,e)=>e.split("\n").map((t,e)=>e+1+". "+t).join("\n"))}}},default:()=>["headlines","|","bold","italic","code","|","link","email","file","|","ul","ol"],layout(){if(!1===this.buttons)return[];const t=[],e=Array.isArray(this.buttons)?this.buttons:this.default,s={...this.commands,...window.panel.plugins.textareaButtons??{}};for(const i of e)if("|"===i)t.push("|");else if(s[i]){const e={...s[i],click:()=>{var t;null==(t=s[i].click)||t.call(this)}};t.push(e)}return t}},methods:{close(){this.$refs.toolbar.close()},command(t,...e){this.$emit("command",t,...e)},shortcut(t,e){var s;const i=this.layout.find(e=>e.shortcut===t);i&&(e.preventDefault(),null==(s=i.click)||s.call(i))}}},function(){return(0,this._self._c)("k-toolbar",{ref:"toolbar",staticClass:"k-textarea-toolbar",attrs:{buttons:this.layout}})},[]).exports,to={mixins:[Zn,Ee,X,st,it,at,ct],props:{endpoints:Object,preselect:Boolean,size:String,value:String}};const eo=ut({mixins:[je,to],emits:["focus","input","submit"],data:()=>({over:!1,selectionRange:null}),computed:{uploadOptions(){return{url:this.$panel.urls.api+"/"+this.endpoints.field+"/upload",multiple:!1,on:{cancel:async()=>await this.restoreSelection(),done:async t=>{await this.restoreSelection(),await this.insertUpload(t)}}}}},watch:{async value(){await this.$nextTick(),this.$library.autosize.update(this.$refs.input)}},async mounted(){await this.$nextTick(),this.$library.autosize(this.$refs.input),this.$props.autofocus&&this.focus(),this.$props.preselect&&this.select()},methods:{dialog(t){this.$panel.dialog.open({component:"k-toolbar-"+t+"-dialog",props:{value:this.parseSelection()},on:{cancel:async()=>await this.restoreSelection(),submit:async t=>{this.$panel.dialog.close(),await this.restoreSelection(),await this.insert(t)}}})},file(){this.$panel.dialog.open({component:"k-files-dialog",props:{endpoint:this.endpoints.field+"/files",multiple:!1},on:{cancel:async()=>await this.restoreSelection(),submit:async t=>{this.$panel.dialog.close(),await this.restoreSelection(),await this.insertFile(t)}}})},focus(){this.$refs.input.focus()},async insert(t){const e=this.$refs.input,s=e.value;if("function"==typeof t&&(t=t(e,this.selection())),this.focus(),document.execCommand("insertText",!1,t),e.value===s){const{start:s,end:i}=this.selectionRange,n=s===i?"end":"select";e.setRangeText(t,s,i,n)}return this.$emit("input",e.value),e.value},async insertFile(t){(null==t?void 0:t.length)>0&&await this.insert(t.map(t=>t.dragText).join("\n\n"))},async insertUpload(t){await this.insertFile(t),await this.$panel.content.update()},onCommand(t,...e){if("function"!=typeof this[t])return console.warn(t+" is not a valid command");this[t](...e)},onDrop(t){if(this.uploads&&this.$helper.isUploadEvent(t))return this.$panel.upload.open(t.dataTransfer.files,this.uploadOptions);"text"===this.$panel.drag.type&&(this.focus(),this.insert(this.$panel.drag.data))},onFocus(t){this.$emit("focus",t)},onInput(t){this.$emit("input",t.target.value)},onOut(){this.$refs.input.blur(),this.over=!1},onOver(t){if(this.uploads&&this.$helper.isUploadEvent(t))return t.dataTransfer.dropEffect="copy",this.focus(),void(this.over=!0);"text"===this.$panel.drag.type&&(t.dataTransfer.dropEffect="copy",this.focus(),this.over=!0)},onSelectionChange(){this.selectionRange={start:this.$refs.input.selectionStart,end:this.$refs.input.selectionEnd}},onShortcut(t){var e;!1!==this.buttons&&"Meta"!==t.key&&"Control"!==t.key&&(null==(e=this.$refs.toolbar)||e.shortcut(t.key,t))},onSubmit(t){return this.$emit("submit",t)},parseSelection(){const t=this.selection();if(0===(null==t?void 0:t.length))return{href:null,title:null};let e;e=this.$panel.config.kirbytext?/^\(link:\s*(?.*?)(?:\s*text:\s*(?.*?))?\)$/is:/^(\[(?.*?)\]\((?.*?)\))|(<(?.*?)>)$/is;const s=e.exec(t);return null!==s?{href:s.groups.url??s.groups.link,title:s.groups.text??null}:{href:null,title:t}},async prepend(t){return this.insert(t+" "+this.selection())},async restoreSelection(){this.selectionRange&&this.$refs.input.setSelectionRange(this.selectionRange.start,this.selectionRange.end),await this.$nextTick()},restoreSelectionCallback(){return async t=>{await this.restoreSelection(),t&&t()}},select(){this.$refs.select()},selection(){if(!this.selectionRange)return"";const{start:t,end:e}=this.selectionRange;return this.$refs.input.value.substring(t,e)},async toggle(t,e){e??(e=t);const s=this.selection();return s.startsWith(t)&&s.endsWith(e)?this.insert(s.slice(t.length).slice(0,s.length-t.length-e.length)):this.wrap(t,e)},upload(){this.$panel.upload.pick(this.uploadOptions)},async wrap(t,e){e??(e=t),await this.insert(t+this.selection()+e)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-textarea-input",t.$attrs.class],style:t.$attrs.style,attrs:{"data-over":t.over,"data-size":t.size}},[e("div",{staticClass:"k-textarea-input-wrapper"},[t.buttons&&!t.disabled?e("k-textarea-toolbar",{ref:"toolbar",attrs:{buttons:t.buttons,disabled:t.disabled,uploads:t.uploads},on:{command:t.onCommand},nativeOn:{mousedown:function(t){t.preventDefault()}}}):t._e(),e("textarea",t._b({directives:[{name:"direction",rawName:"v-direction"}],ref:"input",staticClass:"k-textarea-input-native",attrs:{"data-font":t.font},on:{click:function(e){var s;null==(s=t.$refs.toolbar)||s.close()},focus:t.onFocus,input:t.onInput,keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:e.metaKey?t.onSubmit.apply(null,arguments):null},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:e.ctrlKey?t.onSubmit.apply(null,arguments):null},function(e){return e.metaKey?e.ctrlKey||e.shiftKey||e.altKey?null:t.onShortcut.apply(null,arguments):null},function(e){return e.ctrlKey?e.shiftKey||e.altKey||e.metaKey?null:t.onShortcut.apply(null,arguments):null}],dragover:t.onOver,dragleave:t.onOut,drop:t.onDrop,selectionchange:t.onSelectionChange}},"textarea",{autofocus:t.autofocus,disabled:t.disabled,id:t.id,minlength:t.minlength,name:t.name,placeholder:t.placeholder,required:t.required,spellcheck:t.spellcheck,value:t.value},!1))],1)])},[]).exports;const so=ut({mixins:[Ne,Ve,to,Ds],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-textarea-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"textarea"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,io={props:{max:String,min:String,value:String}},no={mixins:[io],props:{display:{type:String,default:"HH:mm"},step:{type:Object,default:()=>({size:5,unit:"minute"})},type:{type:String,default:"time"}}};const oo=ut({mixins:[Ys,no],computed:{inputType:()=>"time"}},null,null).exports,ro={mixins:[Ne,Ve,no],inheritAttrs:!1,props:{icon:{type:String,default:"clock"},times:{type:Boolean,default:!0}},methods:{focus(){this.$refs.input.focus()},select(t){var e;this.$emit("input",t),null==(e=this.$refs.times)||e.close()}}};const ao=ut(ro,function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-time-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"time"},on:{input:function(e){return t.$emit("input",e??"")}},scopedSlots:t._u([t.times?{key:"icon",fn:function(){return[e("k-button",{staticClass:"k-input-icon-button",attrs:{disabled:t.disabled,icon:t.icon??"clock",title:t.$t("time.select")},on:{click:function(e){return t.$refs.times.toggle()}}}),e("k-dropdown-content",{ref:"times",attrs:{"align-x":"end"}},[e("k-timeoptions-input",{attrs:{display:t.display,value:t.value},on:{input:t.select}})],1)]},proxy:!0}:null],null,!0)},"k-input",t.$props,!1))],1)},[]).exports,lo={mixins:[Ee],props:{checked:{type:Boolean},info:{type:String},label:{type:String},type:{default:"checkbox",type:String},value:{type:[Boolean,Number,String]},variant:{type:String}}};const co=ut({mixins:[je,lo]},function(){var t=this,e=t._self._c;return e("label",{class:["k-choice-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled}},[e("input",t._b({class:["invisible"===t.variant?"sr-only":null,t.$attrs.class],attrs:{"data-variant":t.variant},on:{input:function(e){return t.$emit("input",e.target.checked)}}},"input",{autofocus:t.autofocus,id:t.id,checked:t.checked,disabled:t.disabled,name:t.name,required:t.required,type:t.type,value:t.value},!1)),t.label||t.info?e("span",{staticClass:"k-choice-input-label"},[e("span",{staticClass:"k-choice-input-label-text",domProps:{innerHTML:t._s(t.label)}}),t.info?e("span",{staticClass:"k-choice-input-label-info",domProps:{innerHTML:t._s(t.info)}}):t._e()]):t._e()])},[]).exports,uo={mixins:[lo],props:{text:{type:[Array,String]},value:Boolean}};const po=ut({mixins:[je,uo],computed:{labelText(){const t=this.text??[this.$t("off"),this.$t("on")];return Array.isArray(t)?this.value?t[1]:t[0]:t}},mounted(){this.$props.autofocus&&this.focus()},methods:{onEnter(t){"Enter"===t.key&&this.$el.click()},onInput(t){this.$emit("input",t)},select(){this.$el.focus()}}},function(){var t=this;return(0,t._self._c)("k-choice-input",t._b({class:["k-toggle-input",t.$attrs.class],style:t.$attrs.style,attrs:{checked:t.value,disabled:t.disabled,label:t.labelText,type:"checkbox",variant:"toggle"},on:{input:function(e){return t.$emit("input",e)}}},"k-choice-input",t.$props,!1))},[]).exports;const ho=ut({mixins:[Ne,Ve,uo],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-toggle-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"toggle"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,mo={mixins:[Ee],props:{columns:Number,grow:Boolean,labels:Boolean,options:Array,reset:Boolean,value:[String,Number,Boolean]}},fo={mixins:[je,mo],mounted(){this.$props.autofocus&&this.focus()},methods:{focus(){var t;null==(t=this.$el.querySelector("input[checked]")||this.$el.querySelector("input"))||t.focus()},onClick(t){t===this.value&&this.reset&&!this.required&&this.$emit("input","")},onInput(t){this.$emit("input",t)},select(){this.focus()}}};const go=ut(fo,function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-toggles-input",t.$attrs.class],style:t.$attrs.style,attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("k-input-validator",{attrs:{required:t.required,value:JSON.stringify(t.value)}},[e("ul",{style:{"--options":t.columns??t.options.length},attrs:{"data-labels":t.labels}},t._l(t.options,function(s,i){return e("li",{key:i},[e("input",{staticClass:"input-hidden",attrs:{id:t.id+"-"+i,"aria-label":s.text,disabled:t.disabled,name:t.id,type:"radio"},domProps:{value:s.value,checked:t.value===s.value},on:{click:function(e){return t.onClick(s.value)},change:function(e){return t.onInput(s.value)}}}),e("label",{attrs:{for:t.id+"-"+i,title:s.text}},[s.icon?e("k-icon",{attrs:{type:s.icon}}):t._e(),t.labels||!s.icon?e("span",{staticClass:"k-toggles-text",domProps:{innerHTML:t._s(s.text)}}):t._e()],1)])}),0)])],1)},[]).exports,ko={mixins:[Ne,Ve,mo],inheritAttrs:!1,methods:{focus(){this.$refs.input.focus()},onInput(t){this.$emit("input",t)}}};const bo=ut(ko,function(){var t,e=this,s=e._self._c;return s("k-field",e._b({class:["k-toggles-field",e.$attrs.class],style:e.$attrs.style,attrs:{input:e.id}},"k-field",e.$props,!1),[(null==(t=e.options)?void 0:t.length)?s("k-input",e._b({ref:"input",class:{grow:e.grow},attrs:{type:"toggles"},on:{input:function(t){return e.$emit("input",t)}}},"k-input",e.$props,!1)):s("k-empty",{attrs:{text:e.$t("options.none"),icon:"checklist"}})],1)},[]).exports,yo={mixins:[js],props:{autocomplete:{type:String,default:"url"},placeholder:{type:String,default:()=>window.panel.t("url.placeholder")}}};const vo=ut({mixins:[Is,yo],watch:{value:{handler(){this.validate()},immediate:!0}},methods:{validate(){var t;const e=[];this.value&&!1===this.$helper.url.isUrl(this.value,!0)&&e.push(this.$t("error.validation.url")),null==(t=this.$el)||t.setCustomValidity(e.join(", "))}}},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-url-input",attrs:{type:"url"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const $o=ut({mixins:[Ne,Ve,yo],inheritAttrs:!1,props:{link:{type:Boolean,default:!0},icon:{type:String,default:"url"}},computed:{isValidUrl(){return""!==this.value&&!0===this.$helper.url.isUrl(this.value,!0)}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-url-field",t.$attrs.class],style:t.$attrs.style,attrs:{input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{type:"url"},on:{input:function(e){return t.$emit("input",e)}},scopedSlots:t._u([{key:"icon",fn:function(){return[t.link&&t.isValidUrl?e("k-button",{staticClass:"k-input-icon-button",attrs:{icon:t.icon,link:t.value,title:t.$t("open"),tabindex:"-1",target:"_blank"}}):t._e()]},proxy:!0}])},"k-input",t.$props,!1))],1)},[]).exports;const wo=ut({extends:Xs,type:"users",computed:{emptyProps(){return{icon:"users",text:this.empty??(this.multiple&&1!==this.max?this.$t("field.users.empty"):this.$t("field.users.empty.single"))}}}},null,null).exports;const xo=ut({mixins:[Ne,Ve,Ji,Ds],inheritAttrs:!1,computed:{counterValue(){const t=this.$helper.string.stripHTML(this.value??"");return this.$helper.string.unescapeHTML(t)}},methods:{focus(){this.$refs.input.focus()}}},function(){var t=this,e=t._self._c;return e("k-field",t._b({class:["k-writer-field",t.$attrs.class],style:t.$attrs.style,attrs:{counter:t.counterOptions,input:t.id}},"k-field",t.$props,!1),[e("k-input",t._b({ref:"input",attrs:{after:t.after,before:t.before,icon:t.icon,type:"writer"},on:{input:function(e){return t.$emit("input",e)}}},"k-input",t.$props,!1))],1)},[]).exports,_o={install(t){t.component("k-blocks-field",Cs),t.component("k-checkboxes-field",Es),t.component("k-color-field",qs),t.component("k-date-field",Hs),t.component("k-email-field",Ks),t.component("k-entries-field",Js),t.component("k-files-field",Zs),t.component("k-gap-field",Qs),t.component("k-headline-field",ti),t.component("k-info-field",ei),t.component("k-layout-field",ci),t.component("k-line-field",ui),t.component("k-link-field",di),t.component("k-list-field",tn),t.component("k-multiselect-field",dn),t.component("k-number-field",gn),t.component("k-object-field",bn),t.component("k-pages-field",yn),t.component("k-password-field",wn),t.component("k-radio-field",Cn),t.component("k-range-field",Dn),t.component("k-select-field",Bn),t.component("k-slug-field",Nn),t.component("k-stats-field",Yn),t.component("k-structure-field",Un),t.component("k-tags-field",pn),t.component("k-text-field",Xn),t.component("k-textarea-field",so),t.component("k-tel-field",Wn),t.component("k-time-field",ao),t.component("k-toggle-field",ho),t.component("k-toggles-field",bo),t.component("k-url-field",$o),t.component("k-users-field",wo),t.component("k-writer-field",xo)}},So={mixins:[On],props:{max:null,min:null,step:{default:.01,type:Number},tooltip:{default:!1,type:[Boolean,Object]}}};const Co=ut({mixins:[Mn,So]},function(){var t=this;return(0,t._self._c)("k-range-input",t._b({staticClass:"k-alpha-input",attrs:{min:0,max:1},on:{input:function(e){return t.$emit("input",e)}}},"k-range-input",t.$props,!1))},[]).exports,Oo=["sun","mon","tue","wed","thu","fri","sat"];const Ao=ut({mixins:[Ee,Ns],data(){const t=this.$library.dayjs();return{maxdate:null,mindate:null,month:t.month(),selected:null,today:t,year:t.year()}},computed:{numberOfDays(){return this.toDate().daysInMonth()},firstWeekday(){const t=Oo[this.toDate().day()];return this.weekdays.indexOf(t)},weekdays(){const t=this.$panel.translation.weekday;return[...Oo.slice(t),...Oo.slice(0,t)]},weeks(){return Math.ceil((this.numberOfDays+this.firstWeekday)/7)},monthnames(){return["january","february","march","april","may","june","july","august","september","october","november","december"].map(t=>this.$t("months."+t))},months(){var t=[];return this.monthnames.forEach((e,s)=>{t.push({value:s,text:e})}),t},years(){const t=this.year-20,e=this.year+20;return this.toOptions(t,e)}},watch:{max:{handler(t,e){t!==e&&(this.maxdate=this.$library.dayjs.interpret(t,"date"))},immediate:!0},min:{handler(t,e){t!==e&&(this.mindate=this.$library.dayjs.interpret(t,"date"))},immediate:!0},value:{handler(t,e){t!==e&&(this.selected=this.$library.dayjs.interpret(t,"date"),this.show(this.selected))},immediate:!0}},methods:{days(t){let e=[];const s=7*(t-1)+1,i=s+7;for(let n=s;nthis.numberOfDays;e.push(s?"":t)}return e},isDisabled(t){const e=this.toDate(t);return this.disabled||e.isBefore(this.mindate,"day")||e.isAfter(this.maxdate,"day")},isSelected(t){return this.toDate(t).isSame(this.selected,"day")},isToday(t){return this.toDate(t).isSame(this.today,"day")},onNext(){const t=this.toDate().add(1,"month");this.show(t)},onPrev(){const t=this.toDate().subtract(1,"month");this.show(t)},select(t){this.$emit("input",(null==t?void 0:t.toISO("date"))??null)},show(t){this.month=(t??this.today).month(),this.year=(t??this.today).year()},toDate(t=1,e){return this.$library.dayjs(`${this.year}-${(e??this.month)+1}-${t}`)},toOptions(t,e){for(var s=[],i=t;i<=e;i++)s.push({value:i,text:this.$helper.pad(i)});return s}}},function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-calendar-input",t.$attrs.class],style:t.$attrs.style,on:{click:function(t){t.stopPropagation()}}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("date.select")))]),e("nav",[e("k-button",{attrs:{title:t.$t("prev"),icon:"angle-left"},on:{click:t.onPrev}}),e("span",{staticClass:"k-calendar-selects"},[e("k-select-input",{attrs:{"aria-label":t.$t("month"),autofocus:t.autofocus,options:t.months,empty:!1,required:!0,value:t.month},on:{input:function(e){t.month=Number(e)}}}),e("k-select-input",{attrs:{"aria-label":t.$t("year"),options:t.years,empty:!1,required:!0,value:t.year},on:{input:function(e){t.year=Number(e)}}})],1),e("k-button",{attrs:{title:t.$t("next"),icon:"angle-right"},on:{click:t.onNext}})],1),e("table",{key:t.year+"-"+t.month,staticClass:"k-calendar-table"},[e("thead",[e("tr",t._l(t.weekdays,function(s){return e("th",{key:"weekday_"+s},[t._v(" "+t._s(t.$t("days."+s))+" ")])}),0)]),e("tbody",t._l(t.weeks,function(s){return e("tr",{key:"week_"+s},t._l(t.days(s),function(s,i){return e("td",{key:"day_"+i,staticClass:"k-calendar-day",attrs:{"aria-current":!!t.isToday(s)&&"date","aria-selected":!!t.isSelected(s)&&"date"}},[s?e("k-button",{attrs:{disabled:t.isDisabled(s),text:s},on:{click:function(e){t.select(t.toDate(s))}}}):t._e()],1)}),0)}),0),e("tfoot",[e("tr",[e("td",{staticClass:"k-calendar-today",attrs:{colspan:"7"}},[e("k-button",{attrs:{disabled:t.disabled,text:t.$t("today")},on:{click:function(e){t.show(t.today),t.select(t.today)}}})],1)])])]),e("input",{staticClass:"input-hidden",attrs:{id:t.id,disabled:t.disabled,min:t.min,max:t.max,name:t.name,required:t.required,tabindex:"-1",type:"date"},domProps:{value:t.value}})])},[]).exports;const Mo=ut({extends:co},null,null).exports,Do={mixins:[Sn,{mixins:[xn],props:{format:{type:String,default:"hex",validator:t=>["hex","rgb","hsl"].includes(t)},value:{type:String}}}],computed:{choices(){return this.options.map(t=>({...t,title:t.text??t.value,value:this.colorToString(t.value)}))}},methods:{colorToString(t){try{return this.$library.colors.toString(t,this.format)}catch{return t}}}};const Eo=ut(Do,function(){var t=this,e=t._self._c;return t.choices.length?e("fieldset",{staticClass:"k-coloroptions-input",attrs:{disabled:t.disabled}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("options")))]),e("ul",t._l(t.choices,function(s,i){return e("li",{key:i},[e("label",{attrs:{title:s.title}},[e("input",{staticClass:"input-hidden",attrs:{autofocus:t.autofocus&&0===i,disabled:t.disabled,name:t.name??t.id,required:t.required,type:"radio"},domProps:{checked:s.value===t.value,value:s.value},on:{click:function(e){return t.toggle(s.value)},input:function(e){return t.$emit("input",s.value)}}}),e("k-color-frame",{attrs:{color:s.value}})],1)])}),0)]):t._e()},[]).exports,jo={mixins:[je,{mixins:[Ee,ot],props:{alpha:{default:!0,type:Boolean},format:{default:"hex",type:String,validator:t=>["hex","rgb","hsl"].includes(t)},value:{type:[Object,String]}}}],data:()=>({color:{h:0,s:0,v:1,a:1},formatted:null}),computed:{coords(){return this.value?{x:100*this.color.s,y:100*(1-this.color.v)}:null},hsl(){try{const t=this.$library.colors.convert(this.color,"hsl");return{h:t.h,s:(100*t.s).toFixed()+"%",l:(100*t.l).toFixed()+"%",a:t.a}}catch{return{h:0,s:"0%",l:"0%",a:1}}}},watch:{value:{handler(t,e){if(t===e||t===this.formatted)return;const s=this.$library.colors.parseAs(t??"","hsv");s?(this.formatted=this.$library.colors.toString(s,this.format),this.color=s):(this.formatted=null,this.color={h:0,s:0,v:1,a:1})},immediate:!0}},methods:{between:(t,e,s)=>Math.min(Math.max(t,e),s),emit(){return this.formatted=this.$library.colors.toString(this.color,this.format),this.$emit("input",this.formatted)},focus(){this.$refs.coords.focus()},setAlpha(t){this.color.a=this.alpha?this.between(Number(t),0,1):1,this.emit()},setCoords(t){if(!t)return this.$emit("input","");const e=Math.round(t.x),s=Math.round(t.y);this.color.s=this.between(e/100,0,1),this.color.v=this.between(1-s/100,0,1),this.emit()},setHue(t){this.color.h=this.between(Number(t),0,360),this.emit()}}};const Io=ut(jo,function(){var t=this,e=t._self._c;return e("fieldset",{class:["k-colorpicker-input",t.$attrs.class],style:{"--h":t.hsl.h,"--s":t.hsl.s,"--l":t.hsl.l,"--a":t.hsl.a,...t.$attrs.style}},[e("legend",{staticClass:"sr-only"},[t._v(t._s(t.$t("color")))]),e("k-coords-input",{ref:"coords",attrs:{autofocus:t.autofocus,disabled:t.disabled,required:t.required,value:t.coords},on:{input:function(e){return t.setCoords(e)}}}),e("label",{attrs:{"aria-label":t.$t("hue")}},[e("k-hue-input",{attrs:{disabled:t.disabled,required:t.required,value:t.color.h},on:{input:function(e){return t.setHue(e)}}})],1),t.alpha?e("label",{attrs:{"aria-label":t.$t("alpha")}},[e("k-alpha-input",{attrs:{disabled:t.disabled,required:t.required,value:t.color.a},on:{input:function(e){return t.setAlpha(e)}}})],1):t._e(),e("k-coloroptions-input",{attrs:{disabled:t.disabled,format:t.format,options:t.options,required:t.required,value:t.value},on:{input:function(e){return t.$emit("input",e)}}}),e("input",{staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1",type:"text"},domProps:{value:t.formatted}})],1)},[]).exports,Bo={mixins:[je,{mixins:[Ee],props:{reset:{default:!0,type:Boolean},value:{default:()=>({x:0,y:0}),type:Object}}}],data:()=>({x:0,y:0}),watch:{value:{handler(t){const e=this.parse(t);this.x=(null==e?void 0:e.x)??0,this.y=(null==e?void 0:e.y)??0},immediate:!0}},methods:{focus(){var t;null==(t=this.$el.querySelector("button"))||t.focus()},getCoords:(t,e)=>({x:Math.min(Math.max(t.clientX-e.left,0),e.width),y:Math.min(Math.max(t.clientY-e.top,0),e.height)}),onDelete(){this.reset&&!this.required&&this.$emit("input",null)},onDrag(t){if(0!==t.button)return;const e=t=>this.onMove(t),s=()=>{window.removeEventListener("mousemove",e),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",e),window.addEventListener("mouseup",s)},onEnter(){var t;null==(t=this.$el.form)||t.requestSubmit()},onInput(t,e){if(t.preventDefault(),t.stopPropagation(),this.disabled)return!1;this.x=Math.min(Math.max(parseFloat(e.x??this.x??0),0),100),this.y=Math.min(Math.max(parseFloat(e.y??this.y??0),0),100),this.$emit("input",{x:this.x,y:this.y})},onKeys(t){const e=t.shiftKey?10:1,s={ArrowUp:{y:this.y-e},ArrowDown:{y:this.y+e},ArrowLeft:{x:this.x-e},ArrowRight:{x:this.x+e}};s[t.key]&&this.onInput(t,s[t.key])},async onMove(t){const e=this.$el.getBoundingClientRect(),s=this.getCoords(t,e),i=s.x/e.width*100,n=s.y/e.height*100;this.onInput(t,{x:i,y:n}),await this.$nextTick(),this.focus()},parse(t){if("object"==typeof t)return t;const e={"top left":{x:0,y:0},"top center":{x:50,y:0},"top right":{x:100,y:0},"center left":{x:0,y:50},center:{x:50,y:50},"center center":{x:50,y:50},"center right":{x:100,y:50},"bottom left":{x:0,y:100},"bottom center":{x:50,y:100},"bottom right":{x:100,y:100}};if(e[t])return e[t];const s=t.split(",").map(t=>t.trim());return{x:s[0],y:s[1]??0}}}};const Lo=ut(Bo,function(){var t=this,e=t._self._c;return e("div",{class:["k-coords-input",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled,"data-empty":!t.value},on:{mousedown:t.onDrag,click:t.onMove,keydown:t.onKeys}},[t._t("default"),e("button",{staticClass:"k-coords-input-thumb",style:{left:`${t.x}%`,top:`${t.y}%`},attrs:{id:t.id,autofocus:t.autofocus,disabled:t.disabled},on:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.onEnter.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"delete",[8,46],e.key,["Backspace","Delete","Del"])?null:t.onDelete.apply(null,arguments)}]}}),e("input",{staticClass:"input-hidden",attrs:{name:t.name,required:t.required,tabindex:"-1",type:"text"},domProps:{value:t.value?[t.value.x,t.value.y]:null}})],2)},[]).exports,To={mixins:[On],props:{max:null,min:null,step:{default:1,type:Number},tooltip:{default:!1,type:[Boolean,Object]}}};const Po=ut({mixins:[Mn,To]},function(){var t=this;return(0,t._self._c)("k-range-input",t._b({staticClass:"k-hue-input",attrs:{min:0,max:360},on:{input:function(e){return t.$emit("input",e)}}},"k-range-input",t.$props,!1))},[]).exports;const qo=ut({mixins:[Is,{mixins:[js],props:{autocomplete:null,pattern:null,spellcheck:null,placeholder:{default:()=>window.panel.t("search")+" …",type:String}}}]},function(){var t=this;return(0,t._self._c)("k-string-input",t._b({staticClass:"k-search-input",attrs:{spellcheck:!1,autocomplete:"off",type:"search"},on:{input:function(e){return t.$emit("input",e)}}},"k-string-input",t.$props,!1))},[]).exports;const No=ut({mixins:[je,{mixins:[Ee,io]}],props:{display:{type:String,default:"HH:mm"},value:String},computed:{day(){return this.formatTimes([6,7,8,9,10,11,"-",12,13,14,15,16,17])},night(){return this.formatTimes([18,19,20,21,22,23,"-",0,1,2,3,4,5])}},methods:{focus(){this.$el.querySelector("button").focus()},formatTimes(t){return t.map(t=>{if("-"===t)return t;const e=this.$library.dayjs(t+":00","H:mm");return{display:e.format(this.display),select:e.toISO("time")}})},select(t){this.$emit("input",t)}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-timeoptions-input",t.$attrs.class],style:t.$attrs.style},[e("div",[e("h3",[e("k-icon",{attrs:{type:"sun"}}),t._v(" "),e("span",{staticClass:"sr-only"},[t._v(t._s(t.$t("day")))])],1),e("ul",t._l(t.day,function(s,i){return e("li",{key:s.select},["-"===s?e("hr"):e("k-button",{attrs:{autofocus:t.autofocus&&0===i,disabled:t.disabled,selected:s.select===t.value&&"time"},on:{click:function(e){return t.select(s.select)}}},[t._v(" "+t._s(s.display)+" ")])],1)}),0)]),e("div",[e("h3",[e("k-icon",{attrs:{type:"moon"}}),t._v(" "),e("span",{staticClass:"sr-only"},[t._v(t._s(t.$t("night")))])],1),e("ul",t._l(t.night,function(s){return e("li",{key:s.select},["-"===s?e("hr"):e("k-button",{attrs:{disabled:t.disabled,selected:s.select===t.value&&"time"},on:{click:function(e){return t.select(s.select)}}},[t._v(" "+t._s(s.display)+" ")])],1)}),0)]),e("input",{staticClass:"input-hidden",attrs:{id:t.id,disabled:t.disabled,min:t.min,max:t.max,name:t.name,required:t.required,tabindex:"-1",type:"time"},domProps:{value:t.value}})])},[]).exports;class Fo extends HTMLElement{static get observedAttributes(){return["min","max","required","value"]}attributeChangedCallback(t,e,s){this[t]=s}constructor(){super(),this.internals=this.attachInternals(),this.entries=[],this.max=null,this.min=null,this.required=!1}connectedCallback(){this.tabIndex=0;const t=this.getAttribute("id");t&&(this.input.setAttribute("id",t),this.removeAttribute("id")),this.validate()}checkValidity(){return this.internals.checkValidity()}get form(){return this.internals.form}has(t){return this.entries.includes(t)}get input(){return this.querySelector(this.getAttribute("anchor"))??this.querySelector("input, textarea, select, button")??this.querySelector(":scope > *")}get isEmpty(){return 0===this.selected.length}get name(){return this.getAttribute("name")}reportValidity(){return this.internals.reportValidity()}get type(){return this.localName}validate(){const t=parseInt(this.getAttribute("max")),e=parseInt(this.getAttribute("min"));this.hasAttribute("required")&&"false"!==this.getAttribute("required")&&0===this.entries.length?this.internals.setValidity({valueMissing:!0},window.panel.$t("error.validation.required"),this.input):this.hasAttribute("min")&&this.entries.lengtht?this.internals.setValidity({rangeOverflow:!0},window.panel.$t("error.validation.max",{max:t}),this.input):this.internals.setValidity({})}get validity(){return this.internals.validity}get validationMessage(){return this.internals.validationMessage}get value(){return JSON.stringify(this.entries??[])}set value(t){this.entries=("string"==typeof t?JSON.parse(t):[])??[],this.validate()}get willValidate(){return this.internals.willValidate}}var zo;((t,s,i)=>{s in t?e(t,s,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[s]=i})(Fo,"symbol"!=typeof(zo="formAssociated")?zo+"":zo,!0);const Yo=ut({extends:"k-writer-input",created(){window.panel.deprecated("`k-writer` will be removed in a future version. Use `k-writer-input` instead.")}},null,null).exports,Ro={install(t){customElements.define("k-input-validator",Fo),t.component("k-alpha-input",Co),t.component("k-calendar-input",Ao),t.component("k-checkbox-input",Mo),t.component("k-checkboxes-input",Ms),t.component("k-choice-input",co),t.component("k-colorname-input",Ts),t.component("k-coloroptions-input",Eo),t.component("k-colorpicker-input",Io),t.component("k-coords-input",Lo),t.component("k-date-input",Ys),t.component("k-email-input",Vs),t.component("k-hue-input",Po),t.component("k-list-input",Qi),t.component("k-multiselect-input",an),t.component("k-number-input",fn),t.component("k-password-input",$n),t.component("k-picklist-input",Le),t.component("k-radio-input",Sn),t.component("k-range-input",Mn),t.component("k-search-input",qo),t.component("k-select-input",In),t.component("k-slug-input",Pn),t.component("k-string-input",Is),t.component("k-tags-input",un),t.component("k-tel-input",Kn),t.component("k-text-input",Gn),t.component("k-textarea-input",eo),t.component("k-time-input",oo),t.component("k-timeoptions-input",No),t.component("k-toggle-input",po),t.component("k-toggles-input",go),t.component("k-url-input",vo),t.component("k-writer-input",Gi),t.component("k-calendar",Ao),t.component("k-times",No),t.component("k-writer",Yo)}};const Ho=ut({mixins:[Lt],inheritAttrs:!1,props:{cancelButton:{default:!1},label:{default(){return this.$t("field.layout.select")},type:String},layouts:{type:Array},selector:Object,submitButton:{default:!1},value:{type:Array}},emits:["cancel","input","submit"]},function(){var t,e,s=this,i=s._self._c;return i("k-dialog",s._b({class:["k-layout-selector",s.$attrs.class],style:s.$attrs.style,attrs:{size:(null==(t=s.selector)?void 0:t.size)??"medium"},on:{cancel:function(t){return s.$emit("cancel")},submit:function(t){return s.$emit("submit",s.value)}}},"k-dialog",s.$props,!1),[i("h3",{staticClass:"k-label"},[s._v(s._s(s.label))]),i("k-navigate",{staticClass:"k-layout-selector-options",style:{"--columns":Number((null==(e=s.selector)?void 0:e.columns)??3)},attrs:{axis:"x"}},s._l(s.layouts,function(t,e){return i("button",{key:e,staticClass:"k-layout-selector-option",attrs:{"aria-current":s.value===t,"aria-label":t.join(","),value:t},on:{click:function(e){return s.$emit("input",t)}}},[i("k-grid",{attrs:{"aria-hidden":""}},s._l(t,function(t,e){return i("k-column",{key:e,attrs:{width:t}})}),1)],1)}),0)],1)},[]).exports,Uo={install(t){t.component("k-layout",oi),t.component("k-layout-column",ii),t.component("k-layouts",li),t.component("k-layout-selector",Ho)}},Vo={inheritAttrs:!1,props:{column:{default:()=>({}),type:Object},field:{default:()=>({}),type:Object},value:{}}};const Ko=ut({mixins:[Vo],props:{html:{type:Boolean},value:{default:()=>[],type:[Array,String]}},computed:{tags(){let t=this.value;const e=this.column.options??this.field.options??[];return"string"==typeof t&&(t=t.split(",")),(t??[]).map(t=>{"string"==typeof t&&(t={value:t,text:t});for(const s of e)s.value===t.value&&(t.text=s.text);return t})}}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tags-field-preview","k-tags",t.$options.class,t.$attrs.class],style:t.$attrs.style},t._l(t.tags,function(s,i){return e("li",{key:s.id??s.value??s.text??i},[e("k-tag",{attrs:{html:t.html,image:s.image,link:s.link,text:s.text,element:"div",theme:"light"}})],1)}),0)},[]).exports;const Wo=ut({extends:Ko,inheritAttrs:!1,class:"k-array-field-preview",computed:{tags(){return[{text:1===this.value.length?`1 ${this.$t("entry")}`:`${this.value.length} ${this.$t("entries")}`}]}}},null,null).exports,Jo={props:{html:{type:Boolean}}};const Go=ut({mixins:[Jo],inheritAttrs:!1,props:{bubbles:[Array,String]},computed:{items(){let t=this.bubbles;return"string"==typeof t&&(t=t.split(",")),t.map(t=>"string"===t?{text:t}:t)}},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-bubbles",t.$attrs.class],style:t.$attrs.style},t._l(t.items,function(s,i){return e("li",{key:i},[e("k-bubble",t._b({attrs:{html:t.html}},"k-bubble",s,!1))],1)}),0)},[]).exports;const Xo=ut({mixins:[Vo,Jo],props:{value:{default:()=>[],type:[Array,String]}},computed:{bubbles(){let t=this.value;const e=this.column.options??this.field.options??[];return"string"==typeof t&&(t=t.split(",")),(t??[]).map(t=>{"string"==typeof t&&(t={value:t,text:t});for(const s of e)s.value===t.value&&(t.text=s.text);return t})}},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e("div",{class:["k-bubbles-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[e("k-bubbles",{attrs:{bubbles:t.bubbles,html:t.html}})],1)},[]).exports,Zo={mixins:[Vo],props:{value:String},computed:{text(){var t;if(!this.value)return;const e=this.$library.colors.toString(this.value,this.field.format,this.field.alpha),s=null==(t=this.field.options)?void 0:t.find(t=>this.$library.colors.toString(t.value,this.field.format,this.field.alpha)===e);return s?s.text:null}}};const Qo=ut(Zo,function(){var t=this,e=t._self._c;return e("div",{class:["k-color-field-preview",t.$attrs.class],style:t.$attrs.style},[e("k-color-frame",{attrs:{color:t.value}}),t.text?[t._v(" "+t._s(t.text)+" ")]:t._e()],2)},[]).exports;const tr=ut({mixins:[Vo],computed:{text(){return this.value}}},function(){var t=this;return(0,t._self._c)("p",{class:["k-text-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[t._v(" "+t._s(t.column.before)+" "),t._t("default",function(){return[t._v(t._s(t.text))]}),t._v(" "+t._s(t.column.after)+" ")],2)},[]).exports;const er=ut({extends:tr,props:{value:String},class:"k-date-field-preview",computed:{display(){return this.column.display??this.field.display},format(){var t;let e=this.display??"YYYY-MM-DD";return(null==(t=this.time)?void 0:t.display)&&(e+=" "+this.time.display),e},parsed(){return this.$library.dayjs(this.value)},text(){var t;return!1===this.parsed.isValid()?this.value:null==(t=this.parsed)?void 0:t.format(this.format)},time(){return this.column.time??this.field.time}}},null,null).exports;const sr=ut({mixins:[Vo],props:{value:[String,Object]},computed:{link(){return"object"==typeof this.value?this.value.href:this.value},text(){return"object"==typeof this.value?this.value.text:this.link}}},function(){var t=this,e=t._self._c;return e("p",{class:["k-url-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style,attrs:{"data-link":Boolean(t.link)}},[t._v(" "+t._s(t.column.before)+" "),e("k-link",{attrs:{to:t.link},nativeOn:{click:function(t){t.stopPropagation()}}},[e("span",[t._v(t._s(t.text))])]),t._v(" "+t._s(t.column.after)+" ")],1)},[]).exports;const ir=ut({extends:sr,class:"k-email-field-preview"},null,null).exports;const nr=ut({extends:Ko,class:"k-files-field-preview",props:{html:{type:Boolean,default:!0}},computed:{tags(){return this.value.map(t=>({text:t.filename,link:t.link,image:t.image}))}}},null,null).exports;const or=ut({mixins:[Vo],props:{value:Object},computed:{status(){var t;return{...this.$helper.page.status(null==(t=this.value)?void 0:t.status),...this.value}}}},function(){var t=this,e=t._self._c;return t.value?e("k-button",t._b({class:["k-flag-field-preview",t.$attrs.class],style:t.$attrs.style,attrs:{size:"md"}},"k-button",t.status,!1)):t._e()},[]).exports;const rr=ut({mixins:[Vo],props:{value:String},computed:{html(){return this.value}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-html-field-preview",t.$options.class,t.$attrs.class],style:t.$attrs.style},[t._v(" "+t._s(t.column.before)+" "),e("k-text",{attrs:{html:t.html}}),t._v(" "+t._s(t.column.after)+" ")],1)},[]).exports;const ar=ut({mixins:[Vo],props:{value:[Object]}},function(){var t=this,e=t._self._c;return t.value?e("k-item-image",{class:["k-image-field-preview",t.$attrs.class],style:t.$attrs.style,attrs:{image:t.value}}):t._e()},[]).exports,lr={mixins:[Vo],props:{removable:Boolean,type:String},emits:["remove"],data:()=>({model:null}),computed:{currentType(){return this.type??this.detected.type},detected(){return this.$helper.link.detect(this.value)},isLink(){return["url","email","tel"].includes(this.currentType)}},watch:{detected:{async handler(t,e){t!==e&&(this.model=await this.$helper.link.preview(this.detected))},immediate:!0},type(){this.model=null}}};const cr=ut(lr,function(){var t=this,e=t._self._c;return e("div",{class:{"k-link-field-preview":!0,"k-url-field-preview":t.isLink,[t.$attrs.class]:!0},style:t.$attrs.style},["page"===t.currentType||"file"===t.currentType?[t.model?[e("k-tag",{attrs:{image:{...t.model.image,cover:!0},removable:t.removable,text:t.model.label},on:{remove:function(e){return t.$emit("remove",e)}}})]:t._t("placeholder")]:t.isLink?[e("p",{staticClass:"k-text"},[e("a",{attrs:{href:t.value,target:"_blank"}},[e("span",[t._v(t._s(t.detected.link))])])])]:[t._v(" "+t._s(t.detected.link)+" ")]],2)},[]).exports;const ur=ut({extends:Ko,class:"k-object-field-preview",props:{value:[Array,Object]},computed:{tags(){return this.value?[{text:"{ ... }"}]:[]}}},null,null).exports;const pr=ut({extends:Ko,inheritAttrs:!1,class:"k-pages-field-preview",props:{html:{type:Boolean,default:!0}}},null,null).exports;const dr=ut({mixins:[Vo],props:{html:{type:Boolean},value:String}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tag-field-preview","k-tags-field-preview","k-tags",t.$options.class,t.$attrs.class],style:t.$attrs.style},[e("li",[e("k-tag",{attrs:{html:t.html,text:t.value,theme:"light"},nativeOn:{click:function(t){t.stopPropagation()}}})],1)])},[]).exports;const hr=ut({extends:er,class:"k-time-field-preview",computed:{format(){return this.display??"HH:mm"},parsed(){return this.$library.dayjs.iso(this.value,"time")},text(){var t;return null==(t=this.parsed)?void 0:t.format(this.format)}}},null,null).exports;const mr=ut({mixins:[Vo],props:{value:Boolean},emits:["input"],computed:{isEditable(){return!0!==this.field.disabled},text(){return!1!==this.column.text?this.field.text:null}}},function(){var t=this,e=t._self._c;return e("div",{class:["k-toggle-field-preview",t.$attrs.class],style:t.$attrs.style},[e("k-toggle-input",{attrs:{disabled:!t.isEditable,text:t.text,value:t.value},on:{input:function(e){return t.$emit("input",e)}},nativeOn:{click:function(e){t.isEditable&&e.stopPropagation()}}})],1)},[]).exports;const fr=ut({extends:Ko,class:"k-users-field-preview",props:{html:{type:Boolean,default:!0}},computed:{tags(){return this.value.map(t=>({text:t.username??t.email,link:t.link,image:t.image}))}}},null,null).exports,gr={install(t){t.component("k-array-field-preview",Wo),t.component("k-bubbles-field-preview",Xo),t.component("k-color-field-preview",Qo),t.component("k-date-field-preview",er),t.component("k-email-field-preview",ir),t.component("k-files-field-preview",nr),t.component("k-flag-field-preview",or),t.component("k-html-field-preview",rr),t.component("k-image-field-preview",ar),t.component("k-link-field-preview",cr),t.component("k-object-field-preview",ur),t.component("k-pages-field-preview",pr),t.component("k-tag-field-preview",dr),t.component("k-tags-field-preview",Ko),t.component("k-text-field-preview",tr),t.component("k-toggle-field-preview",mr),t.component("k-time-field-preview",hr),t.component("k-url-field-preview",sr),t.component("k-users-field-preview",fr),t.component("k-list-field-preview",rr),t.component("k-writer-field-preview",rr),t.component("k-checkboxes-field-preview",Ko),t.component("k-multiselect-field-preview",Ko),t.component("k-radio-field-preview",Ko),t.component("k-select-field-preview",Ko),t.component("k-toggles-field-preview",Ko)}};const kr=ut({mixins:[{props:{buttons:{type:Array,default:()=>[]},theme:{type:String,default:"light"}}}],methods:{close(){for(const t in this.$refs){const e=this.$refs[t][0];"function"==typeof(null==e?void 0:e.close)&&e.close()}}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("nav",{staticClass:"k-toolbar",attrs:{"data-theme":t.theme}},[t._l(t.buttons,function(s,i){var n;return["|"===s?e("hr",{key:"separator-"+i}):s.when??1?e("k-button",{key:i,class:["k-toolbar-button",s.class],attrs:{current:s.current,disabled:s.disabled,icon:s.icon,title:s.label??s.title,tabindex:"0"},on:{click:function(e){var n,o;(null==(n=s.dropdown)?void 0:n.length)?t.$refs[i+"-dropdown"][0].toggle():null==(o=s.click)||o.call(s,e)}},nativeOn:{keydown:function(t){var e;null==(e=s.key)||e.call(s,t)}}}):t._e(),(s.when??1)&&(null==(n=s.dropdown)?void 0:n.length)?e("k-dropdown-content",{key:i+"-dropdown",ref:i+"-dropdown",refInFor:!0,attrs:{options:s.dropdown,theme:"dark"===t.theme?"light":"dark"}}):t._e()]})],2):t._e()},[]).exports;const br=ut({props:{editor:{required:!0,type:Object},inline:{default:!0,type:Boolean},marks:{default:()=>["bold","italic","underline","strike","code","|","link","email","|","clear"],type:[Array,Boolean]},nodes:{default:!0,type:[Array,Boolean]}},emits:["command"],data:()=>({isOpen:!1,position:{x:0,y:0}}),computed:{activeDropdownEntry(){return Object.values(this.dropdownEntries).findLast(this.isNodeActive)},buttons(){const t=[];this.hasDropdownEntries&&t.push(this.dropdownInlineButton),this.hasDropdownEntries&&this.hasInlineEntries&&t.push("|");for(const[e,s]of Object.entries(this.inlineEntries))t.push(this.inlineButton(s,e));return t},dropdown(){const t=[],e=Object.entries(this.dropdownEntries);let s=0;for(const[i,n]of e)t.push(this.dropdownButton(n,i)),!0===n.separator&&s!==e.length-1&&t.push("-"),s++;return t},dropdownInlineButton(){var t;return{current:Boolean(this.activeDropdownEntry),dropdown:this.dropdown,icon:(null==(t=this.activeDropdownEntry)?void 0:t.icon)??"title"}},dropdownEntries(){if(!1===this.nodes)return{};const t=this.nodesForBlock;return"block+"!==this.editor.nodes.doc.content&&t.paragraph&&delete t.paragraph,!0===this.nodes?t:Object.fromEntries(this.nodes.filter(e=>t[e]).map(e=>[e,t[e]]))},hasDropdownEntries(){return this.$helper.object.length(this.dropdownEntries)>1},hasInlineEntries(){return this.$helper.object.length(this.inlineEntries)>0},inlineEntries(){let t={};if(!0===this.nodes)t=this.nodesForInline;else if(!1!==this.nodes)for(const s of this.nodes)this.nodesForInline[s]&&(t[s]=this.nodesForInline[s]);this.$helper.object.length(t)>0&&(t["divider-inline-nodes"]="|");const e=this.editor.buttons("mark");if(!0===this.marks)return{...t,...e};if(!1!==this.marks)for(const[s,i]of this.marks.entries())"|"===i?t["divider"+s]="|":e[i]&&(t[i]=e[i]);return t},nodesForBlock(){return this.$helper.object.filter(this.editor.buttons("node"),t=>!0!==t.inline)},nodesForInline(){return this.$helper.object.filter(this.editor.buttons("node"),t=>!0===t.inline)},positions(){return!1===this.inline?null:{top:this.position.y+"px",left:this.position.x+"px"}},theme(){return this.inline?"dark":"light"}},methods:{close(t){t&&!1!==this.$el.contains(t.relatedTarget)||(this.isOpen=!1)},command(t,...e){this.$emit("command",t,...e)},dropdownButton(t,e){var s,i,n;return{current:(null==(s=this.activeDropdownEntry)?void 0:s.id)===t.id,disabled:!1===(null==(n=null==(i=this.activeDropdownEntry)?void 0:i.when)?void 0:n.includes(t.name)),icon:t.icon,label:t.label,click:()=>this.command(t.command??e)}},inlineButton(t,e){return"|"===t?"|":{current:this.isMarkActive({...t,name:e}),icon:t.icon,label:t.label,click:s=>this.command(t.command??e,s)}},isMarkActive(t){return this.editor.activeMarks.includes(t.name)},isNodeActive(t){if(!1===this.editor.activeNodes.includes(t.name))return!1;if(t.attrs){if(void 0===Object.values(this.editor.activeNodeAttrs).find(e=>JSON.stringify(e)===JSON.stringify(t.attrs)))return!1}return!0},open(){0!==this.buttons.length&&(this.isOpen=!0,this.inline&&this.$nextTick(this.setPosition))},setPosition(){const t=this.$el.getBoundingClientRect(),e=this.editor.element.getBoundingClientRect(),s=document.querySelector(".k-panel-menu").getBoundingClientRect(),{from:i,to:n}=this.editor.selection,o=this.editor.view.coordsAtPos(i),r=this.editor.view.coordsAtPos(n,!0),a=new DOMRect(o.left,o.top,r.right-o.left,r.bottom-o.top);let l=a.x-e.x+a.width/2-t.width/2,c=a.y-e.y-t.height-5;if(t.widthe.width&&(l=e.width-t.width);else{const i=e.x+l,n=i+t.width,o=s.width+20,r=20;iwindow.innerWidth-r&&(l-=n-(window.innerWidth-r))}this.position={x:l,y:c}}}},function(){var t=this,e=t._self._c;return t.isOpen||!t.inline?e("k-toolbar",{ref:"toolbar",staticClass:"k-writer-toolbar",style:t.positions,attrs:{buttons:t.buttons,"data-inline":t.inline,theme:t.theme}}):t._e()},[]).exports;const yr=ut({extends:qt,props:{fields:{default:()=>{const t=qt.props.fields.default();return t.title.label=window.panel.t("link.text"),t}}},methods:{submit(){const t=this.values.href??"",e=this.values.title??"";return this.$panel.config.kirbytext?(null==e?void 0:e.length)>0?this.$emit("submit",`(email: ${t} text: ${e})`):this.$emit("submit",`(email: ${t})`):(null==e?void 0:e.length)>0?this.$emit("submit",`[${e}](mailto:${t})`):this.$emit("submit",`<${t}>`)}}},null,null).exports;const vr=ut({extends:Gt,props:{fields:{default:()=>({href:{label:window.panel.t("link"),type:"link",placeholder:window.panel.t("url.placeholder"),icon:"url"},title:{label:window.panel.t("link.text"),type:"text",icon:"title"}})}},methods:{submit(){const t=this.values.href??"",e=this.values.title??"";return this.$panel.config.kirbytext?(null==e?void 0:e.length)>0?this.$emit("submit",`(link: ${t} text: ${e})`):this.$emit("submit",`(link: ${t})`):(null==e?void 0:e.length)>0?this.$emit("submit",`[${e}](${t})`):this.$emit("submit",`<${t}>`)}}},null,null).exports,$r={install(t){t.component("k-toolbar",kr),t.component("k-textarea-toolbar",Qn),t.component("k-writer-toolbar",br),t.component("k-toolbar-email-dialog",yr),t.component("k-toolbar-link-dialog",vr)}},wr={install(t){t.component("k-counter",qe),t.component("k-field",Fe),t.component("k-fieldset",Ye),t.component("k-form",Re),t.component("k-form-controls",Ue),t.component("k-input",Ke),t.use(Ss),t.use(Ro),t.use(_o),t.use(Uo),t.use(gr),t.use($r)}},xr={},_r=function(t,e,s){let i=Promise.resolve();if(e&&e.length>0){let t=function(t){return Promise.all(t.map(t=>Promise.resolve(t).then(t=>({status:"fulfilled",value:t}),t=>({status:"rejected",reason:t}))))};const n=document.getElementsByTagName("link"),o=document.querySelector("meta[property=csp-nonce]"),r=(null==o?void 0:o.nonce)||(null==o?void 0:o.getAttribute("nonce"));i=t(e.map(t=>{if(t=function(t,e){return new URL(t,e).href}(t,s),t in xr)return;xr[t]=!0;const e=t.endsWith(".css"),i=e?'[rel="stylesheet"]':"";if(!!s)for(let s=n.length-1;s>=0;s--){const i=n[s];if(i.href===t&&(!e||"stylesheet"===i.rel))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;const o=document.createElement("link");return o.rel=e?"stylesheet":"modulepreload",e||(o.as="script"),o.crossOrigin="",o.href=t,r&&o.setAttribute("nonce",r),document.head.appendChild(o),e?new Promise((e,s)=>{o.addEventListener("load",e),o.addEventListener("error",()=>s(new Error(`Unable to preload CSS for ${t}`)))}):void 0}))}function n(t){const e=new Event("vite:preloadError",{cancelable:!0});if(e.payload=t,window.dispatchEvent(e),!e.defaultPrevented)throw t}return i.then(e=>{for(const t of e||[])"rejected"===t.status&&n(t.reason);return t().catch(n)})},Sr=()=>_r(()=>import("./IndexView.min.js"),__vite__mapDeps([0,1]),import.meta.url),Cr=()=>_r(()=>import("./DocsView.min.js"),__vite__mapDeps([2,3,1]),import.meta.url),Or=()=>_r(()=>import("./PlaygroundView.min.js"),__vite__mapDeps([4,3,1]),import.meta.url),Ar={install(t){t.component("k-lab-index-view",Sr),t.component("k-lab-docs-view",Cr),t.component("k-lab-playground-view",Or)}};const Mr=ut({props:{align:{type:String,default:"start"}}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-bar",attrs:{"data-align":t.align}},[t._t("default")],2)},[]).exports;const Dr=ut({props:{align:{type:String,default:"start"},button:Boolean,height:String,icon:String,theme:{type:String},text:String,html:{type:Boolean}},computed:{element(){return this.button?"button":"div"},type(){return this.button?"button":null}}},function(){var t=this,e=t._self._c;return e(t.element,{tag:"component",staticClass:"k-box",style:t.height?{"--box-height":t.height}:null,attrs:{"data-align":t.align,"data-theme":t.theme,type:t.type}},[t.icon?e("k-icon",{attrs:{type:t.icon}}):t._e(),t._t("default",function(){return[t.html?e("k-text",{attrs:{html:t.text}}):e("k-text",[t._v(" "+t._s(t.text)+" ")])]},null,{html:t.html,text:t.text})],2)},[]).exports;const Er=ut({inheritAttrs:!1,props:{back:String,color:String,element:{type:String,default:"li"},html:{type:Boolean},image:Object,link:String,text:String},mounted(){window.panel.deprecated(" will be removed in a future version. Use instead.")}},function(){var t=this,e=t._self._c;return e(t.link?"k-link":"p",{tag:"component",class:["k-bubble",t.$attrs.class],style:{color:t.$helper.color(t.color),background:t.$helper.color(t.back),...t.$attrs.style},attrs:{to:t.link},nativeOn:{click:function(t){t.stopPropagation()}}},[t._t("image",function(){var s;return[(null==(s=t.image)?void 0:s.src)?e("k-image-frame",t._b({},"k-image-frame",t.image,!1)):t.image?e("k-icon-frame",t._b({},"k-icon-frame",t.image,!1)):e("span")]}),t.text?[t.html?e("span",{staticClass:"k-bubble-text",domProps:{innerHTML:t._s(t.text)}}):e("span",{staticClass:"k-bubble-text"},[t._v(t._s(t.text))])]:t._e()],2)},[]).exports;const jr=ut({props:{width:{type:String,default:"1/1"},sticky:Boolean}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-column",style:{"--width":t.width},attrs:{"data-sticky":t.sticky}},[t.sticky?e("div",[t._t("default")],2):t._t("default")],2)},[]).exports,Ir={props:{element:{type:String,default:"div"},fit:String,ratio:String,cover:Boolean,back:String,theme:String}};const Br=ut({mixins:[Ir],inheritAttrs:!1,computed:{background(){return this.$helper.color(this.back)}}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",class:["k-frame",t.$attrs.class],style:{"--fit":t.fit??(t.cover?"cover":"contain"),"--ratio":t.ratio,"--back":t.background,...t.$attrs.style},attrs:{"data-theme":t.theme}},[t._t("default")],2)},[]).exports;const Lr=ut({mixins:[{mixins:[Ir],props:{color:String}}],inheritAttrs:!1},function(){var t=this;return(0,t._self._c)("k-frame",t._b({class:["k-color-frame",t.$attrs.class],style:{"--color-frame-back":t.color,...t.$attrs.style}},"k-frame",t.$props,!1),[t._t("default")],2)},[]).exports;const Tr=ut({props:{disabled:{type:Boolean}},emits:["drop"],data:()=>({files:[],dragging:!1,over:!1}),methods:{cancel(){this.reset()},reset(){this.dragging=!1,this.over=!1},onDrop(t){return!0===this.disabled||!1===this.$helper.isUploadEvent(t)?this.reset():(this.$events.emit("dropzone.drop"),this.files=t.dataTransfer.files,this.$emit("drop",this.files),void this.reset())},onEnter(t){!1===this.disabled&&this.$helper.isUploadEvent(t)&&(this.dragging=!0)},onLeave(){this.reset()},onOver(t){!1===this.disabled&&this.$helper.isUploadEvent(t)&&(t.dataTransfer.dropEffect="copy",this.over=!0)}}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-dropzone",attrs:{"data-dragging":t.dragging,"data-over":t.over},on:{dragenter:t.onEnter,dragleave:t.onLeave,dragover:t.onOver,drop:t.onDrop}},[t._t("default")],2)},[]).exports;const Pr=ut({props:{variant:String}},function(){var t=this;return(0,t._self._c)("div",{staticClass:"k-grid",attrs:{"data-variant":t.variant}},[t._t("default")],2)},[]).exports;const qr=ut({props:{editable:Boolean},emits:["edit"]},function(){var t=this,e=t._self._c;return e("header",{staticClass:"k-header",attrs:{"data-editable":t.editable}},[e("h1",{staticClass:"k-header-title"},[t.editable?e("button",{staticClass:"k-header-title-button",attrs:{type:"button"},on:{click:function(e){return t.$emit("edit")}}},[e("span",{staticClass:"k-header-title-text"},[t._t("default")],2),e("span",{staticClass:"k-header-title-icon"},[e("k-icon",{attrs:{type:"edit"}})],1)]):e("span",{staticClass:"k-header-title-text"},[t._t("default")],2)]),t.$slots.buttons?e("div",{staticClass:"k-header-buttons"},[t._t("buttons")],2):t._e()])},[]).exports,Nr={props:{alt:String,color:String,type:String}};const Fr=ut({mixins:[Nr],computed:{isEmoji(){return this.$helper.string.hasEmoji(this.type)}}},function(){var t=this,e=t._self._c;return t.isEmoji?e("span",{attrs:{"data-type":"emoji"}},[t._v(t._s(t.type))]):e("svg",{staticClass:"k-icon",style:{color:t.$helper.color(t.color)},attrs:{"aria-label":t.alt,role:t.alt?"img":null,"aria-hidden":!t.alt,"data-type":t.type}},[e("use",{attrs:{"xlink:href":"#icon-"+t.type}})])},[]).exports;const zr=ut({mixins:[{mixins:[Ir,Nr],props:{type:null,icon:String}}],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("k-frame",t._b({class:["k-icon-frame",t.$attrs.class],style:t.$attrs.style,attrs:{element:"figure"}},"k-frame",t.$props,!1),[e("k-icon",t._b({},"k-icon",{color:t.color,type:t.icon,alt:t.alt},!1))],1)},[]).exports;const Yr=ut({mixins:[{mixins:[Ir],props:{alt:String,sizes:String,src:String,srcset:String}}],inheritAttrs:!1},function(){var t=this,e=t._self._c;return e("k-frame",t._b({class:["k-image-frame","k-image",t.$attrs.class],style:t.$attrs.style,attrs:{element:"figure"}},"k-frame",t.$props,!1),[t.src?e("img",{key:t.src,attrs:{alt:t.alt??"",src:t.src,srcset:t.srcset,sizes:t.sizes},on:{dragstart:function(t){t.preventDefault()}}}):t._e()])},[]).exports;const Rr=ut({mixins:[{props:{autofocus:{default:!0,type:Boolean},nested:{default:!1,type:Boolean},type:{default:"overlay",type:String},visible:{default:!1,type:Boolean}}}],inheritAttrs:!0,emits:["cancel","close","open"],watch:{visible(t,e){t!==e&&this.toggle()}},mounted(){this.toggle()},methods:{cancel(){this.$emit("cancel"),this.close()},close(){if(!1!==this.$refs.overlay.open)return this.nested?this.onClose():void this.$refs.overlay.close()},focus(){this.$helper.focus(this.$refs.overlay)},onCancel(t){this.nested&&(t.preventDefault(),this.cancel())},onClick(t){t.target.matches(".k-portal")&&this.cancel()},onClose(){this.$emit("close")},open(){!0!==this.$refs.overlay.open&&this.$refs.overlay.showModal(),setTimeout(()=>{!0===this.autofocus&&this.focus(),this.$emit("open")})},toggle(){!0===this.visible?this.open():this.close()}}},function(){var t=this;return(0,t._self._c)("dialog",{ref:"overlay",staticClass:"k-overlay",attrs:{"data-type":t.type},on:{cancel:t.onCancel,mousedown:t.onClick,touchdown:t.onClick,close:t.onClose}},[t._t("default")],2)},[]).exports;const Hr=ut({props:{click:Function,dialog:{type:[String,Object]},drawer:{type:[String,Object]},icon:String,info:String,label:String,link:String,theme:String,value:String},computed:{component(){return null!==this.target?"k-link":"div"},target(){return this.link?this.link:this.click?this.click:this.dialog?()=>this.$panel.dialog.open(this.dialog):this.drawer?()=>this.$panel.drawer.open(this.drawer):null}}},function(){var t=this,e=t._self._c;return e(t.component,{tag:"component",staticClass:"k-stat",attrs:{"data-theme":t.theme,to:t.target}},[t.label?e("dt",{staticClass:"k-stat-label"},[t.icon?e("k-icon",{attrs:{type:t.icon}}):t._e(),t._v(" "+t._s(t.label)+" ")],1):t._e(),t.value?e("dd",{staticClass:"k-stat-value"},[t._v(t._s(t.value))]):t._e(),t.info?e("dd",{staticClass:"k-stat-info"},[t._v(t._s(t.info))]):t._e()])},[]).exports,Ur={inheritAttrs:!1,props:{columns:{type:Object,default:()=>({})},disabled:Boolean,fields:{type:Object,default:()=>({})},empty:String,index:{type:[Number,Boolean],default:1},rows:Array,options:{default:()=>[],type:[Array,Function]},pagination:[Object,Boolean],selecting:Boolean,sortable:Boolean},emits:["cell","change","header","input","option","paginate","sort"],data(){return{values:this.rows}},computed:{colspan(){let t=this.columnsCount;return this.hasIndexColumn&&t++,this.hasOptions&&t++,t},columnsCount(){return this.$helper.object.length(this.columns)},dragOptions(){return{disabled:!this.sortable||0===this.rows.length,draggable:".k-table-sortable-row",fallbackClass:"k-table-row-fallback",ghostClass:"k-table-row-ghost"}},hasIndexColumn(){return this.sortable||!1!==this.index},hasOptions(){var t;return this.selecting||this.$scopedSlots.options||(null==(t=this.options)?void 0:t.length)>0||Object.values(this.values).filter(t=>null==t?void 0:t.options).length>0}},watch:{rows(){this.values=this.rows}},methods:{isColumnEmpty(t){return 0===this.rows.filter(e=>!1===this.$helper.object.isEmpty(e[t])).length},label(t,e){return t.label??this.$helper.string.ucfirst(e)},onChange(t){this.$emit("change",t)},onCell(t){this.$emit("cell",t)},onCellUpdate({columnIndex:t,rowIndex:e,value:s}){this.values[e][t]=s,this.$emit("input",this.values)},onHeader(t){this.$emit("header",t)},onOption(t,e,s){this.$emit("option",t,e,s)},onSort(){this.$emit("input",this.values),this.$emit("sort",this.values)},rowIsSelectable(t){return!0===this.selecting&&!1!==t.selectable},rowIsSortable(t){return!0===this.sortable&&!1===this.selecting&&!1!==t.sortable},width(t){return"string"!=typeof t?"auto":!1===t.includes("/")?t:this.$helper.ratio(t,"auto",!1)}}};const Vr=ut(Ur,function(){var t=this,e=t._self._c;return e("div",{class:["k-table",t.$attrs.class],style:t.$attrs.style,attrs:{"aria-disabled":t.disabled}},[e("table",{attrs:{"data-disabled":t.disabled,"data-indexed":t.hasIndexColumn,"data-selecting":t.selecting}},[e("thead",[e("tr",[t.hasIndexColumn?e("th",{staticClass:"k-table-index-column",attrs:{"data-mobile":"true"}},[t._v(" # ")]):t._e(),t._l(t.columns,function(s,i){return e("th",{key:i+"-header",staticClass:"k-table-column",style:{width:t.width(s.width)},attrs:{"data-align":s.align,"data-column-id":i,"data-mobile":s.mobile},on:{click:function(e){return t.onHeader({column:s,columnIndex:i})}}},[t._t("header",function(){return[t._v(" "+t._s(t.label(s,i))+" ")]},null,{column:s,columnIndex:i,label:t.label(s,i)})],2)}),t.hasOptions?e("th",{staticClass:"k-table-options-column",attrs:{"data-mobile":"true"}}):t._e()],2)]),e("k-draggable",{attrs:{list:t.values,options:t.dragOptions,handle:!0,element:"tbody"},on:{change:t.onChange,end:t.onSort}},[0===t.rows.length?e("tr",[e("td",{staticClass:"k-table-empty",attrs:{colspan:t.colspan}},[t._v(" "+t._s(t.empty)+" ")])]):t._l(t.values,function(s,i){return e("tr",{key:s.id??s._id??s.value??JSON.stringify(s),class:{"k-table-sortable-row":t.rowIsSortable(s)},attrs:{"data-selecting":t.selecting,"data-selectable":t.rowIsSelectable(s),"data-sortable":t.rowIsSortable(s)}},[t.hasIndexColumn?e("td",{staticClass:"k-table-index-column",attrs:{"data-mobile":"true"}},[t._t("index",function(){return[e("div",{staticClass:"k-table-index",domProps:{textContent:t._s(t.index+i)}})]},null,{row:s,rowIndex:i}),t.rowIsSortable(s)?e("k-sort-handle",{staticClass:"k-table-sort-handle"}):t._e()],2):t._e(),t._l(t.columns,function(n,o){return e("k-table-cell",{key:o,staticClass:"k-table-column",style:{width:t.width(n.width)},attrs:{id:o,column:n,field:t.fields[o],row:s,mobile:n.mobile,value:s[o]},on:{input:function(e){return t.onCellUpdate({columnIndex:o,rowIndex:i,value:e})}},nativeOn:{click:function(e){return t.onCell({row:s,rowIndex:i,column:n,columnIndex:o})}}})}),t.hasOptions?e("td",{staticClass:"k-table-options-column",attrs:{"data-mobile":"true"}},[t.selecting?[e("label",{staticClass:"k-table-select-checkbox"},[e("input",{attrs:{disabled:!1===s.selectable,type:"checkbox"},on:{change:function(e){return t.$emit("select",s,i)}}})])]:[t._t("options",function(){return[e("k-options-dropdown",{attrs:{options:s.options??t.options,text:(s.options??t.options).length>1},on:{option:function(e){return t.onOption(e,s,i)}}})]},null,{row:s,rowIndex:i})]],2):t._e()],2)})],2)],1),t.pagination?e("k-pagination",t._b({staticClass:"k-table-pagination",on:{paginate:function(e){return t.$emit("paginate",e)}}},"k-pagination",t.pagination,!1)):t._e()],1)},[]).exports;const Kr=ut({inheritAttrs:!1,props:{column:Object,field:Object,id:String,mobile:{type:Boolean,default:!1},row:Object,value:{default:""}},emits:["input"],computed:{component(){return this.$helper.isComponent(`k-${this.type}-field-preview`)?`k-${this.type}-field-preview`:this.$helper.isComponent(`k-table-${this.type}-cell`)?`k-table-${this.type}-cell`:Array.isArray(this.value)?"k-array-field-preview":"object"==typeof this.value?"k-object-field-preview":"k-text-field-preview"},type(){var t;return this.column.type??(null==(t=this.field)?void 0:t.type)}}},function(){var t=this,e=t._self._c;return e("td",{class:["k-table-cell",t.$attrs.class],style:t.$attrs.style,attrs:{"data-align":t.column.align,"data-column-id":t.id,"data-mobile":t.mobile}},[!1===t.$helper.object.isEmpty(t.value)?e(t.component,{tag:"component",attrs:{column:t.column,field:t.field,row:t.row,value:t.value},on:{input:function(e){return t.$emit("input",e)}}}):t._e()],1)},[]).exports;const Wr=ut({props:{tab:String,tabs:{type:Array,default:()=>[]},theme:{type:String,default:"passive"}},data(){return{observer:null,visible:this.tabs,invisible:[]}},computed:{buttons(){return this.visible.map(this.button)},current(){const t=this.tabs.find(t=>t.name===this.tab)??this.tabs[0];return null==t?void 0:t.name},dropdown(){return this.invisible.map(this.button)}},watch:{tabs:{async handler(){var t;null==(t=this.observer)||t.disconnect(),await this.$nextTick(),this.$el instanceof Element&&(this.observer=new ResizeObserver(this.resize),this.observer.observe(this.$el))},immediate:!0}},destroyed(){var t;null==(t=this.observer)||t.disconnect()},methods:{button(t){const e={...t,current:t.name===this.current,title:t.label,text:t.label??t.text??t.name};return t.badge?e.badge={theme:this.theme,text:t.badge}:delete e.badge,e},async resize(){const t=this.$el.offsetWidth;this.visible=this.tabs,this.invisible=[],await this.$nextTick();const e=[...this.$refs.visible].map(t=>t.$el.offsetWidth);let s=32;for(let i=0;it)return this.visible=this.tabs.slice(0,i),void(this.invisible=this.tabs.slice(i))}}},function(){var t=this,e=t._self._c;return t.tabs.length>1?e("nav",{staticClass:"k-tabs"},[t._l(t.buttons,function(s){return e("k-button",t._b({key:s.name,ref:"visible",refInFor:!0,staticClass:"k-tabs-button",attrs:{variant:"dimmed"}},"k-button",s,!1),[t._v(" "+t._s(s.text)+" ")])}),t.invisible.length?[e("k-button",{staticClass:"k-tabs-button k-tabs-dropdown-button",attrs:{current:!!t.invisible.find(e=>t.tab===e.name),title:t.$t("more"),icon:"dots",variant:"dimmed"},on:{click:function(e){return e.stopPropagation(),t.$refs.more.toggle()}}}),e("k-dropdown-content",{ref:"more",staticClass:"k-tabs-dropdown",attrs:{options:t.dropdown,"align-x":"end"}})]:t._e()],2):t._e()},[]).exports,Jr={install(t){t.component("k-bar",Mr),t.component("k-box",Dr),t.component("k-bubble",Er),t.component("k-bubbles",Go),t.component("k-color-frame",Lr),t.component("k-column",jr),t.component("k-dropzone",Tr),t.component("k-frame",Br),t.component("k-grid",Pr),t.component("k-header",qr),t.component("k-icon-frame",zr),t.component("k-image-frame",Yr),t.component("k-image",Yr),t.component("k-overlay",Rr),t.component("k-stat",Hr),t.component("k-stats",zn),t.component("k-table",Vr),t.component("k-table-cell",Kr),t.component("k-tabs",Wr)}};const Gr=ut({props:{data:Object,disabled:Boolean,element:{type:String,default:"div"},group:String,handle:[String,Boolean],list:Array,move:Function,options:{type:Object,default:()=>({})}},emits:["change","end","sort","start"],data:()=>({sortable:null}),computed:{dragOptions(){return{group:this.group,disabled:this.disabled,handle:!0===this.handle?".k-sort-handle":this.handle,draggable:">*",filter:".k-draggable-footer",ghostClass:"k-sortable-ghost",fallbackClass:"k-sortable-fallback",forceFallback:!0,fallbackOnBody:!0,scroll:document.querySelector(".k-panel-main"),...this.options}}},watch:{dragOptions:{handler(t,e){for(const s in t)t[s]!==e[s]&&this.sortable.option(s,t[s])},deep:!0}},mounted(){this.disableFooter(),this.create()},methods:{async create(){const t=(await _r(async()=>{const{default:t}=await import("./sortable.min.js");return{default:t}},[],import.meta.url)).default;this.sortable=t.create(this.$el,{...this.dragOptions,onStart:t=>{this.$panel.drag.start("data",{}),this.$emit("start",t)},onEnd:t=>{this.$panel.drag.stop(),this.$emit("end",t)},onAdd:t=>{if(this.list){const e=this.getInstance(t.from),s=t.oldDraggableIndex,i=t.newDraggableIndex,n=e.list[s];this.list.splice(i,0,n),this.$emit("change",{added:{element:n,newIndex:i}})}},onUpdate:t=>{if(this.list){const e=t.oldDraggableIndex,s=t.newDraggableIndex,i=this.list[e];this.list.splice(e,1),this.list.splice(s,0,i),this.$emit("change",{moved:{element:i,newIndex:s,oldIndex:e}})}},onRemove:t=>{if(this.list){const e=t.oldDraggableIndex,s=this.list[e];this.list.splice(e,1),this.$emit("change",{removed:{element:s,oldIndex:e}})}},onSort:t=>{this.$emit("sort",t)},onMove:t=>{if(t.dragged.classList.contains("k-draggable-footer"))return!1;if(this.move){const e=t.dragged.__vue__;t.draggedData=e.$props;const s=this.getInstance(t.from);t.fromData=s.$props.data;const i=this.getInstance(t.to);return t.toData=i.$props.data,this.move(t)}return!0}})},disableFooter(){var t;if(this.$slots.footer){const e=[...this.$el.childNodes].slice(-1*this.$slots.footer.length);for(const s of e)null==(t=s.classList)||t.add("k-draggable-footer")}},getInstance:t=>"list"in(t=t.__vue__)?t:1===t.$children.length&&"list"in t.$children[0]?t.$children[0]:"k-draggable"===t.$parent.$options._componentTag?t.$parent:void 0}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",class:{"k-draggable":!t.dragOptions.disabled}},[t._t("default"),t.$slots.footer?[t._t("footer")]:t._e()],2)},[]).exports;const Xr=ut({data:()=>({error:null}),errorCaptured(t){return this.$panel.debug&&window.console.warn(t),this.error=t,!1},render(){return this.error?this.$slots.error?this.$slots.error[0]:this.$scopedSlots.error?this.$scopedSlots.error({error:this.error}):o("k-box",{attrs:{theme:"negative"}},this.error.message??this.error):this.$slots.default[0]}},null,null).exports;const Zr=ut({props:{html:String},mounted(){try{let t=this.$refs.iframe.contentWindow.document;t.open(),t.write(this.html),t.close()}catch(t){console.error(t)}}},function(){var t=this,e=t._self._c;return e("k-overlay",{staticClass:"k-fatal",attrs:{visible:!0}},[e("div",{staticClass:"k-fatal-box"},[e("div",{staticClass:"k-notification",attrs:{"data-theme":"negative"}},[e("p",[t._v("The JSON response could not be parsed")]),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return e.stopPropagation(),t.$panel.notification.close()}}})],1),e("iframe",{ref:"iframe",staticClass:"k-fatal-iframe"})])])},[]).exports;const Qr=ut({icons:window.panel.plugins.icons},function(){var t=this,e=t._self._c;return e("svg",{staticClass:"k-icons",attrs:{"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",overflow:"hidden"}},[e("defs",t._l(t.$options.icons,function(s,i){return e("symbol",{key:i,attrs:{id:"icon-"+i,viewBox:"0 0 24 24"},domProps:{innerHTML:t._s(s)}})}),0)])},[]).exports;const ta=ut({},function(){var t=this,e=t._self._c;return t.$panel.notification.isOpen?e("div",{staticClass:"k-notification",attrs:{"data-theme":t.$panel.notification.theme}},[e("p",[t._v(t._s(t.$panel.notification.message))]),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return t.$panel.notification.close()}}})],1):t._e()},[]).exports;const ea=ut({},function(){var t=this,e=t._self._c;return!t.$panel.system.isLocal&&t.$panel.isOffline?e("div",{staticClass:"k-offline-warning"},[e("p",[e("k-icon",{attrs:{type:"bolt"}}),t._v(" "+t._s(t.$t("error.offline")))],1)]):t._e()},[]).exports,sa={props:{value:{type:Number,default:0,validator:t=>t>=0&&t<=100}}};const ia=ut(sa,function(){var t=this;return(0,t._self._c)("progress",{staticClass:"k-progress",attrs:{max:"100"},domProps:{value:t.value}},[t._v(t._s(t.value)+"%")])},[]).exports;const na=ut({},function(){return(0,this._self._c)("k-button",{staticClass:"k-sort-handle k-sort-button",attrs:{title:this.$t("sort.drag"),icon:"sort","aria-hidden":"true"}})},[]).exports,oa={install(t){t.component("k-draggable",Gr),t.component("k-error-boundary",Xr),t.component("k-fatal",Zr),t.component("k-icon",Fr),t.component("k-icons",Qr),t.component("k-notification",ta),t.component("k-offline-warning",ea),t.component("k-progress",ia),t.component("k-sort-handle",na)}};const ra=ut({props:{crumbs:{type:Array,default:()=>[]},label:{type:String,default:"Breadcrumb"}},computed:{dropdown(){return this.crumbs.map(t=>({...t,text:t.label,icon:"angle-right"}))}}},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-breadcrumb",attrs:{"aria-label":t.label}},[t.crumbs.length>1?e("div",{staticClass:"k-breadcrumb-dropdown"},[e("k-button",{attrs:{icon:"home"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.dropdown}})],1):t._e(),e("ol",t._l(t.crumbs,function(s,i){return e("li",{key:i},[e("k-button",{staticClass:"k-breadcrumb-link",attrs:{icon:s.loading?"loader":s.icon,link:s.link,disabled:!s.link,text:s.text??s.label,title:s.text??s.label,current:i===t.crumbs.length-1&&"page",variant:"dimmed",size:"sm"}})],1)}),0)])},[]).exports;const aa=ut({props:{items:{type:Array},name:{default:"items",type:String},selected:{type:String},type:{default:"radio",type:String}},emits:["select"]},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-browser"},[e("div",{staticClass:"k-browser-items"},t._l(t.items,function(s){return e("label",{key:s.value,staticClass:"k-browser-item",attrs:{"aria-selected":t.selected===s.value}},[e("input",{attrs:{name:t.name,type:t.type},domProps:{checked:t.selected===s.value},on:{change:function(e){return t.$emit("select",s)}}}),s.image?e("k-item-image",{staticClass:"k-browser-item-image",attrs:{image:{...s.image,cover:!0,back:"black"}}}):t._e(),e("span",{staticClass:"k-browser-item-info"},[t._v(" "+t._s(s.label)+" ")])],1)}),0)])},[]).exports,la={props:{disabled:Boolean,download:Boolean,rel:String,tabindex:[String,Number],target:String,title:String}};const ca=ut({mixins:[la],props:{to:[String,Function]},emits:["click"],computed:{downloadAttr(){return this.download?this.href.split("/").pop():void 0},href(){return"function"==typeof this.to?"":"/"!==this.to[0]||this.target?!0===this.to.includes("@")&&!1===this.to.includes("/")&&!1===this.to.startsWith("mailto:")?"mailto:"+this.to:this.to:this.$url(this.to)},relAttr(){return"_blank"===this.target?"noreferrer noopener":this.rel}},methods:{isRoutable(t){if(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)return!1;if(t.defaultPrevented)return!1;if(void 0!==t.button&&0!==t.button)return!1;if(this.target)return!1;if("string"==typeof this.href){if(this.href.includes("://")||this.href.startsWith("//"))return!1;if(this.href.includes("mailto:"))return!1}return!0},onClick(t){if(!0===this.disabled)return t.preventDefault(),!1;"function"==typeof this.to&&(t.preventDefault(),this.to()),this.isRoutable(t)&&(t.preventDefault(),this.$go(this.to)),this.$emit("click",t)}}},function(){var t=this,e=t._self._c;return t.to&&!t.disabled?e("a",{ref:"link",staticClass:"k-link",attrs:{download:t.downloadAttr,href:t.href,rel:t.relAttr,tabindex:t.tabindex,target:t.target,title:t.title},on:{click:t.onClick}},[t._t("default")],2):e("span",{staticClass:"k-link",attrs:{title:t.title,"aria-disabled":""}},[t._t("default")],2)},[]).exports,ua={mixins:[la],props:{autofocus:Boolean,badge:Object,click:{type:Function,default:()=>{}},current:[String,Boolean],dialog:String,drawer:String,dropdown:Boolean,element:String,icon:String,id:[String,Number],link:String,responsive:[Boolean,String],role:String,selected:[String,Boolean],size:String,text:[String,Number],theme:String,type:{type:String,default:"button"},variant:String}};const pa=ut({mixins:[ua],inheritAttrs:!1,emits:["click"],computed:{attrs(){const t={"aria-current":this.current,"aria-disabled":this.disabled,"aria-label":this.text??this.title,"aria-selected":this.selected,"data-responsive":this.responsive,"data-size":this.size,"data-theme":this.theme,"data-variant":this.variant,id:this.id,tabindex:this.tabindex,title:this.title};return"k-link"===this.component?(t.disabled=this.disabled,t.download=this.download,t.to=this.link,t.rel=this.rel,t.target=this.target):"button"===this.component&&(t.autofocus=this.autofocus,t.role=this.role,t.type=this.type),this.dropdown&&(t["aria-haspopup"]="menu",t["data-dropdown"]=this.dropdown),t},component(){return this.element?this.element:this.link?"k-link":"button"}},methods:{focus(){var t,e;null==(e=(t=this.$el).focus)||e.call(t)},onClick(t){var e;return this.disabled?(t.preventDefault(),!1):this.dialog?this.$dialog(this.dialog):this.drawer?this.$drawer(this.drawer):(null==(e=this.click)||e.call(this,t),void this.$emit("click",t))}}},function(){var t=this,e=t._self._c;return e(t.component,t._b({tag:"component",class:["k-button",t.$attrs.class],style:t.$attrs.style,attrs:{"data-has-icon":Boolean(t.icon),"data-has-text":Boolean(t.text||t.$slots.default)},on:{click:t.onClick}},"component",t.attrs,!1),[t.icon?e("span",{staticClass:"k-button-icon"},[e("k-icon",{attrs:{type:t.icon}})],1):t._e(),t.text||t.$slots.default?e("span",{staticClass:"k-button-text"},[t._t("default",function(){return[t._v(" "+t._s(t.text)+" ")]})],2):t._e(),t.dropdown&&(t.text||t.$slots.default)?e("span",{staticClass:"k-button-arrow"},[e("k-icon",{attrs:{type:"angle-dropdown"}})],1):t._e(),t.badge?e("span",{staticClass:"k-button-badge",attrs:{"data-theme":t.badge.theme??t.theme}},[t._v(" "+t._s(t.badge.text)+" ")]):t._e()])},[]).exports;const da=ut({props:{buttons:Array,layout:String,variant:String,theme:String,size:String,responsive:Boolean}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-button-group",attrs:{"data-layout":t.layout}},[t.$slots.default?t._t("default"):t._l(t.buttons,function(s,i){return e("k-button",t._b({key:i},"k-button",{variant:t.variant,theme:t.theme,size:t.size,responsive:t.responsive,...s},!1))})],2)},[]).exports;const ha=ut({props:{limit:{default:50,type:Number},opened:{type:String},selected:{type:String}},emits:["select"],data(){return{files:[],page:null,pagination:null,view:this.opened?"files":"tree"}},methods:{paginate(t){this.selectPage(this.page,t.page)},selectFile(t){this.$emit("select",t)},async selectPage(t,e=1){this.page=t;const s="/"===t.id?"/site/files":"/pages/"+this.$api.pages.id(t.id)+"/files",{data:i,pagination:n}=await this.$api.get(s,{select:"filename,id,panelImage,url,uuid",limit:this.limit,page:e});this.pagination=n,this.files=i.map(t=>({label:t.filename,image:t.panelImage,id:t.id,url:t.url,uuid:t.uuid,value:t.uuid??t.url})),this.view="files"},async togglePage(){await this.$nextTick(),this.$refs.tree.scrollIntoView({behaviour:"smooth",block:"nearest",inline:"nearest"})}}},function(){var t,e,s=this,i=s._self._c;return i("div",{staticClass:"k-file-browser",attrs:{"data-view":s.view}},[i("div",{staticClass:"k-file-browser-layout"},[i("aside",{ref:"tree",staticClass:"k-file-browser-tree"},[i("k-page-tree",{attrs:{current:(null==(t=s.page)?void 0:t.value)??s.opened},on:{select:s.selectPage,toggleBranch:s.togglePage}})],1),i("div",{ref:"items",staticClass:"k-file-browser-items"},[i("k-button",{staticClass:"k-file-browser-back-button",attrs:{icon:"angle-left",text:null==(e=s.page)?void 0:e.label},on:{click:function(t){s.view="tree"}}}),s.files.length?i("k-browser",{attrs:{items:s.files,selected:s.selected},on:{select:s.selectFile}}):s._e()],1),i("div",{staticClass:"k-file-browser-pagination",on:{click:function(t){t.stopPropagation()}}},[s.pagination?i("k-pagination",s._b({attrs:{details:!0},on:{paginate:s.paginate}},"k-pagination",s.pagination,!1)):s._e()],1)])])},[]).exports;const ma=ut({props:{diff:Object,tab:String,tabs:{type:Array,default:()=>[]}},computed:{withBadges(){const t=Object.keys(this.diff);return this.tabs.map(e=>{const s=[];for(const t in e.columns)for(const i in e.columns[t].sections)if("fields"===e.columns[t].sections[i].type)for(const n in e.columns[t].sections[i].fields)s.push(n);return e.badge=s.filter(e=>t.includes(e.toLowerCase())).length,e})}}},function(){var t=this;return(0,t._self._c)("k-tabs",{staticClass:"k-model-tabs",attrs:{tab:t.tab,tabs:t.withBadges,theme:"notice"}})},[]).exports;const fa=ut({props:{axis:String,disabled:Boolean,element:{type:String,default:"div"},select:{type:String,default:":where(button, a):not(:disabled)"}},emits:["next","prev"],computed:{keys(){switch(this.axis){case"x":return{ArrowLeft:this.prev,ArrowRight:this.next};case"y":return{ArrowUp:this.prev,ArrowDown:this.next};default:return{ArrowLeft:this.prev,ArrowRight:this.next,ArrowUp:this.prev,ArrowDown:this.next}}}},mounted(){this.$el.addEventListener("keydown",this.keydown)},destroyed(){this.$el.removeEventListener("keydown",this.keydown)},methods:{focus(t=0,e){this.move(t,e)},keydown(t){var e;if(this.disabled)return!1;null==(e=this.keys[t.key])||e.apply(this,[t])},move(t=0,e){var s;const i=[...this.$el.querySelectorAll(this.select)];let n=i.findIndex(t=>t===document.activeElement||t.contains(document.activeElement));switch(-1===n&&(n=0),t){case"first":t=0;break;case"next":t=n+1;break;case"last":t=i.length-1;break;case"prev":t=n-1}t<0?this.$emit("prev"):t>=i.length?this.$emit("next"):null==(s=i[t])||s.focus(),null==e||e.preventDefault()},next(t){this.move("next",t)},prev(t){this.move("prev",t)}}},function(){var t=this;return(0,t._self._c)(t.element,{tag:"component",staticClass:"k-navigate"},[t._t("default")],2)},[]).exports;const ga=ut({name:"k-tree",inheritAttrs:!1,props:{element:{type:String,default:"k-tree"},current:{type:String},items:{type:[Array,Object]},level:{default:0,type:Number}},emits:["close","open","select","toggle"],data(){return{state:this.items}},methods:{arrow:t=>!0===t.loading?"loader":t.open?"angle-down":"angle-right",close(t){this.$set(t,"open",!1),this.$emit("close",t)},isItem:(t,e)=>t.value===e,open(t){this.$set(t,"open",!0),this.$emit("open",t)},select(t){this.$emit("select",t)},toggle(t){this.$emit("toggle",t),!0===t.open?this.close(t):this.open(t)}}},function(){var t=this,e=t._self._c;return e("ul",{class:["k-tree",t.$options.name,t.$attrs.class],style:{"--tree-level":t.level,...t.$attrs.style}},t._l(t.state,function(s){return e("li",{key:s.value,attrs:{"aria-expanded":s.open,"aria-current":t.isItem(s,t.current)}},[e("p",{staticClass:"k-tree-branch"},[e("button",{staticClass:"k-tree-toggle",attrs:{disabled:!s.hasChildren,type:"button"},on:{click:function(e){return t.toggle(s)}}},[e("k-icon",{attrs:{type:t.arrow(s)}})],1),e("button",{staticClass:"k-tree-folder",attrs:{disabled:s.disabled,type:"button"},on:{click:function(e){return t.select(s)},dblclick:function(e){return t.toggle(s)}}},[e("k-icon-frame",{attrs:{icon:s.icon??"folder"}}),e("span",{staticClass:"k-tree-folder-label"},[t._v(t._s(s.label))])],1)]),s.hasChildren&&s.open?[e(t.$options.name,t._b({ref:s.value,refInFor:!0,tag:"component",attrs:{items:s.children,level:t.level+1},on:{close:function(e){return t.$emit("close",e)},open:function(e){return t.$emit("open",e)},select:function(e){return t.$emit("select",e)},toggle:function(e){return t.$emit("toggle",e)}}},"component",t.$props,!1))]:t._e()],2)}),0)},[]).exports,ka={name:"k-page-tree",extends:ga,inheritAttrs:!1,props:{current:{type:String},move:{type:String},root:{default:!0,type:Boolean}},data:()=>({state:[]}),async mounted(){if(this.items)this.state=this.items;else{const t=await this.load(null);await this.open(t[0]),this.state=this.root?t:t[0].children,this.current&&this.preselect(this.current)}},methods:{findItem(t){return this.state.find(e=>this.isItem(e,t))},isItem:(t,e)=>t.value===e||t.uuid===e||t.id===e,async load(t){return await this.$panel.get("site/tree",{query:{move:this.move??null,parent:t}})},async open(t){if(t){if(!1===t.hasChildren)return!1;this.$set(t,"loading",!0),"string"==typeof t.children&&(t.children=await this.load(t.children)),this.$set(t,"open",!0),this.$set(t,"loading",!1)}},async preselect(t){const e=(await this.$panel.get("site/tree/parents",{query:{page:t,root:this.root}})).data;let s=this;for(let n=0;nPromise.resolve()}},emits:["paginate"],computed:{detailsText(){return 1===this.limit?this.start:this.start+"-"+this.end},end(){return Math.min(this.start-1+this.limit,this.total)},offset(){return this.start-1},pages(){return Math.ceil(this.total/this.limit)},start(){return(this.page-1)*this.limit+1}},methods:{async goTo(t){var e;try{await this.validate(t),null==(e=this.$refs.dropdown)||e.close();const s=((t=Math.max(1,Math.min(t,this.pages)))-1)*this.limit+1;this.$emit("paginate",{page:t,start:s,end:Math.min(s-1+this.limit,this.total),limit:this.limit,offset:s-1,total:this.total})}catch{}},prev(){this.goTo(this.page-1)},next(){this.goTo(this.page+1)}}},function(){var t=this,e=t._self._c;return t.pages>1?e("k-button-group",{staticClass:"k-pagination",attrs:{layout:"collapsed"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"left",37,e.key,["Left","ArrowLeft"])||"button"in e&&0!==e.button?null:t.prev.apply(null,arguments)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"right",39,e.key,["Right","ArrowRight"])||"button"in e&&2!==e.button?null:t.next.apply(null,arguments)}]}},[e("k-button",{staticClass:"k-pagination-button",attrs:{disabled:t.start<=1,title:t.$t("prev"),icon:"angle-left",size:"xs",variant:"filled"},on:{click:t.prev}}),t.details?[e("k-button",{staticClass:"k-pagination-details",attrs:{disabled:t.total<=t.limit,text:t.total>1?`${t.detailsText} / ${t.total}`:t.total,size:"xs",variant:"filled"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",staticClass:"k-pagination-selector",attrs:{"align-x":"end"},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"left",37,e.key,["Left","ArrowLeft"])||"button"in e&&0!==e.button?null:void e.stopPropagation()},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"right",39,e.key,["Right","ArrowRight"])||"button"in e&&2!==e.button?null:void e.stopPropagation()}]}},[e("form",{attrs:{method:"dialog"},on:{click:function(t){t.stopPropagation()},submit:function(e){return t.goTo(t.$refs.page.value)}}},[e("label",[t._v(" "+t._s(t.$t("pagination.page"))+": "),e("select",{ref:"page",attrs:{autofocus:!0}},t._l(t.pages,function(s){return e("option",{key:s,domProps:{selected:t.page===s,value:s}},[t._v(" "+t._s(s)+" ")])}),0)]),e("k-button",{attrs:{type:"submit",icon:"check"}})],1)])]:t._e(),e("k-button",{staticClass:"k-pagination-button",attrs:{disabled:t.end>=t.total,title:t.$t("next"),icon:"angle-right",size:"xs",variant:"filled"},on:{click:t.next}})],2):t._e()},[]).exports;const va=ut({props:{prev:{type:[Boolean,Object],default:!1},next:{type:[Boolean,Object],default:!1}},computed:{buttons(){return[{...this.button(this.prev),icon:"angle-left"},{...this.button(this.next),icon:"angle-right"}]},isFullyDisabled(){return 0===this.buttons.filter(t=>!t.disabled).length}},methods:{button:t=>t||{disabled:!0,link:"#"}}},function(){var t=this,e=t._self._c;return t.isFullyDisabled?t._e():e("k-button-group",{staticClass:"k-prev-next",attrs:{buttons:t.buttons,layout:"collapsed",size:"xs"}})},[]).exports;const $a=ut({mixins:[Yt],props:{defaultType:String,isLoading:Boolean,pagination:{type:Object,default:()=>({})},results:Array,types:{type:Object,default:()=>({})}},emits:["close","more","navigate","search"],data(){return{selected:-1,type:this.types[this.defaultType]?this.defaultType:Object.keys(this.types)[0]}},computed:{typesDropdown(){return Object.values(this.types).map(t=>({...t,current:this.type===t.id,click:()=>{this.type=t.id,this.focus()}}))}},watch:{type(){this.search()}},methods:{focus(){var t;null==(t=this.$refs.input)||t.focus()},onDown(){this.select(Math.min(this.selected+1,this.results.length-1))},onEnter(){this.$emit("navigate",this.results[this.selected]??this.results[0])},onUp(){this.select(Math.max(this.selected-1,-1))},async search(){var t,e;null==(t=this.$refs.types)||t.close(),null==(e=this.select)||e.call(this,-1),this.$emit("search",{type:this.type,query:this.query})},select(t){var e;this.selected=t;const s=(null==(e=this.$refs.results)?void 0:e.$el.querySelectorAll(".k-item"))??[];for(const i of s)delete i.dataset.selected;t>=0&&(s[t].dataset.selected=!0)}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-search-bar"},[e("div",{staticClass:"k-search-bar-input"},[t.typesDropdown.length>1?[e("k-button",{staticClass:"k-search-bar-types",attrs:{dropdown:!0,icon:t.types[t.type].icon,text:t.types[t.type].label,variant:"dimmed"},on:{click:function(e){return t.$refs.types.toggle()}}}),e("k-dropdown-content",{ref:"types",attrs:{options:t.typesDropdown}})]:t._e(),e("k-search-input",{ref:"input",attrs:{"aria-label":t.$t("search"),autofocus:!0,value:t.query},on:{input:function(e){t.query=e}},nativeOn:{keydown:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:(e.preventDefault(),t.onDown.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:(e.preventDefault(),t.onUp.apply(null,arguments))},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.onEnter.apply(null,arguments)}]}}),e("k-button",{staticClass:"k-search-bar-close",attrs:{icon:t.isLoading?"loader":"cancel",title:t.$t("close")},on:{click:function(e){return t.$emit("close")}}})],2),t.results?e("div",{staticClass:"k-search-bar-results"},[t.results.length?e("k-collection",{ref:"results",attrs:{items:t.results},nativeOn:{mouseout:function(e){return t.select(-1)}}}):t._e(),e("footer",{staticClass:"k-search-bar-footer"},[0===t.results.length?e("p",[t._v(" "+t._s(t.$t("search.results.none"))+" ")]):t._e(),t.results.length({fields:{},isLoading:!0,issue:null}),watch:{timestamp(){this.fetch()}},mounted(){this.fetch()},methods:{async fetch(){try{const t=await this.load();this.fields=t.fields;for(const e in this.fields)this.fields[e].section=this.name,this.fields[e].endpoints={field:this.parent+"/fields/"+e,section:this.parent+"/sections/"+this.name,model:this.parent}}catch(t){this.issue=t}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return t.isLoading?t._e():e("k-section",{class:["k-fields-section",t.$attrs.class],style:t.$attrs.style,attrs:{headline:t.issue?t.$t("error"):null}},[t.issue?e("k-box",{attrs:{text:t.issue.message,html:!1,icon:"alert",theme:"negative"}}):t._e(),e("k-form",{attrs:{fields:t.fields,validate:!0,value:t.content,disabled:t.lock&&"lock"===t.lock.state},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}})],1)},[]).exports;const Oa=ut({mixins:[Sa,Rn],inheritAttrs:!1,props:{column:String},data:()=>({data:[],error:null,isLoading:!1,isProcessing:!1,options:{batch:!1,columns:{},empty:null,fields:{},headline:null,help:null,layout:"list",link:null,max:null,min:null,size:null,sortable:null},pagination:{page:null},searchterm:null,searching:!1}),computed:{addIcon:()=>"add",batchDeleteConfirmMessage(){return this.$t(`${this.type}.delete.confirm.selected`,{count:this.selected.length})},batchEditingEvent:()=>"section.selecting",buttons(){let t=[];return this.isSelecting?this.batchEditingButtons:(this.canSearch&&t.push({icon:"filter",text:this.$t("filter"),click:this.onSearchToggle,responsive:!0}),this.canSelect&&t.push(this.batchEditingToggle),this.canAdd&&t.push({icon:this.addIcon,text:this.$t("add"),click:this.onAdd,responsive:!0}),t)},canAdd:()=>!0,canDrop:()=>!1,canSearch(){return this.options.search},canSelect(){return this.options.batch&&this.items.length>0},collection(){return{columns:this.options.columns,empty:this.emptyPropsWithSearch,fields:this.fields,layout:this.options.layout,help:this.options.help,items:this.items,pagination:this.pagination,selecting:!this.isProcessing&&this.isSelecting,sortable:!this.isProcessing&&this.options.sortable,size:this.options.size}},emptyProps(){return{icon:"page",text:this.$t("pages.empty")}},emptyPropsWithSearch(){return{...this.emptyProps,text:this.searching?this.$t("search.results.none"):this.options.empty??this.emptyProps.text}},fields(){var t;const e={};for(const s in this.options.columns??{})e[s]={...(null==(t=this.options.fields)?void 0:t[s])??this.options.columns[s],disabled:!0};return e},items(){return this.data},isInvalid(){var t;return!((null==(t=this.searchterm)?void 0:t.length)>0)&&(!!(this.options.min&&this.data.lengththis.options.max))},paginationId(){return"kirby$pagination$"+this.parent+"/"+this.name},type:()=>"models"},watch:{searchterm(){this.search()},timestamp(){this.reload()}},created(){this.$events.on("model.update",this.reload)},destroyed(){this.$events.off("model.update",this.reload)},mounted(){this.search=zt(this.search,200),this.load()},methods:{async deleteSelected(){if(0!==this.selected.length){this.isProcessing=!0;try{await this.$api.delete(this.parent+"/sections/"+this.name+"/delete",{ids:this.selected.map(t=>t.id)})}catch(t){this.$panel.notification.error(t)}finally{this.$panel.events.emit("model.update"),this.isProcessing=!1}}},async load(t){this.isProcessing=!0,t||(this.isLoading=!0);const e=this.pagination.page??sessionStorage.getItem(this.paginationId)??null;try{const t=await this.$api.get(this.parent+"/sections/"+this.name,{page:e,searchterm:this.searchterm});this.options=t.options,this.pagination=t.pagination,this.data=t.data}catch(s){this.error=s.message}finally{this.isProcessing=!1,this.isLoading=!1}},onAction(){},onAdd(){},onBatchDelete(){this.deleteSelected()},onChange(){},onDrop(){},onPaginate(t){sessionStorage.setItem(this.paginationId,t.page),this.pagination=t,this.reload()},onSearchToggle(){this.searching=!this.searching,this.searchterm=null},onSort(){},async reload(){this.stopSelecting(),await this.load(!0)},async search(){this.pagination.page=0,await this.reload()},update(){this.reload(),this.$events.emit("model.update")}}},function(){var t=this,e=t._self._c;return!1===t.isLoading?e("k-section",{class:["k-models-section",`k-${t.type}-section`,t.$attrs.class],style:t.$attrs.style,attrs:{buttons:t.buttons,"data-processing":t.isProcessing,headline:t.options.headline??" ",invalid:t.isInvalid,link:t.options.link,required:Boolean(t.options.min)}},[t.error?e("k-box",{attrs:{icon:"alert",theme:"negative"}},[e("k-text",{attrs:{size:"small"}},[e("strong",[t._v(" "+t._s(t.$t("error.section.notLoaded",{name:t.name}))+": ")]),t._v(" "+t._s(t.error)+" ")])],1):[e("k-dropzone",{attrs:{disabled:!t.canDrop},on:{drop:t.onDrop}},[t.searching&&t.options.search?e("k-input",{staticClass:"k-models-section-search",attrs:{autofocus:!0,placeholder:t.$t("filter")+" …",value:t.searchterm,icon:"search",type:"text"},on:{input:function(e){t.searchterm=e}},nativeOn:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"esc",27,e.key,["Esc","Escape"])?null:t.onSearchToggle.apply(null,arguments)}}}):t._e(),e("k-collection",t._g(t._b({on:{action:t.onAction,change:t.onChange,select:t.onSelect,sort:t.onSort,paginate:t.onPaginate}},"k-collection",t.collection,!1),t.canAdd?{empty:t.onAdd}:{}))],1)]],2):t._e()},[]).exports;const Aa=ut({extends:Oa,computed:{addIcon:()=>"upload",canAdd(){return this.$panel.permissions.files.create&&!1!==this.options.upload},canDrop(){return!1!==this.canAdd},emptyProps(){return{icon:"image",text:this.$t("files.empty")}},items(){return this.data.map(t=>{const e=t.permissions.sort&&this.options.sortable&&!this.isSelecting,s=t.permissions.delete&&this.data.length>this.options.min;return{...t,column:this.column,data:{"data-id":t.id,"data-template":t.template},options:this.$dropdown(t.link,{query:{delete:s,sort:e,view:"list"}}),selectable:this.isSelecting&&s,sortable:e}})},type:()=>"files",uploadOptions(){return{...this.options.upload,url:this.$panel.urls.api+"/"+this.options.upload.api}}},mounted(){this.$events.on("file.sort",this.reload)},destroyed(){this.$events.off("file.sort",this.reload)},methods:{onAction(t,e){"replace"===t&&this.replace(e)},onAdd(){this.canAdd&&this.$panel.upload.pick(this.uploadOptions)},onDrop(t){this.canAdd&&this.$panel.upload.open(t,this.uploadOptions)},async onSort(t){if(!1===this.options.sortable)return!1;this.isProcessing=!0;try{await this.$api.patch(this.options.apiUrl+"/sort",{files:t.map(t=>t.id),index:this.pagination.offset}),this.$panel.notification.success(),this.$events.emit("file.sort")}catch(e){this.$panel.error(e),this.reload()}finally{this.isProcessing=!1}},replace(t){this.$panel.upload.replace(t,this.uploadOptions)}}},null,null).exports;const Ma=ut({mixins:[Sa],inheritAttrs:!1,data:()=>({icon:null,label:null,text:null,theme:null}),async mounted(){const t=await this.load();this.icon=t.icon,this.label=t.label,this.text=t.text,this.theme=t.theme??"info"}},function(){var t=this,e=t._self._c;return e("k-section",{class:["k-info-section",t.$attrs.class],style:t.$attrs.style,attrs:{headline:t.label}},[e("k-box",{attrs:{html:!0,icon:t.icon,text:t.text,theme:t.theme}})],1)},[]).exports;const Da=ut({extends:Oa,computed:{canAdd(){return this.options.add&&this.$panel.permissions.pages.create},items(){return this.data.map(t=>{const e=t.permissions.sort&&this.options.sortable&&!this.isSelecting,s=t.permissions.delete&&this.data.length>this.options.min,i={...this.$helper.page.status(t.status,!1===t.permissions.changeStatus),class:"k-page-status-icon-option",click:()=>this.$dialog(t.link+"/changeStatus")};return{...t,buttons:[i,...t.buttons??[]],column:this.column,data:{"data-id":t.id,"data-status":t.status,"data-template":t.template},flag:i,deletable:s,options:this.$dropdown(t.link,{query:{view:"list",delete:s,sort:e}}),selectable:this.isSelecting&&s,sortable:e}})},type:()=>"pages"},mounted(){this.$events.on("page.changeStatus",this.reload),this.$events.on("page.sort",this.reload)},destroyed(){this.$events.off("page.changeStatus",this.reload),this.$events.off("page.sort",this.reload)},methods:{onAdd(){this.canAdd&&this.$dialog("pages/create",{query:{parent:this.options.link??this.parent,view:this.parent,section:this.name}})},async onChange(t){let e=null;if(t.added&&(e="added"),t.moved&&(e="moved"),e){this.isProcessing=!0;const i=t[e].element,n=t[e].newIndex+1+this.pagination.offset;try{await this.$api.pages.changeStatus(i.id,"listed",n),this.$panel.notification.success(),this.$events.emit("page.sort",i)}catch(s){this.$panel.error({message:s.message,details:s.details}),await this.reload()}finally{this.isProcessing=!1}}}}},null,null).exports;const Ea=ut({mixins:[Sa],data:()=>({headline:null,isLoading:!0,reports:null,size:null}),async mounted(){const t=await this.load();this.isLoading=!1,this.headline=t.headline,this.reports=t.reports,this.size=t.size},methods:{}},function(){var t=this,e=t._self._c;return!1===t.isLoading?e("k-section",{staticClass:"k-stats-section",attrs:{headline:t.headline}},[e("k-stats",{attrs:{reports:t.reports,size:t.size}})],1):t._e()},[]).exports,ja={install(t){t.component("k-section",xa),t.component("k-sections",_a),t.component("k-fields-section",Ca),t.component("k-files-section",Aa),t.component("k-info-section",Ma),t.component("k-pages-section",Da),t.component("k-stats-section",Ea)}};const Ia=ut({components:{"k-highlight":()=>_r(()=>import("./Highlight.min.js"),__vite__mapDeps([5,1]),import.meta.url)},props:{language:{type:String}}},function(){var t=this,e=t._self._c;return e("k-highlight",[e("div",[e("pre",{staticClass:"k-code",attrs:{"data-language":t.language}},[e("code",{key:t.$slots.default[0].text+"-"+t.language,class:t.language?`language-${t.language}`:null},[t._t("default")],2)])])])},[]).exports;const Ba=ut({props:{link:String,tag:{type:String,default:"h2"}},emits:["click"]},function(){var t=this,e=t._self._c;return e(t.tag,{tag:"component",staticClass:"k-headline",on:{click:function(e){return t.$emit("click",e)}}},[t.link?e("k-link",{attrs:{to:t.link}},[t._t("default")],2):t._t("default")],2)},[]).exports;const La=ut({props:{input:{type:[String,Number,Boolean]},invalid:{type:Boolean},link:{type:String},required:{default:!1,type:Boolean},type:{default:"field",type:String}},computed:{element(){return"section"===this.type||!1===this.input?"h2":"label"}}},function(){var t=this,e=t._self._c;return e(t.element,{tag:"component",staticClass:"k-label",class:"k-"+t.type+"-label",attrs:{for:t.input}},[t.link?e("k-link",{attrs:{to:t.link}},[e("span",{staticClass:"k-label-text"},[t._t("default")],2)]):e("span",{staticClass:"k-label-text"},[t._t("default")],2),t.required?e("abbr",{attrs:{title:t.$t(t.type+".required")}},[t._v("✶")]):t._e(),e("abbr",{staticClass:"k-label-invalid",attrs:{title:t.$t(t.type+".invalid"),"data-theme":"negative"}},[t._v(" × ")])],1)},[]).exports;const Ta=ut({props:{align:String,html:String,size:String},computed:{attrs(){return{class:"k-text","data-align":this.align,"data-size":this.size}}}},function(){var t=this,e=t._self._c;return t.html?e("div",t._b({domProps:{innerHTML:t._s(t.html)}},"div",t.attrs,!1)):e("div",t._b({},"div",t.attrs,!1),[t._t("default")],2)},[]).exports,Pa={install(t){t.component("k-code",Ia),t.component("k-headline",Ba),t.component("k-label",La),t.component("k-text",Ta)}},qa={props:{back:String,color:String,cover:{type:Boolean,default:!0},icon:String,type:String,url:String}};const Na=ut({mixins:[qa],computed:{fallbackColor(){var t,e,s;return(null==(t=this.type)?void 0:t.startsWith("image/"))?"orange-500":(null==(e=this.type)?void 0:e.startsWith("audio/"))?"aqua-500":(null==(s=this.type)?void 0:s.startsWith("video/"))?"yellow-500":"white"},fallbackIcon(){var t,e,s;return(null==(t=this.type)?void 0:t.startsWith("image/"))?"image":(null==(e=this.type)?void 0:e.startsWith("audio/"))?"audio":(null==(s=this.type)?void 0:s.startsWith("video/"))?"video":"file"},isPreviewable(){return["image/jpeg","image/jpg","image/gif","image/png","image/webp","image/avif","image/svg+xml"].includes(this.type)}}},function(){var t=this,e=t._self._c;return e("a",{staticClass:"k-upload-item-preview",attrs:{href:t.url,target:"_blank"}},[t.isPreviewable?e("k-image",{attrs:{cover:t.cover,src:t.url,back:t.back??"pattern"}}):e("k-icon-frame",{attrs:{color:t.color??t.fallbackColor,icon:t.icon??t.fallbackIcon,back:t.back??"black",ratio:"1/1"}})],1)},[]).exports;const Fa=ut({mixins:[qa],props:{completed:Boolean,editable:{type:Boolean,default:!0},error:[String,Boolean],extension:String,id:String,name:String,niceSize:String,progress:Number,removable:{type:Boolean,default:!0}},emits:["remove","rename"]},function(){var t=this,e=t._self._c;return e("li",{staticClass:"k-upload-item",attrs:{"data-completed":t.completed}},[e("k-upload-item-preview",{attrs:{back:t.back,color:t.color,cover:t.cover,icon:t.icon,type:t.type,url:t.url}}),e("k-input",{staticClass:"k-upload-item-input",attrs:{disabled:t.completed||!t.editable,after:"."+t.extension,required:!0,value:t.name,allow:"a-z0-9@._-",type:"slug"},on:{input:function(e){return t.$emit("rename",e)}}}),e("div",{staticClass:"k-upload-item-body"},[e("p",{staticClass:"k-upload-item-meta"},[t._v(" "+t._s(t.niceSize)+" "),t.progress?[t._v(" - "+t._s(t.progress)+"% ")]:t._e()],2),t.error?e("p",{staticClass:"k-upload-item-error",attrs:{"data-theme":"negative"}},[t._v(" "+t._s(t.error)+" ")]):t.progress?e("k-progress",{staticClass:"k-upload-item-progress",attrs:{value:t.progress}}):t._e()],1),e("div",{staticClass:"k-upload-item-toggle"},[t.completed||t.progress||!t.removable?!t.completed&&t.progress?e("k-button",{attrs:{disabled:!0,icon:"loader"}}):t.completed?e("k-button",{attrs:{icon:"check",theme:"positive"},on:{click:function(e){return t.$emit("remove")}}}):t._e():e("k-button",{attrs:{icon:"remove"},on:{click:function(e){return t.$emit("remove")}}})],1)],1)},[]).exports;const za=ut({props:{items:Array},emits:["remove","rename"]},function(){var t=this,e=t._self._c;return e("ul",{staticClass:"k-upload-items"},t._l(t.items,function(s){return e("k-upload-item",t._b({key:s.id,on:{rename:function(e){return t.$emit("rename",s,e)},remove:function(e){return t.$emit("remove",s)}}},"k-upload-item",s,!1))}),1)},[]).exports,Ya={install(t){t.component("k-upload-item",Fa),t.component("k-upload-item-preview",Na),t.component("k-upload-items",za)}};const Ra=ut({props:{status:{default:"missing",type:String}}},function(){var t=this,e=t._self._c;return t.$panel.activation.isOpen?e("div",{staticClass:"k-activation"},[e("p",[e("strong",[t._v(t._s(t.$t(`license.status.${t.status}.bubble`)))]),"missing"===t.status?[e("a",{attrs:{href:"https://getkirby.com/buy",target:"_blank"}},[t._v(t._s(t.$t("license.buy")))]),t._v(" & "),e("button",{attrs:{type:"button"},on:{click:function(e){return t.$dialog("registration")}}},[t._v(" "+t._s(t.$t("license.activate"))+" ")])]:t._e()],2),e("k-button",{staticClass:"k-activation-toggle",attrs:{icon:"cancel-small"},on:{click:function(e){return t.$panel.activation.close()}}})],1):t._e()},[]).exports;const Ha=ut({mixins:[ua],props:{hasDiff:Boolean,options:String},computed:{changesBadge(){return this.hasDiff||this.$panel.content.hasDiff()?{theme:this.$panel.content.isLocked()?"red":"orange"}:null}},methods:{change(t){this.$reload({query:{language:t.code}})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-view-button k-languages-dropdown"},[e("k-button",t._b({attrs:{badge:t.changesBadge,dropdown:!0},on:{click:function(e){return t.$refs.dropdown.toggle()}}},"k-button",t.$props,!1)),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.$dropdown(t.options),"align-x":"end"},scopedSlots:t._u([{key:"item",fn:function({item:s,index:i}){return[e("k-button",t._b({key:"item-"+i,staticClass:"k-dropdown-item k-languages-dropdown-item",on:{click:function(e){return t.change(s)}}},"k-button",s,!1),[t._v(" "+t._s(s.text)+" "),e("span",{staticClass:"k-languages-dropdown-item-info",attrs:{"data-lock":s.lock}},[s.changes?e("k-icon",{staticClass:"k-languages-dropdown-item-icon",attrs:{alt:t.$t("lock.unsaved"),type:s.lock?"lock":"edit-line"}}):t._e(),e("span",{staticClass:"k-languages-dropdown-item-code"},[t._v(" "+t._s(s.code.toUpperCase())+" ")])],1)])]}}])})],1)},[]).exports;const Ua=ut({extends:pa,props:{options:[Array,String],size:{default:"sm"},variant:{default:"filled"}},emits:["action","click"],computed:{hasDropdown(){return!0===Array.isArray(this.options)?this.options.length>0:Boolean(this.options)}},methods:{onClick(){if(this.hasDropdown)return this.$refs.dropdown.toggle();this.$emit("click")}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-view-button"},[e("k-button",t._b({attrs:{dropdown:t.dropdown||t.hasDropdown},on:{click:t.onClick}},"k-button",t.$props,!1)),t.hasDropdown?e("k-dropdown-content",{ref:"dropdown",attrs:{options:Array.isArray(t.options)?t.options:t.$dropdown(t.options),"align-x":"end"},on:{action:function(e){return t.$emit("action",e)}}}):t._e()],1)},[]).exports;const Va=ut({extends:Ua,emits:["action"]},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{disabled:t.$panel.content.isLocked()},on:{action:function(e){return t.$emit("action",e)}}},"k-view-button",t.$props,!1))},[]).exports;const Ka=ut({extends:Ua},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{disabled:t.disabled||t.$panel.content.isLocked()}},"k-view-button",t.$props,!1))},[]).exports;const Wa=ut({props:{size:String,text:{type:String,default:()=>window.panel.t("theme")},variant:String},computed:{current(){return this.$panel.theme.current},options(){return[{text:this.$t("theme.light"),icon:"sun",disabled:"light"===this.setting,click:()=>this.$panel.theme.set("light")},{text:this.$t("theme.dark"),icon:"moon",disabled:"dark"===this.setting,click:()=>this.$panel.theme.set("dark")},{text:this.$t("theme.automatic"),icon:"wand",disabled:"system"===this.setting,click:()=>this.$panel.theme.set("system")}]},setting(){return this.$panel.theme.setting??this.$panel.theme.config}}},function(){var t=this;return(0,t._self._c)("k-view-button",t._b({attrs:{icon:"light"===t.current?"sun":"moon",options:t.options}},"k-view-button",t.$props,!1))},[]).exports;const Ja=ut({props:{buttons:{type:Array,default:()=>[]}},emits:["action"],methods:{component(t){return this.$helper.isComponent(t.component)?t.component:"k-view-button"}}},function(){var t=this,e=t._self._c;return t.buttons.length?e("k-button-group",{staticClass:"k-view-buttons"},t._l(t.buttons,function(s){return e(t.component(s),t._b({key:s.key,tag:"component",on:{action:function(e){return t.$emit("action",e)}}},"component",s.props,!1))}),1):t._e()},[]).exports,Ga={install(t){t.component("k-languages-dropdown",Ha),t.component("k-settings-view-button",Va),t.component("k-status-view-button",Ka),t.component("k-theme-view-button",Wa),t.component("k-view-button",Ua),t.component("k-view-buttons",Ja)}};const Xa=ut({computed:{notification(){return"view"!==this.$panel.notification.context||this.$panel.notification.isFatal?null:this.$panel.notification}}},function(){var t=this,e=t._self._c;return e("k-panel",{staticClass:"k-panel-inside"},[e("k-panel-menu"),e("main",{staticClass:"k-panel-main"},[e("k-topbar",{attrs:{breadcrumb:t.$panel.view.breadcrumb,view:t.$panel.view}},[t._t("topbar")],2),t._t("default")],2),t.notification&&"error"!==t.notification.type?e("k-button",{staticClass:"k-panel-notification",attrs:{icon:t.notification.icon,text:t.notification.message,theme:t.notification.theme,variant:"filled"},on:{click:function(e){return t.notification.close()}}}):t._e()],1)},[]).exports;const Za=ut({data:()=>({over:!1}),computed:{activationButton(){return"missing"===this.$panel.license?{click:()=>this.$dialog("registration"),text:this.$t("activate")}:"legacy"===this.$panel.license&&{click:()=>this.$dialog("license"),text:this.$t("renew")}},hasSearch(){return this.$helper.object.length(this.$panel.searches)>0},menus(){return this.$helper.array.split(this.$panel.menu.entries,"-")}}},function(){var t=this,e=t._self._c;return e("nav",{staticClass:"k-panel-menu",attrs:{"aria-label":t.$t("menu"),"data-hover":t.$panel.menu.hover},on:{mouseenter:function(e){t.$panel.menu.hover=!0},mouseleave:function(e){t.$panel.menu.hover=!1}}},[e("div",{staticClass:"k-panel-menu-body"},[t.hasSearch?e("k-button",{staticClass:"k-panel-menu-search k-panel-menu-button",attrs:{text:t.$t("search"),icon:"search"},on:{click:function(e){return t.$panel.search()}}}):t._e(),t._l(t.menus,function(s,i){return e("menu",{key:i,staticClass:"k-panel-menu-buttons",attrs:{"data-second-last":i===t.menus.length-2}},t._l(s,function(s){return e("k-button",t._b({key:s.id,staticClass:"k-panel-menu-button",attrs:{title:s.title??s.text}},"k-button",s,!1))}),1)}),t.activationButton?e("menu",[e("k-button",t._b({staticClass:"k-activation-button k-panel-menu-button",attrs:{icon:"key",theme:"love",variant:"filled"}},"k-button",t.activationButton,!1)),e("k-activation",{attrs:{status:t.$panel.license}})],1):t._e()],2),e("k-button",{staticClass:"k-panel-menu-toggle",attrs:{icon:t.$panel.menu.isOpen?"angle-left":"angle-right",title:t.$panel.menu.isOpen?t.$t("collapse"):t.$t("expand"),size:"xs"},on:{click:function(e){return t.$panel.menu.toggle()}}})],1)},[]).exports;const Qa=ut({},function(){return(0,this._self._c)("k-panel",{staticClass:"k-panel-outside",attrs:{tabindex:"0"}},[this._t("default")],2)},[]).exports;const tl=ut({},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-panel",attrs:{"data-dragging":t.$panel.drag.isDragging,"data-loading":t.$panel.isLoading,"data-language":t.$panel.language.code,"data-language-default":t.$panel.language.isDefault,"data-menu":t.$panel.menu.isOpen?"true":"false","data-role":t.$panel.user.role,"data-theme":t.$panel.theme.current,"data-translation":t.$panel.translation.code,"data-user":t.$panel.user.id,dir:t.$panel.direction}},[t._t("default"),t.$panel.dialog.isOpen&&!t.$panel.dialog.legacy?e("k-fiber-dialog"):t._e(),t.$panel.drawer.isOpen&&!t.$panel.drawer.legacy?e("k-fiber-drawer"):t._e(),t.$panel.notification.isFatal&&t.$panel.notification.isOpen?e("k-fatal",{attrs:{html:t.$panel.notification.message}}):t._e(),e("k-offline-warning"),e("k-icons"),e("k-overlay",{attrs:{nested:t.$panel.drawer.history.milestones.length>1,visible:t.$panel.drawer.isOpen,type:"drawer"},on:{close:function(e){return t.$panel.drawer.close()}}},[e("portal-target",{staticClass:"k-drawer-portal k-portal",attrs:{name:"drawer",multiple:""}})],1),e("k-overlay",{attrs:{nested:t.$panel.dialog.history.milestones.length>1,visible:t.$panel.dialog.isOpen,type:"dialog"},on:{close:function(e){return t.$panel.dialog.close()}}},[e("portal-target",{staticClass:"k-dialog-portal k-portal",attrs:{name:"dialog",multiple:""}})],1),e("portal-target",{staticClass:"k-overlay-portal k-portal",attrs:{name:"overlay",multiple:""}})],2)},[]).exports;const el=ut({props:{breadcrumb:Array,view:Object},computed:{crumbs(){return[{link:this.view.link,label:this.view.label??this.view.breadcrumbLabel,icon:this.view.icon,loading:this.$panel.isLoading},...this.breadcrumb]}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-topbar"},[e("k-button",{staticClass:"k-panel-menu-proxy",attrs:{icon:"bars"},on:{click:function(e){return t.$panel.menu.toggle()}}}),e("k-breadcrumb",{staticClass:"k-topbar-breadcrumb",attrs:{crumbs:t.crumbs}}),e("div",{staticClass:"k-topbar-spacer"}),e("div",{staticClass:"k-topbar-signals"},[t._t("default")],2)],1)},[]).exports,sl={install(t){t.use(Ga),t.component("k-activation",Ra),t.component("k-panel",tl),t.component("k-panel-inside",Xa),t.component("k-panel-menu",Za),t.component("k-panel-outside",Qa),t.component("k-topbar",el)}};const il=ut({props:{error:String,layout:String}},function(){var t=this,e=t._self._c;return e(`k-panel-${t.layout}`,{tag:"component",staticClass:"k-error-view"},["outside"===t.layout?[e("div",[e("k-box",{attrs:{icon:"alert",theme:"negative"}},[t._v(t._s(t.error))])],1)]:[e("k-header",[t._v(t._s(t.$t("error")))]),e("k-box",{attrs:{icon:"alert",theme:"negative"}},[t._v(t._s(t.error))])]],2)},[]).exports;const nl=ut({mixins:[Yt],props:{type:{default:"pages",type:String}},data:()=>({query:new URLSearchParams(window.location.search).get("query"),pagination:{},results:[]}),computed:{currentType(){return this.$panel.searches[this.type]??Object.values(this.$panel.searches)[0]},empty(){return this.isLoading?this.$t("searching")+"…":this.query.length<2?this.$t("search.min",{min:2}):this.$t("search.results.none")},isLoading(){return this.$panel.searcher.isLoading},tabs(){const t=[];for(const e in this.$panel.searches){const s=this.$panel.searches[e];t.push({label:s.label,link:"/search/?type="+e+"&query="+this.query,name:e})}return t}},watch:{isLoading(t){this.$panel.isLoading=t},query:{handler(){this.search(1)},immediate:!0},type(){this.search()}},methods:{focus(){var t;null==(t=this.$refs.input)||t.focus()},onPaginate(t){this.search(t.page)},async search(t){t||(t=new URLSearchParams(window.location.search).get("page")??1);const e=this.$panel.url(window.location,{type:this.currentType.id,query:this.query,page:t});window.history.pushState("","",e.toString());const s=await this.$panel.search(this.currentType.id,this.query,{page:t,limit:15});s&&(this.results=s.results??[],this.pagination=s.pagination)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-search-view"},[e("k-header",[t._v(" "+t._s(t.$t("search"))+" "),e("k-input",{ref:"input",staticClass:"k-search-view-input",attrs:{slot:"buttons","aria-label":t.$t("search"),autofocus:!0,icon:t.isLoading?"loader":"search",placeholder:t.$t("search")+" …",spellcheck:!1,value:t.query,type:"text"},on:{input:function(e){t.query=e}},slot:"buttons"})],1),e("k-tabs",{attrs:{tab:t.currentType.id,tabs:t.tabs}}),e("div",{staticClass:"k-search-view-results"},[e("k-collection",{attrs:{items:t.results,empty:{icon:t.isLoading?"loader":"search",text:t.empty},pagination:t.pagination},on:{paginate:t.onPaginate}})],1)],1)},[]).exports;const ol=ut({props:{api:String,blueprint:String,buttons:Array,id:String,link:String,lock:{type:[Boolean,Object]},model:Object,next:Object,prev:Object,permissions:{type:Object,default:()=>({})},tab:{type:Object,default:()=>({columns:[]})},tabs:{type:Array,default:()=>[]},uuid:String,versions:Object},data:()=>({isSaved:!0}),computed:{content(){return this.versions.changes},diff(){return this.$panel.content.diff()},editor(){return this.lock.user.email},hasDiff(){return this.$panel.content.hasDiff()},isLocked(){return this.lock.isLocked},isSaving(){return this.$panel.content.isProcessing},modified(){return this.lock.modified}},mounted(){this.$events.on("beforeunload",this.onBeforeUnload),this.$events.on("content.save",this.onContentSave),this.$events.on("keydown.left",this.toPrev),this.$events.on("keydown.right",this.toNext),this.$events.on("model.reload",this.$reload),this.$events.on("view.save",this.onViewSave)},destroyed(){this.$events.off("beforeunload",this.onBeforeUnload),this.$events.off("content.save",this.onContentSave),this.$events.off("keydown.left",this.toPrev),this.$events.off("keydown.right",this.toNext),this.$events.off("model.reload",this.$reload),this.$events.off("view.save",this.onViewSave)},methods:{onBeforeUnload(t){!0!==this.$panel.content.isProcessing&&!1!==this.isSaved||(t.preventDefault(),t.returnValue="")},onContentSave({api:t,language:e}){t===this.api&&e===this.$panel.language.code&&(this.isSaved=!0)},async onDiscard(){await this.$panel.content.discard({api:this.api,language:this.$panel.language.code}),this.$panel.view.refresh()},onInput(t){this.$panel.content.updateLazy(t,{api:this.api,language:this.$panel.language.code})},async onSubmit(){try{await this.$panel.content.publish(this.content,{api:this.api,language:this.$panel.language.code}),this.$panel.notification.success(),this.$events.emit("model.update"),await this.$panel.view.refresh()}catch(t){this.$panel.notification.error(t)}},onViewSave(t){var e;null==(e=null==t?void 0:t.preventDefault)||e.call(t),this.onSubmit()},toNext(t){this.next&&"body"===t.target.localName&&this.$go(this.next.link)},toPrev(t){this.prev&&"body"===t.target.localName&&this.$go(this.prev.link)}}},null,null).exports;const rl=ut({extends:ol,props:{extension:String,filename:String,mime:String,preview:Object,type:String,url:String},methods:{onAction(t){if("replace"===t)return this.$panel.upload.replace({extension:this.extension,filename:this.filename,image:this.preview.image,link:this.link,mime:this.mime,url:this.url})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-file-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-file-view-header",attrs:{editable:t.permissions.changeName&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeName")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons},on:{action:t.onAction}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t._v(" "+t._s(t.filename)+" ")]),e("k-file-preview",t._b({attrs:{content:t.content,"is-locked":t.isLocked},on:{input:t.onInput,submit:t.onSubmit}},"k-file-preview",t.preview,!1)),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("file.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const al=ut({props:{component:String,content:Object,isLocked:Boolean,props:Object},emits:["input","submit"],computed:{preview(){return this.$helper.isComponent(this.component)?this.component:"k-default-file-preview"}}},function(){var t=this;return(0,t._self._c)(t.preview,t._b({tag:"component",staticClass:"k-file-preview",attrs:{content:t.content,"is-locked":t.isLocked},on:{input:function(e){return t.$emit("input",e)},submit:function(e){return t.$emit("submit",e)}}},"component",t.props,!1))},[]).exports;const ll=ut({props:{details:{default:()=>[],type:Array}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-preview-details"},[e("dl",[t._l(t.details,function(s){return e("div",{key:s.title},[e("dt",[t._v(t._s(s.title))]),e("dd",[s.link?e("k-link",{attrs:{to:s.link,tabindex:"-1",target:"_blank"}},[t._v(" "+t._s(s.text)+" ")]):[t._v(" "+t._s(s.text)+" ")]],2)])}),t._t("default")],2)])},[]).exports;const cl=ut({props:{options:{default:()=>[],type:Array}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-file-preview-frame-column"},[e("div",{staticClass:"k-file-preview-frame"},[t._t("default"),t.options.length?[e("k-button",{staticClass:"k-file-preview-frame-dropdown-toggle",attrs:{icon:"dots",size:"xs"},on:{click:function(e){return t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:t.options,theme:"light"},on:{action:function(e){return t.$emit("action",e)}}})]:t._e()],2)])},[]).exports;const ul=ut({props:{details:Array,image:{default:()=>({}),type:Object}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview"},[e("k-file-preview-frame",[e("k-icon",{staticClass:"k-item-icon",attrs:{color:t.$helper.color(t.image.color),type:t.image.icon}})],1),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const pl=ut({props:{details:Array,url:String}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-audio-file-preview"},[e("audio",{attrs:{controls:"",preload:"metadata",src:t.url}}),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const dl=ut({props:{content:{default:()=>({}),type:Object},details:Array,focusable:Boolean,image:{default:()=>({}),type:Object},isLocked:Boolean,url:String},emits:["focus","input"],computed:{focus(){const t=this.content.focus;if(!t)return;const[e,s]=t.replaceAll("%","").split(" ");return{x:parseFloat(e),y:parseFloat(s)}},hasFocus(){return Boolean(this.focus)},isFocusable(){return!0===this.focusable&&!0!==this.isLocked},options(){return[{icon:"open",text:this.$t("open"),link:this.url,target:"_blank"},{icon:"cancel",text:this.$t("file.focus.reset"),click:()=>this.setFocus(void 0),when:this.isFocusable&&this.hasFocus},{icon:"preview",text:this.$t("file.focus.placeholder"),click:()=>this.setFocus({x:50,y:50}),when:this.isFocusable&&!this.hasFocus}]}},methods:{setFocus(t){if(!1===this.isFocusable)return!1;t?!0===this.$helper.object.isObject(t)&&(t=`${t.x.toFixed(1)}% ${t.y.toFixed(1)}%`):t=null,this.$emit("input",{focus:t})}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview k-image-file-preview",attrs:{"data-has-focus":t.hasFocus}},[e("k-file-preview-frame",{attrs:{options:t.options}},[e("k-coords-input",{attrs:{disabled:!t.isFocusable,value:t.focus},on:{input:function(e){return t.setFocus(e)}}},[e("img",t._b({on:{dragstart:function(t){t.preventDefault()}}},"img",t.image,!1))])],1),e("k-file-preview-details",{attrs:{details:t.details}},[t.image.src?e("div",{staticClass:"k-image-file-preview-focus"},[e("dt",[t._v(t._s(t.$t("file.focus.title")))]),e("dd",[t.isFocusable?e("k-button",{ref:"focus",attrs:{icon:t.focus?"cancel-small":"preview",title:t.focus?t.$t("file.focus.reset"):void 0,size:"xs",variant:"filled"},on:{click:function(e){t.focus?t.setFocus(void 0):t.setFocus({x:50,y:50})}}},[t.hasFocus?[t._v(t._s(t.focus.x)+"% "+t._s(t.focus.y)+"%")]:[t._v(t._s(t.$t("file.focus.placeholder")))]],2):t.hasFocus?[t._v(" "+t._s(t.focus.x)+"% "+t._s(t.focus.y)+"% ")]:[t._v("–")]],2)]):t._e()])],1)},[]).exports;const hl=ut({props:{details:Array,image:{default:()=>({}),type:Object},url:String},computed:{supported:()=>window.navigator.pdfViewerEnabled}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-default-file-preview k-pdf-file-preview",attrs:{"data-supported":t.supported}},[e("object",{staticClass:"k-pdf-file-preview-object",attrs:{data:t.url,type:"application/pdf"}},[e("k-file-preview-frame",[e("a",{attrs:{href:t.url}},[e("k-icon",{staticClass:"k-item-icon",attrs:{color:t.$helper.color(t.image.color),type:t.image.icon}})],1)])],1),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports;const ml=ut({props:{details:Array,url:String},computed:{options(){return[{icon:"download",text:this.$t("download"),link:this.url,download:!0}]}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-video-file-preview"},[e("k-file-preview-frame",{attrs:{options:t.options}},[e("video",{attrs:{controls:"",preload:"metadata",src:t.url}})]),e("k-file-preview-details",{attrs:{details:t.details}})],1)},[]).exports,fl={install(t){t.component("k-file-view",rl),t.component("k-file-preview",al),t.component("k-file-preview-details",ll),t.component("k-file-preview-frame",cl),t.component("k-default-file-preview",ul),t.component("k-audio-file-preview",pl),t.component("k-image-file-preview",dl),t.component("k-pdf-file-preview",hl),t.component("k-video-file-preview",ml)}};const gl=ut({props:{isInstallable:Boolean,isInstalled:Boolean,isOk:Boolean,requirements:Object,translations:Array},data(){return{user:{name:"",email:"",language:this.$panel.translation.code,password:"",role:"admin"}}},computed:{fields(){return{email:{label:this.$t("email"),type:"email",link:!1,autofocus:!0,required:!0},password:{label:this.$t("password"),type:"password",placeholder:this.$t("password")+" …",required:!0},language:{label:this.$t("language"),type:"select",options:this.translations,icon:"translate",empty:!1,required:!0}}},isReady(){return this.isOk&&this.isInstallable},isComplete(){return this.isOk&&this.isInstalled}},methods:{async install(){try{await this.$api.system.install(this.user),await this.$reload({globals:["$system","$translation"]}),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"})}catch(t){this.$panel.error(t)}}}},function(){var t=this,e=t._self._c;return e("k-panel-outside",{staticClass:"k-installation-view"},[e("div",{staticClass:"k-dialog k-installation-dialog"},[e("k-dialog-body",[t.isComplete?e("k-text",[e("k-headline",[t._v(t._s(t.$t("installation.completed")))]),e("k-link",{attrs:{to:"/login"}},[t._v(" "+t._s(t.$t("login"))+" ")])],1):t.isReady?e("form",{on:{submit:function(e){return e.preventDefault(),t.install.apply(null,arguments)}}},[e("h1",{staticClass:"sr-only"},[t._v(" "+t._s(t.$t("installation"))+" ")]),e("k-fieldset",{attrs:{fields:t.fields,value:t.user},on:{input:function(e){t.user=e}}}),e("k-button",{attrs:{text:t.$t("install"),icon:"check",size:"lg",theme:"positive",type:"submit",variant:"filled"}})],1):e("div",[e("k-headline",[t._v(" "+t._s(t.$t("installation.issues.headline"))+" ")]),e("ul",{staticClass:"k-installation-issues",attrs:{"data-theme":"negative"}},[!1===t.isInstallable?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.disabled"))}})],1):t._e(),!1===t.requirements.php?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.php"))}})],1):t._e(),!1===t.requirements.server?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.server"))}})],1):t._e(),!1===t.requirements.mbstring?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.mbstring"))}})],1):t._e(),!1===t.requirements.curl?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.curl"))}})],1):t._e(),!1===t.requirements.accounts?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.accounts"))}})],1):t._e(),!1===t.requirements.content?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.content"))}})],1):t._e(),!1===t.requirements.media?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.media"))}})],1):t._e(),!1===t.requirements.sessions?e("li",[e("k-icon",{attrs:{type:"alert"}}),e("span",{domProps:{innerHTML:t._s(t.$t("installation.issues.sessions"))}})],1):t._e()]),e("k-button",{attrs:{text:t.$t("retry"),icon:"refresh",size:"lg",theme:"positive",variant:"filled"},on:{click:t.$reload}})],1)],1)],1)])},[]).exports,kl={install(t){t.component("k-installation-view",gl)}};const bl=ut({props:{buttons:Array,languages:{type:Array,default:()=>[]},variables:{type:Boolean,default:!0}},computed:{languagesCollection(){return this.languages.map(t=>({...t,image:{back:"black",color:"gray",icon:"translate"},link:()=>{if(!1===this.variables)return null;this.$go(`languages/${t.id}`)},options:[{icon:"edit",text:this.$t("edit"),disabled:!1===this.variables,click:()=>this.$go(`languages/${t.id}`)},{icon:"cog",text:this.$t("settings"),disabled:!this.$panel.permissions.languages.update,click:()=>this.$dialog(`languages/${t.id}/update`)},{when:t.deletable,icon:"trash",text:this.$t("delete"),disabled:!this.$panel.permissions.languages.delete,click:()=>this.$dialog(`languages/${t.id}/delete`)}]}))},primaryLanguage(){return this.languagesCollection.filter(t=>t.default)},secondaryLanguages(){return this.languagesCollection.filter(t=>!1===t.default)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-languages-view"},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.languages"))+" ")]),t.languages.length>0?[e("k-section",{attrs:{headline:t.$t("languages.default")}},[e("k-collection",{attrs:{items:t.primaryLanguage}})],1),e("k-section",{attrs:{headline:t.$t("languages.secondary")}},[t.secondaryLanguages.length?e("k-collection",{attrs:{items:t.secondaryLanguages}}):e("k-empty",{attrs:{icon:"translate",disabled:!t.$panel.permissions.languages.create},on:{click:function(e){return t.$dialog("languages/create")}}},[t._v(" "+t._s(t.$t("languages.secondary.empty"))+" ")])],1)]:0===t.languages.length?[e("k-empty",{attrs:{icon:"translate",disabled:!t.$panel.permissions.languages.create},on:{click:function(e){return t.$dialog("languages/create")}}},[t._v(" "+t._s(t.$t("languages.empty"))+" ")])]:t._e()],2)},[]).exports;const yl=ut({props:{buttons:Array,code:String,deletable:Boolean,direction:String,id:String,info:Array,next:Object,name:String,prev:Object,translations:Array,url:String},computed:{canUpdate(){return this.$panel.permissions.languages.update}},methods:{createTranslation(){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/create`)},option(t,e){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/${window.btoa(encodeURIComponent(e.key))}/${t}`)},updateTranslation({row:t}){this.canUpdate&&this.$dialog(`languages/${this.id}/translations/${window.btoa(encodeURIComponent(t.key))}/update`)}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-language-view",scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{attrs:{editable:t.canUpdate},on:{edit:function(e){return t.$dialog(`languages/${t.id}/update`)}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.name)+" ")]),e("k-section",{attrs:{headline:t.$t("language.settings")}},[e("k-stats",{attrs:{reports:t.info,size:"small"}})],1),e("k-section",{attrs:{buttons:[{click:t.createTranslation,disabled:!t.canUpdate,icon:"add",text:t.$t("add")}],headline:t.$t("language.variables")}},[t.translations.length?[e("k-table",{attrs:{columns:{key:{label:t.$t("language.variable.key"),mobile:!0,width:"1/4"},value:{label:t.$t("language.variable.value"),mobile:!0}},disabled:!t.canUpdate,rows:t.translations},on:{cell:t.updateTranslation,option:t.option}})]:[e("k-empty",{attrs:{disabled:!t.canUpdate,icon:"translate"},on:{click:t.createTranslation}},[t._v(" "+t._s(t.$t("language.variables.empty"))+" ")])]],2)],1)},[]).exports,vl={install(t){t.component("k-languages-view",bl),t.component("k-language-view",yl)}};const $l=ut({emits:["click"]},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-notification k-login-alert",attrs:{"data-theme":"error"}},[e("p",[t._t("default")],2),e("k-button",{attrs:{icon:"cancel"},on:{click:function(e){return t.$emit("click")}}})],1)},[]).exports,wl={props:{methods:{type:Array,default:()=>[]},pending:{type:Object,default:()=>({challenge:"email"})},value:String}};const xl=ut({mixins:[wl],emits:["error"],data(){return{code:this.value??"",isLoading:!1}},computed:{mode(){return this.methods.includes("password-reset")?"password-reset":"login"},submitText(){const t=this.isLoading?" …":"";return"password-reset"===this.mode?this.$t("login.reset")+t:this.$t("login")+t}},methods:{async login(){this.$emit("error",null),this.isLoading=!0;try{await this.$api.auth.verifyCode(this.code),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"}),"password-reset"===this.mode?this.$go("reset-password"):this.$reload()}catch(t){this.$emit("error",t)}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return e("form",{staticClass:"k-login-form k-login-code-form",on:{submit:function(e){return e.preventDefault(),t.login.apply(null,arguments)}}},[t.pending.email?e("k-user-info",{attrs:{user:t.pending.email}}):t._e(),e("k-text-field",{attrs:{autofocus:!0,counter:!1,help:t.$t("login.code.text."+t.pending.challenge),label:t.$t("login.code.label."+t.mode),placeholder:t.$t("login.code.placeholder."+t.pending.challenge),required:!0,value:t.code,autocomplete:"one-time-code",icon:"unlock",name:"code"},on:{input:function(e){t.code=e}}}),e("footer",{staticClass:"k-login-buttons"},[e("k-button",{staticClass:"k-login-button k-login-back-button",attrs:{text:t.$t("back"),icon:"angle-left",link:"/logout",size:"lg",variant:"filled"}}),e("k-button",{staticClass:"k-login-button",attrs:{text:t.submitText,icon:"check",size:"lg",type:"submit",theme:"positive",variant:"filled"}})],1)],1)},[]).exports,_l={props:{methods:{type:Array,default:()=>[]},value:{type:Object,default:()=>({})}}};const Sl=ut({mixins:[_l],emits:["error"],data(){return{mode:null,isLoading:!1,user:{email:"",password:"",remember:!1,...this.value}}},computed:{alternateMode(){return"email-password"===this.form?"email":"email-password"},canToggle(){return null!==this.codeMode&&(!1!==this.methods.includes("password")&&(!0===this.methods.includes("password-reset")||!0===this.methods.includes("code")))},codeMode(){return!0===this.methods.includes("password-reset")?"password-reset":!0===this.methods.includes("code")?"code":null},fields(){const t={email:{autofocus:!0,label:this.$t("email"),type:"email",required:!0,link:!1}};return"email-password"===this.form&&(t.password={label:this.$t("password"),type:"password",minLength:8,required:!0,autocomplete:"current-password",counter:!1}),t},form(){return this.mode?this.mode:"password"===this.methods[0]?"email-password":"email"},isResetForm(){return"password-reset"===this.codeMode&&"email"===this.form},submitText(){const t=this.isLoading?" …":"";return this.isResetForm?this.$t("login.reset")+t:this.$t("login")+t},toggleText(){return this.$t("login.toggleText."+this.codeMode+"."+this.alternateMode)}},methods:{async login(){this.$emit("error",null),this.isLoading=!0;const t={...this.user};"email"===this.mode&&(t.password=null),!0===this.isResetForm&&(t.remember=!1);try{await this.$api.auth.login(t),this.$reload({globals:["$system","$translation"]}),this.$panel.notification.success({message:this.$t("welcome")+"!",icon:"smile"})}catch(e){this.$emit("error",e)}finally{this.isLoading=!1}},toggle(){this.mode=this.alternateMode,this.$refs.fieldset.focus("email")}}},function(){var t=this,e=t._self._c;return e("form",{staticClass:"k-login-form",on:{submit:function(e){return e.preventDefault(),t.login.apply(null,arguments)}}},[e("div",{staticClass:"k-login-fields"},[!0===t.canToggle?e("button",{staticClass:"k-login-toggler",attrs:{type:"button"},on:{click:t.toggle}},[t._v(" "+t._s(t.toggleText)+" ")]):t._e(),e("k-fieldset",{ref:"fieldset",attrs:{fields:t.fields,value:t.user},on:{input:function(e){t.user=e}}})],1),e("footer",{staticClass:"k-login-buttons"},[!1===t.isResetForm?e("k-checkbox-input",{attrs:{label:t.$t("login.remember"),checked:t.user.remember,value:t.user.remember},on:{input:function(e){t.user.remember=e}}}):t._e(),e("k-button",{staticClass:"k-login-button",attrs:{icon:"check",size:"lg",theme:"positive",type:"submit",variant:"filled"}},[t._v(" "+t._s(t.submitText)+" ")])],1)])},[]).exports;const Cl=ut({components:{"k-login-plugin-form":window.panel.plugins.login},mixins:[wl,_l],props:{value:{type:Object,default:()=>({code:"",email:"",password:""})}},data:()=>({issue:""}),computed:{component:()=>window.panel.plugins.login?"k-login-plugin-form":"k-login-form",form(){return this.pending.email?"code":"login"}},methods:{async onError(t){null!==t?(!0===t.details.challengeDestroyed&&await this.$reload({globals:["$system"]}),this.issue=t.message):this.issue=null}}},function(){var t=this,e=t._self._c;return e("k-panel-outside",{class:"code"===t.form?"k-login-code-view":"k-login-view"},[e("div",{staticClass:"k-dialog k-login k-login-dialog"},[e("h1",{staticClass:"sr-only"},[t._v(" "+t._s(t.$t("login"))+" ")]),t.issue?e("k-login-alert",{nativeOn:{click:function(e){t.issue=null}}},[t._v(" "+t._s(t.issue)+" ")]):t._e(),e("k-dialog-body",["code"===t.form?e("k-login-code-form",t._b({on:{error:t.onError}},"k-login-code-form",{methods:t.methods,pending:t.pending,value:t.value.code},!1)):e(t.component,t._b({tag:"component",on:{error:t.onError}},"component",{methods:t.methods,value:t.value},!1))],1)],1)])},[]).exports,Ol={install(t){t.component("k-login-alert",$l),t.component("k-login-code-form",xl),t.component("k-login-form",Sl),t.component("k-login-view",Cl),t.component("k-login",Sl),t.component("k-login-code",xl)}};const Al=ut({extends:ol,props:{title:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-page-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-page-view-header",attrs:{editable:t.permissions.changeTitle&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeTitle")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,preview:!!t.permissions.preview&&t.api+"/preview/changes"},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t._v(" "+t._s(t.title)+" ")]),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("page.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const Ml=ut({extends:ol,props:{title:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-site-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint}},[e("k-header",{staticClass:"k-site-view-header",attrs:{editable:t.permissions.changeTitle&&!t.isLocked},on:{edit:function(e){return t.$dialog(t.api+"/changeTitle")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,preview:!!t.permissions.preview&&t.api+"/preview/changes"},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t.title&&0!==t.title.length?[t._v(" "+t._s(t.title)+" ")]:e("span",{staticClass:"k-header-title-placeholder"},[t._v(" "+t._s(t.$t("view.site"))+" … ")])],2),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("site.blueprint"),lock:t.lock,tab:t.tab,parent:"site"},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports,Dl={install(t){t.component("k-page-view",Al),t.component("k-site-view",Ml)}};const El=ut({mixins:[He],props:{label:String,src:String,versionId:String},emits:["discard","submit"],computed:{srcWithPreviewParam(){const t=new URL(this.src,this.$panel.urls.site);return t.searchParams.append("_preview",!0),t.toString()}},mounted(){this.$events.on("content.discard",this.reload),this.$events.on("content.publish",this.reload)},destroyed(){this.$events.off("content.discard",this.reload),this.$events.off("content.publish",this.reload)},methods:{reload(){this.$refs.browser.contentWindow.location.reload()}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-preview-browser"},[e("header",{staticClass:"k-preview-browser-header"},[e("k-headline",[e("k-icon",{attrs:{type:"git-branch"}}),t._v(" "+t._s(t.label)+" ")],1),e("k-button-group",["changes"===t.versionId?[!1===t.hasDiff?e("p",{staticClass:"k-preview-browser-message"},[t._v(" "+t._s(t.$t("lock.unsaved.empty"))+" ")]):e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified,size:"xs"},on:{discard:function(e){return t.$emit("discard",e)},submit:function(e){return t.$emit("submit",e)}}})]:t._e(),e("k-button",{attrs:{link:t.src,icon:"open",size:"xs",target:"_blank"}})],2)],1),e("iframe",{ref:"browser",attrs:{src:t.srcWithPreviewParam}})])},[]).exports;const jl=ut({extends:ol,props:{back:String,versionId:String,src:Object,title:String},mounted(){this.$events.on("keydown.esc",this.exit)},destroyed(){this.$events.off("keydown.esc",this.exit)},methods:{browserProps(t){return{editor:this.editor,hasDiff:this.hasDiff,isLocked:this.isLocked,modified:this.modified,label:this.$t("version."+t),src:this.src[t],versionId:t}},exit(){this.$panel.overlays().length>0||this.$panel.view.open(this.link)},navigate(t){if(t.id===this.id)return;if(this.$refs.tree.close(),"/"===t.id)return this.$panel.view.open("site/preview/"+this.versionId);const e=this.$api.pages.url(t.id,"preview/"+this.versionId);this.$panel.view.open(e)}}},function(){var t=this,e=t._self._c;return e("k-panel",{staticClass:"k-panel-inside k-preview-view",attrs:{"data-version-id":t.versionId}},[e("header",{staticClass:"k-preview-view-header"},[e("k-button-group",[e("k-button",{attrs:{link:t.back,responsive:!0,title:t.$t("back"),icon:"angle-left",size:"sm",variant:"filled"}}),e("k-button",{staticClass:"k-preview-view-title",attrs:{icon:t.$panel.isLoading?"loader":"title",dropdown:!0},on:{click:function(e){return t.$refs.tree.toggle()}}},[t._v(" "+t._s(t.title)+" ")]),e("k-dropdown-content",{ref:"tree",staticClass:"k-preview-view-tree",attrs:{theme:"dark"}},[e("k-page-tree",{attrs:{current:t.id},on:{select:t.navigate},nativeOn:{click:function(t){t.stopPropagation()}}})],1)],1),e("k-button-group",[e("k-view-buttons",{attrs:{buttons:t.buttons}})],1)],1),e("main",{staticClass:"k-preview-view-grid"},["compare"===t.versionId?[e("k-preview-browser",t._b({on:{discard:t.onDiscard,submit:t.onSubmit}},"k-preview-browser",t.browserProps("latest"),!1)),e("k-preview-browser",t._b({on:{discard:t.onDiscard,submit:t.onSubmit}},"k-preview-browser",t.browserProps("changes"),!1))]:[e("k-preview-browser",t._b({on:{discard:t.onDiscard,submit:t.onSubmit}},"k-preview-browser",t.browserProps(t.versionId),!1))]],2)])},[]).exports,Il={install(t){t.component("k-preview-browser",El),t.component("k-preview-view",jl)}};const Bl=ut({extends:ol,props:{avatar:String,canChangeEmail:Boolean,canChangeLanguage:Boolean,canChangeName:Boolean,canChangeRole:Boolean,email:String,language:String,name:String,role:String}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-user-view",attrs:{"data-id":t.id,"data-locked":t.isLocked,"data-template":t.blueprint},scopedSlots:t._u([{key:"topbar",fn:function(){return[e("k-prev-next",{attrs:{prev:t.prev,next:t.next}})]},proxy:!0}])},[e("k-header",{staticClass:"k-user-view-header",attrs:{editable:t.canChangeName},on:{edit:function(e){return t.$dialog(t.api+"/changeName")}},scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}}),e("k-form-controls",{attrs:{editor:t.editor,"has-diff":t.hasDiff,"is-locked":t.isLocked,"is-processing":t.isSaving,modified:t.modified},on:{discard:t.onDiscard,submit:t.onSubmit}})]},proxy:!0}])},[t.name&&0!==t.name.length?[t._v(" "+t._s(t.name)+" ")]:e("span",{staticClass:"k-header-title-placeholder k-user-name-placeholder"},[t._v(" "+t._s(t.$t("name"))+" … ")])],2),e("k-user-profile",{attrs:{id:t.id,api:t.api,avatar:t.avatar,email:t.email,"can-change-email":t.canChangeEmail,"can-change-language":t.canChangeLanguage,"can-change-name":t.canChangeName,"can-change-role":t.canChangeRole,"is-locked":t.isLocked,language:t.language,role:t.role}}),e("k-model-tabs",{attrs:{diff:t.diff,tab:t.tab.name,tabs:t.tabs}}),e("k-sections",{attrs:{blueprint:t.blueprint,content:t.content,empty:t.$t("user.blueprint",{blueprint:t.$esc(t.blueprint)}),lock:t.lock,parent:t.api,tab:t.tab},on:{input:t.onInput,submit:t.onSubmit}})],1)},[]).exports;const Ll=ut({extends:Bl,prevnext:!1},null,null).exports;const Tl=ut({props:{requirePassword:{type:Boolean,default:!1}},data:()=>({isLoading:!1,values:{currentPassword:null,password:null,passwordConfirmation:null}}),computed:{fields(){let t={};return!0===this.requirePassword&&(t={currentPassword:{autofocus:!0,label:this.$t("user.changePassword.current"),icon:"key",type:"password",width:"1/2"},gap:{type:"gap",width:"1/2"}}),{...t,password:{autofocus:!1===this.requirePassword,label:this.$t("user.changePassword.new"),icon:"key",type:"password",width:"1/2"},passwordConfirmation:{label:this.$t("user.changePassword.new.confirm"),icon:"key",type:"password",width:"1/2"}}}},mounted(){this.$panel.title=this.$t("view.resetPassword")},methods:{async submit(){if(!this.values.password||this.values.password.length<8)return this.$panel.notification.error(this.$t("error.user.password.invalid"));if(this.values.password!==this.values.passwordConfirmation)return this.$panel.notification.error(this.$t("error.user.password.notSame"));this.isLoading=!0;try{await this.$api.users.changePassword(this.$panel.user.id,this.values.password,this.values.currentPassword),this.$panel.notification.success(),this.$go("/")}catch(t){this.$panel.notification.error(t)}finally{this.isLoading=!1}}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-password-reset-view"},[e("form",{on:{submit:function(e){return e.preventDefault(),t.submit.apply(null,arguments)}}},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-button",{attrs:{icon:"check",theme:"notice",type:"submit",variant:"filled",size:"sm"}},[t._v(" "+t._s(t.$t("change"))+" "),t.isLoading?[t._v(" … ")]:t._e()],2)]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.resetPassword"))+" ")]),e("k-user-info",{attrs:{user:t.$panel.user}}),e("k-fieldset",{attrs:{fields:t.fields,value:t.values}})],1)])},[]).exports;const Pl=ut({props:{api:String,avatar:String,id:String,isLocked:Boolean},methods:{open(){this.avatar?this.$refs.dropdown.toggle():this.upload()},async remove(){await this.$api.users.deleteAvatar(this.id),this.$panel.notification.success(),this.$reload()},upload(){this.$panel.upload.pick({url:this.$panel.urls.api+"/"+this.api+"/avatar",accept:"image/*",immediate:!0,multiple:!1,on:{done:()=>{this.$panel.view.reload()}}})}}},function(){var t=this,e=t._self._c;return e("k-button",{staticClass:"k-user-view-image",attrs:{disabled:t.isLocked,title:t.$t("avatar")},on:{click:t.open}},[t.avatar?[e("k-image-frame",{attrs:{cover:!0,src:t.avatar}}),e("k-dropdown-content",{ref:"dropdown",attrs:{options:[{icon:"upload",text:t.$t("change"),click:t.upload},{icon:"trash",text:t.$t("delete"),click:t.remove}]}})]:e("k-icon-frame",{attrs:{icon:"user"}})],2)},[]).exports;const ql=ut({props:{user:[Object,String]}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-user-info"},[t.user.avatar?e("k-image-frame",{attrs:{cover:!0,src:t.user.avatar.url,ratio:"1/1"}}):e("k-icon-frame",{attrs:{color:"white",back:"black",icon:"user"}}),t._v(" "+t._s(t.user.name??t.user.email??t.user)+" ")],1)},[]).exports;const Nl=ut({props:{api:String,avatar:String,canChangeEmail:Boolean,canChangeLanguage:Boolean,canChangeRole:Boolean,email:String,id:String,isLocked:Boolean,language:String,role:String}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-user-profile"},[e("k-user-avatar",{attrs:{id:t.id,api:t.api,avatar:t.avatar,"is-locked":t.isLocked}}),e("k-button-group",{attrs:{buttons:[{icon:"email",text:t.email,title:`${t.$t("email")}: ${t.email}`,disabled:!t.canChangeEmail,click:()=>t.$dialog(t.api+"/changeEmail")},{icon:"bolt",text:t.role,title:`${t.$t("role")}: ${t.role}`,disabled:!t.canChangeRole,click:()=>t.$dialog(t.api+"/changeRole")},{icon:"translate",text:t.language,title:`${t.$t("language")}: ${t.language}`,disabled:!t.canChangeLanguage,click:()=>t.$dialog(t.api+"/changeLanguage")}]}})],1)},[]).exports;const Fl=ut({props:{buttons:Array,role:Object,roles:Array,search:String,title:String,users:Object},computed:{empty(){return{icon:"users",text:this.$t("role.empty")}},items(){return this.users.data.map(t=>(t.options=this.$dropdown(t.link),t))},tabs(){const t=[{name:"all",label:this.$t("role.all"),link:"/users"}];for(const e of this.roles)t.push({name:e.id,label:e.title,link:"/users?role="+e.id});return t}},methods:{create(){var t;this.$dialog("users/create",{query:{role:null==(t=this.role)?void 0:t.id}})},paginate(t){this.$reload({query:{page:t.page}})}}},function(){var t,e=this,s=e._self._c;return s("k-panel-inside",{staticClass:"k-users-view"},[s("k-header",{staticClass:"k-users-view-header",scopedSlots:e._u([{key:"buttons",fn:function(){return[s("k-view-buttons",{attrs:{buttons:e.buttons}})]},proxy:!0}])},[e._v(" "+e._s(e.$t("view.users"))+" ")]),s("k-tabs",{attrs:{tab:(null==(t=e.role)?void 0:t.id)??"all",tabs:e.tabs}}),s("k-collection",{attrs:{empty:e.empty,items:e.items,pagination:e.users.pagination},on:{paginate:e.paginate}})],1)},[]).exports,zl={install(t){t.component("k-account-view",Ll),t.component("k-reset-password-view",Tl),t.component("k-user-avatar",Pl),t.component("k-user-info",ql),t.component("k-user-profile",Nl),t.component("k-user-view",Bl),t.component("k-users-view",Fl)}};const Yl=ut({props:{plugins:Array}},function(){var t=this,e=t._self._c;return t.plugins.length?e("k-section",{attrs:{headline:t.$t("plugins"),link:"https://getkirby.com/plugins"}},[e("k-table",{attrs:{index:!1,columns:{name:{label:t.$t("name"),type:"url",mobile:!0},author:{label:t.$t("author")},license:{label:t.$t("license"),type:"license"},status:{label:t.$t("license.status"),type:"license-status"},version:{label:t.$t("version"),type:"update-status",mobile:!0,width:"10rem"}},rows:t.plugins}})],1):t._e()},[]).exports,Rl={props:{exceptions:{type:Array,default:()=>[]},security:{type:Array,default:()=>[]},urls:{type:[Object,Array],default:()=>({})}},data(){return{issues:this.$helper.object.clone(this.security)}},async mounted(){console.info("Running system health checks for the Panel system view; failed requests in the following console output are expected behavior.");const t=(Promise.allSettled??Promise.all).bind(Promise),e=Object.entries(this.urls??{}).map(this.check);await t(e),console.info(`System health checks ended. ${this.issues.length-this.security.length} issues with accessible files/folders found (see the security list in the system view).`)},methods:{async check([t,e]){if(!e)return;const{status:s}=await fetch(e,{cache:"no-store"});s<400&&this.issues.push({id:t,text:this.$t("system.issues."+t),link:"https://getkirby.com/security/"+t,icon:"folder"})},retry(){this.$go(window.location.href)}}};const Hl=ut({components:{Plugins:Yl,Security:ut(Rl,function(){var t=this,e=t._self._c;return t.issues.length?e("k-section",{attrs:{headline:t.$t("security"),buttons:[{title:t.$t("retry"),icon:"refresh",click:t.retry}]}},[e("k-items",{attrs:{items:t.issues.map(t=>({theme:"negative",image:{back:"light-dark(var(--theme-color-200), var(--theme-color-900))",icon:t.icon??"alert",color:"var(--theme-color-icon)"},target:"_blank",...t}))}})],1):t._e()},[]).exports},props:{buttons:Array,environment:Array,exceptions:Array,info:Object,plugins:Array,security:Array,urls:[Object,Array]},mounted(){this.exceptions.length>0&&(console.info("The following errors occurred during the update check of Kirby and/or plugins:"),this.exceptions.map(t=>console.warn(t)),console.info("End of errors from the update check."))},methods:{copy(){const t=JSON.stringify({info:this.info,security:this.security.map(t=>t.text),plugins:this.plugins.map(t=>({name:t.name.text,version:t.version.currentVersion}))},null,2);this.$helper.clipboard.write(t),this.$panel.notification.success({message:this.$t("system.info.copied")})}}},function(){var t=this,e=t._self._c;return e("k-panel-inside",{staticClass:"k-system-view"},[e("k-header",{scopedSlots:t._u([{key:"buttons",fn:function(){return[e("k-view-buttons",{attrs:{buttons:t.buttons}})]},proxy:!0}])},[t._v(" "+t._s(t.$t("view.system"))+" ")]),e("k-section",{attrs:{headline:t.$t("environment"),buttons:[{text:t.$t("system.info.copy"),icon:"copy",responsive:!0,click:t.copy}]}},[e("k-stats",{staticClass:"k-system-info",attrs:{reports:t.environment,size:"medium"}})],1),e("security",{attrs:{security:t.security,urls:t.urls}}),e("plugins",{attrs:{plugins:t.plugins}})],1)},[]).exports;const Ul=ut({inheritAttrs:!1,props:{value:Object}},function(){var t=this,e=t._self._c;return t.value.link?e("k-url-field-preview",{attrs:{value:{href:t.value.link,text:t.value.name}}}):e("k-text-field-preview",{attrs:{value:t.value.name}})},[]).exports;const Vl=ut({inheritAttrs:!1,props:{value:Object},computed:{element(){return this.value.dialog||this.value.drawer||this.value.link?null:"span"}}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-table-license-status-cell"},[e("k-button",{attrs:{dialog:t.value.dialog,drawer:t.value.drawer,element:t.element,icon:t.value.icon,link:t.value.link,theme:t.value.theme,size:"xs",target:"_blank"}},[t._v(" "+t._s(t.value.label)+" ")])],1)},[]).exports;const Kl=ut({props:{value:[String,Object]}},function(){var t=this,e=t._self._c;return e("div",{staticClass:"k-table-update-status-cell"},["string"==typeof t.value?e("span",{staticClass:"k-table-update-status-cell-version"},[t._v(" "+t._s(t.value)+" ")]):[e("k-button",{staticClass:"k-table-update-status-cell-button",attrs:{dropdown:!0,icon:t.value.icon,href:t.value.url,text:t.value.currentVersion,theme:t.value.theme,size:"xs",variant:"filled"},on:{click:function(e){return e.stopPropagation(),t.$refs.dropdown.toggle()}}}),e("k-dropdown-content",{ref:"dropdown",attrs:{"align-x":"end"}},[e("dl",{staticClass:"k-plugin-info"},[e("dt",[t._v(t._s(t.$t("plugin")))]),e("dd",[t._v(t._s(t.value.pluginName))]),e("dt",[t._v(t._s(t.$t("version.current")))]),e("dd",[t._v(t._s(t.value.currentVersion))]),e("dt",[t._v(t._s(t.$t("version.latest")))]),e("dd",[t._v(t._s(t.value.latestVersion))]),e("dt",[t._v(t._s(t.$t("system.updateStatus")))]),e("dd",{attrs:{"data-theme":t.value.theme}},[t._v(t._s(t.value.label))])]),t.value.url?[e("hr"),e("k-button",{attrs:{icon:"open",link:t.value.url}},[t._v(" "+t._s(t.$t("versionInformation"))+" ")])]:t._e()],2)]],2)},[]).exports,Wl={install(t){t.component("k-system-view",Hl),t.component("k-table-license-cell",Ul),t.component("k-table-license-status-cell",Vl),t.component("k-table-update-status-cell",Kl)}},Jl={install(t){t.component("k-error-view",il),t.component("k-search-view",nl),t.use(fl),t.use(kl),t.use(vl),t.use(Ol),t.use(Dl),t.use(Il),t.use(Wl),t.use(zl)}},Gl={install(t){t.use(bt),t.use(ae),t.use(Ce),t.use(Pe),t.use(wr),t.use(Ar),t.use(Jr),t.use(oa),t.use(wa),t.use(ja),t.use(Pa),t.use(Ya),t.use(sl),t.use(Jl),t.use(F)}},Xl={install(t){window.onunhandledrejection=t=>{t.preventDefault(),window.panel.error(t.reason)},t.config.errorHandler=window.panel.error.bind(window.panel)}},Zl=(t={})=>{var e=t.desc?-1:1,s=-e,i=/^0/,n=/\s+/g,o=/^\s+|\s+$/g,r=/[^\x00-\x80]/,a=/^0x[0-9a-f]+$/i,l=/(0x[\da-fA-F]+|(^[\+\-]?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?(?=\D|\s|$))|\d+)/g,c=/(^([\w ]+,?[\w ]+)?[\w ]+,?[\w ]+\d+:\d+(:\d+)?[\w ]?|^\d{1,4}[\/\-]\d{1,4}[\/\-]\d{1,4}|^\w+, \w+ \d+, \d{4})/,u=t.insensitive?function(t){return function(t){if(t.toLocaleLowerCase)return t.toLocaleLowerCase();return t.toLowerCase()}(""+t).replace(o,"")}:function(t){return(""+t).replace(o,"")};function p(t){return t.replace(l,"\0$1\0").replace(/\0$/,"").replace(/^\0/,"").split("\0")}function d(t,e){return(!t.match(i)||1===e)&&parseFloat(t)||t.replace(n," ").replace(o,"")||0}return function(t,i){var n=u(t),o=u(i);if(!n&&!o)return 0;if(!n&&o)return s;if(n&&!o)return e;var l=p(n),h=p(o),m=parseInt(n.match(a),16)||1!==l.length&&Date.parse(n),f=parseInt(o.match(a),16)||m&&o.match(c)&&Date.parse(o)||null;if(f){if(mf)return e}for(var g=l.length,k=h.length,b=0,y=Math.max(g,k);b0)return e;if(w<0)return s;if(b===y-1)return 0}else{if(v<$)return s;if(v>$)return e}}return 0}};RegExp.escape=function(t){return t.replace(new RegExp("[-/\\\\^$*+?.()[\\]{}]","gu"),"\\$&")};function Ql(t){return Array.isArray(t)?t:[t]}const tc={fromObject:function(t){return Array.isArray(t)?t:Object.values(t??{})},search:(t,e,s={})=>{if((e??"").length<=(s.min??0))return t;const i=new RegExp(RegExp.escape(e),"ig"),n=s.field??"text",o=t.filter(t=>!!t[n]&&null!==t[n].match(i));return s.limit?o.slice(0,s.limit):o},sortBy:function(t,e){const s=e.split(" "),i=s[0],n=s[1]??"asc",o=Zl({desc:"desc"===n,insensitive:!0});return t.sort((t,e)=>{const s=String(t[i]??""),n=String(e[i]??"");return o(s,n)})},split:function(t,e){return t.reduce((t,s)=>(s===e?t.push([]):t[t.length-1].push(s),t),[[]])},wrap:Ql};const ec={read:function(t,e=!1){if(!t)return null;if("string"==typeof t)return t;if(t instanceof ClipboardEvent){if(t.preventDefault(),!0===e)return t.clipboardData.getData("text/plain");const s=t.clipboardData.getData("text/html")||t.clipboardData.getData("text/plain")||null;if(s)return s.replace(/\u00a0/g," ")}return null},write:function(t,e){if("string"!=typeof t&&(t=JSON.stringify(t,null,2)),e&&e instanceof ClipboardEvent)return e.preventDefault(),e.clipboardData.setData("text/plain",t),!0;const s=document.createElement("textarea");if(s.value=t,document.body.append(s),navigator.userAgent.match(/ipad|ipod|iphone/i)){s.contentEditable=!0,s.readOnly=!0;const t=document.createRange();t.selectNodeContents(s);const e=window.getSelection();e.removeAllRanges(),e.addRange(t),s.setSelectionRange(0,999999)}else s.select();return document.execCommand("copy"),s.remove(),!0}};function sc(t){if("string"==typeof t){if("pattern"===(t=t.toLowerCase()))return"var(--pattern)";if(!1===t.startsWith("#")&&!1===t.startsWith("var(")){const e="--color-"+t;if(window.getComputedStyle(document.documentElement).getPropertyValue(e))return`var(${e})`}return t}}function ic(t,e=!1){if(!t.match("youtu"))return!1;let s=null;try{s=new URL(t)}catch{return!1}const i=s.pathname.split("/").filter(t=>""!==t),n=i[0],o=i[1],r="https://"+(!0===e?"www.youtube-nocookie.com":s.host)+"/embed",a=t=>!!t&&null!==t.match(/^[a-zA-Z0-9_-]+$/);let l=s.searchParams,c=null;switch(i.join("/")){case"embed/videoseries":case"playlist":a(l.get("list"))&&(c=r+"/videoseries");break;case"watch":a(l.get("v"))&&(c=r+"/"+l.get("v"),l.has("t")&&l.set("start",l.get("t")),l.delete("v"),l.delete("t"));break;default:s.host.includes("youtu.be")&&a(n)?(c=!0===e?"https://www.youtube-nocookie.com/embed/"+n:"https://www.youtube.com/embed/"+n,l.has("t")&&l.set("start",l.get("t")),l.delete("t")):["embed","shorts"].includes(n)&&a(o)&&(c=r+"/"+o)}if(!c)return!1;const u=l.toString();return u.length&&(c+="?"+u),c}function nc(t,e=!1){let s=null;try{s=new URL(t)}catch{return!1}const i=s.pathname.split("/").filter(t=>""!==t);let n=s.searchParams,o=null;switch(!0===e&&n.append("dnt",1),s.host){case"vimeo.com":case"www.vimeo.com":o=i[0];break;case"player.vimeo.com":o=i[1]}if(!o||!o.match(/^[0-9]*$/))return!1;let r="https://player.vimeo.com/video/"+o;const a=n.toString();return a.length&&(r+="?"+a),r}const oc={youtube:ic,vimeo:nc,video:function(t,e=!1){return!0===t.includes("youtu")?ic(t,e):!0===t.includes("vimeo")&&nc(t,e)}};function rc(t){var e;if(void 0!==t.default)return vt(t.default);const s=window.panel.app.$options.components[`k-${t.type}-field`],i=null==(e=null==s?void 0:s.options.props)?void 0:e.value;if(void 0===i)return;const n=null==i?void 0:i.default;return"function"==typeof n?n():void 0!==n?n:null}const ac={defaultValue:rc,form:function(t){const e={};for(const s in t){const i=rc(t[s]);void 0!==i&&(e[s]=i)}return e},isVisible:function(t,e){if("hidden"===t.type||!0===t.hidden)return!1;if(!t.when)return!0;for(const s in t.when){const i=e[s.toLowerCase()],n=t.when[s];if((void 0!==i||!(""===n||Array.isArray(n)&&0===n.length))&&i!==n)return!1}return!0},subfields:function(t,e){let s={};for(const i in e){const n=e[i];n.section=t.name,t.endpoints&&(n.endpoints={field:t.endpoints.field+"+"+i,section:t.endpoints.section,model:t.endpoints.model}),s[i]=n}return s}},lc=t=>t.split(".").slice(-1).join(""),cc=t=>t.split(".").slice(0,-1).join("."),uc=t=>Intl.NumberFormat("en",{notation:"compact",style:"unit",unit:"byte",unitDisplay:"narrow"}).format(t),pc={extension:lc,name:cc,niceSize:uc};function dc(t,e){if("string"==typeof t&&(t=document.querySelector(t)),!t)return!1;if(!e&&t.contains(document.activeElement)&&t!==document.activeElement)return!1;const s=[":where([autofocus], [data-autofocus])",":where(input, textarea, select, [contenteditable=true], .input-focus)","[type=submit]","button"];e&&s.unshift(`[name="${e}"]`);const i=function(t,e){for(const s of e){const e=t.querySelector(s);if(!0===hc(e))return e}return null}(t,s);return i?(i.focus(),i):!0===hc(t)&&(t.focus(),t)}function hc(t){return!!t&&(!t.matches("[disabled], [aria-disabled], input[type=hidden]")&&(!t.closest("[aria-disabled]")&&!t.closest("[disabled]")&&"function"==typeof t.focus))}const mc=t=>"function"==typeof window.Vue.options.components[t],fc=t=>!!t.dataTransfer&&(!!t.dataTransfer.types&&(!0===t.dataTransfer.types.includes("Files")&&!1===t.dataTransfer.types.includes("text/plain")));const gc={metaKey:function(){return window.navigator.userAgent.indexOf("Mac")>-1?"cmd":"ctrl"}};function kc(t){return!0===t.startsWith("file://")||!0===t.startsWith("/@/file/")}function bc(t){return"site://"===t||!0===t.startsWith("page://")||null!==t.match(/^\/(.*\/)?@\/page\//)}function yc(t=[]){const e={url:{detect:t=>/^(http|https):\/\//.test(t),icon:"url",id:"url",label:window.panel.$t("url"),link:t=>t,placeholder:window.panel.$t("url.placeholder"),input:"url",value:t=>t},page:{detect:t=>!0===bc(t),icon:"page",id:"page",label:window.panel.$t("page"),link:t=>t,placeholder:window.panel.$t("select")+" …",input:"text",value:t=>t},file:{detect:t=>!0===kc(t),icon:"file",id:"file",label:window.panel.$t("file"),link:t=>t,placeholder:window.panel.$t("select")+" …",value:t=>t},email:{detect:t=>t.startsWith("mailto:"),icon:"email",id:"email",label:window.panel.$t("email"),link:t=>t.replace(/^mailto:/,""),placeholder:window.panel.$t("email.placeholder"),input:"email",value:t=>"mailto:"+t},tel:{detect:t=>t.startsWith("tel:"),icon:"phone",id:"tel",label:window.panel.$t("tel"),link:t=>t.replace(/^tel:/,""),pattern:"[+]{0,1}[0-9]+",placeholder:window.panel.$t("tel.placeholder"),input:"tel",value:t=>"tel:"+t},anchor:{detect:t=>t.startsWith("#"),icon:"anchor",id:"anchor",label:"Anchor",link:t=>t,pattern:"^#.+",placeholder:"#element",input:"text",value:t=>t},custom:{detect:()=>!0,icon:"title",id:"custom",label:window.panel.$t("custom"),link:t=>t,input:"text",value:t=>t}};if(!t.length)return e;const s={};for(const i of t)e[i]&&(s[i]=e[i]);return s}const vc={detect:function(t,e){if(t??(t=""),e??(e=yc()),0===t.length)return{type:Object.keys(e)[0]??"url",link:""};for(const s in e)if(!0===e[s].detect(t))return{type:s,link:e[s].link(t)}},getFileUUID:function(t){return t.replace("/@/file/","file://")},getPageUUID:function(t){return t.replace(/^\/(.*\/)?@\/page\//,"page://")},isFileUUID:kc,isPageUUID:bc,preview:async function({type:t,link:e},s){return"page"===t&&e?await async function(t,e=["title","panelImage"]){if("site://"===t)return{label:window.panel.$t("view.site")};try{const s=await window.panel.api.pages.get(t,{select:e.join(",")});return{label:s.title,image:s.panelImage}}catch{return null}}(e,s):"file"===t&&e?await async function(t,e=["filename","panelImage"]){try{const s=await window.panel.api.files.get(null,t,{select:e.join(",")});return{label:s.filename,image:s.panelImage}}catch{return null}}(e,s):e?{label:e}:null},types:yc};const $c={status:function(t,e=!1){const s={icon:"status-"+t,title:window.panel.$t("page.status")+": "+window.panel.$t("page.status."+t),disabled:e,size:"xs",style:"--icon-size: 15px"};return e&&(s.title+=` (${window.panel.$t("disabled")})`),s.theme="draft"===t?"negative-icon":"unlisted"===t?"info-icon":"positive-icon",s}},wc=(t="3/2",e="100%",s=!0)=>{const i=String(t).split("/");if(2!==i.length)return e;const n=Number(i[0]),o=Number(i[1]);let r=100;return 0!==n&&0!==o&&(r=s?r/n*o:r/o*n,r=parseFloat(String(r)).toFixed(2)),r+"%"},xc={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function _c(t){return String(t).replace(/[&<>"'`=/]/g,t=>xc[t])}function Sc(t){return!t||0===String(t).length}function Cc(t){const e=String(t);return e.charAt(0).toLowerCase()+e.slice(1)}function Oc(t="",e=""){const s=new RegExp(`^(${RegExp.escape(e)})+`,"g");return t.replace(s,"")}function Ac(t){let e="";const s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";for(var i=0;i{const i=e[_c(t.shift())]??"…";return"…"===i||0===t.length?i:s(t,i)},i="[{]{1,2}[\\s]?",n="[\\s]?[}]{1,2}";return(t=t.replace(new RegExp(`${i}(.*?)${n}`,"gi"),(t,i)=>s(i.split("."),e))).replace(new RegExp(`${i}.*${n}`,"gi"),"…")}function Ec(t){const e=String(t);return e.charAt(0).toUpperCase()+e.slice(1)}function jc(){let t,e,s="";for(t=0;t<32;t++)e=16*Math.random()|0,8!=t&&12!=t&&16!=t&&20!=t||(s+="-"),s+=(12==t?4:16==t?3&e|8:e).toString(16);return s}const Ic={camelToKebab:function(t){return t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()},escapeHTML:_c,hasEmoji:function(t){if("string"!=typeof t)return!1;if(!0===/^[a-z0-9_-]+$/.test(t))return!1;const e=t.match(/(?:[\u2700-\u27bf]|(?:\ud83c[\udde6-\uddff]){2}|[\ud800-\udbff][\udc00-\udfff]|[\u0023-\u0039]\ufe0f?\u20e3|\u3299|\u3297|\u303d|\u3030|\u24c2|\ud83c[\udd70-\udd71]|\ud83c[\udd7e-\udd7f]|\ud83c\udd8e|\ud83c[\udd91-\udd9a]|\ud83c[\udde6-\uddff]|[\ud83c\ude01-\ude02]|\ud83c\ude1a|\ud83c\ude2f|[\ud83c\ude32-\ude3a]|[\ud83c\ude50-\ude51]|\u203c|\u2049|[\u25aa-\u25ab]|\u25b6|\u25c0|[\u25fb-\u25fe]|\u00a9|\u00ae|\u2122|\u2139|\ud83c\udc04|[\u2600-\u26FF]|\u2b05|\u2b06|\u2b07|\u2b1b|\u2b1c|\u2b50|\u2b55|\u231a|\u231b|\u2328|\u23cf|[\u23e9-\u23f3]|[\u23f8-\u23fa]|\ud83c\udccf|\u2934|\u2935|[\u2190-\u21ff])/i);return null!==e&&null!==e.length},isEmpty:Sc,lcfirst:Cc,ltrim:Oc,pad:function(t,e=2){t=String(t);let s="";for(;s.length]+)>)/gi,"")},template:Dc,ucfirst:Ec,ucwords:function(t){return String(t).split(/ /g).map(t=>Ec(t)).join(" ")},unescapeHTML:function(t){for(const e in xc)t=String(t).replaceAll(xc[e],e);return t},uuid:jc},Bc=(t,e,s={leading:!0,trailing:!1})=>{let i=null,n=null,o=null;function r(...r){if(i)return n=this,void(o=r);s.leading?t.call(this,...r):(n=this,o=r);const a=()=>{s.trailing&&o?(t.call(n,...o),n=null,o=null,i=setTimeout(a,e)):i=null};i=setTimeout(a,e)}return r.cancel=()=>{i&&(clearTimeout(i),i=null,n=null,o=null)},r};async function Lc(t,e){return new Promise((s,i)=>{var n;const o={url:"/",field:"file",method:"POST",filename:t.name,headers:{},attributes:{},complete:()=>{},error:()=>{},success:()=>{},progress:()=>{}},r=Object.assign(o,e),a=new XMLHttpRequest,l=new FormData;l.append(r.field,t,r.filename);for(const t in r.attributes){const e=r.attributes[t];null!=e&&l.append(t,e)}const c=e=>{if(e.lengthComputable&&r.progress){const s=Math.max(0,Math.min(100,Math.ceil(e.loaded/e.total*100)));r.progress(a,t,s)}};a.upload.addEventListener("loadstart",c),a.upload.addEventListener("progress",c),a.addEventListener("load",e=>{let n=null;try{n=JSON.parse(e.target.response)}catch{n={status:"error",message:"The file could not be uploaded"}}"error"===n.status?(r.error(a,t,n),i(n)):(r.progress(a,t,100),r.success(a,t,n),s(n))}),a.addEventListener("error",e=>{const s=JSON.parse(e.target.response);r.progress(a,t,100),r.error(a,t,s),i(s)}),a.open(r.method,r.url,!0);for(const t in r.headers)a.setRequestHeader(t,r.headers[t]);null==(n=r.abort)||n.addEventListener("abort",()=>{a.abort()}),a.send(l)})}function Tc(){var t;return new URL((null==(t=document.querySelector("base"))?void 0:t.href)??window.location.origin)}function Pc(t={},e={}){e instanceof URL&&(e=e.search);const s=new URLSearchParams(e);for(const[i,n]of Object.entries(t))null!==n&&s.set(i,n);return s}function qc(t="",e={},s){return(t=Rc(t,s)).search=Pc(e,t.search),t}function Nc(t){return null!==String(t).match(/^https?:\/\//)}function Fc(t){return Rc(t).origin===window.location.origin}function zc(t,e){if((t instanceof URL||t instanceof Location)&&(t=t.toString()),"string"!=typeof t)return!1;try{new URL(t,window.location)}catch{return!1}if(!0===e){return/^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:localhost)|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(t)}return!0}function Yc(t,e){return!0===Nc(t)?t:(e??(e=Tc()),(e=String(e).replaceAll(/\/$/g,""))+"/"+(t=String(t).replaceAll(/^\//g,"")))}function Rc(t,e){return t instanceof URL?t:new URL(Yc(t,e))}const Hc={base:Tc,buildQuery:Pc,buildUrl:qc,isAbsolute:Nc,isSameOrigin:Fc,isUrl:zc,makeAbsolute:Yc,toObject:Rc},Uc={install(t){t.prototype.$helper={array:tc,clipboard:ec,clone:_t.clone,color:sc,embed:oc,focus:dc,isComponent:mc,isUploadEvent:fc,debounce:zt,field:ac,file:pc,keyboard:gc,link:vc,object:_t,page:$c,pad:Ic.pad,ratio:wc,slug:Ic.slug,sort:Zl,string:Ic,throttle:Bc,upload:Lc,url:Hc,uuid:Ic.uuid},t.prototype.$esc=Ic.escapeHTML}},Vc={install(t){const e=(t,e,s)=>{!0!==s.context.disabled?t.dir=window.panel.language.direction:t.dir=null};t.directive("direction",{bind:e,update:e})}},Kc={install(t){const e=window.panel;t.prototype.$api=e.api,t.prototype.$dialog=e.dialog.open.bind(e.dialog),t.prototype.$drawer=e.drawer.open.bind(e.drawer),t.prototype.$dropdown=e.dropdown.openAsync.bind(e.dropdown),t.prototype.$events=e.events,t.prototype.$go=e.view.open.bind(e.view),t.prototype.$reload=e.reload,t.prototype.$t=e.$t=e.t,t.prototype.$url=e.url}},Wc=/^#?([\da-f]{3}){1,2}$/i,Jc=/^#?([\da-f]{4}){1,2}$/i,Gc=/^rgba?\(\s*(\d{1,3})(%?)(?:,|\s)+(\d{1,3})(%?)(?:,|\s)+(\d{1,3})(%?)(?:,|\s|\/)*(\d*(?:\.\d+)?)(%?)\s*\)?$/i,Xc=/^hsla?\(\s*(\d{1,3}\.?\d*)(deg|rad|grad|turn)?(?:,|\s)+(\d{1,3})%(?:,|\s)+(\d{1,3})%(?:,|\s|\/)*(\d*(?:\.\d+)?)(%?)\s*\)?$/i;function Zc(t){return"string"==typeof t&&(Wc.test(t)||Jc.test(t))}function Qc(t){return $t(t)&&"r"in t&&"g"in t&&"b"in t}function tu(t){return $t(t)&&"h"in t&&"s"in t&&"l"in t}function eu({h:t,s:e,v:s,a:i}){if(0===s)return{h:t,s:0,l:0,a:i};if(0===e&&1===s)return{h:t,s:1,l:1,a:i};const n=s*(2-e)/2;return{h:t,s:e=s*e/(1-Math.abs(2*n-1)),l:n,a:i}}function su({h:t,s:e,l:s,a:i}){const n=e*(s<.5?s:1-s);return{h:t,s:e=0===n?0:2*n/(s+n),v:s+n,a:i}}function iu(t){if(!0===Wc.test(t)||!0===Jc.test(t)){"#"===t[0]&&(t=t.slice(1)),3===t.length&&(t=t.split("").reduce((t,e)=>t+e+e,""));const e=parseInt(t,16);return!0===Wc.test(t)?{r:e>>16,g:e>>8&255,b:255&e,a:1}:{r:e>>24&255,g:e>>16&255,b:e>>8&255,a:Math.round((255&e)/255*100)/100}}throw new Error(`unknown hex color: ${t}`)}function nu({r:t,g:e,b:s,a:i=1}){let n="#"+(1<<24|t<<16|e<<8|s).toString(16).slice(1);return i<1&&(n+=(256|Math.round(255*i)).toString(16).slice(1)),n}function ou({h:t,s:e,l:s,a:i}){const n=e*Math.min(s,1-s),o=(e,i=(e+t/30)%12)=>s-n*Math.max(Math.min(i-3,9-i,1),-1);return{r:255*o(0),g:255*o(8),b:255*o(4),a:i}}function ru({r:t,g:e,b:s,a:i}){t/=255,e/=255,s/=255;const n=Math.max(t,e,s),o=n-Math.min(t,e,s),r=1-Math.abs(n+n-o-1);let a=o&&(n==t?(e-s)/o:n==e?2+(s-t)/o:4+(t-e)/o);return a=60*(a<0?a+6:a),{h:a,s:r?o/r:0,l:(n+n-o)/2,a:i}}function au(t){return nu(ou(t))}function lu(t){return ru(iu(t))}function cu(t,e){return t=Number(t),"grad"===e?t*=.9:"rad"===e?t*=180/Math.PI:"turn"===e&&(t*=360),parseInt(t%360)}function uu(t,e){if(!0===Zc(t))switch("#"!==t[0]&&(t="#"+t),e){case"hex":return t;case"rgb":return iu(t);case"hsl":return lu(t);case"hsv":return su(lu(t))}if(!0===Qc(t))switch(e){case"hex":return nu(t);case"rgb":return t;case"hsl":return ru(t);case"hsv":return function({r:t,g:e,b:s,a:i}){t/=255,e/=255,s/=255;const n=Math.max(t,e,s),o=n-Math.min(t,e,s);let r=o&&(n==t?(e-s)/o:n==e?2+(s-t)/o:4+(t-e)/o);return r=60*(r<0?r+6:r),{h:r,s:n&&o/n,v:n,a:i}}(t)}if(!0===tu(t))switch(e){case"hex":return au(t);case"rgb":return ou(t);case"hsl":return t;case"hsv":return su(t)}if(!0===function(t){return $t(t)&&"h"in t&&"s"in t&&"v"in t}(t))switch(e){case"hex":return au(eu(t));case"rgb":return function({h:t,s:e,v:s,a:i}){const n=(i,n=(i+t/60)%6)=>s-s*e*Math.max(Math.min(n,4-n,1),0);return{r:255*n(5),g:255*n(3),b:255*n(1),a:i}}(t);case"hsl":return eu(t);case"hsv":return t}throw new Error(`Invalid color conversion: ${JSON.stringify(t)} -> ${e}`)}function pu(t){let e;if(!t||"string"!=typeof t)return!1;if(!0===Zc(t))return"#"!==t[0]&&(t="#"+t),t;if(e=t.match(Gc)){const t={r:Number(e[1]),g:Number(e[3]),b:Number(e[5]),a:Number(e[7]||1)};return"%"===e[2]&&(t.r=Math.ceil(2.55*t.r)),"%"===e[4]&&(t.g=Math.ceil(2.55*t.g)),"%"===e[6]&&(t.b=Math.ceil(2.55*t.b)),"%"===e[8]&&(t.a=t.a/100),t}if(e=t.match(Xc)){let[t,s,i,n,o]=e.slice(1);const r={h:cu(t,s),s:Number(i)/100,l:Number(n)/100,a:Number(o||1)};return"%"===e[6]&&(r.a=r.a/100),r}return null}const du={convert:uu,parse:pu,parseAs:function(t,e){const s=pu(t);return s&&e?uu(s,e):s},toString:function(t,e,s=!0){var i,n;let o=t;if("string"==typeof o&&(o=pu(t)),o&&e&&(o=uu(o,e)),!0===Zc(o))return!0!==s&&(5===o.length?o=o.slice(0,4):o.length>7&&(o=o.slice(0,7))),o.toLowerCase();if(!0===Qc(o)){const t=o.r.toFixed(),e=o.g.toFixed(),n=o.b.toFixed(),r=null==(i=o.a)?void 0:i.toFixed(2);return s&&r&&r<1?`rgb(${t} ${e} ${n} / ${r})`:`rgb(${t} ${e} ${n})`}if(!0===tu(o)){const t=o.h.toFixed(),e=(100*o.s).toFixed(),i=(100*o.l).toFixed(),r=null==(n=o.a)?void 0:n.toFixed(2);return s&&r&&r<1?`hsl(${t} ${e}% ${i}% / ${r})`:`hsl(${t} ${e}% ${i}%)`}throw new Error(`Unsupported color: ${JSON.stringify(t)}`)}};z.extend(Y),z.extend((t,e,s)=>{s.interpret=(t,e="date")=>{const i={date:{"YYYY-MM-DD":!0,"YYYY-MM-D":!0,"YYYY-MM-":!0,"YYYY-MM":!0,"YYYY-M-DD":!0,"YYYY-M-D":!0,"YYYY-M-":!0,"YYYY-M":!0,"YYYY-":!0,YYYYMMDD:!0,"MMM DD YYYY":!1,"MMM D YYYY":!1,"MMM DD YY":!1,"MMM D YY":!1,"MMM YYYY":!0,"MMM DD":!1,"MMM D":!1,"MM YYYY":!0,"M YYYY":!0,"MMMM DD YYYY":!0,"MMMM D YYYY":!0,"MMMM DD YY":!0,"MMMM D YY":!0,"MMMM DD, YYYY":!0,"MMMM D, YYYY":!0,"MMMM DD, YY":!0,"MMMM D, YY":!0,"MMMM DD. YYYY":!0,"MMMM D. YYYY":!0,"MMMM DD. YY":!0,"MMMM D. YY":!0,DDMMYYYY:!0,DDMMYY:!0,"DD MMMM YYYY":!1,"DD MMMM YY":!1,"DD MMMM":!1,"D MMMM YYYY":!1,"D MMMM YY":!1,"D MMMM":!1,"DD MMM YYYY":!1,"D MMM YYYY":!1,"DD MMM YY":!1,"D MMM YY":!1,"DD MMM":!1,"D MMM":!1,"DD MM YYYY":!1,"DD M YYYY":!1,"D MM YYYY":!1,"D M YYYY":!1,"DD MM YY":!1,"D MM YY":!1,"DD M YY":!1,"D M YY":!1,YYYY:!0,MMMM:!0,MMM:!0,"DD MM":!1,"DD M":!1,"D MM":!1,"D M":!1,DD:!1,D:!1},time:{"HHmmss a":!1,"HHmm a":!1,"HH a":!1,HHmmss:!1,HHmm:!1,"HH:mm:ss a":!1,"HH:mm:ss":!1,"HH:mm a":!1,"HH:mm":!1,HH:!1}};if("string"==typeof t&&""!==t)for(const n in i[e]){const o=s(t,n,i[e][n]);if(!0===o.isValid())return o}return null}}),z.extend((t,e,s)=>{const i=t=>"date"===t?"YYYY-MM-DD":"time"===t?"HH:mm:ss":"YYYY-MM-DD HH:mm:ss";e.prototype.toISO=function(t="datetime"){return this.format(i(t))},s.iso=function(t,e){e&&(e=i(e)),e??(e=[i("datetime"),i("date"),i("time")]);const n=s(t,e);return n&&n.isValid()?n:null}}),z.extend((t,e)=>{e.prototype.merge=function(t,e="date"){let s=this.clone();if(!t||!t.isValid())return this;if("string"==typeof e){const t={date:["year","month","date"],time:["hour","minute","second"]};if(!1===Object.hasOwn(t,e))throw new Error("Invalid merge unit alias");e=t[e]}for(const i of e)s=s.set(i,t.get(i));return s}}),z.extend((t,e,s)=>{s.pattern=t=>new class{constructor(t,e){this.dayjs=t,this.pattern=e;const s={year:["YY","YYYY"],month:["M","MM","MMM","MMMM"],day:["D","DD"],hour:["h","hh","H","HH"],minute:["m","mm"],second:["s","ss"],meridiem:["a"]};this.parts=this.pattern.split(/\W/).map((t,e)=>{const i=this.pattern.indexOf(t);return{index:e,unit:Object.keys(s)[Object.values(s).findIndex(e=>e.includes(t))],start:i,end:i+(t.length-1)}})}at(t,e=t){const s=this.parts.filter(s=>s.start<=t&&s.end>=e-1);return s[0]?s[0]:this.parts.filter(e=>e.start<=t).pop()}format(t){return t&&t.isValid()?t.format(this.pattern):null}}(s,t)}),z.extend((t,e)=>{e.prototype.round=function(t="date",e=1){const s=["second","minute","hour","date","month","year"];if("day"===t&&(t="date"),!1===s.includes(t))throw new Error("Invalid rounding unit");if(["date","month","year"].includes(t)&&1!==e||"hour"===t&&24%e!=0||["second","minute"].includes(t)&&60%e!=0)throw"Invalid rounding size for "+t;let i=this.clone();const n=s.indexOf(t),o=s.slice(0,n),r=o.pop();for(const a of o)i=i.startOf(a);if(r){const e={month:12,date:i.daysInMonth(),hour:24,minute:60,second:60}[r];Math.round(i.get(r)/e)*e===e&&(i=i.add(1,"date"===t?"day":t)),i=i.startOf(t)}return i=i.set(t,Math.round(i.get(t)/e)*e),i}}),z.extend((t,e,s)=>{e.prototype.validate=function(t,e,i="day"){if(!this.isValid())return!1;if(!t)return!0;t=s.iso(t);const n={min:"isAfter",max:"isBefore"}[e];return this.isSame(t,i)||this[n](t,i)}});const hu={install(t){t.prototype.$library={autosize:R,colors:du,dayjs:z}}},mu=(t,e={})=>r({...e,key:()=>t,defaults:()=>e,reset(){return this.set(this.defaults())},set(t){this.validateState(t);for(const e in this.defaults())this[e]=t[e]??this.defaults()[e];return this.state()},state(){const t={};for(const e in this.defaults())t[e]=this[e]??this.defaults()[e];return t},validateState(t){if(!1===$t(t))throw new Error(`Invalid ${this.key()} state`);return!0}}),fu=()=>{const t=mu("activation",{isOpen:"true"!==sessionStorage.getItem("kirby$activation$card")});return r({...t,close(){sessionStorage.setItem("kirby$activation$card","true"),this.isOpen=!1},open(){sessionStorage.removeItem("kirby$activation$card"),this.isOpen=!0}})},gu=t=>({async changeName(e,s,i){return t.patch(this.url(e,s,"name"),{name:i})},async delete(e,s){return t.delete(this.url(e,s))},async get(e,s,i){let n=await t.get(this.url(e,s),i);return!0===Array.isArray(n.content)&&(n.content={}),n},id:t=>!0===t.startsWith("/@/file/")?t.replace("/@/file/","@"):!0===t.startsWith("file://")?t.replace("file://","@"):t,link(t,e,s){return"/"+this.url(t,e,s)},async update(e,s,i){return t.patch(this.url(e,s),i)},url(t,e,s){let i="files/"+this.id(e);return t&&(i=t+"/"+i),s&&(i+="/"+s),i}}),ku=t=>({async blueprint(e){return t.get("pages/"+this.id(e)+"/blueprint")},async blueprints(e,s){return t.get("pages/"+this.id(e)+"/blueprints",{section:s})},async changeSlug(e,s){return t.patch("pages/"+this.id(e)+"/slug",{slug:s})},async changeStatus(e,s,i){return t.patch("pages/"+this.id(e)+"/status",{status:s,position:i})},async changeTemplate(e,s){return t.patch("pages/"+this.id(e)+"/template",{template:s})},async changeTitle(e,s){return t.patch("pages/"+this.id(e)+"/title",{title:s})},async children(e,s){return t.post("pages/"+this.id(e)+"/children/search",s)},async create(e,s){return null===e||"/"===e?t.post("site/children",s):t.post("pages/"+this.id(e)+"/children",s)},async delete(e,s){return t.delete("pages/"+this.id(e),s)},async duplicate(e,s,i){return t.post("pages/"+this.id(e)+"/duplicate",{slug:s,children:i.children??!1,files:i.files??!1})},async get(e,s){let i=await t.get("pages/"+this.id(e),s);return!0===Array.isArray(i.content)&&(i.content={}),i},id:t=>!0===t.match(/^\/(.*\/)?@\/page\//)?t.replace(/^\/(.*\/)?@\/page\//,"@"):!0===t.startsWith("page://")?t.replace("page://","@"):t.replace(/\//g,"+"),async files(e,s){return t.post("pages/"+this.id(e)+"/files/search",s)},link(t){return"/"+this.url(t)},async preview(t){return(await this.get(this.id(t),{select:"previewUrl"})).previewUrl},async search(e,s){return e?t.post("pages/"+this.id(e)+"/children/search?select=id,title,hasChildren",s):t.post("site/children/search?select=id,title,hasChildren",s)},async update(e,s){return t.patch("pages/"+this.id(e),s)},url(t,e){let s=null===t?"pages":"pages/"+String(t).replace(/\//g,"+");return e&&(s+="/"+e),s}});class bu extends Error{constructor(t,{request:e,response:s,cause:i}){super(s.json.message??t,{cause:i}),this.request=e,this.response=s}state(){return this.response.json}}class yu extends bu{}class vu extends bu{state(){return{message:this.message,text:this.response.text}}}const $u=t=>(window.location.href=Yc(t),!1),wu=async(t,e={})=>{var s;(e={cache:"no-store",credentials:"same-origin",mode:"same-origin",...e}).body=((s=e.body)instanceof HTMLFormElement&&(s=new FormData(s)),s instanceof FormData&&(s=Object.fromEntries(s)),"object"==typeof s?JSON.stringify(s):s),e.headers=((t={},e={})=>{return{"content-type":"application/json","x-csrf":e.csrf??!1,"x-fiber":!0,"x-fiber-globals":(s=e.globals,!!s&&(!1===Array.isArray(s)?String(s):s.join(","))),"x-fiber-referrer":e.referrer??!1,...xt(t)};var s})(e.headers,e),e.url=qc(t,e.query);const i=new Request(e.url,e);return!1===Fc(i.url)?$u(i.url):await xu(i,await fetch(i))},xu=async(t,e)=>{var s;if(!1===e.headers.get("Content-Type").includes("application/json"))return $u(e.url);try{e.text=await e.text(),e.json=JSON.parse(e.text)}catch(i){throw new vu("Invalid JSON response",{cause:i,request:t,response:e})}if(401===e.status)throw new yu("Unauthenticated",{request:t,response:e});if("error"===(null==(s=e.json)?void 0:s.status))throw e.json;if(!1===e.ok)throw new bu(`The request to ${e.url} failed`,{request:t,response:e});return{request:t,response:e}},_u=t=>({blueprint:async e=>t.get("users/"+e+"/blueprint"),blueprints:async(e,s)=>t.get("users/"+e+"/blueprints",{section:s}),changeEmail:async(e,s)=>t.patch("users/"+e+"/email",{email:s}),changeLanguage:async(e,s)=>t.patch("users/"+e+"/language",{language:s}),changeName:async(e,s)=>t.patch("users/"+e+"/name",{name:s}),changePassword:async(e,s,i)=>t.patch("users/"+e+"/password",{password:s,currentPassword:i}),changeRole:async(e,s)=>t.patch("users/"+e+"/role",{role:s}),create:async e=>t.post("users",e),delete:async e=>t.delete("users/"+e),deleteAvatar:async e=>t.delete("users/"+e+"/avatar"),link(t,e){return"/"+this.url(t,e)},async list(e){return t.post(this.url(null,"search"),e)},get:async(e,s)=>t.get("users/"+e,s),async roles(e){return(await t.get(this.url(e,"roles"))).data.map(t=>({info:t.description??`(${window.panel.$t("role.description.placeholder")})`,text:t.title,value:t.name}))},search:async e=>t.post("users/search",e),update:async(e,s)=>t.patch("users/"+e,s),url(t,e){let s=t?"users/"+t:"users";return e&&(s+="/"+e),s}}),Su=t=>{var e;const s={csrf:t.system.csrf,endpoint:Mc(t.urls.api,"/"),methodOverride:(null==(e=t.config.api)?void 0:e.methodOverride)??!1,ping:null,requests:[],running:0},i=()=>{clearInterval(s.ping),s.ping=setInterval(()=>{!1===t.isOffline&&s.auth.ping()},3e5)};return s.request=async(e,n={},o=!1)=>{const r=e+"/"+JSON.stringify(n);s.requests.push(r),!1===o&&!0!==n.silent&&(t.isLoading=!0),s.language=t.language.code;try{return await(t=>async(e,s={})=>{(s={cache:"no-store",credentials:"same-origin",mode:"same-origin",...s}).headers={"content-type":"application/json","x-csrf":t.csrf,"x-language":t.language,...xt(s.headers??{})},t.methodOverride&&"GET"!==s.method&&"POST"!==s.method&&(s.headers["x-http-method-override"]=s.method,s.method="POST");for(const t in s.headers)null===s.headers[t]&&delete s.headers[t];s.url=Mc(t.endpoint,"/")+"/"+Oc(e,"/");const i=new Request(s.url,s),{response:n}=await xu(i,await fetch(i));let o=n.json;return o.data&&"model"===o.type&&(o=o.data),o})(s)(e,n)}finally{i(),s.requests=s.requests.filter(t=>t!==r),0===s.requests.length&&(t.isLoading=!1)}},s.auth=(t=>({async login(e){const s={long:e.remember??!1,email:e.email,password:e.password};return t.post("auth/login",s)},logout:async()=>t.post("auth/logout"),ping:async()=>t.post("auth/ping"),user:async e=>t.get("auth",e),verifyCode:async e=>t.post("auth/code",{code:e})}))(s),s.delete=(t=>async(e,s,i,n=!1)=>t.post(e,s,i,"DELETE",n))(s),s.files=gu(s),s.get=(t=>async(e,s,i,n=!1)=>(s&&(e+="?"+Object.keys(s).filter(t=>void 0!==s[t]&&null!==s[t]).map(t=>t+"="+s[t]).join("&")),t.request(e,Object.assign(i??{},{method:"GET"}),n)))(s),s.languages=(t=>({create:async e=>t.post("languages",e),delete:async e=>t.delete("languages/"+e),get:async e=>t.get("languages/"+e),list:async()=>t.get("languages"),update:async(e,s)=>t.patch("languages/"+e,s)}))(s),s.pages=ku(s),s.patch=(t=>async(e,s,i,n=!1)=>t.post(e,s,i,"PATCH",n))(s),s.post=(t=>async(e,s,i,n="POST",o=!1)=>t.request(e,Object.assign(i??{},{method:n,body:JSON.stringify(s)}),o))(s),s.roles=(t=>({list:async e=>t.get("roles",e),get:async e=>t.get("roles/"+e)}))(s),s.system=(t=>({get:async(e={view:"panel"})=>t.get("system",e),install:async e=>(await t.post("system/install",e)).user,register:async e=>t.post("system/register",e)}))(s),s.site=(t=>({blueprint:async()=>t.get("site/blueprint"),blueprints:async()=>t.get("site/blueprints"),changeTitle:async e=>t.patch("site/title",{title:e}),children:async e=>t.post("site/children/search",e),get:async(e={view:"panel"})=>t.get("site",e),update:async e=>t.post("site",e)}))(s),s.translations=(t=>({list:async()=>t.get("translations"),get:async e=>t.get("translations/"+e)}))(s),s.users=_u(s),i(),s},Cu=t=>{const e=r({cancelSaving(){var t;this.saveLazy.cancel(),null==(t=this.saveAbortController)||t.abort()},dialog:null,diff(t={}){if(!1===this.isCurrent(t))throw new Error("Cannot get changes for another view");const e=this.versions(),s={};for(const i in e.changes){JSON.stringify(e.changes[i])!==JSON.stringify(e.latest[i])&&(s[i]=e.changes[i])}for(const i in e.latest)void 0===e.changes[i]&&(s[i]=null);return s},async discard(e={}){var s;if(!0!==this.isProcessing){if(!1===this.isCurrent(e))throw new Error("Cannot discard content from another view");if(!0===this.isLocked(e))throw new Error("Cannot discard locked changes");this.cancelSaving(),this.isProcessing=!0;try{await this.request("discard",{},e),t.view.props.versions.changes=this.version("latest"),this.emit("discard",{},e)}catch(i){if(null==(s=i.key)?void 0:s.startsWith("error.content.lock"))return this.lockDialog(i.details);throw i}finally{this.isProcessing=!1}}},emit(e,s={},i={}){t.events.emit("content."+e,{...s,...this.env(i)})},env:(e={})=>({api:t.view.props.api,language:t.language.code,...e}),hasDiff(t={}){return wt(this.diff(t))>0},isCurrent(t={}){const e=this.env(t),s=this.env();return s.api===e.api&&s.language===e.language},isLocked(t={}){var e;return(null==(e=this.lock(t))?void 0:e.isLocked)??!1},isProcessing:!1,lock(e={}){if(!1===this.isCurrent(e))throw new Error("The lock state cannot be detected for content from another view");return t.view.props.lock},lockDialog(e){this.dialog=t.dialog,this.dialog.open({component:"k-lock-alert-dialog",props:{lock:e},on:{close:()=>{this.dialog=null,t.view.reload()}}})},merge(e={},s={}){if(!1===this.isCurrent(s))throw new Error("The content in another view cannot be merged");return!1===$t(e)&&(e={}),t.view.props.versions.changes={...this.version("changes"),...e},t.view.props.versions.changes},async publish(e={},s={}){var i,n;if(!0!==this.isProcessing){if(!1===this.isCurrent(s))throw new Error("Cannot publish content from another view");this.cancelSaving(),this.isProcessing=!0;try{await this.request("publish",this.merge(e,s),s),null==(i=this.dialog)||i.close(),t.view.props.versions.latest=this.version("changes"),this.emit("publish",{values:e},s)}catch(o){if(null==(n=o.key)?void 0:n.startsWith("error.content.lock"))return this.lockDialog(o.details);throw o}finally{this.isProcessing=!1}}},async request(e="save",s={},i={}){const{api:n,language:o}=this.env(i),r={headers:{"x-language":o}};return"save"===e&&(r.signal=this.saveAbortController.signal,r.silent=!0),t.api.post(n+"/changes/"+e,s,r)},async save(t={},e={}){var s,i;this.cancelSaving(),this.saveAbortController=new AbortController;try{await this.request("save",t,e),null==(s=this.dialog)||s.close(),!0===this.isCurrent(e)&&(this.lock(e).modified=new Date),this.emit("save",{values:t},e)}catch(n){if("AbortError"===n.name)return;if(this.isProcessing=!1,null==(i=n.key)?void 0:i.startsWith("error.content.lock"))return this.lockDialog(n.details);throw n}},saveAbortController:null,async update(t={},e={}){return await this.save(this.merge(t,e),e)},updateLazy(t={},e={}){this.saveLazy(this.merge(t,e),e)},version(t){return this.versions()[t]},versions:()=>t.view.props.versions});return e.saveLazy=Bc(e.save,1e3,{leading:!0,trailing:!0,timer:e.timer}),e},Ou=()=>({addEventListener(t,e){"function"==typeof e&&(this.on[t]=e)},addEventListeners(t){if(!1!==$t(t))for(const e in t)this.addEventListener(e,t[e])},emit(t,...e){return this.hasEventListener(t)?this.on[t](...e):()=>{}},hasEventListener(t){return"function"==typeof this.on[t]},listeners(){return this.on},on:{}}),Au=(t,e,s)=>{const i=mu(e,s);return r({...i,...Ou(),async get(e,s={}){this.isLoading=!0;try{return await t.get(e,s)}catch(i){t.error(i)}finally{this.isLoading=!1}return!1},async load(e,s={}){return!0!==s.silent&&(this.isLoading=!0),this.abortController=new AbortController,s.signal=this.abortController.signal,await t.open(e,s),this.isLoading=!1,this.addEventListeners(s.on),this.state()},async open(t,e={}){return"function"==typeof e&&(e={on:{submit:e}}),!0===zc(t)?this.load(t,e):(this.set(t),this.addEventListeners(e.on),this.emit("open",t,e),this.state())},async post(e,s={}){var i;if(!this.path)throw new Error(`The ${this.key()} cannot be posted`);this.isLoading=!0,e??(e=(null==(i=this.props)?void 0:i.value)??{});try{return await t.post(this.path,e,s)}catch(n){t.error(n)}finally{this.isLoading=!1}return!1},async refresh(t={}){t.url??(t.url=this.url());const e=(await this.get(t.url,t))["$"+this.key()];if(e&&e.component===this.component)return this.props=e.props,this.state()},async reload(t={}){if(!this.path)return!1;this.open(this.url(),t)},set(t){return i.set.call(this,t),this.on={},this.addEventListeners(t.on??{}),this.state()},url(){return t.url(this.path,this.query)}})},Mu=()=>r({add(t,e=!1){if(!t.id)throw new Error("The state needs an ID");if(!0===e)return this.replace(-1,t);!0!==this.has(t.id)&&this.milestones.push(t)},at(t){return this.milestones.at(t)},clear(){this.milestones=[]},get(t=null){return null===t?this.milestones:this.milestones.find(e=>e.id===t)},goto(t){const e=this.index(t);if(-1!==e)return this.milestones=this.milestones.slice(0,e+1),this.milestones[e]},has(t){return void 0!==this.get(t)},index(t){return this.milestones.findIndex(e=>e.id===t)},isEmpty(){return 0===this.milestones.length},last(){return this.milestones.at(-1)},milestones:[],remove(t=null){return null===t?this.removeLast():this.milestones=this.milestones.filter(e=>e.id!==t)},removeLast(){return this.milestones=this.milestones.slice(0,-1)},replace(t,e){-1===t&&(t=this.milestones.length-1),n(this.milestones,t,e)}}),Du=(t,e,s)=>{const i=Au(t,e,s);return r({...i,async cancel(){this.isOpen&&this.emit("cancel"),this.close()},async close(e){if(!1===this.isOpen)return;if(void 0!==e&&!0!==e&&e!==this.id)return;!0===e?this.history.clear():this.history.removeLast();const s=this.on.closed??(()=>{});if(!1===this.history.isEmpty()){const t=this.open(this.history.last());return s(),t}this.isOpen=!1,this.emit("close"),this.reset(),s(),0===t.overlays().length&&(document.documentElement.removeAttribute("data-overlay"),document.documentElement.style.removeProperty("--scroll-top"))},focus(t){dc(`.k-${this.key()}-portal`,t)},goTo(t){const e=this.history.goto(t);void 0!==e&&this.open(e)},history:Mu(),input(t){!1!==this.isOpen&&(n(this.props,"value",t),this.emit("input",t))},isOpen:!1,listeners(){return{...this.on,cancel:this.cancel.bind(this),close:this.close.bind(this),input:this.input.bind(this),submit:this.submit.bind(this),success:this.success.bind(this)}},async open(e,s){return!1===this.isOpen&&t.notification.close(),await i.open.call(this,e,s),this.component&&(document.documentElement.setAttribute("data-overlay","true"),document.documentElement.style.setProperty("--scroll-top",window.scrollY+"px"),this.isOpen=!0),this.state()},async reload(t={}){if(!this.path)return!1;const e=this.url();await this.close(),this.open(e,t)},set(t){return i.set.call(this,t),this.id??(this.id=jc()),this.state()},async submit(t,e={}){if(!0===this.isLoading)return;if(t??(t=this.props.value),this.hasEventListener("submit"))return this.emit("submit",t,e);if(!this.path)return this.close();const s=await this.post(t,e);return!1===$t(s)?s:this.success(s["$"+this.key()]??{})},success(e){return this.hasEventListener("success")?this.emit("success",e):("string"==typeof e&&t.notification.success(e),this.close(),this.successNotification(e),this.successEvents(e),e.route||e.redirect?this.successRedirect(e):t.view.reload(e.reload),e)},successEvents(e){if(e.event){const s=Ql(e.event);for(const i of s)"string"==typeof i&&t.events.emit(i,e)}!1!==e.emit&&t.events.emit("success",e)},successNotification(e){e.message&&t.notification.success(e.message)},successRedirect(e){const s=e.route??e.redirect;return!!s&&("string"==typeof s?t.open(s):t.open(s.url,s.options))},get value(){var t;return null==(t=this.props)?void 0:t.value}})},Eu=t=>{t.events.on("dialog.save",e=>{var s;null==(s=null==e?void 0:e.preventDefault)||s.call(e),t.dialog.submit()});const e=Du(t,"dialog",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,id:null,legacy:!1,ref:null});return r({...e,async close(){this.ref&&(this.ref.visible=!1),e.close.call(this)},async open(t,s={}){if(t instanceof window.Vue)return this.openComponent(t);"string"==typeof t&&(t=`/dialogs/${t}`);const i=await e.open.call(this,t,s);return this.history.add(i,t.replace),i},async openComponent(s){t.deprecated("Dialog components should no longer be used in your templates");const i=await e.open.call(this,{component:s.$options._componentTag,legacy:!0,props:{...s.$attrs,...s.$props},ref:s}),n=this.listeners();for(const t in n)s.$on(t,n[t]);return s.visible=!0,i}})},ju=()=>{const t=mu("drag",{type:null,data:{}});return r({...t,get isDragging(){return null!==this.type},start(t,e){this.type=t,this.data=e},stop(){this.type=null,this.data={}}})},Iu=t=>{const e=Du(t,"drawer",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,id:null});return t.events.on("drawer.save",e=>{e.preventDefault(),t.drawer.submit()}),r({...e,get breadcrumb(){return this.history.milestones},get icon(){return this.props.icon??"box"},listeners(){return{...e.listeners.call(this),crumb:this.goTo.bind(this),tab:this.tab.bind(this)}},async open(t,s={}){"string"==typeof t&&(t=`/drawers/${t}`),await e.open.call(this,t,s),this.tab(t.tab);const i=this.state();return this.history.add(i,t.replace),this.focus(),i},tab(t){const e=this.props.tabs??{};if(t??(t=Object.keys(e??{})[0]),!t)return!1;n(this.props,"fields",e[t].fields),n(this.props,"tab",t),this.emit("tab",t),setTimeout(()=>{this.focus()})}})},Bu=t=>{const e=Au(t,"dropdown",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null});return r({...e,close(){this.emit("close"),this.reset()},open(t,s={}){return"string"==typeof t&&(t=`/dropdowns/${t}`),e.open.call(this,t,s)},openAsync(t,e={}){return async s=>{await this.open(t,e);const i=this.options();if(0===i.length)throw Error("The dropdown is empty");s(i)}},options(){return!1===Array.isArray(this.props.options)?[]:this.props.options.map(e=>e.dialog?(e.click=()=>{const s="string"==typeof e.dialog?e.dialog:e.dialog.url,i="object"==typeof e.dialog?e.dialog:{};return t.dialog.open(s,i)},e):e)},set(t){return t.options&&(t.props={options:t.options}),e.set.call(this,t)}})},Lu=t=>{const e=H();e.on("online",()=>{t.isOffline=!1}),e.on("offline",()=>{t.isOffline=!0}),e.on("keydown.cmd.s",s=>{e.emit(t.context+".save",s)}),e.on("keydown.cmd.shift.f",()=>t.search()),e.on("keydown.cmd./",()=>t.search()),e.on("clipboard.write",async e=>{ec.write(e),t.notification.success(t.t("copy.success")+"!")});const s={document:{blur:!0,click:!1,copy:!0,focus:!0,paste:!0},window:{beforeunload:!1,dragenter:!1,dragexit:!1,dragleave:!1,dragover:!1,drop:!1,keydown:!1,keyup:!1,offline:!1,online:!1,popstate:!1}};return{beforeunload(t){this.emit("beforeunload",t)},blur(t){this.emit("blur",t)},click(t){this.emit("click",t)},copy(t){this.emit("copy",t)},dragenter(t){this.entered=t.target,this.prevent(t),this.emit("dragenter",t)},dragexit(t){this.prevent(t),this.entered=null,this.emit("dragexit",t)},dragleave(t){this.prevent(t),this.entered===t.target&&(this.entered=null,this.emit("dragleave",t))},dragover(t){this.prevent(t),this.emit("dragover",t)},drop(t){this.prevent(t),this.entered=null,this.emit("drop",t)},emit:e.emit,entered:null,focus(t){this.emit("focus",t)},keychain(t,e){let s=[t];(e.metaKey||e.ctrlKey)&&s.push("cmd"),!0===e.altKey&&s.push("alt"),!0===e.shiftKey&&s.push("shift");let i=e.key?Cc(e.key):null;const n={escape:"esc",arrowUp:"up",arrowDown:"down",arrowLeft:"left",arrowRight:"right"};return n[i]&&(i=n[i]),i&&!1===["alt","control","shift","meta"].includes(i)&&s.push(i),s.join(".")},keydown(t){this.emit(this.keychain("keydown",t),t),this.emit("keydown",t)},keyup(t){this.emit(this.keychain("keyup",t),t),this.emit("keyup",t)},off:e.off,offline(t){this.emit("offline",t)},on:e.on,online(t){this.emit("online",t)},paste(t){this.emit("paste",t)},popstate(t){this.emit("popstate",t)},prevent(t){t.stopPropagation(),t.preventDefault()},subscribe(){for(const t in s.document)document.addEventListener(t,this[t].bind(this),s.document[t]);for(const t in s.window)window.addEventListener(t,this[t].bind(this),s.window[t])},unsubscribe(){for(const t in s.document)document.removeEventListener(t,this[t]);for(const t in s.window)window.removeEventListener(t,this[t])}}},Tu={interval:null,start(t,e){this.stop(),t&&(this.interval=setInterval(e,t))},stop(){clearInterval(this.interval),this.interval=null}},Pu=(t={})=>{const e=mu("notification",{context:null,details:null,icon:null,isOpen:!1,message:null,theme:null,timeout:null,type:null});return r({...e,close(){return this.timer.stop(),this.reset(),this.state()},deprecated(t){console.warn("Deprecated: "+t)},error(e){if(e instanceof yu&&t.user.id)return t.redirect("logout");if(e instanceof vu)return this.fatal(e);if(e instanceof bu){const t=Object.values(e.response.json).find(t=>"string"==typeof(null==t?void 0:t.error));t&&(e.message=t.error)}return"string"==typeof e&&(e={message:e}),e={message:e.message??"Something went wrong",details:e.details??{}},"view"===t.context&&t.dialog.open({component:"k-error-dialog",props:e}),this.open({message:e.message,icon:"alert",theme:"negative",type:"error"})},info(t={}){return"string"==typeof t&&(t={message:t}),this.open({icon:"info",theme:"info",...t})},get isFatal(){return"fatal"===this.type},fatal(t){return"string"==typeof t?this.open({message:t,type:"fatal"}):t instanceof vu?this.open({message:t.response.text,type:"fatal"}):this.open({message:t.message??"Something went wrong",type:"fatal"})},open(e){return this.timer.stop(),"string"==typeof e?this.success(e):("error"!==e.type&&"fatal"!==e.type&&(e.timeout??(e.timeout=4e3)),this.set({context:t.context,...e}),this.isOpen=!0,this.timer.start(this.timeout,()=>this.close()),this.state())},success(t={}){return"string"==typeof t&&(t={message:t}),this.open({icon:"check",theme:"positive",...t})},timer:Tu})},qu=()=>{const t=mu("language",{code:null,default:!1,direction:"ltr",name:null,rules:null});return r({...t,get isDefault(){return this.default}})},Nu=(t,e,s)=>{if(!s.template&&!s.render&&!s.extends)throw new Error(`Plugin component "${e}" is not providing any template or render method, neither is it extending a component. The component has not been registered.`);return s=Fu(t,e,s),s=Yu(s),s=zu(s),!0===mc(e)&&window.console.warn(`Plugin is replacing "${e}"`),t.component(e,s),s},Fu=(t,e,s)=>"string"!=typeof(null==s?void 0:s.extends)?s:!1===mc(s.extends)?(window.console.warn(`Problem with plugin trying to register component "${e}": cannot extend non-existent component "${s.extends}"`),s.extends=null,s):(s.extends=t.options.components[s.extends].extend({options:s,components:{...t.options.components,...s.components??{}}}),s),zu=t=>{if(!1===Array.isArray(t.mixins))return t;const e={dialog:Lt,drawer:be,section:Sa};return t.mixins=t.mixins.map(i=>{if("string"==typeof i&&void 0!==e[i]){if(t.extends){if(!0===((new(s.extend(t.extends))).$options.mixins??[]).includes(e[i]))return}return e[i]}return i}).filter(t=>void 0!==t),t},Yu=t=>(t.template&&(t.render=null),t),Ru=(t,e={})=>((e={resolveComponentExtension:Fu,resolveComponentMixins:zu,resolveComponentRender:Yu,components:{},created:[],icons:{},login:null,textareaButtons:{},thirdParty:{},use:[],viewButtons:{},writerMarks:{},writerNodes:{},...e}).use=((t,e)=>{if(!1===Array.isArray(e))return[];for(const s of e)t.use(s);return e})(t,e.use),e.components=((t,e)=>{if(!1===$t(e))return;const s={};for(const[n,o]of Object.entries(e))try{s[n]=Nu(t,n,o)}catch(i){window.console.warn(i.message)}return s})(t,e.components),e),Hu=t=>{var e;const s=mu("menu",{entries:[],hover:!1,isOpen:!1}),i=null==(e=window.matchMedia)?void 0:e.call(window,"(max-width: 60rem)"),n=r({...s,blur(t){const e=document.querySelector(".k-panel-menu");if(!e||!1===i.matches)return!1;!1===document.querySelector(".k-panel-menu-proxy").contains(t.target)&&!1===e.contains(t.target)&&this.close()},close(){this.isOpen=!1,!1===i.matches&&localStorage.setItem("kirby$menu",!0)},escape(){if(!1===i.matches)return!1;this.close()},open(){this.isOpen=!0,!1===i.matches&&localStorage.removeItem("kirby$menu")},resize(){if(i.matches)return this.close();null!==localStorage.getItem("kirby$menu")?this.isOpen=!1:this.isOpen=!0},set(t){return this.entries=t,this.resize(),this.state()},toggle(){this.isOpen?this.close():this.open()}});return t.events.on("keydown.esc",n.escape.bind(n)),t.events.on("click",n.blur.bind(n)),null==i||i.addEventListener("change",n.resize.bind(n)),n},Uu=t=>({controller:null,requests:0,get isLoading(){return this.requests>0},open(e){t.menu.escape(),t.dialog.open({component:"k-search-dialog",props:{type:e}})},async query(e,s,i){var n;if(null==(n=this.controller)||n.abort(),this.controller=new AbortController,s.length<2)return{results:null,pagination:{}};this.requests++;try{const{$search:n}=await t.get(`/search/${e}`,{query:{query:s,...i},signal:this.controller.signal});return n}catch(o){if("AbortError"!==o.name)return{results:[],pagination:{}}}finally{this.requests--}}}),Vu=null==(t=window.matchMedia)?void 0:t.call(window,"(prefers-color-scheme: dark)"),Ku=t=>{const e=mu("theme",{setting:localStorage.getItem("kirby$theme"),system:(null==Vu?void 0:Vu.matches)?"dark":"light"}),s=r({...e,get config(){return t.config.theme},get current(){const t=this.setting??this.config;return"system"===t?this.system:t??this.system},reset(){this.setting=null,localStorage.removeItem("kirby$theme")},set(t){this.setting=t,localStorage.setItem("kirby$theme",t)}});return null==Vu||Vu.addEventListener("change",t=>{s.system=t.matches?"dark":"light"}),s},Wu=()=>{const t=mu("translation",{code:null,data:{},direction:"ltr",name:null,weekday:1});return r({...t,set(e){return t.set.call(this,e),document.documentElement.lang=this.code,document.body.dir=this.direction,this.state()},translate(t,e,s=null){if("string"!=typeof t)return;const i=this.data[t]??s;return"string"!=typeof i?i:Dc(i,e)}})};const Ju=t=>{const e=mu("upload",{abort:null,accept:"*",attributes:{},files:[],max:null,multiple:!0,preview:{},replacing:null,url:null});return r({...e,...Ou(),input:null,announce(){t.notification.success({context:"view"}),t.events.emit("model.update")},async cancel(){var t;await this.emit("cancel"),null==(t=this.abort)||t.abort(),this.completed.length>0&&(await this.emit("complete",this.completed),this.announce()),this.reset()},get completed(){return this.files.filter(t=>t.completed).map(t=>t.model)},async done(){t.dialog.close(),this.completed.length>0&&(await this.emit("complete",this.completed),await this.emit("done",this.completed),this.announce()),this.reset()},findDuplicate(t){return this.files.findLastIndex(e=>e.src.name===t.src.name&&e.src.type===t.src.type&&e.src.size===t.src.size&&e.src.lastModified===t.src.lastModified)},hasUniqueName(t){return this.files.filter(e=>e.name===t.name&&e.extension===t.extension).length<2},file(t){const e=URL.createObjectURL(t);return{...this.preview,completed:!1,error:null,extension:lc(t.name),filename:t.name,id:jc(),model:null,name:cc(t.name),niceSize:uc(t.size),progress:0,size:t.size,src:t,type:t.type,url:e}},open(e,s){e instanceof FileList?(this.set(s),this.select(e)):this.set(e);const i={component:"k-upload-dialog",props:{preview:this.preview},on:{open:t=>this.emit("open",t),cancel:()=>this.cancel(),submit:async()=>{t.dialog.isLoading=!0,await this.submit(),t.dialog.isLoading=!1}}};this.replacing&&(i.component="k-upload-replace-dialog",i.props.original=this.replacing),t.dialog.open(i)},pick(t){this.set(t),this.input=document.createElement("input"),this.input.type="file",this.input.classList.add("sr-only"),this.input.value=null,this.input.accept=this.accept,this.input.multiple=this.multiple,this.input.click(),this.input.addEventListener("change",e=>{!0===(null==t?void 0:t.immediate)?(this.set(t),this.select(e.target.files),this.submit()):this.open(e.target.files,t),this.input.remove()})},remove(t){this.files=this.files.filter(e=>e.id!==t)},replace(e,s){this.pick({...s,url:t.urls.api+"/"+e.link,accept:"."+e.extension+","+e.mime,multiple:!1,replacing:e})},reset(){e.reset.call(this),this.files.splice(0)},select(t,e){if(this.set(e),t instanceof Event&&(t=t.target.files),t instanceof FileList==!1)throw new Error("Please provide a FileList");t=(t=[...t]).map(t=>this.file(t)),this.files=[...this.files,...t],this.files=this.files.filter((t,e)=>this.findDuplicate(t)===e),null!==this.max&&(this.files=this.files.slice(-1*this.max)),this.emit("select",this.files)},set(t){if(t)return e.set.call(this,t),this.on={},this.addEventListeners(t.on??{}),1===this.max&&(this.multiple=!1),!1===this.multiple&&(this.max=1),this.state()},async submit(){var e;if(!this.url)throw new Error("The upload URL is missing");this.abort=new AbortController;const s=[];for(const i of this.files){if(!0===i.completed)continue;if(!1===this.hasUniqueName(i)){i.error=t.t("error.file.name.unique");continue}i.error=null,i.progress=0;const n={...this.attributes};s.push(async()=>await this.upload(i,n));const o=null==(e=this.attributes)?void 0:e.sort;null!=o&&this.attributes.sort++}if(await async function(t,e=20){let s=0,i=0;return new Promise(n=>{const o=e=>i=>{t[e]=i,s--,r()},r=()=>{if(s1?t.slice(i,l,t.type):t;n>1&&(e.headers={...e.headers,"Upload-Length":t.size,"Upload-Offset":i,"Upload-Id":o}),r=await Lc(c,{...e,progress:(s,n,o)=>{const r=n.size*(o/100),a=(i+r)/t.size;e.progress(s,t,Math.round(100*a))}})}return r}(e.src,{abort:this.abort.signal,attributes:s,filename:e.name+"."+e.extension,headers:{"x-csrf":t.system.csrf},url:this.url,progress:(t,s,i)=>{e.progress=i}},t.config.upload);e.completed=!0,e.model=i.data,t.events.emit("file.upload",e)}catch(i){t.error(i,!1),e.error=i.message,e.progress=0,t.events.emit("file.upload.error",e)}}})},Gu=t=>{const e=Au(t,"view",{abortController:null,component:null,isLoading:!1,on:{},path:null,props:{},query:{},referrer:null,timestamp:null,breadcrumb:[],breadcrumbLabel:null,icon:null,id:null,link:null,search:"pages",title:null});return r({...e,async load(t,s={}){var i;return null==(i=this.abortController)||i.abort(),e.load.call(this,t,s)},set(s){e.set.call(this,s),t.title=this.title;const i=this.url().toString();window.location.toString()!==i&&(window.history.pushState(null,null,i),window.scrollTo(0,0))},async submit(){throw new Error("Not yet implemented")}})},Xu={config:{},languages:[],license:"missing",multilang:!1,permissions:{},searches:{},urls:{}},Zu=["dialog","drawer"],Qu=["dropdown","language","menu","notification","system","translation","user"],tp={create(t={}){return this.isLoading=!1,this.isOffline=!1,this.activation=fu(),this.drag=ju(),this.events=Lu(this),this.searcher=Uu(this),this.theme=Ku(this),this.upload=Ju(this),this.language=qu(),this.menu=Hu(this),this.notification=Pu(this),this.system=mu("system",{ascii:{},csrf:null,isLocal:null,locales:{},slugs:[],title:null}),this.translation=Wu(),this.user=mu("user",{email:null,id:null,language:null,role:null,username:null}),this.dropdown=Bu(this),this.view=Gu(this),this.content=Cu(this),this.drawer=Iu(this),this.dialog=Eu(this),this.redirect=$u,this.reload=this.view.reload.bind(this.view),this.t=this.translation.translate.bind(this.translation),this.plugins=Ru(window.Vue,t),this.set(window.fiber),this.api=Su(this),r(this)},get context(){return this.dialog.isOpen?"dialog":this.drawer.isOpen?"drawer":"view"},get debug(){return!0===this.config.debug},deprecated(t){this.notification.deprecated(t)},get direction(){return this.translation.direction},error(t,e=!0){if("AbortError"!==t.name)return!0===this.debug&&console.error(t),!0===e?this.notification.error(t):void 0},async get(t,e={}){const{response:s}=await this.request(t,{method:"GET",...e});return(null==s?void 0:s.json)??{}},async open(t,e={}){try{if(!1===zc(t))this.set(t);else{this.isLoading=!0;const s=await this.get(t,e);this.set(s),this.isLoading=!1}return this.state()}catch(s){return this.error(s)}},overlays(){const t=[];return!0===this.drawer.isOpen&&t.push("drawer"),!0===this.dialog.isOpen&&t.push("dialog"),t},async post(t,e={},s={}){const{response:i}=await this.request(t,{method:"POST",body:e,...s});return i.json},async request(t,e={}){return wu(t,{referrer:this.view.path,csrf:this.system.csrf,...e})},async search(t,e,s){return void 0===e?this.searcher.open(t):this.searcher.query(t,e,s)},set(t={}){t=Object.fromEntries(Object.entries(t).map(([t,e])=>[t.replace("$",""),e]));for(const e in Xu){const s=t[e]??this[e]??Xu[e];typeof s==typeof Xu[e]&&(this[e]=s)}for(const e of Qu)($t(t[e])||Array.isArray(t[e]))&&this[e].set(t[e]);for(const e of Zu)if(!0===$t(t[e])){if(t[e].redirect)return this.open(t[e].redirect);this[e].open(t[e])}else void 0!==t[e]&&this[e].close(!0);!0===$t(t.dropdown)?this.dropdown.open(t.dropdown):void 0!==t.dropdown&&this.dropdown.close(),!0===$t(t.view)&&this.view.open(t.view)},state(){const t={};for(const e in Xu)t[e]=this[e]??Xu[e];for(const e of Qu)t[e]=this[e].state();for(const e of Zu)t[e]=this[e].state();return t.dropdown=this.dropdown.state(),t.view=this.view.state(),t},get title(){return document.title},set title(t){!1===Sc(this.system.title)&&(t+=" | "+this.system.title),document.title=t},url:(t="",e={},s)=>qc(t,e,s)};s.config.productionTip=!1,s.config.devtools=!0,s.use(Uc),s.use(hu),s.use(Gl),window.panel=s.prototype.$panel=tp.create(window.panel.plugins),window.panel.app=new s({render:()=>o(U)}),s.use(Vc),s.use(Xl),s.use(Kc),window.panel.app.$mount("#app");export{ut as n};
diff --git a/public/kirby/panel/dist/js/plugins.js b/public/kirby/panel/dist/js/plugins.js
new file mode 100644
index 0000000..ab11764
--- /dev/null
+++ b/public/kirby/panel/dist/js/plugins.js
@@ -0,0 +1,208 @@
+import Vue, {
+ computed,
+ customRef,
+ defineAsyncComponent,
+ defineComponent,
+ effectScope,
+ getCurrentInstance,
+ getCurrentScope,
+ inject,
+ isProxy,
+ isReactive,
+ isReadonly,
+ isRef,
+ isShallow,
+ markRaw,
+ nextTick,
+ onActivated,
+ onBeforeMount,
+ onBeforeUnmount,
+ onBeforeUpdate,
+ onDeactivated,
+ onErrorCaptured,
+ onMounted,
+ onRenderTracked,
+ onRenderTriggered,
+ onScopeDispose,
+ onServerPrefetch,
+ onUnmounted,
+ onUpdated,
+ provide,
+ proxyRefs,
+ reactive,
+ readonly,
+ ref,
+ shallowReactive,
+ shallowReadonly,
+ shallowRef,
+ toRaw,
+ toRef,
+ toRefs,
+ triggerRef,
+ unref,
+ useAttrs,
+ useCssModule,
+ useCssVars,
+ useListeners,
+ useSlots,
+ watch,
+ watchEffect,
+ watchPostEffect,
+ watchSyncEffect
+} from "vue";
+
+// Assign Vue to the global window object
+window.Vue = Vue;
+
+// Keep named exports on the Vue constructor (like UMD build in Kirby 4)
+// TODO: Remove this when Panel plugins are loaded as ES modules (Kirby 6)
+Object.assign(Vue, {
+ computed,
+ customRef,
+ defineAsyncComponent,
+ defineComponent,
+ effectScope,
+ getCurrentInstance,
+ getCurrentScope,
+ inject,
+ isProxy,
+ isReactive,
+ isReadonly,
+ isRef,
+ isShallow,
+ markRaw,
+ nextTick,
+ onActivated,
+ onBeforeMount,
+ onBeforeUnmount,
+ onBeforeUpdate,
+ onDeactivated,
+ onErrorCaptured,
+ onMounted,
+ onRenderTracked,
+ onRenderTriggered,
+ onScopeDispose,
+ onServerPrefetch,
+ onUnmounted,
+ onUpdated,
+ provide,
+ proxyRefs,
+ reactive,
+ readonly,
+ ref,
+ shallowReactive,
+ shallowReadonly,
+ shallowRef,
+ toRaw,
+ toRef,
+ toRefs,
+ triggerRef,
+ unref,
+ useAttrs,
+ useCssModule,
+ useCssVars,
+ useListeners,
+ useSlots,
+ watch,
+ watchEffect,
+ watchPostEffect,
+ watchSyncEffect
+});
+
+window.panel = window.panel ?? {};
+window.panel.plugins = {
+ components: {},
+ created: [],
+ icons: {},
+ routes: [],
+ textareaButtons: {},
+ thirdParty: {},
+ use: [],
+ viewButtons: {},
+ views: {},
+ writerMarks: {},
+ writerNodes: {}
+};
+
+window.panel.plugin = function (plugin, extensions) {
+ // Blocks
+ resolve(extensions, "blocks", (name, options) => {
+ if (typeof options === "string") {
+ options = { template: options };
+ }
+
+ window.panel.plugins.components[`k-block-type-${name}`] = {
+ extends: "k-block-type-default",
+ ...options
+ };
+ });
+
+ // Components
+ resolve(extensions, "components", (name, options) => {
+ window.panel.plugins.components[name] = options;
+ });
+
+ // Fields
+ resolve(extensions, "fields", (name, options) => {
+ window.panel.plugins.components[`k-${name}-field`] = options;
+ });
+
+ // Icons
+ resolve(extensions, "icons", (name, options) => {
+ window.panel.plugins.icons[name] = options;
+ });
+
+ // Sections
+ resolve(extensions, "sections", (name, options) => {
+ window.panel.plugins.components[`k-${name}-section`] = {
+ ...options,
+ mixins: ["section", ...(options.mixins ?? [])]
+ };
+ });
+
+ // View Buttons
+ resolve(extensions, "viewButtons", (name, options) => {
+ window.panel.plugins.components[`k-${name}-view-button`] = options;
+ });
+
+ // `Vue.use`
+ resolve(extensions, "use", (name, options) => {
+ window.panel.plugins.use.push(options);
+ });
+
+ // Vue `created` callback
+ if (extensions["created"]) {
+ window.panel.plugins.created.push(extensions["created"]);
+ }
+
+ // Login
+ if (extensions.login) {
+ window.panel.plugins.login = extensions.login;
+ }
+
+ // Textarea custom toolbar buttons
+ resolve(extensions, "textareaButtons", (name, options) => {
+ window.panel.plugins.textareaButtons[name] = options;
+ });
+
+ // Third-party plugins
+ resolve(extensions, "thirdParty", (name, options) => {
+ window.panel.plugins.thirdParty[name] = options;
+ });
+
+ // Writer custom marks
+ resolve(extensions, "writerMarks", (name, options) => {
+ window.panel.plugins.writerMarks[name] = options;
+ });
+
+ // Writer custom nodes
+ resolve(extensions, "writerNodes", function (name, options) {
+ window.panel.plugins.writerNodes[name] = options;
+ });
+};
+
+const resolve = (extensions, type, callback) => {
+ for (const [name, options] of Object.entries(extensions[type] ?? {})) {
+ callback(name, options);
+ }
+};
diff --git a/public/kirby/panel/dist/js/sortable.min.js b/public/kirby/panel/dist/js/sortable.min.js
new file mode 100644
index 0000000..63fd425
--- /dev/null
+++ b/public/kirby/panel/dist/js/sortable.min.js
@@ -0,0 +1,7 @@
+/**!
+ * Sortable 1.15.6
+ * @author RubaXa
+ * @author owenm
+ * @license MIT
+ */
+function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,o)}return n}function e(e){for(var n=1;n=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function a(t){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(t)}var l=a(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),s=a(/Edge/i),c=a(/firefox/i),u=a(/safari/i)&&!a(/chrome/i)&&!a(/android/i),d=a(/iP(ad|od|hone)/i),h=a(/chrome/i)&&a(/android/i),f={capture:!1,passive:!1};function p(t,e,n){t.addEventListener(e,n,!l&&f)}function g(t,e,n){t.removeEventListener(e,n,!l&&f)}function v(t,e){if(e){if(">"===e[0]&&(e=e.substring(1)),t)try{if(t.matches)return t.matches(e);if(t.msMatchesSelector)return t.msMatchesSelector(e);if(t.webkitMatchesSelector)return t.webkitMatchesSelector(e)}catch(n){return!1}return!1}}function m(t){return t.host&&t!==document&&t.host.nodeType?t.host:t.parentNode}function b(t,e,n,o){if(t){n=n||document;do{if(null!=e&&(">"===e[0]?t.parentNode===n&&v(t,e):v(t,e))||o&&t===n)return t;if(t===n)break}while(t=m(t))}return null}var y,w=/\s+/g;function E(t,e,n){if(t&&e)if(t.classList)t.classList[n?"add":"remove"](e);else{var o=(" "+t.className+" ").replace(w," ").replace(" "+e+" "," ");t.className=(o+(n?" "+e:"")).replace(w," ")}}function D(t,e,n){var o=t&&t.style;if(o){if(void 0===n)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(t,""):t.currentStyle&&(n=t.currentStyle),void 0===e?n:n[e];e in o||-1!==e.indexOf("webkit")||(e="-webkit-"+e),o[e]=n+("string"==typeof n?"":"px")}}function _(t,e){var n="";if("string"==typeof t)n=t;else do{var o=D(t,"transform");o&&"none"!==o&&(n=o+" "+n)}while(!e&&(t=t.parentNode));var i=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return i&&new i(n)}function S(t,e,n){if(t){var o=t.getElementsByTagName(e),i=0,r=o.length;if(n)for(;i=C(o)[n]))return o;if(o===T())break;o=P(o,!1)}return!1}function O(t,e,n,o){for(var i=0,r=0,a=t.children;r2&&void 0!==arguments[2]?arguments[2]:{},i=o.evt,a=r(o,W);L.pluginEvent.bind(Yt)(t,n,e({dragEl:U,parentEl:V,ghostEl:q,rootEl:Z,nextEl:K,lastDownEl:Q,cloneEl:$,cloneHidden:J,dragStarted:ht,putSortable:rt,activeSortable:Yt.active,originalEvent:i,oldIndex:tt,oldDraggableIndex:nt,newIndex:et,newDraggableIndex:ot,hideGhostForTarget:Pt,unhideGhostForTarget:It,cloneNowHidden:function(){J=!0},cloneNowShown:function(){J=!1},dispatchSortableEvent:function(t){G({sortable:n,name:t,originalEvent:i})}},a))};function G(t){!function(t){var n=t.sortable,o=t.rootEl,i=t.name,r=t.targetEl,a=t.cloneEl,c=t.toEl,u=t.fromEl,d=t.oldIndex,h=t.newIndex,f=t.oldDraggableIndex,p=t.newDraggableIndex,g=t.originalEvent,v=t.putSortable,m=t.extraEventProperties;if(n=n||o&&o[B]){var b,y=n.options,w="on"+i.charAt(0).toUpperCase()+i.substr(1);!window.CustomEvent||l||s?(b=document.createEvent("Event")).initEvent(i,!0,!0):b=new CustomEvent(i,{bubbles:!0,cancelable:!0}),b.to=c||o,b.from=u||o,b.item=r||o,b.clone=a,b.oldIndex=d,b.newIndex=h,b.oldDraggableIndex=f,b.newDraggableIndex=p,b.originalEvent=g,b.pullMode=v?v.lastPutMode:void 0;var E=e(e({},m),L.getEventProperties(i,n));for(var D in E)b[D]=E[D];o&&o.dispatchEvent(b),y[w]&&y[w].call(n,b)}}(e({putSortable:rt,cloneEl:$,targetEl:U,rootEl:Z,oldIndex:tt,oldDraggableIndex:nt,newIndex:et,newDraggableIndex:ot},t))}var U,V,q,Z,K,Q,$,J,tt,et,nt,ot,it,rt,at,lt,st,ct,ut,dt,ht,ft,pt,gt,vt,mt=!1,bt=!1,yt=[],wt=!1,Et=!1,Dt=[],_t=!1,St=[],Tt="undefined"!=typeof document,Ct=d,xt=s||l?"cssFloat":"float",Ot=Tt&&!h&&!d&&"draggable"in document.createElement("div"),Mt=function(){if(Tt){if(l)return!1;var t=document.createElement("x");return t.style.cssText="pointer-events:auto","auto"===t.style.pointerEvents}}(),Nt=function(t,e){var n=D(t),o=parseInt(n.width)-parseInt(n.paddingLeft)-parseInt(n.paddingRight)-parseInt(n.borderLeftWidth)-parseInt(n.borderRightWidth),i=O(t,0,e),r=O(t,1,e),a=i&&D(i),l=r&&D(r),s=a&&parseInt(a.marginLeft)+parseInt(a.marginRight)+C(i).width,c=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+C(r).width;if("flex"===n.display)return"column"===n.flexDirection||"column-reverse"===n.flexDirection?"vertical":"horizontal";if("grid"===n.display)return n.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(i&&a.float&&"none"!==a.float){var u="left"===a.float?"left":"right";return!r||"both"!==l.clear&&l.clear!==u?"horizontal":"vertical"}return i&&("block"===a.display||"flex"===a.display||"table"===a.display||"grid"===a.display||s>=o&&"none"===n[xt]||r&&"none"===n[xt]&&s+c>o)?"vertical":"horizontal"},At=function(t){function e(t,n){return function(o,i,r,a){var l=o.options.group.name&&i.options.group.name&&o.options.group.name===i.options.group.name;if(null==t&&(n||l))return!0;if(null==t||!1===t)return!1;if(n&&"clone"===t)return t;if("function"==typeof t)return e(t(o,i,r,a),n)(o,i,r,a);var s=(n?o:i).options.group.name;return!0===t||"string"==typeof t&&t===s||t.join&&t.indexOf(s)>-1}}var o={},i=t.group;i&&"object"==n(i)||(i={name:i}),o.name=i.name,o.checkPull=e(i.pull,!0),o.checkPut=e(i.put),o.revertClone=i.revertClone,t.group=o},Pt=function(){!Mt&&q&&D(q,"display","none")},It=function(){!Mt&&q&&D(q,"display","")};Tt&&!h&&document.addEventListener("click",function(t){if(bt)return t.preventDefault(),t.stopPropagation&&t.stopPropagation(),t.stopImmediatePropagation&&t.stopImmediatePropagation(),bt=!1,!1},!0);var kt=function(t){if(U){t=t.touches?t.touches[0]:t;var e=(i=t.clientX,r=t.clientY,yt.some(function(t){var e=t[B].options.emptyInsertThreshold;if(e&&!M(t)){var n=C(t),o=i>=n.left-e&&i<=n.right+e,l=r>=n.top-e&&r<=n.bottom+e;return o&&l?a=t:void 0}}),a);if(e){var n={};for(var o in t)t.hasOwnProperty(o)&&(n[o]=t[o]);n.target=n.rootEl=e,n.preventDefault=void 0,n.stopPropagation=void 0,e[B]._onDragOver(n)}}var i,r,a},Xt=function(t){U&&U.parentNode[B]._isOutsideThisEl(t.target)};function Yt(t,e){if(!t||!t.nodeType||1!==t.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(t));this.el=t,this.options=e=i({},e),t[B]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(t.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Nt(t,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,e){t.setData("Text",e.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Yt.supportPointer&&"PointerEvent"in window&&(!u||d),emptyInsertThreshold:5};for(var o in L.initializePlugins(this,t,n),n)!(o in e)&&(e[o]=n[o]);for(var r in At(e),this)"_"===r.charAt(0)&&"function"==typeof this[r]&&(this[r]=this[r].bind(this));this.nativeDraggable=!e.forceFallback&&Ot,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?p(t,"pointerdown",this._onTapStart):(p(t,"mousedown",this._onTapStart),p(t,"touchstart",this._onTapStart)),this.nativeDraggable&&(p(t,"dragover",this),p(t,"dragenter",this)),yt.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),i(this,F())}function Rt(t,e,n,o,i,r,a,c){var u,d,h=t[B],f=h.options.onMove;return!window.CustomEvent||l||s?(u=document.createEvent("Event")).initEvent("move",!0,!0):u=new CustomEvent("move",{bubbles:!0,cancelable:!0}),u.to=e,u.from=t,u.dragged=n,u.draggedRect=o,u.related=i||e,u.relatedRect=r||C(e),u.willInsertAfter=c,u.originalEvent=a,t.dispatchEvent(u),f&&(d=f.call(h,u,a)),d}function Bt(t){t.draggable=!1}function Ft(){_t=!1}function jt(t){for(var e=t.tagName+t.className+t.src+t.href+t.textContent,n=e.length,o=0;n--;)o+=e.charCodeAt(n);return o.toString(36)}function Ht(t){return setTimeout(t,0)}function Lt(t){return clearTimeout(t)}Yt.prototype={constructor:Yt,_isOutsideThisEl:function(t){this.el.contains(t)||t===this.el||(ft=null)},_getDirection:function(t,e){return"function"==typeof this.options.direction?this.options.direction.call(this,t,e,U):this.options.direction},_onTapStart:function(t){if(t.cancelable){var e=this,n=this.el,o=this.options,i=o.preventOnFilter,r=t.type,a=t.touches&&t.touches[0]||t.pointerType&&"touch"===t.pointerType&&t,l=(a||t).target,s=t.target.shadowRoot&&(t.path&&t.path[0]||t.composedPath&&t.composedPath()[0])||l,c=o.filter;if(function(t){St.length=0;var e=t.getElementsByTagName("input"),n=e.length;for(;n--;){var o=e[n];o.checked&&St.push(o)}}(n),!U&&!(/mousedown|pointerdown/.test(r)&&0!==t.button||o.disabled)&&!s.isContentEditable&&(this.nativeDraggable||!u||!l||"SELECT"!==l.tagName.toUpperCase())&&!((l=b(l,o.draggable,n,!1))&&l.animated||Q===l)){if(tt=N(l),nt=N(l,o.draggable),"function"==typeof c){if(c.call(this,t,l,this))return G({sortable:e,rootEl:s,name:"filter",targetEl:l,toEl:n,fromEl:n}),z("filter",e,{evt:t}),void(i&&t.preventDefault())}else if(c&&(c=c.split(",").some(function(o){if(o=b(s,o.trim(),n,!1))return G({sortable:e,rootEl:o,name:"filter",targetEl:l,fromEl:n,toEl:n}),z("filter",e,{evt:t}),!0})))return void(i&&t.preventDefault());o.handle&&!b(s,o.handle,n,!1)||this._prepareDragStart(t,a,l)}}},_prepareDragStart:function(t,e,n){var o,i=this,r=i.el,a=i.options,u=r.ownerDocument;if(n&&!U&&n.parentNode===r){var d=C(n);if(Z=r,V=(U=n).parentNode,K=U.nextSibling,Q=n,it=a.group,Yt.dragged=U,at={target:U,clientX:(e||t).clientX,clientY:(e||t).clientY},ut=at.clientX-d.left,dt=at.clientY-d.top,this._lastX=(e||t).clientX,this._lastY=(e||t).clientY,U.style["will-change"]="all",o=function(){z("delayEnded",i,{evt:t}),Yt.eventCanceled?i._onDrop():(i._disableDelayedDragEvents(),!c&&i.nativeDraggable&&(U.draggable=!0),i._triggerDragStart(t,e),G({sortable:i,name:"choose",originalEvent:t}),E(U,a.chosenClass,!0))},a.ignore.split(",").forEach(function(t){S(U,t.trim(),Bt)}),p(u,"dragover",kt),p(u,"mousemove",kt),p(u,"touchmove",kt),a.supportPointer?(p(u,"pointerup",i._onDrop),!this.nativeDraggable&&p(u,"pointercancel",i._onDrop)):(p(u,"mouseup",i._onDrop),p(u,"touchend",i._onDrop),p(u,"touchcancel",i._onDrop)),c&&this.nativeDraggable&&(this.options.touchStartThreshold=4,U.draggable=!0),z("delayStart",this,{evt:t}),!a.delay||a.delayOnTouchOnly&&!e||this.nativeDraggable&&(s||l))o();else{if(Yt.eventCanceled)return void this._onDrop();a.supportPointer?(p(u,"pointerup",i._disableDelayedDrag),p(u,"pointercancel",i._disableDelayedDrag)):(p(u,"mouseup",i._disableDelayedDrag),p(u,"touchend",i._disableDelayedDrag),p(u,"touchcancel",i._disableDelayedDrag)),p(u,"mousemove",i._delayedDragTouchMoveHandler),p(u,"touchmove",i._delayedDragTouchMoveHandler),a.supportPointer&&p(u,"pointermove",i._delayedDragTouchMoveHandler),i._dragStartTimer=setTimeout(o,a.delay)}}},_delayedDragTouchMoveHandler:function(t){var e=t.touches?t.touches[0]:t;Math.max(Math.abs(e.clientX-this._lastX),Math.abs(e.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){U&&Bt(U),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var t=this.el.ownerDocument;g(t,"mouseup",this._disableDelayedDrag),g(t,"touchend",this._disableDelayedDrag),g(t,"touchcancel",this._disableDelayedDrag),g(t,"pointerup",this._disableDelayedDrag),g(t,"pointercancel",this._disableDelayedDrag),g(t,"mousemove",this._delayedDragTouchMoveHandler),g(t,"touchmove",this._delayedDragTouchMoveHandler),g(t,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(t,e){e=e||"touch"==t.pointerType&&t,!this.nativeDraggable||e?this.options.supportPointer?p(document,"pointermove",this._onTouchMove):p(document,e?"touchmove":"mousemove",this._onTouchMove):(p(U,"dragend",this),p(Z,"dragstart",this._onDragStart));try{document.selection?Ht(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch(n){}},_dragStarted:function(t,e){if(mt=!1,Z&&U){z("dragStarted",this,{evt:e}),this.nativeDraggable&&p(document,"dragover",Xt);var n=this.options;!t&&E(U,n.dragClass,!1),E(U,n.ghostClass,!0),Yt.active=this,t&&this._appendGhost(),G({sortable:this,name:"start",originalEvent:e})}else this._nulling()},_emulateDragOver:function(){if(lt){this._lastX=lt.clientX,this._lastY=lt.clientY,Pt();for(var t=document.elementFromPoint(lt.clientX,lt.clientY),e=t;t&&t.shadowRoot&&(t=t.shadowRoot.elementFromPoint(lt.clientX,lt.clientY))!==e;)e=t;if(U.parentNode[B]._isOutsideThisEl(t),e)do{if(e[B]){if(e[B]._onDragOver({clientX:lt.clientX,clientY:lt.clientY,target:t,rootEl:e})&&!this.options.dragoverBubble)break}t=e}while(e=m(e));It()}},_onTouchMove:function(t){if(at){var e=this.options,n=e.fallbackTolerance,o=e.fallbackOffset,i=t.touches?t.touches[0]:t,r=q&&_(q,!0),a=q&&r&&r.a,l=q&&r&&r.d,s=Ct&&vt&&A(vt),c=(i.clientX-at.clientX+o.x)/(a||1)+(s?s[0]-Dt[0]:0)/(a||1),u=(i.clientY-at.clientY+o.y)/(l||1)+(s?s[1]-Dt[1]:0)/(l||1);if(!Yt.active&&!mt){if(n&&Math.max(Math.abs(i.clientX-this._lastX),Math.abs(i.clientY-this._lastY))i.right+r||t.clientY>o.bottom&&t.clientX>o.left:t.clientY>i.bottom+r||t.clientX>o.right&&t.clientY>o.top}(t,r,this)&&!v.animated){if(v===U)return W(!1);if(v&&a===t.target&&(l=v),l&&(o=C(l)),!1!==Rt(Z,a,U,n,l,o,t,!!l))return L(),v&&v.nextSibling?a.insertBefore(U,v.nextSibling):a.appendChild(U),V=a,Q(),W(!0)}else if(v&&function(t,e,n){var o=C(O(n.el,0,n.options,!0)),i=R(n.el,n.options,q),r=10;return e?t.clientXu+c*r/2:sd-gt)return-pt}else if(s>u+c*(1-i)/2&&sd-c*r/2))return s>u+c/2?1:-1;return 0}(t,l,o,r,T?1:s.swapThreshold,null==s.invertedSwapThreshold?s.swapThreshold:s.invertedSwapThreshold,Et,ft===l),0!==y){var k=N(U);do{k-=y,_=V.children[k]}while(_&&("none"===D(_,"display")||_===q))}if(0===y||_===l)return W(!1);ft=l,pt=y;var Y=l.nextElementSibling,F=!1,j=Rt(Z,a,U,n,l,o,t,F=1===y);if(!1!==j)return 1!==j&&-1!==j||(F=1===j),_t=!0,setTimeout(Ft,30),L(),F&&!Y?a.appendChild(U):l.parentNode.insertBefore(U,F?Y:l),P&&X(P,0,I-P.scrollTop),V=U.parentNode,void 0===w||Et||(gt=Math.abs(w-C(l)[A])),Q(),W(!0)}if(a.contains(U))return W(!1)}return!1}function H(s,c){z(s,p,e({evt:t,isOwner:d,axis:r?"vertical":"horizontal",revert:i,dragRect:n,targetRect:o,canSort:h,fromSortable:f,target:l,completed:W,onMove:function(e,o){return Rt(Z,a,U,n,e,C(e),t,o)},changed:Q},c))}function L(){H("dragOverAnimationCapture"),p.captureAnimationState(),p!==f&&f.captureAnimationState()}function W(e){return H("dragOverCompleted",{insertion:e}),e&&(d?u._hideClone():u._showClone(p),p!==f&&(E(U,rt?rt.options.ghostClass:u.options.ghostClass,!1),E(U,s.ghostClass,!0)),rt!==p&&p!==Yt.active?rt=p:p===Yt.active&&rt&&(rt=null),f===p&&(p._ignoreWhileAnimating=l),p.animateAll(function(){H("dragOverAnimationComplete"),p._ignoreWhileAnimating=null}),p!==f&&(f.animateAll(),f._ignoreWhileAnimating=null)),(l===U&&!U.animated||l===a&&!l.animated)&&(ft=null),s.dragoverBubble||t.rootEl||l===document||(U.parentNode[B]._isOutsideThisEl(t.target),!e&&kt(t)),!s.dragoverBubble&&t.stopPropagation&&t.stopPropagation(),g=!0}function Q(){et=N(U),ot=N(U,s.draggable),G({sortable:p,name:"change",toEl:a,newIndex:et,newDraggableIndex:ot,originalEvent:t})}},_ignoreWhileAnimating:null,_offMoveEvents:function(){g(document,"mousemove",this._onTouchMove),g(document,"touchmove",this._onTouchMove),g(document,"pointermove",this._onTouchMove),g(document,"dragover",kt),g(document,"mousemove",kt),g(document,"touchmove",kt)},_offUpEvents:function(){var t=this.el.ownerDocument;g(t,"mouseup",this._onDrop),g(t,"touchend",this._onDrop),g(t,"pointerup",this._onDrop),g(t,"pointercancel",this._onDrop),g(t,"touchcancel",this._onDrop),g(document,"selectstart",this)},_onDrop:function(t){var e=this.el,n=this.options;et=N(U),ot=N(U,n.draggable),z("drop",this,{evt:t}),V=U&&U.parentNode,et=N(U),ot=N(U,n.draggable),Yt.eventCanceled||(mt=!1,Et=!1,wt=!1,clearInterval(this._loopId),clearTimeout(this._dragStartTimer),Lt(this.cloneId),Lt(this._dragStartId),this.nativeDraggable&&(g(document,"drop",this),g(e,"dragstart",this._onDragStart)),this._offMoveEvents(),this._offUpEvents(),u&&D(document.body,"user-select",""),D(U,"transform",""),t&&(ht&&(t.cancelable&&t.preventDefault(),!n.dropBubble&&t.stopPropagation()),q&&q.parentNode&&q.parentNode.removeChild(q),(Z===V||rt&&"clone"!==rt.lastPutMode)&&$&&$.parentNode&&$.parentNode.removeChild($),U&&(this.nativeDraggable&&g(U,"dragend",this),Bt(U),U.style["will-change"]="",ht&&!mt&&E(U,rt?rt.options.ghostClass:this.options.ghostClass,!1),E(U,this.options.chosenClass,!1),G({sortable:this,name:"unchoose",toEl:V,newIndex:null,newDraggableIndex:null,originalEvent:t}),Z!==V?(et>=0&&(G({rootEl:V,name:"add",toEl:V,fromEl:Z,originalEvent:t}),G({sortable:this,name:"remove",toEl:V,originalEvent:t}),G({rootEl:V,name:"sort",toEl:V,fromEl:Z,originalEvent:t}),G({sortable:this,name:"sort",toEl:V,originalEvent:t})),rt&&rt.save()):et!==tt&&et>=0&&(G({sortable:this,name:"update",toEl:V,originalEvent:t}),G({sortable:this,name:"sort",toEl:V,originalEvent:t})),Yt.active&&(null!=et&&-1!==et||(et=tt,ot=nt),G({sortable:this,name:"end",toEl:V,originalEvent:t}),this.save())))),this._nulling()},_nulling:function(){z("nulling",this),Z=U=V=q=K=$=Q=J=at=lt=ht=et=ot=tt=nt=ft=pt=rt=it=Yt.dragged=Yt.ghost=Yt.clone=Yt.active=null,St.forEach(function(t){t.checked=!0}),St.length=st=ct=0},handleEvent:function(t){switch(t.type){case"drop":case"dragend":this._onDrop(t);break;case"dragenter":case"dragover":U&&(this._onDragOver(t),function(t){t.dataTransfer&&(t.dataTransfer.dropEffect="move");t.cancelable&&t.preventDefault()}(t));break;case"selectstart":t.preventDefault()}},toArray:function(){for(var t,e=[],n=this.el.children,o=0,i=n.length,r=this.options;o>1}},t.from=function(e){if(e instanceof t)return e;var n=[];if(e)for(var r in e)n.push(r,e[r]);return new t(n)};class i{constructor(e,t){if(this.content=e,this.size=t||0,null==t)for(let n=0;ne&&!1!==n(l,r+s,i||null,o)&&l.content.size){let i=s+1;l.nodesBetween(Math.max(0,e-i),Math.min(l.content.size,t-i),n,r+i)}s=a}}descendants(e){this.nodesBetween(0,this.size,e)}textBetween(e,t,n,r){let i="",o=!0;return this.nodesBetween(e,t,(s,l)=>{let a=s.isText?s.text.slice(Math.max(e,l)-l,t-l):s.isLeaf?r?"function"==typeof r?r(s):r:s.type.spec.leafText?s.type.spec.leafText(s):"":"";s.isBlock&&(s.isLeaf&&a||s.isTextblock)&&n&&(o?o=!1:i+=n),i+=a},0),i}append(e){if(!e.size)return this;if(!this.size)return e;let t=this.lastChild,n=e.firstChild,r=this.content.slice(),o=0;for(t.isText&&t.sameMarkup(n)&&(r[r.length-1]=t.withText(t.text+n.text),o=1);oe)for(let i=0,o=0;oe&&((ot)&&(s=s.isText?s.cut(Math.max(0,e-o),Math.min(s.text.length,t-o)):s.cut(Math.max(0,e-o-1),Math.min(s.content.size,t-o-1))),n.push(s),r+=s.nodeSize),o=l}return new i(n,r)}cutByIndex(e,t){return e==t?i.empty:0==e&&t==this.content.length?this:new i(this.content.slice(e,t))}replaceChild(e,t){let n=this.content[e];if(n==t)return this;let r=this.content.slice(),o=this.size+t.nodeSize-n.nodeSize;return r[e]=t,new i(r,o)}addToStart(e){return new i([e].concat(this.content),this.size+e.nodeSize)}addToEnd(e){return new i(this.content.concat(e),this.size+e.nodeSize)}eq(e){if(this.content.length!=e.content.length)return!1;for(let t=0;tthis.size||e<0)throw new RangeError(`Position ${e} outside of fragment (${this})`);for(let t=0,n=0;;t++){let r=n+this.child(t).nodeSize;if(r>=e)return r==e?s(t+1,r):s(t,n);n=r}}toString(){return"<"+this.toStringInner()+">"}toStringInner(){return this.content.join(", ")}toJSON(){return this.content.length?this.content.map(e=>e.toJSON()):null}static fromJSON(e,t){if(!t)return i.empty;if(!Array.isArray(t))throw new RangeError("Invalid input for Fragment.fromJSON");return new i(t.map(e.nodeFromJSON))}static fromArray(e){if(!e.length)return i.empty;let t,n=0;for(let r=0;rthis.type.rank&&(t||(t=e.slice(0,r)),t.push(this),n=!0),t&&t.push(i)}}return t||(t=e.slice()),n||t.push(this),t}removeFromSet(e){for(let t=0;te.type.rank-t.type.rank),t}}a.none=[];class h extends Error{}class c{constructor(e,t,n){this.content=e,this.openStart=t,this.openEnd=n}get size(){return this.content.size-this.openStart-this.openEnd}insertAt(e,t){let n=p(this.content,e+this.openStart,t);return n&&new c(n,this.openStart,this.openEnd)}removeBetween(e,t){return new c(d(this.content,e+this.openStart,t+this.openStart),this.openStart,this.openEnd)}eq(e){return this.content.eq(e.content)&&this.openStart==e.openStart&&this.openEnd==e.openEnd}toString(){return this.content+"("+this.openStart+","+this.openEnd+")"}toJSON(){if(!this.content.size)return null;let e={content:this.content.toJSON()};return this.openStart>0&&(e.openStart=this.openStart),this.openEnd>0&&(e.openEnd=this.openEnd),e}static fromJSON(e,t){if(!t)return c.empty;let n=t.openStart||0,r=t.openEnd||0;if("number"!=typeof n||"number"!=typeof r)throw new RangeError("Invalid input for Slice.fromJSON");return new c(i.fromJSON(e,t.content),n,r)}static maxOpen(e,t=!0){let n=0,r=0;for(let i=e.firstChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.firstChild)n++;for(let i=e.lastChild;i&&!i.isLeaf&&(t||!i.type.spec.isolating);i=i.lastChild)r++;return new c(e,n,r)}}function d(e,t,n){let{index:r,offset:i}=e.findIndex(t),o=e.maybeChild(r),{index:s,offset:l}=e.findIndex(n);if(i==t||o.isText){if(l!=n&&!e.child(s).isText)throw new RangeError("Removing non-flat range");return e.cut(0,t).append(e.cut(n))}if(r!=s)throw new RangeError("Removing non-flat range");return e.replaceChild(r,o.copy(d(o.content,t-i-1,n-i-1)))}function p(e,t,n,r){let{index:i,offset:o}=e.findIndex(t),s=e.maybeChild(i);if(o==t||s.isText)return r&&!r.canReplace(i,i,n)?null:e.cut(0,t).append(n).append(e.cut(t));let l=p(s.content,t-o-1,n,s);return l&&e.replaceChild(i,s.copy(l))}function u(e,t,n){if(n.openStart>e.depth)throw new h("Inserted content deeper than insertion position");if(e.depth-n.openStart!=t.depth-n.openEnd)throw new h("Inconsistent open depths");return f(e,t,n,0)}function f(e,t,n,r){let o=e.index(r),s=e.node(r);if(o==t.index(r)&&r=0;o--)r=t.node(o).copy(i.from(r));return{start:r.resolveNoCache(e.openStart+n),end:r.resolveNoCache(r.content.size-e.openEnd-n)}}(n,e);return v(s,x(e,o,l,t,r))}{let r=e.parent,i=r.content;return v(r,i.cut(0,e.parentOffset).append(n.content).append(i.cut(t.parentOffset)))}}return v(s,S(e,t,r))}function m(e,t){if(!t.type.compatibleContent(e.type))throw new h("Cannot join "+t.type.name+" onto "+e.type.name)}function g(e,t,n){let r=e.node(n);return m(r,t.node(n)),r}function y(e,t){let n=t.length-1;n>=0&&e.isText&&e.sameMarkup(t[n])?t[n]=e.withText(t[n].text+e.text):t.push(e)}function w(e,t,n,r){let i=(t||e).node(n),o=0,s=t?t.index(n):i.childCount;e&&(o=e.index(n),e.depth>n?o++:e.textOffset&&(y(e.nodeAfter,r),o++));for(let l=o;lo&&g(e,t,o+1),l=r.depth>o&&g(n,r,o+1),a=[];return w(null,e,o,a),s&&l&&t.index(o)==n.index(o)?(m(s,l),y(v(s,x(e,t,n,r,o+1)),a)):(s&&y(v(s,S(e,t,o+1)),a),w(t,n,o,a),l&&y(v(l,S(n,r,o+1)),a)),w(r,null,o,a),new i(a)}function S(e,t,n){let r=[];if(w(null,e,n,r),e.depth>n){y(v(g(e,t,n+1),S(e,t,n+1)),r)}return w(t,null,n,r),new i(r)}c.empty=new c(i.empty,0,0);class b{constructor(e,t,n){this.pos=e,this.path=t,this.parentOffset=n,this.depth=t.length/3-1}resolveDepth(e){return null==e?this.depth:e<0?this.depth+e:e}get parent(){return this.node(this.depth)}get doc(){return this.node(0)}node(e){return this.path[3*this.resolveDepth(e)]}index(e){return this.path[3*this.resolveDepth(e)+1]}indexAfter(e){return e=this.resolveDepth(e),this.index(e)+(e!=this.depth||this.textOffset?1:0)}start(e){return 0==(e=this.resolveDepth(e))?0:this.path[3*e-1]+1}end(e){return e=this.resolveDepth(e),this.start(e)+this.node(e).content.size}before(e){if(!(e=this.resolveDepth(e)))throw new RangeError("There is no position before the top-level node");return e==this.depth+1?this.pos:this.path[3*e-1]}after(e){if(!(e=this.resolveDepth(e)))throw new RangeError("There is no position after the top-level node");return e==this.depth+1?this.pos:this.path[3*e-1]+this.path[3*e].nodeSize}get textOffset(){return this.pos-this.path[this.path.length-1]}get nodeAfter(){let e=this.parent,t=this.index(this.depth);if(t==e.childCount)return null;let n=this.pos-this.path[this.path.length-1],r=e.child(t);return n?e.child(t).cut(n):r}get nodeBefore(){let e=this.index(this.depth),t=this.pos-this.path[this.path.length-1];return t?this.parent.child(e).cut(0,t):0==e?null:this.parent.child(e-1)}posAtIndex(e,t){t=this.resolveDepth(t);let n=this.path[3*t],r=0==t?0:this.path[3*t-1]+1;for(let i=0;i0;t--)if(this.start(t)<=e&&this.end(t)>=e)return t;return 0}blockRange(e=this,t){if(e.pos=0;n--)if(e.pos<=this.end(n)&&(!t||t(this.node(n))))return new O(this,e,n);return null}sameParent(e){return this.pos-this.parentOffset==e.pos-e.parentOffset}max(e){return e.pos>this.pos?e:this}min(e){return e.pos=0&&t<=e.content.size))throw new RangeError("Position "+t+" out of range");let n=[],r=0,i=t;for(let o=e;;){let{index:e,offset:t}=o.content.findIndex(i),s=i-t;if(n.push(o,e,r+t),!s)break;if(o=o.child(e),o.isText)break;i=s-1,r+=t+1}return new b(t,n,i)}static resolveCached(e,t){let n=C.get(e);if(n)for(let i=0;ie&&this.nodesBetween(e,t,e=>(n.isInSet(e.marks)&&(r=!0),!r)),r}get isBlock(){return this.type.isBlock}get isTextblock(){return this.type.isTextblock}get inlineContent(){return this.type.inlineContent}get isInline(){return this.type.isInline}get isText(){return this.type.isText}get isLeaf(){return this.type.isLeaf}get isAtom(){return this.type.isAtom}toString(){if(this.type.spec.toDebugString)return this.type.spec.toDebugString(this);let e=this.type.name;return this.content.size&&(e+="("+this.content.toStringInner()+")"),E(this.marks,e)}contentMatchAt(e){let t=this.type.contentMatch.matchFragment(this.content,0,e);if(!t)throw new Error("Called contentMatchAt on a node with invalid content");return t}canReplace(e,t,n=i.empty,r=0,o=n.childCount){let s=this.contentMatchAt(e).matchFragment(n,r,o),l=s&&s.matchFragment(this.content,t);if(!l||!l.validEnd)return!1;for(let i=r;ie.type.name)}`);this.content.forEach(e=>e.check())}toJSON(){let e={type:this.type.name};for(let t in this.attrs){e.attrs=this.attrs;break}return this.content.size&&(e.content=this.content.toJSON()),this.marks.length&&(e.marks=this.marks.map(e=>e.toJSON())),e}static fromJSON(e,t){if(!t)throw new RangeError("Invalid input for Node.fromJSON");let n;if(t.marks){if(!Array.isArray(t.marks))throw new RangeError("Invalid mark data for Node.fromJSON");n=t.marks.map(e.markFromJSON)}if("text"==t.type){if("string"!=typeof t.text)throw new RangeError("Invalid text node in JSON");return e.text(t.text,n)}let r=i.fromJSON(e,t.content),o=e.nodeType(t.type).create(t.attrs,r,n);return o.type.checkAttrs(o.attrs),o}}D.prototype.text=void 0;class T extends D{constructor(e,t,n,r){if(super(e,t,null,r),!n)throw new RangeError("Empty text nodes are not allowed");this.text=n}toString(){return this.type.spec.toDebugString?this.type.spec.toDebugString(this):E(this.marks,JSON.stringify(this.text))}get textContent(){return this.text}textBetween(e,t){return this.text.slice(e,t)}get nodeSize(){return this.text.length}mark(e){return e==this.marks?this:new T(this.type,this.attrs,this.text,e)}withText(e){return e==this.text?this:new T(this.type,this.attrs,e,this.marks)}cut(e=0,t=this.text.length){return 0==e&&t==this.text.length?this:this.withText(this.text.slice(e,t))}eq(e){return this.sameMarkup(e)&&this.text==e.text}toJSON(){let e=super.toJSON();return e.text=this.text,e}}function E(e,t){for(let n=e.length-1;n>=0;n--)t=e[n].type.name+"("+t+")";return t}class A{constructor(e){this.validEnd=e,this.next=[],this.wrapCache=[]}static parse(e,t){let n=new $(e,t);if(null==n.next)return A.empty;let r=R(n);n.next&&n.err("Unexpected trailing text");let i=function(e){let t=Object.create(null);return n(F(e,0));function n(r){let i=[];r.forEach(t=>{e[t].forEach(({term:t,to:n})=>{if(!t)return;let r;for(let e=0;e{r||i.push([t,r=[]]),-1==r.indexOf(e)&&r.push(e)})})});let o=t[r.join(",")]=new A(r.indexOf(e.length-1)>-1);for(let e=0;ee.to=t)}function o(e,t){if("choice"==e.type)return e.exprs.reduce((e,n)=>e.concat(o(n,t)),[]);if("seq"!=e.type){if("star"==e.type){let s=n();return r(t,s),i(o(e.expr,s),s),[r(s)]}if("plus"==e.type){let s=n();return i(o(e.expr,t),s),i(o(e.expr,s),s),[r(s)]}if("opt"==e.type)return[r(t)].concat(o(e.expr,t));if("range"==e.type){let s=t;for(let t=0;te.createAndFill()));for(let e=0;e=this.next.length)throw new RangeError(`There's no ${e}th edge in this content match`);return this.next[e]}toString(){let e=[];return function t(n){e.push(n);for(let r=0;r{let r=n+(t.validEnd?"*":" ")+" ";for(let i=0;i"+e.indexOf(t.next[i].next);return r}).join("\n")}}A.empty=new A(!0);class ${constructor(e,t){this.string=e,this.nodeTypes=t,this.inline=null,this.pos=0,this.tokens=e.split(/\s*(?=\b|\W|$)/),""==this.tokens[this.tokens.length-1]&&this.tokens.pop(),""==this.tokens[0]&&this.tokens.shift()}get next(){return this.tokens[this.pos]}eat(e){return this.next==e&&(this.pos++||!0)}err(e){throw new SyntaxError(e+" (in content expression '"+this.string+"')")}}function R(e){let t=[];do{t.push(I(e))}while(e.eat("|"));return 1==t.length?t[0]:{type:"choice",exprs:t}}function I(e){let t=[];do{t.push(z(e))}while(e.next&&")"!=e.next&&"|"!=e.next);return 1==t.length?t[0]:{type:"seq",exprs:t}}function z(e){let t=function(e){if(e.eat("(")){let t=R(e);return e.eat(")")||e.err("Missing closing paren"),t}if(!/\W/.test(e.next)){let t=function(e,t){let n=e.nodeTypes,r=n[t];if(r)return[r];let i=[];for(let o in n){let e=n[o];e.isInGroup(t)&&i.push(e)}0==i.length&&e.err("No node type or group '"+t+"' found");return i}(e,e.next).map(t=>(null==e.inline?e.inline=t.isInline:e.inline!=t.isInline&&e.err("Mixing inline and block content"),{type:"name",value:t}));return e.pos++,1==t.length?t[0]:{type:"choice",exprs:t}}e.err("Unexpected token '"+e.next+"'")}(e);for(;;)if(e.eat("+"))t={type:"plus",expr:t};else if(e.eat("*"))t={type:"star",expr:t};else if(e.eat("?"))t={type:"opt",expr:t};else{if(!e.eat("{"))break;t=B(e,t)}return t}function P(e){/\D/.test(e.next)&&e.err("Expected number, got '"+e.next+"'");let t=Number(e.next);return e.pos++,t}function B(e,t){let n=P(e),r=n;return e.eat(",")&&(r="}"!=e.next?P(e):-1),e.eat("}")||e.err("Unclosed braced range"),{type:"range",min:n,max:r,expr:t}}function V(e,t){return t-e}function F(e,t){let n=[];return function t(r){let i=e[r];if(1==i.length&&!i[0].term)return t(i[0].to);n.push(r);for(let e=0;e-1}get whitespace(){return this.spec.whitespace||(this.spec.code?"pre":"normal")}hasRequiredAttrs(){for(let e in this.attrs)if(this.attrs[e].isRequired)return!0;return!1}compatibleContent(e){return this==e||this.contentMatch.compatible(e.contentMatch)}computeAttrs(e){return!e&&this.defaultAttrs?this.defaultAttrs:W(this.attrs,e)}create(e=null,t,n){if(this.isText)throw new Error("NodeType.create can't construct text nodes");return new D(this,this.computeAttrs(e),i.from(t),a.setFrom(n))}createChecked(e=null,t,n){return t=i.from(t),this.checkContent(t),new D(this,this.computeAttrs(e),t,a.setFrom(n))}createAndFill(e=null,t,n){if(e=this.computeAttrs(e),(t=i.from(t)).size){let e=this.contentMatch.fillBefore(t);if(!e)return null;t=e.append(t)}let r=this.contentMatch.matchFragment(t),o=r&&r.fillBefore(i.empty,!0);return o?new D(this,e,t.append(o),a.setFrom(n)):null}validContent(e){let t=this.contentMatch.matchFragment(e);if(!t||!t.validEnd)return!1;for(let n=0;n-1}allowsMarks(e){if(null==this.markSet)return!0;for(let t=0;tr[t]=new e(t,n,i));let i=n.spec.topNode||"doc";if(!r[i])throw new RangeError("Schema is missing its top node type ('"+i+"')");if(!r.text)throw new RangeError("Every schema needs a 'text' type");for(let e in r.text.attrs)throw new RangeError("The text node type should not have attributes");return r}};class _{constructor(e,t,n){this.hasDefault=Object.prototype.hasOwnProperty.call(n,"default"),this.default=n.default,this.validate="string"==typeof n.validate?function(e,t,n){let r=n.split("|");return n=>{let i=null===n?"null":typeof n;if(r.indexOf(i)<0)throw new RangeError(`Expected value of type ${r} for attribute ${t} on type ${e}, got ${i}`)}}(e,t,n.validate):n.validate}get isRequired(){return!this.hasDefault}}class K{constructor(e,t,n,r){this.name=e,this.rank=t,this.schema=n,this.spec=r,this.attrs=q(e,r.attrs),this.excluded=null;let i=L(this.attrs);this.instance=i?new a(this,i):null}create(e=null){return!e&&this.instance?this.instance:new a(this,W(this.attrs,e))}static compile(e,t){let n=Object.create(null),r=0;return e.forEach((e,i)=>n[e]=new K(e,r++,t,i)),n}removeFromSet(e){for(var t=0;t-1}}class H{constructor(e){this.linebreakReplacement=null,this.cached=Object.create(null);let n=this.spec={};for(let t in e)n[t]=e[t];n.nodes=t.from(e.nodes),n.marks=t.from(e.marks||{}),this.nodes=j.compile(this.spec.nodes,this),this.marks=K.compile(this.spec.marks,this);let r=Object.create(null);for(let t in this.nodes){if(t in this.marks)throw new RangeError(t+" can not be both a node and a mark");let e=this.nodes[t],n=e.spec.content||"",i=e.spec.marks;if(e.contentMatch=r[n]||(r[n]=A.parse(n,this.nodes)),e.inlineContent=e.contentMatch.inlineContent,e.spec.linebreakReplacement){if(this.linebreakReplacement)throw new RangeError("Multiple linebreak nodes defined");if(!e.isInline||!e.isLeaf)throw new RangeError("Linebreak replacement nodes must be inline leaf nodes");this.linebreakReplacement=e}e.markSet="_"==i?null:i?Y(this,i.split(" ")):""!=i&&e.inlineContent?null:[]}for(let t in this.marks){let e=this.marks[t],n=e.spec.excludes;e.excluded=null==n?[e]:""==n?[]:Y(this,n.split(" "))}this.nodeFromJSON=e=>D.fromJSON(this,e),this.markFromJSON=e=>a.fromJSON(this,e),this.topNodeType=this.nodes[this.spec.topNode||"doc"],this.cached.wrappings=Object.create(null)}node(e,t=null,n,r){if("string"==typeof e)e=this.nodeType(e);else{if(!(e instanceof j))throw new RangeError("Invalid node type: "+e);if(e.schema!=this)throw new RangeError("Node type from different schema used ("+e.name+")")}return e.createChecked(t,n,r)}text(e,t){let n=this.nodes.text;return new T(n,n.defaultAttrs,e,a.setFrom(t))}mark(e,t){return"string"==typeof e&&(e=this.marks[e]),e.create(t)}nodeType(e){let t=this.nodes[e];if(!t)throw new RangeError("Unknown node type: "+e);return t}}function Y(e,t){let n=[];for(let r=0;r-1)&&n.push(s=r)}if(!s)throw new SyntaxError("Unknown mark type: '"+t[r]+"'")}return n}class U{constructor(e,t){this.schema=e,this.rules=t,this.tags=[],this.styles=[];let n=this.matchedStyles=[];t.forEach(e=>{if(function(e){return null!=e.tag}(e))this.tags.push(e);else if(function(e){return null!=e.style}(e)){let t=/[^=]*/.exec(e.style)[0];n.indexOf(t)<0&&n.push(t),this.styles.push(e)}}),this.normalizeLists=!this.tags.some(t=>{if(!/^(ul|ol)\b/.test(t.tag)||!t.node)return!1;let n=e.nodes[t.node];return n.contentMatch.matchType(n)})}parse(e,t={}){let n=new te(this,t,!1);return n.addAll(e,a.none,t.from,t.to),n.finish()}parseSlice(e,t={}){let n=new te(this,t,!0);return n.addAll(e,a.none,t.from,t.to),c.maxOpen(n.finish())}matchTag(e,t,n){for(let r=n?this.tags.indexOf(n)+1:0;re.length&&(61!=o.charCodeAt(e.length)||o.slice(e.length+1)!=t))){if(r.getAttrs){let e=r.getAttrs(t);if(!1===e)continue;r.attrs=e||void 0}return r}}}static schemaRules(e){let t=[];function n(e){let n=null==e.priority?50:e.priority,r=0;for(;r{n(e=re(e)),e.mark||e.ignore||e.clearMark||(e.mark=r)})}for(let r in e.nodes){let t=e.nodes[r].spec.parseDOM;t&&t.forEach(e=>{n(e=re(e)),e.node||e.ignore||e.mark||(e.node=r)})}return t}static fromSchema(e){return e.cached.domParser||(e.cached.domParser=new U(e,U.schemaRules(e)))}}const G={address:!0,article:!0,aside:!0,blockquote:!0,canvas:!0,dd:!0,div:!0,dl:!0,fieldset:!0,figcaption:!0,figure:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,li:!0,noscript:!0,ol:!0,output:!0,p:!0,pre:!0,section:!0,table:!0,tfoot:!0,ul:!0},Z={head:!0,noscript:!0,object:!0,script:!0,style:!0,title:!0},X={ol:!0,ul:!0};function Q(e,t,n){return null!=t?(t?1:0)|("full"===t?2:0):e&&"pre"==e.whitespace?3:-5&n}class ee{constructor(e,t,n,r,i,o){this.type=e,this.attrs=t,this.marks=n,this.solid=r,this.options=o,this.content=[],this.activeMarks=a.none,this.match=i||(4&o?null:e.contentMatch)}findWrapping(e){if(!this.match){if(!this.type)return[];let t=this.type.contentMatch.fillBefore(i.from(e));if(!t){let t,n=this.type.contentMatch;return(t=n.findWrapping(e.type))?(this.match=n,t):null}this.match=this.type.contentMatch.matchFragment(t)}return this.match.findWrapping(e.type)}finish(e){if(!(1&this.options)){let e,t=this.content[this.content.length-1];if(t&&t.isText&&(e=/[ \t\r\n\u000c]+$/.exec(t.text))){let n=t;t.text.length==e[0].length?this.content.pop():this.content[this.content.length-1]=n.withText(n.text.slice(0,n.text.length-e[0].length))}}let t=i.from(this.content);return!e&&this.match&&(t=t.append(this.match.fillBefore(i.empty,!0))),this.type?this.type.create(this.attrs,t,this.marks):t}inlineContext(e){return this.type?this.type.inlineContent:this.content.length?this.content[0].isInline:e.parentNode&&!G.hasOwnProperty(e.parentNode.nodeName.toLowerCase())}}class te{constructor(e,t,n){this.parser=e,this.options=t,this.isOpen=n,this.open=0,this.localPreserveWS=!1;let r,i=t.topNode,o=Q(null,t.preserveWhitespace,0)|(n?4:0);r=i?new ee(i.type,i.attrs,a.none,!0,t.topMatch||i.type.contentMatch,o):new ee(n?null:e.schema.topNodeType,null,a.none,!0,null,o),this.nodes=[r],this.find=t.findPositions,this.needsBlock=!1}get top(){return this.nodes[this.open]}addDOM(e,t){3==e.nodeType?this.addTextNode(e,t):1==e.nodeType&&this.addElement(e,t)}addTextNode(e,t){let n=e.nodeValue,r=this.top,i=2&r.options?"full":this.localPreserveWS||(1&r.options)>0,{schema:o}=this.parser;if("full"===i||r.inlineContext(e)||/[^ \t\r\n\u000c]/.test(n)){if(i)if("full"===i)n=n.replace(/\r\n?/g,"\n");else if(o.linebreakReplacement&&/[\r\n]/.test(n)&&this.top.findWrapping(o.linebreakReplacement.create())){let e=n.split(/\r?\n|\r/);for(let n=0;n!r.clearMark(e)):t.concat(this.parser.schema.marks[r.mark].create(r.attrs)),!1!==r.consuming)break;n=r}}return t}addElementByRule(e,t,n,r){let i,o;if(t.node)if(o=this.parser.schema.nodes[t.node],o.isLeaf)this.insertNode(o.create(t.attrs),n,"BR"==e.nodeName)||this.leafFallback(e,n);else{let e=this.enter(o,t.attrs||null,n,t.preserveWhitespace);e&&(i=!0,n=e)}else{let e=this.parser.schema.marks[t.mark];n=n.concat(e.create(t.attrs))}let s=this.top;if(o&&o.isLeaf)this.findInside(e);else if(r)this.addElement(e,n,r);else if(t.getContent)this.findInside(e),t.getContent(e,this.parser.schema).forEach(e=>this.insertNode(e,n,!1));else{let r=e;"string"==typeof t.contentElement?r=e.querySelector(t.contentElement):"function"==typeof t.contentElement?r=t.contentElement(e):t.contentElement&&(r=t.contentElement),this.findAround(e,r,!0),this.addAll(r,n),this.findAround(e,r,!1)}i&&this.sync(s)&&this.open--}addAll(e,t,n,r){let i=n||0;for(let o=n?e.childNodes[n]:e.firstChild,s=null==r?null:e.childNodes[r];o!=s;o=o.nextSibling,++i)this.findAtPoint(e,i),this.addDOM(o,t);this.findAtPoint(e,i)}findPlace(e,t,n){let r,i;for(let o=this.open,s=0;o>=0;o--){let t=this.nodes[o],l=t.findWrapping(e);if(l&&(!r||r.length>l.length+s)&&(r=l,i=t,!l.length))break;if(t.solid){if(n)break;s+=2}}if(!r)return null;this.sync(i);for(let o=0;o!(o.type?o.type.allowsMarkType(t.type):ie(t.type,e))||(l=t.addToSet(l),!1)),this.nodes.push(new ee(e,t,l,r,null,s)),this.open++,n}closeExtra(e=!1){let t=this.nodes.length-1;if(t>this.open){for(;t>this.open;t--)this.nodes[t-1].content.push(this.nodes[t].finish(e));this.nodes.length=this.open+1}}finish(){return this.open=0,this.closeExtra(this.isOpen),this.nodes[0].finish(!(!this.isOpen&&!this.options.topOpen))}sync(e){for(let t=this.open;t>=0;t--){if(this.nodes[t]==e)return this.open=t,!0;this.localPreserveWS&&(this.nodes[t].options|=1)}return!1}get currentPos(){this.closeExtra();let e=0;for(let t=this.open;t>=0;t--){let n=this.nodes[t].content;for(let t=n.length-1;t>=0;t--)e+=n[t].nodeSize;t&&e++}return e}findAtPoint(e,t){if(this.find)for(let n=0;n-1)return e.split(/\s*\|\s*/).some(this.matchesContext,this);let t=e.split("/"),n=this.options.context,r=!(this.isOpen||n&&n.parent.type!=this.nodes[0].type),i=-(n?n.depth+1:0)+(r?0:1),o=(e,s)=>{for(;e>=0;e--){let l=t[e];if(""==l){if(e==t.length-1||0==e)continue;for(;s>=i;s--)if(o(e-1,s))return!0;return!1}{let e=s>0||0==s&&r?this.nodes[s].type:n&&s>=i?n.node(s-i).type:null;if(!e||e.name!=l&&!e.isInGroup(l))return!1;s--}}return!0};return o(t.length-1,this.open)}textblockFromContext(){let e=this.options.context;if(e)for(let t=e.depth;t>=0;t--){let n=e.node(t).contentMatchAt(e.indexAfter(t)).defaultType;if(n&&n.isTextblock&&n.defaultAttrs)return n}for(let t in this.parser.schema.nodes){let e=this.parser.schema.nodes[t];if(e.isTextblock&&e.defaultAttrs)return e}}}function ne(e,t){return(e.matches||e.msMatchesSelector||e.webkitMatchesSelector||e.mozMatchesSelector).call(e,t)}function re(e){let t={};for(let n in e)t[n]=e[n];return t}function ie(e,t){let n=t.schema.nodes;for(let r in n){let i=n[r];if(!i.allowsMarkType(e))continue;let o=[],s=e=>{o.push(e);for(let n=0;n{if(i.length||e.marks.length){let n=0,o=0;for(;n=0;r--){let i=this.serializeMark(e.marks[r],e.isInline,t);i&&((i.contentDOM||i.dom).appendChild(n),n=i.dom)}return n}serializeMark(e,t,n={}){let r=this.marks[e.type.name];return r&&ce(le(n),r(e,t),null,e.attrs)}static renderSpec(e,t,n=null,r){return ce(e,t,n,r)}static fromSchema(e){return e.cached.domSerializer||(e.cached.domSerializer=new oe(this.nodesFromSchema(e),this.marksFromSchema(e)))}static nodesFromSchema(e){let t=se(e.nodes);return t.text||(t.text=e=>e.text),t}static marksFromSchema(e){return se(e.marks)}}function se(e){let t={};for(let n in e){let r=e[n].spec.toDOM;r&&(t[n]=r)}return t}function le(e){return e.document||window.document}const ae=new WeakMap;function he(e){let t=ae.get(e);return void 0===t&&ae.set(e,t=function(e){let t=null;function n(e){if(e&&"object"==typeof e)if(Array.isArray(e))if("string"==typeof e[0])t||(t=[]),t.push(e);else for(let t=0;t-1)throw new RangeError("Using an array from an attribute object as a DOM spec. This may be an attempted cross site scripting attack.");let s,l=o.indexOf(" ");l>0&&(n=o.slice(0,l),o=o.slice(l+1));let a=n?e.createElementNS(n,o):e.createElement(o),h=t[1],c=1;if(h&&"object"==typeof h&&null==h.nodeType&&!Array.isArray(h)){c=2;for(let e in h)if(null!=h[e]){let t=e.indexOf(" ");t>0?a.setAttributeNS(e.slice(0,t),e.slice(t+1),h[e]):"style"==e&&a.style?a.style.cssText=h[e]:a.setAttribute(e,h[e])}}for(let d=c;dc)throw new RangeError("Content hole must be the only child of its parent node");return{dom:a,contentDOM:a}}{let{dom:t,contentDOM:o}=ce(e,i,n,r);if(a.appendChild(t),o){if(s)throw new RangeError("Multiple content holes");s=o}}}return{dom:a,contentDOM:s}}const de=Math.pow(2,16);function pe(e,t){return e+t*de}function ue(e){return 65535&e}class fe{constructor(e,t,n){this.pos=e,this.delInfo=t,this.recover=n}get deleted(){return(8&this.delInfo)>0}get deletedBefore(){return(5&this.delInfo)>0}get deletedAfter(){return(6&this.delInfo)>0}get deletedAcross(){return(4&this.delInfo)>0}}class me{constructor(e,t=!1){if(this.ranges=e,this.inverted=t,!e.length&&me.empty)return me.empty}recover(e){let t=0,n=ue(e);if(!this.inverted)for(let r=0;re)break;let a=this.ranges[s+i],h=this.ranges[s+o],c=l+a;if(e<=c){let i=l+r+((a?e==l?-1:e==c?1:t:t)<0?0:h);if(n)return i;let o=e==(t<0?l:c)?null:pe(s/3,e-l),d=e==l?2:e==c?1:4;return(t<0?e!=l:e!=c)&&(d|=8),new fe(i,d,o)}r+=h-a}return n?e+r:new fe(e+r,0,null)}touches(e,t){let n=0,r=ue(t),i=this.inverted?2:1,o=this.inverted?1:2;for(let s=0;se)break;let l=this.ranges[s+i];if(e<=t+l&&s==3*r)return!0;n+=this.ranges[s+o]-l}return!1}forEach(e){let t=this.inverted?2:1,n=this.inverted?1:2;for(let r=0,i=0;r=0;t--){let r=e.getMirror(t);this.appendMap(e.maps[t].invert(),null!=r&&r>t?n-r-1:void 0)}}invert(){let e=new ge;return e.appendMappingInverted(this),e}map(e,t=1){if(this.mirror)return this._map(e,t,!0);for(let n=this.from;ni&&te.isAtom&&t.type.allowsMarkType(this.mark.type)?e.mark(this.mark.addToSet(e.marks)):e,r),t.openStart,t.openEnd);return ve.fromReplace(e,this.from,this.to,i)}invert(){return new be(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new Se(t.pos,n.pos,this.mark)}merge(e){return e instanceof Se&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new Se(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"addMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to)throw new RangeError("Invalid input for AddMarkStep.fromJSON");return new Se(t.from,t.to,e.markFromJSON(t.mark))}}we.jsonID("addMark",Se);class be extends we{constructor(e,t,n){super(),this.from=e,this.to=t,this.mark=n}apply(e){let t=e.slice(this.from,this.to),n=new c(xe(t.content,e=>e.mark(this.mark.removeFromSet(e.marks)),e),t.openStart,t.openEnd);return ve.fromReplace(e,this.from,this.to,n)}invert(){return new Se(this.from,this.to,this.mark)}map(e){let t=e.mapResult(this.from,1),n=e.mapResult(this.to,-1);return t.deleted&&n.deleted||t.pos>=n.pos?null:new be(t.pos,n.pos,this.mark)}merge(e){return e instanceof be&&e.mark.eq(this.mark)&&this.from<=e.to&&this.to>=e.from?new be(Math.min(this.from,e.from),Math.max(this.to,e.to),this.mark):null}toJSON(){return{stepType:"removeMark",mark:this.mark.toJSON(),from:this.from,to:this.to}}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to)throw new RangeError("Invalid input for RemoveMarkStep.fromJSON");return new be(t.from,t.to,e.markFromJSON(t.mark))}}we.jsonID("removeMark",be);class ke extends we{constructor(e,t){super(),this.pos=e,this.mark=t}apply(e){let t=e.nodeAt(this.pos);if(!t)return ve.fail("No node at mark step's position");let n=t.type.create(t.attrs,null,this.mark.addToSet(t.marks));return ve.fromReplace(e,this.pos,this.pos+1,new c(i.from(n),0,t.isLeaf?0:1))}invert(e){let t=e.nodeAt(this.pos);if(t){let e=this.mark.addToSet(t.marks);if(e.length==t.marks.length){for(let n=0;nn.pos?null:new Oe(t.pos,n.pos,r,i,this.slice,this.insert,this.structure)}toJSON(){let e={stepType:"replaceAround",from:this.from,to:this.to,gapFrom:this.gapFrom,gapTo:this.gapTo,insert:this.insert};return this.slice.size&&(e.slice=this.slice.toJSON()),this.structure&&(e.structure=!0),e}static fromJSON(e,t){if("number"!=typeof t.from||"number"!=typeof t.to||"number"!=typeof t.gapFrom||"number"!=typeof t.gapTo||"number"!=typeof t.insert)throw new RangeError("Invalid input for ReplaceAroundStep.fromJSON");return new Oe(t.from,t.to,t.gapFrom,t.gapTo,c.fromJSON(e,t.slice),t.insert,!!t.structure)}}function Ne(e,t,n){let r=e.resolve(t),i=n-t,o=r.depth;for(;i>0&&o>0&&r.indexAfter(o)==r.node(o).childCount;)o--,i--;if(i>0){let e=r.node(o).maybeChild(r.indexAfter(o));for(;i>0;){if(!e||e.isLeaf)return!0;e=e.firstChild,i--}}return!1}function De(e,t,n,r=n.contentMatch,o=!0){let s=e.doc.nodeAt(t),l=[],a=t+1;for(let h=0;h=0;i--)e.step(l[i])}function Te(e,t,n){return(0==t||e.canReplace(t,e.childCount))&&(n==e.childCount||e.canReplace(0,n))}function Ee(e){let t=e.parent.content.cutByIndex(e.startIndex,e.endIndex);for(let n=e.depth;;--n){let r=e.$from.node(n),i=e.$from.index(n),o=e.$to.indexAfter(n);if(n{if(i.isText){let s,l=/\r?\n|\r/g;for(;s=l.exec(i.text);){let i=e.mapping.slice(r).map(n+1+o+s.index);e.replaceWith(i,i+1,t.type.schema.linebreakReplacement.create())}}})}function Ie(e,t,n,r){t.forEach((i,o)=>{if(i.type==i.type.schema.linebreakReplacement){let i=e.mapping.slice(r).map(n+1+o);e.replaceWith(i,i+1,t.type.schema.text("\n"))}})}function ze(e,t,n=1,r){let i=e.resolve(t),o=i.depth-n,s=r&&r[r.length-1]||i.parent;if(o<0||i.parent.type.spec.isolating||!i.parent.canReplace(i.index(),i.parent.childCount)||!s.type.validContent(i.parent.content.cutByIndex(i.index(),i.parent.childCount)))return!1;for(let h=i.depth-1,c=n-2;h>o;h--,c--){let e=i.node(h),t=i.index(h);if(e.type.spec.isolating)return!1;let n=e.content.cutByIndex(t,e.childCount),o=r&&r[c+1];o&&(n=n.replaceChild(0,o.type.create(o.attrs)));let s=r&&r[c]||e;if(!e.canReplace(t+1,e.childCount)||!s.type.validContent(n))return!1}let l=i.indexAfter(o),a=r&&r[0];return i.node(o).canReplaceWith(l,l,a?a.type:i.node(o+1).type)}function Pe(e,t){let n=e.resolve(t),r=n.index();return i=n.nodeBefore,o=n.nodeAfter,!(!i||!o||i.isLeaf||!function(e,t){t.content.size||e.type.compatibleContent(t.type);let n=e.contentMatchAt(e.childCount),{linebreakReplacement:r}=e.type.schema;for(let i=0;i0;r--)this.placed=i.from(e.node(r).copy(this.placed))}get depth(){return this.frontier.length-1}fit(){for(;this.unplaced.size;){let e=this.findFittable();e?this.placeNodes(e):this.openMore()||this.dropNode()}let e=this.mustMoveInline(),t=this.placed.size-this.depth-this.$from.depth,n=this.$from,r=this.close(e<0?this.$to:n.doc.resolve(e));if(!r)return null;let i=this.placed,o=n.depth,s=r.depth;for(;o&&s&&1==i.childCount;)i=i.firstChild.content,o--,s--;let l=new c(i,o,s);return e>-1?new Oe(n.pos,e,this.$to.pos,this.$to.end(),l,t):l.size||n.pos!=this.$to.pos?new Ce(n.pos,r.pos,l):null}findFittable(){let e=this.unplaced.openStart;for(let t=this.unplaced.content,n=0,r=this.unplaced.openEnd;n1&&(r=0),i.type.spec.isolating&&r<=n){e=n;break}t=i.content}for(let t=1;t<=2;t++)for(let n=1==t?e:this.unplaced.openStart;n>=0;n--){let e,r=null;n?(r=Je(this.unplaced.content,n-1).firstChild,e=r.content):e=this.unplaced.content;let o=e.firstChild;for(let s=this.depth;s>=0;s--){let e,{type:l,match:a}=this.frontier[s],h=null;if(1==t&&(o?a.matchType(o.type)||(h=a.fillBefore(i.from(o),!1)):r&&l.compatibleContent(r.type)))return{sliceDepth:n,frontierDepth:s,parent:r,inject:h};if(2==t&&o&&(e=a.findWrapping(o.type)))return{sliceDepth:n,frontierDepth:s,parent:r,wrap:e};if(r&&a.matchType(r.type))break}}}openMore(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Je(e,t);return!(!r.childCount||r.firstChild.isLeaf)&&(this.unplaced=new c(e,t+1,Math.max(n,r.size+t>=e.size-n?t+1:0)),!0)}dropNode(){let{content:e,openStart:t,openEnd:n}=this.unplaced,r=Je(e,t);if(r.childCount<=1&&t>0){let i=e.size-t<=t+r.size;this.unplaced=new c(Le(e,t-1,1),t-1,i?t-1:n)}else this.unplaced=new c(Le(e,t,1),t,n)}placeNodes({sliceDepth:e,frontierDepth:t,parent:n,inject:r,wrap:o}){for(;this.depth>t;)this.closeFrontierNode();if(o)for(let i=0;i1||0==a||e.content.size)&&(p=t,d.push(qe(e.mark(u.allowedMarks(e.marks)),1==h?a:0,h==l.childCount?f:-1)))}let m=h==l.childCount;m||(f=-1),this.placed=We(this.placed,t,i.from(d)),this.frontier[t].match=p,m&&f<0&&n&&n.type==this.frontier[this.depth].type&&this.frontier.length>1&&this.closeFrontierNode();for(let i=0,c=l;i1&&r==this.$to.end(--n);)++r;return r}findCloseLevel(e){e:for(let t=Math.min(this.depth,e.depth);t>=0;t--){let{match:n,type:r}=this.frontier[t],i=t=0;n--){let{match:t,type:r}=this.frontier[n],i=je(e,n,r,t,!0);if(!i||i.childCount)continue e}return{depth:t,fit:o,move:i?e.doc.resolve(e.after(t+1)):e}}}}close(e){let t=this.findCloseLevel(e);if(!t)return null;for(;this.depth>t.depth;)this.closeFrontierNode();t.fit.childCount&&(this.placed=We(this.placed,t.depth,t.fit)),e=t.move;for(let n=t.depth+1;n<=e.depth;n++){let t=e.node(n),r=t.type.contentMatch.fillBefore(t.content,!0,e.index(n));this.openFrontierNode(t.type,t.attrs,r)}return e}openFrontierNode(e,t=null,n){let r=this.frontier[this.depth];r.match=r.match.matchType(e),this.placed=We(this.placed,this.depth,i.from(e.create(t,n))),this.frontier.push({type:e,match:e.contentMatch})}closeFrontierNode(){let e=this.frontier.pop().match.fillBefore(i.empty,!0);e.childCount&&(this.placed=We(this.placed,this.frontier.length,e))}}function Le(e,t,n){return 0==t?e.cutByIndex(n,e.childCount):e.replaceChild(0,e.firstChild.copy(Le(e.firstChild.content,t-1,n)))}function We(e,t,n){return 0==t?e.append(n):e.replaceChild(e.childCount-1,e.lastChild.copy(We(e.lastChild.content,t-1,n)))}function Je(e,t){for(let n=0;n1&&(r=r.replaceChild(0,qe(r.firstChild,t-1,1==r.childCount?n-1:0))),t>0&&(r=e.type.contentMatch.fillBefore(r).append(r),n<=0&&(r=r.append(e.type.contentMatch.matchFragment(r).fillBefore(i.empty,!0)))),e.copy(r)}function je(e,t,n,r,i){let o=e.node(t),s=i?e.indexAfter(t):e.index(t);if(s==o.childCount&&!n.compatibleContent(o.type))return null;let l=r.fillBefore(o.content,!0,s);return l&&!function(e,t,n){for(let r=n;rr){let t=o.contentMatchAt(0),n=t.fillBefore(e).append(e);e=n.append(t.matchFragment(n).fillBefore(i.empty,!0))}return e}function He(e,t){let n=[];for(let r=Math.min(e.depth,t.depth);r>=0;r--){let i=e.start(r);if(it.pos+(t.depth-r)||e.node(r).type.spec.isolating||t.node(r).type.spec.isolating)break;(i==t.start(r)||r==e.depth&&r==t.depth&&e.parent.inlineContent&&t.parent.inlineContent&&r&&t.start(r-1)==i-1)&&n.push(r)}return n}class Ye extends we{constructor(e,t,n){super(),this.pos=e,this.attr=t,this.value=n}apply(e){let t=e.nodeAt(this.pos);if(!t)return ve.fail("No node at attribute step's position");let n=Object.create(null);for(let i in t.attrs)n[i]=t.attrs[i];n[this.attr]=this.value;let r=t.type.create(n,null,t.marks);return ve.fromReplace(e,this.pos,this.pos+1,new c(i.from(r),0,t.isLeaf?0:1))}getMap(){return me.empty}invert(e){return new Ye(this.pos,this.attr,e.nodeAt(this.pos).attrs[this.attr])}map(e){let t=e.mapResult(this.pos,1);return t.deletedAfter?null:new Ye(t.pos,this.attr,this.value)}toJSON(){return{stepType:"attr",pos:this.pos,attr:this.attr,value:this.value}}static fromJSON(e,t){if("number"!=typeof t.pos||"string"!=typeof t.attr)throw new RangeError("Invalid input for AttrStep.fromJSON");return new Ye(t.pos,t.attr,t.value)}}we.jsonID("attr",Ye);class Ue extends we{constructor(e,t){super(),this.attr=e,this.value=t}apply(e){let t=Object.create(null);for(let r in e.attrs)t[r]=e.attrs[r];t[this.attr]=this.value;let n=e.type.create(t,e.content,e.marks);return ve.ok(n)}getMap(){return me.empty}invert(e){return new Ue(this.attr,e.attrs[this.attr])}map(e){return this}toJSON(){return{stepType:"docAttr",attr:this.attr,value:this.value}}static fromJSON(e,t){if("string"!=typeof t.attr)throw new RangeError("Invalid input for DocAttrStep.fromJSON");return new Ue(t.attr,t.value)}}we.jsonID("docAttr",Ue);let Ge=class extends Error{};Ge=function e(t){let n=Error.call(this,t);return n.__proto__=e.prototype,n},(Ge.prototype=Object.create(Error.prototype)).constructor=Ge,Ge.prototype.name="TransformError";class Ze{constructor(e){this.doc=e,this.steps=[],this.docs=[],this.mapping=new ge}get before(){return this.docs.length?this.docs[0]:this.doc}step(e){let t=this.maybeStep(e);if(t.failed)throw new Ge(t.failed);return this}maybeStep(e){let t=e.apply(this.doc);return t.failed||this.addStep(e,t.doc),t}get docChanged(){return this.steps.length>0}addStep(e,t){this.docs.push(this.doc),this.steps.push(e),this.mapping.appendMap(e.getMap()),this.doc=t}replace(e,t=e,n=c.empty){let r=Be(this.doc,e,t,n);return r&&this.step(r),this}replaceWith(e,t,n){return this.replace(e,t,new c(i.from(n),0,0))}delete(e,t){return this.replace(e,t,c.empty)}insert(e,t){return this.replaceWith(e,e,t)}replaceRange(e,t,n){return function(e,t,n,r){if(!r.size)return e.deleteRange(t,n);let i=e.doc.resolve(t),o=e.doc.resolve(n);if(Ve(i,o,r))return e.step(new Ce(t,n,r));let s=He(i,e.doc.resolve(n));0==s[s.length-1]&&s.pop();let l=-(i.depth+1);s.unshift(l);for(let c=i.depth,u=i.pos-1;c>0;c--,u--){let e=i.node(c).type.spec;if(e.defining||e.definingAsContext||e.isolating)break;s.indexOf(c)>-1?l=c:i.before(c)==u&&s.splice(1,0,-c)}let a=s.indexOf(l),h=[],d=r.openStart;for(let c=r.content,u=0;;u++){let e=c.firstChild;if(h.push(e),u==r.openStart)break;c=e.content}for(let c=d-1;c>=0;c--){let e=h[c],t=_e(e.type);if(t&&!e.sameMarkup(i.node(Math.abs(l)-1)))d=c;else if(t||!e.type.isTextblock)break}for(let u=r.openStart;u>=0;u--){let t=(u+d+1)%(r.openStart+1),l=h[t];if(l)for(let h=0;h=0&&(e.replace(t,n,r),!(e.steps.length>p));c--){let e=s[c];e<0||(t=i.before(e),n=o.after(e))}}(this,e,t,n),this}replaceRangeWith(e,t,n){return function(e,t,n,r){if(!r.isInline&&t==n&&e.doc.resolve(t).parent.content.size){let i=function(e,t,n){let r=e.resolve(t);if(r.parent.canReplaceWith(r.index(),r.index(),n))return t;if(0==r.parentOffset)for(let i=r.depth-1;i>=0;i--){let e=r.index(i);if(r.node(i).canReplaceWith(e,e,n))return r.before(i+1);if(e>0)return null}if(r.parentOffset==r.parent.content.size)for(let i=r.depth-1;i>=0;i--){let e=r.indexAfter(i);if(r.node(i).canReplaceWith(e,e,n))return r.after(i+1);if(e0&&(n||r.node(t-1).canReplace(r.index(t-1),i.indexAfter(t-1))))return e.delete(r.before(t),i.after(t))}for(let s=1;s<=r.depth&&s<=i.depth;s++)if(t-r.start(s)==r.depth-s&&n>r.end(s)&&i.end(s)-n!=i.depth-s&&r.start(s-1)==i.start(s-1)&&r.node(s-1).canReplace(r.index(s-1),i.index(s-1)))return e.delete(r.before(s),n);e.delete(t,n)}(this,e,t),this}lift(e,t){return function(e,t,n){let{$from:r,$to:o,depth:s}=t,l=r.before(s+1),a=o.after(s+1),h=l,d=a,p=i.empty,u=0;for(let c=s,g=!1;c>n;c--)g||r.index(c)>0?(g=!0,p=i.from(r.node(c).copy(p)),u++):h--;let f=i.empty,m=0;for(let c=s,g=!1;c>n;c--)g||o.after(c+1)=0;l--){if(r.size){let e=n[l].type.contentMatch.matchFragment(r);if(!e||!e.validEnd)throw new RangeError("Wrapper type given to Transform.wrap does not form valid content of its parent wrapper")}r=i.from(n[l].type.create(n[l].attrs,r))}let o=t.start,s=t.end;e.step(new Oe(o,s,o,s,new c(r,0,0),n.length,!0))}(this,e,t),this}setBlockType(e,t=e,n,r=null){return function(e,t,n,r,o){if(!r.isTextblock)throw new RangeError("Type given to setBlockType should be a textblock");let s=e.steps.length;e.doc.nodesBetween(t,n,(t,n)=>{let l="function"==typeof o?o(t):o;if(t.isTextblock&&!t.hasMarkup(r,l)&&function(e,t,n){let r=e.resolve(t),i=r.index();return r.parent.canReplaceWith(i,i+1,n)}(e.doc,e.mapping.slice(s).map(n),r)){let o=null;if(r.schema.linebreakReplacement){let e="pre"==r.whitespace,t=!!r.contentMatch.matchType(r.schema.linebreakReplacement);e&&!t?o=!1:!e&&t&&(o=!0)}!1===o&&Ie(e,t,n,s),De(e,e.mapping.slice(s).map(n,1),r,void 0,null===o);let a=e.mapping.slice(s),h=a.map(n,1),d=a.map(n+t.nodeSize,1);return e.step(new Oe(h,d,h+1,d-1,new c(i.from(r.create(l,null,t.marks)),0,0),1,!0)),!0===o&&Re(e,t,n,s),!1}})}(this,e,t,n,r),this}setNodeMarkup(e,t,n=null,r){return function(e,t,n,r,o){let s=e.doc.nodeAt(t);if(!s)throw new RangeError("No node at given position");n||(n=s.type);let l=n.create(r,null,o||s.marks);if(s.isLeaf)return e.replaceWith(t,t+s.nodeSize,l);if(!n.validContent(s.content))throw new RangeError("Invalid content for node type "+n.name);e.step(new Oe(t,t+s.nodeSize,t+1,t+s.nodeSize-1,new c(i.from(l),0,0),1,!0))}(this,e,t,n,r),this}setNodeAttribute(e,t,n){return this.step(new Ye(e,t,n)),this}setDocAttribute(e,t){return this.step(new Ue(e,t)),this}addNodeMark(e,t){return this.step(new ke(e,t)),this}removeNodeMark(e,t){if(!(t instanceof a)){let n=this.doc.nodeAt(e);if(!n)throw new RangeError("No node at position "+e);if(!(t=t.isInSet(n.marks)))return this}return this.step(new Me(e,t)),this}split(e,t=1,n){return function(e,t,n=1,r){let o=e.doc.resolve(t),s=i.empty,l=i.empty;for(let a=o.depth,h=o.depth-n,c=n-1;a>h;a--,c--){s=i.from(o.node(a).copy(s));let e=r&&r[c];l=i.from(e?e.type.create(e.attrs,l):o.node(a).copy(l))}e.step(new Ce(t,t,new c(s.append(l),n,n),!0))}(this,e,t,n),this}addMark(e,t,n){return function(e,t,n,r){let i,o,s=[],l=[];e.doc.nodesBetween(t,n,(e,a,h)=>{if(!e.isInline)return;let c=e.marks;if(!r.isInSet(c)&&h.type.allowsMarkType(r.type)){let h=Math.max(a,t),d=Math.min(a+e.nodeSize,n),p=r.addToSet(c);for(let e=0;ee.step(t)),l.forEach(t=>e.step(t))}(this,e,t,n),this}removeMark(e,t,n){return function(e,t,n,r){let i=[],o=0;e.doc.nodesBetween(t,n,(e,s)=>{if(!e.isInline)return;o++;let l=null;if(r instanceof K){let t,n=e.marks;for(;t=r.isInSet(n);)(l||(l=[])).push(t),n=t.removeFromSet(n)}else r?r.isInSet(e.marks)&&(l=[r]):l=e.marks;if(l&&l.length){let r=Math.min(s+e.nodeSize,n);for(let e=0;ee.step(new be(t.from,t.to,t.style)))}(this,e,t,n),this}clearIncompatible(e,t,n){return De(this,e,t,n),this}}const Xe=Object.create(null);class Qe{constructor(e,t,n){this.$anchor=e,this.$head=t,this.ranges=n||[new et(e.min(t),e.max(t))]}get anchor(){return this.$anchor.pos}get head(){return this.$head.pos}get from(){return this.$from.pos}get to(){return this.$to.pos}get $from(){return this.ranges[0].$from}get $to(){return this.ranges[0].$to}get empty(){let e=this.ranges;for(let t=0;t=0;i--){let r=t<0?ht(e.node(0),e.node(i),e.before(i+1),e.index(i),t,n):ht(e.node(0),e.node(i),e.after(i+1),e.index(i)+1,t,n);if(r)return r}return null}static near(e,t=1){return this.findFrom(e,t)||this.findFrom(e,-t)||new lt(e.node(0))}static atStart(e){return ht(e,e,0,0,1)||new lt(e)}static atEnd(e){return ht(e,e,e.content.size,e.childCount,-1)||new lt(e)}static fromJSON(e,t){if(!t||!t.type)throw new RangeError("Invalid input for Selection.fromJSON");let n=Xe[t.type];if(!n)throw new RangeError(`No selection type ${t.type} defined`);return n.fromJSON(e,t)}static jsonID(e,t){if(e in Xe)throw new RangeError("Duplicate use of selection JSON ID "+e);return Xe[e]=t,t.prototype.jsonID=e,t}getBookmark(){return rt.between(this.$anchor,this.$head).getBookmark()}}Qe.prototype.visible=!0;class et{constructor(e,t){this.$from=e,this.$to=t}}let tt=!1;function nt(e){tt||e.parent.inlineContent||(tt=!0,console.warn("TextSelection endpoint not pointing into a node with inline content ("+e.parent.type.name+")"))}class rt extends Qe{constructor(e,t=e){nt(e),nt(t),super(e,t)}get $cursor(){return this.$anchor.pos==this.$head.pos?this.$head:null}map(e,t){let n=e.resolve(t.map(this.head));if(!n.parent.inlineContent)return Qe.near(n);let r=e.resolve(t.map(this.anchor));return new rt(r.parent.inlineContent?r:n,n)}replace(e,t=c.empty){if(super.replace(e,t),t==c.empty){let t=this.$from.marksAcross(this.$to);t&&e.ensureMarks(t)}}eq(e){return e instanceof rt&&e.anchor==this.anchor&&e.head==this.head}getBookmark(){return new it(this.anchor,this.head)}toJSON(){return{type:"text",anchor:this.anchor,head:this.head}}static fromJSON(e,t){if("number"!=typeof t.anchor||"number"!=typeof t.head)throw new RangeError("Invalid input for TextSelection.fromJSON");return new rt(e.resolve(t.anchor),e.resolve(t.head))}static create(e,t,n=t){let r=e.resolve(t);return new this(r,n==t?r:e.resolve(n))}static between(e,t,n){let r=e.pos-t.pos;if(n&&!r||(n=r>=0?1:-1),!t.parent.inlineContent){let e=Qe.findFrom(t,n,!0)||Qe.findFrom(t,-n,!0);if(!e)return Qe.near(t,n);t=e.$head}return e.parent.inlineContent||(0==r||(e=(Qe.findFrom(e,-n,!0)||Qe.findFrom(e,n,!0)).$anchor).posnew lt(e)};function ht(e,t,n,r,i,o=!1){if(t.inlineContent)return rt.create(e,n);for(let s=r-(i>0?0:1);i>0?s=0;s+=i){let r=t.child(s);if(r.isAtom){if(!o&&ot.isSelectable(r))return ot.create(e,n-(i<0?r.nodeSize:0))}else{let t=ht(e,r,n+i,i<0?r.childCount:0,i,o);if(t)return t}n+=r.nodeSize*i}return null}function ct(e,t,n){let r=e.steps.length-1;if(r{null==i&&(i=r)}),e.setSelection(Qe.near(e.doc.resolve(i),n)))}class dt extends Ze{constructor(e){super(e.doc),this.curSelectionFor=0,this.updated=0,this.meta=Object.create(null),this.time=Date.now(),this.curSelection=e.selection,this.storedMarks=e.storedMarks}get selection(){return this.curSelectionFor0}setStoredMarks(e){return this.storedMarks=e,this.updated|=2,this}ensureMarks(e){return a.sameSet(this.storedMarks||this.selection.$from.marks(),e)||this.setStoredMarks(e),this}addStoredMark(e){return this.ensureMarks(e.addToSet(this.storedMarks||this.selection.$head.marks()))}removeStoredMark(e){return this.ensureMarks(e.removeFromSet(this.storedMarks||this.selection.$head.marks()))}get storedMarksSet(){return(2&this.updated)>0}addStep(e,t){super.addStep(e,t),this.updated=-3&this.updated,this.storedMarks=null}setTime(e){return this.time=e,this}replaceSelection(e){return this.selection.replace(this,e),this}replaceSelectionWith(e,t=!0){let n=this.selection;return t&&(e=e.mark(this.storedMarks||(n.empty?n.$from.marks():n.$from.marksAcross(n.$to)||a.none))),n.replaceWith(this,e),this}deleteSelection(){return this.selection.replace(this),this}insertText(e,t,n){let r=this.doc.type.schema;if(null==t)return e?this.replaceSelectionWith(r.text(e),!0):this.deleteSelection();{if(null==n&&(n=t),n=null==n?t:n,!e)return this.deleteRange(t,n);let i=this.storedMarks;if(!i){let e=this.doc.resolve(t);i=n==t?e.marks():e.marksAcross(this.doc.resolve(n))}return this.replaceRangeWith(t,n,r.text(e,i)),this.selection.empty||this.setSelection(Qe.near(this.selection.$to)),this}}setMeta(e,t){return this.meta["string"==typeof e?e:e.key]=t,this}getMeta(e){return this.meta["string"==typeof e?e:e.key]}get isGeneric(){for(let e in this.meta)return!1;return!0}scrollIntoView(){return this.updated|=4,this}get scrolledIntoView(){return(4&this.updated)>0}}function pt(e,t){return t&&e?e.bind(t):e}class ut{constructor(e,t,n){this.name=e,this.init=pt(t.init,n),this.apply=pt(t.apply,n)}}const ft=[new ut("doc",{init:e=>e.doc||e.schema.topNodeType.createAndFill(),apply:e=>e.doc}),new ut("selection",{init:(e,t)=>e.selection||Qe.atStart(t.doc),apply:e=>e.selection}),new ut("storedMarks",{init:e=>e.storedMarks||null,apply:(e,t,n,r)=>r.selection.$cursor?e.storedMarks:null}),new ut("scrollToSelection",{init:()=>0,apply:(e,t)=>e.scrolledIntoView?t+1:t})];class mt{constructor(e,t){this.schema=e,this.plugins=[],this.pluginsByKey=Object.create(null),this.fields=ft.slice(),t&&t.forEach(e=>{if(this.pluginsByKey[e.key])throw new RangeError("Adding different instances of a keyed plugin ("+e.key+")");this.plugins.push(e),this.pluginsByKey[e.key]=e,e.spec.state&&this.fields.push(new ut(e.key,e.spec.state,e))})}}class gt{constructor(e){this.config=e}get schema(){return this.config.schema}get plugins(){return this.config.plugins}apply(e){return this.applyTransaction(e).state}filterTransaction(e,t=-1){for(let n=0;ne.toJSON())),e&&"object"==typeof e)for(let n in e){if("doc"==n||"selection"==n)throw new RangeError("The JSON fields `doc` and `selection` are reserved");let r=e[n],i=r.spec.state;i&&i.toJSON&&(t[n]=i.toJSON.call(r,this[r.key]))}return t}static fromJSON(e,t,n){if(!t)throw new RangeError("Invalid input for EditorState.fromJSON");if(!e.schema)throw new RangeError("Required config field 'schema' missing");let r=new mt(e.schema,e.plugins),i=new gt(r);return r.fields.forEach(r=>{if("doc"==r.name)i.doc=D.fromJSON(e.schema,t.doc);else if("selection"==r.name)i.selection=Qe.fromJSON(i.doc,t.selection);else if("storedMarks"==r.name)t.storedMarks&&(i.storedMarks=t.storedMarks.map(e.schema.markFromJSON));else{if(n)for(let o in n){let s=n[o],l=s.spec.state;if(s.key==r.name&&l&&l.fromJSON&&Object.prototype.hasOwnProperty.call(t,o))return void(i[r.name]=l.fromJSON.call(s,e,t[o],i))}i[r.name]=r.init(e,i)}}),i}}function yt(e,t,n){for(let r in e){let i=e[r];i instanceof Function?i=i.bind(t):"handleDOMEvents"==r&&(i=yt(i,t,{})),n[r]=i}return n}class wt{constructor(e){this.spec=e,this.props={},e.props&&yt(e.props,this,this.props),this.key=e.key?e.key.key:xt("plugin")}getState(e){return e[this.key]}}const vt=Object.create(null);function xt(e){return e in vt?e+"$"+ ++vt[e]:(vt[e]=0,e+"$")}class St{constructor(e="key"){this.key=xt(e)}get(e){return e.config.pluginsByKey[this.key]}getState(e){return e[this.key]}}const bt=function(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t},kt=function(e){let t=e.assignedSlot||e.parentNode;return t&&11==t.nodeType?t.host:t};let Mt=null;const Ct=function(e,t,n){let r=Mt||(Mt=document.createRange());return r.setEnd(e,null==n?e.nodeValue.length:n),r.setStart(e,t||0),r},Ot=function(e,t,n,r){return n&&(Dt(e,t,n,r,-1)||Dt(e,t,n,r,1))},Nt=/^(img|br|input|textarea|hr)$/i;function Dt(e,t,n,r,i){for(var o;;){if(e==n&&t==r)return!0;if(t==(i<0?0:Tt(e))){let n=e.parentNode;if(!n||1!=n.nodeType||Et(e)||Nt.test(e.nodeName)||"false"==e.contentEditable)return!1;t=bt(e)+(i<0?0:1),e=n}else{if(1!=e.nodeType)return!1;{let n=e.childNodes[t+(i<0?-1:0)];if(1==n.nodeType&&"false"==n.contentEditable){if(!(null===(o=n.pmViewDesc)||void 0===o?void 0:o.ignoreForSelection))return!1;t+=i}else e=n,t=i<0?Tt(e):0}}}}function Tt(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function Et(e){let t;for(let n=e;n&&!(t=n.pmViewDesc);n=n.parentNode);return t&&t.node&&t.node.isBlock&&(t.dom==e||t.contentDOM==e)}const At=function(e){return e.focusNode&&Ot(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)};function $t(e,t){let n=document.createEvent("Event");return n.initEvent("keydown",!0,!0),n.keyCode=e,n.key=n.code=t,n}const Rt="undefined"!=typeof navigator?navigator:null,It="undefined"!=typeof document?document:null,zt=Rt&&Rt.userAgent||"",Pt=/Edge\/(\d+)/.exec(zt),Bt=/MSIE \d/.exec(zt),Vt=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(zt),Ft=!!(Bt||Vt||Pt),Lt=Bt?document.documentMode:Vt?+Vt[1]:Pt?+Pt[1]:0,Wt=!Ft&&/gecko\/(\d+)/i.test(zt);Wt&&(/Firefox\/(\d+)/.exec(zt)||[0,0])[1];const Jt=!Ft&&/Chrome\/(\d+)/.exec(zt),qt=!!Jt,jt=Jt?+Jt[1]:0,_t=!Ft&&!!Rt&&/Apple Computer/.test(Rt.vendor),Kt=_t&&(/Mobile\/\w+/.test(zt)||!!Rt&&Rt.maxTouchPoints>2),Ht=Kt||!!Rt&&/Mac/.test(Rt.platform),Yt=!!Rt&&/Win/.test(Rt.platform),Ut=/Android \d/.test(zt),Gt=!!It&&"webkitFontSmoothing"in It.documentElement.style,Zt=Gt?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0;function Xt(e){let t=e.defaultView&&e.defaultView.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.documentElement.clientWidth,top:0,bottom:e.documentElement.clientHeight}}function Qt(e,t){return"number"==typeof e?e:e[t]}function en(e){let t=e.getBoundingClientRect(),n=t.width/e.offsetWidth||1,r=t.height/e.offsetHeight||1;return{left:t.left,right:t.left+e.clientWidth*n,top:t.top,bottom:t.top+e.clientHeight*r}}function tn(e,t,n){let r=e.someProp("scrollThreshold")||0,i=e.someProp("scrollMargin")||5,o=e.dom.ownerDocument;for(let s=n||e.dom;s;){if(1!=s.nodeType){s=kt(s);continue}let e=s,n=e==o.body,l=n?Xt(o):en(e),a=0,h=0;if(t.topl.bottom-Qt(r,"bottom")&&(h=t.bottom-t.top>l.bottom-l.top?t.top+Qt(i,"top")-l.top:t.bottom-l.bottom+Qt(i,"bottom")),t.leftl.right-Qt(r,"right")&&(a=t.right-l.right+Qt(i,"right")),a||h)if(n)o.defaultView.scrollBy(a,h);else{let n=e.scrollLeft,r=e.scrollTop;h&&(e.scrollTop+=h),a&&(e.scrollLeft+=a);let i=e.scrollLeft-n,o=e.scrollTop-r;t={left:t.left-i,top:t.top-o,right:t.right-i,bottom:t.bottom-o}}let c=n?"fixed":getComputedStyle(s).position;if(/^(fixed|sticky)$/.test(c))break;s="absolute"==c?s.offsetParent:kt(s)}}function nn(e){let t=[],n=e.ownerDocument;for(let r=e;r&&(t.push({dom:r,top:r.scrollTop,left:r.scrollLeft}),e!=n);r=kt(r));return t}function rn(e,t){for(let n=0;n=h){a=Math.max(u.bottom,a),h=Math.min(u.top,h);let e=u.left>t.left?u.left-t.left:u.right=(u.left+u.right)/2?1:0));continue}}else u.top>t.top&&!i&&u.left<=t.left&&u.right>=t.left&&(i=c,o={left:Math.max(u.left,Math.min(u.right,t.left)),top:u.top});!n&&(t.left>=u.right&&t.top>=u.top||t.left>=u.left&&t.top>=u.bottom)&&(l=d+1)}}return!n&&i&&(n=i,r=o,s=0),n&&3==n.nodeType?function(e,t){let n=e.nodeValue.length,r=document.createRange();for(let i=0;i=(n.left+n.right)/2?1:0)}}return{node:e,offset:0}}(n,r):!n||s&&1==n.nodeType?{node:e,offset:l}:sn(n,r)}function ln(e,t){return e.left>=t.left-1&&e.left<=t.right+1&&e.top>=t.top-1&&e.top<=t.bottom+1}function an(e,t,n){let r=e.childNodes.length;if(r&&n.topt.top&&i++}let r;Gt&&i&&1==n.nodeType&&1==(r=n.childNodes[i-1]).nodeType&&"false"==r.contentEditable&&r.getBoundingClientRect().top>=t.top&&i--,n==e.dom&&i==n.childNodes.length-1&&1==n.lastChild.nodeType&&t.top>n.lastChild.getBoundingClientRect().bottom?s=e.state.doc.content.size:0!=i&&1==n.nodeType&&"BR"==n.childNodes[i-1].nodeName||(s=function(e,t,n,r){let i=-1;for(let o=t,s=!1;o!=e.dom;){let t,n=e.docView.nearestDesc(o,!0);if(!n)return null;if(1==n.dom.nodeType&&(n.node.isBlock&&n.parent||!n.contentDOM)&&((t=n.dom.getBoundingClientRect()).width||t.height)&&(n.node.isBlock&&n.parent&&!/^T(R|BODY|HEAD|FOOT)$/.test(n.dom.nodeName)&&(!s&&t.left>r.left||t.top>r.top?i=n.posBefore:(!s&&t.right-1?i:e.docView.posFromDOM(t,n,-1)}(e,n,i,t))}null==s&&(s=function(e,t,n){let{node:r,offset:i}=sn(t,n),o=-1;if(1==r.nodeType&&!r.firstChild){let e=r.getBoundingClientRect();o=e.left!=e.right&&n.left>(e.left+e.right)/2?1:-1}return e.docView.posFromDOM(r,i,o)}(e,l,t));let a=e.docView.nearestDesc(l,!0);return{pos:s,inside:a?a.posAtStart-a.border:-1}}function cn(e){return e.top=0&&i==r.nodeValue.length?(e--,o=1):n<0?e--:t++,fn(dn(Ct(r,e,t),o),o<0)}{let e=dn(Ct(r,i,i),n);if(Wt&&i&&/\s/.test(r.nodeValue[i-1])&&i=0)}if(null==o&&i&&(n<0||i==Tt(r))){let e=r.childNodes[i-1],t=3==e.nodeType?Ct(e,Tt(e)-(s?0:1)):1!=e.nodeType||"BR"==e.nodeName&&e.nextSibling?null:e;if(t)return fn(dn(t,1),!1)}if(null==o&&i=0)}function fn(e,t){if(0==e.width)return e;let n=t?e.left:e.right;return{top:e.top,bottom:e.bottom,left:n,right:n}}function mn(e,t){if(0==e.height)return e;let n=t?e.top:e.bottom;return{top:n,bottom:n,left:e.left,right:e.right}}function gn(e,t,n){let r=e.state,i=e.root.activeElement;r!=t&&e.updateState(t),i!=e.dom&&e.focus();try{return n()}finally{r!=t&&e.updateState(r),i!=e.dom&&i&&i.focus()}}const yn=/[\u0590-\u08ac]/;let wn=null,vn=null,xn=!1;function Sn(e,t,n){return wn==t&&vn==n?xn:(wn=t,vn=n,xn="up"==n||"down"==n?function(e,t,n){let r=t.selection,i="up"==n?r.$from:r.$to;return gn(e,t,()=>{let{node:t}=e.docView.domFromPos(i.pos,"up"==n?-1:1);for(;;){let n=e.docView.nearestDesc(t,!0);if(!n)break;if(n.node.isBlock){t=n.contentDOM||n.dom;break}t=n.dom.parentNode}let r=un(e,i.pos,1);for(let e=t.firstChild;e;e=e.nextSibling){let t;if(1==e.nodeType)t=e.getClientRects();else{if(3!=e.nodeType)continue;t=Ct(e,0,e.nodeValue.length).getClientRects()}for(let e=0;ei.top+1&&("up"==n?r.top-i.top>2*(i.bottom-r.top):i.bottom-r.bottom>2*(r.bottom-i.top)))return!1}}return!0})}(e,t,n):function(e,t,n){let{$head:r}=t.selection;if(!r.parent.isTextblock)return!1;let i=r.parentOffset,o=!i,s=i==r.parent.content.size,l=e.domSelection();return l?yn.test(r.parent.textContent)&&l.modify?gn(e,t,()=>{let{focusNode:t,focusOffset:i,anchorNode:o,anchorOffset:s}=e.domSelectionRange(),a=l.caretBidiLevel;l.modify("move",n,"character");let h=r.depth?e.docView.domAfterPos(r.before()):e.dom,{focusNode:c,focusOffset:d}=e.domSelectionRange(),p=c&&!h.contains(1==c.nodeType?c:c.parentNode)||t==c&&i==d;try{l.collapse(o,s),t&&(t!=o||i!=s)&&l.extend&&l.extend(t,i)}catch(u){}return null!=a&&(l.caretBidiLevel=a),p}):"left"==n||"backward"==n?o:s:r.pos==r.start()||r.pos==r.end()}(e,t,n))}class bn{constructor(e,t,n,r){this.parent=e,this.children=t,this.dom=n,this.contentDOM=r,this.dirty=0,n.pmViewDesc=this}matchesWidget(e){return!1}matchesMark(e){return!1}matchesNode(e,t,n){return!1}matchesHack(e){return!1}parseRule(){return null}stopEvent(e){return!1}get size(){let e=0;for(let t=0;tbt(this.contentDOM);else if(this.contentDOM&&this.contentDOM!=this.dom&&this.dom.contains(this.contentDOM))r=2&e.compareDocumentPosition(this.contentDOM);else if(this.dom.firstChild){if(0==t)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!1;break}if(t.previousSibling)break}if(null==r&&t==e.childNodes.length)for(let t=e;;t=t.parentNode){if(t==this.dom){r=!0;break}if(t.nextSibling)break}}return(null==r?n>0:r)?this.posAtEnd:this.posAtStart}nearestDesc(e,t=!1){for(let n=!0,r=e;r;r=r.parentNode){let i,o=this.getDesc(r);if(o&&(!t||o.node)){if(!n||!(i=o.nodeDOM)||(1==i.nodeType?i.contains(1==e.nodeType?e:e.parentNode):i==e))return o;n=!1}}}getDesc(e){let t=e.pmViewDesc;for(let n=t;n;n=n.parent)if(n==this)return t}posFromDOM(e,t,n){for(let r=e;r;r=r.parentNode){let i=this.getDesc(r);if(i)return i.localPosFromDOM(e,t,n)}return-1}descAt(e){for(let t=0,n=0;te||t instanceof Tn){r=e-i;break}i=o}if(r)return this.children[n].domFromPos(r-this.children[n].border,t);for(let i;n&&!(i=this.children[n-1]).size&&i instanceof kn&&i.side>=0;n--);if(t<=0){let e,r=!0;for(;e=n?this.children[n-1]:null,e&&e.dom.parentNode!=this.contentDOM;n--,r=!1);return e&&t&&r&&!e.border&&!e.domAtom?e.domFromPos(e.size,t):{node:this.contentDOM,offset:e?bt(e.dom)+1:0}}{let e,r=!0;for(;e=n=i&&t<=l-n.border&&n.node&&n.contentDOM&&this.contentDOM.contains(n.contentDOM))return n.parseRange(e,t,i);e=o;for(let t=s;t>0;t--){let n=this.children[t-1];if(n.size&&n.dom.parentNode==this.contentDOM&&!n.emptyChildAt(1)){r=bt(n.dom)+1;break}e-=n.size}-1==r&&(r=0)}if(r>-1&&(l>t||s==this.children.length-1)){t=l;for(let e=s+1;ef&&ot){let e=s;s=l,l=e}let n=document.createRange();n.setEnd(l.node,l.offset),n.setStart(s.node,s.offset),a.removeAllRanges(),a.addRange(n)}}ignoreMutation(e){return!this.contentDOM&&"selection"!=e.type}get contentLost(){return this.contentDOM&&this.contentDOM!=this.dom&&!this.dom.contains(this.contentDOM)}markDirty(e,t){for(let n=0,r=0;r=n:en){let r=n+i.border,s=o-i.border;if(e>=r&&t<=s)return this.dirty=e==n||t==o?2:1,void(e!=r||t!=s||!i.contentLost&&i.dom.parentNode==this.contentDOM?i.markDirty(e-r,t-r):i.dirty=3);i.dirty=i.dom!=i.contentDOM||i.dom.parentNode!=this.contentDOM||i.children.length?3:2}n=o}this.dirty=2}markParentsDirty(){let e=1;for(let t=this.parent;t;t=t.parent,e++){let n=1==e?2:1;t.dirtyi?i.parent?i.parent.posBeforeChild(i):void 0:r)),!t.type.spec.raw){if(1!=o.nodeType){let e=document.createElement("span");e.appendChild(o),o=e}o.contentEditable="false",o.classList.add("ProseMirror-widget")}super(e,[],o,null),this.widget=t,this.widget=t,i=this}matchesWidget(e){return 0==this.dirty&&e.type.eq(this.widget.type)}parseRule(){return{ignore:!0}}stopEvent(e){let t=this.widget.spec.stopEvent;return!!t&&t(e)}ignoreMutation(e){return"selection"!=e.type||this.widget.spec.ignoreSelection}destroy(){this.widget.type.destroy(this.dom),super.destroy()}get domAtom(){return!0}get ignoreForSelection(){return!!this.widget.type.spec.relaxedSide}get side(){return this.widget.type.side}}class Mn extends bn{constructor(e,t,n,r){super(e,[],t,null),this.textDOM=n,this.text=r}get size(){return this.text.length}localPosFromDOM(e,t){return e!=this.textDOM?this.posAtStart+(t?this.size:0):this.posAtStart+t}domFromPos(e){return{node:this.textDOM,offset:e}}ignoreMutation(e){return"characterData"===e.type&&e.target.nodeValue==e.oldValue}}class Cn extends bn{constructor(e,t,n,r,i){super(e,[],n,r),this.mark=t,this.spec=i}static create(e,t,n,r){let i=r.nodeViews[t.type.name],o=i&&i(t,r,n);return o&&o.dom||(o=oe.renderSpec(document,t.type.spec.toDOM(t,n),null,t.attrs)),new Cn(e,t,o.dom,o.contentDOM||o.dom,o)}parseRule(){return 3&this.dirty||this.mark.type.spec.reparseInView?null:{mark:this.mark.type.name,attrs:this.mark.attrs,contentElement:this.contentDOM}}matchesMark(e){return 3!=this.dirty&&this.mark.eq(e)}markDirty(e,t){if(super.markDirty(e,t),0!=this.dirty){let e=this.parent;for(;!e.node;)e=e.parent;e.dirty0&&(i=Jn(i,0,e,n));for(let s=0;ss?s.parent?s.parent.posBeforeChild(s):void 0:o,n,r),h=a&&a.dom,c=a&&a.contentDOM;if(t.isText)if(h){if(3!=h.nodeType)throw new RangeError("Text must be rendered as a DOM text node")}else h=document.createTextNode(t.text);else if(!h){let e=oe.renderSpec(document,t.type.spec.toDOM(t),null,t.attrs);({dom:h,contentDOM:c}=e)}c||t.isText||"BR"==h.nodeName||(h.hasAttribute("contenteditable")||(h.contentEditable="false"),t.type.spec.draggable&&(h.draggable=!0));let d=h;return h=Bn(h,n,t),a?s=new En(e,t,n,r,h,c||null,d,a,i,o+1):t.isText?new Dn(e,t,n,r,h,d,i):new On(e,t,n,r,h,c||null,d,i,o+1)}parseRule(){if(this.node.type.spec.reparseInView)return null;let e={node:this.node.type.name,attrs:this.node.attrs};if("pre"==this.node.type.whitespace&&(e.preserveWhitespace="full"),this.contentDOM)if(this.contentLost){for(let t=this.children.length-1;t>=0;t--){let n=this.children[t];if(this.dom.contains(n.dom.parentNode)){e.contentElement=n.dom.parentNode;break}}e.contentElement||(e.getContent=()=>i.empty)}else e.contentElement=this.contentDOM;else e.getContent=()=>this.node.content;return e}matchesNode(e,t,n){return 0==this.dirty&&e.eq(this.node)&&Vn(t,this.outerDeco)&&n.eq(this.innerDeco)}get size(){return this.node.nodeSize}get border(){return this.node.isLeaf?0:1}updateChildren(e,t){let n=this.node.inlineContent,r=t,i=e.composing?this.localCompositionInfo(e,t):null,o=i&&i.pos>-1?i:null,s=i&&i.pos<0,l=new Ln(this,o&&o.node,e);!function(e,t,n,r){let i=t.locals(e),o=0;if(0==i.length){for(let n=0;no;)l.push(i[s++]);let f=o+p.nodeSize;if(p.isText){let e=f;s!e.inline):l.slice(),t.forChild(o,p),u),o=f}}(this.node,this.innerDeco,(t,i,o)=>{t.spec.marks?l.syncToMarks(t.spec.marks,n,e):t.type.side>=0&&!o&&l.syncToMarks(i==this.node.childCount?a.none:this.node.child(i).marks,n,e),l.placeWidget(t,e,r)},(t,o,a,h)=>{let c;l.syncToMarks(t.marks,n,e),l.findNodeMatch(t,o,a,h)||s&&e.state.selection.from>r&&e.state.selection.to-1&&l.updateNodeAt(t,o,a,c,e)||l.updateNextNode(t,o,a,e,h,r)||l.addNode(t,o,a,e,r),r+=t.nodeSize}),l.syncToMarks([],n,e),this.node.isTextblock&&l.addTextblockHacks(),l.destroyRest(),(l.changed||2==this.dirty)&&(o&&this.protectLocalComposition(e,o),An(this.contentDOM,this.children,e),Kt&&function(e){if("UL"==e.nodeName||"OL"==e.nodeName){let t=e.style.cssText;e.style.cssText=t+"; list-style: square !important",window.getComputedStyle(e).listStyle,e.style.cssText=t}}(this.dom))}localCompositionInfo(e,t){let{from:n,to:r}=e.state.selection;if(!(e.state.selection instanceof rt)||nt+this.node.content.size)return null;let i=e.input.compositionNode;if(!i||!this.dom.contains(i.parentNode))return null;if(this.node.inlineContent){let e=i.nodeValue,o=function(e,t,n,r){for(let i=0,o=0;i=n){if(o>=r&&a.slice(r-t.length-l,r-l)==t)return r-t.length;let e=l=0&&e+t.length+l>=n)return l+e;if(n==r&&a.length>=r+t.length-l&&a.slice(r-l,r-l+t.length)==t)return r}}return-1}(this.node.content,e,n-t,r-t);return o<0?null:{node:i,pos:o,text:e}}return{node:i,pos:-1,text:""}}protectLocalComposition(e,{node:t,pos:n,text:r}){if(this.getDesc(t))return;let i=t;for(;i.parentNode!=this.contentDOM;i=i.parentNode){for(;i.previousSibling;)i.parentNode.removeChild(i.previousSibling);for(;i.nextSibling;)i.parentNode.removeChild(i.nextSibling);i.pmViewDesc&&(i.pmViewDesc=void 0)}let o=new Mn(this,i,t,r);e.input.compositionNodes.push(o),this.children=Jn(this.children,n,n+r.length,e,o)}update(e,t,n,r){return!(3==this.dirty||!e.sameMarkup(this.node))&&(this.updateInner(e,t,n,r),!0)}updateInner(e,t,n,r){this.updateOuterDeco(t),this.node=e,this.innerDeco=n,this.contentDOM&&this.updateChildren(r,this.posAtStart),this.dirty=0}updateOuterDeco(e){if(Vn(e,this.outerDeco))return;let t=1!=this.nodeDOM.nodeType,n=this.dom;this.dom=zn(this.dom,this.nodeDOM,In(this.outerDeco,this.node,t),In(e,this.node,t)),this.dom!=n&&(n.pmViewDesc=void 0,this.dom.pmViewDesc=this),this.outerDeco=e}selectNode(){1==this.nodeDOM.nodeType&&this.nodeDOM.classList.add("ProseMirror-selectednode"),!this.contentDOM&&this.node.type.spec.draggable||(this.dom.draggable=!0)}deselectNode(){1==this.nodeDOM.nodeType&&(this.nodeDOM.classList.remove("ProseMirror-selectednode"),!this.contentDOM&&this.node.type.spec.draggable||this.dom.removeAttribute("draggable"))}get domAtom(){return this.node.isAtom}}function Nn(e,t,n,r,i){Bn(r,t,e);let o=new On(void 0,e,t,n,r,r,r,i,0);return o.contentDOM&&o.updateChildren(i,0),o}class Dn extends On{constructor(e,t,n,r,i,o,s){super(e,t,n,r,i,null,o,s,0)}parseRule(){let e=this.nodeDOM.parentNode;for(;e&&e!=this.dom&&!e.pmIsDeco;)e=e.parentNode;return{skip:e||!0}}update(e,t,n,r){return!(3==this.dirty||0!=this.dirty&&!this.inParent()||!e.sameMarkup(this.node))&&(this.updateOuterDeco(t),0==this.dirty&&e.text==this.node.text||e.text==this.nodeDOM.nodeValue||(this.nodeDOM.nodeValue=e.text,r.trackWrites==this.nodeDOM&&(r.trackWrites=null)),this.node=e,this.dirty=0,!0)}inParent(){let e=this.parent.contentDOM;for(let t=this.nodeDOM;t;t=t.parentNode)if(t==e)return!0;return!1}domFromPos(e){return{node:this.nodeDOM,offset:e}}localPosFromDOM(e,t,n){return e==this.nodeDOM?this.posAtStart+Math.min(t,this.node.text.length):super.localPosFromDOM(e,t,n)}ignoreMutation(e){return"characterData"!=e.type&&"selection"!=e.type}slice(e,t,n){let r=this.node.cut(e,t),i=document.createTextNode(r.text);return new Dn(this.parent,r,this.outerDeco,this.innerDeco,i,i,n)}markDirty(e,t){super.markDirty(e,t),this.dom==this.nodeDOM||0!=e&&t!=this.nodeDOM.nodeValue.length||(this.dirty=3)}get domAtom(){return!1}isText(e){return this.node.text==e}}class Tn extends bn{parseRule(){return{ignore:!0}}matchesHack(e){return 0==this.dirty&&this.dom.nodeName==e}get domAtom(){return!0}get ignoreForCoords(){return"IMG"==this.dom.nodeName}}class En extends On{constructor(e,t,n,r,i,o,s,l,a,h){super(e,t,n,r,i,o,s,a,h),this.spec=l}update(e,t,n,r){if(3==this.dirty)return!1;if(this.spec.update&&(this.node.type==e.type||this.spec.multiType)){let i=this.spec.update(e,t,n);return i&&this.updateInner(e,t,n,r),i}return!(!this.contentDOM&&!e.isLeaf)&&super.update(e,t,n,r)}selectNode(){this.spec.selectNode?this.spec.selectNode():super.selectNode()}deselectNode(){this.spec.deselectNode?this.spec.deselectNode():super.deselectNode()}setSelection(e,t,n,r){this.spec.setSelection?this.spec.setSelection(e,t,n.root):super.setSelection(e,t,n,r)}destroy(){this.spec.destroy&&this.spec.destroy(),super.destroy()}stopEvent(e){return!!this.spec.stopEvent&&this.spec.stopEvent(e)}ignoreMutation(e){return this.spec.ignoreMutation?this.spec.ignoreMutation(e):super.ignoreMutation(e)}}function An(e,t,n){let r=e.firstChild,i=!1;for(let o=0;o0;){let l;for(;;)if(r){let e=n.children[r-1];if(!(e instanceof Cn)){l=e,r--;break}n=e,r=e.children.length}else{if(n==t)break e;r=n.parent.children.indexOf(n),n=n.parent}let a=l.node;if(a){if(a!=e.child(i-1))break;--i,o.set(l,i),s.push(l)}}return{index:i,matched:o,matches:s.reverse()}}(e.node.content,e)}destroyBetween(e,t){if(e!=t){for(let n=e;n>1,o=Math.min(i,e.length);for(;r-1)r>this.index&&(this.changed=!0,this.destroyBetween(this.index,r)),this.top=this.top.children[this.index];else{let r=Cn.create(this.top,e[i],t,n);this.top.children.splice(this.index,0,r),this.top=r,this.changed=!0}this.index=0,i++}}findNodeMatch(e,t,n,r){let i,o=-1;if(r>=this.preMatch.index&&(i=this.preMatch.matches[r-this.preMatch.index]).parent==this.top&&i.matchesNode(e,t,n))o=this.top.children.indexOf(i,this.index);else for(let s=this.index,l=Math.min(this.top.children.length,s+5);s=n||c<=t?o.push(a):(hn&&o.push(a.slice(n-h,a.size,r)))}return o}function qn(e,t=null){let n=e.domSelectionRange(),r=e.state.doc;if(!n.focusNode)return null;let i=e.docView.nearestDesc(n.focusNode),o=i&&0==i.size,s=e.docView.posFromDOM(n.focusNode,n.focusOffset,1);if(s<0)return null;let l,a,h=r.resolve(s);if(At(n)){for(l=s;i&&!i.node;)i=i.parent;let e=i.node;if(i&&e.isAtom&&ot.isSelectable(e)&&i.parent&&(!e.isInline||!function(e,t,n){for(let r=0==t,i=t==Tt(e);r||i;){if(e==n)return!0;let t=bt(e);if(!(e=e.parentNode))return!1;r=r&&0==t,i=i&&t==Tt(e)}}(n.focusNode,n.focusOffset,i.dom))){let e=i.posBefore;a=new ot(s==e?h:r.resolve(e))}}else{if(n instanceof e.dom.ownerDocument.defaultView.Selection&&n.rangeCount>1){let t=s,i=s;for(let r=0;r{n.anchorNode==r&&n.anchorOffset==i||(t.removeEventListener("selectionchange",e.input.hideSelectionGuard),setTimeout(()=>{jn(e)&&!e.state.selection.visible||e.dom.classList.remove("ProseMirror-hideselection")},20))})}(e))}e.domObserver.setCurSelection(),e.domObserver.connectSelection()}}const Kn=_t||qt&&jt<63;function Hn(e,t){let{node:n,offset:r}=e.docView.domFromPos(t,0),i=rr(e,t,n))||rt.between(t,n,r)}function Qn(e){return!(e.editable&&!e.hasFocus())&&er(e)}function er(e){let t=e.domSelectionRange();if(!t.anchorNode)return!1;try{return e.dom.contains(3==t.anchorNode.nodeType?t.anchorNode.parentNode:t.anchorNode)&&(e.editable||e.dom.contains(3==t.focusNode.nodeType?t.focusNode.parentNode:t.focusNode))}catch(n){return!1}}function tr(e,t){let{$anchor:n,$head:r}=e.selection,i=t>0?n.max(r):n.min(r),o=i.parent.inlineContent?i.depth?e.doc.resolve(t>0?i.after():i.before()):null:i;return o&&Qe.findFrom(o,t)}function nr(e,t){return e.dispatch(e.state.tr.setSelection(t).scrollIntoView()),!0}function rr(e,t,n){let r=e.state.selection;if(!(r instanceof rt)){if(r instanceof ot&&r.node.isInline)return nr(e,new rt(t>0?r.$to:r.$from));{let n=tr(e.state,t);return!!n&&nr(e,n)}}if(n.indexOf("s")>-1){let{$head:n}=r,i=n.textOffset?null:t<0?n.nodeBefore:n.nodeAfter;if(!i||i.isText||!i.isLeaf)return!1;let o=e.state.doc.resolve(n.pos+i.nodeSize*(t<0?-1:1));return nr(e,new rt(r.$anchor,o))}if(!r.empty)return!1;if(e.endOfTextblock(t>0?"forward":"backward")){let n=tr(e.state,t);return!!(n&&n instanceof ot)&&nr(e,n)}if(!(Ht&&n.indexOf("m")>-1)){let n,i=r.$head,o=i.textOffset?null:t<0?i.nodeBefore:i.nodeAfter;if(!o||o.isText)return!1;let s=t<0?i.pos-o.nodeSize:i.pos;return!!(o.isAtom||(n=e.docView.descAt(s))&&!n.contentDOM)&&(ot.isSelectable(o)?nr(e,new ot(t<0?e.state.doc.resolve(i.pos-o.nodeSize):i)):!!Gt&&nr(e,new rt(e.state.doc.resolve(t<0?s:s+o.nodeSize))))}}function ir(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function or(e,t){let n=e.pmViewDesc;return n&&0==n.size&&(t<0||e.nextSibling||"BR"!=e.nodeName)}function sr(e,t){return t<0?function(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,o,s=!1;Wt&&1==n.nodeType&&r0){if(1!=n.nodeType)break;{let e=n.childNodes[r-1];if(or(e,-1))i=n,o=--r;else{if(3!=e.nodeType)break;n=e,r=n.nodeValue.length}}}else{if(lr(n))break;{let t=n.previousSibling;for(;t&&or(t,-1);)i=n.parentNode,o=bt(t),t=t.previousSibling;if(t)n=t,r=ir(n);else{if(n=n.parentNode,n==e.dom)break;r=0}}}s?ar(e,n,r):i&&ar(e,i,o)}(e):function(e){let t=e.domSelectionRange(),n=t.focusNode,r=t.focusOffset;if(!n)return;let i,o,s=ir(n);for(;;)if(r{e.state==i&&_n(e)},50)}function hr(e,t){let n=e.state.doc.resolve(t);if(!qt&&!Yt&&n.parent.inlineContent){let r=e.coordsAtPos(t);if(t>n.start()){let n=e.coordsAtPos(t-1),i=(n.top+n.bottom)/2;if(i>r.top&&i1)return n.leftr.top&&i1)return n.left>r.left?"ltr":"rtl"}}return"rtl"==getComputedStyle(e.dom).direction?"rtl":"ltr"}function cr(e,t,n){let r=e.state.selection;if(r instanceof rt&&!r.empty||n.indexOf("s")>-1)return!1;if(Ht&&n.indexOf("m")>-1)return!1;let{$from:i,$to:o}=r;if(!i.parent.inlineContent||e.endOfTextblock(t<0?"up":"down")){let n=tr(e.state,t);if(n&&n instanceof ot)return nr(e,n)}if(!i.parent.inlineContent){let n=t<0?i:o,s=r instanceof lt?Qe.near(n,t):Qe.findFrom(n,t);return!!s&&nr(e,s)}return!1}function dr(e,t){if(!(e.state.selection instanceof rt))return!0;let{$head:n,$anchor:r,empty:i}=e.state.selection;if(!n.sameParent(r))return!0;if(!i)return!1;if(e.endOfTextblock(t>0?"forward":"backward"))return!0;let o=!n.textOffset&&(t<0?n.nodeBefore:n.nodeAfter);if(o&&!o.isText){let r=e.state.tr;return t<0?r.delete(n.pos-o.nodeSize,n.pos):r.delete(n.pos,n.pos+o.nodeSize),e.dispatch(r),!0}return!1}function pr(e,t,n){e.domObserver.stop(),t.contentEditable=n,e.domObserver.start()}function ur(e,t){let n=t.keyCode,r=function(e){let t="";return e.ctrlKey&&(t+="c"),e.metaKey&&(t+="m"),e.altKey&&(t+="a"),e.shiftKey&&(t+="s"),t}(t);if(8==n||Ht&&72==n&&"c"==r)return dr(e,-1)||sr(e,-1);if(46==n&&!t.shiftKey||Ht&&68==n&&"c"==r)return dr(e,1)||sr(e,1);if(13==n||27==n)return!0;if(37==n||Ht&&66==n&&"c"==r){let t=37==n?"ltr"==hr(e,e.state.selection.from)?-1:1:-1;return rr(e,t,r)||sr(e,t)}if(39==n||Ht&&70==n&&"c"==r){let t=39==n?"ltr"==hr(e,e.state.selection.from)?1:-1:1;return rr(e,t,r)||sr(e,t)}return 38==n||Ht&&80==n&&"c"==r?cr(e,-1,r)||sr(e,-1):40==n||Ht&&78==n&&"c"==r?function(e){if(!_t||e.state.selection.$head.parentOffset>0)return!1;let{focusNode:t,focusOffset:n}=e.domSelectionRange();if(t&&1==t.nodeType&&0==n&&t.firstChild&&"false"==t.firstChild.contentEditable){let n=t.firstChild;pr(e,n,"true"),setTimeout(()=>pr(e,n,"false"),20)}return!1}(e)||cr(e,1,r)||sr(e,1):r==(Ht?"m":"c")&&(66==n||73==n||89==n||90==n)}function fr(e,t){e.someProp("transformCopied",n=>{t=n(t,e)});let n=[],{content:r,openStart:i,openEnd:o}=t;for(;i>1&&o>1&&1==r.childCount&&1==r.firstChild.childCount;){i--,o--;let e=r.firstChild;n.push(e.type.name,e.attrs!=e.type.defaultAttrs?e.attrs:null),r=e.content}let s=e.someProp("clipboardSerializer")||oe.fromSchema(e.state.schema),l=Mr(),a=l.createElement("div");a.appendChild(s.serializeFragment(r,{document:l}));let h,c=a.firstChild,d=0;for(;c&&1==c.nodeType&&(h=br[c.nodeName.toLowerCase()]);){for(let e=h.length-1;e>=0;e--){let t=l.createElement(h[e]);for(;a.firstChild;)t.appendChild(a.firstChild);a.appendChild(t),d++}c=a.firstChild}return c&&1==c.nodeType&&c.setAttribute("data-pm-slice",`${i} ${o}${d?` -${d}`:""} ${JSON.stringify(n)}`),{dom:a,text:e.someProp("clipboardTextSerializer",n=>n(t,e))||t.content.textBetween(0,t.content.size,"\n\n"),slice:t}}function mr(e,t,n,r,o){let s,l,a=o.parent.type.spec.code;if(!n&&!t)return null;let h=t&&(r||a||!n);if(h){if(e.someProp("transformPastedText",n=>{t=n(t,a||r,e)}),a)return t?new c(i.from(e.state.schema.text(t.replace(/\r\n?/g,"\n"))),0,0):c.empty;let n=e.someProp("clipboardTextParser",n=>n(t,o,r,e));if(n)l=n;else{let n=o.marks(),{schema:r}=e.state,i=oe.fromSchema(r);s=document.createElement("div"),t.split(/(?:\r\n?|\n)+/).forEach(e=>{let t=s.appendChild(document.createElement("p"));e&&t.appendChild(i.serializeNode(r.text(e,n)))})}}else e.someProp("transformPastedHTML",t=>{n=t(n,e)}),s=function(e){let t=/^(\s*]*>)*/.exec(e);t&&(e=e.slice(t[0].length));let n,r=Mr().createElement("div"),i=/<([a-z][^>\s]+)/i.exec(e);(n=i&&br[i[1].toLowerCase()])&&(e=n.map(e=>"<"+e+">").join("")+e+n.map(e=>""+e+">").reverse().join(""));if(r.innerHTML=function(e){let t=window.trustedTypes;if(!t)return e;Cr||(Cr=t.defaultPolicy||t.createPolicy("ProseMirrorClipboard",{createHTML:e=>e}));return Cr.createHTML(e)}(e),n)for(let o=0;o0;i--){let e=s.firstChild;for(;e&&1!=e.nodeType;)e=e.nextSibling;if(!e)break;s=e}if(!l){let t=e.someProp("clipboardParser")||e.someProp("domParser")||U.fromSchema(e.state.schema);l=t.parseSlice(s,{preserveWhitespace:!(!h&&!p),context:o,ruleFromNode:e=>"BR"!=e.nodeName||e.nextSibling||!e.parentNode||gr.test(e.parentNode.nodeName)?null:{ignore:!0}})}if(p)l=function(e,t){if(!e.size)return e;let n,r=e.content.firstChild.type.schema;try{n=JSON.parse(t)}catch(a){return e}let{content:o,openStart:s,openEnd:l}=e;for(let h=n.length-2;h>=0;h-=2){let e=r.nodes[n[h]];if(!e||e.hasRequiredAttrs())break;o=i.from(e.create(n[h+1],o)),s++,l++}return new c(o,s,l)}(Sr(l,+p[1],+p[2]),p[4]);else if(l=c.maxOpen(function(e,t){if(e.childCount<2)return e;for(let n=t.depth;n>=0;n--){let r,o=t.node(n).contentMatchAt(t.index(n)),s=[];if(e.forEach(e=>{if(!s)return;let t,n=o.findWrapping(e.type);if(!n)return s=null;if(t=s.length&&r.length&&wr(n,r,e,s[s.length-1],0))s[s.length-1]=t;else{s.length&&(s[s.length-1]=vr(s[s.length-1],r.length));let t=yr(e,n);s.push(t),o=o.matchType(t.type),r=n}}),s)return i.from(s)}return e}(l.content,o),!0),l.openStart||l.openEnd){let e=0,t=0;for(let n=l.content.firstChild;e{l=t(l,e)}),l}const gr=/^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;function yr(e,t,n=0){for(let r=t.length-1;r>=n;r--)e=t[r].create(null,i.from(e));return e}function wr(e,t,n,r,o){if(o1&&(s=0),o=n&&(a=t<0?l.contentMatchAt(0).fillBefore(a,s<=o).append(a):a.append(l.contentMatchAt(l.childCount).fillBefore(i.empty,!0))),e.replaceChild(t<0?0:e.childCount-1,l.copy(a))}function Sr(e,t,n){return t{for(let n in t)e.input.eventHandlers[n]||e.dom.addEventListener(n,e.input.eventHandlers[n]=t=>$r(e,t))})}function $r(e,t){return e.someProp("handleDOMEvents",n=>{let r=n[t.type];return!!r&&(r(e,t)||t.defaultPrevented)})}function Rr(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n=t.target;n!=e.dom;n=n.parentNode)if(!n||11==n.nodeType||n.pmViewDesc&&n.pmViewDesc.stopEvent(t))return!1;return!0}function Ir(e){return{left:e.clientX,top:e.clientY}}function zr(e,t,n,r,i){if(-1==r)return!1;let o=e.state.doc.resolve(r);for(let s=o.depth+1;s>0;s--)if(e.someProp(t,t=>s>o.depth?t(e,n,o.nodeAfter,o.before(s),i,!0):t(e,n,o.node(s),o.before(s),i,!1)))return!0;return!1}function Pr(e,t,n){if(e.focused||e.focus(),e.state.selection.eq(t))return;let r=e.state.tr.setSelection(t);r.setMeta("pointer",!0),e.dispatch(r)}function Br(e,t,n,r,i){return zr(e,"handleClickOn",t,n,r)||e.someProp("handleClick",n=>n(e,t,r))||(i?function(e,t){if(-1==t)return!1;let n,r,i=e.state.selection;i instanceof ot&&(n=i.node);let o=e.state.doc.resolve(t);for(let s=o.depth+1;s>0;s--){let e=s>o.depth?o.nodeAfter:o.node(s);if(ot.isSelectable(e)){r=n&&i.$from.depth>0&&s>=i.$from.depth&&o.before(i.$from.depth+1)==i.$from.pos?o.before(i.$from.depth):o.before(s);break}}return null!=r&&(Pr(e,ot.create(e.state.doc,r)),!0)}(e,n):function(e,t){if(-1==t)return!1;let n=e.state.doc.resolve(t),r=n.nodeAfter;return!!(r&&r.isAtom&&ot.isSelectable(r))&&(Pr(e,new ot(n)),!0)}(e,n))}function Vr(e,t,n,r){return zr(e,"handleDoubleClickOn",t,n,r)||e.someProp("handleDoubleClick",n=>n(e,t,r))}function Fr(e,t,n,r){return zr(e,"handleTripleClickOn",t,n,r)||e.someProp("handleTripleClick",n=>n(e,t,r))||function(e,t,n){if(0!=n.button)return!1;let r=e.state.doc;if(-1==t)return!!r.inlineContent&&(Pr(e,rt.create(r,0,r.content.size)),!0);let i=r.resolve(t);for(let o=i.depth+1;o>0;o--){let t=o>i.depth?i.nodeAfter:i.node(o),n=i.before(o);if(t.inlineContent)Pr(e,rt.create(r,n+1,n+1+t.content.size));else{if(!ot.isSelectable(t))continue;Pr(e,ot.create(r,n))}return!0}}(e,n,r)}function Lr(e){return Yr(e)}Nr.keydown=(e,t)=>{let n=t;if(e.input.shiftKey=16==n.keyCode||n.shiftKey,!qr(e,n)&&(e.input.lastKeyCode=n.keyCode,e.input.lastKeyCodeTime=Date.now(),!Ut||!qt||13!=n.keyCode))if(229!=n.keyCode&&e.domObserver.forceFlush(),!Kt||13!=n.keyCode||n.ctrlKey||n.altKey||n.metaKey)e.someProp("handleKeyDown",t=>t(e,n))||ur(e,n)?n.preventDefault():Er(e,"key");else{let t=Date.now();e.input.lastIOSEnter=t,e.input.lastIOSEnterFallbackTimeout=setTimeout(()=>{e.input.lastIOSEnter==t&&(e.someProp("handleKeyDown",t=>t(e,$t(13,"Enter"))),e.input.lastIOSEnter=0)},200)}},Nr.keyup=(e,t)=>{16==t.keyCode&&(e.input.shiftKey=!1)},Nr.keypress=(e,t)=>{let n=t;if(qr(e,n)||!n.charCode||n.ctrlKey&&!n.altKey||Ht&&n.metaKey)return;if(e.someProp("handleKeyPress",t=>t(e,n)))return void n.preventDefault();let r=e.state.selection;if(!(r instanceof rt&&r.$from.sameParent(r.$to))){let t=String.fromCharCode(n.charCode),i=()=>e.state.tr.insertText(t).scrollIntoView();/[\r\n]/.test(t)||e.someProp("handleTextInput",n=>n(e,r.$from.pos,r.$to.pos,t,i))||e.dispatch(i()),n.preventDefault()}};const Wr=Ht?"metaKey":"ctrlKey";Or.mousedown=(e,t)=>{let n=t;e.input.shiftKey=n.shiftKey;let r=Lr(e),i=Date.now(),o="singleClick";i-e.input.lastClick.time<500&&function(e,t){let n=t.x-e.clientX,r=t.y-e.clientY;return n*n+r*r<100}(n,e.input.lastClick)&&!n[Wr]&&e.input.lastClick.button==n.button&&("singleClick"==e.input.lastClick.type?o="doubleClick":"doubleClick"==e.input.lastClick.type&&(o="tripleClick")),e.input.lastClick={time:i,x:n.clientX,y:n.clientY,type:o,button:n.button};let s=e.posAtCoords(Ir(n));s&&("singleClick"==o?(e.input.mouseDown&&e.input.mouseDown.done(),e.input.mouseDown=new Jr(e,s,n,!!r)):("doubleClick"==o?Vr:Fr)(e,s.pos,s.inside,n)?n.preventDefault():Er(e,"pointer"))};class Jr{constructor(e,t,n,r){let i,o;if(this.view=e,this.pos=t,this.event=n,this.flushed=r,this.delayedSelectionSync=!1,this.mightDrag=null,this.startDoc=e.state.doc,this.selectNode=!!n[Wr],this.allowDefault=n.shiftKey,t.inside>-1)i=e.state.doc.nodeAt(t.inside),o=t.inside;else{let n=e.state.doc.resolve(t.pos);i=n.parent,o=n.depth?n.before():0}const s=r?null:n.target,l=s?e.docView.nearestDesc(s,!0):null;this.target=l&&1==l.dom.nodeType?l.dom:null;let{selection:a}=e.state;(0==n.button&&i.type.spec.draggable&&!1!==i.type.spec.selectable||a instanceof ot&&a.from<=o&&a.to>o)&&(this.mightDrag={node:i,pos:o,addAttr:!(!this.target||this.target.draggable),setUneditable:!(!this.target||!Wt||this.target.hasAttribute("contentEditable"))}),this.target&&this.mightDrag&&(this.mightDrag.addAttr||this.mightDrag.setUneditable)&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&(this.target.draggable=!0),this.mightDrag.setUneditable&&setTimeout(()=>{this.view.input.mouseDown==this&&this.target.setAttribute("contentEditable","false")},20),this.view.domObserver.start()),e.root.addEventListener("mouseup",this.up=this.up.bind(this)),e.root.addEventListener("mousemove",this.move=this.move.bind(this)),Er(e,"pointer")}done(){this.view.root.removeEventListener("mouseup",this.up),this.view.root.removeEventListener("mousemove",this.move),this.mightDrag&&this.target&&(this.view.domObserver.stop(),this.mightDrag.addAttr&&this.target.removeAttribute("draggable"),this.mightDrag.setUneditable&&this.target.removeAttribute("contentEditable"),this.view.domObserver.start()),this.delayedSelectionSync&&setTimeout(()=>_n(this.view)),this.view.input.mouseDown=null}up(e){if(this.done(),!this.view.dom.contains(e.target))return;let t=this.pos;this.view.state.doc!=this.startDoc&&(t=this.view.posAtCoords(Ir(e))),this.updateAllowDefault(e),this.allowDefault||!t?Er(this.view,"pointer"):Br(this.view,t.pos,t.inside,e,this.selectNode)?e.preventDefault():0==e.button&&(this.flushed||_t&&this.mightDrag&&!this.mightDrag.node.isAtom||qt&&!this.view.state.selection.visible&&Math.min(Math.abs(t.pos-this.view.state.selection.from),Math.abs(t.pos-this.view.state.selection.to))<=2)?(Pr(this.view,Qe.near(this.view.state.doc.resolve(t.pos))),e.preventDefault()):Er(this.view,"pointer")}move(e){this.updateAllowDefault(e),Er(this.view,"pointer"),0==e.buttons&&this.done()}updateAllowDefault(e){!this.allowDefault&&(Math.abs(this.event.x-e.clientX)>4||Math.abs(this.event.y-e.clientY)>4)&&(this.allowDefault=!0)}}function qr(e,t){return!!e.composing||!!(_t&&Math.abs(t.timeStamp-e.input.compositionEndedAt)<500)&&(e.input.compositionEndedAt=-2e8,!0)}Or.touchstart=e=>{e.input.lastTouch=Date.now(),Lr(e),Er(e,"pointer")},Or.touchmove=e=>{e.input.lastTouch=Date.now(),Er(e,"pointer")},Or.contextmenu=e=>Lr(e);const jr=Ut?5e3:-1;function _r(e,t){clearTimeout(e.input.composingTimeout),t>-1&&(e.input.composingTimeout=setTimeout(()=>Yr(e),t))}function Kr(e){for(e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=function(){let e=document.createEvent("Event");return e.initEvent("event",!0,!0),e.timeStamp}());e.input.compositionNodes.length>0;)e.input.compositionNodes.pop().markParentsDirty()}function Hr(e){let t=e.domSelectionRange();if(!t.focusNode)return null;let n=function(e,t){for(;;){if(3==e.nodeType&&t)return e;if(1==e.nodeType&&t>0){if("false"==e.contentEditable)return null;t=Tt(e=e.childNodes[t-1])}else{if(!e.parentNode||Et(e))return null;t=bt(e),e=e.parentNode}}}(t.focusNode,t.focusOffset),r=function(e,t){for(;;){if(3==e.nodeType&&t=0)){if(e.domObserver.forceFlush(),Kr(e),t||e.docView&&e.docView.dirty){let n=qn(e),r=e.state.selection;return n&&!n.eq(r)?e.dispatch(e.state.tr.setSelection(n)):!e.markCursor&&!t||r.$from.node(r.$from.sharedDepth(r.to)).inlineContent?e.updateState(e.state):e.dispatch(e.state.tr.deleteSelection()),!0}return!1}}Nr.compositionstart=Nr.compositionupdate=e=>{if(!e.composing){e.domObserver.flush();let{state:t}=e,n=t.selection.$to;if(t.selection instanceof rt&&(t.storedMarks||!n.textOffset&&n.parentOffset&&n.nodeBefore.marks.some(e=>!1===e.type.spec.inclusive)))e.markCursor=e.state.storedMarks||n.marks(),Yr(e,!0),e.markCursor=null;else if(Yr(e,!t.selection.empty),Wt&&t.selection.empty&&n.parentOffset&&!n.textOffset&&n.nodeBefore.marks.length){let t=e.domSelectionRange();for(let n=t.focusNode,r=t.focusOffset;n&&1==n.nodeType&&0!=r;){let t=r<0?n.lastChild:n.childNodes[r-1];if(!t)break;if(3==t.nodeType){let n=e.domSelection();n&&n.collapse(t,t.nodeValue.length);break}n=t,r=-1}}e.input.composing=!0}_r(e,jr)},Nr.compositionend=(e,t)=>{e.composing&&(e.input.composing=!1,e.input.compositionEndedAt=t.timeStamp,e.input.compositionPendingChanges=e.domObserver.pendingRecords().length?e.input.compositionID:0,e.input.compositionNode=null,e.input.compositionPendingChanges&&Promise.resolve().then(()=>e.domObserver.flush()),e.input.compositionID++,_r(e,20))};const Ur=Ft&&Lt<15||Kt&&Zt<604;function Gr(e,t,n,r,i){let o=mr(e,t,n,r,e.state.selection.$from);if(e.someProp("handlePaste",t=>t(e,i,o||c.empty)))return!0;if(!o)return!1;let s=function(e){return 0==e.openStart&&0==e.openEnd&&1==e.content.childCount?e.content.firstChild:null}(o),l=s?e.state.tr.replaceSelectionWith(s,r):e.state.tr.replaceSelection(o);return e.dispatch(l.scrollIntoView().setMeta("paste",!0).setMeta("uiEvent","paste")),!0}function Zr(e){let t=e.getData("text/plain")||e.getData("Text");if(t)return t;let n=e.getData("text/uri-list");return n?n.replace(/\r?\n/g," "):""}Or.copy=Nr.cut=(e,t)=>{let n=t,r=e.state.selection,i="cut"==n.type;if(r.empty)return;let o=Ur?null:n.clipboardData,s=r.content(),{dom:l,text:a}=fr(e,s);o?(n.preventDefault(),o.clearData(),o.setData("text/html",l.innerHTML),o.setData("text/plain",a)):function(e,t){if(!e.dom.parentNode)return;let n=e.dom.parentNode.appendChild(document.createElement("div"));n.appendChild(t),n.style.cssText="position: fixed; left: -10000px; top: 10px";let r=getSelection(),i=document.createRange();i.selectNodeContents(t),e.dom.blur(),r.removeAllRanges(),r.addRange(i),setTimeout(()=>{n.parentNode&&n.parentNode.removeChild(n),e.focus()},50)}(e,l),i&&e.dispatch(e.state.tr.deleteSelection().scrollIntoView().setMeta("uiEvent","cut"))},Nr.paste=(e,t)=>{let n=t;if(e.composing&&!Ut)return;let r=Ur?null:n.clipboardData,i=e.input.shiftKey&&45!=e.input.lastKeyCode;r&&Gr(e,Zr(r),r.getData("text/html"),i,n)?n.preventDefault():function(e,t){if(!e.dom.parentNode)return;let n=e.input.shiftKey||e.state.selection.$from.parent.type.spec.code,r=e.dom.parentNode.appendChild(document.createElement(n?"textarea":"div"));n||(r.contentEditable="true"),r.style.cssText="position: fixed; left: -10000px; top: 10px",r.focus();let i=e.input.shiftKey&&45!=e.input.lastKeyCode;setTimeout(()=>{e.focus(),r.parentNode&&r.parentNode.removeChild(r),n?Gr(e,r.value,null,i,t):Gr(e,r.textContent,r.innerHTML,i,t)},50)}(e,n)};class Xr{constructor(e,t,n){this.slice=e,this.move=t,this.node=n}}const Qr=Ht?"altKey":"ctrlKey";function ei(e,t){let n=e.someProp("dragCopies",e=>!e(t));return null!=n?n:!t[Qr]}Or.dragstart=(e,t)=>{let n=t,r=e.input.mouseDown;if(r&&r.done(),!n.dataTransfer)return;let i,o=e.state.selection,s=o.empty?null:e.posAtCoords(Ir(n));if(s&&s.pos>=o.from&&s.pos<=(o instanceof ot?o.to-1:o.to));else if(r&&r.mightDrag)i=ot.create(e.state.doc,r.mightDrag.pos);else if(n.target&&1==n.target.nodeType){let t=e.docView.nearestDesc(n.target,!0);t&&t.node.type.spec.draggable&&t!=e.docView&&(i=ot.create(e.state.doc,t.posBefore))}let l=(i||e.state.selection).content(),{dom:a,text:h,slice:c}=fr(e,l);(!n.dataTransfer.files.length||!qt||jt>120)&&n.dataTransfer.clearData(),n.dataTransfer.setData(Ur?"Text":"text/html",a.innerHTML),n.dataTransfer.effectAllowed="copyMove",Ur||n.dataTransfer.setData("text/plain",h),e.dragging=new Xr(c,ei(e,n),i)},Or.dragend=e=>{let t=e.dragging;window.setTimeout(()=>{e.dragging==t&&(e.dragging=null)},50)},Nr.dragover=Nr.dragenter=(e,t)=>t.preventDefault(),Nr.drop=(e,t)=>{let n=t,r=e.dragging;if(e.dragging=null,!n.dataTransfer)return;let i=e.posAtCoords(Ir(n));if(!i)return;let o=e.state.doc.resolve(i.pos),s=r&&r.slice;s?e.someProp("transformPasted",t=>{s=t(s,e)}):s=mr(e,Zr(n.dataTransfer),Ur?null:n.dataTransfer.getData("text/html"),!1,o);let l=!(!r||!ei(e,n));if(e.someProp("handleDrop",t=>t(e,n,s||c.empty,l)))return void n.preventDefault();if(!s)return;n.preventDefault();let a=s?function(e,t,n){let r=e.resolve(t);if(!n.content.size)return t;let i=n.content;for(let o=0;o=0;e--){let t=e==r.depth?0:r.pos<=(r.start(e+1)+r.end(e+1))/2?-1:1,n=r.index(e)+(t>0?1:0),s=r.node(e),l=!1;if(1==o)l=s.canReplace(n,n,i);else{let e=s.contentMatchAt(n).findWrapping(i.firstChild.type);l=e&&s.canReplaceWith(n,n,e[0])}if(l)return 0==t?r.pos:t<0?r.before(e+1):r.after(e+1)}return null}(e.state.doc,o.pos,s):o.pos;null==a&&(a=o.pos);let h=e.state.tr;if(l){let{node:e}=r;e?e.replace(h):h.deleteSelection()}let d=h.mapping.map(a),p=0==s.openStart&&0==s.openEnd&&1==s.content.childCount,u=h.doc;if(p?h.replaceRangeWith(d,d,s.content.firstChild):h.replaceRange(d,d,s),h.doc.eq(u))return;let f=h.doc.resolve(d);if(p&&ot.isSelectable(s.content.firstChild)&&f.nodeAfter&&f.nodeAfter.sameMarkup(s.content.firstChild))h.setSelection(new ot(f));else{let t=h.mapping.map(a);h.mapping.maps[h.mapping.maps.length-1].forEach((e,n,r,i)=>t=i),h.setSelection(Xn(e,f,h.doc.resolve(t)))}e.focus(),e.dispatch(h.setMeta("uiEvent","drop"))},Or.focus=e=>{e.input.lastFocus=Date.now(),e.focused||(e.domObserver.stop(),e.dom.classList.add("ProseMirror-focused"),e.domObserver.start(),e.focused=!0,setTimeout(()=>{e.docView&&e.hasFocus()&&!e.domObserver.currentSelection.eq(e.domSelectionRange())&&_n(e)},20))},Or.blur=(e,t)=>{let n=t;e.focused&&(e.domObserver.stop(),e.dom.classList.remove("ProseMirror-focused"),e.domObserver.start(),n.relatedTarget&&e.dom.contains(n.relatedTarget)&&e.domObserver.currentSelection.clear(),e.focused=!1)},Or.beforeinput=(e,t)=>{if(qt&&Ut&&"deleteContentBackward"==t.inputType){e.domObserver.flushSoon();let{domChangeCount:t}=e.input;setTimeout(()=>{if(e.input.domChangeCount!=t)return;if(e.dom.blur(),e.focus(),e.someProp("handleKeyDown",t=>t(e,$t(8,"Backspace"))))return;let{$cursor:n}=e.state.selection;n&&n.pos>0&&e.dispatch(e.state.tr.delete(n.pos-1,n.pos).scrollIntoView())},50)}};for(let os in Nr)Or[os]=Nr[os];function ti(e,t){if(e==t)return!0;for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(!(n in e))return!1;return!0}class ni{constructor(e,t){this.toDOM=e,this.spec=t||li,this.side=this.spec.side||0}map(e,t,n,r){let{pos:i,deleted:o}=e.mapResult(t.from+r,this.side<0?-1:1);return o?null:new oi(i-n,i-n,this)}valid(){return!0}eq(e){return this==e||e instanceof ni&&(this.spec.key&&this.spec.key==e.spec.key||this.toDOM==e.toDOM&&ti(this.spec,e.spec))}destroy(e){this.spec.destroy&&this.spec.destroy(e)}}class ri{constructor(e,t){this.attrs=e,this.spec=t||li}map(e,t,n,r){let i=e.map(t.from+r,this.spec.inclusiveStart?-1:1)-n,o=e.map(t.to+r,this.spec.inclusiveEnd?1:-1)-n;return i>=o?null:new oi(i,o,this)}valid(e,t){return t.from=e&&(!i||i(s.spec))&&n.push(s.copy(s.from+r,s.to+r))}for(let o=0;oe){let s=this.children[o]+1;this.children[o+2].findInner(e-s,t-s,n,r+s,i)}}map(e,t,n){return this==hi||0==e.maps.length?this:this.mapInner(e,t,0,0,n||li)}mapInner(e,t,n,r,i){let o;for(let s=0;s{let o=i-r-(n-t);for(let s=0;sr+c-e)continue;let i=l[s]+c-e;n>=i?l[s+1]=t<=i?-2:-1:t>=c&&o&&(l[s]+=o,l[s+1]+=o)}e+=o}),c=n.maps[h].map(c,-1)}let a=!1;for(let h=0;h=r.content.size){a=!0;continue}let d=n.map(e[h+1]+o,-1)-i,{index:p,offset:u}=r.content.findIndex(c),f=r.maybeChild(p);if(f&&u==c&&u+f.nodeSize==d){let r=l[h+2].mapInner(n,f,t+1,e[h]+o+1,s);r!=hi?(l[h]=c,l[h+1]=d,l[h+2]=r):(l[h+1]=-2,a=!0)}else a=!0}if(a){let a=function(e,t,n,r,i,o,s){function l(e,t){for(let o=0;o{let s,l=o+n;if(s=pi(t,e,l)){for(r||(r=this.children.slice());io&&t.to=e){this.children[s]==e&&(n=this.children[s+2]);break}let i=e+1,o=i+t.content.size;for(let s=0;si&&e.type instanceof ri){let t=Math.max(i,e.from)-i,n=Math.min(o,e.to)-i;tn.map(e,t,li));return ci.from(n)}forChild(e,t){if(t.isLeaf)return ai.empty;let n=[];for(let r=0;re instanceof ai)?e:e.reduce((e,t)=>e.concat(t instanceof ai?t:t.members),[]))}}forEachSet(e){for(let t=0;tn&&o.to{let l=pi(e,t,s+n);if(l){o=!0;let e=fi(l,t,n+s+1,r);e!=hi&&i.push(s,s+t.nodeSize,e)}});let s=di(o?ui(e):e,-n).sort(mi);for(let l=0;l0;)t++;e.splice(t,0,n)}function wi(e){let t=[];return e.someProp("decorations",n=>{let r=n(e.state);r&&r!=hi&&t.push(r)}),e.cursorWrapper&&t.push(ai.create(e.state.doc,[e.cursorWrapper.deco])),ci.from(t)}const vi={childList:!0,characterData:!0,characterDataOldValue:!0,attributes:!0,attributeOldValue:!0,subtree:!0},xi=Ft&&Lt<=11;class Si{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}set(e){this.anchorNode=e.anchorNode,this.anchorOffset=e.anchorOffset,this.focusNode=e.focusNode,this.focusOffset=e.focusOffset}clear(){this.anchorNode=this.focusNode=null}eq(e){return e.anchorNode==this.anchorNode&&e.anchorOffset==this.anchorOffset&&e.focusNode==this.focusNode&&e.focusOffset==this.focusOffset}}class bi{constructor(e,t){this.view=e,this.handleDOMChange=t,this.queue=[],this.flushingSoon=-1,this.observer=null,this.currentSelection=new Si,this.onCharData=null,this.suppressingSelectionUpdates=!1,this.lastChangedTextNode=null,this.observer=window.MutationObserver&&new window.MutationObserver(e=>{for(let t=0;t"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length)?this.flushSoon():this.flush()}),xi&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this)}flushSoon(){this.flushingSoon<0&&(this.flushingSoon=window.setTimeout(()=>{this.flushingSoon=-1,this.flush()},20))}forceFlush(){this.flushingSoon>-1&&(window.clearTimeout(this.flushingSoon),this.flushingSoon=-1,this.flush())}start(){this.observer&&(this.observer.takeRecords(),this.observer.observe(this.view.dom,vi)),this.onCharData&&this.view.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.connectSelection()}stop(){if(this.observer){let e=this.observer.takeRecords();if(e.length){for(let t=0;tthis.flush(),20)}this.observer.disconnect()}this.onCharData&&this.view.dom.removeEventListener("DOMCharacterDataModified",this.onCharData),this.disconnectSelection()}connectSelection(){this.view.dom.ownerDocument.addEventListener("selectionchange",this.onSelectionChange)}disconnectSelection(){this.view.dom.ownerDocument.removeEventListener("selectionchange",this.onSelectionChange)}suppressSelectionUpdates(){this.suppressingSelectionUpdates=!0,setTimeout(()=>this.suppressingSelectionUpdates=!1,50)}onSelectionChange(){if(Qn(this.view)){if(this.suppressingSelectionUpdates)return _n(this.view);if(Ft&&Lt<=11&&!this.view.state.selection.empty){let e=this.view.domSelectionRange();if(e.focusNode&&Ot(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset))return this.flushSoon()}this.flush()}}setCurSelection(){this.currentSelection.set(this.view.domSelectionRange())}ignoreSelectionChange(e){if(!e.focusNode)return!0;let t,n=new Set;for(let i=e.focusNode;i;i=kt(i))n.add(i);for(let i=e.anchorNode;i;i=kt(i))if(n.has(i)){t=i;break}let r=t&&this.view.docView.nearestDesc(t);return r&&r.ignoreMutation({type:"selection",target:3==t.nodeType?t.parentNode:t})?(this.setCurSelection(),!0):void 0}pendingRecords(){if(this.observer)for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}flush(){let{view:e}=this;if(!e.docView||this.flushingSoon>-1)return;let t=this.pendingRecords();t.length&&(this.queue=[]);let n=e.domSelectionRange(),r=!this.suppressingSelectionUpdates&&!this.currentSelection.eq(n)&&Qn(e)&&!this.ignoreSelectionChange(n),i=-1,o=-1,s=!1,l=[];if(e.editable)for(let h=0;h"BR"==e.nodeName);if(2==t.length){let[e,n]=t;e.parentNode&&e.parentNode.parentNode==n.parentNode?n.remove():e.remove()}else{let{focusNode:n}=this.currentSelection;for(let r of t){let t=r.parentNode;!t||"LI"!=t.nodeName||n&&Oi(e,n)==t||r.remove()}}}let a=null;i<0&&r&&e.input.lastFocus>Date.now()-200&&Math.max(e.input.lastTouch,e.input.lastClick.time)-1||r)&&(i>-1&&(e.docView.markDirty(i,o),function(e){if(ki.has(e))return;if(ki.set(e,null),-1!==["normal","nowrap","pre-line"].indexOf(getComputedStyle(e.dom).whiteSpace)){if(e.requiresGeckoHackNode=Wt,Mi)return;console.warn("ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package."),Mi=!0}}(e)),this.handleDOMChange(i,o,s,l),e.docView&&e.docView.dirty?e.updateState(e.state):this.currentSelection.eq(n)||_n(e),this.currentSelection.set(n))}registerMutation(e,t){if(t.indexOf(e.target)>-1)return null;let n=this.view.docView.nearestDesc(e.target);if("attributes"==e.type&&(n==this.view.docView||"contenteditable"==e.attributeName||"style"==e.attributeName&&!e.oldValue&&!e.target.getAttribute("style")))return null;if(!n||n.ignoreMutation(e))return null;if("childList"==e.type){for(let n=0;nDate.now()-50?e.input.lastSelectionOrigin:null,n=qn(e,t);if(n&&!e.state.selection.eq(n)){if(qt&&Ut&&13===e.input.lastKeyCode&&Date.now()-100t(e,$t(13,"Enter"))))return;let r=e.state.tr.setSelection(n);"pointer"==t?r.setMeta("pointer",!0):"key"==t&&r.scrollIntoView(),s&&r.setMeta("composition",s),e.dispatch(r)}return}let l=e.state.doc.resolve(t),a=l.sharedDepth(n);t=l.before(a+1),n=e.state.doc.resolve(n).after(a+1);let h,c,d=e.state.selection,p=function(e,t,n){let r,{node:i,fromOffset:o,toOffset:s,from:l,to:a}=e.docView.parseRange(t,n),h=e.domSelectionRange(),c=h.anchorNode;if(c&&e.dom.contains(1==c.nodeType?c:c.parentNode)&&(r=[{node:c,offset:h.anchorOffset}],At(h)||r.push({node:h.focusNode,offset:h.focusOffset})),qt&&8===e.input.lastKeyCode)for(let g=s;g>o;g--){let e=i.childNodes[g-1],t=e.pmViewDesc;if("BR"==e.nodeName&&!t){s=g;break}if(!t||t.size)break}let d=e.state.doc,p=e.someProp("domParser")||U.fromSchema(e.state.schema),u=d.resolve(l),f=null,m=p.parse(i,{topNode:u.parent,topMatch:u.parent.contentMatchAt(u.index()),topOpen:!0,from:o,to:s,preserveWhitespace:"pre"!=u.parent.type.whitespace||"full",findPositions:r,ruleFromNode:Ni,context:u});if(r&&null!=r[0].pos){let e=r[0].pos,t=r[1]&&r[1].pos;null==t&&(t=e),f={anchor:e+l,head:t+l}}return{doc:m,sel:f,from:l,to:a}}(e,t,n),u=e.state.doc,f=u.slice(p.from,p.to);8===e.input.lastKeyCode&&Date.now()-100=s?o-r:0;o-=e,o&&o=l?o-r:0;o-=t,o&&oDate.now()-225||Ut)&&o.some(e=>1==e.nodeType&&!Di.test(e.nodeName))&&(!m||m.endA>=m.endB)&&e.someProp("handleKeyDown",t=>t(e,$t(13,"Enter"))))return void(e.input.lastIOSEnter=0);if(!m){if(!(r&&d instanceof rt&&!d.empty&&d.$head.sameParent(d.$anchor))||e.composing||p.sel&&p.sel.anchor!=p.sel.head){if(p.sel){let t=Ei(e,e.state.doc,p.sel);if(t&&!t.eq(e.state.selection)){let n=e.state.tr.setSelection(t);s&&n.setMeta("composition",s),e.dispatch(n)}}return}m={start:d.from,endA:d.to,endB:d.to}}e.state.selection.frome.state.selection.from&&m.start<=e.state.selection.from+2&&e.state.selection.from>=p.from?m.start=e.state.selection.from:m.endA=e.state.selection.to-2&&e.state.selection.to<=p.to&&(m.endB+=e.state.selection.to-m.endA,m.endA=e.state.selection.to)),Ft&&Lt<=11&&m.endB==m.start+1&&m.endA==m.start&&m.start>p.from&&" "==p.doc.textBetween(m.start-p.from-1,m.start-p.from+1)&&(m.start--,m.endA--,m.endB--);let g,y=p.doc.resolveNoCache(m.start-p.from),w=p.doc.resolveNoCache(m.endB-p.from),v=u.resolve(m.start),x=y.sameParent(w)&&y.parent.inlineContent&&v.end()>=m.endA;if((Kt&&e.input.lastIOSEnter>Date.now()-225&&(!x||o.some(e=>"DIV"==e.nodeName||"P"==e.nodeName))||!x&&y.posy.pos)&&e.someProp("handleKeyDown",t=>t(e,$t(13,"Enter"))))return void(e.input.lastIOSEnter=0);if(e.state.selection.anchor>m.start&&function(e,t,n,r,i){if(n-t<=i.pos-r.pos||Ai(r,!0,!1)n||Ai(s,!0,!1)t(e,$t(8,"Backspace"))))return void(Ut&&qt&&e.domObserver.suppressSelectionUpdates());qt&&m.endB==m.start&&(e.input.lastChromeDelete=Date.now()),Ut&&!x&&y.start()!=w.start()&&0==w.parentOffset&&y.depth==w.depth&&p.sel&&p.sel.anchor==p.sel.head&&p.sel.head==m.endA&&(m.endB-=2,w=p.doc.resolveNoCache(m.endB-p.from),setTimeout(()=>{e.someProp("handleKeyDown",function(t){return t(e,$t(13,"Enter"))})},20));let S,b=m.start,k=m.endA,M=t=>{let n=t||e.state.tr.replace(b,k,p.doc.slice(m.start-p.from,m.endB-p.from));if(p.sel){let t=Ei(e,n.doc,p.sel);t&&!(qt&&e.composing&&t.empty&&(m.start!=m.endB||e.input.lastChromeDelete_n(e),20));let t=M(e.state.tr.delete(b,k)),n=u.resolve(m.start).marksAcross(u.resolve(m.endA));n&&t.ensureMarks(n),e.dispatch(t)}else if(m.endA==m.endB&&(S=function(e,t){let n,r,o,s=e.firstChild.marks,l=t.firstChild.marks,a=s,h=l;for(let i=0;ie.mark(r.addToSet(e.marks));else{if(0!=a.length||1!=h.length)return null;r=h[0],n="remove",o=e=>e.mark(r.removeFromSet(e.marks))}let c=[];for(let i=0;iM(e.state.tr.insertText(t,b,k));e.someProp("handleTextInput",r=>r(e,b,k,t,n))||e.dispatch(n())}}else e.dispatch(M())}function Ei(e,t,n){return Math.max(n.anchor,n.head)>t.content.size?null:Xn(e,t.resolve(n.anchor),t.resolve(n.head))}function Ai(e,t,n){let r=e.depth,i=t?e.end():e.pos;for(;r>0&&(t||e.indexAfter(r)==e.node(r).childCount);)r--,i++,t=!1;if(n){let t=e.node(r).maybeChild(e.indexAfter(r));for(;t&&!t.isLeaf;)t=t.firstChild,i++}return i}function $i(e){if(2!=e.length)return!1;let t=e.charCodeAt(0),n=e.charCodeAt(1);return t>=56320&&t<=57343&&n>=55296&&n<=56319}class Ri{constructor(e,t){this._root=null,this.focused=!1,this.trackWrites=null,this.mounted=!1,this.markCursor=null,this.cursorWrapper=null,this.lastSelectedViewDesc=void 0,this.input=new Tr,this.prevDirectPlugins=[],this.pluginViews=[],this.requiresGeckoHackNode=!1,this.dragging=null,this._props=t,this.state=t.state,this.directPlugins=t.plugins||[],this.directPlugins.forEach(Vi),this.dispatch=this.dispatch.bind(this),this.dom=e&&e.mount||document.createElement("div"),e&&(e.appendChild?e.appendChild(this.dom):"function"==typeof e?e(this.dom):e.mount&&(this.mounted=!0)),this.editable=Pi(this),zi(this),this.nodeViews=Bi(this),this.docView=Nn(this.state.doc,Ii(this),wi(this),this.dom,this),this.domObserver=new bi(this,(e,t,n,r)=>Ti(this,e,t,n,r)),this.domObserver.start(),function(e){for(let t in Or){let n=Or[t];e.dom.addEventListener(t,e.input.eventHandlers[t]=t=>{!Rr(e,t)||$r(e,t)||!e.editable&&t.type in Nr||n(e,t)},Dr[t]?{passive:!0}:void 0)}_t&&e.dom.addEventListener("input",()=>null),Ar(e)}(this),this.updatePluginViews()}get composing(){return this.input.composing}get props(){if(this._props.state!=this.state){let e=this._props;this._props={};for(let t in e)this._props[t]=e[t];this._props.state=this.state}return this._props}update(e){e.handleDOMEvents!=this._props.handleDOMEvents&&Ar(this);let t=this._props;this._props=e,e.plugins&&(e.plugins.forEach(Vi),this.directPlugins=e.plugins),this.updateStateInner(e.state,t)}setProps(e){let t={};for(let n in this._props)t[n]=this._props[n];t.state=this.state;for(let n in e)t[n]=e[n];this.update(t)}updateState(e){this.updateStateInner(e,this._props)}updateStateInner(e,t){var n;let r=this.state,i=!1,o=!1;e.storedMarks&&this.composing&&(Kr(this),o=!0),this.state=e;let s=r.plugins!=e.plugins||this._props.plugins!=t.plugins;if(s||this._props.plugins!=t.plugins||this._props.nodeViews!=t.nodeViews){let e=Bi(this);(function(e,t){let n=0,r=0;for(let i in e){if(e[i]!=t[i])return!0;n++}for(let i in t)r++;return n!=r})(e,this.nodeViews)&&(this.nodeViews=e,i=!0)}(s||t.handleDOMEvents!=this._props.handleDOMEvents)&&Ar(this),this.editable=Pi(this),zi(this);let l=wi(this),a=Ii(this),h=r.plugins==e.plugins||r.doc.eq(e.doc)?e.scrollToSelection>r.scrollToSelection?"to selection":"preserve":"reset",c=i||!this.docView.matchesNode(e.doc,a,l);!c&&e.selection.eq(r.selection)||(o=!0);let d="preserve"==h&&o&&null==this.dom.style.overflowAnchor&&function(e){let t,n,r=e.dom.getBoundingClientRect(),i=Math.max(0,r.top);for(let o=(r.left+r.right)/2,s=i+1;s=i-20){t=r,n=l.top;break}}return{refDOM:t,refTop:n,stack:nn(e.dom)}}(this);if(o){this.domObserver.stop();let t=c&&(Ft||qt)&&!this.composing&&!r.selection.empty&&!e.selection.empty&&function(e,t){let n=Math.min(e.$anchor.sharedDepth(e.head),t.$anchor.sharedDepth(t.head));return e.$anchor.start(n)!=t.$anchor.start(n)}(r.selection,e.selection);if(c){let n=qt?this.trackWrites=this.domSelectionRange().focusNode:null;this.composing&&(this.input.compositionNode=Hr(this)),!i&&this.docView.update(e.doc,a,l,this)||(this.docView.updateOuterDeco(a),this.docView.destroy(),this.docView=Nn(e.doc,a,l,this.dom,this)),n&&!this.trackWrites&&(t=!0)}t||!(this.input.mouseDown&&this.domObserver.currentSelection.eq(this.domSelectionRange())&&function(e){let t=e.docView.domFromPos(e.state.selection.anchor,0),n=e.domSelectionRange();return Ot(t.node,t.offset,n.anchorNode,n.anchorOffset)}(this))?_n(this,t):(Gn(this,e.selection),this.domObserver.setCurSelection()),this.domObserver.start()}this.updatePluginViews(r),(null===(n=this.dragging)||void 0===n?void 0:n.node)&&!r.doc.eq(e.doc)&&this.updateDraggedNode(this.dragging,r),"reset"==h?this.dom.scrollTop=0:"to selection"==h?this.scrollToSelection():d&&function({refDOM:e,refTop:t,stack:n}){let r=e?e.getBoundingClientRect().top:0;rn(n,0==r?0:r-t)}(d)}scrollToSelection(){let e=this.domSelectionRange().focusNode;if(e&&this.dom.contains(1==e.nodeType?e:e.parentNode))if(this.someProp("handleScrollToSelection",e=>e(this)));else if(this.state.selection instanceof ot){let t=this.docView.domAfterPos(this.state.selection.from);1==t.nodeType&&tn(this,t.getBoundingClientRect(),e)}else tn(this,this.coordsAtPos(this.state.selection.head,1),e);else;}destroyPluginViews(){let e;for(;e=this.pluginViews.pop();)e.destroy&&e.destroy()}updatePluginViews(e){if(e&&e.plugins==this.state.plugins&&this.directPlugins==this.prevDirectPlugins)for(let t=0;t0&&this.state.doc.nodeAt(e))==n.node&&(r=e)}this.dragging=new Xr(e.slice,e.move,r<0?void 0:ot.create(this.state.doc,r))}someProp(e,t){let n,r=this._props&&this._props[e];if(null!=r&&(n=t?t(r):r))return n;for(let o=0;ot.ownerDocument.getSelection()),this._root=t;return e||document}updateRoot(){this._root=null}posAtCoords(e){return hn(this,e)}coordsAtPos(e,t=1){return un(this,e,t)}domAtPos(e,t=0){return this.docView.domFromPos(e,t)}nodeDOM(e){let t=this.docView.descAt(e);return t?t.nodeDOM:null}posAtDOM(e,t,n=-1){let r=this.docView.posFromDOM(e,t,n);if(null==r)throw new RangeError("DOM position not inside the editor");return r}endOfTextblock(e,t){return Sn(this,t||this.state,e)}pasteHTML(e,t){return Gr(this,"",e,!1,t||new ClipboardEvent("paste"))}pasteText(e,t){return Gr(this,e,null,!0,t||new ClipboardEvent("paste"))}serializeForClipboard(e){return fr(this,e)}destroy(){this.docView&&(!function(e){e.domObserver.stop();for(let t in e.input.eventHandlers)e.dom.removeEventListener(t,e.input.eventHandlers[t]);clearTimeout(e.input.composingTimeout),clearTimeout(e.input.lastIOSEnterFallbackTimeout)}(this),this.destroyPluginViews(),this.mounted?(this.docView.update(this.state.doc,[],wi(this),this),this.dom.textContent=""):this.dom.parentNode&&this.dom.parentNode.removeChild(this.dom),this.docView.destroy(),this.docView=null,Mt=null)}get isDestroyed(){return null==this.docView}dispatchEvent(e){return function(e,t){$r(e,t)||!Or[t.type]||!e.editable&&t.type in Nr||Or[t.type](e,t)}(this,e)}domSelectionRange(){let e=this.domSelection();return e?_t&&11===this.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return Ci(e,n)}let n;function r(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.dom.addEventListener("beforeinput",r,!0),document.execCommand("indent"),e.dom.removeEventListener("beforeinput",r,!0),n?Ci(e,n):null}(this,e)||e:{focusNode:null,focusOffset:0,anchorNode:null,anchorOffset:0}}domSelection(){return this.root.getSelection()}}function Ii(e){let t=Object.create(null);return t.class="ProseMirror",t.contenteditable=String(e.editable),e.someProp("attributes",n=>{if("function"==typeof n&&(n=n(e.state)),n)for(let e in n)"class"==e?t.class+=" "+n[e]:"style"==e?t.style=(t.style?t.style+";":"")+n[e]:t[e]||"contenteditable"==e||"nodeName"==e||(t[e]=String(n[e]))}),t.translate||(t.translate="no"),[oi.node(0,e.state.doc.content.size,t)]}function zi(e){if(e.markCursor){let t=document.createElement("img");t.className="ProseMirror-separator",t.setAttribute("mark-placeholder","true"),t.setAttribute("alt",""),e.cursorWrapper={dom:t,deco:oi.widget(e.state.selection.from,t,{raw:!0,marks:e.markCursor})}}else e.cursorWrapper=null}function Pi(e){return!e.someProp("editable",t=>!1===t(e.state))}function Bi(e){let t=Object.create(null);function n(e){for(let n in e)Object.prototype.hasOwnProperty.call(t,n)||(t[n]=e[n])}return e.someProp("nodeViews",n),e.someProp("markViews",n),t}function Vi(e){if(e.spec.state||e.spec.filterTransaction||e.spec.appendTransaction)throw new RangeError("Plugins passed directly to the view must not have a state component")}Ri.prototype.dispatch=function(e){let t=this._props.dispatchTransaction;t?t.call(this,e):this.updateState(this.state.apply(e))};for(var Fi={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Li={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},Wi="undefined"!=typeof navigator&&/Mac/.test(navigator.platform),Ji="undefined"!=typeof navigator&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),qi=0;qi<10;qi++)Fi[48+qi]=Fi[96+qi]=String(qi);for(qi=1;qi<=24;qi++)Fi[qi+111]="F"+qi;for(qi=65;qi<=90;qi++)Fi[qi]=String.fromCharCode(qi+32),Li[qi]=String.fromCharCode(qi);for(var ji in Fi)Li.hasOwnProperty(ji)||(Li[ji]=Fi[ji]);const _i="undefined"!=typeof navigator&&/Mac|iP(hone|[oa]d)/.test(navigator.platform),Ki="undefined"!=typeof navigator&&/Win/.test(navigator.platform);function Hi(e){let t,n,r,i,o=e.split(/-(?!$)/),s=o[o.length-1];"Space"==s&&(s=" ");for(let l=0;l!e.selection.empty&&(t&&t(e.tr.deleteSelection().scrollIntoView()),!0);function Xi(e,t,n=!1){for(let r=e;r;r="start"==t?r.firstChild:r.lastChild){if(r.isTextblock)return!0;if(n&&1!=r.childCount)return!1}return!1}function Qi(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){if(e.index(t)>0)return e.doc.resolve(e.before(t+1));if(e.node(t).type.spec.isolating)break}return null}function eo(e){if(!e.parent.type.spec.isolating)for(let t=e.depth-1;t>=0;t--){let n=e.node(t);if(e.index(t)+1{let{$from:n,$to:r}=e.selection,i=n.blockRange(r),o=i&&Ee(i);return null!=o&&(t&&t(e.tr.lift(i,o).scrollIntoView()),!0)};function no(e){for(let t=0;t{let{$head:n,$anchor:r}=e.selection;if(!n.parent.type.spec.code||!n.sameParent(r))return!1;let i=n.node(-1),o=n.indexAfter(-1),s=no(i.contentMatchAt(o));if(!s||!i.canReplaceWith(o,o,s))return!1;if(t){let r=n.after(),i=e.tr.replaceWith(r,r,s.createAndFill());i.setSelection(Qe.near(i.doc.resolve(r),1)),t(i.scrollIntoView())}return!0};const io=(e,t)=>{let{$from:n,$to:r}=e.selection;if(e.selection instanceof ot&&e.selection.node.isBlock)return!(!n.parentOffset||!ze(e.doc,n.pos)||(t&&t(e.tr.split(n.pos).scrollIntoView()),0));if(!n.depth)return!1;let i,o,s=[],l=!1,a=!1;for(let p=n.depth;;p--){if(n.node(p).isBlock){l=n.end(p)==n.pos+(n.depth-p),a=n.start(p)==n.pos-(n.depth-p),o=no(n.node(p-1).contentMatchAt(n.indexAfter(p-1))),s.unshift(l&&o?{type:o}:null),i=p;break}if(1==p)return!1;s.unshift(null)}let h=e.tr;(e.selection instanceof rt||e.selection instanceof lt)&&h.deleteSelection();let c=h.mapping.map(n.pos),d=ze(h.doc,c,s.length,s);if(d||(s[0]=o?{type:o}:null,d=ze(h.doc,c,s.length,s)),!d)return!1;if(h.split(c,s.length,s),!l&&a&&n.node(i).type!=o){let e=h.mapping.map(n.before(i)),t=h.doc.resolve(e);o&&n.node(i-1).canReplaceWith(t.index(),t.index()+1,o)&&h.setNodeMarkup(h.mapping.map(n.before(i)),o)}return t&&t(h.scrollIntoView()),!0};function oo(e,t,n,r){let o,s,l=t.nodeBefore,a=t.nodeAfter,h=l.type.spec.isolating||a.type.spec.isolating;if(!h&&function(e,t,n){let r=t.nodeBefore,i=t.nodeAfter,o=t.index();return!(!(r&&i&&r.type.compatibleContent(i.type))||(!r.content.size&&t.parent.canReplace(o-1,o)?(n&&n(e.tr.delete(t.pos-r.nodeSize,t.pos).scrollIntoView()),0):!t.parent.canReplace(o,o+1)||!i.isTextblock&&!Pe(e.doc,t.pos)||(n&&n(e.tr.join(t.pos).scrollIntoView()),0)))}(e,t,n))return!0;let d=!h&&t.parent.canReplace(t.index(),t.index()+1);if(d&&(o=(s=l.contentMatchAt(l.childCount)).findWrapping(a.type))&&s.matchType(o[0]||a.type).validEnd){if(n){let r=t.pos+a.nodeSize,s=i.empty;for(let e=o.length-1;e>=0;e--)s=i.from(o[e].create(null,s));s=i.from(l.copy(s));let h=e.tr.step(new Oe(t.pos-1,r,t.pos,r,new c(s,1,0),o.length,!0)),d=h.doc.resolve(r+2*o.length);d.nodeAfter&&d.nodeAfter.type==l.type&&Pe(h.doc,d.pos)&&h.join(d.pos),n(h.scrollIntoView())}return!0}let p=a.type.spec.isolating||r>0&&h?null:Qe.findFrom(t,1),u=p&&p.$from.blockRange(p.$to),f=u&&Ee(u);if(null!=f&&f>=t.depth)return n&&n(e.tr.lift(u,f).scrollIntoView()),!0;if(d&&Xi(a,"start",!0)&&Xi(l,"end")){let r=l,o=[];for(;o.push(r),!r.isTextblock;)r=r.lastChild;let s=a,h=1;for(;!s.isTextblock;s=s.firstChild)h++;if(r.canReplace(r.childCount,r.childCount,s.content)){if(n){let r=i.empty;for(let e=o.length-1;e>=0;e--)r=i.from(o[e].copy(r));n(e.tr.step(new Oe(t.pos-o.length,t.pos+a.nodeSize,t.pos+h,t.pos+a.nodeSize-h,new c(r,o.length,0),0,!0)).scrollIntoView())}return!0}}return!1}function so(e){return function(t,n){let r=t.selection,i=e<0?r.$from:r.$to,o=i.depth;for(;i.node(o).isInline;){if(!o)return!1;o--}return!!i.node(o).isTextblock&&(n&&n(t.tr.setSelection(rt.create(t.doc,e<0?i.start(o):i.end(o)))),!0)}}const lo=so(-1),ao=so(1);function ho(e,t=null){return function(n,r){let{$from:i,$to:o}=n.selection,s=i.blockRange(o),l=s&&Ae(s,e,t);return!!l&&(r&&r(n.tr.wrap(s,l).scrollIntoView()),!0)}}function co(e,t=null){return function(n,r){let i=!1;for(let o=0;o{if(i)return!1;if(r.isTextblock&&!r.hasMarkup(e,t))if(r.type==e)i=!0;else{let t=n.doc.resolve(o),r=t.index();i=t.parent.canReplaceWith(r,r+1,e)}})}if(!i)return!1;if(r){let i=n.tr;for(let r=0;r{if(l||!r&&e.isAtom&&e.isInline&&t>=o.pos&&t+e.nodeSize<=s.pos)return!1;l=e.inlineContent&&e.type.allowsMarkType(n)}),l)return!0}return!1}(n.doc,h,e,i))return!1;if(s)if(a)e.isInSet(n.storedMarks||a.marks())?s(n.tr.removeStoredMark(e)):s(n.tr.addStoredMark(e.create(t)));else{let l,a=n.tr;i||(h=function(e){let t=[];for(let n=0;n{if(e.isAtom&&e.content.size&&e.isInline&&n>=r.pos&&n+e.nodeSize<=i.pos)return n+1>r.pos&&t.push(new et(r,r.doc.resolve(n+1))),r=r.doc.resolve(n+1+e.content.size),!1}),r.posn.doc.rangeHasMark(t.$from.pos,t.$to.pos,e)):!h.every(t=>{let n=!1;return a.doc.nodesBetween(t.$from.pos,t.$to.pos,(r,i,o)=>{if(n)return!1;n=!e.isInSet(r.marks)&&!!o&&o.type.allowsMarkType(e)&&!(r.isText&&/^\s*$/.test(r.textBetween(Math.max(0,t.$from.pos-i),Math.min(r.nodeSize,t.$to.pos-i))))}),!n});for(let n=0;n{let r=function(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("backward",e):n.parentOffset>0)?null:n}(e,n);if(!r)return!1;let i=Qi(r);if(!i){let n=r.blockRange(),i=n&&Ee(n);return null!=i&&(t&&t(e.tr.lift(n,i).scrollIntoView()),!0)}let o=i.nodeBefore;if(oo(e,i,t,-1))return!0;if(0==r.parent.content.size&&(Xi(o,"end")||ot.isSelectable(o)))for(let s=r.depth;;s--){let n=Be(e.doc,r.before(s),r.after(s),c.empty);if(n&&n.slice.size1)break}return!(!o.isAtom||i.depth!=r.depth-1)&&(t&&t(e.tr.delete(i.pos-o.nodeSize,i.pos).scrollIntoView()),!0)},(e,t,n)=>{let{$head:r,empty:i}=e.selection,o=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("backward",e):r.parentOffset>0)return!1;o=Qi(r)}let s=o&&o.nodeBefore;return!(!s||!ot.isSelectable(s))&&(t&&t(e.tr.setSelection(ot.create(e.doc,o.pos-s.nodeSize)).scrollIntoView()),!0)}),mo=uo(Zi,(e,t,n)=>{let r=function(e,t){let{$cursor:n}=e.selection;return!n||(t?!t.endOfTextblock("forward",e):n.parentOffset{let{$head:r,empty:i}=e.selection,o=r;if(!i)return!1;if(r.parent.isTextblock){if(n?!n.endOfTextblock("forward",e):r.parentOffset{let{$head:n,$anchor:r}=e.selection;return!(!n.parent.type.spec.code||!n.sameParent(r))&&(t&&t(e.tr.insertText("\n").scrollIntoView()),!0)},(e,t)=>{let n=e.selection,{$from:r,$to:i}=n;if(n instanceof lt||r.parent.inlineContent||i.parent.inlineContent)return!1;let o=no(i.parent.contentMatchAt(i.indexAfter()));if(!o||!o.isTextblock)return!1;if(t){let n=(!r.parentOffset&&i.index(){let{$cursor:n}=e.selection;if(!n||n.parent.content.size)return!1;if(n.depth>1&&n.after()!=n.end(-1)){let r=n.before();if(ze(e.doc,r))return t&&t(e.tr.split(r).scrollIntoView()),!0}let r=n.blockRange(),i=r&&Ee(r);return null!=i&&(t&&t(e.tr.lift(r,i).scrollIntoView()),!0)},io),"Mod-Enter":ro,Backspace:fo,"Mod-Backspace":fo,"Shift-Backspace":fo,Delete:mo,"Mod-Delete":mo,"Mod-a":(e,t)=>(t&&t(e.tr.setSelection(new lt(e.doc))),!0)},yo={"Ctrl-h":go.Backspace,"Alt-Backspace":go["Mod-Backspace"],"Ctrl-d":go.Delete,"Ctrl-Alt-Backspace":go["Mod-Delete"],"Alt-Delete":go["Mod-Delete"],"Alt-d":go["Mod-Delete"],"Ctrl-a":lo,"Ctrl-e":ao};for(let os in go)yo[os]=go[os];const wo=("undefined"!=typeof navigator?/Mac|iP(hone|[oa]d)/.test(navigator.platform):!("undefined"==typeof os||!os.platform)&&"darwin"==os.platform())?yo:go;class vo{constructor(e,t,n={}){var r;this.match=e,this.match=e,this.handler="string"==typeof t?(r=t,function(e,t,n,i){let o=r;if(t[1]){let e=t[0].lastIndexOf(t[1]);o+=t[0].slice(e+t[1].length);let r=(n+=e)-i;r>0&&(o=t[0].slice(e-r,e)+o,n=i)}return e.tr.insertText(o,n,i)}):t,this.undoable=!1!==n.undoable,this.inCode=n.inCode||!1,this.inCodeMark=!1!==n.inCodeMark}}function xo({rules:e}){let t=new wt({state:{init:()=>null,apply(e,t){let n=e.getMeta(this);return n||(e.selectionSet||e.docChanged?null:t)}},props:{handleTextInput:(n,r,i,o)=>So(n,r,i,o,e,t),handleDOMEvents:{compositionend:n=>{setTimeout(()=>{let{$cursor:r}=n.state.selection;r&&So(n,r.pos,r.pos,"",e,t)})}}},isInputRules:!0});return t}function So(e,t,n,r,i,o){if(e.composing)return!1;let s=e.state,l=s.doc.resolve(t),a=l.parent.textBetween(Math.max(0,l.parentOffset-500),l.parentOffset,null,"")+r;for(let h=0;he.type.spec.code))continue;if(l.parent.type.spec.code){if(!c.inCode)continue}else if("only"===c.inCode)continue;let d=c.match.exec(a);if(!d||d[0].length{t.isInline&&t.marks.some(e=>e.type.spec.code)&&(e=!0)}),e)continue}let u=c.handler(s,d,p,n);if(u)return c.undoable&&u.setMeta(o,{transform:u,from:t,to:n,text:r}),e.dispatch(u),!0}return!1}const bo=(e,t)=>{let n=e.plugins;for(let r=0;r=0;e--)n.step(r.steps[e].invert(r.docs[e]));if(i.text){let t=n.doc.resolve(i.from).marks();n.replaceWith(i.from,i.to,e.schema.text(i.text,t))}else n.delete(i.from,i.to);t(n)}return!0}}return!1};function ko(e,t,n=null,r){return new vo(e,(e,i,o,s)=>{let l=n instanceof Function?n(i):n,a=e.tr.delete(o,s),h=a.doc.resolve(o).blockRange(),c=h&&Ae(h,t,l);if(!c)return null;a.wrap(h,c);let d=a.doc.resolve(o-1).nodeBefore;return d&&d.type==t&&Pe(a.doc,o-1)&&(!r||r(i,d))&&a.join(o-1),a})}function Mo(e,t,n=null){return new vo(e,(e,r,i,o)=>{let s=e.doc.resolve(i),l=n instanceof Function?n(r):n;return s.node(-1).canReplaceWith(s.index(-1),s.indexAfter(-1),t)?e.tr.delete(i,o).setBlockType(i,i,t,l):null})}new vo(/--$/,"—",{inCodeMark:!1}),new vo(/\.\.\.$/,"…",{inCodeMark:!1}),new vo(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(")$/,"“",{inCodeMark:!1}),new vo(/"$/,"”",{inCodeMark:!1}),new vo(/(?:^|[\s\{\[\(\<'"\u2018\u201C])(')$/,"‘",{inCodeMark:!1}),new vo(/'$/,"’",{inCodeMark:!1});const Co=["ol",0],Oo=["ul",0],No=["li",0],Do={attrs:{order:{default:1,validate:"number"}},parseDOM:[{tag:"ol",getAttrs:e=>({order:e.hasAttribute("start")?+e.getAttribute("start"):1})}],toDOM:e=>1==e.attrs.order?Co:["ol",{start:e.attrs.order},0]},To={parseDOM:[{tag:"ul"}],toDOM:()=>Oo},Eo={parseDOM:[{tag:"li"}],toDOM:()=>No,defining:!0};function Ao(e,t){let n={};for(let r in e)n[r]=e[r];for(let r in t)n[r]=t[r];return n}function $o(e,t,n){return e.append({ordered_list:Ao(Do,{content:"list_item+",group:n}),bullet_list:Ao(To,{content:"list_item+",group:n}),list_item:Ao(Eo,{content:t})})}function Ro(e,t=null){return function(n,r){let{$from:o,$to:s}=n.selection,l=o.blockRange(s);if(!l)return!1;let a=r?n.tr:null;return!!function(e,t,n,r=null){let o=!1,s=t,l=t.$from.doc;if(t.depth>=2&&t.$from.node(t.depth-1).type.compatibleContent(n)&&0==t.startIndex){if(0==t.$from.index(t.depth-1))return!1;let e=l.resolve(t.start-2);s=new O(e,e,t.depth),t.endIndex=0;c--)s=i.from(n[c].type.create(n[c].attrs,s));e.step(new Oe(t.start-(r?2:0),t.end,t.start,t.end,new c(s,0,0),n.length,!0));let l=0;for(let i=0;i=o.depth-3;e--)t=i.from(o.node(e).copy(t));let l=o.indexAfter(-1){if(d>-1)return!1;e.isTextblock&&0==e.content.size&&(d=t+1)}),d>-1&&h.setSelection(Qe.near(h.doc.resolve(d))),r(h.scrollIntoView())}return!0}let h=s.pos==o.end()?a.contentMatchAt(0).defaultType:null,d=n.tr.delete(o.pos,s.pos),p=h?[t?{type:e,attrs:t}:null,{type:h}]:void 0;return!!ze(d.doc,o.pos,2,p)&&(r&&r(d.split(o.pos,2,p).scrollIntoView()),!0)}}function zo(e){return function(t,n){let{$from:r,$to:o}=t.selection,s=r.blockRange(o,t=>t.childCount>0&&t.firstChild.type==e);return!!s&&(!n||(r.node(s.depth-1).type==e?function(e,t,n,r){let o=e.tr,s=r.end,l=r.$to.end(r.depth);sm;c--)i-=o.child(c).nodeSize,r.delete(i-1,i+1);let s=r.doc.resolve(n.start),l=s.nodeAfter;if(r.mapping.map(n.end)!=n.start+s.nodeAfter.nodeSize)return!1;let a=0==n.startIndex,h=n.endIndex==o.childCount,d=s.node(-1),p=s.index(-1);if(!d.canReplace(p+(a?0:1),p+1,l.content.append(h?i.empty:i.from(o))))return!1;let u=s.pos,f=u+l.nodeSize;return r.step(new Oe(u-(a?1:0),f+(h?1:0),u+1,f-1,new c((a?i.empty:i.from(o.copy(i.empty))).append(h?i.empty:i.from(o.copy(i.empty))),a?0:1,h?0:1),a?0:1)),t(r.scrollIntoView()),!0}(t,n,s)))}}function Po(e){return function(t,n){let{$from:r,$to:o}=t.selection,s=r.blockRange(o,t=>t.childCount>0&&t.firstChild.type==e);if(!s)return!1;let l=s.startIndex;if(0==l)return!1;let a=s.parent,h=a.child(l-1);if(h.type!=e)return!1;if(n){let r=h.lastChild&&h.lastChild.type==a.type,o=i.from(r?e.create():null),l=new c(i.from(e.create(null,i.from(a.type.create(null,o)))),r?3:1,0),d=s.start,p=s.end;n(t.tr.step(new Oe(d-(r?3:1),p,d,p,l,1,!0)).scrollIntoView())}return!0}}var Bo=200,Vo=function(){};Vo.prototype.append=function(e){return e.length?(e=Vo.from(e),!this.length&&e||e.length=t?Vo.empty:this.sliceInner(Math.max(0,e),Math.min(this.length,t))},Vo.prototype.get=function(e){if(!(e<0||e>=this.length))return this.getInner(e)},Vo.prototype.forEach=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=this.length),t<=n?this.forEachInner(e,t,n,0):this.forEachInvertedInner(e,t,n,0)},Vo.prototype.map=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=this.length);var r=[];return this.forEach(function(t,n){return r.push(e(t,n))},t,n),r},Vo.from=function(e){return e instanceof Vo?e:e&&e.length?new Fo(e):Vo.empty};var Fo=function(e){function t(t){e.call(this),this.values=t}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={length:{configurable:!0},depth:{configurable:!0}};return t.prototype.flatten=function(){return this.values},t.prototype.sliceInner=function(e,n){return 0==e&&n==this.length?this:new t(this.values.slice(e,n))},t.prototype.getInner=function(e){return this.values[e]},t.prototype.forEachInner=function(e,t,n,r){for(var i=t;i=n;i--)if(!1===e(this.values[i],r+i))return!1},t.prototype.leafAppend=function(e){if(this.length+e.length<=Bo)return new t(this.values.concat(e.flatten()))},t.prototype.leafPrepend=function(e){if(this.length+e.length<=Bo)return new t(e.flatten().concat(this.values))},n.length.get=function(){return this.values.length},n.depth.get=function(){return 0},Object.defineProperties(t.prototype,n),t}(Vo);Vo.empty=new Fo([]);var Lo=function(e){function t(t,n){e.call(this),this.left=t,this.right=n,this.length=t.length+n.length,this.depth=Math.max(t.depth,n.depth)+1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.flatten=function(){return this.left.flatten().concat(this.right.flatten())},t.prototype.getInner=function(e){return ei&&!1===this.right.forEachInner(e,Math.max(t-i,0),Math.min(this.length,n)-i,r+i))&&void 0)},t.prototype.forEachInvertedInner=function(e,t,n,r){var i=this.left.length;return!(t>i&&!1===this.right.forEachInvertedInner(e,t-i,Math.max(n,i)-i,r+i))&&(!(n=n?this.right.slice(e-n,t-n):this.left.slice(e,n).append(this.right.slice(0,t-n))},t.prototype.leafAppend=function(e){var n=this.right.leafAppend(e);if(n)return new t(this.left,n)},t.prototype.leafPrepend=function(e){var n=this.left.leafPrepend(e);if(n)return new t(n,this.right)},t.prototype.appendInner=function(e){return this.left.depth>=Math.max(this.right.depth,e.depth)+1?new t(this.left,new t(this.right,e)):new t(this,e)},t}(Vo);class Wo{constructor(e,t){this.items=e,this.eventCount=t}popEvent(e,t){if(0==this.eventCount)return null;let n,r,i=this.items.length;for(;;i--){if(this.items.get(i-1).selection){--i;break}}t&&(n=this.remapping(i,this.items.length),r=n.maps.length);let o,s,l=e.tr,a=[],h=[];return this.items.forEach((e,t)=>{if(!e.step)return n||(n=this.remapping(i,t+1),r=n.maps.length),r--,void h.push(e);if(n){h.push(new Jo(e.map));let t,i=e.step.map(n.slice(r));i&&l.maybeStep(i).doc&&(t=l.mapping.maps[l.mapping.maps.length-1],a.push(new Jo(t,void 0,void 0,a.length+h.length))),r--,t&&n.appendMap(t,r)}else l.maybeStep(e.step);return e.selection?(o=n?e.selection.map(n.slice(r)):e.selection,s=new Wo(this.items.slice(0,i).append(h.reverse().concat(a)),this.eventCount-1),!1):void 0},this.items.length,0),{remaining:s,transform:l,selection:o}}addTransform(e,t,n,r){let i=[],o=this.eventCount,s=this.items,l=!r&&s.length?s.get(s.length-1):null;for(let h=0;hjo&&(s=function(e,t){let n;return e.forEach((e,r)=>{if(e.selection&&0==t--)return n=r,!1}),e.slice(n)}(s,a),o-=a),new Wo(s.append(i),o)}remapping(e,t){let n=new ge;return this.items.forEach((t,r)=>{let i=null!=t.mirrorOffset&&r-t.mirrorOffset>=e?n.maps.length-t.mirrorOffset:void 0;n.appendMap(t.map,i)},e,t),n}addMaps(e){return 0==this.eventCount?this:new Wo(this.items.append(e.map(e=>new Jo(e))),this.eventCount)}rebased(e,t){if(!this.eventCount)return this;let n=[],r=Math.max(0,this.items.length-t),i=e.mapping,o=e.steps.length,s=this.eventCount;this.items.forEach(e=>{e.selection&&s--},r);let l=t;this.items.forEach(t=>{let r=i.getMirror(--l);if(null==r)return;o=Math.min(o,r);let a=i.maps[r];if(t.step){let o=e.steps[r].invert(e.docs[r]),h=t.selection&&t.selection.map(i.slice(l+1,r));h&&s++,n.push(new Jo(a,o,h))}else n.push(new Jo(a))},r);let a=[];for(let d=t;d500&&(c=c.compress(this.items.length-n.length)),c}emptyItemCount(){let e=0;return this.items.forEach(t=>{t.step||e++}),e}compress(e=this.items.length){let t=this.remapping(0,e),n=t.maps.length,r=[],i=0;return this.items.forEach((o,s)=>{if(s>=e)r.push(o),o.selection&&i++;else if(o.step){let e=o.step.map(t.slice(n)),s=e&&e.getMap();if(n--,s&&t.appendMap(s,n),e){let l=o.selection&&o.selection.map(t.slice(n));l&&i++;let a,h=new Jo(s.invert(),e,l),c=r.length-1;(a=r.length&&r[c].merge(h))?r[c]=a:r.push(h)}}else o.map&&n--},this.items.length,0),new Wo(Vo.from(r.reverse()),i)}}Wo.empty=new Wo(Vo.empty,0);class Jo{constructor(e,t,n,r){this.map=e,this.step=t,this.selection=n,this.mirrorOffset=r}merge(e){if(this.step&&e.step&&!e.selection){let t=e.step.merge(this.step);if(t)return new Jo(t.getMap().invert(),t,this.selection)}}}class qo{constructor(e,t,n,r,i){this.done=e,this.undone=t,this.prevRanges=n,this.prevTime=r,this.prevComposition=i}}const jo=20;function _o(e){let t=[];for(let n=e.length-1;n>=0&&0==t.length;n--)e[n].forEach((e,n,r,i)=>t.push(r,i));return t}function Ko(e,t){if(!e)return null;let n=[];for(let r=0;rnew qo(Wo.empty,Wo.empty,null,0,-1),apply:(t,n,r)=>function(e,t,n,r){let i,o=n.getMeta(Go);if(o)return o.historyState;n.getMeta(Zo)&&(e=new qo(e.done,e.undone,null,0,-1));let s=n.getMeta("appendedTransaction");if(0==n.steps.length)return e;if(s&&s.getMeta(Go))return s.getMeta(Go).redo?new qo(e.done.addTransform(n,void 0,r,Uo(t)),e.undone,_o(n.mapping.maps),e.prevTime,e.prevComposition):new qo(e.done,e.undone.addTransform(n,void 0,r,Uo(t)),null,e.prevTime,e.prevComposition);if(!1===n.getMeta("addToHistory")||s&&!1===s.getMeta("addToHistory"))return(i=n.getMeta("rebased"))?new qo(e.done.rebased(n,i),e.undone.rebased(n,i),Ko(e.prevRanges,n.mapping),e.prevTime,e.prevComposition):new qo(e.done.addMaps(n.mapping.maps),e.undone.addMaps(n.mapping.maps),Ko(e.prevRanges,n.mapping),e.prevTime,e.prevComposition);{let i=n.getMeta("composition"),o=0==e.prevTime||!s&&e.prevComposition!=i&&(e.prevTime<(n.time||0)-r.newGroupDelay||!function(e,t){if(!t)return!1;if(!e.docChanged)return!0;let n=!1;return e.mapping.maps[0].forEach((e,r)=>{for(let i=0;i=t[i]&&(n=!0)}),n}(n,e.prevRanges)),l=s?Ko(e.prevRanges,n.mapping):_o(n.mapping.maps);return new qo(e.done.addTransform(n,o?t.selection.getBookmark():void 0,r,Uo(t)),Wo.empty,l,n.time,null==i?e.prevComposition:i)}}(n,r,t,e)},config:e,props:{handleDOMEvents:{beforeinput(e,t){let n=t.inputType,r="historyUndo"==n?es:"historyRedo"==n?ts:null;return!!r&&(t.preventDefault(),r(e.state,e.dispatch))}}}})}function Qo(e,t){return(n,r)=>{let i=Go.getState(n);if(!i||0==(e?i.undone:i.done).eventCount)return!1;if(r){let o=function(e,t,n){let r=Uo(t),i=Go.get(t).spec.config,o=(n?e.undone:e.done).popEvent(t,r);if(!o)return null;let s=o.selection.resolve(o.transform.doc),l=(n?e.done:e.undone).addTransform(o.transform,t.selection.getBookmark(),i,r),a=new qo(n?l:o.remaining,n?o.remaining:l,null,0,-1);return o.transform.setSelection(s).setMeta(Go,{redo:n,historyState:a})}(i,n,e);o&&r(t?o.scrollIntoView():o)}return!0}}const es=Qo(!1,!0),ts=Qo(!0,!0);function ns(e){let t=Go.getState(e);return t?t.done.eventCount:0}function rs(e){let t=Go.getState(e);return t?t.undone.eventCount:0}function is(e){return(is="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ss(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t1&&void 0!==arguments[1]&&arguments[1],n=e.to,r=e.from;if(n&&(r||!1!==t)&&this.transports[n])if(t)this.transports[n]=[];else{var i=this.$_getTransportIndex(e);if(i>=0){var o=this.transports[n].slice(0);o.splice(i,1),this.transports[n]=o}}},registerTarget:function(e,t,n){ls&&(this.trackInstances&&!n&&this.targets[e]&&console.warn("[portal-vue]: Target ".concat(e," already exists")),this.$set(this.targets,e,Object.freeze([t])))},unregisterTarget:function(e){this.$delete(this.targets,e)},registerSource:function(e,t,n){ls&&(this.trackInstances&&!n&&this.sources[e]&&console.warn("[portal-vue]: source ".concat(e," already exists")),this.$set(this.sources,e,Object.freeze([t])))},unregisterSource:function(e){this.$delete(this.sources,e)},hasTarget:function(e){return!(!this.targets[e]||!this.targets[e][0])},hasSource:function(e){return!(!this.sources[e]||!this.sources[e][0])},hasContentFor:function(e){return!!this.transports[e]&&!!this.transports[e].length},$_getTransportIndex:function(e){var t=e.to,n=e.from;for(var r in this.transports[t])if(this.transports[t][r].from===n)return+r;return-1}}}),us=new ps(hs),fs=1,ms=e.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(fs++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var e=this;this.$nextTick(function(){us.registerSource(e.name,e)})},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){us.unregisterSource(this.name),this.clear()},watch:{to:function(e,t){t&&t!==e&&this.clear(t),this.sendUpdate()}},methods:{clear:function(e){var t={from:this.name,to:e||this.to};us.close(t)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(e){return"function"==typeof e?e(this.slotProps):e},sendUpdate:function(){var e=this.normalizeSlots();if(e){var t={from:this.name,to:this.to,passengers:ss(e),order:this.order};us.open(t)}else this.clear()}},render:function(e){var t=this.$slots.default||this.$scopedSlots.default||[],n=this.tag;return t&&this.disabled?t.length<=1&&this.slim?this.normalizeOwnChildren(t)[0]:e(n,[this.normalizeOwnChildren(t)]):this.slim?e():e(n,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),gs=e.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:us.transports,firstRender:!0}},created:function(){var e=this;this.$nextTick(function(){us.registerTarget(e.name,e)})},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(e,t){us.unregisterTarget(t),us.registerTarget(e,this)}},mounted:function(){var e=this;this.transition&&this.$nextTick(function(){e.firstRender=!1})},beforeDestroy:function(){us.unregisterTarget(this.name)},computed:{ownTransports:function(){var e=this.transports[this.name]||[];return this.multiple?e:0===e.length?[]:[e[e.length-1]]},passengers:function(){return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.reduce(function(e,n){var r=n.passengers[0],i="function"==typeof r?r(t):n.passengers;return e.concat(i)},[])}(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var e=this.slim&&!this.transition;return e&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),e}},render:function(e){var t=this.noWrapper(),n=this.children(),r=this.transition||this.tag;return t?n[0]:this.slim&&!r?e():e(r,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},n)}}),ys=0,ws=["disabled","name","order","slim","slotProps","tag","to"],vs=["multiple","transition"],xs=e.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(ys++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!=typeof document){var e=document.querySelector(this.mountTo);if(e){var t=this.$props;if(us.targets[t.name])t.bail?console.warn("[portal-vue]: Target ".concat(t.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=us.targets[t.name];else{var n=t.append;if(n){var r="string"==typeof n?n:"DIV",i=document.createElement(r);e.appendChild(i),e=i}var o=as(this.$props,vs);o.slim=this.targetSlim,o.tag=this.targetTag,o.slotProps=this.targetSlotProps,o.name=this.to,this.portalTarget=new gs({el:e,parent:this.$parent||this,propsData:o})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var e=this.portalTarget;if(this.append){var t=e.$el;t.parentNode.removeChild(t)}e.$destroy()},render:function(e){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),e();if(!this.$scopedSlots.manual){var t=as(this.$props,ws);return e(ms,{props:t,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var n=this.$scopedSlots.manual({to:this.to});return Array.isArray(n)&&(n=n[0]),n||e()}});var Ss={install:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e.component(t.portalName||"Portal",ms),e.component(t.portalTargetName||"PortalTarget",gs),e.component(t.MountingPortalName||"MountingPortal",xs)}},bs=new Map;function ks(e){var t=bs.get(e);t&&t.destroy()}function Ms(e){var t=bs.get(e);t&&t.update()}var Cs=null;"undefined"==typeof window?((Cs=function(e){return e}).destroy=function(e){return e},Cs.update=function(e){return e}):((Cs=function(e,t){return e&&Array.prototype.forEach.call(e.length?e:[e],function(e){return function(e){if(e&&e.nodeName&&"TEXTAREA"===e.nodeName&&!bs.has(e)){var t,n=null,r=window.getComputedStyle(e),i=(t=e.value,function(){s({testForHeightReduction:""===t||!e.value.startsWith(t),restoreTextAlign:null}),t=e.value}),o=function(t){e.removeEventListener("autosize:destroy",o),e.removeEventListener("autosize:update",l),e.removeEventListener("input",i),window.removeEventListener("resize",l),Object.keys(t).forEach(function(n){return e.style[n]=t[n]}),bs.delete(e)}.bind(e,{height:e.style.height,resize:e.style.resize,textAlign:e.style.textAlign,overflowY:e.style.overflowY,overflowX:e.style.overflowX,wordWrap:e.style.wordWrap});e.addEventListener("autosize:destroy",o),e.addEventListener("autosize:update",l),e.addEventListener("input",i),window.addEventListener("resize",l),e.style.overflowX="hidden",e.style.wordWrap="break-word",bs.set(e,{destroy:o,update:l}),l()}function s(t){var i,o,l=t.restoreTextAlign,a=void 0===l?null:l,h=t.testForHeightReduction,c=void 0===h||h,d=r.overflowY;if(0!==e.scrollHeight&&("vertical"===r.resize?e.style.resize="none":"both"===r.resize&&(e.style.resize="horizontal"),c&&(i=function(e){for(var t=[];e&&e.parentNode&&e.parentNode instanceof Element;)e.parentNode.scrollTop&&t.push([e.parentNode,e.parentNode.scrollTop]),e=e.parentNode;return function(){return t.forEach(function(e){var t=e[0],n=e[1];t.style.scrollBehavior="auto",t.scrollTop=n,t.style.scrollBehavior=null})}}(e),e.style.height=""),o="content-box"===r.boxSizing?e.scrollHeight-(parseFloat(r.paddingTop)+parseFloat(r.paddingBottom)):e.scrollHeight+parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),"none"!==r.maxHeight&&o>parseFloat(r.maxHeight)?("hidden"===r.overflowY&&(e.style.overflow="scroll"),o=parseFloat(r.maxHeight)):"hidden"!==r.overflowY&&(e.style.overflow="hidden"),e.style.height=o+"px",a&&(e.style.textAlign=a),i&&i(),n!==o&&(e.dispatchEvent(new Event("autosize:resized",{bubbles:!0})),n=o),d!==r.overflow&&!a)){var p=r.textAlign;"hidden"===r.overflow&&(e.style.textAlign="start"===p?"end":"start"),s({restoreTextAlign:p,testForHeightReduction:!0})}}function l(){s({testForHeightReduction:!0,restoreTextAlign:null})}}(e)}),e}).destroy=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],ks),e},Cs.update=function(e){return e&&Array.prototype.forEach.call(e.length?e:[e],Ms),e});var Os=Cs;function Ns(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ds,Ts={exports:{}};var Es=(Ds||(Ds=1,Ts.exports=function(){var e=1e3,t=6e4,n=36e5,r="millisecond",i="second",o="minute",s="hour",l="day",a="week",h="month",c="quarter",d="year",p="date",u="Invalid Date",f=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,m=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(e){var t=["th","st","nd","rd"],n=e%100;return"["+e+(t[(n-20)%10]||t[n]||t[0])+"]"}},y=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},w={s:y,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?"+":"-")+y(r,2,"0")+":"+y(i,2,"0")},m:function e(t,n){if(t.date()1)return e(s[0])}else{var l=t.name;x[l]=t,i=l}return!r&&i&&(v=i),i||!r&&v},M=function(e,t){if(b(e))return e.clone();var n="object"==typeof t?t:{};return n.date=e,n.args=arguments,new O(n)},C=w;C.l=k,C.i=b,C.w=function(e,t){return M(e,{locale:t.$L,utc:t.$u,x:t.$x,$offset:t.$offset})};var O=function(){function g(e){this.$L=k(e.locale,null,!0),this.parse(e),this.$x=this.$x||e.x||{},this[S]=!0}var y=g.prototype;return y.parse=function(e){this.$d=function(e){var t=e.date,n=e.utc;if(null===t)return new Date(NaN);if(C.u(t))return new Date;if(t instanceof Date)return new Date(t);if("string"==typeof t&&!/Z$/i.test(t)){var r=t.match(f);if(r){var i=r[2]-1||0,o=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,o)}}return new Date(t)}(e),this.init()},y.init=function(){var e=this.$d;this.$y=e.getFullYear(),this.$M=e.getMonth(),this.$D=e.getDate(),this.$W=e.getDay(),this.$H=e.getHours(),this.$m=e.getMinutes(),this.$s=e.getSeconds(),this.$ms=e.getMilliseconds()},y.$utils=function(){return C},y.isValid=function(){return!(this.$d.toString()===u)},y.isSame=function(e,t){var n=M(e);return this.startOf(t)<=n&&n<=this.endOf(t)},y.isAfter=function(e,t){return M(e)68?1900:2e3)},a=function(e){return function(t){this[e]=+t}},h=[/[+-]\d\d:?(\d\d)?|Z/,function(e){(this.zone||(this.zone={})).offset=function(e){if(!e)return 0;if("Z"===e)return 0;var t=e.match(/([+-]|\d\d)/g),n=60*t[1]+(+t[2]||0);return 0===n?0:"+"===t[0]?-n:n}(e)}],c=function(e){var t=s[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=s.meridiem;if(r){for(var i=1;i<=24;i+=1)if(e.indexOf(r(i,0,t))>-1){n=i>12;break}}else n=e===(t?"pm":"PM");return n},p={A:[o,function(e){this.afternoon=d(e,!1)}],a:[o,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*+e}],SS:[r,function(e){this.milliseconds=10*+e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,a("seconds")],ss:[i,a("seconds")],m:[i,a("minutes")],mm:[i,a("minutes")],H:[i,a("hours")],h:[i,a("hours")],HH:[i,a("hours")],hh:[i,a("hours")],D:[i,a("day")],DD:[r,a("day")],Do:[o,function(e){var t=s.ordinal,n=e.match(/\d+/);if(this.day=n[0],t)for(var r=1;r<=31;r+=1)t(r).replace(/\[|\]/g,"")===e&&(this.day=r)}],w:[i,a("week")],ww:[r,a("week")],M:[i,a("month")],MM:[r,a("month")],MMM:[o,function(e){var t=c("months"),n=(c("monthsShort")||t.map(function(e){return e.slice(0,3)})).indexOf(e)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[o,function(e){var t=c("months").indexOf(e)+1;if(t<1)throw new Error;this.month=t%12||t}],Y:[/[+-]?\d+/,a("year")],YY:[r,function(e){this.year=l(e)}],YYYY:[/\d{4}/,a("year")],Z:h,ZZ:h};function u(n){var r,i;r=n,i=s&&s.formats;for(var o=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,function(t,n,r){var o=r&&r.toUpperCase();return n||i[r]||e[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,function(e,t,n){return t||n.slice(1)})})).match(t),l=o.length,a=0;a-1)return new Date(("X"===t?1e3:1)*e);var i=u(t)(e),o=i.year,s=i.month,l=i.day,a=i.hours,h=i.minutes,c=i.seconds,d=i.milliseconds,p=i.zone,f=i.week,m=new Date,g=l||(o||s?1:m.getDate()),y=o||m.getFullYear(),w=0;o&&!s||(w=s>0?s-1:m.getMonth());var v,x=a||0,S=h||0,b=c||0,k=d||0;return p?new Date(Date.UTC(y,w,g,x,S,b,k+60*p.offset*1e3)):n?new Date(Date.UTC(y,w,g,x,S,b,k)):(v=new Date(y,w,g,x,S,b,k),f&&(v=r(v).week(f).toDate()),v)}catch(M){return new Date("")}}(t,l,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),c&&t!=this.format(l)&&(this.$d=new Date("")),s={}}else if(l instanceof Array)for(var p=l.length,f=1;f<=p;f+=1){o[1]=l[f-1];var m=n.apply(this,o);if(m.isValid()){this.$d=m.$d,this.$L=m.$L,this.init();break}f===p&&(this.$d=new Date(""))}else i.call(this,e)}}}()),Rs.exports);const zs=Ns(Is);function Ps(e){return{all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get("*"))&&r.slice().map(function(e){e(t,n)})}}}export{As as A,zs as B,Os as C,U as D,gt as E,i as F,Ps as G,vo as I,ot as N,wt as P,c as S,rt as T,to as a,ho as b,Po as c,Io as d,$o as e,ko as f,po as g,ro as h,uo as i,H as j,Ui as k,zo as l,xo as m,Ri as n,oe as o,wo as p,ns as q,rs as r,co as s,Mo as t,bo as u,ts as v,Ro as w,es as x,Xo as y,Ss as z};
diff --git a/public/kirby/panel/dist/js/vue.esm.browser.js b/public/kirby/panel/dist/js/vue.esm.browser.js
new file mode 100644
index 0000000..69ee1f3
--- /dev/null
+++ b/public/kirby/panel/dist/js/vue.esm.browser.js
@@ -0,0 +1,11731 @@
+/*!
+ * Vue.js v2.7.16
+ * (c) 2014-2023 Evan You
+ * Released under the MIT License.
+ */
+const emptyObject = Object.freeze({});
+const isArray = Array.isArray;
+// These helpers produce better VM code in JS engines due to their
+// explicitness and function inlining.
+function isUndef(v) {
+ return v === undefined || v === null;
+}
+function isDef(v) {
+ return v !== undefined && v !== null;
+}
+function isTrue(v) {
+ return v === true;
+}
+function isFalse(v) {
+ return v === false;
+}
+/**
+ * Check if value is primitive.
+ */
+function isPrimitive(value) {
+ return (typeof value === 'string' ||
+ typeof value === 'number' ||
+ // $flow-disable-line
+ typeof value === 'symbol' ||
+ typeof value === 'boolean');
+}
+function isFunction(value) {
+ return typeof value === 'function';
+}
+/**
+ * Quick object check - this is primarily used to tell
+ * objects from primitive values when we know the value
+ * is a JSON-compliant type.
+ */
+function isObject(obj) {
+ return obj !== null && typeof obj === 'object';
+}
+/**
+ * Get the raw type string of a value, e.g., [object Object].
+ */
+const _toString = Object.prototype.toString;
+function toRawType(value) {
+ return _toString.call(value).slice(8, -1);
+}
+/**
+ * Strict object type check. Only returns true
+ * for plain JavaScript objects.
+ */
+function isPlainObject(obj) {
+ return _toString.call(obj) === '[object Object]';
+}
+function isRegExp(v) {
+ return _toString.call(v) === '[object RegExp]';
+}
+/**
+ * Check if val is a valid array index.
+ */
+function isValidArrayIndex(val) {
+ const n = parseFloat(String(val));
+ return n >= 0 && Math.floor(n) === n && isFinite(val);
+}
+function isPromise(val) {
+ return (isDef(val) &&
+ typeof val.then === 'function' &&
+ typeof val.catch === 'function');
+}
+/**
+ * Convert a value to a string that is actually rendered.
+ */
+function toString(val) {
+ return val == null
+ ? ''
+ : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)
+ ? JSON.stringify(val, replacer, 2)
+ : String(val);
+}
+function replacer(_key, val) {
+ // avoid circular deps from v3
+ if (val && val.__v_isRef) {
+ return val.value;
+ }
+ return val;
+}
+/**
+ * Convert an input value to a number for persistence.
+ * If the conversion fails, return original string.
+ */
+function toNumber(val) {
+ const n = parseFloat(val);
+ return isNaN(n) ? val : n;
+}
+/**
+ * Make a map and return a function for checking if a key
+ * is in that map.
+ */
+function makeMap(str, expectsLowerCase) {
+ const map = Object.create(null);
+ const list = str.split(',');
+ for (let i = 0; i < list.length; i++) {
+ map[list[i]] = true;
+ }
+ return expectsLowerCase ? val => map[val.toLowerCase()] : val => map[val];
+}
+/**
+ * Check if a tag is a built-in tag.
+ */
+const isBuiltInTag = makeMap('slot,component', true);
+/**
+ * Check if an attribute is a reserved attribute.
+ */
+const isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');
+/**
+ * Remove an item from an array.
+ */
+function remove$2(arr, item) {
+ const len = arr.length;
+ if (len) {
+ // fast path for the only / last item
+ if (item === arr[len - 1]) {
+ arr.length = len - 1;
+ return;
+ }
+ const index = arr.indexOf(item);
+ if (index > -1) {
+ return arr.splice(index, 1);
+ }
+ }
+}
+/**
+ * Check whether an object has the property.
+ */
+const hasOwnProperty = Object.prototype.hasOwnProperty;
+function hasOwn(obj, key) {
+ return hasOwnProperty.call(obj, key);
+}
+/**
+ * Create a cached version of a pure function.
+ */
+function cached(fn) {
+ const cache = Object.create(null);
+ return function cachedFn(str) {
+ const hit = cache[str];
+ return hit || (cache[str] = fn(str));
+ };
+}
+/**
+ * Camelize a hyphen-delimited string.
+ */
+const camelizeRE = /-(\w)/g;
+const camelize = cached((str) => {
+ return str.replace(camelizeRE, (_, c) => (c ? c.toUpperCase() : ''));
+});
+/**
+ * Capitalize a string.
+ */
+const capitalize = cached((str) => {
+ return str.charAt(0).toUpperCase() + str.slice(1);
+});
+/**
+ * Hyphenate a camelCase string.
+ */
+const hyphenateRE = /\B([A-Z])/g;
+const hyphenate = cached((str) => {
+ return str.replace(hyphenateRE, '-$1').toLowerCase();
+});
+/**
+ * Simple bind polyfill for environments that do not support it,
+ * e.g., PhantomJS 1.x. Technically, we don't need this anymore
+ * since native bind is now performant enough in most browsers.
+ * But removing it would mean breaking code that was able to run in
+ * PhantomJS 1.x, so this must be kept for backward compatibility.
+ */
+/* istanbul ignore next */
+function polyfillBind(fn, ctx) {
+ function boundFn(a) {
+ const l = arguments.length;
+ return l
+ ? l > 1
+ ? fn.apply(ctx, arguments)
+ : fn.call(ctx, a)
+ : fn.call(ctx);
+ }
+ boundFn._length = fn.length;
+ return boundFn;
+}
+function nativeBind(fn, ctx) {
+ return fn.bind(ctx);
+}
+// @ts-expect-error bind cannot be `undefined`
+const bind$1 = Function.prototype.bind ? nativeBind : polyfillBind;
+/**
+ * Convert an Array-like object to a real Array.
+ */
+function toArray(list, start) {
+ start = start || 0;
+ let i = list.length - start;
+ const ret = new Array(i);
+ while (i--) {
+ ret[i] = list[i + start];
+ }
+ return ret;
+}
+/**
+ * Mix properties into target object.
+ */
+function extend(to, _from) {
+ for (const key in _from) {
+ to[key] = _from[key];
+ }
+ return to;
+}
+/**
+ * Merge an Array of Objects into a single Object.
+ */
+function toObject(arr) {
+ const res = {};
+ for (let i = 0; i < arr.length; i++) {
+ if (arr[i]) {
+ extend(res, arr[i]);
+ }
+ }
+ return res;
+}
+/* eslint-disable no-unused-vars */
+/**
+ * Perform no operation.
+ * Stubbing args to make Flow happy without leaving useless transpiled code
+ * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).
+ */
+function noop(a, b, c) { }
+/**
+ * Always return false.
+ */
+const no = (a, b, c) => false;
+/* eslint-enable no-unused-vars */
+/**
+ * Return the same value.
+ */
+const identity = (_) => _;
+/**
+ * Generate a string containing static keys from compiler modules.
+ */
+function genStaticKeys$1(modules) {
+ return modules
+ .reduce((keys, m) => keys.concat(m.staticKeys || []), [])
+ .join(',');
+}
+/**
+ * Check if two values are loosely equal - that is,
+ * if they are plain objects, do they have the same shape?
+ */
+function looseEqual(a, b) {
+ if (a === b)
+ return true;
+ const isObjectA = isObject(a);
+ const isObjectB = isObject(b);
+ if (isObjectA && isObjectB) {
+ try {
+ const isArrayA = Array.isArray(a);
+ const isArrayB = Array.isArray(b);
+ if (isArrayA && isArrayB) {
+ return (a.length === b.length &&
+ a.every((e, i) => {
+ return looseEqual(e, b[i]);
+ }));
+ }
+ else if (a instanceof Date && b instanceof Date) {
+ return a.getTime() === b.getTime();
+ }
+ else if (!isArrayA && !isArrayB) {
+ const keysA = Object.keys(a);
+ const keysB = Object.keys(b);
+ return (keysA.length === keysB.length &&
+ keysA.every(key => {
+ return looseEqual(a[key], b[key]);
+ }));
+ }
+ else {
+ /* istanbul ignore next */
+ return false;
+ }
+ }
+ catch (e) {
+ /* istanbul ignore next */
+ return false;
+ }
+ }
+ else if (!isObjectA && !isObjectB) {
+ return String(a) === String(b);
+ }
+ else {
+ return false;
+ }
+}
+/**
+ * Return the first index at which a loosely equal value can be
+ * found in the array (if value is a plain object, the array must
+ * contain an object of the same shape), or -1 if it is not present.
+ */
+function looseIndexOf(arr, val) {
+ for (let i = 0; i < arr.length; i++) {
+ if (looseEqual(arr[i], val))
+ return i;
+ }
+ return -1;
+}
+/**
+ * Ensure a function is called only once.
+ */
+function once(fn) {
+ let called = false;
+ return function () {
+ if (!called) {
+ called = true;
+ fn.apply(this, arguments);
+ }
+ };
+}
+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill
+function hasChanged(x, y) {
+ if (x === y) {
+ return x === 0 && 1 / x !== 1 / y;
+ }
+ else {
+ return x === x || y === y;
+ }
+}
+
+const SSR_ATTR = 'data-server-rendered';
+const ASSET_TYPES = ['component', 'directive', 'filter'];
+const LIFECYCLE_HOOKS = [
+ 'beforeCreate',
+ 'created',
+ 'beforeMount',
+ 'mounted',
+ 'beforeUpdate',
+ 'updated',
+ 'beforeDestroy',
+ 'destroyed',
+ 'activated',
+ 'deactivated',
+ 'errorCaptured',
+ 'serverPrefetch',
+ 'renderTracked',
+ 'renderTriggered'
+];
+
+var config = {
+ /**
+ * Option merge strategies (used in core/util/options)
+ */
+ // $flow-disable-line
+ optionMergeStrategies: Object.create(null),
+ /**
+ * Whether to suppress warnings.
+ */
+ silent: false,
+ /**
+ * Show production mode tip message on boot?
+ */
+ productionTip: true,
+ /**
+ * Whether to enable devtools
+ */
+ devtools: true,
+ /**
+ * Whether to record perf
+ */
+ performance: false,
+ /**
+ * Error handler for watcher errors
+ */
+ errorHandler: null,
+ /**
+ * Warn handler for watcher warns
+ */
+ warnHandler: null,
+ /**
+ * Ignore certain custom elements
+ */
+ ignoredElements: [],
+ /**
+ * Custom user key aliases for v-on
+ */
+ // $flow-disable-line
+ keyCodes: Object.create(null),
+ /**
+ * Check if a tag is reserved so that it cannot be registered as a
+ * component. This is platform-dependent and may be overwritten.
+ */
+ isReservedTag: no,
+ /**
+ * Check if an attribute is reserved so that it cannot be used as a component
+ * prop. This is platform-dependent and may be overwritten.
+ */
+ isReservedAttr: no,
+ /**
+ * Check if a tag is an unknown element.
+ * Platform-dependent.
+ */
+ isUnknownElement: no,
+ /**
+ * Get the namespace of an element
+ */
+ getTagNamespace: noop,
+ /**
+ * Parse the real tag name for the specific platform.
+ */
+ parsePlatformTagName: identity,
+ /**
+ * Check if an attribute must be bound using property, e.g. value
+ * Platform-dependent.
+ */
+ mustUseProp: no,
+ /**
+ * Perform updates asynchronously. Intended to be used by Vue Test Utils
+ * This will significantly reduce performance if set to false.
+ */
+ async: true,
+ /**
+ * Exposed for legacy reasons
+ */
+ _lifecycleHooks: LIFECYCLE_HOOKS
+};
+
+/**
+ * unicode letters used for parsing html tags, component names and property paths.
+ * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname
+ * skipping \u10000-\uEFFFF due to it freezing up PhantomJS
+ */
+const unicodeRegExp = /a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;
+/**
+ * Check if a string starts with $ or _
+ */
+function isReserved(str) {
+ const c = (str + '').charCodeAt(0);
+ return c === 0x24 || c === 0x5f;
+}
+/**
+ * Define a property.
+ */
+function def(obj, key, val, enumerable) {
+ Object.defineProperty(obj, key, {
+ value: val,
+ enumerable: !!enumerable,
+ writable: true,
+ configurable: true
+ });
+}
+/**
+ * Parse simple path.
+ */
+const bailRE = new RegExp(`[^${unicodeRegExp.source}.$_\\d]`);
+function parsePath(path) {
+ if (bailRE.test(path)) {
+ return;
+ }
+ const segments = path.split('.');
+ return function (obj) {
+ for (let i = 0; i < segments.length; i++) {
+ if (!obj)
+ return;
+ obj = obj[segments[i]];
+ }
+ return obj;
+ };
+}
+
+// can we use __proto__?
+const hasProto = '__proto__' in {};
+// Browser environment sniffing
+const inBrowser = typeof window !== 'undefined';
+const UA = inBrowser && window.navigator.userAgent.toLowerCase();
+const isIE = UA && /msie|trident/.test(UA);
+const isIE9 = UA && UA.indexOf('msie 9.0') > 0;
+const isEdge = UA && UA.indexOf('edge/') > 0;
+UA && UA.indexOf('android') > 0;
+const isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
+UA && /chrome\/\d+/.test(UA) && !isEdge;
+UA && /phantomjs/.test(UA);
+const isFF = UA && UA.match(/firefox\/(\d+)/);
+// Firefox has a "watch" function on Object.prototype...
+// @ts-expect-error firebox support
+const nativeWatch = {}.watch;
+let supportsPassive = false;
+if (inBrowser) {
+ try {
+ const opts = {};
+ Object.defineProperty(opts, 'passive', {
+ get() {
+ /* istanbul ignore next */
+ supportsPassive = true;
+ }
+ }); // https://github.com/facebook/flow/issues/285
+ window.addEventListener('test-passive', null, opts);
+ }
+ catch (e) { }
+}
+// this needs to be lazy-evaled because vue may be required before
+// vue-server-renderer can set VUE_ENV
+let _isServer;
+const isServerRendering = () => {
+ if (_isServer === undefined) {
+ /* istanbul ignore if */
+ if (!inBrowser && typeof global !== 'undefined') {
+ // detect presence of vue-server-renderer and avoid
+ // Webpack shimming the process
+ _isServer =
+ global['process'] && global['process'].env.VUE_ENV === 'server';
+ }
+ else {
+ _isServer = false;
+ }
+ }
+ return _isServer;
+};
+// detect devtools
+const devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;
+/* istanbul ignore next */
+function isNative(Ctor) {
+ return typeof Ctor === 'function' && /native code/.test(Ctor.toString());
+}
+const hasSymbol = typeof Symbol !== 'undefined' &&
+ isNative(Symbol) &&
+ typeof Reflect !== 'undefined' &&
+ isNative(Reflect.ownKeys);
+let _Set; // $flow-disable-line
+/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {
+ // use native Set when available.
+ _Set = Set;
+}
+else {
+ // a non-standard Set polyfill that only works with primitive keys.
+ _Set = class Set {
+ constructor() {
+ this.set = Object.create(null);
+ }
+ has(key) {
+ return this.set[key] === true;
+ }
+ add(key) {
+ this.set[key] = true;
+ }
+ clear() {
+ this.set = Object.create(null);
+ }
+ };
+}
+
+let currentInstance = null;
+/**
+ * This is exposed for compatibility with v3 (e.g. some functions in VueUse
+ * relies on it). Do not use this internally, just use `currentInstance`.
+ *
+ * @internal this function needs manual type declaration because it relies
+ * on previously manually authored types from Vue 2
+ */
+function getCurrentInstance() {
+ return currentInstance && { proxy: currentInstance };
+}
+/**
+ * @internal
+ */
+function setCurrentInstance(vm = null) {
+ if (!vm)
+ currentInstance && currentInstance._scope.off();
+ currentInstance = vm;
+ vm && vm._scope.on();
+}
+
+/**
+ * @internal
+ */
+class VNode {
+ constructor(tag, data, children, text, elm, context, componentOptions, asyncFactory) {
+ this.tag = tag;
+ this.data = data;
+ this.children = children;
+ this.text = text;
+ this.elm = elm;
+ this.ns = undefined;
+ this.context = context;
+ this.fnContext = undefined;
+ this.fnOptions = undefined;
+ this.fnScopeId = undefined;
+ this.key = data && data.key;
+ this.componentOptions = componentOptions;
+ this.componentInstance = undefined;
+ this.parent = undefined;
+ this.raw = false;
+ this.isStatic = false;
+ this.isRootInsert = true;
+ this.isComment = false;
+ this.isCloned = false;
+ this.isOnce = false;
+ this.asyncFactory = asyncFactory;
+ this.asyncMeta = undefined;
+ this.isAsyncPlaceholder = false;
+ }
+ // DEPRECATED: alias for componentInstance for backwards compat.
+ /* istanbul ignore next */
+ get child() {
+ return this.componentInstance;
+ }
+}
+const createEmptyVNode = (text = '') => {
+ const node = new VNode();
+ node.text = text;
+ node.isComment = true;
+ return node;
+};
+function createTextVNode(val) {
+ return new VNode(undefined, undefined, undefined, String(val));
+}
+// optimized shallow clone
+// used for static nodes and slot nodes because they may be reused across
+// multiple renders, cloning them avoids errors when DOM manipulations rely
+// on their elm reference.
+function cloneVNode(vnode) {
+ const cloned = new VNode(vnode.tag, vnode.data,
+ // #7975
+ // clone children array to avoid mutating original in case of cloning
+ // a child.
+ vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);
+ cloned.ns = vnode.ns;
+ cloned.isStatic = vnode.isStatic;
+ cloned.key = vnode.key;
+ cloned.isComment = vnode.isComment;
+ cloned.fnContext = vnode.fnContext;
+ cloned.fnOptions = vnode.fnOptions;
+ cloned.fnScopeId = vnode.fnScopeId;
+ cloned.asyncMeta = vnode.asyncMeta;
+ cloned.isCloned = true;
+ return cloned;
+}
+
+/* not type checking this file because flow doesn't play well with Proxy */
+let initProxy;
+{
+ const allowedGlobals = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +
+ 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +
+ 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +
+ 'require' // for Webpack/Browserify
+ );
+ const warnNonPresent = (target, key) => {
+ warn$2(`Property or method "${key}" is not defined on the instance but ` +
+ 'referenced during render. Make sure that this property is reactive, ' +
+ 'either in the data option, or for class-based components, by ' +
+ 'initializing the property. ' +
+ 'See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);
+ };
+ const warnReservedPrefix = (target, key) => {
+ warn$2(`Property "${key}" must be accessed with "$data.${key}" because ` +
+ 'properties starting with "$" or "_" are not proxied in the Vue instance to ' +
+ 'prevent conflicts with Vue internals. ' +
+ 'See: https://v2.vuejs.org/v2/api/#data', target);
+ };
+ const hasProxy = typeof Proxy !== 'undefined' && isNative(Proxy);
+ if (hasProxy) {
+ const isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');
+ config.keyCodes = new Proxy(config.keyCodes, {
+ set(target, key, value) {
+ if (isBuiltInModifier(key)) {
+ warn$2(`Avoid overwriting built-in modifier in config.keyCodes: .${key}`);
+ return false;
+ }
+ else {
+ target[key] = value;
+ return true;
+ }
+ }
+ });
+ }
+ const hasHandler = {
+ has(target, key) {
+ const has = key in target;
+ const isAllowed = allowedGlobals(key) ||
+ (typeof key === 'string' &&
+ key.charAt(0) === '_' &&
+ !(key in target.$data));
+ if (!has && !isAllowed) {
+ if (key in target.$data)
+ warnReservedPrefix(target, key);
+ else
+ warnNonPresent(target, key);
+ }
+ return has || !isAllowed;
+ }
+ };
+ const getHandler = {
+ get(target, key) {
+ if (typeof key === 'string' && !(key in target)) {
+ if (key in target.$data)
+ warnReservedPrefix(target, key);
+ else
+ warnNonPresent(target, key);
+ }
+ return target[key];
+ }
+ };
+ initProxy = function initProxy(vm) {
+ if (hasProxy) {
+ // determine which proxy handler to use
+ const options = vm.$options;
+ const handlers = options.render && options.render._withStripped ? getHandler : hasHandler;
+ vm._renderProxy = new Proxy(vm, handlers);
+ }
+ else {
+ vm._renderProxy = vm;
+ }
+ };
+}
+
+let uid$2 = 0;
+const pendingCleanupDeps = [];
+const cleanupDeps = () => {
+ for (let i = 0; i < pendingCleanupDeps.length; i++) {
+ const dep = pendingCleanupDeps[i];
+ dep.subs = dep.subs.filter(s => s);
+ dep._pending = false;
+ }
+ pendingCleanupDeps.length = 0;
+};
+/**
+ * A dep is an observable that can have multiple
+ * directives subscribing to it.
+ * @internal
+ */
+class Dep {
+ constructor() {
+ // pending subs cleanup
+ this._pending = false;
+ this.id = uid$2++;
+ this.subs = [];
+ }
+ addSub(sub) {
+ this.subs.push(sub);
+ }
+ removeSub(sub) {
+ // #12696 deps with massive amount of subscribers are extremely slow to
+ // clean up in Chromium
+ // to workaround this, we unset the sub for now, and clear them on
+ // next scheduler flush.
+ this.subs[this.subs.indexOf(sub)] = null;
+ if (!this._pending) {
+ this._pending = true;
+ pendingCleanupDeps.push(this);
+ }
+ }
+ depend(info) {
+ if (Dep.target) {
+ Dep.target.addDep(this);
+ if (info && Dep.target.onTrack) {
+ Dep.target.onTrack(Object.assign({ effect: Dep.target }, info));
+ }
+ }
+ }
+ notify(info) {
+ // stabilize the subscriber list first
+ const subs = this.subs.filter(s => s);
+ if (!config.async) {
+ // subs aren't sorted in scheduler if not running async
+ // we need to sort them now to make sure they fire in correct
+ // order
+ subs.sort((a, b) => a.id - b.id);
+ }
+ for (let i = 0, l = subs.length; i < l; i++) {
+ const sub = subs[i];
+ if (info) {
+ sub.onTrigger &&
+ sub.onTrigger(Object.assign({ effect: subs[i] }, info));
+ }
+ sub.update();
+ }
+ }
+}
+// The current target watcher being evaluated.
+// This is globally unique because only one watcher
+// can be evaluated at a time.
+Dep.target = null;
+const targetStack = [];
+function pushTarget(target) {
+ targetStack.push(target);
+ Dep.target = target;
+}
+function popTarget() {
+ targetStack.pop();
+ Dep.target = targetStack[targetStack.length - 1];
+}
+
+/*
+ * not type checking this file because flow doesn't play well with
+ * dynamically accessing methods on Array prototype
+ */
+const arrayProto = Array.prototype;
+const arrayMethods = Object.create(arrayProto);
+const methodsToPatch = [
+ 'push',
+ 'pop',
+ 'shift',
+ 'unshift',
+ 'splice',
+ 'sort',
+ 'reverse'
+];
+/**
+ * Intercept mutating methods and emit events
+ */
+methodsToPatch.forEach(function (method) {
+ // cache original method
+ const original = arrayProto[method];
+ def(arrayMethods, method, function mutator(...args) {
+ const result = original.apply(this, args);
+ const ob = this.__ob__;
+ let inserted;
+ switch (method) {
+ case 'push':
+ case 'unshift':
+ inserted = args;
+ break;
+ case 'splice':
+ inserted = args.slice(2);
+ break;
+ }
+ if (inserted)
+ ob.observeArray(inserted);
+ // notify change
+ {
+ ob.dep.notify({
+ type: "array mutation" /* TriggerOpTypes.ARRAY_MUTATION */,
+ target: this,
+ key: method
+ });
+ }
+ return result;
+ });
+});
+
+const arrayKeys = Object.getOwnPropertyNames(arrayMethods);
+const NO_INITIAL_VALUE = {};
+/**
+ * In some cases we may want to disable observation inside a component's
+ * update computation.
+ */
+let shouldObserve = true;
+function toggleObserving(value) {
+ shouldObserve = value;
+}
+// ssr mock dep
+const mockDep = {
+ notify: noop,
+ depend: noop,
+ addSub: noop,
+ removeSub: noop
+};
+/**
+ * Observer class that is attached to each observed
+ * object. Once attached, the observer converts the target
+ * object's property keys into getter/setters that
+ * collect dependencies and dispatch updates.
+ */
+class Observer {
+ constructor(value, shallow = false, mock = false) {
+ this.value = value;
+ this.shallow = shallow;
+ this.mock = mock;
+ // this.value = value
+ this.dep = mock ? mockDep : new Dep();
+ this.vmCount = 0;
+ def(value, '__ob__', this);
+ if (isArray(value)) {
+ if (!mock) {
+ if (hasProto) {
+ value.__proto__ = arrayMethods;
+ /* eslint-enable no-proto */
+ }
+ else {
+ for (let i = 0, l = arrayKeys.length; i < l; i++) {
+ const key = arrayKeys[i];
+ def(value, key, arrayMethods[key]);
+ }
+ }
+ }
+ if (!shallow) {
+ this.observeArray(value);
+ }
+ }
+ else {
+ /**
+ * Walk through all properties and convert them into
+ * getter/setters. This method should only be called when
+ * value type is Object.
+ */
+ const keys = Object.keys(value);
+ for (let i = 0; i < keys.length; i++) {
+ const key = keys[i];
+ defineReactive(value, key, NO_INITIAL_VALUE, undefined, shallow, mock);
+ }
+ }
+ }
+ /**
+ * Observe a list of Array items.
+ */
+ observeArray(value) {
+ for (let i = 0, l = value.length; i < l; i++) {
+ observe(value[i], false, this.mock);
+ }
+ }
+}
+// helpers
+/**
+ * Attempt to create an observer instance for a value,
+ * returns the new observer if successfully observed,
+ * or the existing observer if the value already has one.
+ */
+function observe(value, shallow, ssrMockReactivity) {
+ if (value && hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {
+ return value.__ob__;
+ }
+ if (shouldObserve &&
+ (ssrMockReactivity || !isServerRendering()) &&
+ (isArray(value) || isPlainObject(value)) &&
+ Object.isExtensible(value) &&
+ !value.__v_skip /* ReactiveFlags.SKIP */ &&
+ !isRef(value) &&
+ !(value instanceof VNode)) {
+ return new Observer(value, shallow, ssrMockReactivity);
+ }
+}
+/**
+ * Define a reactive property on an Object.
+ */
+function defineReactive(obj, key, val, customSetter, shallow, mock, observeEvenIfShallow = false) {
+ const dep = new Dep();
+ const property = Object.getOwnPropertyDescriptor(obj, key);
+ if (property && property.configurable === false) {
+ return;
+ }
+ // cater for pre-defined getter/setters
+ const getter = property && property.get;
+ const setter = property && property.set;
+ if ((!getter || setter) &&
+ (val === NO_INITIAL_VALUE || arguments.length === 2)) {
+ val = obj[key];
+ }
+ let childOb = shallow ? val && val.__ob__ : observe(val, false, mock);
+ Object.defineProperty(obj, key, {
+ enumerable: true,
+ configurable: true,
+ get: function reactiveGetter() {
+ const value = getter ? getter.call(obj) : val;
+ if (Dep.target) {
+ {
+ dep.depend({
+ target: obj,
+ type: "get" /* TrackOpTypes.GET */,
+ key
+ });
+ }
+ if (childOb) {
+ childOb.dep.depend();
+ if (isArray(value)) {
+ dependArray(value);
+ }
+ }
+ }
+ return isRef(value) && !shallow ? value.value : value;
+ },
+ set: function reactiveSetter(newVal) {
+ const value = getter ? getter.call(obj) : val;
+ if (!hasChanged(value, newVal)) {
+ return;
+ }
+ if (customSetter) {
+ customSetter();
+ }
+ if (setter) {
+ setter.call(obj, newVal);
+ }
+ else if (getter) {
+ // #7981: for accessor properties without setter
+ return;
+ }
+ else if (!shallow && isRef(value) && !isRef(newVal)) {
+ value.value = newVal;
+ return;
+ }
+ else {
+ val = newVal;
+ }
+ childOb = shallow ? newVal && newVal.__ob__ : observe(newVal, false, mock);
+ {
+ dep.notify({
+ type: "set" /* TriggerOpTypes.SET */,
+ target: obj,
+ key,
+ newValue: newVal,
+ oldValue: value
+ });
+ }
+ }
+ });
+ return dep;
+}
+function set(target, key, val) {
+ if ((isUndef(target) || isPrimitive(target))) {
+ warn$2(`Cannot set reactive property on undefined, null, or primitive value: ${target}`);
+ }
+ if (isReadonly(target)) {
+ warn$2(`Set operation on key "${key}" failed: target is readonly.`);
+ return;
+ }
+ const ob = target.__ob__;
+ if (isArray(target) && isValidArrayIndex(key)) {
+ target.length = Math.max(target.length, key);
+ target.splice(key, 1, val);
+ // when mocking for SSR, array methods are not hijacked
+ if (ob && !ob.shallow && ob.mock) {
+ observe(val, false, true);
+ }
+ return val;
+ }
+ if (key in target && !(key in Object.prototype)) {
+ target[key] = val;
+ return val;
+ }
+ if (target._isVue || (ob && ob.vmCount)) {
+ warn$2('Avoid adding reactive properties to a Vue instance or its root $data ' +
+ 'at runtime - declare it upfront in the data option.');
+ return val;
+ }
+ if (!ob) {
+ target[key] = val;
+ return val;
+ }
+ defineReactive(ob.value, key, val, undefined, ob.shallow, ob.mock);
+ {
+ ob.dep.notify({
+ type: "add" /* TriggerOpTypes.ADD */,
+ target: target,
+ key,
+ newValue: val,
+ oldValue: undefined
+ });
+ }
+ return val;
+}
+function del(target, key) {
+ if ((isUndef(target) || isPrimitive(target))) {
+ warn$2(`Cannot delete reactive property on undefined, null, or primitive value: ${target}`);
+ }
+ if (isArray(target) && isValidArrayIndex(key)) {
+ target.splice(key, 1);
+ return;
+ }
+ const ob = target.__ob__;
+ if (target._isVue || (ob && ob.vmCount)) {
+ warn$2('Avoid deleting properties on a Vue instance or its root $data ' +
+ '- just set it to null.');
+ return;
+ }
+ if (isReadonly(target)) {
+ warn$2(`Delete operation on key "${key}" failed: target is readonly.`);
+ return;
+ }
+ if (!hasOwn(target, key)) {
+ return;
+ }
+ delete target[key];
+ if (!ob) {
+ return;
+ }
+ {
+ ob.dep.notify({
+ type: "delete" /* TriggerOpTypes.DELETE */,
+ target: target,
+ key
+ });
+ }
+}
+/**
+ * Collect dependencies on array elements when the array is touched, since
+ * we cannot intercept array element access like property getters.
+ */
+function dependArray(value) {
+ for (let e, i = 0, l = value.length; i < l; i++) {
+ e = value[i];
+ if (e && e.__ob__) {
+ e.__ob__.dep.depend();
+ }
+ if (isArray(e)) {
+ dependArray(e);
+ }
+ }
+}
+
+function reactive(target) {
+ makeReactive(target, false);
+ return target;
+}
+/**
+ * Return a shallowly-reactive copy of the original object, where only the root
+ * level properties are reactive. It also does not auto-unwrap refs (even at the
+ * root level).
+ */
+function shallowReactive(target) {
+ makeReactive(target, true);
+ def(target, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
+ return target;
+}
+function makeReactive(target, shallow) {
+ // if trying to observe a readonly proxy, return the readonly version.
+ if (!isReadonly(target)) {
+ {
+ if (isArray(target)) {
+ warn$2(`Avoid using Array as root value for ${shallow ? `shallowReactive()` : `reactive()`} as it cannot be tracked in watch() or watchEffect(). Use ${shallow ? `shallowRef()` : `ref()`} instead. This is a Vue-2-only limitation.`);
+ }
+ const existingOb = target && target.__ob__;
+ if (existingOb && existingOb.shallow !== shallow) {
+ warn$2(`Target is already a ${existingOb.shallow ? `` : `non-`}shallow reactive object, and cannot be converted to ${shallow ? `` : `non-`}shallow.`);
+ }
+ }
+ const ob = observe(target, shallow, isServerRendering() /* ssr mock reactivity */);
+ if (!ob) {
+ if (target == null || isPrimitive(target)) {
+ warn$2(`value cannot be made reactive: ${String(target)}`);
+ }
+ if (isCollectionType(target)) {
+ warn$2(`Vue 2 does not support reactive collection types such as Map or Set.`);
+ }
+ }
+ }
+}
+function isReactive(value) {
+ if (isReadonly(value)) {
+ return isReactive(value["__v_raw" /* ReactiveFlags.RAW */]);
+ }
+ return !!(value && value.__ob__);
+}
+function isShallow(value) {
+ return !!(value && value.__v_isShallow);
+}
+function isReadonly(value) {
+ return !!(value && value.__v_isReadonly);
+}
+function isProxy(value) {
+ return isReactive(value) || isReadonly(value);
+}
+function toRaw(observed) {
+ const raw = observed && observed["__v_raw" /* ReactiveFlags.RAW */];
+ return raw ? toRaw(raw) : observed;
+}
+function markRaw(value) {
+ // non-extensible objects won't be observed anyway
+ if (Object.isExtensible(value)) {
+ def(value, "__v_skip" /* ReactiveFlags.SKIP */, true);
+ }
+ return value;
+}
+/**
+ * @internal
+ */
+function isCollectionType(value) {
+ const type = toRawType(value);
+ return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');
+}
+
+/**
+ * @internal
+ */
+const RefFlag = `__v_isRef`;
+function isRef(r) {
+ return !!(r && r.__v_isRef === true);
+}
+function ref$1(value) {
+ return createRef(value, false);
+}
+function shallowRef(value) {
+ return createRef(value, true);
+}
+function createRef(rawValue, shallow) {
+ if (isRef(rawValue)) {
+ return rawValue;
+ }
+ const ref = {};
+ def(ref, RefFlag, true);
+ def(ref, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, shallow);
+ def(ref, 'dep', defineReactive(ref, 'value', rawValue, null, shallow, isServerRendering()));
+ return ref;
+}
+function triggerRef(ref) {
+ if (!ref.dep) {
+ warn$2(`received object is not a triggerable ref.`);
+ }
+ {
+ ref.dep &&
+ ref.dep.notify({
+ type: "set" /* TriggerOpTypes.SET */,
+ target: ref,
+ key: 'value'
+ });
+ }
+}
+function unref(ref) {
+ return isRef(ref) ? ref.value : ref;
+}
+function proxyRefs(objectWithRefs) {
+ if (isReactive(objectWithRefs)) {
+ return objectWithRefs;
+ }
+ const proxy = {};
+ const keys = Object.keys(objectWithRefs);
+ for (let i = 0; i < keys.length; i++) {
+ proxyWithRefUnwrap(proxy, objectWithRefs, keys[i]);
+ }
+ return proxy;
+}
+function proxyWithRefUnwrap(target, source, key) {
+ Object.defineProperty(target, key, {
+ enumerable: true,
+ configurable: true,
+ get: () => {
+ const val = source[key];
+ if (isRef(val)) {
+ return val.value;
+ }
+ else {
+ const ob = val && val.__ob__;
+ if (ob)
+ ob.dep.depend();
+ return val;
+ }
+ },
+ set: value => {
+ const oldValue = source[key];
+ if (isRef(oldValue) && !isRef(value)) {
+ oldValue.value = value;
+ }
+ else {
+ source[key] = value;
+ }
+ }
+ });
+}
+function customRef(factory) {
+ const dep = new Dep();
+ const { get, set } = factory(() => {
+ {
+ dep.depend({
+ target: ref,
+ type: "get" /* TrackOpTypes.GET */,
+ key: 'value'
+ });
+ }
+ }, () => {
+ {
+ dep.notify({
+ target: ref,
+ type: "set" /* TriggerOpTypes.SET */,
+ key: 'value'
+ });
+ }
+ });
+ const ref = {
+ get value() {
+ return get();
+ },
+ set value(newVal) {
+ set(newVal);
+ }
+ };
+ def(ref, RefFlag, true);
+ return ref;
+}
+function toRefs(object) {
+ if (!isReactive(object)) {
+ warn$2(`toRefs() expects a reactive object but received a plain one.`);
+ }
+ const ret = isArray(object) ? new Array(object.length) : {};
+ for (const key in object) {
+ ret[key] = toRef(object, key);
+ }
+ return ret;
+}
+function toRef(object, key, defaultValue) {
+ const val = object[key];
+ if (isRef(val)) {
+ return val;
+ }
+ const ref = {
+ get value() {
+ const val = object[key];
+ return val === undefined ? defaultValue : val;
+ },
+ set value(newVal) {
+ object[key] = newVal;
+ }
+ };
+ def(ref, RefFlag, true);
+ return ref;
+}
+
+const rawToReadonlyFlag = `__v_rawToReadonly`;
+const rawToShallowReadonlyFlag = `__v_rawToShallowReadonly`;
+function readonly(target) {
+ return createReadonly(target, false);
+}
+function createReadonly(target, shallow) {
+ if (!isPlainObject(target)) {
+ {
+ if (isArray(target)) {
+ warn$2(`Vue 2 does not support readonly arrays.`);
+ }
+ else if (isCollectionType(target)) {
+ warn$2(`Vue 2 does not support readonly collection types such as Map or Set.`);
+ }
+ else {
+ warn$2(`value cannot be made readonly: ${typeof target}`);
+ }
+ }
+ return target;
+ }
+ if (!Object.isExtensible(target)) {
+ warn$2(`Vue 2 does not support creating readonly proxy for non-extensible object.`);
+ }
+ // already a readonly object
+ if (isReadonly(target)) {
+ return target;
+ }
+ // already has a readonly proxy
+ const existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;
+ const existingProxy = target[existingFlag];
+ if (existingProxy) {
+ return existingProxy;
+ }
+ const proxy = Object.create(Object.getPrototypeOf(target));
+ def(target, existingFlag, proxy);
+ def(proxy, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, true);
+ def(proxy, "__v_raw" /* ReactiveFlags.RAW */, target);
+ if (isRef(target)) {
+ def(proxy, RefFlag, true);
+ }
+ if (shallow || isShallow(target)) {
+ def(proxy, "__v_isShallow" /* ReactiveFlags.IS_SHALLOW */, true);
+ }
+ const keys = Object.keys(target);
+ for (let i = 0; i < keys.length; i++) {
+ defineReadonlyProperty(proxy, target, keys[i], shallow);
+ }
+ return proxy;
+}
+function defineReadonlyProperty(proxy, target, key, shallow) {
+ Object.defineProperty(proxy, key, {
+ enumerable: true,
+ configurable: true,
+ get() {
+ const val = target[key];
+ return shallow || !isPlainObject(val) ? val : readonly(val);
+ },
+ set() {
+ warn$2(`Set operation on key "${key}" failed: target is readonly.`);
+ }
+ });
+}
+/**
+ * Returns a reactive-copy of the original object, where only the root level
+ * properties are readonly, and does NOT unwrap refs nor recursively convert
+ * returned properties.
+ * This is used for creating the props proxy object for stateful components.
+ */
+function shallowReadonly(target) {
+ return createReadonly(target, true);
+}
+
+function computed(getterOrOptions, debugOptions) {
+ let getter;
+ let setter;
+ const onlyGetter = isFunction(getterOrOptions);
+ if (onlyGetter) {
+ getter = getterOrOptions;
+ setter = () => {
+ warn$2('Write operation failed: computed value is readonly');
+ }
+ ;
+ }
+ else {
+ getter = getterOrOptions.get;
+ setter = getterOrOptions.set;
+ }
+ const watcher = isServerRendering()
+ ? null
+ : new Watcher(currentInstance, getter, noop, { lazy: true });
+ if (watcher && debugOptions) {
+ watcher.onTrack = debugOptions.onTrack;
+ watcher.onTrigger = debugOptions.onTrigger;
+ }
+ const ref = {
+ // some libs rely on the presence effect for checking computed refs
+ // from normal refs, but the implementation doesn't matter
+ effect: watcher,
+ get value() {
+ if (watcher) {
+ if (watcher.dirty) {
+ watcher.evaluate();
+ }
+ if (Dep.target) {
+ if (Dep.target.onTrack) {
+ Dep.target.onTrack({
+ effect: Dep.target,
+ target: ref,
+ type: "get" /* TrackOpTypes.GET */,
+ key: 'value'
+ });
+ }
+ watcher.depend();
+ }
+ return watcher.value;
+ }
+ else {
+ return getter();
+ }
+ },
+ set value(newVal) {
+ setter(newVal);
+ }
+ };
+ def(ref, RefFlag, true);
+ def(ref, "__v_isReadonly" /* ReactiveFlags.IS_READONLY */, onlyGetter);
+ return ref;
+}
+
+let mark;
+let measure;
+{
+ const perf = inBrowser && window.performance;
+ /* istanbul ignore if */
+ if (perf &&
+ // @ts-ignore
+ perf.mark &&
+ // @ts-ignore
+ perf.measure &&
+ // @ts-ignore
+ perf.clearMarks &&
+ // @ts-ignore
+ perf.clearMeasures) {
+ mark = tag => perf.mark(tag);
+ measure = (name, startTag, endTag) => {
+ perf.measure(name, startTag, endTag);
+ perf.clearMarks(startTag);
+ perf.clearMarks(endTag);
+ // perf.clearMeasures(name)
+ };
+ }
+}
+
+const normalizeEvent = cached((name) => {
+ const passive = name.charAt(0) === '&';
+ name = passive ? name.slice(1) : name;
+ const once = name.charAt(0) === '~'; // Prefixed last, checked first
+ name = once ? name.slice(1) : name;
+ const capture = name.charAt(0) === '!';
+ name = capture ? name.slice(1) : name;
+ return {
+ name,
+ once,
+ capture,
+ passive
+ };
+});
+function createFnInvoker(fns, vm) {
+ function invoker() {
+ const fns = invoker.fns;
+ if (isArray(fns)) {
+ const cloned = fns.slice();
+ for (let i = 0; i < cloned.length; i++) {
+ invokeWithErrorHandling(cloned[i], null, arguments, vm, `v-on handler`);
+ }
+ }
+ else {
+ // return handler return value for single handlers
+ return invokeWithErrorHandling(fns, null, arguments, vm, `v-on handler`);
+ }
+ }
+ invoker.fns = fns;
+ return invoker;
+}
+function updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {
+ let name, cur, old, event;
+ for (name in on) {
+ cur = on[name];
+ old = oldOn[name];
+ event = normalizeEvent(name);
+ if (isUndef(cur)) {
+ warn$2(`Invalid handler for event "${event.name}": got ` + String(cur), vm);
+ }
+ else if (isUndef(old)) {
+ if (isUndef(cur.fns)) {
+ cur = on[name] = createFnInvoker(cur, vm);
+ }
+ if (isTrue(event.once)) {
+ cur = on[name] = createOnceHandler(event.name, cur, event.capture);
+ }
+ add(event.name, cur, event.capture, event.passive, event.params);
+ }
+ else if (cur !== old) {
+ old.fns = cur;
+ on[name] = old;
+ }
+ }
+ for (name in oldOn) {
+ if (isUndef(on[name])) {
+ event = normalizeEvent(name);
+ remove(event.name, oldOn[name], event.capture);
+ }
+ }
+}
+
+function mergeVNodeHook(def, hookKey, hook) {
+ if (def instanceof VNode) {
+ def = def.data.hook || (def.data.hook = {});
+ }
+ let invoker;
+ const oldHook = def[hookKey];
+ function wrappedHook() {
+ hook.apply(this, arguments);
+ // important: remove merged hook to ensure it's called only once
+ // and prevent memory leak
+ remove$2(invoker.fns, wrappedHook);
+ }
+ if (isUndef(oldHook)) {
+ // no existing hook
+ invoker = createFnInvoker([wrappedHook]);
+ }
+ else {
+ /* istanbul ignore if */
+ if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {
+ // already a merged invoker
+ invoker = oldHook;
+ invoker.fns.push(wrappedHook);
+ }
+ else {
+ // existing plain hook
+ invoker = createFnInvoker([oldHook, wrappedHook]);
+ }
+ }
+ invoker.merged = true;
+ def[hookKey] = invoker;
+}
+
+function extractPropsFromVNodeData(data, Ctor, tag) {
+ // we are only extracting raw values here.
+ // validation and default values are handled in the child
+ // component itself.
+ const propOptions = Ctor.options.props;
+ if (isUndef(propOptions)) {
+ return;
+ }
+ const res = {};
+ const { attrs, props } = data;
+ if (isDef(attrs) || isDef(props)) {
+ for (const key in propOptions) {
+ const altKey = hyphenate(key);
+ {
+ const keyInLowerCase = key.toLowerCase();
+ if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {
+ tip(`Prop "${keyInLowerCase}" is passed to component ` +
+ `${formatComponentName(
+ // @ts-expect-error tag is string
+ tag || Ctor)}, but the declared prop name is` +
+ ` "${key}". ` +
+ `Note that HTML attributes are case-insensitive and camelCased ` +
+ `props need to use their kebab-case equivalents when using in-DOM ` +
+ `templates. You should probably use "${altKey}" instead of "${key}".`);
+ }
+ }
+ checkProp(res, props, key, altKey, true) ||
+ checkProp(res, attrs, key, altKey, false);
+ }
+ }
+ return res;
+}
+function checkProp(res, hash, key, altKey, preserve) {
+ if (isDef(hash)) {
+ if (hasOwn(hash, key)) {
+ res[key] = hash[key];
+ if (!preserve) {
+ delete hash[key];
+ }
+ return true;
+ }
+ else if (hasOwn(hash, altKey)) {
+ res[key] = hash[altKey];
+ if (!preserve) {
+ delete hash[altKey];
+ }
+ return true;
+ }
+ }
+ return false;
+}
+
+// The template compiler attempts to minimize the need for normalization by
+// statically analyzing the template at compile time.
+//
+// For plain HTML markup, normalization can be completely skipped because the
+// generated render function is guaranteed to return Array. There are
+// two cases where extra normalization is needed:
+// 1. When the children contains components - because a functional component
+// may return an Array instead of a single root. In this case, just a simple
+// normalization is needed - if any child is an Array, we flatten the whole
+// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep
+// because functional components already normalize their own children.
+function simpleNormalizeChildren(children) {
+ for (let i = 0; i < children.length; i++) {
+ if (isArray(children[i])) {
+ return Array.prototype.concat.apply([], children);
+ }
+ }
+ return children;
+}
+// 2. When the children contains constructs that always generated nested Arrays,
+// e.g. , , v-for, or when the children is provided by user
+// with hand-written render functions / JSX. In such cases a full normalization
+// is needed to cater to all possible types of children values.
+function normalizeChildren(children) {
+ return isPrimitive(children)
+ ? [createTextVNode(children)]
+ : isArray(children)
+ ? normalizeArrayChildren(children)
+ : undefined;
+}
+function isTextNode(node) {
+ return isDef(node) && isDef(node.text) && isFalse(node.isComment);
+}
+function normalizeArrayChildren(children, nestedIndex) {
+ const res = [];
+ let i, c, lastIndex, last;
+ for (i = 0; i < children.length; i++) {
+ c = children[i];
+ if (isUndef(c) || typeof c === 'boolean')
+ continue;
+ lastIndex = res.length - 1;
+ last = res[lastIndex];
+ // nested
+ if (isArray(c)) {
+ if (c.length > 0) {
+ c = normalizeArrayChildren(c, `${nestedIndex || ''}_${i}`);
+ // merge adjacent text nodes
+ if (isTextNode(c[0]) && isTextNode(last)) {
+ res[lastIndex] = createTextVNode(last.text + c[0].text);
+ c.shift();
+ }
+ res.push.apply(res, c);
+ }
+ }
+ else if (isPrimitive(c)) {
+ if (isTextNode(last)) {
+ // merge adjacent text nodes
+ // this is necessary for SSR hydration because text nodes are
+ // essentially merged when rendered to HTML strings
+ res[lastIndex] = createTextVNode(last.text + c);
+ }
+ else if (c !== '') {
+ // convert primitive to vnode
+ res.push(createTextVNode(c));
+ }
+ }
+ else {
+ if (isTextNode(c) && isTextNode(last)) {
+ // merge adjacent text nodes
+ res[lastIndex] = createTextVNode(last.text + c.text);
+ }
+ else {
+ // default key for nested array children (likely generated by v-for)
+ if (isTrue(children._isVList) &&
+ isDef(c.tag) &&
+ isUndef(c.key) &&
+ isDef(nestedIndex)) {
+ c.key = `__vlist${nestedIndex}_${i}__`;
+ }
+ res.push(c);
+ }
+ }
+ }
+ return res;
+}
+
+const SIMPLE_NORMALIZE = 1;
+const ALWAYS_NORMALIZE = 2;
+// wrapper function for providing a more flexible interface
+// without getting yelled at by flow
+function createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {
+ if (isArray(data) || isPrimitive(data)) {
+ normalizationType = children;
+ children = data;
+ data = undefined;
+ }
+ if (isTrue(alwaysNormalize)) {
+ normalizationType = ALWAYS_NORMALIZE;
+ }
+ return _createElement(context, tag, data, children, normalizationType);
+}
+function _createElement(context, tag, data, children, normalizationType) {
+ if (isDef(data) && isDef(data.__ob__)) {
+ warn$2(`Avoid using observed data object as vnode data: ${JSON.stringify(data)}\n` + 'Always create fresh vnode data objects in each render!', context);
+ return createEmptyVNode();
+ }
+ // object syntax in v-bind
+ if (isDef(data) && isDef(data.is)) {
+ tag = data.is;
+ }
+ if (!tag) {
+ // in case of component :is set to falsy value
+ return createEmptyVNode();
+ }
+ // warn against non-primitive key
+ if (isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {
+ warn$2('Avoid using non-primitive value as key, ' +
+ 'use string/number value instead.', context);
+ }
+ // support single function children as default scoped slot
+ if (isArray(children) && isFunction(children[0])) {
+ data = data || {};
+ data.scopedSlots = { default: children[0] };
+ children.length = 0;
+ }
+ if (normalizationType === ALWAYS_NORMALIZE) {
+ children = normalizeChildren(children);
+ }
+ else if (normalizationType === SIMPLE_NORMALIZE) {
+ children = simpleNormalizeChildren(children);
+ }
+ let vnode, ns;
+ if (typeof tag === 'string') {
+ let Ctor;
+ ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);
+ if (config.isReservedTag(tag)) {
+ // platform built-in elements
+ if (isDef(data) &&
+ isDef(data.nativeOn) &&
+ data.tag !== 'component') {
+ warn$2(`The .native modifier for v-on is only valid on components but it was used on <${tag}>.`, context);
+ }
+ vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);
+ }
+ else if ((!data || !data.pre) &&
+ isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {
+ // component
+ vnode = createComponent(Ctor, data, context, children, tag);
+ }
+ else {
+ // unknown or unlisted namespaced elements
+ // check at runtime because it may get assigned a namespace when its
+ // parent normalizes children
+ vnode = new VNode(tag, data, children, undefined, undefined, context);
+ }
+ }
+ else {
+ // direct component options / constructor
+ vnode = createComponent(tag, data, context, children);
+ }
+ if (isArray(vnode)) {
+ return vnode;
+ }
+ else if (isDef(vnode)) {
+ if (isDef(ns))
+ applyNS(vnode, ns);
+ if (isDef(data))
+ registerDeepBindings(data);
+ return vnode;
+ }
+ else {
+ return createEmptyVNode();
+ }
+}
+function applyNS(vnode, ns, force) {
+ vnode.ns = ns;
+ if (vnode.tag === 'foreignObject') {
+ // use default namespace inside foreignObject
+ ns = undefined;
+ force = true;
+ }
+ if (isDef(vnode.children)) {
+ for (let i = 0, l = vnode.children.length; i < l; i++) {
+ const child = vnode.children[i];
+ if (isDef(child.tag) &&
+ (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {
+ applyNS(child, ns, force);
+ }
+ }
+ }
+}
+// ref #5318
+// necessary to ensure parent re-render when deep bindings like :style and
+// :class are used on slot nodes
+function registerDeepBindings(data) {
+ if (isObject(data.style)) {
+ traverse(data.style);
+ }
+ if (isObject(data.class)) {
+ traverse(data.class);
+ }
+}
+
+/**
+ * Runtime helper for rendering v-for lists.
+ */
+function renderList(val, render) {
+ let ret = null, i, l, keys, key;
+ if (isArray(val) || typeof val === 'string') {
+ ret = new Array(val.length);
+ for (i = 0, l = val.length; i < l; i++) {
+ ret[i] = render(val[i], i);
+ }
+ }
+ else if (typeof val === 'number') {
+ ret = new Array(val);
+ for (i = 0; i < val; i++) {
+ ret[i] = render(i + 1, i);
+ }
+ }
+ else if (isObject(val)) {
+ if (hasSymbol && val[Symbol.iterator]) {
+ ret = [];
+ const iterator = val[Symbol.iterator]();
+ let result = iterator.next();
+ while (!result.done) {
+ ret.push(render(result.value, ret.length));
+ result = iterator.next();
+ }
+ }
+ else {
+ keys = Object.keys(val);
+ ret = new Array(keys.length);
+ for (i = 0, l = keys.length; i < l; i++) {
+ key = keys[i];
+ ret[i] = render(val[key], key, i);
+ }
+ }
+ }
+ if (!isDef(ret)) {
+ ret = [];
+ }
+ ret._isVList = true;
+ return ret;
+}
+
+/**
+ * Runtime helper for rendering
+ */
+function renderSlot(name, fallbackRender, props, bindObject) {
+ const scopedSlotFn = this.$scopedSlots[name];
+ let nodes;
+ if (scopedSlotFn) {
+ // scoped slot
+ props = props || {};
+ if (bindObject) {
+ if (!isObject(bindObject)) {
+ warn$2('slot v-bind without argument expects an Object', this);
+ }
+ props = extend(extend({}, bindObject), props);
+ }
+ nodes =
+ scopedSlotFn(props) ||
+ (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
+ }
+ else {
+ nodes =
+ this.$slots[name] ||
+ (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);
+ }
+ const target = props && props.slot;
+ if (target) {
+ return this.$createElement('template', { slot: target }, nodes);
+ }
+ else {
+ return nodes;
+ }
+}
+
+/**
+ * Runtime helper for resolving filters
+ */
+function resolveFilter(id) {
+ return resolveAsset(this.$options, 'filters', id, true) || identity;
+}
+
+function isKeyNotMatch(expect, actual) {
+ if (isArray(expect)) {
+ return expect.indexOf(actual) === -1;
+ }
+ else {
+ return expect !== actual;
+ }
+}
+/**
+ * Runtime helper for checking keyCodes from config.
+ * exposed as Vue.prototype._k
+ * passing in eventKeyName as last argument separately for backwards compat
+ */
+function checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {
+ const mappedKeyCode = config.keyCodes[key] || builtInKeyCode;
+ if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {
+ return isKeyNotMatch(builtInKeyName, eventKeyName);
+ }
+ else if (mappedKeyCode) {
+ return isKeyNotMatch(mappedKeyCode, eventKeyCode);
+ }
+ else if (eventKeyName) {
+ return hyphenate(eventKeyName) !== key;
+ }
+ return eventKeyCode === undefined;
+}
+
+/**
+ * Runtime helper for merging v-bind="object" into a VNode's data.
+ */
+function bindObjectProps(data, tag, value, asProp, isSync) {
+ if (value) {
+ if (!isObject(value)) {
+ warn$2('v-bind without argument expects an Object or Array value', this);
+ }
+ else {
+ if (isArray(value)) {
+ value = toObject(value);
+ }
+ let hash;
+ for (const key in value) {
+ if (key === 'class' || key === 'style' || isReservedAttribute(key)) {
+ hash = data;
+ }
+ else {
+ const type = data.attrs && data.attrs.type;
+ hash =
+ asProp || config.mustUseProp(tag, type, key)
+ ? data.domProps || (data.domProps = {})
+ : data.attrs || (data.attrs = {});
+ }
+ const camelizedKey = camelize(key);
+ const hyphenatedKey = hyphenate(key);
+ if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {
+ hash[key] = value[key];
+ if (isSync) {
+ const on = data.on || (data.on = {});
+ on[`update:${key}`] = function ($event) {
+ value[key] = $event;
+ };
+ }
+ }
+ }
+ }
+ }
+ return data;
+}
+
+/**
+ * Runtime helper for rendering static trees.
+ */
+function renderStatic(index, isInFor) {
+ const cached = this._staticTrees || (this._staticTrees = []);
+ let tree = cached[index];
+ // if has already-rendered static tree and not inside v-for,
+ // we can reuse the same tree.
+ if (tree && !isInFor) {
+ return tree;
+ }
+ // otherwise, render a fresh tree.
+ tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, this._c, this // for render fns generated for functional component templates
+ );
+ markStatic$1(tree, `__static__${index}`, false);
+ return tree;
+}
+/**
+ * Runtime helper for v-once.
+ * Effectively it means marking the node as static with a unique key.
+ */
+function markOnce(tree, index, key) {
+ markStatic$1(tree, `__once__${index}${key ? `_${key}` : ``}`, true);
+ return tree;
+}
+function markStatic$1(tree, key, isOnce) {
+ if (isArray(tree)) {
+ for (let i = 0; i < tree.length; i++) {
+ if (tree[i] && typeof tree[i] !== 'string') {
+ markStaticNode(tree[i], `${key}_${i}`, isOnce);
+ }
+ }
+ }
+ else {
+ markStaticNode(tree, key, isOnce);
+ }
+}
+function markStaticNode(node, key, isOnce) {
+ node.isStatic = true;
+ node.key = key;
+ node.isOnce = isOnce;
+}
+
+function bindObjectListeners(data, value) {
+ if (value) {
+ if (!isPlainObject(value)) {
+ warn$2('v-on without argument expects an Object value', this);
+ }
+ else {
+ const on = (data.on = data.on ? extend({}, data.on) : {});
+ for (const key in value) {
+ const existing = on[key];
+ const ours = value[key];
+ on[key] = existing ? [].concat(existing, ours) : ours;
+ }
+ }
+ }
+ return data;
+}
+
+function resolveScopedSlots(fns, res,
+// the following are added in 2.6
+hasDynamicKeys, contentHashKey) {
+ res = res || { $stable: !hasDynamicKeys };
+ for (let i = 0; i < fns.length; i++) {
+ const slot = fns[i];
+ if (isArray(slot)) {
+ resolveScopedSlots(slot, res, hasDynamicKeys);
+ }
+ else if (slot) {
+ // marker for reverse proxying v-slot without scope on this.$slots
+ // @ts-expect-error
+ if (slot.proxy) {
+ // @ts-expect-error
+ slot.fn.proxy = true;
+ }
+ res[slot.key] = slot.fn;
+ }
+ }
+ if (contentHashKey) {
+ res.$key = contentHashKey;
+ }
+ return res;
+}
+
+// helper to process dynamic keys for dynamic arguments in v-bind and v-on.
+function bindDynamicKeys(baseObj, values) {
+ for (let i = 0; i < values.length; i += 2) {
+ const key = values[i];
+ if (typeof key === 'string' && key) {
+ baseObj[values[i]] = values[i + 1];
+ }
+ else if (key !== '' && key !== null) {
+ // null is a special value for explicitly removing a binding
+ warn$2(`Invalid value for dynamic directive argument (expected string or null): ${key}`, this);
+ }
+ }
+ return baseObj;
+}
+// helper to dynamically append modifier runtime markers to event names.
+// ensure only append when value is already string, otherwise it will be cast
+// to string and cause the type check to miss.
+function prependModifier(value, symbol) {
+ return typeof value === 'string' ? symbol + value : value;
+}
+
+function installRenderHelpers(target) {
+ target._o = markOnce;
+ target._n = toNumber;
+ target._s = toString;
+ target._l = renderList;
+ target._t = renderSlot;
+ target._q = looseEqual;
+ target._i = looseIndexOf;
+ target._m = renderStatic;
+ target._f = resolveFilter;
+ target._k = checkKeyCodes;
+ target._b = bindObjectProps;
+ target._v = createTextVNode;
+ target._e = createEmptyVNode;
+ target._u = resolveScopedSlots;
+ target._g = bindObjectListeners;
+ target._d = bindDynamicKeys;
+ target._p = prependModifier;
+}
+
+/**
+ * Runtime helper for resolving raw children VNodes into a slot object.
+ */
+function resolveSlots(children, context) {
+ if (!children || !children.length) {
+ return {};
+ }
+ const slots = {};
+ for (let i = 0, l = children.length; i < l; i++) {
+ const child = children[i];
+ const data = child.data;
+ // remove slot attribute if the node is resolved as a Vue slot node
+ if (data && data.attrs && data.attrs.slot) {
+ delete data.attrs.slot;
+ }
+ // named slots should only be respected if the vnode was rendered in the
+ // same context.
+ if ((child.context === context || child.fnContext === context) &&
+ data &&
+ data.slot != null) {
+ const name = data.slot;
+ const slot = slots[name] || (slots[name] = []);
+ if (child.tag === 'template') {
+ slot.push.apply(slot, child.children || []);
+ }
+ else {
+ slot.push(child);
+ }
+ }
+ else {
+ (slots.default || (slots.default = [])).push(child);
+ }
+ }
+ // ignore slots that contains only whitespace
+ for (const name in slots) {
+ if (slots[name].every(isWhitespace)) {
+ delete slots[name];
+ }
+ }
+ return slots;
+}
+function isWhitespace(node) {
+ return (node.isComment && !node.asyncFactory) || node.text === ' ';
+}
+
+function isAsyncPlaceholder(node) {
+ // @ts-expect-error not really boolean type
+ return node.isComment && node.asyncFactory;
+}
+
+function normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {
+ let res;
+ const hasNormalSlots = Object.keys(normalSlots).length > 0;
+ const isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;
+ const key = scopedSlots && scopedSlots.$key;
+ if (!scopedSlots) {
+ res = {};
+ }
+ else if (scopedSlots._normalized) {
+ // fast path 1: child component re-render only, parent did not change
+ return scopedSlots._normalized;
+ }
+ else if (isStable &&
+ prevScopedSlots &&
+ prevScopedSlots !== emptyObject &&
+ key === prevScopedSlots.$key &&
+ !hasNormalSlots &&
+ !prevScopedSlots.$hasNormal) {
+ // fast path 2: stable scoped slots w/ no normal slots to proxy,
+ // only need to normalize once
+ return prevScopedSlots;
+ }
+ else {
+ res = {};
+ for (const key in scopedSlots) {
+ if (scopedSlots[key] && key[0] !== '$') {
+ res[key] = normalizeScopedSlot(ownerVm, normalSlots, key, scopedSlots[key]);
+ }
+ }
+ }
+ // expose normal slots on scopedSlots
+ for (const key in normalSlots) {
+ if (!(key in res)) {
+ res[key] = proxyNormalSlot(normalSlots, key);
+ }
+ }
+ // avoriaz seems to mock a non-extensible $scopedSlots object
+ // and when that is passed down this would cause an error
+ if (scopedSlots && Object.isExtensible(scopedSlots)) {
+ scopedSlots._normalized = res;
+ }
+ def(res, '$stable', isStable);
+ def(res, '$key', key);
+ def(res, '$hasNormal', hasNormalSlots);
+ return res;
+}
+function normalizeScopedSlot(vm, normalSlots, key, fn) {
+ const normalized = function () {
+ const cur = currentInstance;
+ setCurrentInstance(vm);
+ let res = arguments.length ? fn.apply(null, arguments) : fn({});
+ res =
+ res && typeof res === 'object' && !isArray(res)
+ ? [res] // single vnode
+ : normalizeChildren(res);
+ const vnode = res && res[0];
+ setCurrentInstance(cur);
+ return res &&
+ (!vnode ||
+ (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391
+ ? undefined
+ : res;
+ };
+ // this is a slot using the new v-slot syntax without scope. although it is
+ // compiled as a scoped slot, render fn users would expect it to be present
+ // on this.$slots because the usage is semantically a normal slot.
+ if (fn.proxy) {
+ Object.defineProperty(normalSlots, key, {
+ get: normalized,
+ enumerable: true,
+ configurable: true
+ });
+ }
+ return normalized;
+}
+function proxyNormalSlot(slots, key) {
+ return () => slots[key];
+}
+
+function initSetup(vm) {
+ const options = vm.$options;
+ const setup = options.setup;
+ if (setup) {
+ const ctx = (vm._setupContext = createSetupContext(vm));
+ setCurrentInstance(vm);
+ pushTarget();
+ const setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, `setup`);
+ popTarget();
+ setCurrentInstance();
+ if (isFunction(setupResult)) {
+ // render function
+ // @ts-ignore
+ options.render = setupResult;
+ }
+ else if (isObject(setupResult)) {
+ // bindings
+ if (setupResult instanceof VNode) {
+ warn$2(`setup() should not return VNodes directly - ` +
+ `return a render function instead.`);
+ }
+ vm._setupState = setupResult;
+ // __sfc indicates compiled bindings from