castelog
Version:
Programación JavaScript en castellano.
1,054 lines • 52.4 kB
JSON
[
"onCompletion",
{
"_uri": "file:///home/carlos/Escritorio/Nuevo/xass-b2/comandos/lib/interfaz/app.calo",
"_languageId": "castelog",
"_version": 6923,
"_content": "Ejecutable como documento HTML5\n con autor allnulled\n con nombre xass-ui\n con versión 1.0.0\n<head>\n <title>xass-ui</title>\n <meta charset=\"utf8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <link rel=\"icon\" type=\"image/x-icon\" href=\"/static/favicon.ico\" />\n <script src=\"./js/socket.io.min.js\"></script>\n <style>\n html,body { padding: 0px !important; margin: 0px !important; }\n .contenedor_de_menu_de_navegacion { display: none; }\n .contenedor_de_menu_de_navegacion.seleccionado { display: block; }\n\n ul,li { padding: 0px; margin: 0px; list-style: none; }\n input[type=file] { padding: 3px; }\n .fuente_titulo { font-size: 15px; font-weight: bold; }\n .menu_de_navegacion { position: relative; }\n .menu_de_navegacion > .opciones_de_menu { position: absolute; top: 0; left: 0; background-color: white; border: 1px solid #333; border-top: 1px solid #333; z-index: 999; }\n .opciones_de_menu { min-width: 150px; }\n .opcion_de_menu {}\n .CapaScrolable { overflow: scroll; position: relative; min-width: 100%; min-height: 100px; resize: vertical; border: 1px solid #CCC; }\n .capa_scrolable_interna { position: absolute; top: 0; left: 0; }\n .control_de_opcion_textual { color: #888; cursor: pointer; }\n .control_de_opcion_textual.seleccionado { color: black; text-decoration: underline; }\n .width_100x100 { width: 100%; }\n .text_align_left { text-align: left; }\n .Tarjeta { border: 1px solid #888; }\n .fondo_b { background-color: #E8E8E8; }\n .text_align_right { text-align: right; }\n .boton_pequenyo { padding: 3px; }\n\n input[type=\"text\"],\n input[type=\"number\"],\n input[type=\"file\"],\n .ControlParaBoton { border-radius: 0pt; border: none; background-color: #CCC; }\n \n input[type=\"text\"],\n input[type=\"number\"],\n input[type=\"file\"],\n .ControlParaBoton:hover { background-color: #DDD; }\n\n </style>\n</head>\n<body><div id=\"app\"></div></body>.\n\nimporto api nativa.\n\ndebugo \"Iniciando aplicación xass-ui\".\n\ncreo Gestor_de_autentificacion como {\n propiedad token como \"LQL\".\n}.\n\ncreo socket_cliente como un cliente socket.io el cual {\n en evento \"connection\" está usando una función con (socket) donde {\n debugo \"socket_cliente.{evento=connection}\".\n imprimo \"Conectado!\".\n }.\n en evento \"comando:xass:x:separar@respuesta\" está usando una función con (datos) donde {\n debugo \"socket_cliente.{evento=comando:xass:x:separar@respuesta}\".\n imprimo datos textualizado.\n }.\n}.\n\nhago socket_cliente.emit(\"comando:xass:x:separar\", { mensaje: \"Hola desde socket.io!\" }).\n\ncreo utilidades como {\n método de_fecha_a_texto con (fecha) donde {\n debugo \"utilidades.de_fecha_a_texto\".\n retorno un formateo de fecha a texto a partir de fecha.\n }.\n método de_ruta_a_extension con (ruta) donde {\n debugo \"utilidades.de_ruta_a_extension\".\n creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n creo posicion como ruta_invertida.indexOf(\".\").\n retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n }.\n método de_ruta_a_nombre_de_fichero con (ruta) donde {\n debugo \"utilidades.de_ruta_a_nombre_de_fichero\".\n creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n creo posicion como ruta_invertida.indexOf(\"/\").\n retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n }.\n método gestionar_error con (error) donde {\n hago window.alert(`${error.name}: ${error.message} ${JSON.stringify(error.stack)}`).\n }.\n}.\n\ncreo ruta_de_servidor como una función con (url) donde {\n retorno `http://127.0.0.1:9854${url}`.\n}.\n\ncreo comandos_remotos como {\n propiedad xass_x_separar como {\n propiedad url como ruta_de_servidor(\"/comando/xass/x/separar\").\n propiedad accion como una función.\n }.\n propiedad os_listar_comandos como {\n propiedad url como ruta_de_servidor(\"/comando/os/listar_comandos\").\n propiedad accion como una función.\n }.\n propiedad os_listar_directorio como {\n propiedad url como ruta_de_servidor(\"/comando/os/listar_directorio\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_listar_directorio.accion\".\n creo respuesta como asíncronamente una petición http\n con url comandos_remotos.os_listar_directorio.url\n con método \"GET\"\n con cuerpo {}\n con cabeceras {}.\n retorno respuesta.data.\n } en errores hago utilidades.gestionar_error(error).\n }.\n propiedad os_crear_carpeta como {\n propiedad url como ruta_de_servidor(\"/comando/os/crear_carpeta\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_crear_carpeta.accion\".\n }.\n }.\n propiedad os_eliminar_carpeta como {\n propiedad url como ruta_de_servidor(\"/comando/os/eliminar_carpeta\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_eliminar_carpeta.accion\".\n }.\n }.\n propiedad os_eliminar_fichero como {\n propiedad url como ruta_de_servidor(\"/comando/os/eliminar_fichero\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_eliminar_fichero.accion\".\n }.\n }.\n propiedad os_subir_fichero como {\n propiedad url como ruta_de_servidor(\"/comando/os/subir_fichero\").\n método asíncrono accion con (fichero) donde {\n debugo \"comandos_remotos.os_subir_fichero.accion\".\n creo formulario como un nuevo FormData().\n hago formulario.append(\"fichero\", fichero).\n creo respuesta como asíncronamente una petición http\n con url comandos_remotos.os_subir_fichero.url\n con método \"POST\"\n con cuerpo formulario\n con cabeceras { \"Content-type\": \"multipart/form-data\", \"Authorization\": Gestor_de_autentificacion.token }\n .\n imprimo respuesta.\n retorno respuesta.\n } en errores hago gestionar_error(error).\n }.\n propiedad os_bajar_fichero como {\n propiedad url como ruta_de_servidor(\"/comando/os/bajar_fichero\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_bajar_fichero.accion\".\n }.\n }.\n propiedad os_copiar_fichero como {\n propiedad url como ruta_de_servidor(\"/comando/os/copiar_fichero\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_copiar_fichero.accion\".\n }.\n }.\n}.\n\ncreo opciones_de_props_de_control_por_defecto como {\n propiedad valorInicial como \"\".\n propiedad tiposDeValorInicial como [String,Number,Boolean,Object,Function,undefined].\n}.\n\ncreo props_de_control_tipico como una función con (opciones_de_usuario o en su defecto {}) donde {\n creo opciones como {} extendido por opciones_de_props_de_control_por_defecto también extendido por opciones_de_usuario.\n retorno {\n propiedad contenedor como {\n propiedad type como Object.\n propiedad required como true.\n }.\n propiedad propiedad como {\n propiedad type como String.\n propiedad required como true.\n }.\n propiedad valorInicial como {\n propiedad type como opciones.tiposDeValorInicial.\n propiedad default como opciones.valorInicial.\n }.\n propiedad relleno como {\n propiedad type como String.\n propiedad default como \"\".\n }.\n }.\n}.\n\ncreo watch_de_control_tipico como {\n método valor_interno con (nuevo_valor) donde {\n debugo \"watch_de_control_tipico.valor_interno\".\n asigno this.contenedor[this.propiedad] como nuevo_valor.\n }.\n}.\n\ncreo BarraSuperior como un componente vue2 con nombre \"BarraSuperior\" con plantilla {\n <div class=\"BarraSuperior Component\">\n <div style=\"display: table; width: 100%;\">\n <div style=\"display: table-cell;\">\n <slot name=\"esquina\"></slot>\n </div>\n <div style=\"display: table-cell; width: 100%;\">\n <slot name=\"barra\"></slot>\n </div>\n </div>\n <div class=\"contenedor_de_menu_de_navegacion\" :class=\"{seleccionado: $root.esta_mostrando_menu}\">\n <slot name=\"menu\"></slot>\n </div>\n </div>\n}.\n\ncreo PaginaDeInicio como un componente vue2 con nombre \"PaginaDeInicio\" con plantilla {\n <div class=\"PaginaDeInicio Component\">\n <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-top: 0;\"></LineaHorizontal>\n <div class=\"fuente_titulo\">Inicio</div>\n <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-bottom: 0;\"></LineaHorizontal>\n </div>\n}.\n\ncreo CapaScrolable como un componente vue2 con nombre \"CapaScrolable\" con plantilla {\n <div class=\"CapaScrolable Component\">\n <div class=\"capa_scrolable_interna\">\n <slot></slot>\n </div>\n </div>\n}.\n\ncreo ControlParaFichero2 como un componente vue2 con nombre \"ControlParaFichero2\" con plantilla {\n <div class=\"ControlParaFichero2\">\n <input style=\"width: 100%;\" type=\"file\" multiple=\"true\" v-on:change=\"establecer_valor\" :accept=\"extensiones\" />\n <template v-if=\"valor_interno\">\n <EtiquetaDeControl>Ficheros seleccionados:</EtiquetaDeControl>\n <CapaScrolable class=\"marginado_top_2\">\n <table>\n <thead>\n <tr>\n <td>Extensión</td>\n <td>Tamaño</td>\n <td>Última modificación</td>\n <td>Fichero</td>\n </tr>\n </thead>\n <tbody>\n <tr v-for=\"(fichero, ficheroIndex) in valor_interno\" v-bind:key=\"'fichero-para-separar-' + ficheroIndex\">\n <td><span class=\"no_contraer_texto\">{{ fichero.type ? fichero.type : $utils.de_ruta_a_extension(fichero.path) }}</span></td>\n <td><span class=\"no_contraer_texto\">{{ fichero.size / 1000 }}KB</span></td>\n <td><span class=\"no_contraer_texto\">{{ $utils.de_fecha_a_texto(fichero.lastModifiedDate) }}</span></td>\n <td><span class=\"no_contraer_texto\">{{ fichero.name }}</span></td>\n </tr>\n </tbody>\n </table>\n </CapaScrolable>\n </template>\n </div>\n} con lógica {\n retorno {\n propiedad props como {\n propiedad extensiones como {\n propiedad type como String.\n propiedad default como \"*\".\n }.\n ...incluyo props_de_control_tipico()\n }.\n método data donde {\n debugo \"ControlParaFichero2.data\".\n retorno {\n propiedad valor_interno como undefined.\n }.\n }.\n propiedad methods como {\n método establecer_valor como una función con (valor) donde {\n debugo \"ControlParaFichero2.methods.establecer_valor\".\n asigno this.valor_interno como valor.target.files o [].\n imprimo this.valor_interno.\n }.\n }.\n propiedad watch como {\n ...incluyo watch_de_control_tipico\n }.\n }.\n}.\ncreo ControlParaNumero2 como un componente vue2 con nombre \"ControlParaNumero2\" con plantilla {\n <div class=\"ControlParaNumero2\">\n <div style=\"display: table; width: 100%;\">\n <div style=\"display: table-cell; width: 1%;\">\n <ControlParaBoton v-on:click.native=\"decrementar\"> « </ControlParaBoton>\n </div>\n <div style=\"display: table-cell; width: 100%;\" class=\"espaciado_horizontal_2\">\n <input style=\"width: 100%;\" type=\"number\" v-model=\"valor_interno\" :placeholder=\"relleno\" :step=\"intervalos\" />\n </div>\n <div style=\"display: table-cell; width: 1%;\">\n <ControlParaBoton v-on:click.native=\"incrementar\"> » </ControlParaBoton>\n </div>\n </div>\n </div>\n} con lógica {\n retorno {\n propiedad props como {\n propiedad intervalos como {\n propiedad type como Number.\n propiedad default como 1.\n }.\n ...incluyo props_de_control_tipico({ valorInicial: 0, tiposDeValorInicial: Number })\n }.\n método data donde {\n debugo \"ControlParaNumero2.data\".\n retorno {\n propiedad valor_interno como this.valorInicial.\n }.\n }.\n propiedad methods como {\n método incrementar donde {\n debugo \"ControlParaNumero2.methods.incrementar\".\n asigno this.valor_interno como Math.round((this.valor_interno + this.intervalos) * 100) / 100.\n }.\n método decrementar donde {\n debugo \"ControlParaNumero2.methods.decrementar\".\n asigno this.valor_interno como Math.round((this.valor_interno - this.intervalos) * 100) / 100.\n }.\n }.\n propiedad watch como {\n ...incluyo watch_de_control_tipico\n }.\n }.\n}.\ncreo ControlParaTexto2 como un componente vue2 con nombre \"ControlParaTexto2\" con plantilla {\n <div class=\"ControlParaTexto2\">\n <input style=\"width: 100%;\" type=\"text\" v-model=\"valor_interno\" :placeholder=\"relleno\" />\n </div>\n} con lógica {\n retorno {\n propiedad props como {\n ...incluyo props_de_control_tipico({ valorInicial: \"\", tiposDeValorInicial: String })\n }.\n método data donde {\n debugo \"ControlParaTexto2.data\".\n retorno {\n propiedad valor_interno como \"\".\n }.\n }.\n propiedad watch como {\n ...incluyo watch_de_control_tipico\n }.\n }.\n}.\ncreo ControlParaTextoLargo2 como un componente vue2 con nombre \"ControlParaTextoLargo2\" con plantilla {\n <div class=\"ControlParaTextoLargo2 Component\">\n <textarea style=\"width: 100%;\" v-model=\"valor_interno\" :placeholder=\"relleno\"></textarea>\n </div>\n} con lógica {\n retorno {\n propiedad props como {\n ...incluyo props_de_control_tipico({ valorInicial: \"\", tiposDeValorInicial: String })\n }.\n método data donde {\n debugo \"ControlParaTextoLargo2.data\".\n retorno {\n propiedad valor_interno como \"\".\n }.\n }.\n propiedad watch como {\n ...incluyo watch_de_control_tipico\n }.\n }.\n}.\n\ncreo Cargando como un componente vue2 con nombre \"Cargando\" con plantilla {\n <div class=\"Cargando Component\">\n <slot></slot>\n </div>\n}.\n\ncreo Tarjeta como un componente vue2 con nombre \"Tarjeta\" con plantilla {\n <div class=\"Tarjeta Component\">\n <slot></slot>\n </div>\n}.\n\ncreo PaginaDePantallaExplorador como un componente vue2 con nombre \"PaginaDePantallaExplorador\" con plantilla {\n <div class=\"PaginaDePantallaExplorador Component\">\n <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-top: 0;\"></LineaHorizontal>\n <div class=\"fuente_titulo\">Explorador de ficheros</div>\n <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-bottom: 0;\"></LineaHorizontal>\n <div class=\"espaciado_2\">\n <EtiquetaDeControl>Explorador:</EtiquetaDeControl>\n <Cargando v-if=\"!Array.isArray(ficheros_para_explorar_internos)\">Cargando ficheros del servidor...</Cargando>\n <template v-else-if=\"ficheros_para_explorar_internos.length\">\n <CapaScrolable>\n <table>\n <tbody v-for=\"(fichero, ficheroIndex) in ficheros_para_explorar_internos\" v-bind:key=\"'explorador-de-ficheros-fichero-' + ficheroIndex\">\n <tr>\n <td>\n <template v-if=\"fichero.endsWith('.ass')\">\n <ControlParaBoton class=\"boton_pequenyo\">Abrir</ControlParaBoton>\n </template>\n </td>\n <td class=\"no_contraer_texto\">{{ ficheroIndex + 1 }}</td>\n <td class=\"no_contraer_texto\">{{ fichero }}</td>\n <td>\n <template v-if=\"fichero.endsWith('.ass')\">\n <ControlParaBoton class=\"boton_pequenyo\">Eliminar</ControlParaBoton>\n </template>\n </td>\n </tr>\n </tbody>\n </table>\n </CapaScrolable>\n </template>\n <template v-else-if=\"Array.isArray(ficheros_para_explorar_internos)\">\n No se encontraron ficheros en el servidor actualmente.\n </template>\n <Tarjeta class=\"espaciado_2 espaciado_arriba_0 marginado_arriba_2 fondo_b\">\n <EtiquetaDeControl>Ficheros para subir:</EtiquetaDeControl>\n <ControlParaFichero2 :contenedor=\"this\" propiedad=\"ficheros_para_subir_internos\" extensiones=\".ass\" ref=\"ficheros_para_subir\"></ControlParaFichero2>\n <template v-if=\"ficheros_para_subir_internos && ficheros_para_subir_internos.length\">\n <EtiquetaDeControl>Estado de las subidas:</EtiquetaDeControl>\n <CapaScrolable>\n <table>\n <tbody v-for=\"(fichero, ficheroIndex) in ficheros_para_subir_internos\" v-bind:key=\"'explorador-de-ficheros-fichero-' + ficheroIndex\">\n <tr>\n <td>\n <template v-if=\"fichero.name.endsWith('.ass')\">\n <ControlParaBoton v-if=\"fichero.estado_de_la_subida === 'subiendo'\" disabled=\"true\">Subiendo</ControlParaBoton>\n <ControlParaBoton v-else-if=\"fichero.estado_de_la_subida === 'completado'\" disabled=\"true\">Completado</ControlParaBoton>\n <ControlParaBoton v-else v-on:click.native=\"() => subir_fichero(fichero)\">Subir</ControlParaBoton>\n </template>\n </td>\n <td class=\"no_contraer_texto\">{{ ficheroIndex + 1 }}</td>\n <td class=\"no_contraer_texto\">{{ fichero.name }}</td>\n <td class=\"no_contraer_texto\">{{ $utils.de_fecha_a_texto(new Date(fichero.lastModified)) }}</td>\n </tr>\n </tbody>\n </table>\n </CapaScrolable>\n <div class=\"marginado_arriba_2 text_align_right\">\n <ControlParaBoton class=\"no_contraer_texto\" v-on:click.native=\"limpiar_ficheros\">Cancelar</ControlParaBoton>\n <ControlParaBoton class=\"no_contraer_texto\" v-on:click.native=\"subir_ficheros\">Subir todos</ControlParaBoton>\n </div>\n </template>\n </Tarjeta>\n </div>\n </div>\n} con lógica {\n retorno {\n método data donde {\n debugo \"PaginaDePantallaExplorador.data\".\n retorno {\n propiedad ficheros_para_subir_internos como [].\n propiedad ficheros_para_explorar_internos como undefined.\n }.\n }.\n propiedad methods como {\n método asíncrono subir_fichero con (fichero) donde {\n debugo \"PaginaDePantallaExplorador.methods.subir_fichero\".\n asigno fichero.estado_de_la_subida como \"subiendo\".\n hago this.$forceUpdate(true).\n creo respuesta como asíncronamente comandos_remotos.os_subir_fichero.accion(fichero).\n asigno fichero.estado_de_la_subida como \"completado\".\n hago this.$forceUpdate(true).\n retorno respuesta.\n } en errores hago gestionar_error(error).\n método asíncrono limpiar_ficheros donde {\n asigno this.ficheros_para_subir_internos como [].\n }.\n método asíncrono subir_ficheros donde {\n debugo \"PaginaDePantallaExplorador.methods.subir_ficheros\".\n desde 0 hasta this.ficheros_para_subir_internos.length {\n creo fichero como this.ficheros_para_subir_internos[index].\n asigno fichero.estado_de_la_subida como \"sin empezar\".\n hago asíncronamente this.subir_fichero(fichero).\n }.\n } en errores hago gestionar_error(error).\n }.\n propiedad watch como {\n \n }.\n método asíncrono mounted donde {\n debugo \"PaginaDePantallaExplorador.mounted\".\n desacoplo constantes { ficheros } a partir de asíncronamente comandos_remotos.os_listar_directorio.accion().\n asigno this.ficheros_para_explorar_internos como ficheros.\n } en errores hago gestionar_error(error).\n }.\n}.\n\ncreo PaginaDeComandoSeparar como un componente vue2 con nombre \"PaginaDeComandoSeparar\" con plantilla {\n <div class=\"PaginaDeComandoSeparar Component\">\n <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-top: 0;\"></LineaHorizontal>\n <div class=\"fuente_titulo\">Comando: «xass -x separar»</div>\n <LineaHorizontal class=\"marginado_vertical_2\" style=\"margin-bottom: 0;\"></LineaHorizontal>\n <div class=\"espaciado_2\">\n <EtiquetaDeControl>Ficheros a aplicar separación mínima entre subtítulos:</EtiquetaDeControl>\n <ControlParaFichero2 :contenedor=\"this\" propiedad=\"ficheros_internos\" extensiones=\".ass\"></ControlParaFichero2>\n <EtiquetaDeControl>Carga izquierda <b>(en porcentaje)</b>:</EtiquetaDeControl>\n <ControlParaNumero2 :contenedor=\"this\" propiedad=\"carga_izquierda_interna\" ref=\"carga_izquierda\" :valor-inicial=\"carga_izquierda_interna\"></ControlParaNumero2>\n <EtiquetaDeControl>Carga derecha <b>(en porcentaje)</b>:</EtiquetaDeControl>\n <ControlParaNumero2 :contenedor=\"this\" propiedad=\"carga_derecha_interna\" ref=\"carga_derecha\" :valor-inicial=\"carga_derecha_interna\"></ControlParaNumero2>\n <EtiquetaDeControl>Separación mínima <b>(en centésimas de segundo)</b>:</EtiquetaDeControl>\n <ControlParaNumero2 :contenedor=\"this\" propiedad=\"separacion_minima_interna\" ref=\"separacion_minima\" :valor-inicial=\"separacion_minima_interna\" :intervalos=\"0.01\"></ControlParaNumero2>\n <EtiquetaDeControl>Incluye estilos <b>(<span class=\"control_de_opcion_textual\" :class=\"{seleccionado:!incluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_incluye_estilos_a_texto\">en texto</span> o <span class=\"control_de_opcion_textual\" :class=\"{seleccionado:incluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_incluye_estilos_a_regexp\">en expresión regular</span>)</b>:</EtiquetaDeControl>\n <template v-if=\"!incluye_estilos_por_regexp_interno\">\n <ControlParaTexto2 :contenedor=\"this\" propiedad=\"incluye_estilos_interno\" ref=\"incluye_estilos\" :valor-inicial=\"incluye_estilos_interno\" relleno=\"Modo texto: Estilo 1\"></ControlParaTexto2>\n </template>\n <template v-else>\n <ControlParaTexto2 :contenedor=\"this\" propiedad=\"incluye_estilos_interno\" ref=\"incluye_estilos\" :valor-inicial=\"incluye_estilos_interno\" relleno=\"Modo expresión regular: Estilo(s)? (1|2|3)\"></ControlParaTexto2>\n </template>\n <EtiquetaDeControl>Excluye estilos <b>(<span class=\"control_de_opcion_textual\" :class=\"{seleccionado:!excluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_excluye_estilos_a_texto\">en texto</span> o <span class=\"control_de_opcion_textual\" :class=\"{seleccionado:excluye_estilos_por_regexp_interno}\" v-on:click=\"cambiar_estado_de_excluye_estilos_a_regexp\">en expresión regular</span>)</b>:</EtiquetaDeControl>\n <template v-if=\"!excluye_estilos_por_regexp_interno\">\n <ControlParaTexto2 :contenedor=\"this\" propiedad=\"excluye_estilos_interno\" ref=\"excluye_estilos\" :valor-inicial=\"excluye_estilos_interno\" relleno=\"Modo texto: Estilo 1\"></ControlParaTexto2>\n </template>\n <template v-else>\n <ControlParaTexto2 :contenedor=\"this\" propiedad=\"excluye_estilos_interno\" ref=\"excluye_estilos\" :valor-inicial=\"excluye_estilos_interno\" relleno=\"Modo expresión regular: Estilo(s)? (1|2|3)\"></ControlParaTexto2>\n </template>\n <LineaHorizontal class=\"marginado_vertical_2\"></LineaHorizontal>\n <div style=\"text-align: right;\">\n <div v-if=\"typeof proceso_en_ejecucion === 'undefined'\">\n <ControlParaBoton v-on:click.native=\"ejecutar\">Ejecutar</ControlParaBoton>\n </div>\n <div v-else>\n <ControlParaBoton v-on:click.native=\"terminar_ejecucion\">Terminar ejecución</ControlParaBoton>\n <LineaHorizontal class=\"marginado_vertical_2\"></LineaHorizontal>\n <ControlParaTextoLargo2 :contenedor=\"this\" propiedad=\"consola\" />\n </div>\n </div>\n </div>\n </div>\n} con lógica {\n retorno {\n método data donde {\n debugo \"PaginaDeComandoSeparar.data\".\n retorno {\n propiedad ficheros_internos como [].\n propiedad carga_izquierda_interna como 50.\n propiedad carga_derecha_interna como 50.\n propiedad separacion_minima_interna como 0.17.\n propiedad incluye_estilos_interno como \"\".\n propiedad incluye_estilos_por_regexp_interno como false.\n propiedad excluye_estilos_interno como \"\".\n propiedad excluye_estilos_por_regexp_interno como false.\n propiedad proceso_en_ejecucion como undefined.\n }.\n }.\n propiedad methods como {\n método ejecutar donde {\n debugo \"PaginaDeComandoSeparar.methods.ejecutar\".\n Hago window.alert(\"OK...\").\n }.\n método terminar_ejecucion donde {\n debugo \"PaginaDeComandoSeparar.methods.ejecutar\".\n\n }.\n método cambiar_estado_de_incluye_estilos_a_texto donde {\n debugo \"PaginaDeComandoSeparar.methods.cambia_estado_de_incluye_estilos_a_texto\".\n asigno this.incluye_estilos_por_regexp_interno como false.\n }.\n método cambiar_estado_de_incluye_estilos_a_regexp donde {\n debugo \"PaginaDeComandoSeparar.methods.cambiar_estado_de_incluye_estilos_a_regexp\".\n asigno this.incluye_estilos_por_regexp_interno como true.\n }.\n método cambiar_estado_de_excluye_estilos_a_texto donde {\n debugo \"PaginaDeComandoSeparar.methods.cambiar_estado_de_excluye_estilos_a_texto\".\n asigno this.excluye_estilos_por_regexp_interno como false.\n }.\n método cambiar_estado_de_excluye_estilos_a_regexp donde {\n debugo \"PaginaDeComandoSeparar.methods.cambiar_estado_de_excluye_estilos_a_regexp\".\n asigno this.excluye_estilos_por_regexp_interno como true.\n }.\n }.\n propiedad watch como {\n método carga_izquierda_interna con (nuevo_valor) donde {\n debugo \"PaginaDeComandoSeparar.watch.carga_izquierda_interna\".\n creo nuevo_numero como nuevo_valor numerizado.\n si nuevo_numero no es tipo número normal retorno.\n si nuevo_numero es mayor que 100 o nuevo_numero es menor que 0 retorno.\n creo complementario como 100 - nuevo_numero.\n asigno this.$refs.carga_derecha.valor_interno como complementario.\n }.\n método carga_derecha_interna con (nuevo_valor) donde {\n debugo \"PaginaDeComandoSeparar.watch.carga_derecha_interna\".\n creo nuevo_numero como nuevo_valor numerizado.\n si nuevo_numero no es tipo número normal retorno.\n si nuevo_numero es mayor que 100 o nuevo_numero es menor que 0 retorno.\n creo complementario como 100 - nuevo_numero.\n asigno this.$refs.carga_izquierda.valor_interno como complementario.\n }.\n }.\n }.\n}.\n\nasigno Vue.prototype.$utils como utilidades.\n\ncreo App como una aplicación vue2 con nombre \"App\" con rutas [{\n propiedad path como \"/comando/xass/separar\".\n propiedad name como \"ComandoSeparar\".\n propiedad component como PaginaDeComandoSeparar.\n propiedad props como {}.\n}, {\n propiedad path como \"/pantalla/explorador\".\n propiedad name como \"PantallaExplorador\".\n propiedad component como PaginaDePantallaExplorador.\n propiedad props como {}.\n}, {\n propiedad path como \"/\".\n propiedad name como \"Home\".\n propiedad component como PaginaDeInicio.\n propiedad props como {}.\n}] con traducciones {\n propiedad es como {}.\n propiedad en como {}.\n propiedad ca como {}.\n} con plantilla {\n <div class=\"App Component Castelog-app\">\n <BarraSuperior>\n <template v-slot:esquina>\n <ControlParaBoton v-on:click.native=\"$root.mostrar_u_ocultar_menu\">=</ControlParaBoton>\n </template>\n <template v-slot:barra>\n <div class=\"fuente_titulo espaciado_horizontal_2\">xass-UI · v1.0.0</div>\n </template>\n <template v-slot:menu>\n <div class=\"menu_de_navegacion\">\n <ul class=\"opciones_de_menu\">\n <li class=\"opcion_de_menu\">\n <div class=\"texto_de_opcion\">\n <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"() => $root.ir_a_pagina('/')\">\n <span># Inicio </span>\n </ControlParaBoton>\n </div>\n </li>\n <li class=\"opcion_de_menu\">\n <div class=\"texto_de_opcion\">\n <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"() => $root.ir_a_pagina('/pantalla/explorador')\">\n <span># Explorador </span>\n </ControlParaBoton>\n </div>\n </li>\n <li class=\"opcion_de_menu\">\n <div class=\"texto_de_opcion\">\n <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"$root.mostrar_u_ocultar_comandos_en_navegacion\">\n <span v-if=\"$root.esta_mostrando_comandos_en_navegacion\"> - Comandos </span>\n <span v-else> + Comandos </span>\n </ControlParaBoton>\n </div>\n <div class=\"subnodos_de_opcion\" v-if=\"$root.esta_mostrando_comandos_en_navegacion\">\n <ul class=\"opciones_de_menu\">\n <li class=\"opcion_de_menu\">\n <div class=\"texto_de_opcion\">\n <ControlParaBoton class=\"width_100x100 text_align_left\" v-on:click.native=\"() => $root.ir_a_pagina('/comando/xass/separar')\">\n <span># Separar subtítulos</span>\n </ControlParaBoton>\n </div>\n </li>\n </ul>\n </div>\n </li>\n </ul>\n </div>\n </template>\n </BarraSuperior>\n <router-view></router-view>\n </div>\n} con estilos {\n html {}\n body {}\n .Component {}\n .App {}\n} con lógica {\n retorno {\n método data donde {\n debugo \"App.data\".\n retorno {\n propiedad esta_mostrando_menu como false.\n propiedad esta_mostrando_comandos_en_navegacion como true.\n }.\n }.\n propiedad methods como {\n método mostrar_u_ocultar_menu donde {\n debugo \"App.methods.mostrar_u_ocultar_menu\".\n asigno this.esta_mostrando_menu como no this.esta_mostrando_menu.\n }.\n método mostrar_u_ocultar_comandos_en_navegacion donde {\n debugo \"App.methods.mostrar_u_ocultar_comandos_en_navegacion\".\n asigno this.esta_mostrando_comandos_en_navegacion como no this.esta_mostrando_comandos_en_navegacion.\n }.\n método ir_a_pagina con (link) donde {\n debugo \"App.methods.ir_a_pagina\".\n asigno this.esta_mostrando_menu como false.\n hago this.$router.history.push(link).\n }.\n }.\n propiedad watch como {}.\n método beforeMount donde {\n debugo \"App.beforeMount\".\n asigno this.$root como this.\n }.\n método mounted donde {\n debugo \"App.mounted\".\n }.\n }.\n} montada en \"#app\".",
"_lineOffsets": [
0,
32,
56,
79,
101,
108,
135,
163,
240,
311,
361,
373,
440,
497,
568,
569,
628,
667,
726,
774,
950,
994,
1017,
1156,
1225,
1290,
1380,
1416,
1459,
1500,
1544,
1589,
1627,
1628,
1652,
1678,
1702,
1786,
1791,
1815,
1841,
1865,
1921,
1922,
1935,
1943,
1978,
1979,
1999,
2000,
2039,
2040,
2078,
2108,
2111,
2112,
2168,
2238,
2287,
2313,
2318,
2409,
2480,
2512,
2517,
2520,
2521,
2611,
2612,
2635,
2681,
2723,
2783,
2788,
2836,
2881,
2945,
2997,
3074,
3079,
3135,
3188,
3252,
3304,
3381,
3386,
3431,
3520,
3525,
3528,
3529,
3586,
3627,
3630,
3631,
3660,
3694,
3762,
3801,
3806,
3844,
3916,
3955,
3960,
4000,
4074,
4110,
4171,
4230,
4288,
4313,
4335,
4361,
4391,
4448,
4453,
4489,
4559,
4595,
4652,
4659,
4664,
4703,
4776,
4812,
4872,
4879,
4884,
4923,
4996,
5032,
5092,
5099,
5104,
5140,
5210,
5260,
5317,
5365,
5415,
5474,
5528,
5554,
5584,
5698,
5708,
5733,
5758,
5804,
5809,
5845,
5915,
5951,
6008,
6015,
6020,
6057,
6128,
6164,
6222,
6229,
6234,
6237,
6238,
6291,
6325,
6413,
6416,
6417,
6516,
6638,
6650,
6682,
6716,
6752,
6759,
6790,
6824,
6860,
6867,
6901,
6957,
7009,
7016,
7045,
7079,
7112,
7119,
7124,
7127,
7128,
7164,
7213,
7265,
7326,
7331,
7334,
7335,
7421,
7461,
7508,
7549,
7586,
7599,
7653,
7688,
7701,
7712,
7814,
7846,
7857,
7866,
7869,
7870,
7958,
7999,
8091,
8135,
8230,
8239,
8242,
8243,
8329,
8369,
8410,
8430,
8441,
8450,
8453,
8454,
8552,
8588,
8704,
8740,
8809,
8855,
8871,
8889,
8906,
8939,
8969,
9012,
9043,
9061,
9080,
9098,
9216,
9355,
9445,
9563,
9644,
9662,
9681,
9698,
9721,
9737,
9746,
9761,
9773,
9800,
9835,
9871,
9907,
9916,
9959,
9966,
9990,
10031,
10047,
10095,
10104,
10111,
10140,
10207,
10270,
10334,
10370,
10379,
10386,
10413,
10454,
10461,
10466,
10469,
10565,
10600,
10647,
10699,
10780,
10793,
10878,
10997,
11010,
11062,
11143,
11156,
11167,
11176,
11191,
11203,
11230,
11264,
11300,
11334,
11343,
11434,
11441,
11465,
11507,
11523,
11579,
11588,
11595,
11624,
11657,
11714,
11817,
11826,
11859,
11916,
12019,
12028,
12035,
12062,
12103,
12110,
12115,
12118,
12212,
12246,
12340,
12349,
12364,
12376,
12403,
12495,
12502,
12526,
12565,
12581,
12622,
12631,
12638,
12665,
12706,
12713,
12718,
12721,
12825,
12874,
12968,
12977,
12992,
13004,
13031,
13123,
13130,
13154,
13198,
13214,
13255,
13264,
13271,
13298,
13339,
13346,
13351,
13354,
13355,
13431,
13466,
13484,
13493,
13496,
13497,
13571,
13605,
13623,
13632,
13635,
13636,
13748,
13801,
13893,
13953,
14048,
14078,
14135,
14251,
14319,
14343,
14361,
14510,
14529,
14550,
14611,
14697,
14727,
14749,
14823,
14888,
14909,
14970,
15059,
15089,
15111,
15131,
15152,
15171,
15196,
15214,
15290,
15353,
15371,
15453,
15521,
15678,
15772,
15844,
15870,
15890,
16038,
16059,
16082,
16150,
16284,
16427,
16548,
16580,
16604,
16680,
16752,
16867,
16889,
16912,
16933,
16960,
17020,
17141,
17263,
17280,
17300,
17317,
17328,
17337,
17352,
17364,
17388,
17436,
17452,
17508,
17574,
17583,
17590,
17619,
17678,
17745,
17805,
17843,
17937,
17999,
18037,
18064,
18112,
18160,
18218,
18227,
18273,
18341,
18406,
18476,
18541,
18600,
18611,
18659,
18666,
18693,
18700,
18707,
18744,
18795,
18910,
18975,
19021,
19026,
19029,
19030,
19134,
19183,
19275,
19339,
19434,
19464,
19564,
19682,
19767,
19933,
20016,
20176,
20274,
20465,
20892,
20952,
21149,
21167,
21191,
21410,
21428,
21855,
21915,
22112,
22130,
22154,
22373,
22391,
22462,
22501,
22566,
22651,
22666,
22687,
22792,
22867,
22943,
22958,
22971,
22982,
22991,
23006,
23018,
23042,
23086,
23102,
23147,
23198,
23247,
23302,
23353,
23418,
23469,
23534,
23589,
23598,
23605,
23634,
23664,
23722,
23758,
23767,
23807,
23865,
23866,
23875,
23938,
24028,
24095,
24104,
24168,
24260,
24326,
24335,
24398,
24489,
24556,
24565,
24629,
24721,
24787,
24796,
24803,
24830,
24893,
24964,
25019,
25077,
25157,
25210,
25285,
25294,
25355,
25424,
25479,
25537,
25617,
25670,
25747,
25756,
25763,
25768,
25771,
25772,
25817,
25818,
25882,
25931,
25973,
26026,
26055,
26060,
26108,
26154,
26211,
26240,
26245,
26274,
26306,
26351,
26380,
26402,
26428,
26454,
26480,
26498,
26541,
26561,
26593,
26689,
26707,
26737,
26818,
26836,
26865,
26906,
26946,
26986,
27030,
27152,
27193,
27229,
27250,
27268,
27308,
27352,
27493,
27538,
27574,
27595,
27613,
27653,
27697,
27837,
27932,
27983,
28019,
28040,
28138,
28184,
28230,
28280,
28428,
28486,
28528,
28555,
28579,
28601,
28622,
28640,
28656,
28671,
28689,
28710,
28742,
28751,
28767,
28779,
28791,
28809,
28821,
28836,
28848,
28872,
28897,
28913,
28963,
29030,
29039,
29046,
29075,
29119,
29172,
29246,
29255,
29317,
29388,
29498,
29507,
29551,
29593,
29645,
29691,
29700,
29707,
29736,
29767,
29799,
29834,
29841,
29868,
29896,
29903,
29908
]
},
144,
8,
"Ejecutable como documento HTML5\n con autor allnulled\n con nombre xass-ui\n con versión 1.0.0\n<head>\n <title>xass-ui</title>\n <meta charset=\"utf8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n <link rel=\"icon\" type=\"image/x-icon\" href=\"/static/favicon.ico\" />\n <script src=\"./js/socket.io.min.js\"></script>\n <style>\n html,body { padding: 0px !important; margin: 0px !important; }\n .contenedor_de_menu_de_navegacion { display: none; }\n .contenedor_de_menu_de_navegacion.seleccionado { display: block; }\n\n ul,li { padding: 0px; margin: 0px; list-style: none; }\n input[type=file] { padding: 3px; }\n .fuente_titulo { font-size: 15px; font-weight: bold; }\n .menu_de_navegacion { position: relative; }\n .menu_de_navegacion > .opciones_de_menu { position: absolute; top: 0; left: 0; background-color: white; border: 1px solid #333; border-top: 1px solid #333; z-index: 999; }\n .opciones_de_menu { min-width: 150px; }\n .opcion_de_menu {}\n .CapaScrolable { overflow: scroll; position: relative; min-width: 100%; min-height: 100px; resize: vertical; border: 1px solid #CCC; }\n .capa_scrolable_interna { position: absolute; top: 0; left: 0; }\n .control_de_opcion_textual { color: #888; cursor: pointer; }\n .control_de_opcion_textual.seleccionado { color: black; text-decoration: underline; }\n .width_100x100 { width: 100%; }\n .text_align_left { text-align: left; }\n .Tarjeta { border: 1px solid #888; }\n .fondo_b { background-color: #E8E8E8; }\n .text_align_right { text-align: right; }\n .boton_pequenyo { padding: 3px; }\n\n input[type=\"text\"],\n input[type=\"number\"],\n input[type=\"file\"],\n .ControlParaBoton { border-radius: 0pt; border: none; background-color: #CCC; }\n \n input[type=\"text\"],\n input[type=\"number\"],\n input[type=\"file\"],\n .ControlParaBoton:hover { background-color: #DDD; }\n\n </style>\n</head>\n<body><div id=\"app\"></div></body>.\n\nimporto api nativa.\n\ndebugo \"Iniciando aplicación xass-ui\".\n\ncreo Gestor_de_autentificacion como {\n propiedad token como \"LQL\".\n}.\n\ncreo socket_cliente como un cliente socket.io el cual {\n en evento \"connection\" está usando una función con (socket) donde {\n debugo \"socket_cliente.{evento=connection}\".\n imprimo \"Conectado!\".\n }.\n en evento \"comando:xass:x:separar@respuesta\" está usando una función con (datos) donde {\n debugo \"socket_cliente.{evento=comando:xass:x:separar@respuesta}\".\n imprimo datos textualizado.\n }.\n}.\n\nhago socket_cliente.emit(\"comando:xass:x:separar\", { mensaje: \"Hola desde socket.io!\" }).\n\ncreo utilidades como {\n método de_fecha_a_texto con (fecha) donde {\n debugo \"utilidades.de_fecha_a_texto\".\n retorno un formateo de fecha a texto a partir de fecha.\n }.\n método de_ruta_a_extension con (ruta) donde {\n debugo \"utilidades.de_ruta_a_extension\".\n creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n creo posicion como ruta_invertida.indexOf(\".\").\n retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n }.\n método de_ruta_a_nombre_de_fichero con (ruta) donde {\n debugo \"utilidades.de_ruta_a_nombre_de_fichero\".\n creo ruta_invertida como ruta.split(\"\").reverse().join(\"\").\n creo posicion como ruta_invertida.indexOf(\"/\").\n retorno ruta_invertida.substr(0, posicion).split(\"\").reverse().join(\"\").\n }.\n método gestionar_error con (error) donde {\n hago window.alert(`${error.name}: ${error.message} ${JSON.stringify(error.stack)}`).\n }.\n}.\n\ncreo ruta_de_servidor como una función con (url) donde {\n retorno `http://127.0.0.1:9854${url}`.\n}.\n\ncreo comandos_remotos como {\n propiedad xass_x_separar como {\n propiedad url como ruta_de_servidor(\"/comando/xass/x/separar\").\n propiedad accion como una función.\n }.\n propiedad os_listar_comandos como {\n propiedad url como ruta_de_servidor(\"/comando/os/listar_comandos\").\n propiedad accion como una función.\n }.\n propiedad os_listar_directorio como {\n propiedad url como ruta_de_servidor(\"/comando/os/listar_directorio\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_listar_directorio.accion\".\n creo respuesta como asíncronamente una petición http\n con url comandos_remotos.os_listar_directorio.url\n con método \"GET\"\n con cuerpo {}\n con cabeceras {}.\n retorno respuesta.data.\n } en errores hago utilidades.gestionar_error(error).\n }.\n propiedad os_crear_carpeta como {\n propiedad url como ruta_de_servidor(\"/comando/os/crear_carpeta\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_crear_carpeta.accion\".\n }.\n }.\n propiedad os_eliminar_carpeta como {\n propiedad url como ruta_de_servidor(\"/comando/os/eliminar_carpeta\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_eliminar_carpeta.accion\".\n }.\n }.\n propiedad os_eliminar_fichero como {\n propiedad url como ruta_de_servidor(\"/comando/os/eliminar_fichero\").\n método asíncrono accion donde {\n debugo \"comandos_remotos.os_eliminar_fichero.accion\".\n }.\n }.\n propiedad os_subir_fichero como {\n propiedad url como ruta_de_servidor(\"/comando/os/subir_fichero\").\n método asíncrono accion con (fichero) donde {\n debugo \"comandos_remotos.os_subir_fichero.accion\".\n creo formulario como un nuevo FormData().\n hago formulario.append(\"fichero\", fichero).\n creo respuesta como asíncronamente una petición http\n con url comandos_remotos.os_subir_fichero.url\n con método \"POST\"\n con cuerpo formulario\n con cabeceras { \"Content-type\": \"multipart/form-data\", \"Authorization\": Gestor_de_autentificacion.token }\n ",
[
{
"label": "{ separación }",
"kind": 1,
"insertText": "\n",
"data": 70,
"detail": "",
"documentation": ""
},
{
"label": "+",
"kind": 1,
"data": 71,
"detail": "",
"documentation": ""
},
{
"label": "-",
"kind": 1,
"data": 73,
"detail": "",
"documentation": ""
},
{
"label": "*",
"kind": 1,
"data": 75,
"detail": "",
"documentation": ""
},
{
"label": "/",
"kind": 1,
"data": 77,
"detail": "",
"documentation": ""
},
{
"label": "%",
"kind": 1,
"data": 79,
"detail": "",
"documentation": ""
},
{
"label": "mapeado por su propiedad",
"kind": 1,
"data": 81,
"detail": "",
"documentation": ""
},
{
"label": "mapeado",
"kind": 1,
"data": 83,
"detail": "",
"documentation": ""
},
{
"label": "filtrado",
"kind": 1,
"data": 87,
"detail": "",
"documentation": ""
},
{
"label": "reducido",
"kind": 1,
"data": 91,
"detail": "",
"documentation": ""
},
{
"label": "modificado",
"kind": 1,
"data": 95,
"detail": "",
"documentation": ""
},
{
"label": "extendido por",
"kind": 1,
"data": 99,
"detail": "",
"documentation": ""
},
{
"label": "concatenado por",
"kind": 1,
"data": 101,
"detail": "",
"documentation": ""
},
{
"label": "siendo",
"kind": 1,
"data": 103,
"detail": "",
"documentation": ""
},
{
"label": "no",
"kind": 1,
"data": 105,
"detail": "",
"documentation": ""
},
{
"label": "es mayor o igual que",
"kind": 1,
"data": 107,
"detail": "",
"documentation": ""
},
{
"label": "es menor o igual que",
"kind": 1,
"data": 109,
"detail": "",
"documentation": ""
},
{
"label": "es mayor que",
"kind": 1,
"data": 111,
"detail": "",
"documentation": ""
},
{
"label": "es menor que",
"kind": 1,
"data": 113,
"detail": "",
"documentation": ""
},
{
"label": "es igual que",
"kind": 1,
"data": 115,
"detail": "",
"documentation": ""
},
{
"label": "es diferente que",
"kind": 1,
"data": 117,
"detail": "",
"documentation": ""
},
{
"label": "contiene valor",
"kind": 1,
"data": 119,
"detail": "",
"documentation": ""
},
{
"label": "contiene clave",
"kind": 1,
"data": 121,
"detail": "",
"documentation": ""
},
{
"label": "está contenido",
"kind": 1,
"data": 123,
"detail": "",
"documentation": ""
},
{
"label": "está contenida",
"kind": 1,
"data": 124,
"detail": "",
"documentation": ""
},
{
"label": "es tipo número normal",
"kind": 1,
"data": 126,
"detail": "",
"documentation": ""
},
{
"label": "es tipo número",
"kind": 1,
"data": 128,
"detail": "",
"documentation": ""
},
{
"label": "es tipo texto",
"kind": 1,
"data": 130,
"detail": "",
"documentation": ""
},
{
"label": "es tipo objeto",
"kind": 1,
"data": 132,
"detail": "",
"documentation": ""
},
{
"label": "es tipo lista",
"kind": 1,
"data": 134,
"detail": "",
"documentation": ""
},
{
"label": "es tipo función",
"kind": 1,
"data": 136,
"detail": "",
"documentation": ""
},
{
"label": "es tipo indefinido",
"kind": 1,
"data": 138,
"detail": "",
"documentation": ""
},
{
"label": "es instancia de",
"kind": 1,
"data": 140,
"detail": "",
"documentation": ""
},
{
"label": "es tipo booleano",
"kind": 1,
"data": 142,
"detail": "",
"documentation": ""
},
{
"label": "y",
"kind": 1,
"data": 144,
"detail": "",
"documentation": ""
},
{
"label": "o",
"kind": 1,
"data": 146,
"detail": "",
"documentation": ""
},
{
"label": "numerizado",
"kind": 1,
"data": 148,
"detail": "",
"documentation": ""
},
{
"label": "retornando",
"kind": 1,
"data": 150,
"detail": "",
"documentation": ""
},
{
"label": ".",
"kind": 1,
"data": 152,
"detail": "",
"documentation": ""
},
{
"label": "punto",
"kind": 1,
"data": 154,
"detail": "",
"documentation": ""
},
{
"label": "[",
"kind": 1,
"data": 156,
"detail": "",
"documentation": ""
},
{
"label": "iniciolista",
"kind": 1,
"data": 158,
"detail": "",
"documentation": ""
},
{
"label": "textualizado",
"kind": 1,
"data": 160,
"detail": "",
"documentation": ""
},
{
"label": "usando cliente",
"kind": 1,
"data": 162,
"detail": "",
"documentation": ""
},
{
"label": "En errores",
"kind": 1,
"data": 164,
"detail": "",
"documentation": ""
},
{
"label": ",",
"kind": 1,
"data": 259,
"detail": "",
"documentation": ""
},
{
"label": "coma",
"kind": 1,
"data": 261,
"detail": "",
"documentation": ""
},
{
"label": "oksentencia",
"kind": 1,
"data": 263,
"detail": "",
"documentation": ""
}
]
]