chalona_api 0.0.3 copy "chalona_api: ^0.0.3" to clipboard
chalona_api: ^0.0.3 copied to clipboard

outdated

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);

0
likes
0
points
1.06k
downloads

Publisher

unverified uploader

Weekly Downloads

Librerias comunes a proyecto chalona

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

intl, uuid

More

Packages that depend on chalona_api