generic-skin 2.3.8 → 2.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,4 @@
1
- Vue.component("categoria-foro",{props:["dataId"],computed:{slugName:function(){const n=this.dataId.indexOf("<h2>")>-1?FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0],"-"):FNR.utility.genSlug(this.dataId,"-");return"category-"+n}},template:"\n <section v-bind:class=\"'category-element ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("cabecera-foro",{data:function(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head regular-head">\n <titulo-especial v-bind:data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("cabcategoria-foro",{data:function(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head category-head">\n <titulo-especial v-bind:data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("cabespecial-foro",{data:function(){return{dataTitle:void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text}},template:'\n <div class="forum-head special-head">\n <titulo-especial v-bind:data-title="dataTitle"></titulo-especial>\n </div>\n '}),Vue.component("subforo-foro",{props:["dataId"],computed:{slugId:function(){let n="";return window.location.pathname.match(/f(\d+)-/)?n=window.location.pathname.match(/f(\d+)-/)[1]:window.location.pathname.match(/f(\d+)p(\d+)-/)&&(n=window.location.pathname.match(/f(\d+)p(\d+)-/)[1]),"subforum-"+n},slugName:function(){const n=this.dataId.indexOf("<h2>")>-1?FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0],"-"):FNR.utility.genSlug(this.dataId,"-");return"subforum-"+n}},template:"\n <section v-bind:class=\"'subforum-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("lista-temas-cabecera",{props:["dataElements"],data:function(){return{elementos:JSON.parse(this.dataElements.replace(/'/g,'"'))}},template:'\n <ul class="topiclist-header no-style">\n <li v-for="element in elementos">\n <titulo-especial v-bind:data-title="element"></titulo-especial>\n </li>\n </ul>\n '}),Vue.component("tema-foro",{computed:{slugId:function(){let n="";return window.location.pathname.match(/t(\d+)-/)?n=window.location.pathname.match(/t(\d+)-/)[1]:window.location.pathname.match(/t(\d+)p(\d+)-/)&&(n=window.location.pathname.match(/t(\d+)p(\d+)-/)[1]),"topic-"+n},slugName:function(){const n=FNR.utility.genSlug(void 0===this.$slots.title[0].tag?this.$slots.title[0].text:this.$slots.title[0].children[0].text,"-");return"topic-"+n}},template:"\n <section v-bind:class=\"'topic-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n "}),Vue.component("mando-foro",{props:["dataId","dataApp"],data:function(){return{children:0}},computed:{isStatusClass:function(){return this.children>0?"forum-controls":"forum-controls not-show"}},created(){Object.values(this.$slots).map(n=>{this.children+=n.length})},template:'\n <section v-bind:id="dataId" v-bind:class="isStatusClass">\n <template v-if="dataApp === \'true\'">\n <div class="left page-pagination">\n <slot name="pagination"></slot>\n </div>\n <ul class="right no-style page-buttons">\n <slot name="controls"></slot>\n </ul>\n </template>\n <template v-else>\n <div class="left page-pagination"></div>\n <ul class="right no-style page-buttons"></ul>\n </template>\n </section>\n '}),Vue.component("titulo-especial",{props:["dataTitle"],computed:{cleaned:function(){return this.dataTitle.indexOf("<h2>")>-1?this.dataTitle.split("<h2>")[1].split("</h2>")[0]:this.dataTitle},minimized:function(){return FNR.utility.genSlug(this.cleaned," ")}},template:'\n <h3 class="is-tweakeable"><span class="is-measurable">{{ cleaned }}</span></h3>\n '}),Vue.component("cuerpo-widget",{props:["dataClass"],computed:{currentClass:function(){return void 0===this.dataClass?"plank-inner":"plank-inner "+this.dataClass}},template:'\n <div class="plank-content">\n <div v-bind:class="currentClass">\n <slot></slot>\n </div>\t\t\t\t\t\t \n </div>\n '}),Vue.component("separador-foro",{props:["dataFaction"],data:function(){return{image:forumDefaults.separator}},template:'\n <section class="forumseparator-element">\n <img v-bind:src="image" />\n </section>\n '}),Vue.component("tema-ref",{props:["dataInfo"],data:function(){return{profileName:forumConfig.profileOptions.profileName||"perfil"}},computed:{userColor:function(){return"color: "+this.dataInfo.lastpost.who.color}},template:'\n <div class="ltopic-element">\n <a class="ltopic-last" v-bind:href="dataInfo.lastpost.url" target="_blank" v-bind:title="\'Ir al último mensaje del tema «\' + dataInfo.name + \'»\'">\n <i class="fas fa-link"></i>\n </a>\n <div class="ltopic-data">\n <a class="ltopic-title" v-bind:href="dataInfo.url" target="_blank" v-bind:title="\'Ir al tema «\' + dataInfo.name + \'»\'">{{ dataInfo.name }}</a>\n <small class="ltopic-info"><a v-bind:href="dataInfo.lastpost.who.url" target="_blank" v-bind:style="userColor" v-bind:title="\'Ir al \' + profileName + \' de «\' + dataInfo.lastpost.who.name + \'»\'">{{ dataInfo.lastpost.who.name | just-name }}</a>, {{ dataInfo.lastpost.date }} en <a v-bind:href="dataInfo.forum.url" target="_blank" v-bind:title="\'Ir al subforo «\' + dataInfo.forum.name + \'»\'">{{ dataInfo.forum.name }}</a></small>\n </div>\n </div>\n '}),Vue.component("campo-foro",{props:["dataName"],mounted(){const n=this.$el.parentElement.classList;n.add("field-element"),n.add("field-"+FNR.utility.genSlug(this.dataName,"-"))},template:'\n <div class="forum-field">\n <div class="field-name">{{ dataName | capitalize }}</div>\n <div class="field-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("boton-foro",{props:["dataUrl","dataName","dataIcon","dataType","dataInput"],computed:{realClass:function(){return"true"===this.dataInput?"forum-button is-input":"forum-button"},realName:function(){return"text"+("no-name"===this.dataType?" is-hidden-touch":"")},realUrl:function(){return"true"===this.dataInput?"javascript:{}":this.dataUrl}},mounted(){const n=this.$el.parentElement.classList;n.add("btn-element"),n.add("btn-"+FNR.utility.genSlug(this.dataName,"-"))},template:'\n <a v-bind:href="realUrl" targer="_blank" v-bind:class="realClass" v-bind:title="dataName">\n <span class="icon">\n <i v-bind:class="dataIcon"></i>\n </span>\n <span v-bind:class="realName">{{ dataName }}</span>\n <span v-if="dataInput === \'true\'" class="input-real">\n <slot name="input"></slot>\n </span>\n </a>\n '}),Vue.component("cargando-foro",{props:["dataText"],template:'\n <section id="loading-element">\n <div id="loading-content">\n <i class="fas fa-circle-notch fa-spin"></i>\n <span>{{ dataText }}</span>\n </div>\n </section>\n '}),Vue.component("aviso-foro",{template:' \n <div class="forum-infoblock">\n <h5>Antes de proceder recuerda:</h5>\n <slot></slot>\n </div>\n '}),Vue.component("afiliaciones-foro",{data:function(){return{afis:{}}},created(){FNR.forum.getAffiliates().then(n=>{this.afis=n})},template:'\n <ul v-html="afis.normal" class="no-style"></ul>\n '}),Vue.component("controles-foro",{data:function(){return{maPage:0,userName:_userdata.username,userLevel:_userdata.user_level,userId:_userdata.user_id,userLog:_userdata.session_logged_in,userMP:0,userOut:"",isActive:!1}},computed:{isActiveClass:function(){return"has-bg"+(this.isActive?" visible":" not-visible")}},methods:{turnActive:function(){this.isActive=!this.isActive}},created(){0!==this.userLog&&(null!==document.getElementById("i_icon_mini_new_message")&&null!==document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/)&&(this.userMP=parseInt(document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/)[0])),this.userOut=document.getElementById("logout").href)},template:'\n <div class="main-body">\n \t\t<nav id="forum-breadcrumb" class="breadcrumb has-succeeds-separator left" aria-label="breadcrumbs">\n \t<ul>\n \t<li>\n \t<a href="/" title="Ir a «Inicio»">Inicio</a>\n \t</li>\n \t</ul>\n \t</nav>\n <nav class="right"> \n <section id="forum-navbar-desktop" class="is-hidden-touch">\n <navbar-foro v-bind:data-username="userName" v-bind:data-userlevel="userLevel" v-bind:data-userid="userId" v-bind:data-userlog="userLog" v-bind:data-usermp="userMP" v-bind:data-userout="userOut" />\n </section>\n <section id="forum-navbar-mobile" class="is-hidden-desktop">\n <div id="hmg-button" v-on:click="turnActive()" class="is-pointer">\n <i class="fas fa-bars"></i>\n </div>\n <div id="hmg-menu" v-bind:class="isActiveClass">\n <h3>{{ userName | just-name }}<i class="fas fa-times is-pointer" v-on:click="turnActive()"></i></h3>\n <navbar-foro v-bind:data-username="userName" v-bind:data-userlevel="userLevel" v-bind:data-userid="userId" v-bind:data-userlog="userLog" v-bind:data-usermp="userMP" v-bind:data-userout="userOut" />\n </div>\n <div class="bg-active" v-on:click="turnActive()"></div>\n </section>\n <section v-if="maPage === 1" id="multiaccount-transition">\n <cargando-foro data-text="Cambiando de cuenta…"></cargando-foro>\n </section>\n </nav>\n </div>\n '}),Vue.component("navbar-foro",{props:["dataUsername","dataUserlevel","dataUserid","dataUserlog","dataUsermp","dataUserout"],data:function(){return{profileName:forumConfig.profileOptions.profileName||"perfil",items:forumContent.navbar,directions:forumConfig.usableDirections,multiAccount:{status:!1,position:-1,accounts:[]}}},computed:{isStatusClass:function(){return(1===this.dataUserlog?"is-logged":"is-unlogged")+(1===this.dataUserlevel?" is-admin":" is-user")},mpText:function(){return"Mensajería"+(0!==this.dataUsermp?" ("+this.dataUsermp+")":"")},links:function(){return forumContent.links.filter(n=>void 0!==n.icon)}},methods:{changeAccount:function(){this.$parent.maPage=1,FNR.user.changeAccount(this.dataUserout,this.multiAccount.accounts[this.multiAccount.position].name,this.multiAccount.accounts[this.multiAccount.position].password).then(n=>{n&&window.location.reload()})}},created(){this.multiAccount.status=!1!==FNR.cache.getData("usermultiaccounts")&&!1!==FNR.cache.getData("userpassword"),this.multiAccount.accounts=(!1===FNR.cache.getData("usermultiaccounts")?[]:FNR.cache.getData("usermultiaccounts").map(n=>({name:n.name,password:sjcl.decrypt(FNR.cache.getData("userpassword"),n.password)}))).filter(n=>n.name!==_userdata.username).sort((n,e)=>n.name<e.name?-1:n.name>e.name?1:0)},template:'\n <ul v-bind:class="isStatusClass">\n <template v-if="!dataUserlog">\n <li class="navbar-item">\n <a href="/register" title="Registrarse en el foro">\n <div class="icon">\n <i class="fas fa-user-plus"></i>\n </div>\n <div class="text">Registrarse</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/login" title="Iniciar sesión en el foro">\n <div class="icon">\n <i class="fas fa-sign-in-alt"></i>\n </div>\n <div class="text">Conectarse</div>\n </a>\n </li>\n </template>\n <template v-else>\n <li class="navbar-item is-hidden-desktop" v-for="link in links">\n <a v-bind:href="link.url" v-bind:title="\'Ir a «\' + link.name + \'»\'">\n <div class="icon">\n <i v-bind:class="link.icon"></i>\n </div>\n <div class="text">{{ link.name }}</div>\n </a>\n </li>\n <li class="navbar-item" v-for="item in items">\n <a v-bind:href="item.url" v-bind:title="\'Ir a «\' + item.name + \'»\'">\n <div class="icon">\n <i v-bind:class="item.icon"></i>\n </div>\n <div class="text">{{ item.name }}</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/privmsg?folder=inbox" title="Ir a tu mensajería privada">\n <div class="icon">\n <i class="fas fa-envelope"></i>\n </div>\n <div class="text">{{ mpText }}</div>\n </a>\n </li>\n <li class="navbar-item has-dropdown is-dropeable has-bg">\n <a class="navbar-link is-pointer" title="Accionar menú de usuario">\n <div class="icon">\n <i class="fas fa-user"></i>\n </div>\n <div class="text">{{ dataUsername | just-name }}</div>\n </a>\n <div class="navbar-dropdown is-right">\n <template v-if="dataUserlevel === 1">\n <a class="navbar-item" href="/admin" target="_blank" title="Ir al «Panel de Administrador»">\n <div class="icon">\n <i class="fas fa-cogs"></i>\n </div>\n <div class="text">Panel Administrador</div>\n </a>\n </template>\n <a class="navbar-item" v-bind:href="directions.ucp" target="_blank" title="Ir al «Panel de Usuario»">\n <div class="icon">\n <i class="fas fa-sliders-h"></i>\n </div>\n <div class="text">Panel Usuario</div>\n </a>\n <a class="navbar-item" v-bind:href="\'/u\' + dataUserid" v-bind:title="\'Ir a tu \' + profileName">\n <div class="icon">\n <i class="far fa-id-card"></i>\n </div>\n <div class="text">{{ profileName | capitalize }}</div>\n </a>\n <a class="navbar-item" href="/search?search_id=egosearch" title="Ir a tus temas personales">\n <div class="icon">\n <i class="fas fa-archive"></i>\n </div>\n <div class="text">Temas personales</div>\n </a>\n <a class="navbar-item" v-bind:href="dataUserout">\n <div class="icon">\n <i class="fas fa-sign-out-alt"></i>\n </div>\n <div class="text">Cerrar sesión</div>\n </a>\n <template v-if="multiAccount.status">\n <hr/>\n <div class="select-container">\n <select v-model="multiAccount.position" v-on:change="changeAccount()" v-on:click="$event.stopPropagation()">\n <option value="-1" hidden selected>Selec. personaje</option>\n <option v-for="(account, index) in multiAccount.accounts" v-bind:value="index">{{ account.name }}</option>\n </select>\n </div>\n </template>\n </div>\n </li>\n </template>\n </ul>\n '}),Vue.component("links-ayuda",{data:function(){return{links:forumContent.links}},template:'\n <div class="columns is-multiline is-gapless is-vcentered">\n <a target="_blank" v-bind:href="link.url" v-bind:title="\'Ir a «\' + link.name + \'»\'" class="column" v-for="link in links">{{ link.name }}</a>\n </div>\n '}),Vue.component("links-anuncios",{data:function(){return{announcements:forumContent.announcements}},template:'\n <div id="anmt-main">\n <template v-for="(announcement, index) in announcements">\n <a target="_blank" v-bind:href="announcement.url" v-bind:title="\'Ir al anuncio «\' + announcement.name + \'»\'" class="anmt-element"><span class="anmt-title">{{ announcement.name }}</span><span class="anmt-date">{{ announcement.date }}</span></a>\n <div class="anmt-sep" v-if="(announcements.length - 1) !== index"></div>\n </template>\n </div>\n '}),Vue.component("links-staff",{data:function(){return{staff:forumContent.staff}},template:'\n <div id="admin-main">\n <a target="_blank" v-bind:href="admin.url" class="admin-element" v-bind:style="\'background-image: url(\' + admin.avatar + \')\'" v-bind:title="admin.title" v-for="admin in staff"><span class="admin-name">{{ admin.name }}</span><span class="admin-desc">{{ admin.desc }}</span></a>\n </div>\n '}),Vue.component("sabias-que",{data:function(){return{content:{}}},created(){const n=forumContent.sq;this.content=n[Math.floor(Math.random()*n.length)],setInterval(()=>{this.content=n[Math.floor(Math.random()*n.length)]},12e3)},template:'\n <img id="sq-img" v-bind:src="content" alt="¿Sabías que?" />\n '}),Vue.component("busquedas",{data:function(){return{content:{}}},created(){const n=forumContent.searches;this.content=n[Math.floor(Math.random()*n.length)],setInterval(()=>{this.content=n[Math.floor(Math.random()*n.length)]},16e3)},template:'\n <a id="search-img" v-bind:href="content.url" target="_blank" v-bind:title="content.desc">\n <img v-bind:src="content.img" alt="Búsqueda" />\n </a>\n '}),Vue.component("note-info",{template:'\n <div class="admin-block admin-note">\n <div class="admin-icon fas fa-caret-right"></div>\n <div class="admin-content admin-title">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("redirect",{props:["dataTo"],computed:{currentStatus:function(){return!!window.location.pathname.match(/t(\d+)-/)}},created(){this.currentStatus&&window.location.replace(this.dataTo)},template:'\n <div class="is-content">\n <template v-if="!currentStatus">\n <p>No hay mensaje.</p>\n </template>\n </div>\n '}),Vue.component("quote",{props:["dataFrom","from"],template:'\n <div class="admin-block admin-box user-coolquote">\n <div class="coolquote-quote">\n <div class="fas fa-quote-left"></div>\n <div class="coolquote-content">\n <slot></slot>\n </div>\n <div class="fas fa-quote-right"></div>\n </div>\n <div class="coolquote-from">{{ dataFrom }}{{ from }}</div>\n </div>\n '}),Vue.component("wiki-index-items-d",{props:["dataContent"],template:'\n <ul>\n <li v-for="content in dataContent">\n <div class="wiki-controls">\n <router-link v-bind:to="content.id" v-if="!content.children.length" v-bind:title="\'Ir al artículo de «\' + content.name + \'»\'">{{ content.name }}</router-link>\n <a class="wiki-cascade" v-bind:title="\'Desplegar categoría de «\' + content.name + \'»\'" v-else>\n <span class="text">{{ content.name }}</span>\n <span class="icon">\n <i class="fas fa-plus"></i>\n <i class="fas fa-minus"></i>\n </span>\n </a>\n </div>\n <wiki-index-items-d v-if="content.children.length" v-bind:data-content="content.children"></wiki-index-items-d>\n </li>\n </ul>\n '}),Vue.component("wiki-index",{computed:{indexContent:function(){const n=t=>e.filter(n=>n.component.page_parent===t).map(e=>({id:e.path,name:e.component.page_name,children:n(e.component.page_name)})),e=routes.filter(n=>void 0!==n.component).filter(n=>!n.component.page_skip);return e.filter(n=>void 0===n.component.page_parent).map(e=>({id:e.path,name:e.component.page_name,children:n(e.component.page_name)}))}},template:'\n <aside class="wiki-index is-content profile-sticky">\n <div class="is-hidden-touch">\n <h3>Contenido</h3>\n <wiki-index-items-d v-bind:data-content="indexContent"></wiki-index-items-d>\n </div>\n <div class="select-container is-hidden-desktop">\n <select>\n <option value="-1" hidden selected>Contenido</option>\n <template v-for="content in indexContent">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option v-bind:value="content.id" disabled >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n <template v-for="content in content.children">\n <option v-bind:value="content.id">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option v-bind:value="content.id" v-else >— {{ content.name }}</option>\n </template>\n </select>\n </div>\n </aside>\n '}),Vue.component("wiki-contenido",{props:["dataMode"],template:'\n <div class="wiki-body has-small-topiclist">\n <wiki-index></wiki-index>\n <template v-if="dataMode === \'app\'">\n <slot></slot>\n </template>\n <template v-else>\n <section class="wiki-content is-dramatic">\n <slot></slot>\n </section>\n </template>\n </div>\n '}),Vue.component("wiki-nav",{computed:{more:function(){return routes.filter(n=>n.component).filter(n=>n.component.page_parent===routes.filter(n=>n.path===router.history.current.path)[0].component.page_parent).length>1},nav:function(){const n=routes.filter(n=>n.component).filter(n=>n.component.page_parent===routes.filter(n=>n.path===router.history.current.path)[0].component.page_parent),e=n.map(n=>n.path).indexOf(router.history.current.path);return{next:!(e+1>=n.length)&&n[e+1],prev:!(e-1<0)&&n[e-1]}}},template:'\n <div class="wiki-nav" v-if="more">\n <h2>Navegación</h2>\n <template v-if="nav.prev !== false">* <router-link v-bind:to="nav.prev.path" v-bind:title="\'Ir al artículo «\' + nav.prev.component.page_name + \'»\'">Página anterior: {{ nav.prev.component.page_name }}</router-link></template>\n <br v-if="nav.prev !== false && nav.next !== false"/>\n <template v-if="nav.next !== false">* <router-link v-bind:to="nav.next.path" v-bind:title="\'Ir al artículo «\' + nav.next.component.page_name + \'»\'">Página siguiente: {{ nav.next.component.page_name }}</router-link></template>\n </div>\n '}),Vue.component("wiki-children",{props:["dataName","dataCategory"],computed:{nav:function(){return routes.filter(n=>n.component).filter(n=>n.component.page_parent===this.dataCategory)}},template:'\n <div class="wiki-nav" v-if="nav.length > 0">\n <h2>{{ dataName }}</h2>\n <template v-for="route in nav">* <router-link v-bind:to="route.path" v-bind:title="\'Ir al artículo «\' + route.component.page_name + \'»\'">{{ route.component.page_name }}</router-link><br/></template>\n </div>\n '}),Vue.component("modal-foro",{props:["dataTitle"],methods:{modalClose:function(){this.$parent.state.modal=!1,this.$emit("modal-close")}},template:' \n <div id="forum-modal">\n <div class="modal-element">\n <div class="modal-title">\n <h3>{{ dataTitle }}</h3>\n <a v-on:click="modalClose()">\n <i class="fas fa-times"></i>\n </a>\n </div>\n <div class="modal-content">\n <div class="is-content">\n <slot name="content"></slot>\n </div>\n <slot name="controls"></slot>\n </div>\n </div>\n <div class="is-bgmodal bg-active" v-on:click="modalClose()"></div>\n </div>\n '}),Vue.component("controles-modal",{template:' \n <div class="modal-buttons">\n <slot></slot>\n </div>\n '}),Vue.component("expediente-usuario",{data:function(){return{info:{name:_userdata.username,level:_userdata.user_level,log:_userdata.session_logged_in},config:forumConfig.profileUser,profile:profile}},computed:{userRank:function(){return this.profile.fields[forumConfig.profileOptions.profileRank].content},userCite:function(){return this.profile.fields[forumConfig.profileOptions.profileCite].content},userCover:function(){return this.profile.fields[forumConfig.profileOptions.profileCover].content},usableMiniFields:function(){return void 0!==this.config.miniFields&&this.config.miniFields.length?Object.entries(this.profile.fields).filter(n=>this.config.miniFields.indexOf(n[0])>-1).map(n=>({id:n[0],title:n[1].label,content:n[1].content})).sort((n,e)=>this.config.miniFields.indexOf(n.id)>this.config.miniFields.indexOf(e.id)?1:-1).map(n=>({id:FNR.utility.genSlug(n.title,"-"),title:n.title,content:n.content})):[]},usableBigFields:function(){return void 0!==this.config.mainFields&&Object.keys(this.config.mainFields).length?Object.entries(this.profile.fields).filter(n=>Object.keys(this.config.mainFields).indexOf(n[0])>-1).map(n=>({id:n[0],title:n[1].label,subtitle:this.config.mainFields[n[0]],content:" &nbsp;-"===n[1].content?"":n[1].content})).sort((n,e)=>Object.keys(this.config.mainFields).indexOf(n.id)>Object.keys(this.config.mainFields).indexOf(e.id)?1:-1).map(n=>({id:FNR.utility.genSlug(n.title,"-"),title:n.title,subtitle:n.subtitle,content:n.content})):[]},lengthBigFields:function(){let n=0;return this.usableBigFields.map(e=>{void 0!==e.content&&(n+=e.content.length)}),n},usableExtraFields:function(){return void 0!==this.config.extraFields&&this.config.extraFields.length?Object.entries(this.profile.fields).filter(n=>this.config.extraFields.indexOf(n[0])>-1).map(n=>({id:n[0],title:n[1].label,content:" &nbsp;-"===n[1].content?"":n[1].content})).sort((n,e)=>this.config.extraFields.indexOf(n.id)>this.config.extraFields.indexOf(e.id)?1:-1).map(n=>({id:FNR.utility.genSlug(n.title,"-"),title:n.title,content:n.content})):[]},lengthExtraFields:function(){let n=0;return this.usableExtraFields.map(e=>{void 0!==e.content&&(n+=e.content.length)}),n},usableLinkFields:function(){return this.profile.contact.length?[]:Object.entries(this.profile.contact).filter(n=>"Mensaje Privado"!==n[1].label).map(n=>({id:FNR.utility.genSlug(n[1].label,"-"),title:n[1].label,url:n[1].content,icon:this.config.contactFields[n[0]],desc:"Ir a "+n[1].label+" de «"+this.profile.name+"»"}))},chronologyField:function(){return void 0!==this.config.cronoField&&this.config.cronoField.length?FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.cronoField,"_")].content):[]},relationshipsField:function(){return void 0!==this.config.relaField&&this.config.relaField.length?FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.relaField,"_")].content):[]},lengthHistoryFields:function(){let n=0;return n+=this.chronologyField.length,n+=this.relationshipsField.length,n},currentClass:function(){return"usergroup-"+this.profile.colour}},
2
- template:' \n <section class="profile-element"> \n <cabespecial-foro><template slot="title">Perfil de {{ profile.name }}</template></cabespecial-foro>\n <section v-bind:class="currentClass">\n <section id="profile-head">\n <div id="profile-minifields" class="profile-container is-align-items-flex-start wiki-index is-content has-text-left" v-if="lengthBigFields">\n <h3>Contenido</h3>\n <ul>\n <li v-if="lengthBigFields">\n <div class="wiki-controls">\n <a href="#anchor-info">Información</a>\n </div>\n </li>\n <li v-if="lengthExtraFields">\n <div class="wiki-controls">\n <a href="#anchor-extras">Extras</a>\n </div>\n </li>\n <li v-if="lengthHistoryFields">\n <div class="wiki-controls">\n <a href="#anchor-history">Historial</a>\n </div>\n </li>\n </ul>\n </div>\n <ul id="profile-minifields" class="profile-container is-align-items-center wiki-index is-content" v-else>\n <li v-bind:id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n <div id="profile-userinfo" v-bind:style="\'background-image: url(\' + userCover + \');\'">\n <div id="profile-userdata">\n <div id="profile-rank">{{ userRank }}</div>\n <div id="profile-username">{{ profile.name }}</div>\n </div>\n <div id="profile-usergest" v-if="Object.keys(profile.admin).length">\n <a v-bind:href="profile.admin.admin" v-bind:title="\'Administrar a «\' + profile.name + \'»\'" target="_blank">Administrar</a> / <a v-bind:href="profile.admin.ban" v-bind:title="\'Banear a «\' + profile.name + \'»\'" target="_blank">Banear</a>\n </div>\n </div>\n </section>\n <section id="profile-subhead">\n <div class="columns is-vcentered">\n <div class="column is-6 is-full-mobile">\n <div id="profile-quote" class="is-content">\n <quote>{{ userCite }}</quote>\n </div>\n </div>\n <div class="column is-5 is-offset-1 is-full-mobile is-offset-0-mobile">\n <div class="columns is-flex is-vcentered">\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li>\n <a v-bind:href="profile.links.posts" v-bind:title="\'Mensajes de «\' + profile.name + \'»\'" target="_blank">\n <i v-bind:class="config.contactFields.mensajes"></i> Mensajes\n </a>\n </li>\n <li>\n <a v-bind:href="profile.links.topics" v-bind:title="\'Temas de «\' + profile.name + \'»\'" target="_blank">\n <i v-bind:class="config.contactFields.temas"></i> Temas\n </a>\n </li>\n <li v-if="profile.contact.mensaje_privado !== undefined">\n <a v-bind:href="profile.contact.mensaje_privado.content" v-bind:title="\'Enviar un mensaje privado a «\' + profile.name + \'»\'" target="_blank">\n <i v-bind:class="config.contactFields.mp"></i> Mensaje Privado\n </a>\n </li>\n </ul>\n </div>\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li v-bind:id="\'profile-link-\' + field.id" v-for="field in usableLinkFields">\n <a v-bind:href="field.url" v-bind:title="field.desc" target="_blank">\n <i v-bind:class="field.icon"></i> {{ field.title }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </section>\n <section id="profile-fields" class="profile-container is-relative" v-if="lengthBigFields">\n <a id="anchor-info" class="page-anchor"></a>\n <aside id="profile-infominifields" class="wiki-index profile-sticky">\n <h3>Datos básicos</h3>\n <ul class="p-0">\n <li v-bind:id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n </aside>\n <ul id="profile-infofields">\n <li v-bind:id="\'profile-field-\' + field.id" class="profilefield-element" v-for="field in usableBigFields" v-if="field.content.length">\n <div class="field-head">\n <h4>{{ field.title }}</h4>\n <h6>{{ field.subtitle }}</h6>\n </div>\n <div class="field-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-extras" class="profile-extra is-relative" v-if="lengthExtraFields">\n <a id="anchor-extras" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Extras</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li v-bind:id="\'profile-extrafield-\' + field.id" class="extrafield-element" v-for="field in usableExtraFields" v-if="field.content.length">\n <div class="extrafield-head">\n <h4>{{ field.title }}</h4>\n </div>\n <div class="extrafield-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-history" class="profile-extra is-relative" v-if="lengthHistoryFields">\n <a id="anchor-history" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Historial</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li id="profile-extrafield-chronology" class="extrafield-element" v-if="chronologyField.length">\n <div class="extrafield-head">\n <h4>Cronología</h4>\n </div>\n <ul id="chronology-element" class="is-two-columns-list">\n <template v-for="element in chronologyField">\n <elemento-cronologia v-bind:data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n <li id="profile-extrafield-relationships" class="extrafield-element" v-if="relationshipsField.length">\n <div class="extrafield-head">\n <h4>Relaciones</h4>\n </div>\n <ul id="relationships-element" class="is-two-columns-list">\n <template v-for="element in relationshipsField">\n <elemento-relaciones v-bind:data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n </ul>\n </section>\n </section>\n </section>\n '}),Vue.component("cuerpo-principal",{props:["dataTitle"],computed:{title:function(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="main-slat">\n <div class="mainslat-title" v-if="title.length">{{ title }}</div>\n <div class="mainslat-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("cuerpo-interior",{props:["dataTitle"],computed:{title:function(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="slat-interior">\n <div class="slatinterior-title" v-if="title.length">{{ title }}</div>\n <div class="slatinterior-content">\n <slot></slot>\n </div>\n </div>\n '}),Vue.component("cuerpo-lista",{props:["dataTitle"],computed:{title:function(){return void 0===this.dataTitle?"":this.dataTitle}},template:' \n <div class="slat-list">\n <div class="slatlist-title" v-if="title.length">{{ title }}</div>\n <ol class="slatlist-content">\n <slot></slot>\n </ol>\n </div>\n '});
1
+ Vue.component("categoria-foro", { props: ["dataId"], computed: { slugName: function () { const n = this.dataId.indexOf("<h2>") > -1 ? FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0], "-") : FNR.utility.genSlug(this.dataId, "-"); return "category-" + n } }, template: "\n <section :class=\"'category-element ' + slugName\">\n \t\t<slot></slot>\n </section>\n " }), Vue.component("cabecera-foro", { data: function () { return { dataTitle: void 0 === this.$slots.title[0].tag ? this.$slots.title[0].text : this.$slots.title[0].children[0].text } }, template: '\n <div class="forum-head regular-head">\n <titulo-especial :data-title="dataTitle"></titulo-especial>\n </div>\n ' }), Vue.component("cabcategoria-foro", { data: function () { return { dataTitle: void 0 === this.$slots.title[0].tag ? this.$slots.title[0].text : this.$slots.title[0].children[0].text } }, template: '\n <div class="forum-head category-head">\n <titulo-especial :data-title="dataTitle"></titulo-especial>\n </div>\n ' }), Vue.component("cabespecial-foro", { data: function () { return { dataTitle: void 0 === this.$slots.title[0].tag ? this.$slots.title[0].text : this.$slots.title[0].children[0].text } }, template: '\n <div class="forum-head special-head">\n <titulo-especial :data-title="dataTitle"></titulo-especial>\n </div>\n ' }), Vue.component("subforo-foro", { props: ["dataId"], computed: { slugId: function () { let n = ""; return window.location.pathname.match(/f(\d+)-/) ? n = window.location.pathname.match(/f(\d+)-/)[1] : window.location.pathname.match(/f(\d+)p(\d+)-/) && (n = window.location.pathname.match(/f(\d+)p(\d+)-/)[1]), "subforum-" + n }, slugName: function () { const n = this.dataId.indexOf("<h2>") > -1 ? FNR.utility.genSlug(this.dataId.split("<h2>")[1].split("</h2>")[0], "-") : FNR.utility.genSlug(this.dataId, "-"); return "subforum-" + n } }, template: "\n <section :class=\"'subforum-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n " }), Vue.component("lista-temas-cabecera", { props: ["dataElements"], data: function () { return { elementos: JSON.parse(this.dataElements.replace(/'/g, '"')) } }, template: '\n <ul class="topiclist-header no-style">\n <li v-for="element in elementos">\n <titulo-especial :data-title="element"></titulo-especial>\n </li>\n </ul>\n ' }), Vue.component("tema-foro", { computed: { slugId: function () { let n = ""; return window.location.pathname.match(/t(\d+)-/) ? n = window.location.pathname.match(/t(\d+)-/)[1] : window.location.pathname.match(/t(\d+)p(\d+)-/) && (n = window.location.pathname.match(/t(\d+)p(\d+)-/)[1]), "topic-" + n }, slugName: function () { const n = FNR.utility.genSlug(void 0 === this.$slots.title[0].tag ? this.$slots.title[0].text : this.$slots.title[0].children[0].text, "-"); return "topic-" + n } }, template: "\n <section :class=\"'topic-element ' + slugId + ' ' + slugName\">\n \t\t<slot></slot>\n </section>\n " }), Vue.component("mando-foro", { props: ["dataId", "dataApp"], data: function () { return { children: 0 } }, computed: { isStatusClass: function () { return this.children > 0 ? "forum-controls" : "forum-controls not-show" } }, created() { Object.values(this.$slots).map(n => { this.children += n.length }) }, template: '\n <section :id="dataId" :class="isStatusClass">\n <template v-if="dataApp === \'true\'">\n <div class="left page-pagination">\n <slot name="pagination"></slot>\n </div>\n <ul class="right no-style page-buttons">\n <slot name="controls"></slot>\n </ul>\n </template>\n <template v-else>\n <div class="left page-pagination"></div>\n <ul class="right no-style page-buttons"></ul>\n </template>\n </section>\n ' }), Vue.component("titulo-especial", { props: ["dataTitle"], computed: { cleaned: function () { return this.dataTitle.indexOf("<h2>") > -1 ? this.dataTitle.split("<h2>")[1].split("</h2>")[0] : this.dataTitle }, minimized: function () { return FNR.utility.genSlug(this.cleaned, " ") } }, template: '\n <h3 class="is-tweakeable"><span class="is-measurable">{{ cleaned }}</span></h3>\n ' }), Vue.component("cuerpo-widget", { props: ["dataClass"], computed: { currentClass: function () { return void 0 === this.dataClass ? "plank-inner" : "plank-inner " + this.dataClass } }, template: '\n <div class="plank-content">\n <div :class="currentClass">\n <slot></slot>\n </div>\t\t\t\t\t\t \n </div>\n ' }), Vue.component("separador-foro", { props: ["dataFaction"], data: function () { return { image: forumDefaults.separator } }, template: '\n <section class="forumseparator-element">\n <img :src="image" />\n </section>\n ' }), Vue.component("tema-ref", { props: ["dataInfo"], data: function () { return { profileName: forumConfig.profileOptions.profileName || "perfil" } }, computed: { userColor: function () { return "color: " + this.dataInfo.lastpost.who.color } }, template: '\n <div class="ltopic-element">\n <a class="ltopic-last" :href="dataInfo.lastpost.url" target="_blank" :title="\'Ir al último mensaje del tema «\' + dataInfo.name + \'»\'">\n <i class="fas fa-link"></i>\n </a>\n <div class="ltopic-data">\n <a class="ltopic-title" :href="dataInfo.url" target="_blank" :title="\'Ir al tema «\' + dataInfo.name + \'»\'">{{ dataInfo.name }}</a>\n <small class="ltopic-info"><a :href="dataInfo.lastpost.who.url" target="_blank" :style="userColor" :title="\'Ir al \' + profileName + \' de «\' + dataInfo.lastpost.who.name + \'»\'">{{ dataInfo.lastpost.who.name | just-name }}</a>, {{ dataInfo.lastpost.date }} en <a :href="dataInfo.forum.url" target="_blank" :title="\'Ir al subforo «\' + dataInfo.forum.name + \'»\'">{{ dataInfo.forum.name }}</a></small>\n </div>\n </div>\n ' }), Vue.component("campo-foro", { props: ["dataName"], mounted() { const n = this.$el.parentElement.classList; n.add("field-element"), n.add("field-" + FNR.utility.genSlug(this.dataName, "-")) }, template: '\n <div class="forum-field">\n <div class="field-name">{{ dataName | capitalize }}</div>\n <div class="field-content">\n <slot></slot>\n </div>\n </div>\n ' }), Vue.component("boton-foro", { props: ["dataUrl", "dataName", "dataIcon", "dataType", "dataInput"], computed: { realClass: function () { return "true" === this.dataInput ? "forum-button is-input" : "forum-button" }, realName: function () { return "text" + ("no-name" === this.dataType ? " is-hidden-touch" : "") }, realUrl: function () { return "true" === this.dataInput ? "javascript:{}" : this.dataUrl } }, mounted() { const n = this.$el.parentElement.classList; n.add("btn-element"), n.add("btn-" + FNR.utility.genSlug(this.dataName, "-")) }, template: '\n <a :href="realUrl" targer="_blank" :class="realClass" :title="dataName">\n <span class="icon">\n <i :class="dataIcon"></i>\n </span>\n <span :class="realName">{{ dataName }}</span>\n <span v-if="dataInput === \'true\'" class="input-real">\n <slot name="input"></slot>\n </span>\n </a>\n ' }), Vue.component("cargando-foro", { props: ["dataText"], template: '\n <section id="loading-element">\n <div id="loading-content">\n <i class="fas fa-circle-notch fa-spin"></i>\n <span>{{ dataText }}</span>\n </div>\n </section>\n ' }), Vue.component("aviso-foro", { template: ' \n <div class="forum-infoblock">\n <h5>Antes de proceder recuerda:</h5>\n <slot></slot>\n </div>\n ' }), Vue.component("afiliaciones-foro", { data: function () { return { afis: {} } }, created() { FNR.forum.getAffiliates().then(n => { this.afis = n }) }, template: '\n <ul v-html="afis.normal" class="no-style"></ul>\n ' }), Vue.component("controles-foro", { data: function () { return { maPage: 0, userName: _userdata.username, userLevel: _userdata.user_level, userId: _userdata.user_id, userLog: _userdata.session_logged_in, userMP: 0, userOut: "", isActive: !1 } }, computed: { isActiveClass: function () { return "has-bg" + (this.isActive ? " visible" : " not-visible") } }, methods: { turnActive: function () { this.isActive = !this.isActive } }, created() { 0 !== this.userLog && (null !== document.getElementById("i_icon_mini_new_message") && null !== document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/) && (this.userMP = parseInt(document.getElementById("i_icon_mini_new_message").title.match(/[0-255]/)[0])), this.userOut = document.getElementById("logout").href) }, template: '\n <div class="main-body">\n \t\t<nav id="forum-breadcrumb" class="breadcrumb has-succeeds-separator left" aria-label="breadcrumbs">\n \t<ul>\n \t<li>\n \t<a href="/" title="Ir a «Inicio»">Inicio</a>\n \t</li>\n \t</ul>\n \t</nav>\n <nav class="right"> \n <section id="forum-navbar-desktop" class="is-hidden-touch">\n <navbar-foro :data-username="userName" :data-userlevel="userLevel" :data-userid="userId" :data-userlog="userLog" :data-usermp="userMP" :data-userout="userOut" />\n </section>\n <section id="forum-navbar-mobile" class="is-hidden-desktop">\n <div id="hmg-button" v-on:click="turnActive()" class="is-pointer">\n <i class="fas fa-bars"></i>\n </div>\n <div id="hmg-menu" :class="isActiveClass">\n <h3>{{ userName | just-name }}<i class="fas fa-times is-pointer" v-on:click="turnActive()"></i></h3>\n <navbar-foro :data-username="userName" :data-userlevel="userLevel" :data-userid="userId" :data-userlog="userLog" :data-usermp="userMP" :data-userout="userOut" />\n </div>\n <div class="bg-active" v-on:click="turnActive()"></div>\n </section>\n <section v-if="maPage === 1" id="multiaccount-transition">\n <cargando-foro data-text="Cambiando de cuenta…"></cargando-foro>\n </section>\n </nav>\n </div>\n ' }), Vue.component("navbar-foro", { props: ["dataUsername", "dataUserlevel", "dataUserid", "dataUserlog", "dataUsermp", "dataUserout"], data: function () { return { profileName: forumConfig.profileOptions.profileName || "perfil", items: forumContent.navbar, directions: forumConfig.usableDirections, multiAccount: { status: !1, position: -1, accounts: [] } } }, computed: { isStatusClass: function () { return (1 === this.dataUserlog ? "is-logged" : "is-unlogged") + (1 === this.dataUserlevel ? " is-admin" : " is-user") }, mpText: function () { return "Mensajería" + (0 !== this.dataUsermp ? " (" + this.dataUsermp + ")" : "") }, links: function () { return forumContent.links.filter(n => void 0 !== n.icon) } }, methods: { changeAccount: function () { this.$parent.maPage = 1, FNR.user.changeAccount(this.dataUserout, this.multiAccount.accounts[this.multiAccount.position].name, this.multiAccount.accounts[this.multiAccount.position].password).then(n => { n && window.location.reload() }) } }, created() { this.multiAccount.status = !1 !== FNR.cache.getData("usermultiaccounts") && !1 !== FNR.cache.getData("userpassword"), this.multiAccount.accounts = (!1 === FNR.cache.getData("usermultiaccounts") ? [] : FNR.cache.getData("usermultiaccounts").map(n => ({ name: n.name, password: sjcl.decrypt(FNR.cache.getData("userpassword"), n.password) }))).filter(n => n.name !== _userdata.username).sort((n, t) => n.name < t.name ? -1 : n.name > t.name ? 1 : 0) }, template: '\n <ul :class="isStatusClass">\n <template v-if="!dataUserlog">\n <li class="navbar-item">\n <a href="/register" title="Registrarse en el foro">\n <div class="icon">\n <i class="fas fa-user-plus"></i>\n </div>\n <div class="text">Registrarse</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/login" title="Iniciar sesión en el foro">\n <div class="icon">\n <i class="fas fa-sign-in-alt"></i>\n </div>\n <div class="text">Conectarse</div>\n </a>\n </li>\n </template>\n <template v-else>\n <li class="navbar-item is-hidden-desktop" v-for="link in links">\n <a :href="link.url" :title="\'Ir a «\' + link.name + \'»\'">\n <div class="icon">\n <i :class="link.icon"></i>\n </div>\n <div class="text">{{ link.name }}</div>\n </a>\n </li>\n <li class="navbar-item" v-for="item in items">\n <a :href="item.url" :title="\'Ir a «\' + item.name + \'»\'">\n <div class="icon">\n <i :class="item.icon"></i>\n </div>\n <div class="text">{{ item.name }}</div>\n </a>\n </li>\n <li class="navbar-item">\n <a href="/privmsg?folder=inbox" title="Ir a tu mensajería privada">\n <div class="icon">\n <i class="fas fa-envelope"></i>\n </div>\n <div class="text">{{ mpText }}</div>\n </a>\n </li>\n <li class="navbar-item has-dropdown is-dropeable has-bg">\n <a class="navbar-link is-pointer" title="Accionar menú de usuario">\n <div class="icon">\n <i class="fas fa-user"></i>\n </div>\n <div class="text">{{ dataUsername | just-name }}</div>\n </a>\n <div class="navbar-dropdown is-right">\n <template v-if="dataUserlevel === 1">\n <a class="navbar-item" href="/admin" target="_blank" title="Ir al «Panel de Administrador»">\n <div class="icon">\n <i class="fas fa-cogs"></i>\n </div>\n <div class="text">Panel Administrador</div>\n </a>\n </template>\n <a class="navbar-item" :href="directions.ucp" target="_blank" title="Ir al «Panel de Usuario»">\n <div class="icon">\n <i class="fas fa-sliders-h"></i>\n </div>\n <div class="text">Panel Usuario</div>\n </a>\n <a class="navbar-item" :href="\'/u\' + dataUserid" :title="\'Ir a tu \' + profileName">\n <div class="icon">\n <i class="far fa-id-card"></i>\n </div>\n <div class="text">{{ profileName | capitalize }}</div>\n </a>\n <a class="navbar-item" href="/search?search_id=egosearch" title="Ir a tus temas personales">\n <div class="icon">\n <i class="fas fa-archive"></i>\n </div>\n <div class="text">Temas personales</div>\n </a>\n <a class="navbar-item" :href="dataUserout">\n <div class="icon">\n <i class="fas fa-sign-out-alt"></i>\n </div>\n <div class="text">Cerrar sesión</div>\n </a>\n <template v-if="multiAccount.status">\n <hr/>\n <div class="select-container">\n <select v-model="multiAccount.position" v-on:change="changeAccount()" v-on:click="$event.stopPropagation()">\n <option value="-1" hidden selected>Selec. personaje</option>\n <option v-for="(account, index) in multiAccount.accounts" :value="index">{{ account.name }}</option>\n </select>\n </div>\n </template>\n </div>\n </li>\n </template>\n </ul>\n ' }), Vue.component("links-ayuda", { data: function () { return { links: forumContent.links } }, template: '\n <div class="columns is-multiline is-gapless is-vcentered">\n <a target="_blank" :href="link.url" :title="\'Ir a «\' + link.name + \'»\'" class="column" v-for="link in links">{{ link.name }}</a>\n </div>\n ' }), Vue.component("links-anuncios", { data: function () { return { announcements: forumContent.announcements } }, template: '\n <div id="anmt-main">\n <template v-for="(announcement, index) in announcements">\n <a target="_blank" :href="announcement.url" :title="\'Ir al anuncio «\' + announcement.name + \'»\'" class="anmt-element"><span class="anmt-title">{{ announcement.name }}</span><span class="anmt-date">{{ announcement.date }}</span></a>\n <div class="anmt-sep" v-if="(announcements.length - 1) !== index"></div>\n </template>\n </div>\n ' }), Vue.component("links-staff", { data: function () { return { staff: forumContent.staff } }, template: '\n <div id="admin-main">\n <a target="_blank" :href="admin.url" class="admin-element" :style="\'background-image: url(\' + admin.avatar + \')\'" :title="admin.title" v-for="admin in staff"><span class="admin-name">{{ admin.name }}</span><span class="admin-desc">{{ admin.desc }}</span></a>\n </div>\n ' }), Vue.component("sabias-que", { data: function () { return { content: forumContent.sq, position: this.content[Math.floor(Math.random() * this.content.length)] } }, computed: { current: function () { return this.content[this.position] } }, created() { setInterval(() => { this.position = this.content[Math.floor(Math.random() * this.content.length)] }, 12e3) }, template: '\n <img id="sq-img" :src="current" alt="¿Sabías que?" />\n ' }), Vue.component("busquedas", { data: function () { return { content: forumContent.searches, position: this.content[Math.floor(Math.random() * this.content.length)] } }, computed: { current: function () { return this.content[this.position] } }, created() { setInterval(() => { this.position = this.content[Math.floor(Math.random() * this.content.length)] }, 16e3) }, template: '\n <a id="search-img" :href="current.url" target="_blank" :title="current.desc">\n <img :src="current.img" alt="Búsqueda" />\n </a>\n ' }), Vue.component("note-info", { template: '\n <div class="admin-block admin-note">\n <div class="admin-icon fas fa-caret-right"></div>\n <div class="admin-content admin-title">\n <slot></slot>\n </div>\n </div>\n ' }), Vue.component("redirect", { props: ["dataTo"], computed: { currentStatus: function () { return !!window.location.pathname.match(/t(\d+)-/) } }, created() { this.currentStatus && window.location.replace(this.dataTo) }, template: '\n <div class="is-content">\n <template v-if="!currentStatus">\n <p>No hay mensaje.</p>\n </template>\n </div>\n ' }), Vue.component("quote", { props: ["dataFrom", "from"], template: '\n <div class="admin-block admin-box user-coolquote">\n <div class="coolquote-quote">\n <div class="fas fa-quote-left"></div>\n <div class="coolquote-content">\n <slot></slot>\n </div>\n <div class="fas fa-quote-right"></div>\n </div>\n <div class="coolquote-from">{{ dataFrom }}{{ from }}</div>\n </div>\n ' }), Vue.component("wiki-index-items-d", { props: ["dataContent"], template: '\n <ul>\n <li v-for="content in dataContent">\n <div class="wiki-controls">\n <router-link :to="content.id" v-if="!content.children.length" :title="\'Ir al artículo de «\' + content.name + \'»\'">{{ content.name }}</router-link>\n <a class="wiki-cascade" :title="\'Desplegar categoría de «\' + content.name + \'»\'" v-else>\n <span class="text">{{ content.name }}</span>\n <span class="icon">\n <i class="fas fa-plus"></i>\n <i class="fas fa-minus"></i>\n </span>\n </a>\n </div>\n <wiki-index-items-d v-if="content.children.length" :data-content="content.children"></wiki-index-items-d>\n </li>\n </ul>\n ' }), Vue.component("wiki-index", { computed: { indexContent: function () { const n = e => t.filter(n => n.component.page_parent === e).map(t => ({ id: t.path, name: t.component.page_name, children: n(t.component.page_name) })), t = routes.filter(n => void 0 !== n.component).filter(n => !n.component.page_skip); return t.filter(n => void 0 === n.component.page_parent).map(t => ({ id: t.path, name: t.component.page_name, children: n(t.component.page_name) })) } }, template: '\n <aside class="wiki-index is-content profile-sticky">\n <div class="is-hidden-touch">\n <h3>Contenido</h3>\n <wiki-index-items-d :data-content="indexContent"></wiki-index-items-d>\n </div>\n <div class="select-container is-hidden-desktop">\n <select>\n <option value="-1" hidden selected>Contenido</option>\n <template v-for="content in indexContent">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n <template v-for="content in content.children">\n <template v-if="content.children.length">\n <option :value="content.id" disabled >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n <template v-for="content in content.children">\n <option :value="content.id">&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >&nbsp&nbsp&nbsp&nbsp— {{ content.name }}</option>\n </template>\n </template>\n <option :value="content.id" v-else >— {{ content.name }}</option>\n </template>\n </select>\n </div>\n </aside>\n ' }), Vue.component("wiki-contenido", { props: ["dataMode"], template: '\n <div class="wiki-body has-small-topiclist">\n <wiki-index></wiki-index>\n <template v-if="dataMode === \'app\'">\n <slot></slot>\n </template>\n <template v-else>\n <section class="wiki-content is-dramatic">\n <slot></slot>\n </section>\n </template>\n </div>\n ' }), Vue.component("wiki-nav", { computed: { more: function () { return routes.filter(n => n.component).filter(n => n.component.page_parent === routes.filter(n => n.path === router.history.current.path)[0].component.page_parent).length > 1 }, nav: function () { const n = routes.filter(n => n.component).filter(n => n.component.page_parent === routes.filter(n => n.path === router.history.current.path)[0].component.page_parent), t = n.map(n => n.path).indexOf(router.history.current.path); return { next: !(t + 1 >= n.length) && n[t + 1], prev: !(t - 1 < 0) && n[t - 1] } } }, template: '\n <div class="wiki-nav" v-if="more">\n <h2>Navegación</h2>\n <template v-if="nav.prev !== false">* <router-link :to="nav.prev.path" :title="\'Ir al artículo «\' + nav.prev.component.page_name + \'»\'">Página anterior: {{ nav.prev.component.page_name }}</router-link></template>\n <br v-if="nav.prev !== false && nav.next !== false"/>\n <template v-if="nav.next !== false">* <router-link :to="nav.next.path" :title="\'Ir al artículo «\' + nav.next.component.page_name + \'»\'">Página siguiente: {{ nav.next.component.page_name }}</router-link></template>\n </div>\n ' }), Vue.component("wiki-children", { props: ["dataName", "dataCategory"], computed: { nav: function () { return routes.filter(n => n.component).filter(n => n.component.page_parent === this.dataCategory) } }, template: '\n <div class="wiki-nav" v-if="nav.length > 0">\n <h2>{{ dataName }}</h2>\n <template v-for="route in nav">* <router-link :to="route.path" :title="\'Ir al artículo «\' + route.component.page_name + \'»\'">{{ route.component.page_name }}</router-link><br/></template>\n </div>\n ' }), Vue.component("modal-foro", { props: ["dataTitle"], methods: { modalClose: function () { this.$parent.state.modal = !1, this.$emit("modal-close") } }, template: ' \n <div id="forum-modal">\n <div class="modal-element">\n <div class="modal-title">\n <h3>{{ dataTitle }}</h3>\n <a v-on:click="modalClose()">\n <i class="fas fa-times"></i>\n </a>\n </div>\n <div class="modal-content">\n <div class="is-content">\n <slot name="content"></slot>\n </div>\n <slot name="controls"></slot>\n </div>\n </div>\n <div class="is-bgmodal bg-active" v-on:click="modalClose()"></div>\n </div>\n ' }), Vue.component("controles-modal", { template: ' \n <div class="modal-buttons">\n <slot></slot>\n </div>\n ' }), Vue.component("expediente-usuario", {
2
+ data: function () { return { info: { name: _userdata.username, level: _userdata.user_level, log: _userdata.session_logged_in }, config: forumConfig.profileUser, profile: profile } }, computed: { userRank: function () { return this.profile.fields[forumConfig.profileOptions.profileRank].content }, userCite: function () { return this.profile.fields[forumConfig.profileOptions.profileCite].content }, userCover: function () { return this.profile.fields[forumConfig.profileOptions.profileCover].content }, usableMiniFields: function () { return void 0 !== this.config.miniFields && this.config.miniFields.length ? Object.entries(this.profile.fields).filter(n => this.config.miniFields.indexOf(n[0]) > -1).map(n => ({ id: n[0], title: n[1].label, content: n[1].content })).sort((n, t) => this.config.miniFields.indexOf(n.id) > this.config.miniFields.indexOf(t.id) ? 1 : -1).map(n => ({ id: FNR.utility.genSlug(n.title, "-"), title: n.title, content: n.content })) : [] }, usableBigFields: function () { return void 0 !== this.config.mainFields && Object.keys(this.config.mainFields).length ? Object.entries(this.profile.fields).filter(n => Object.keys(this.config.mainFields).indexOf(n[0]) > -1).map(n => ({ id: n[0], title: n[1].label, subtitle: this.config.mainFields[n[0]], content: " &nbsp;-" === n[1].content ? "" : n[1].content })).sort((n, t) => Object.keys(this.config.mainFields).indexOf(n.id) > Object.keys(this.config.mainFields).indexOf(t.id) ? 1 : -1).map(n => ({ id: FNR.utility.genSlug(n.title, "-"), title: n.title, subtitle: n.subtitle, content: n.content })) : [] }, lengthBigFields: function () { let n = 0; return this.usableBigFields.map(t => { void 0 !== t.content && (n += t.content.length) }), n }, usableExtraFields: function () { return void 0 !== this.config.extraFields && this.config.extraFields.length ? Object.entries(this.profile.fields).filter(n => this.config.extraFields.indexOf(n[0]) > -1).map(n => ({ id: n[0], title: n[1].label, content: " &nbsp;-" === n[1].content ? "" : n[1].content })).sort((n, t) => this.config.extraFields.indexOf(n.id) > this.config.extraFields.indexOf(t.id) ? 1 : -1).map(n => ({ id: FNR.utility.genSlug(n.title, "-"), title: n.title, content: n.content })) : [] }, lengthExtraFields: function () { let n = 0; return this.usableExtraFields.map(t => { void 0 !== t.content && (n += t.content.length) }), n }, usableLinkFields: function () { return this.profile.contact.length ? [] : Object.entries(this.profile.contact).filter(n => "Mensaje Privado" !== n[1].label).map(n => ({ id: FNR.utility.genSlug(n[1].label, "-"), title: n[1].label, url: n[1].content, icon: this.config.contactFields[n[0]], desc: "Ir a " + n[1].label + " de «" + this.profile.name + "»" })) }, chronologyField: function () { return void 0 !== this.config.cronoField && this.config.cronoField.length ? FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.cronoField, "_")].content) : [] }, relationshipsField: function () { return void 0 !== this.config.relaField && this.config.relaField.length ? FNR.utility.genArray(this.profile.fields[FNR.utility.genSlug(this.config.relaField, "_")].content) : [] }, lengthHistoryFields: function () { let n = 0; return n += this.chronologyField.length, n += this.relationshipsField.length, n }, currentClass: function () { return "usergroup-" + this.profile.colour } },
3
+ template: ' \n <section class="profile-element"> \n <cabespecial-foro><template slot="title">Perfil de {{ profile.name }}</template></cabespecial-foro>\n <section :class="currentClass">\n <section id="profile-head">\n <div id="profile-minifields" class="profile-container is-align-items-flex-start wiki-index is-content has-text-left" v-if="lengthBigFields">\n <h3>Contenido</h3>\n <ul>\n <li v-if="lengthBigFields">\n <div class="wiki-controls">\n <a href="#anchor-info">Información</a>\n </div>\n </li>\n <li v-if="lengthExtraFields">\n <div class="wiki-controls">\n <a href="#anchor-extras">Extras</a>\n </div>\n </li>\n <li v-if="lengthHistoryFields">\n <div class="wiki-controls">\n <a href="#anchor-history">Historial</a>\n </div>\n </li>\n </ul>\n </div>\n <ul id="profile-minifields" class="profile-container is-align-items-center wiki-index is-content" v-else>\n <li :id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n <div id="profile-userinfo" :style="\'background-image: url(\' + userCover + \');\'">\n <div id="profile-userdata">\n <div id="profile-rank">{{ userRank }}</div>\n <div id="profile-username">{{ profile.name }}</div>\n </div>\n <div id="profile-usergest" v-if="Object.keys(profile.admin).length">\n <a :href="profile.admin.admin" :title="\'Administrar a «\' + profile.name + \'»\'" target="_blank">Administrar</a> / <a :href="profile.admin.ban" :title="\'Banear a «\' + profile.name + \'»\'" target="_blank">Banear</a>\n </div>\n </div>\n </section>\n <section id="profile-subhead">\n <div class="columns is-vcentered">\n <div class="column is-6 is-full-mobile">\n <div id="profile-quote" class="is-content">\n <quote>{{ userCite }}</quote>\n </div>\n </div>\n <div class="column is-5 is-offset-1 is-full-mobile is-offset-0-mobile">\n <div class="columns is-flex is-vcentered">\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li>\n <a :href="profile.links.posts" :title="\'Mensajes de «\' + profile.name + \'»\'" target="_blank">\n <i :class="config.contactFields.mensajes"></i> Mensajes\n </a>\n </li>\n <li>\n <a :href="profile.links.topics" :title="\'Temas de «\' + profile.name + \'»\'" target="_blank">\n <i :class="config.contactFields.temas"></i> Temas\n </a>\n </li>\n <li v-if="profile.contact.mensaje_privado !== undefined">\n <a :href="profile.contact.mensaje_privado.content" :title="\'Enviar un mensaje privado a «\' + profile.name + \'»\'" target="_blank">\n <i :class="config.contactFields.mp"></i> Mensaje Privado\n </a>\n </li>\n </ul>\n </div>\n <div class="column is-half is-half-mobile">\n <ul class="profile-links">\n <li :id="\'profile-link-\' + field.id" v-for="field in usableLinkFields">\n <a :href="field.url" :title="field.desc" target="_blank">\n <i :class="field.icon"></i> {{ field.title }}\n </a>\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n </section>\n <section id="profile-fields" class="profile-container is-relative" v-if="lengthBigFields">\n <a id="anchor-info" class="page-anchor"></a>\n <aside id="profile-infominifields" class="wiki-index profile-sticky">\n <h3>Datos básicos</h3>\n <ul class="p-0">\n <li :id="\'profile-minifield-\' + field.id" v-for="field in usableMiniFields" class="minifield-element">\n <span class="minifield-label">{{ field.title }}</span>\n <span class="minifield-content">{{ field.content }}</span>\n </li>\n </ul>\n </aside>\n <ul id="profile-infofields">\n <li :id="\'profile-field-\' + field.id" class="profilefield-element" v-for="field in usableBigFields" v-if="field.content.length">\n <div class="field-head">\n <h4>{{ field.title }}</h4>\n <h6>{{ field.subtitle }}</h6>\n </div>\n <div class="field-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-extras" class="profile-extra is-relative" v-if="lengthExtraFields">\n <a id="anchor-extras" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Extras</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li :id="\'profile-extrafield-\' + field.id" class="extrafield-element" v-for="field in usableExtraFields" v-if="field.content.length">\n <div class="extrafield-head">\n <h4>{{ field.title }}</h4>\n </div>\n <div class="extrafield-content is-content" v-html="field.content"></div>\n </li>\n </ul>\n </section>\n <section id="profile-history" class="profile-extra is-relative" v-if="lengthHistoryFields">\n <a id="anchor-history" class="page-anchor"></a>\n <div class="profile-extra-header">\n <span>Historial</span>\n </div>\n <ul class="profile-container profile-extra-space">\n <li id="profile-extrafield-chronology" class="extrafield-element" v-if="chronologyField.length">\n <div class="extrafield-head">\n <h4>Cronología</h4>\n </div>\n <ul id="chronology-element" class="is-two-columns-list">\n <template v-for="element in chronologyField">\n <elemento-cronologia :data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n <li id="profile-extrafield-relationships" class="extrafield-element" v-if="relationshipsField.length">\n <div class="extrafield-head">\n <h4>Relaciones</h4>\n </div>\n <ul id="relationships-element" class="is-two-columns-list">\n <template v-for="element in relationshipsField">\n <elemento-relaciones :data-element="element" data-type="profile" />\n </template>\n </ul>\n </li>\n </ul>\n </section>\n </section>\n </section>\n '
4
+ }), Vue.component("cuerpo-principal", { props: ["dataTitle"], computed: { title: function () { return void 0 === this.dataTitle ? "" : this.dataTitle } }, template: ' \n <div class="main-slat">\n <div class="mainslat-title" v-if="title.length">{{ title }}</div>\n <div class="mainslat-content">\n <slot></slot>\n </div>\n </div>\n ' }), Vue.component("cuerpo-interior", { props: ["dataTitle"], computed: { title: function () { return void 0 === this.dataTitle ? "" : this.dataTitle } }, template: ' \n <div class="slat-interior">\n <div class="slatinterior-title" v-if="title.length">{{ title }}</div>\n <div class="slatinterior-content">\n <slot></slot>\n </div>\n </div>\n ' }), Vue.component("cuerpo-lista", { props: ["dataTitle"], computed: { title: function () { return void 0 === this.dataTitle ? "" : this.dataTitle } }, template: ' \n <div class="slat-list">\n <div class="slatlist-title" v-if="title.length">{{ title }}</div>\n <ol class="slatlist-content">\n <slot></slot>\n </ol>\n </div>\n ' });
package/general.js CHANGED
@@ -1,8 +1,8 @@
1
1
  console.log(
2
- '%cSkin por %cGaylien 🏳️‍🌈',
3
- 'font-family: sans-serif; font-size: 1.5em',
4
- 'font-size: 1.5em; text-transform: uppercase; font-weight: 800; color: #c381b9;'),
5
- console.log('https://zatrapa-gaylien.tumblr.com/');
2
+ '%cSkin por %cGaylien 🏳️‍🌈',
3
+ 'font-family: sans-serif; font-size: 1.5em',
4
+ 'font-size: 1.5em; text-transform: uppercase; font-weight: 800; color: #c381b9;'),
5
+ console.log('https://zatrapa-gaylien.tumblr.com/');
6
6
 
7
7
  /* GENERAL */
8
8
  document.addEventListener('DOMContentLoaded', () => {
@@ -26,7 +26,7 @@ document.addEventListener('DOMContentLoaded', () => {
26
26
  element = item.querySelector('.color-groups');
27
27
  separated = element.outerHTML.split(element.innerHTML);
28
28
  author = element.textContent;
29
-
29
+
30
30
  element.outerHTML = '<strong><a href="' + FNR.user.getUrl(author) + '" title="Ir al ' + (forumConfig.profileOptions.profileName === undefined ? 'perfil' : forumConfig.profileOptions.profileName) + ' de «' + author + '»">' + separated[0] + Vue.filter('just-name')(author) + separated[1] + '</a></strong>';
31
31
 
32
32
  if (item.querySelector('.lastpost-link')) {
@@ -155,7 +155,7 @@ document.addEventListener('DOMContentLoaded', () => {
155
155
 
156
156
  if (item.querySelector('.topic-lastauthor')) {
157
157
  if (author.querySelector('span')) {
158
- author.innerHTML = '<strong><a href="' + FNR.user.getUrl(author.textContent) + '" title="Ir al ' + (forumConfig.profileOptions.profileName === undefined ? 'perfil' : forumConfig.profileOptions.profileName) + ' de «' + author.textContent + '»">' + author.querySelector('span').outerHTML + '</a></strong>';
158
+ author.innerHTML = '<strong><a href="' + FNR.user.getUrl(author.textContent) + '" title="Ir al ' + (forumConfig.profileOptions.profileName === undefined ? 'perfil' : forumConfig.profileOptions.profileName) + ' de «' + author.textContent + '»">' + author.querySelector('span').outerHTML + '</a></strong>';
159
159
  author.querySelector('strong strong').textContent = Vue.filter('just-name')(author.querySelector('strong strong').textContent);
160
160
 
161
161
  item.querySelector('.topic-lastauthor').outerHTML = author.innerHTML;
@@ -471,7 +471,7 @@ document.addEventListener('DOMContentLoaded', () => {
471
471
  if (document.querySelector('blockquote')) {
472
472
  [].forEach.call(document.querySelectorAll('blockquote cite'), (item) => {
473
473
  item.innerHTML = item.innerHTML.replace(/escribió:/g, '');
474
-
474
+
475
475
  if (item.querySelector('a')) {
476
476
  const who = item.querySelector('a');
477
477
 
@@ -570,7 +570,7 @@ document.addEventListener('DOMContentLoaded', () => {
570
570
  [].forEach.call(document.querySelectorAll('.codebox'), (item) => {
571
571
  item.querySelector('dt span').onclick = () => {
572
572
  navigator.clipboard.writeText(item.querySelector('code').innerText);
573
-
573
+
574
574
  FNR.html.genNotification('¡Copiado!', 'Recuerda engancharlo en algún lugar.', 'fas fa-copy');
575
575
  };
576
576
  });
@@ -2,7 +2,7 @@ Vue.component('tema', {
2
2
  props: ['dataType', 'dataUrl', 'dataName', 'dataDate'],
3
3
  template: `
4
4
  <div class="rp-list">
5
- <a class="rp-element" v-bind:href="dataUrl" target="_blank" v-bind:title="'Ir al tema «' + dataName + '»'">
5
+ <a class="rp-element" :href="dataUrl" target="_blank" :title="'Ir al tema «' + dataName + '»'">
6
6
  <div class="rp-icon">
7
7
  <template v-if="dataType === 'abierto'">
8
8
  <i class="fas fa-lock-open"></i>
@@ -43,10 +43,10 @@ Vue.component('relacion', {
43
43
  }
44
44
  },
45
45
  template: `
46
- <div v-bind:class="relaClass">
46
+ <div :class="relaClass">
47
47
  <template v-if="relaType">
48
- <a class="rela-element" v-bind:href="'/u' + dataId" target="_blank" v-bind:title="'Ir al ' + profileName + ' de «' + dataName + '»'">
49
- <div class="rela-image" v-bind:style="'background-image: url(' + dataImg + ')'"></div>
48
+ <a class="rela-element" :href="'/u' + dataId" target="_blank" :title="'Ir al ' + profileName + ' de «' + dataName + '»'">
49
+ <div class="rela-image" :style="'background-image: url(' + dataImg + ')'"></div>
50
50
  <div class="rela-content">
51
51
  <div class="rela-title">
52
52
  <h4>{{ dataName }}</h4>
@@ -59,7 +59,7 @@ Vue.component('relacion', {
59
59
  </template>
60
60
  <template v-else>
61
61
  <a class="rela-element">
62
- <div class="rela-image" v-bind:style="'background-image: url(' + dataImg + ')'"></div>
62
+ <div class="rela-image" :style="'background-image: url(' + dataImg + ')'"></div>
63
63
  <div class="rela-content">
64
64
  <div class="rela-title">
65
65
  <h4>{{ dataName }}</h4>
@@ -1 +1 @@
1
- Vue.component("tema",{props:["dataType","dataUrl","dataName","dataDate"],template:'\n <div class="rp-list">\n <a class="rp-element" v-bind:href="dataUrl" target="_blank" v-bind:title="\'Ir al tema «\' + dataName + \'»\'">\n <div class="rp-icon">\n <template v-if="dataType === \'abierto\'">\n <i class="fas fa-lock-open"></i>\n </template>\n <template v-else-if="dataType === \'cerrado\'">\n <i class="fas fa-lock"></i>\n </template>\n <template v-else-if="dataType === \'abandonado\'">\n <i class="fas fa-times"></i>\n </template>\n </div>\n <div class="rp-content">\n <div class="rp-name">\n <span>{{ dataName }}</span>\n <small>\n {{ dataDate }} - <slot></slot>\n </small>\n </div>\n </div>\n </a>\n </div>\n '}),Vue.component("relacion",{props:["dataId","dataName","dataImg","dataColor"],data:function(){return{profileName:forumConfig.profileOptions.profileName||"perfil"}},computed:{relaClass:function(){return"rela-list usergroup-"+this.dataColor.toLowerCase()},relaType:function(){return void 0!==this.dataId}},template:'\n <div v-bind:class="relaClass">\n <template v-if="relaType">\n <a class="rela-element" v-bind:href="\'/u\' + dataId" target="_blank" v-bind:title="\'Ir al \' + profileName + \' de «\' + dataName + \'»\'">\n <div class="rela-image" v-bind:style="\'background-image: url(\' + dataImg + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ dataName }}</h4>\n </div>\n <div class="small-text is-content">\n <slot></slot>\n </div>\n </div>\n </a>\n </template>\n <template v-else>\n <a class="rela-element">\n <div class="rela-image" v-bind:style="\'background-image: url(\' + dataImg + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ dataName }}</h4>\n </div>\n <div class="small-text is-content">\n <slot></slot>\n </div>\n </div>\n </a>\n </template>\n </div>\n '});
1
+ Vue.component("tema", { props: ["dataType", "dataUrl", "dataName", "dataDate"], template: '\n <div class="rp-list">\n <a class="rp-element" :href="dataUrl" target="_blank" :title="\'Ir al tema «\' + dataName + \'»\'">\n <div class="rp-icon">\n <template v-if="dataType === \'abierto\'">\n <i class="fas fa-lock-open"></i>\n </template>\n <template v-else-if="dataType === \'cerrado\'">\n <i class="fas fa-lock"></i>\n </template>\n <template v-else-if="dataType === \'abandonado\'">\n <i class="fas fa-times"></i>\n </template>\n </div>\n <div class="rp-content">\n <div class="rp-name">\n <span>{{ dataName }}</span>\n <small>\n {{ dataDate }} - <slot></slot>\n </small>\n </div>\n </div>\n </a>\n </div>\n ' }), Vue.component("relacion", { props: ["dataId", "dataName", "dataImg", "dataColor"], data: function () { return { profileName: forumConfig.profileOptions.profileName || "perfil" } }, computed: { relaClass: function () { return "rela-list usergroup-" + this.dataColor.toLowerCase() }, relaType: function () { return void 0 !== this.dataId } }, template: '\n <div :class="relaClass">\n <template v-if="relaType">\n <a class="rela-element" :href="\'/u\' + dataId" target="_blank" :title="\'Ir al \' + profileName + \' de «\' + dataName + \'»\'">\n <div class="rela-image" :style="\'background-image: url(\' + dataImg + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ dataName }}</h4>\n </div>\n <div class="small-text is-content">\n <slot></slot>\n </div>\n </div>\n </a>\n </template>\n <template v-else>\n <a class="rela-element">\n <div class="rela-image" :style="\'background-image: url(\' + dataImg + \')\'"></div>\n <div class="rela-content">\n <div class="rela-title">\n <h4>{{ dataName }}</h4>\n </div>\n <div class="small-text is-content">\n <slot></slot>\n </div>\n </div>\n </a>\n </template>\n </div>\n ' });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "generic-skin",
3
- "version": "2.3.8",
3
+ "version": "2.5.2",
4
4
  "description": "Generic Forum Skin for Forumotion created by Gaylien.",
5
5
  "main": "readme.md",
6
6
  "scripts": {
package/stylesheet.css CHANGED
@@ -136,6 +136,7 @@ strong {
136
136
 
137
137
  .is-tweakeable {
138
138
  display: block;
139
+ width: 100%;
139
140
  }
140
141
 
141
142
  .is-measurable {
@@ -1 +1 @@
1
- @keyframes dramatic-show{from{opacity:0}to{opacity:1}}.is-dramatic{animation:dramatic-show 1s}@-ms-viewport{width:device-width}*{box-sizing:border-box!important}h1,h2,h3,h4,h5,h6{font-family:var(--font-one)}h1{font-size:2.1rem}h2{font-size:1.9rem}h3{font-size:1.7rem}h4{font-size:1.5rem}h5{font-size:1.3rem}h6{font-size:1.1rem}h2 small,h3 small,h4 small,h5 small,h6 small{display:block;font-weight:400}a:hover{color:var(--color-contrast)}small{font-size:80%}strong{color:inherit}#navbar-original,.forum-head+.forumseparator-element,.subforum-element .category-element>.forum-head,:not(.category-element)+.forum-separator{display:none}.is-pointer{cursor:pointer!important}.is-default{cursor:default!important}.not-show,.to-process{display:none!important}.main-body{max-width:1200px}.is-full-width{width:100%!important;max-width:100%!important}.is-no-links a{border:none!important}.mt-d{margin-top:2rem}.mb-d{margin-bottom:2rem}.is-two-columns-list{display:flex;flex-flow:wrap;margin:-.5rem}.is-two-columns-list>li{width:50%;padding:.5rem}.columns:not(:last-child){margin-bottom:-.75rem}.is-tweakeable{display:block}.is-measurable{white-space:nowrap}.has-anchor{position:relative}.is-selectbox:not(.is-active){display:none!important}.is-clickbox{cursor:pointer!important}.is-clickbox:not(.is-toggle).is-active{cursor:default!important}#forum-notification{position:fixed;right:1rem;bottom:1rem;transition:1s ease-in-out;z-index:999}#forum-notification:not(.notification-show){transform:translateY(400px)}#loading-element{padding:2rem}#loading-content,#loading-element{display:flex;justify-content:center;align-items:center;text-align:center;cursor:default}#loading-content i{font-size:1.25rem;margin-right:.5rem;color:var(--color-contrast)}#loading-content span{font-family:var(--font-one)}#forum-body>.main-body{display:flex;margin:0 auto;padding:3rem 0}#forum-body>.main-body>article{width:100%}aside#left{display:none}#forum-save{display:block}.category-element{margin-bottom:3rem}.category-element:last-child{margin:0!important}#forum-rules{margin-bottom:2rem}#quickreply-section{margin-top:3rem}#forum-realreply{display:none}#forum-reply{margin-bottom:3rem}#forum-reply:last-child{margin-bottom:0}#forum-reply+#privmsg-review #privmsg-see,:not(#forum-reply)+#privmsg-review #privmsg-write{display:none}#usereply-top{display:flex;justify-content:space-between;align-items:center}#usereply-top small{display:block;font-size:50%}.usereply-header{padding:0 .5rem}#usereply-editor{margin-top:1.5rem;height:250px;resize:none}#usereply-buttons ul{display:flex;flex:1 0 auto;justify-content:flex-end}#usereply-buttons ul:first-child{margin-bottom:.5rem}#usereply-buttons ul li{margin-left:.5rem}#usereply-buttons ul li:first-child{margin-left:0}.usereply-button{display:flex;width:2rem;height:2rem;background:0 0;color:var(--color-contrast);border:2px solid;padding:0;justify-content:center;align-items:center;cursor:pointer}#usereply-comand{display:flex;justify-content:center;margin-top:2rem}.usereply-option{font-family:var(--font-one);cursor:pointer;font-size:.85rem;margin-bottom:.4rem;white-space:nowrap}.usereply-option:last-child{margin:0}#usereply-buttons .dropdown-menu::after,#usereply-buttons .dropdown-menu::before{right:7px}#usereply-dice{margin-top:2rem}#usereply-dice h3{margin-bottom:1.5rem}#usereply-dice ul li{display:flex;counter-increment:special-list-counter;margin-bottom:1rem}#usereply-dice ul li:last-child{margin-bottom:0}#usereply-dice ul li::before{content:'#'counter(special-list-counter);display:flex;justify-content:center;align-items:center;flex:0 0 auto;width:2rem;margin-right:.5rem;color:var(--color-contrast);font-family:var(--font-one)}#usereply-dice ul li .dice-more{width:2rem;flex:0 0 auto;border:0;padding:0;background:0 0;color:var(--color-contrast);font-size:1rem;cursor:pointer}#usereply-dice ul li .select-container{flex:1 0 auto;width:inherit}#usereply-dice ul li input{flex:1 1 auto;width:inherit;max-width:30%}#usereply-dice ul li>*{margin-right:.5rem}#usereply-dice ul li>:last-child{margin-right:0}#usereply-extra{margin-bottom:2rem}#emoji-list{display:flex;flex-flow:wrap;overflow:auto;width:220px;max-height:205px;padding:0}#emoji-list iframe{width:100%}.forum-otherposts{margin-top:2rem}#upper-controls+.forum-otherposts{margin-top:0}.forum-otherposts .post{margin-bottom:2rem}.forum-otherposts .post:last-child{margin-bottom:0}.forum-otherposts .post-profile{width:224px}.forum-otherposts .post-profile>*{display:block}.forum-otherposts .post-datafields li{margin-bottom:1rem}.forum-otherposts .post-datafields li:last-child{margin-bottom:0}.forum-otherposts .datafield-name{font-family:var(--font-one)}.forum-otherposts .post-datafield a{font-family:inherit}.post-content.no-links{justify-content:flex-end}.post-content.no-links .is-content{max-width:initial!important}#forum-preview{margin-bottom:2rem}#forum-preview .post-content{justify-content:center}.wiki-body{display:flex;justify-content:space-between}#forum-preview .post-content,.wiki-body{max-width:100%}.wiki-index{align-self:flex-start;margin-right:1.5rem}.wiki-index h3{margin-bottom:1rem}.wiki-index h3::before{display:none}.wiki-index ul{padding-left:2rem}.wiki-index ul li:before{left:-2rem!important;width:2rem!important;text-align:left!important}.wiki-index .is-hidden-mobile{max-height:calc(100vh - 5rem);overflow:auto}.wiki-index .router-link-exact-active.router-link-active{cursor:default}.wiki-index li ul{margin-top:1rem}.wiki-index a{border:none!important;font-family:var(--font-one)!important}.wiki-controls{font-family:var(--font-one);cursor:default}.wiki-index .wiki-controls .wiki-cascade{padding:0;background:0 0;border:none;color:var(--color-contrast);cursor:pointer}.wiki-index .router-link-exact-active.router-link-active,.wiki-index li.is-selected>.wiki-controls>a .text{color:var(--color-two)}.wiki-index li.is-active>.wiki-controls>.wiki-cascade .fa-plus,.wiki-index li:not(.is-active)>.wiki-controls+ul,.wiki-index li:not(.is-active)>.wiki-controls>.wiki-cascade .fa-minus{display:none}.wiki-content{display:flex;flex-flow:column;flex:1 1;max-width:600px}.wiki-nav{margin-top:2.5rem;margin-bottom:1px!important}.input-real{display:none}#mp-info{display:flex;align-items:center;margin-bottom:1.5rem}#mp-info h3,.mp-main h3{margin:0}#mp-info img{width:80px;border:2px solid;margin-left:0;margin-right:1rem}#mp-info h3{font-size:1.15rem}.mp-from a{font-weight:700}.mp-main{border-top:2px solid var(--color-contrast);padding-top:1.5rem}.mp-main>h3{margin-bottom:1.5rem}.mp-main>h3>small{font-size:60%}.post .mp-main>h3>small{display:flex;justify-content:space-between}.field-element{margin-bottom:1rem}.field-element:last-child{margin-bottom:0}.forum-field{display:flex}.forum-field .field-content{flex:1 1 auto}.has-no-label .field-name{display:none}.has-button .field-content{display:flex;align-items:center}.has-button .field-content .button2{margin:0 0 0 .5rem}.forum-checkbox{display:flex;justify-content:center}.checkbox-content{display:flex;align-items:center;cursor:pointer}.forum-checkbox .checkbox-real,.forum-checkbox:not(.is-active) i{display:none}.forum-fieldlist:not(.is-horizontal) .forum-checkbox{max-width:450px;justify-content:flex-start;margin:0 auto;width:100%}#bloque-login .field-name{max-width:180px}#checkbox-autologin{margin-top:2rem}#frmAgreement .post-content{justify-content:center;max-width:100%;margin-bottom:2rem}.field-catcha{margin-top:2rem}.field-catcha .g-recaptcha{display:flex;justify-content:center}.rp-list{margin-bottom:.725rem}.rp-list:last-child{margin-bottom:0}.rp-element{display:flex;align-items:center}.rp-icon{order:0;flex-shrink:0;flex-grow:0;display:flex;justify-content:center;align-items:center;width:25px;height:25px;color:var(--color-contrast)!important;margin-right:.725rem}.rp-content{display:flex;align-items:center;flex-grow:1;max-width:calc(100% - 14px - 1rem)}.rp-name{display:flex;flex-flow:column;min-width:0;line-height:1.3rem;color:var(--color-two)!important;font-size:1.15rem}.rp-name>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%}.rp-name>small{font-size:.925rem;font-family:var(--font-two)}.rp-manager{cursor:default}.rp-manager .rp-content{max-width:100%;justify-content:space-between}.rp-controls{font-family:var(--font-one);color:var(--color-two);text-transform:uppercase;margin-left:1rem;cursor:default}.rp-controls span{color:var(--color-contrast);cursor:pointer}.rela-element{display:flex}.rela-element.rela-manager{cursor:default}.rela-list .rela-element .rela-image{flex:0 0 auto;align-self:flex-start;width:80px;height:80px;margin-right:1rem!important;border:2px solid var(--color-contrast);border-radius:100%;background-size:cover;background-position:center}#forum-relationships .rela-title h4{max-width:370px}.rela-title h4{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem}.rela-content{flex:1 1 auto;color:var(--color-two)}.rela-title{display:flex;justify-content:space-between;align-items:center}.rela-list{margin-bottom:1.5rem!important}.rela-list:last-child{margin-bottom:0!important}.rela-list:last-child::after{display:none}.small-text{margin-top:.25rem;font-family:var(--font-two);font-size:.925rem;line-height:1.25rem}.rela-text.is-content ol,.rela-text.is-content ul{padding-left:1.5rem}.rela-text.is-content ol li::before,.rela-text.is-content ul li::before{left:-1.5rem;width:1.5rem}.rela-text.is-content ol li,.rela-text.is-content ul li{margin-bottom:.5rem}#forum-multiaccount .field-name{text-transform:capitalize}#forum-multiaccount .rp-controls{top:.55em}#forum-multiaccount .rp-controls span{color:var(--color-one)}#forum-chronology .rp-name{max-width:57vw}ul.no-style{padding:0!important;list-style:none!important}ul.no-style>li::before{content:''!important;position:initial!important}ul.no-style a{border:none!important}body>footer,body>header,body>section{padding-left:1.25rem!important;padding-right:1.25rem!important}@media only screen and (max-width:1023px){header.forum-panel{min-height:initial}.wiki-body{flex-flow:column}.wiki-content{max-width:100%!important}.wiki-index{position:inherit!important;width:100%;margin-bottom:2rem;margin-right:0}}@media only screen and (max-width:768px){#forum-modal .modal-element{max-width:95%;width:100%}.forum-field .date-dmy label input{margin-left:.5rem}.rela-image{display:none}.forum-otherposts .post-profile,.post .mp-main>h3{position:initial}.forum-otherposts .post-profile,.post .mp-main>h3{position:initial;width:100%!important;margin-right:0;margin-bottom:1.5rem}.post .mp-main small{font-size:1rem}.post-content,.post-content .is-content{max-width:none}.is-two-columns-list>li{width:100%}}@media only screen and (max-width:487px){h1{font-size:1.7rem}h2{font-size:1.55rem}h3{font-size:1.4rem}h4{font-size:1.25rem}h5{font-size:1.1rem}.forum-field{flex-flow:column}.forum-field .field-name{height:auto!important;line-height:initial!important;max-width:initial!important;margin-right:0!important;margin-bottom:.825rem!important;border-bottom:0!important}}@supports ((-webkit-hyphens:auto) or (hyphens:auto)){.is-content{-webkit-hyphens:auto;hyphens:auto}}
1
+ @keyframes dramatic-show{from{opacity:0}to{opacity:1}}.is-dramatic{animation:dramatic-show 1s}@-ms-viewport{width:device-width}*{box-sizing:border-box!important}h1,h2,h3,h4,h5,h6{font-family:var(--font-one)}h1{font-size:2.1rem}h2{font-size:1.9rem}h3{font-size:1.7rem}h4{font-size:1.5rem}h5{font-size:1.3rem}h6{font-size:1.1rem}h2 small,h3 small,h4 small,h5 small,h6 small{display:block;font-weight:400}a:hover{color:var(--color-contrast)}small{font-size:80%}strong{color:inherit}#navbar-original,.forum-head+.forumseparator-element,.subforum-element .category-element>.forum-head,:not(.category-element)+.forum-separator{display:none}.is-pointer{cursor:pointer!important}.is-default{cursor:default!important}.not-show,.to-process{display:none!important}.main-body{max-width:1200px}.is-full-width{width:100%!important;max-width:100%!important}.is-no-links a{border:none!important}.mt-d{margin-top:2rem}.mb-d{margin-bottom:2rem}.is-two-columns-list{display:flex;flex-flow:wrap;margin:-.5rem}.is-two-columns-list>li{width:50%;padding:.5rem}.columns:not(:last-child){margin-bottom:-.75rem}.is-tweakeable{display:block;width:100%}.is-measurable{white-space:nowrap}.has-anchor{position:relative}.is-selectbox:not(.is-active){display:none!important}.is-clickbox{cursor:pointer!important}.is-clickbox:not(.is-toggle).is-active{cursor:default!important}#forum-notification{position:fixed;right:1rem;bottom:1rem;transition:1s ease-in-out;z-index:999}#forum-notification:not(.notification-show){transform:translateY(400px)}#loading-element{padding:2rem}#loading-content,#loading-element{display:flex;justify-content:center;align-items:center;text-align:center;cursor:default}#loading-content i{font-size:1.25rem;margin-right:.5rem;color:var(--color-contrast)}#loading-content span{font-family:var(--font-one)}#forum-body>.main-body{display:flex;margin:0 auto;padding:3rem 0}#forum-body>.main-body>article{width:100%}aside#left{display:none}#forum-save{display:block}.category-element{margin-bottom:3rem}.category-element:last-child{margin:0!important}#forum-rules{margin-bottom:2rem}#quickreply-section{margin-top:3rem}#forum-realreply{display:none}#forum-reply{margin-bottom:3rem}#forum-reply:last-child{margin-bottom:0}#forum-reply+#privmsg-review #privmsg-see,:not(#forum-reply)+#privmsg-review #privmsg-write{display:none}#usereply-top{display:flex;justify-content:space-between;align-items:center}#usereply-top small{display:block;font-size:50%}.usereply-header{padding:0 .5rem}#usereply-editor{margin-top:1.5rem;height:250px;resize:none}#usereply-buttons ul{display:flex;flex:1 0 auto;justify-content:flex-end}#usereply-buttons ul:first-child{margin-bottom:.5rem}#usereply-buttons ul li{margin-left:.5rem}#usereply-buttons ul li:first-child{margin-left:0}.usereply-button{display:flex;width:2rem;height:2rem;background:0 0;color:var(--color-contrast);border:2px solid;padding:0;justify-content:center;align-items:center;cursor:pointer}#usereply-comand{display:flex;justify-content:center;margin-top:2rem}.usereply-option{font-family:var(--font-one);cursor:pointer;font-size:.85rem;margin-bottom:.4rem;white-space:nowrap}.usereply-option:last-child{margin:0}#usereply-buttons .dropdown-menu::after,#usereply-buttons .dropdown-menu::before{right:7px}#usereply-dice{margin-top:2rem}#usereply-dice h3{margin-bottom:1.5rem}#usereply-dice ul li{display:flex;counter-increment:special-list-counter;margin-bottom:1rem}#usereply-dice ul li:last-child{margin-bottom:0}#usereply-dice ul li::before{content:'#'counter(special-list-counter);display:flex;justify-content:center;align-items:center;flex:0 0 auto;width:2rem;margin-right:.5rem;color:var(--color-contrast);font-family:var(--font-one)}#usereply-dice ul li .dice-more{width:2rem;flex:0 0 auto;border:0;padding:0;background:0 0;color:var(--color-contrast);font-size:1rem;cursor:pointer}#usereply-dice ul li .select-container{flex:1 0 auto;width:inherit}#usereply-dice ul li input{flex:1 1 auto;width:inherit;max-width:30%}#usereply-dice ul li>*{margin-right:.5rem}#usereply-dice ul li>:last-child{margin-right:0}#usereply-extra{margin-bottom:2rem}#emoji-list{display:flex;flex-flow:wrap;overflow:auto;width:220px;max-height:205px;padding:0}#emoji-list iframe{width:100%}.forum-otherposts{margin-top:2rem}#upper-controls+.forum-otherposts{margin-top:0}.forum-otherposts .post{margin-bottom:2rem}.forum-otherposts .post:last-child{margin-bottom:0}.forum-otherposts .post-profile{width:224px}.forum-otherposts .post-profile>*{display:block}.forum-otherposts .post-datafields li{margin-bottom:1rem}.forum-otherposts .post-datafields li:last-child{margin-bottom:0}.forum-otherposts .datafield-name{font-family:var(--font-one)}.forum-otherposts .post-datafield a{font-family:inherit}.post-content.no-links{justify-content:flex-end}.post-content.no-links .is-content{max-width:initial!important}#forum-preview{margin-bottom:2rem}#forum-preview .post-content{justify-content:center}.wiki-body{display:flex;justify-content:space-between}#forum-preview .post-content,.wiki-body{max-width:100%}.wiki-index{align-self:flex-start;margin-right:1.5rem}.wiki-index h3{margin-bottom:1rem}.wiki-index h3::before{display:none}.wiki-index ul{padding-left:2rem}.wiki-index ul li:before{left:-2rem!important;width:2rem!important;text-align:left!important}.wiki-index .is-hidden-mobile{max-height:calc(100vh - 5rem);overflow:auto}.wiki-index .router-link-exact-active.router-link-active{cursor:default}.wiki-index li ul{margin-top:1rem}.wiki-index a{border:none!important;font-family:var(--font-one)!important}.wiki-controls{font-family:var(--font-one);cursor:default}.wiki-index .wiki-controls .wiki-cascade{padding:0;background:0 0;border:none;color:var(--color-contrast);cursor:pointer}.wiki-index .router-link-exact-active.router-link-active,.wiki-index li.is-selected>.wiki-controls>a .text{color:var(--color-two)}.wiki-index li.is-active>.wiki-controls>.wiki-cascade .fa-plus,.wiki-index li:not(.is-active)>.wiki-controls+ul,.wiki-index li:not(.is-active)>.wiki-controls>.wiki-cascade .fa-minus{display:none}.wiki-content{display:flex;flex-flow:column;flex:1 1;max-width:600px}.wiki-nav{margin-top:2.5rem;margin-bottom:1px!important}.input-real{display:none}#mp-info{display:flex;align-items:center;margin-bottom:1.5rem}#mp-info h3,.mp-main h3{margin:0}#mp-info img{width:80px;border:2px solid;margin-left:0;margin-right:1rem}#mp-info h3{font-size:1.15rem}.mp-from a{font-weight:700}.mp-main{border-top:2px solid var(--color-contrast);padding-top:1.5rem}.mp-main>h3{margin-bottom:1.5rem}.mp-main>h3>small{font-size:60%}.post .mp-main>h3>small{display:flex;justify-content:space-between}.field-element{margin-bottom:1rem}.field-element:last-child{margin-bottom:0}.forum-field{display:flex}.forum-field .field-content{flex:1 1 auto}.has-no-label .field-name{display:none}.has-button .field-content{display:flex;align-items:center}.has-button .field-content .button2{margin:0 0 0 .5rem}.forum-checkbox{display:flex;justify-content:center}.checkbox-content{display:flex;align-items:center;cursor:pointer}.forum-checkbox .checkbox-real,.forum-checkbox:not(.is-active) i{display:none}.forum-fieldlist:not(.is-horizontal) .forum-checkbox{max-width:450px;justify-content:flex-start;margin:0 auto;width:100%}#bloque-login .field-name{max-width:180px}#checkbox-autologin{margin-top:2rem}#frmAgreement .post-content{justify-content:center;max-width:100%;margin-bottom:2rem}.field-catcha{margin-top:2rem}.field-catcha .g-recaptcha{display:flex;justify-content:center}.rp-list{margin-bottom:.725rem}.rp-list:last-child{margin-bottom:0}.rp-element{display:flex;align-items:center}.rp-icon{order:0;flex-shrink:0;flex-grow:0;display:flex;justify-content:center;align-items:center;width:25px;height:25px;color:var(--color-contrast)!important;margin-right:.725rem}.rp-content{display:flex;align-items:center;flex-grow:1;max-width:calc(100% - 14px - 1rem)}.rp-name{display:flex;flex-flow:column;min-width:0;line-height:1.3rem;color:var(--color-two)!important;font-size:1.15rem}.rp-name>*{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%}.rp-name>small{font-size:.925rem;font-family:var(--font-two)}.rp-manager{cursor:default}.rp-manager .rp-content{max-width:100%;justify-content:space-between}.rp-controls{font-family:var(--font-one);color:var(--color-two);text-transform:uppercase;margin-left:1rem;cursor:default}.rp-controls span{color:var(--color-contrast);cursor:pointer}.rela-element{display:flex}.rela-element.rela-manager{cursor:default}.rela-list .rela-element .rela-image{flex:0 0 auto;align-self:flex-start;width:80px;height:80px;margin-right:1rem!important;border:2px solid var(--color-contrast);border-radius:100%;background-size:cover;background-position:center}#forum-relationships .rela-title h4{max-width:370px}.rela-title h4{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem}.rela-content{flex:1 1 auto;color:var(--color-two)}.rela-title{display:flex;justify-content:space-between;align-items:center}.rela-list{margin-bottom:1.5rem!important}.rela-list:last-child{margin-bottom:0!important}.rela-list:last-child::after{display:none}.small-text{margin-top:.25rem;font-family:var(--font-two);font-size:.925rem;line-height:1.25rem}.rela-text.is-content ol,.rela-text.is-content ul{padding-left:1.5rem}.rela-text.is-content ol li::before,.rela-text.is-content ul li::before{left:-1.5rem;width:1.5rem}.rela-text.is-content ol li,.rela-text.is-content ul li{margin-bottom:.5rem}#forum-multiaccount .field-name{text-transform:capitalize}#forum-multiaccount .rp-controls{top:.55em}#forum-multiaccount .rp-controls span{color:var(--color-one)}#forum-chronology .rp-name{max-width:57vw}ul.no-style{padding:0!important;list-style:none!important}ul.no-style>li::before{content:''!important;position:initial!important}ul.no-style a{border:none!important}body>footer,body>header,body>section{padding-left:1.25rem!important;padding-right:1.25rem!important}@media only screen and (max-width:1023px){header.forum-panel{min-height:initial}.wiki-body{flex-flow:column}.wiki-content{max-width:100%!important}.wiki-index{position:inherit!important;width:100%;margin-bottom:2rem;margin-right:0}}@media only screen and (max-width:768px){#forum-modal .modal-element{max-width:95%;width:100%}.forum-field .date-dmy label input{margin-left:.5rem}.rela-image{display:none}.forum-otherposts .post-profile,.post .mp-main>h3{position:initial}.forum-otherposts .post-profile,.post .mp-main>h3{position:initial;width:100%!important;margin-right:0;margin-bottom:1.5rem}.post .mp-main small{font-size:1rem}.post-content,.post-content .is-content{max-width:none}.is-two-columns-list>li{width:100%}}@media only screen and (max-width:487px){h1{font-size:1.7rem}h2{font-size:1.55rem}h3{font-size:1.4rem}h4{font-size:1.25rem}h5{font-size:1.1rem}.forum-field{flex-flow:column}.forum-field .field-name{height:auto!important;line-height:initial!important;max-width:initial!important;margin-right:0!important;margin-bottom:.825rem!important;border-bottom:0!important}}@supports ((-webkit-hyphens:auto) or (hyphens:auto)){.is-content{-webkit-hyphens:auto;hyphens:auto}}