This commit is contained in:
tuz 2025-11-23 15:35:04 -05:00
commit 0b92dce607
35 changed files with 2873 additions and 0 deletions

118
HaxeNotas/Notas.txt Normal file
View File

@ -0,0 +1,118 @@
Funcional Components
F N
Funciones Function = Rust
Main libreria.
import Desfuro;
import hxd.File;
import hxd.File.BrowseSelect;
class Funciones {
static var staticField:Int;
var x:Int;
var y:Int;
public function new(x, y) {
this.x = x;
this.y = y;
}
public function traces() {
return '$x $y';
}
public function tricer() {
var d = Funciones.staticField = 20;
return '$x $y tricer, $d';
}
}
var desfurito:Desfuro;
class Main {
static function main() {
var v = new Funciones(1,2);
trace(v.traces());
var vtraces = new Funciones(1,2).traces();
trace(vtraces);
var vstraces = new Funciones(1,2).tricer();
trace(vstraces.toUpperCase());
// Importando lirerias | Public
var v = new Desfuro("Chaladas", 0);
v.dx = 0;
trace(v.desfuros());
// Otra forma de importar | static y public
var t = Desfuro.texto_desfuricado("Textificado");
t.dx = 1;
trace(t.dx);
// Guardar datos
// File.saveBytes("test.png", pixels.toPNG());
var selector:BrowseSelect -> Void;
var relativo_directorio:Null<BrowseOptions> ;
// var otros:Null<BrowseOptions> ;
// var Nanos:Null<Bool> ;
// // selector.bind();
File.browse(selector, relativo_directorio);
// // trace(selector);
// trace(relativo_directorio.defaultPath);
BrowseSelect
// Crear dirrectorio
// File.createDirectory("DD");
}
}
----------
Desfuro.hx
package;
class Desfuro {
var v:String;
public var dx : Float;
public function new(v, ?dx) {
this.dx = dx;
this.v = v;
}
public function desfuros() {
return v;
}
@:allow(Main)
public static function texto_desfuricado(texto) {
var staticField:Int;
var nativo : String;
var t = new Desfuro(texto);
// return t.v;
return t;
}
}

567
HaxeNotas/haxe.rs Normal file
View File

@ -0,0 +1,567 @@
Haxe Dirrectorio
-cp src
-D analyzer-optimize
-main Main
--js dist/js/main.js
--js dist/main.js
<- Comandos
haxe --version | vercion de haxe
haxe build.hxml | contruir el projecto
Ctl + P & > | >Haxe: Initialize Project
// ! No recuerdo
haxelib |
haxelib --global update haxelib | actualizar haxelib
<- Targets Build
<-- JavaScript
-cp src
-D analyzer-optimize
-main Main
--js dist/js/main.js
<- Codigo
<-- Impotar Librerias
<--- Navegador
// * Navegador
import js.Browser;
<-- Variables
var variable = "Soy Una Variable"
var bool = true;
var string = "String";
var int = 1;
var float = 1.0;
// ? Asignar typo de variable
var variable_typo_bool: Bool = true;
var variable_typo_string: String = "String";
var variable_typo_int: Int = 1;
var variable_typo_float: Float = 1.0;
// ? Variable Vacio
var vacio: Void = null;
<-- Funciones
<--- Imprmir en pantalla
trace("Imprimir")
-----------------------------------
// ! Codigos
var button = Browser.document.createButtonElement();
button.textContent = "Click me!";
button.onclick = (event) -> Browser.alert("Haxe is great");
Browser.document.body.appendChild(button);
// ! Codigo 2
brave://settings/cookies
import js.Set;
import js.Browser;
import js.Cookie;
class Main {
static function main() {
// * Crear Cokies
Cookie.set("Names", "Fernando");
var names = Cookie.get("Names");
trace(names);
var names2 = Cookie.exists("Names");
trace(names2);
}
}
// ! Codigo 3
import js.Set;
import js.Browser;
import js.Cookie;
function crear_cookie(nombre: String, valor: String):Void {
Cookie.set(nombre, valor);
}
class Main {
static function main() {
// * Crear Cokies
// Cookie.set("Facultad", "Bardero", 300);
var names = Cookie.get("Names");
var facultad1 = Cookie.get("Facultad");
trace(names);
trace(facultad1);
var names2 = Cookie.exists("Names");
var facultad2 = Cookie.exists("Facultad");
trace(names2);
trace(facultad2);
Cookie.remove("Names");
Cookie.remove("Facultad");
}
}
// ! cCodigo 4 Cookie
import js.Set;
import js.Browser;
import js.Cookie;
function crear_cookie(nombre: String, valor: String):Void {
// * 10 minutos en segundos
var expira_minutos: Int = 600;
Cookie.set(nombre, valor, expira_minutos);
}
function borrar_cookie(nombre: String) {
Cookie.remove(nombre);
}
function obtener_cookie(nombre: String):String {
return Cookie.get(nombre);
}
function obtener_todas_cookies():Void {
Cookie.all();
}
class Main {
static function main() {
// * Creando Cookie
var email = "Email";
var email_valor = "Email@maills";
crear_cookie(email, email_valor);
var valor = obtener_cookie(email);
trace(valor);
}
}
// ! Codigo + 5
// ? Json
import haxe.xml.Parser;
import js.Browser;
import js.lib.Object;
import haxe.Json;
function crear_objeto(nombre: String, edad: Int) {
// ? {nombre: Variable, nombre: Variable}
var objeto = {name:nombre, edad:edad};
return objeto;
}
function parse_json(text: String) {
// * Parse es para que haxe entienda el texto.
// * Parce es mas para los [Json]
Json.parse(text);
}
function stringify_json(text):Dynamic {
// * var remplazo
// * Convierte una cadena texto en json
// * "\t" = Al salto de linea
var a_json:Dynamic = Json.stringify(text,"\t");
return a_json;
}
class Main {
static function main() {
trace(crear_objeto("juan",21));
var objeto = crear_objeto("Dicho",33);
trace(objeto);
trace(stringify_json(objeto));
trace(objeto.edad);
}
}
// ! Codigo +
// ? Json
import haxe.Json;
function crear_objeto(nombre: String, edad: Int) {
// ? {nombre: Variable, nombre: Variable}
var objeto = {name:nombre, edad:edad};
return objeto;
}
function parse_json(text: String) {
// * Parse es para que haxe entienda el texto.
// * Parce es mas para los [Json]
Json.parse(text);
}
function stringify_json(text):Dynamic {
// * var remplazo
// * Convierte una cadena texto en json
// * "\t" = Al salto de linea
var a_json:Dynamic = Json.stringify(text,"\t");
return a_json;
}
class Main {
static function main() {
trace(crear_objeto("juan",21));
var objeto = crear_objeto("Dicho",33);
trace(objeto);
trace(stringify_json(objeto));
trace(objeto.edad);
}
}
// ! Codigo ! Crear bottones
import js.lib.Function;
import js.html.ButtonElement;
import js.Browser;
import js.Lib;
import js.html.Document;
import js.html.DOMElement;
import js.html.Element;
import js.html.EventListener;
import js.html.AddEventListenerOptions;
import js.html.EventTarget;
import haxe.Constraints;
// ? Exponer las libreria js a html con
// ! @:expose
@:expose
function evento(arg) {
trace("Alertar");
trace( "keypress" + arg );
}
function evento_click(arg) {
trace("Alertar");
trace( "click " + arg.x, arg.y );
}
// ? Obtener el elemento ID
function obtener_elemento_por_id(id:String) {
var button = Browser.document.getElementById(id);
trace('$id $button');
}
// ? Escuchar el objeto & Keypress
function agregar_elemento_escuchador_keypress(id:String) {
// * 1 Tomar el id #
var button = Browser.document.getElementById(id);
// * 2 Escuchar "Keypress" | Agregar el evento
button.addEventListener("keypress", evento);
// * click
// * 3 Imprimir
trace('$id $button Escuchador');
// * 4 Compilar
}
function agregar_elemento_escuchador_click(id:String) {
// * 1 Tomar el id #
var button = Browser.document.getElementById(id);
// * 2 Escuchar "Keypress" | Agregar el evento
button.addEventListener("click", evento_click);
}
// ? Creando botons
class Main {
static function main() {
// ? Crea el boton
var button = Browser.document.createButtonElement();
// ? Pone texto en el botton
button.textContent = "Click me!";
// ? Activar el oneclick
button.onclick = (event) -> trace("Alertar");
// ? Para poner el bottonen eldocumento
Browser.document.body.appendChild(button);
// ? Funcion obtener por id
obtener_elemento_por_id("objeto_demo");
// ? Escuchar el objeto
agregar_elemento_escuchador_keypress("objeto_demo");
agregar_elemento_escuchador_click("objeto_click");
}
}
// ? Html
<style type="text/css">
div {
width: 100px;
height: 100px;
background-color: red;
}
</style>
<button onclick="Main.evento()">Soy un botton 1</button>
<button ondblclick="Main.evento()">Soy un botton 2</button>
<div onclick="Main.evento()"></div>
<input type="text" onfocus="Main.evento()">
<input type="text" onblur="Main.evento()">
<button id="objeto_click">Clickeame clic</button>
<input type="text" id="objeto_demo">
<script src="js/main.js"></script>
// ! Nosoy un botcodigo
import js.Browser;
import js.lib.Function;
import js.html.ButtonElement;
import js.Browser;
import js.Lib;
import js.html.Document;
import js.html.DOMElement;
import js.html.Element;
import js.html.EventListener;
import js.html.AddEventListenerOptions;
import js.html.EventTarget;
import haxe.Constraints;
import js.html.Document;
function funciona( arg ) {
trace("Funciona");
trace(arg);
if (arg.isTrusted == true) {
trace("No bot");
}
}
// @:expose
function obtener_elemento_por_tag_nombre(id:String) {
// * 1 Tomar el array nombres #
var documento = Browser.document.getElementsByTagName(id);
documento[0].addEventListener("click", funciona);
// * 2 Escuchar "Keypress" | Agregar el evento
trace(documento + " Nada");
trace("test");
// documento. = (event) -> trace("Alertar");
}
// ? Creando botons
class Main {
static function main() {
obtener_elemento_por_tag_nombre("body");
}
}
// ! Codigo Frames Lv1
import js.html.Image;
import js.Browser;
import js.html.CanvasElement;
import js.html.Window;
import js.html.CanvasRenderingContext2D;
var canvas = cast Browser.document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var canvas_width = canvas.width = 600;
var canvas_height = canvas.height = 600;
var player_image = new Image();
var spritewidth = 575;
var spriteheight = 523;
var frame_x:Int = 0;
var frame_y:Int = 0;
var game_frame = 0;
var staggerFrames = 5;
class Main {
static function main() {
animate();
}
}
@:expose
function animate() {
player_image.src = "img/shadow_dog.png";
context.clearRect(0, 0, canvas_width, canvas_height);
// context.fillRect(x,50,100,100);
// ? s? = Sorce + ?. (Cortar de la imagen)
// ? d? = destino + ?. (El destino de la imagen)
// context.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh);
// ? 0, 1, 2, etc * spritewidth = frames
// ? 0, 1, 2, et * spriteheight = frames
context.drawImage(player_image, frame_x * spritewidth, frame_y * spriteheight, spritewidth, spriteheight, 0, 0, spritewidth, spriteheight);
if (game_frame % staggerFrames == 0) {
if (frame_x < 6) frame_x += 1;
else frame_x = 0;
}
game_frame += 1;
Browser.window.requestAnimationFrame(cast animate);
}
// function obtener_elemento_por_id(id:String) {
// var id = Browser.document.getElementById(id);
// return id;
// }
// ! Codigo animacion lv2
import js.lib.Math;
import js.html.Image;
import js.Browser;
import js.html.CanvasElement;
import js.html.Window;
import js.html.CanvasRenderingContext2D;
var canvas = cast Browser.document.getElementById("myCanvas");
var context = canvas.getContext("2d");
var canvas_width = canvas.width = 600;
var canvas_height = canvas.height = 600;
var player_image = new Image();
var sprite_width = 575;
var sprite_height = 523;
var frame_x = 0;
var frame_y = 0;
var game_frame = 0;
// ? Animacion frames
var stagger_frames = 5;
function animate() {
player_image.src = "img/shadow_dog.png";
context.clearRect(0, 0, canvas_width, canvas_height);
// ? Ultimo row. Las collumnas de la animacion
var position = Math.floor(game_frame / stagger_frames) % 6;
frame_x = sprite_width * position;
context.drawImage(player_image, frame_x, frame_y * sprite_height, sprite_width, sprite_height, 0, 0, sprite_width, sprite_height);
game_frame += 1;
Browser.window.requestAnimationFrame(cast animate);
}
class Main {
static function main() {
animate();
}
}
// ! Mkdir codum.
import haxe.Log;
import sys.FileSystem;
import Sys;
function trace_null(x) {
Log.trace(x, null);
}
function mkdir(path:String) {
FileSystem.createDirectory(path);
}
function mkdirs(path:String, objetos:Array<Dynamic>) {
// var z:Int = 0;
for (dir in objetos) {
// trace(dir);
var resultado:String = Std.string('$path/$dir');
trace(resultado);
// z += 1;
// trace(z);
// mkdir(resultado);
}
}
class Main {
static function main() {
var userInputInt:String;
while (true) {
trace_null('0 = Close');
trace_null('1 = Mkdir');
// trace('0 = Mkdir');
userInputInt = Sys.stdin().readLine();
trace_null('Input: $userInputInt');
if (Std.parseInt(userInputInt) == 0) {
break;
}
if (Std.parseInt(userInputInt) == 1) {
var archivo = ["Achivo", "articulos"];
mkdir(archivo[1]);
mkdir("Hello/2");
mkdirs("Path", archivo);
}
}
}
}
// ! Old Mkdir
function mkdirs(path:String, objetos:Array<Dynamic>) {
for (dir in objetos) {
var resultado:String = Std.string('$path/$dir');
mkdir(resultado);
}
}

20
README.md Normal file
View File

@ -0,0 +1,20 @@
# Haxe
```sh
haxe -main Main --interp
```
[Haxe.org](https://haxe.org/)
[Haxe doc](https://haxe.org/manual/introduction.html)
[Haxe git](https://github.com/HaxeFoundation/haxe)
[heaps.io](https://heaps.io/index.html)
## HXML
[hAXE HXML](https://haxe.org/manual/compiler-usage-hxml.html)

View File

@ -0,0 +1 @@
# haxe calc hash

View File

@ -0,0 +1,5 @@
-cp src
-D analyzer-optimize
-main Main
--interp
# --neko node.n

View File

@ -0,0 +1,2 @@
all:
haxe build.hxml --debug

View File

@ -0,0 +1,9 @@
import lib.hash.Calc;
class Main {
static function main() {
trace("Hello");
var archivo = new Calc("./test.txt", HashMd5);
archivo.fileClac();
}
}

View File

@ -0,0 +1,31 @@
package lib.hash;
import haxe.crypto.Md5;
import sys.io.File;
enum HashType {
HashMd5;
HashSha1;
HashSha224;
HashSha256;
}
class Calc {
var file:String;
var hashTypes:HashType;
public function new(file:String, hashType:HashType) {
this.file = file;
this.hashTypes = hashType;
}
public function fileClac() {
var encode = Md5.encode(file);
trace(encode);
}
}

View File

@ -0,0 +1 @@
Este contenido es una prueba de todo los contenidos existentes y por existir

5
api/function/build.hxml Normal file
View File

@ -0,0 +1,5 @@
-cp src
-D analyzer-optimize
-main Main
--interp
# --neko node.n

2
api/function/makefile Normal file
View File

@ -0,0 +1,2 @@
all:
haxe build.hxml --debug

BIN
api/function/node.n Normal file

Binary file not shown.

34
api/function/src/Main.hx Normal file
View File

@ -0,0 +1,34 @@
// ! Como funcionan lasclases mas o meno.s
class Funciones {
static var staticField:Int;
var x:Int;
var y:Int;
public function new(x, y) {
this.x = x;
this.y = y;
}
public function traces() {
return '$x $y';
}
public function tricer() {
var d = Funciones.staticField = 20;
return '$x $y tricer, $d';
}
}
class Main {
static function main() {
var v = new Funciones(1,2);
trace(v.traces());
var vtraces = new Funciones(1,2).traces();
trace(vtraces);
var vstraces = new Funciones(1,2).tricer();
trace(vstraces.toUpperCase());
}
}

5
api/haxe_java/README.md Normal file
View File

@ -0,0 +1,5 @@
# Haxe Java
```sh
haxelib install hxjava
```

6
api/haxe_java/build.hxml Normal file
View File

@ -0,0 +1,6 @@
-cp src
-D analyzer-optimize
-main Main
--java bin
# java -jar bin/Main.jar

2
api/haxe_java/makefile Normal file
View File

@ -0,0 +1,2 @@
all:
haxe build.hxml --debug

View File

@ -0,0 +1,5 @@
class Main {
static function main() {
trace("Hello, world!");
}
}

217
api/haxe_js_node/README.md Normal file
View File

@ -0,0 +1,217 @@
# Haxe project
This is an example Haxe project scaffolded.
* `src/Main.hx`: Entry point Haxe source file
* `build.hxml`: Haxe command line file used to build the project
* `README.md`: This file
## Notes
```
import js.lib.Object;
import js.html.Document;
import js.*;
import haxe.Template;
import js.html.EffectTiming;
import js.html.Clients;
import js.html.Client;
import js.html.eme.MediaEncryptedEvent;
import js.html.Window;
import js.html.CanvasElement;
class Main {
static function main() {
// Syntax.code("
// let all = document.queryC:\Users\user\source\git_loc\hexe\zuikiuuSelectorAll('*');
// for(var i=0;i<el.length;i++){
// all[i].style.margin = '0px';
// all[i].style.padding = '0px';
// }
// ");
// var all = Browser.document.querySelectorAll("*");
// for (i in 0...all.length) {
// trace(all[i]);
// all[i].normalize;
// all[i].
// };
var sample = "My name is <strong>::name::</strong>, <em>::age::</em> years old";
var user = {name: "Mark", age: 30};
var template = new haxe.Template(sample);
var output = template.execute(user);
trace(output);
var doc = Browser.window.document;
var html = Browser.document.getElementsByTagName("html");
var htmlStyle = html[0].style;
htmlStyle.width = "100vw";
htmlStyle.height = "100vh";
htmlStyle.display = "flex";
// var mainDiv
var template = Browser.document.createDivElement();
var nav = Browser.document.createElement("nav");
var navStyle = nav.style;
navStyle.backgroundColor = "#C14907";
navStyle.width = "100vw";
navStyle.height = "200px";
Browser.document.body.appendChild(nav);
var aside = Browser.document.createElement("aside");
var asideStyle = aside.style;
asideStyle.width = "200px";
asideStyle.height = "200px";
// asideStyle.display = "inline-block";
// asideStyle.justifyContent = "center";
asideStyle.backgroundColor = "#DA9EFB";
Browser.document.body.appendChild(aside);
var myLista =
'
<ul>
<li>
<span>Span</span>
</li>
<li>
<button id="haxe" type="button">Haxe</button>
</li>
<li>
<button id="godot" type="button">Godot</button>
</li>
</ul>
';
var haxe = Browser.document.getElementById("haxe");
// haxe.addEventListener()
// 1 Agregar html con template
// 3 Agregar el texto completo en el div
// 4 Agregar divs, con inner html
// 5 formas. Agregar el html con templates o con divs|
// 5 Agregar templates con divs, El estylo con clases queris y for in
// 0 Crear el div
// 1 Agregar la clase
// 2 Agregar el estylo
// 3 Agregar el template
// 4 Agregarlo al html inner
// ? Agregar el div
// ? Agregar la clase
// ? Agregar el estylo
var divH1 = Browser.document.createDivElement();
divH1.setAttribute("id", "divH1");
var divH1IdSyle = Browser.document.getElementById("divH1");
// divH1IdSyle.style
// ? Agregar el texto
// ? Comprimir eltexto
var textH1 = "<h1>Notas Haxe ::notas::</h1>";
var textH1Trim = StringTools.ltrim(textH1);
// ? Agregar el template
var textH1TrimTemplate = new haxe.Template(textH1Trim);
var notas = {notas: 10};
var notasTemplate = textH1TrimTemplate.execute(notas);
// ? Imprimir el template
template.innerHTML = notasTemplate;
// // Tomamos la lista
// var myLista = "
// <ul>
// <li>::name::</li>
// </ul>
// ";
// // Lo comprimimos
// var myListaTrim = StringTools.ltrim(myLista);
// // Agregamos la funcionalidad
// var user = {name: "Mark"};
// // Agregamos la funcionalidad
// var templates = new haxe.Template(myListaTrim);
// var output = templates.execute(user);
// template.textContent = output;
// template.innerHTML = output;
var ul = Browser.document.createElement('ul');
var li = Browser.document.createElement('li');
li.appendChild(Browser.document.createTextNode("Four"));
ul.appendChild(li);
Browser.document.body.appendChild(ul);
ul.innerHTML = myLista;
var section = Browser.document.createElement("section");
var sectionStyle = section.style;
sectionStyle.backgroundColor = "#0749C1";
sectionStyle.width = "200px";
sectionStyle.height = "100px";
// sectionStyle.display = "flex";
// sectionStyle.display = "inline-block";
// sectionStyle.justifyContent = "center";
Browser.document.body.appendChild(section);
section.appendChild(template);
var footer = Browser.document.createElement("footer");
var footerStyle = footer.style;
footerStyle.backgroundColor = "#F7B63D";
footerStyle.width = "100vw";
footerStyle.height = "200px";
Browser.document.body.appendChild(footer);
// var template = Browser.document.createDivElement();
// var templateStyle = template.style;
// templateStyle.backgroundColor = "#819830";
// templateStyle.width = "100vw";
// templateStyle.height = "100px";
// // Browser.document.body.firstElementChild(template);
// // Browser.document.body.firstElementChild(template);
// // Tomamos la lista
// var myLista = "
// <ul>
// <li>::name::</li>
// </ul>
// ";
// // Lo comprimimos
// var myListaTrim = StringTools.ltrim(myLista);
// // Agregamos la funcionalidad
// var user = {name: "Mark"};
// // Agregamos la funcionalidad
// var templates = new haxe.Template(myListaTrim);
// var output = templates.execute(user);
// template.textContent = output;
// template.innerHTML = output;
// Browser.document.body.appendChild(template);
}
}
class Notas {
}
```

View File

@ -0,0 +1,5 @@
-cp src
-D analyzer-optimize
-main Main
--js dist/main.js

View File

@ -0,0 +1,7 @@
-cp src
-D analyzer-optimize
-main Main
# haxelib install hxnodejs
-lib hxnodejs
--js dist/node.js

14
api/haxe_js_node/dist/index.html vendored Normal file
View File

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<link rel="stylesheet" href="main.css">
<script src="main.js"></script>
</body>
</html>

20
api/haxe_js_node/dist/main.css vendored Normal file
View File

@ -0,0 +1,20 @@
/* * {
box-sizing: border-box;
margin: 0;
padding: 0;
} */
body {
margin: 0;
padding: 0;
}
body * {
box-sizing: border-box;
}
.folders::after .folders::after {
padding-left: 50px;
}

1087
api/haxe_js_node/dist/main.js vendored Normal file

File diff suppressed because it is too large Load Diff

8
api/haxe_js_node/dist/main.js.map vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,2 @@
all:
haxe build.hxml --debug

View File

@ -0,0 +1,333 @@
import js.html.AddEventListenerOptions;
import js.html.HTMLCollection;
import js.html.Element;
import js.html.DivElement;
import js.lib.Object;
import js.html.Document;
import js.*;
import haxe.Template;
import js.html.EffectTiming;
import js.html.Clients;
import js.html.Client;
import js.html.eme.MediaEncryptedEvent;
import js.html.Window;
import js.html.CanvasElement;
class Main {
static function main() {
// ! Cosas que arreglar. Utilizar el attributo flex | flexContainer | display: flex;
var nav = StaticWeb.semanticContainer("nav","98vw","100px", null,"solid","5px");
// var mid = StaticWeb.semanticContainer("mid", "100%", "100%", "null", "solid", "7px");
var aside = StaticWeb.semanticContainer("aside","20vw","500px", null,"solid","0px");
var section = StaticWeb.semanticContainer("section","77vw","500px", null,"solid","0px");
StaticWeb.semanticContainer("footer","98vw","300px", null,"solid","5px");
// StaticWeb.notasContainer('<style>p {background-color: red}</style><ul><li>dd</li></ul><p>Test<p><h1>Texto</h1>',null,nav,null);
// StaticWeb.notasContainer('<style>p {background-color: red}</style><ul><li>dd</li></ul><p>Test<p><h1>Texto</h1>',null,nav,null);
StaticWeb.notasContainer('<ul class="test"><li>dd</li></ul><p>Test<p><h1>Texto</h1>',null,nav,null);
// StaticWeb.styleClass("test", "10px", "10px", "#F7B63D");
// ? Programacion
// ? Notas
// ? Programas
var hierarchy = StaticWeb.hierarchy("Raiz", aside);
var folders0 = StaticWeb.folders("Programacion", hierarchy);
StaticWeb.files("Haxe", folders0);
StaticWeb.files("Files", folders0);
StaticWeb.files("Files", folders0);
var subfolders0 = StaticWeb.folders("Folders", folders0);
StaticWeb.files("Files", subfolders0);
var folders1 = StaticWeb.folders("Programas", hierarchy);
StaticWeb.files("Files", folders1);
var folders2 = StaticWeb.folders("Notas", hierarchy);
StaticWeb.files("Files", folders2);
}
}
class StaticWeb {
static public function semanticContainer(typeElement:String,w:String,h:String,?color:String,?borderType:String,?borderPx:String,?borderColor:String,?display:String) {
var type = Browser.document.createElement(typeElement);
type.setAttribute("id", typeElement);
var typeStyle = type.style;
typeStyle.backgroundColor = color;
typeStyle.width = w;
typeStyle.height = h;
typeStyle.border = borderType;
typeStyle.borderWidth = borderPx;
typeStyle.borderColor = borderColor;
typeStyle.float = "left";
typeStyle.overflowX = "hidden";
typeStyle.overflowY = "auto";
typeStyle.textAlign = "center";
typeStyle.padding = "0";
typeStyle.margin = "0";
Browser.document.body.appendChild(type);
return type;
}
static public function notasContainer(texto:String,?typeElement:String,container:Element,?expresiones:Object,?clases:String) {
// var type = Browser.document.createElement("div");
// type.setAttribute()
var textTrim = texto;
var template = new haxe.Template(textTrim);
var expresiones = expresiones;
var ejecutar = template.execute(expresiones);
container.innerHTML = ejecutar;
}
static public function styleClass(className:String, padding:String, margin:String, background:String) {
var clases = Browser.document.getElementsByClassName(className);
// clases[0].style;
for (i in 0...clases.length) {
var iStyle = clases[i].style;
trace(clases[i].style);
iStyle.padding = padding;
iStyle.margin = margin;
iStyle.background = background;
}
}
static public function menuBtn(texto, evento, funcion, container:Element) {
var btn = Browser.document.createButtonElement();
btn.textContent = texto;
var btnStyle = btn.style;
btn.addEventListener("click", funcion);
container.appendChild(btn);
}
// static public function name() {}
// ? Event lissener click
// ? Display none
// ? Display block
// ? Display none to display block, divs
// ? Programacion
// ? Notas
// ? Programas
static public function hierarchy(nameRoot, container) {
var hierarchy = Browser.document.createElement("div");
var hierarchyStyle = hierarchy.style;
hierarchyStyle.cursor = "pointer";
hierarchyStyle.display = "block";
hierarchy.textContent = nameRoot;
hierarchy.setAttribute("class","hierarchy");
hierarchyStyle.backgroundColor = "#83A4E0";
container.appendChild(hierarchy);
return hierarchy;
}
static public function folders(nameFolder, container) {
var contenedor = Browser.document.createElement("div");
contenedor.style.paddingLeft = "20px";
contenedor.style.background = "#A1A37D";
contenedor.style.display = "block";
var folders = Browser.document.createElement("div");
folders.style.cursor = "pointer";
folders.style.background = "#A17DA3";
folders.style.display = "block";
folders.addEventListener("click", displayFolders);
var icono = Browser.document.createElement("i");
icono.style.cursor = "pointer";
var span = Browser.document.createElement("span");
span.style.cursor = "pointer";
span.textContent = nameFolder;
folders.appendChild(icono);
folders.appendChild(span);
contenedor.appendChild(folders);
container.appendChild(contenedor);
return contenedor;
}
static public function files(nameFile, container) {
var div = Browser.document.createElement("div");
div.setAttribute("id", nameFile);
var divStyle = div.style;
divStyle.width = "100%";
divStyle.paddingLeft = "20px";
divStyle.display = "block";
var icon = Browser.document.createElement("i");
icon.addEventListener("click", notasGenerate);
var iconStyle = icon.style;
iconStyle.cursor = "pointer";
var span = Browser.document.createElement("span");
span.addEventListener("click", notasGenerate);
span.textContent = nameFile;
var spanStyle = span.style;
spanStyle.cursor = "pointer";
spanStyle.width = "40px";
spanStyle.backgroundColor = "#C14907";
spanStyle.display = "block";
div.appendChild(icon);
div.appendChild(span);
container.appendChild(div);
}
static public function displayFolders() {
var displayFolders:Bool = false;
if (displayFolders == false) {
displayFolders = true;
return;
}
if (displayFolders == true) {
displayFolders = false;
return;
}
}
static public function tagElements(nota, tagElement, container) {
switch tagElement {
case "a":
var template = Std.string('<a></a>');
var resultado;
case "p":
var template = Std.string('<p> </p>');
var resultado;
case "strong":
var template = Std.string('<strong> </strong>');
var resultado;
case "img":
var template = Std.string('<img>');
var resultado;
case "ol":
var template = Std.string('<ol> </ol>');
var resultado;
case "ul":
var template = Std.string('<ul> </ul>');
var resultado;
case "li":
var template = Std.string('<li> </li>');
var resultado;
case "i":
switch nota {
case ":heart:":
nota = "";
case ":corazon:":
nota = "";
case _:
}
var resultado;
var template = Std.string('<i>$nota</i>');
case "h1":
var nota = Std.string('<h1>$nota</h1>');
var notaTrim = StringTools.ltrim(nota);
var template = new haxe.Template(notaTrim);
var ejecutar = template.execute(template);
var div = Browser.document.createElement("div");
div.innerHTML = ejecutar;
// container.innerHTML = ejecutar;
// var resultado;
container.appendChild(div);
// container.innerHTML = ejecutar;
case "h2":
var template = Std.string('<h2>$nota</h2>');
var resultado;
case "h3":
var template = Std.string('<h3>$nota</h3>');
var resultado;
case "h4":
var template = Std.string('<h4>$nota</h4>');
var resultado;
case "h5":
var template = Std.string('<h5>$nota</h5>');
var resultado;
case "h6":
var template = Std.string('<h6>$nota</h6>');
var resultado;
case "code":
var template = Std.string('<pre><code>$nota</code></pre>');
var resultado;
case _:
var template = Std.string('<$tagElement>>$nota</$tagElement>');
var resultado;
}
}
static public function notasGenerate(e, nota,tagElement, container) {
var section = Browser.document.getElementById("section");
// nav.textContent = "";
// trace(arg);
// trace(e.target.innerHTML);
// trace(e);
section.textContent = "";
switch e.target.innerHTML {
case "Haxe":
section.textContent = "";
trace("Haxe Text Case");
tagElements("Nota","h1",section);
tagElements("Esto es la nota de haxe","h1",section);
tagElements("La nota de testeo","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
tagElements("Test","h1",section);
}
}
}

View File

@ -0,0 +1,83 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<style>
.form-container {
display: none;
margin-top: 10px;
}
.form-container.active {
display: table-caption;
}
<div class="button
</style>
<div class="buttons-container">
<button class="toggle-button">Button One</button>
<div class="form-container">
<form>
<input type="text" placeholder="Enter your Name">
<input type="text" placeholder="Enter your Marks">
<button type="submit">Submit</button>
</form>
</div>
</div>
<div class="buttons-container">
<button class="toggle-button">Button Two</button>
<div class="form-container">
<form>
<input type="text" placeholder="Enter your Name">
<input type="text" placeholder="Enter your Marks">
<button type="submit">Submit</button>
<form>
<input type="text" placeholder="Enter your Name">
<input type="text" placeholder="Enter your Marks">
<button type="submit">Submit</button>
</form>
<div class="form-container"></div>
</form>
<form>
<input type="text" placeholder="Enter your Name">
<input type="text" placeholder="Enter your Marks">
<button type="submit">Submit</button>
</form>
<div class="form-container">
<form>
<input type="text" placeholder="Enter your Name">
<input type="text" placeholder="Enter your Marks">
<button type="submit">Submit</button>
</form>
<div class="form-container">
<form>
<input type="text" placeholder="Enter your Name">
<input type="text" placeholder="Enter your Marks">
<button type="submit">Submit</button>
</form>
</div>
</div>
</div>
<button class="toggle-button">Button Two</button>
</div>
<script>
const buttons = document.querySelectorAll('.toggle-button');
buttons.forEach((button) => {
button.addEventListener('click', () => {
const formContainer = button.nextElementSibling;
formContainer.classList.toggle('active');
});
});
</script>
</body>
</html>

View File

@ -0,0 +1,159 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
#hierarchy
{
font-family: FontAwesome;
width: 300px;
}
.foldercontainer, .file, .noitems
{
display: block;
padding: 5px 5px 5px 50px;
}
.folder
{
color: red;
}
.file
{
color: green;
}
.folder, .file
{
cursor: pointer;
}
.noitems
{
display: none;
pointer-events: none;
}
.folder:hover,.file:hover
{
background: yellow;
}
.folder:before, .file:before
{
padding-right: 10px;
}
/*
*/
</style>
<body>
<!-- Tomar herarchi -->
<div id="hierarchy">
<div class="foldercontainer">
<span class="folder fa-folder-o" data-isexpanded="true">Folder 1</span>
<span class="file fa-file-excel-o">File 11</span>
<span class="file fa-file-code-o">File 12</span>
<span class="file fa-file-pdf-o">File 13</span>
<span class="file fa-file-pdf-o">File 13</span>
<span class="file fa-file-pdf-o">File 13</span>
<span class="file fa-file-pdf-o">File 13</span>
<span class="file fa-file-pdf-o">File 13</span>
<div class="foldercontainer">
<span class="folder fa-folder-o" data-isexpanded="true">Folder 1-1</span>
<span class="file fa-file-excel-o">File 1-11</span>
<span class="file fa-file-code-o">File 1-12</span>
<span class="file fa-file-pdf-o">File 1-13</span>
</div>
<div class="foldercontainer">
<span class="folder fa-folder">Folder 1-2</span>
<span class='noitems'>No Items</span>
</div>
<div class="foldercontainer">
<span class="folder fa-folder">Folder 1-3</span>
<span class='noitems'>No Items</span>
</div>
<div class="foldercontainer">
<span class="folder fa-folder">Folder 1-4</span>
<span class='noitems'>No Items</span>
</div>
</div>
<div class="foldercontainer">
<span class="folder fa-folder-o" data-isexpanded="true">Folder 2</span>
<span class="file fa-file-excel-o">File 21</span>
<span class="file fa-file-code-o">File 22</span>
<span class="file fa-file-pdf-o">File 23</span>
<div class="foldercontainer">
<span class="folder fa-folder-o" data-isexpanded="true">Folder 2-1</span>
<span class="file fa-file-excel-o">File 2-11</span>
<span class="file fa-file-code-o">File 2-12</span>
<span class="file fa-file-pdf-o">File 2-13</span>
<div class="foldercontainer">
<span class="folder fa-folder">Folder 2-1-1</span>
<span class='noitems'>No Items</span>
</div>
</div>
</div>
<div class="foldercontainer">
<span class="folder fa-folder-o" data-isexpanded="true">Folder 3</span>
<span class="file fa-file-excel-o">File 31</span>
<span class="file fa-file-code-o">File 32</span>
<span class="file fa-file-pdf-o">File 33</span>
<div class="foldercontainer">
<span class="folder fa-folder">Folder 3-1</span>
<span class='noitems'>No Items</span>
</div>
</div>
</div>
<script>
var hierarchy = document.getElementById("hierarchy");
hierarchy.addEventListener("click", function(event){
// Tomar herarchi | Div Con ID | Agregar .addEventListener
var elem = event.target;
var type = elem.classList.contains("folder") ? "folder" : "file";
if(type=="file")
{
alert("File accessed");
}
if(type=="folder")
{
var isexpanded = elem.dataset.isexpanded=="true";
if(isexpanded)
{
elem.classList.remove("fa-folder-o");
elem.classList.add("fa-folder");
}
else
{
elem.classList.remove("fa-folder");
elem.classList.add("fa-folder-o");
}
elem.dataset.isexpanded = !isexpanded;
var toggleelems = [].slice.call(elem.parentElement.children);
var classnames = "file,foldercontainer,noitems".split(",");
toggleelems.forEach(function(element){
if(classnames.some(function(val){return element.classList.contains(val);}))
element.style.display = isexpanded ? "none":"block";
});
}
});
</script>
</body>
</html>

View File

@ -0,0 +1,98 @@
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
* {
box-sizing: border-box;
}
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
}
/* The grid: Three equal columns that floats next to each other */
.column {
float: left;
width: 33.33%;
padding: 50px;
text-align: center;
font-size: 25px;
cursor: pointer;
color: white;
}
.containerTab {
padding: 20px;
color: white;
}
/* Clear floats after the columns */
.row:after {
content: "";
display: table;
clear: both;
}
/* Closable button inside the container tab */
.closebtn {
float: right;
color: white;
font-size: 35px;
cursor: pointer;
}
</style>
</head>
<body>
<div style="text-align:center">
<h2>Expanding Grid</h2>
<p>Click on the boxes below:</p>
</div>
<!-- Three columns -->
<div class="row">
<div class="column" onclick="openTab('b1');" style="background:green;">
Box 1
</div>
<div class="column" onclick="openTab('b2');" style="background:blue;">
Box 2
</div>
<div class="column" onclick="openTab('b3');" style="background:red;">
Box 3
</div>
</div>
<!-- Full-width columns: (hidden by default) -->
<div id="b1" class="containerTab" style="display:none;background:green">
<span onclick="this.parentElement.style.display='none'" class="closebtn">&times;</span>
<h2>Box 1</h2>
<p>Lorem ipsum dolor sit amet, te quo doctus abhorreant, et pri deleniti intellegat, te sanctus inermis ullamcorper nam. Ius error diceret deseruisse ad</p>
</div>
<div id="b2" class="containerTab" style="display:none;background:blue">
<span onclick="this.parentElement.style.display='none'" class="closebtn">&times;</span>
<h2>Box 2</h2>
<p>Lorem ipsum dolor sit amet, te quo doctus abhorreant, et pri deleniti intellegat, te sanctus inermis ullamcorper nam. Ius error diceret deseruisse ad</p>
</div>
<div id="b3" class="containerTab" style="display:none;background:red">
<span onclick="this.parentElement.style.display='none'" class="closebtn">&times;</span>
<h2>Box 3</h2>
<p>Lorem ipsum dolor sit amet, te quo doctus abhorreant, et pri deleniti intellegat, te sanctus inermis ullamcorper nam. Ius error diceret deseruisse ad</p>
</div>
<script>
function openTab(tabName) {
var i, x;
x = document.getElementsByClassName("containerTab");
for (i = 0; i < x.length; i++) {
x[i].style.display = "none";
}
document.getElementById(tabName).style.display = "block";
}
</script>
</body>
</html>

9
api/main/Main.hx Normal file
View File

@ -0,0 +1,9 @@
var num1 = "hola";
var num2 = "mundo";
class Main {
static function main() {
trace('$num1 $num2');
Sys.println("Hello World");
}
}

4
api/neko/build.hxml Normal file
View File

@ -0,0 +1,4 @@
-cp src
-D analyzer-optimize
-main Main
--neko main.n

BIN
api/neko/main.exe Normal file

Binary file not shown.

BIN
api/neko/main.n Normal file

Binary file not shown.

5
api/neko/makefile Normal file
View File

@ -0,0 +1,5 @@
all:
haxe build.hxml --debug
neko main.n
nekotools boot main.n
.\main.exe

9
api/neko/src/Main.hx Normal file
View File

@ -0,0 +1,9 @@
var num1 = "hola";
var num2 = "mundo";
class Main {
static function main() {
trace('$num1 $num2');
Sys.println("Hello World");
}
}