@nextcloud/vue
Version:
Nextcloud vue components
2 lines (1 loc) • 7.7 kB
JavaScript
var L=require("../assets/index31.css");const r=require("./NcActions.cjs"),u=require("./NcActionButton.cjs"),c=require("./NcLoadingIcon.cjs"),p=require("./NcVNodes.cjs"),d=require("./NcButton.cjs"),a=require("../chunks/l10n-46d0c1c0.cjs"),h=require("vue-material-design-icons/ChevronDown.vue"),f=require("vue-material-design-icons/ChevronUp.vue"),o=require("../chunks/_plugin-vue2_normalizer-764a4c12.cjs"),g=require("../Mixins/isMobile.cjs"),m=require("../chunks/NcInputConfirmCancel-77c2b04f.cjs"),y=require("../chunks/GenRandomId-67df40eb.cjs"),v=require("vue-material-design-icons/Pencil.vue"),_=require("vue-material-design-icons/Undo.vue");const C={name:"NcAppNavigationIconCollapsible",components:{NcButton:d,ChevronDown:h,ChevronUp:f},props:{open:{type:Boolean,default:!0}},emits:["click"],computed:{labelButton(){return this.open?a.t("Collapse menu"):a.t("Open menu")}},methods:{onClick(e){this.$emit("click",e)}}};var b=function(){var e=this,t=e._self._c;return t("NcButton",{staticClass:"icon-collapse",class:{"icon-collapse--open":e.open},attrs:{type:"tertiary","aria-label":e.labelButton},on:{click:e.onClick},scopedSlots:e._u([{key:"icon",fn:function(){return[e.open?t("ChevronUp",{attrs:{size:20}}):t("ChevronDown",{attrs:{size:20}})]},proxy:!0}])})},k=[],A=o.normalizeComponent(C,b,k,!1,null,"07582bf6",null,null);const B=A.exports;const N={name:"NcAppNavigationItem",components:{NcActions:r,NcActionButton:u,NcAppNavigationIconCollapsible:B,NcInputConfirmCancel:m.NcInputConfirmCancel,NcLoadingIcon:c,NcVNodes:p,Pencil:v,Undo:_},mixins:[g],props:{name:{type:String,required:!0},title:{type:String,default:null},id:{type:String,default:()=>"app-navigation-item-"+y.GenRandomId(),validator:e=>e.trim()!==""},icon:{type:String,default:""},loading:{type:Boolean,default:!1},to:{type:[String,Object],default:null},href:{type:String,default:null},exact:{type:Boolean,default:!1},allowCollapse:{type:Boolean,default:!1},editable:{type:Boolean,default:!1},editLabel:{type:String,default:""},editPlaceholder:{type:String,default:""},pinned:{type:Boolean,default:!1},undo:{type:Boolean,default:!1},open:{type:Boolean,default:!1},menuOpen:{type:Boolean,default:!1},forceMenu:{type:Boolean,default:!1},menuIcon:{type:String,default:void 0},menuPlacement:{type:String,default:"bottom"},ariaDescription:{type:String,default:null},forceDisplayActions:{type:Boolean,default:!1},inlineActions:{type:Number,default:0}},emits:["update:menuOpen","update:open","update:name","click","undo"],data(){return{editingValue:"",opened:this.open,editingActive:!1,hasChildren:!1,menuOpenLocalValue:!1,focused:!1}},computed:{isRouterLink(){return this.to&&!this.href},collapsible(){return this.allowCollapse&&!!this.$slots.default},canHaveChildren(){return this.$parent.$options._componentTag!=="AppNavigationItem"},hasUtils(){return!!(this.$slots.actions||this.$slots.counter||this.editable||this.undo)},editButtonAriaLabel(){return this.editLabel?this.editLabel:a.t("Edit item")},undoButtonAriaLabel(){return a.t("Undo changes")},actionsBoundariesElement(){return document.querySelector("#content-vue")||void 0}},watch:{open(e){this.opened=e}},created(){this.updateSlotInfo()},beforeUpdate(){this.updateSlotInfo()},methods:{onMenuToggle(e){this.$emit("update:menuOpen",e),this.menuOpenLocalValue=e},toggleCollapse(){this.opened=!this.opened,this.$emit("update:open",this.opened)},onClick(e,t,i){this.$emit("click",e),!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&i&&(t==null||t(e),e.preventDefault())},handleEdit(){this.editingValue=this.name,this.editingActive=!0,this.onMenuToggle(!1),this.$nextTick(()=>{this.$refs.editingInput.focusInput()})},cancelEditing(){this.editingActive=!1},handleEditingDone(){this.$emit("update:name",this.editingValue),this.editingValue="",this.editingActive=!1},handleUndo(){this.$emit("undo")},updateSlotInfo(){this.hasChildren=!!this.$slots.default},handleFocus(){this.focused=!0},handleBlur(){this.focused=!1},handleTab(e){this.$refs.actions&&(this.focused?(e.preventDefault(),this.$refs.actions.$refs.menuButton.$el.focus(),this.focused=!1):this.$refs.actions.$refs.menuButton.$el.blur())},isExternal(e){return e&&e.match(/[a-z]+:\/\//i)}}};var $=function(){var e=this,t=e._self._c;return t("li",{staticClass:"app-navigation-entry-wrapper",class:{"app-navigation-entry--opened":e.opened,"app-navigation-entry--pinned":e.pinned,"app-navigation-entry--collapsible":e.collapsible},attrs:{id:e.id}},[t(e.isRouterLink?"router-link":"NcVNodes",{tag:"component",attrs:{custom:!!e.isRouterLink,to:e.to,exact:e.isRouterLink?e.exact:null},scopedSlots:e._u([{key:"default",fn:function({href:i,navigate:l,isActive:s}){return[t("div",{staticClass:"app-navigation-entry",class:{"app-navigation-entry--editing":e.editingActive,"app-navigation-entry--deleted":e.undo,active:s&&e.to}},[e.undo?e._e():t("a",{staticClass:"app-navigation-entry-link",attrs:{"aria-description":e.ariaDescription,"aria-expanded":e.opened.toString(),href:e.href||i||"#",target:e.isExternal(e.href)?"_blank":"",title:e.title||e.name},on:{blur:e.handleBlur,click:function(n){return e.onClick(n,l,i)},focus:e.handleFocus,keydown:function(n){return!n.type.indexOf("key")&&e._k(n.keyCode,"tab",9,n.key,"Tab")||n.ctrlKey||n.shiftKey||n.altKey||n.metaKey?null:e.handleTab.apply(null,arguments)}}},[t("div",{staticClass:"app-navigation-entry-icon",class:{[e.icon]:e.icon}},[e.loading?t("NcLoadingIcon"):e._t("icon")],2),e.editingActive?e._e():t("span",{staticClass:"app-navigation-entry__name"},[e._v(" "+e._s(e.name)+" ")]),e.editingActive?t("div",{staticClass:"editingContainer"},[t("NcInputConfirmCancel",{ref:"editingInput",attrs:{placeholder:e.editPlaceholder!==""?e.editPlaceholder:e.name},on:{cancel:e.cancelEditing,confirm:e.handleEditingDone},model:{value:e.editingValue,callback:function(n){e.editingValue=n},expression:"editingValue"}})],1):e._e()]),e.undo?t("div",{staticClass:"app-navigation-entry__deleted"},[t("div",{staticClass:"app-navigation-entry__deleted-description"},[e._v(" "+e._s(e.name)+" ")])]):e._e(),e.hasUtils&&!e.editingActive?t("div",{staticClass:"app-navigation-entry__utils",class:{"app-navigation-entry__utils--display-actions":e.forceDisplayActions||e.menuOpenLocalValue||e.menuOpen}},[e.$slots.counter?t("div",{staticClass:"app-navigation-entry__counter-wrapper"},[e._t("counter")],2):e._e(),e.$slots.actions||e.editable&&!e.editingActive||e.undo?t("NcActions",{ref:"actions",staticClass:"app-navigation-entry__actions",attrs:{inline:e.inlineActions,container:"#app-navigation-vue","boundaries-element":e.actionsBoundariesElement,placement:e.menuPlacement,open:e.menuOpen,"force-menu":e.forceMenu,"default-icon":e.menuIcon},on:{"update:open":e.onMenuToggle},scopedSlots:e._u([{key:"icon",fn:function(){return[e._t("menu-icon")]},proxy:!0}],null,!0)},[e.editable&&!e.editingActive?t("NcActionButton",{attrs:{"aria-label":e.editButtonAriaLabel},on:{click:e.handleEdit},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Pencil",{attrs:{size:20}})]},proxy:!0}],null,!0)},[e._v(" "+e._s(e.editLabel)+" ")]):e._e(),e.undo?t("NcActionButton",{attrs:{"aria-label":e.undoButtonAriaLabel},on:{click:e.handleUndo},scopedSlots:e._u([{key:"icon",fn:function(){return[t("Undo",{attrs:{size:20}})]},proxy:!0}],null,!0)}):e._e(),e._t("actions")],2):e._e()],1):e._e(),e.collapsible?t("NcAppNavigationIconCollapsible",{attrs:{open:e.opened},on:{click:function(n){return n.preventDefault(),n.stopPropagation(),e.toggleCollapse.apply(null,arguments)}}}):e._e(),e._t("extra")],2)]}}],null,!0)}),e.canHaveChildren&&e.hasChildren?t("ul",{staticClass:"app-navigation-entry__children"},[e._t("default")],2):e._e()],1)},S=[],I=o.normalizeComponent(N,$,S,!1,null,null,null,null);const x=I.exports;module.exports=x;