chalona_api 0.0.3
chalona_api: ^0.0.3 copied to clipboard
Librerias comunes a proyecto chalona
Librerias comunes a proyecto chalona
Features #
probando mientras tanto
Getting started #
dart pub get chalona_api
Usage #
Objeto util: #
contiene un conjunto de varias funciones utiles
String util.uuid();
devuelve un codigo unico aleatorio
util.coalesce
devuelve el primer valor no nulo de una lista, si la lista no lo tiene devuelve nulo
List<Map<String, dynamic>> util.toList(List? x)
convierte List
Map<String, dynamic> util.fixSearchArgs(Map? x)
convierte List
bool util.inList
/** devuelve verdadero si encuentra x en la lista*/
static String util.jsonToString(args)
convierte json to string tomando el cuenta los dato tipo date
util.now()
devuele la fecha actual
saluda()
saluda segun la hora
String util.textRender(String text, Map<String, dynamic> data) {
renderiza un texto
class DataMap: Para manejar Json. #
Definimos una clase como esta
class UserMap extends DataMap {
// declarando todos los datos que va a tener el objeto
StringData id = StringData('id');
StringData nombre = StringData('nombre');
StringData direccion = StringData('direccion');
StringData telefono = StringData('telefono');
NumberData limitecr = NumberData('limitecr');
UserMap() {
// inicializa todos los campos, importante que todos los campos especificados esten en la lista
bind(members: [id, nombre, telefono, direccion, limitecr]);
}
}
o tambien puede definirla de esta forma
class UserMap extends DataMap {
// declarando todos los datos que va a tener el objeto
var id = Id();
var nombre = Nombre();
var direccion = Direccion();
var telefono = Telefono();
var limitecr = NumberData('limitecr');
UserMap() {
// inicializa todos los campos, importante que todos los campos especificados esten en la lista
bind(members: [id, nombre, telefono, direccion, limitecr]);
}
}
revise el archivo types.dart para ver varios tipos de datos predefinidos
y estas son algunas maneras de implementarla
// instanciando la clase
var user = UserMap();
print('valor inicial -> ${user.nombre.value}');
// puede asignar valor a las propiedades
user.nombre.value = 'usuario Test';
print('valor modificado -> ${user.nombre.value}');
// puede deshacer el cambio realizado
user.nombre.undo();
print('deshecho los cambios -> ${user.nombre.value}');
// puede asignar un valor como original del dato
user.nombre.reset('sin nombre');
print('valor reseteado -> ${user.nombre.value}');
user.nombre.value = 'usuario prueba';
print('valor modificado -> ${user.nombre.value}');
user.nombre.undo();
print('deshecho los cambios -> ${user.nombre.value}');
// se puede hacer aplicar un cambio mediante un json con los valores
user.set({'id': '001', 'nombre': 'nombre asignado via json via contenedor'});
print(user.get());
// se puede deshacer los cambios de manera global
user.undo();
print(user.get());
// se puede definir el valor original mediante en json con valores
user.reset({'id': '001', 'nombre': 'nombre original definido via json via contenedor'});
print(user.get());
user.set({'id': '001', 'nombre': 'nombre asignado via json via contenedor'});
print(user.get());
user.undo();
print(user.get());
Evento Changed
// instanciando la clase
var user = UserMap();
// configurando el evento
user.nombre.on('changed', (x) {
user.nombre.value = user.nombre.value.toUpperCase();
});
// utilizar await si desea que el evento se dispare instantaneamente
// de lo contrario el evento se va a disparar una solo vez en este mismo
// bloque de de codigo, independientemente cuantas veces afecte su valor
await user.nombre.set('probando evento changed(sincrono)');
print(user.nombre.value);
// si realiza el cambio a travez de la propiedad value
// el evento se ejecutara al final del bloque, ademas de que se ejecutara
// una sola vez
await user.nombre.value='probando evento changed(sincrono)2';
print(user.nombre.value);