import{I as n,c as r}from"./index-XmYygNaN.chunk.mjs";import{d as o}from"./vue.runtime.esm-Ct3_M7aQ.chunk.mjs";import{n as s,t}from"./index-DdKmqUaK-NQ7_BNiW.chunk.mjs";import{N as l}from"./NcDialog-CKgpZOiy-CXdJfNRY.chunk.mjs";import{a as m}from"./NcTextField-o_8gWurX-CxkFvEFl.chunk.mjs";import{N as c}from"./NcNoteCard-D7VEzlBl.chunk.mjs";import"./preload-helper-Dh9HmuEY.chunk.mjs";import"./index-C9rtWdw7.chunk.mjs";import"./index-_ghYQSTa.chunk.mjs";import"./useHotKey-DJHjuzLO.chunk.mjs";import"./NcActionButton-CuVNJJtW-CEi2d87B.chunk.mjs";import"./NcProgressBar-DegJ2JjE-DzzBssTP.chunk.mjs";import"./index-BDo9Roh6.chunk.mjs";import"./dialog-DMSB8C_5.chunk.mjs";import"./useModelMigration-EhAWvqDD-wVDp4GUR.chunk.mjs";import"./video-BrTIeaIo.chunk.mjs";const d=o({components:{NcDialog:l,NcNoteCard:c,NcTextField:m},props:{error:{type:n,required:!0},validateFilename:{type:Function,required:!0}},setup(){return{t}},data(){return{newName:"",validationError:""}},computed:{isValidName(){return this.validationError===""},isInvalidFileType(){return this.error.reason===r.Extension&&this.error.segment.match(/^\.\w/)!==null},canRename(){return!this.isInvalidFileType},dialogButtons(){const e=[{label:t("Cancel"),type:"error",callback:()=>{this.$emit("close",{cancel:!0})}},{label:t("Skip"),callback:()=>{this.$emit("close",{skip:!0})}}];return this.canRename&&e.push({label:t("Rename"),type:"primary",disabled:!this.isValidName,callback:()=>{this.$emit("close",{rename:this.newName.trimEnd()})}}),e}},watch:{error:{handler(){this.validationError=this.getErrorText(this.error),this.newName=this.error.filename},immediate:!0},newName(){try{this.validateFilename(this.newName.trimEnd()),this.validationError=""}catch(e){this.validationError=this.getErrorText(e)}finally{const e=this.$refs.textfield?.$el.querySelector("input");e&&(e.setCustomValidity(this.validationError),e.reportValidity())}}},methods:{getErrorText(e){switch(e.reason){case r.Character:return t('"{segment}" is not allowed inside a file or folder name.',{segment:e.segment});case r.ReservedName:return t('"{segment}" is a forbidden file or folder name.',{segment:e.segment});case r.Extension:return e.segment.match(/\.\w/)?t('"{segment}" is a forbidden file type.',{segment:e.segment}):t('Filenames must not end with "{segment}".',{segment:e.segment})}}}});var p=function(){var e=this,i=e._self._c;return e._self._setupProxy,i("NcDialog",{attrs:{buttons:e.dialogButtons,name:e.t("Invalid filename")},on:{close:function(a){return e.$emit("close",{cancel:!0})}}},[i("NcNoteCard",{attrs:{severity:"error"}},[e._v(" "+e._s(e.getErrorText(e.error))+" "+e._s(e.t("You can either rename the file, skip this file or cancel the whole operation."))+" ")]),e.canRename?i("NcTextField",{ref:"textfield",staticClass:"invalid-filename-dialog__input",attrs:{error:!e.isValidName,"helper-text":e.validationError,label:e.t("New filename"),value:e.newName},on:{"update:value":function(a){e.newName=a}}}):e._e()],1)},h=[],u=s(d,p,h,!1,null,"3a479259");const V=u.exports;export{V as default};
//# sourceMappingURL=InvalidFilenameDialog-BYpqWa7P-CH608PE4.chunk.mjs.map
