npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@letscomunica/angular-framework-core

v0.0.45

Published

Core Module for Lets Angular Framework

Downloads

6

Readme

Lets Comunica Angular Framework Core

This repository was organized within the AngularJS 1.4.1 framework. This repo covers all the core functionalities that our company front-end projects basically needs.

Author: Lets Comunica

E-mail: [email protected]

LAST VERSION: 0.0.20

Installation

Install in you angular project:

  npm install --save git+ssh://[email protected]/letscomunicadev/angular-framework-core.git#v0.0.20

Functionalities

This list shows the current supported functionalities. In order to use one of those just follow the necessary steps, pay attention on the highlighted lines.

Autocomplete

With this feature, if corrected configured on backend, you can set fields to show the values of foreign keys.

Just use true on autocomplete key, inside your fields options:

{
  "name": "fieldName",
  "type": "fieldType",
  "notnull": true,
  "length": null,
  "precision": 100,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  -> "autocomplete": true,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

Autocomplete Table

Same of autocomplete but with tables.

Set the autocomplete key as true and use autocomplete_table on customOptions. It expects 'table_name' and 'table_columns' as keys:

{
  "name": "fieldName",
  "type": "string",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  -> "autocomplete": true,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "autocomplete_table": {
    |   "table_name": "medicamentos",
    |   "table_columns": [
    |     {
    |       "name": "nome_apresentacao",
    |       "label": "Descrição do Produto"
    |     },
    |     {
    |       "name": "tipo.label",
    |       "label": "Tipo"
    |     },
    |     {
    |       "name": "tarja.label",
    |       "label": "Tarja"
    |     }
    |   ]
    -> }
  }
}

Boolean

Simple boolean type input, with toogle.

Just use boolean on type key, inside your fields options:

{
  "name": "fieldName",
  -> "type": "boolean",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

CNPJ

Masked input for CNPJ.

Set the type key as string and use cnpj as true on the customOptions key:

{
  "name": "fieldName",
  -> "type": "string",
  "notnull": false,
  "length": 100,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "cnpj": true
  }
}

CPF

Masked input for CPF.

Set the type key as string and use cpf as true on the customOptions key:

{
  "name": "fieldName",
  -> "type": "string",
  "notnull": false,
  "length": 100,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "cpf": true
  }
}

CPF/CNPJ

With this feature the masked input accepts either CPF or CNPJ, according to its lenght.

Set the type key as string and use documento as true on the customOptions key:

{
  "name": "fieldName",
  -> "type": "string",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "CPF/CNPJ",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "documento": true
  }
}

Ckeditor

With this feature you can use a rich text editor.

Set the type key as text and use rich as true on the customOptions key.

{
  "name": "fieldName",
  -> "type": "text",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": false,
  "viewable": false,
  "autocomplete": false,
  "quickAdd": false,
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "rich":true
  }
}

Currency

Masked input for BRL currency values.

Set the type key as float and use currency as true on the customOptions key.

{
  "name": "fieldName",
  -> "type": "float",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "currency": true,
  }
}

Custom

On this functionality you can create anything, the example below shows a button that only appears on data listing and formats a text that can be used as email.

In order to use it set type key as custom and "make" it on toString key:

{
  "name": "fieldName",
  -> "type": "custom",
  "notnull": false,
  "length": null,
  "precision": null,
  "label": "fieldLabel",
  "editable": false,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": [],
  -> "toString": function (model) {
  |    var btn = $('<button class="btn btn-default" onclick=""><span class="glyphicon glyphicon-copy"></span></button>');
  |    var messageWindow;
  |    var corpo = model.attributes.corpo;
  |    
  |    btn.click(function () {
  |        messageWindow = window.open("", "messageWindow", "width=600, height=400");
  |        messageWindow.document.write("<pre>" + corpo + "</pre>");
  |    });
  |    return btn;
  -> }
}

Date

A masked input with date picker.

Just use date as type.

{
  "name": "fieldName",
  -> "type": "date",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

Drag and Drop Upload

A drag and drop field for file uploads.

In order to use it set type key as string, use dad as true on the customOptions key and fill file object with 'container' and 'acceptedFiles' values, container must be a folders name and acceptedFiles a fileType:

{
  "name": "lan_anexo",
  -> "type": "string",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "Anexo",
  "editable": true,
  "viewable": false,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "dad": true,
    |  "file": {
    |    "container": "anexos",
    |    "acceptedFiles": ".pdf"
    -> }
  }
}

Email

Set the type key as string and use email as true on the customOptions key:

{
  "name": "fieldName",
  -> "type": "string",
  "notnull": true,
  "length": 100,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": false,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "email": true
  }
}

Float

A simple float input

Just set the type key as float and you are good to go:

{
  "name": "fieldName",
  -> "type": "float",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

List

A select field with custom labels.

Fill the "type" key with the value "number", set "autocomplete" as true and create your list on "customOptions" key as below:

{
  "name": "fieldName",
  -> "type": "number",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldName",
  "editable": true,
  "viewable": true,
  -> "autocomplete": true,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
      -> "list":[
      |    {"id":1, "label":"Janeiro"},
      |    {"id":2, "label":"Fevereiro"},
      |    {"id":3, "label":"Março"},
      |    {"id":4, "label":"Abril"},
      |    {"id":5, "label":"Maio"},
      |    {"id":6, "label":"Junho"},
      |    {"id":7, "label":"Julho"},
      |    {"id":8, "label":"Agosto"},
      |    {"id":9, "label":"Setembro"},
      |    {"id":10, "label":"Outubro"},
      |    {"id":11, "label":"Novembro"},
      |    {"id":12, "label":"Dezembro"},
      |  ],
      -> "select":true
  }
}

Number or Integer

A number input.

Just set the type key as number or integer and you are good to go:

{
  "name": "fieldName",
  -> "type": "number",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": false,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

Number or Integer with Range

A number input with range.

Just set the type key as number, fill range object with the 'min' and 'max' values inside customOptions value and you're done:

{
  "name": "fieldName",
  -> "type": "number",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
      -> "range": {
      |    "min": 0,
      |    "max": 10000
      -> }
  }
}

Password

Password input.

Just set the type key as password and you are good to go:

{
  "name": "fieldName",
  -> "type": "password",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": false,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

Simplecolor

A simple color picker.

Set the type key as simplecolor and fill colors array with the desired colors:

{
  "name": "cor",
  -> "type": "simplecolor",
  "notnull": false,
  "length": null,
  "precision": 10,
  "label": "Sinalização",
  "editable": true,
  "viewable": false,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> colors: ['green', 'yellow', 'orange', 'red']
  }
}

String

Just set the type key as string and you are good to go:

{
  "name": "fieldName",
  -> "type": "string",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

Tags

I really didn't understand this functionality, fell free to discover and write about it.

Textarea

Just set the type key as text and you are good to go:

{
  "name": "fieldName",
  -> "type": "text",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

Time

A time picker.

Just set the type key as time:

{
  "name": "fieldName",
  -> "type": "time",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "fieldLabel",
  "editable": true,
  "viewable": true,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": []
}

Upload

File upload field with simple button.

In order to use it set type key as string and fill file object, container must be a folders name:

{
  "name": "lan_anexo",
  -> "type": "string",
  "notnull": true,
  "length": null,
  "precision": 10,
  "label": "Anexo",
  "editable": true,
  "viewable": false,
  "autocomplete": false,
  "quickAdd": [],
  "autocomplete_dependencies": [],
  "customOptions": {
    -> "file": {
    |    "container": "anexos"
    -> }
  }
}

Updates

Made a modification or added a new feature? Test it at least in one project before submiting a version. It still needs unit testing and CI with projects. After everything seems perfectly up-to-date, don't forget to UPDATE THE README file and only then run the following steps:

1. Commit and push your updates using Let's Bitbucket credentials

2. Change and commit a new tag version (always check and update the last version here and in package.json):

$ git tag -a vX.X.X -m "version_message"

3. Push the new tag version to remote repository:

$ git push origin vX.X.X  # Version needs to be the same from commit

4. Run npm installation with the newest version:

  npm install --save git+ssh://[email protected]/letscomunicadev/angular-framework-core.git#vX.X.X

Todo

1. Convert ng-includes from URL images to directives (in order to access templates from inside this module)

2. Start gulp automation to render all src files to single lets-angular-framework-core.module.js in a minified version

3. Separate input types in different directives

4. Isolate scope to vm and change all scope parents and childs access

History

v0.0.20

[09/06/18] Started repository