data-suggestions 1.0.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +241 -241
- package/assets/recomendaciones/count-times-that-a-certain-value-is-repeated.json +2 -2
- package/assets/recomendaciones/highlight-higher-values.json +121 -121
- package/assets/recomendaciones/highlight-lower-values.json +121 -121
- package/assets/recomendaciones/highlight-the-second-lowest-value.json +91 -91
- package/assets/recomendaciones/highlight-the-third-highest-value.json +79 -79
- package/fesm2022/data-suggestions.mjs +44 -120
- package/fesm2022/data-suggestions.mjs.map +1 -1
- package/index.d.ts +25 -44
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,241 +1,241 @@
|
|
|
1
|
-
# Data Suggestions Library
|
|
2
|
-
|
|
3
|
-
Librería Angular para generar y mostrar sugerencias de visualización a partir de:
|
|
4
|
-
|
|
5
|
-
- un conjunto de datos (`dataset`)
|
|
6
|
-
- un objetivo de comunicación (`goal`)
|
|
7
|
-
|
|
8
|
-
La librería incluye ficheros JSON de recomendaciones y los carga desde la aplicación consumidora mediante `/assets/...`.
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## Requisitos
|
|
13
|
-
|
|
14
|
-
- Angular (standalone o con módulos)
|
|
15
|
-
- Node.js y npm
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Estructura de assets
|
|
20
|
-
|
|
21
|
-
Los ficheros de recomendaciones se encuentran en la librería en la siguiente ruta:
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
projects/data-suggestions/src/assets/recomendaciones/*.json
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
Ejemplo:
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
projects/data-suggestions/src/assets/recomendaciones/destacar-valores-mas-altos.json
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
## Build de la librería (incluyendo assets)
|
|
36
|
-
|
|
37
|
-
### 1) Configurar ng-packagr para empaquetar assets
|
|
38
|
-
|
|
39
|
-
Asegúrate de tener este archivo en la librería:
|
|
40
|
-
|
|
41
|
-
`projects/data-suggestions/ng-package.json`
|
|
42
|
-
|
|
43
|
-
con el siguiente contenido:
|
|
44
|
-
|
|
45
|
-
```json
|
|
46
|
-
{
|
|
47
|
-
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
|
|
48
|
-
"dest": "../../dist/data-suggestions",
|
|
49
|
-
"lib": {
|
|
50
|
-
"entryFile": "src/public-api.ts"
|
|
51
|
-
},
|
|
52
|
-
"assets": ["src/assets"]
|
|
53
|
-
}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
### 2) Compilar la librería
|
|
59
|
-
|
|
60
|
-
Desde la raíz del workspace:
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
ng build data-suggestions
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Verifica que los assets se han copiado correctamente:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
ls dist/data-suggestions/assets/recomendaciones | head
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
## Versionado de la librería
|
|
75
|
-
|
|
76
|
-
La versión del paquete se define en el `package.json` fuente de la librería:
|
|
77
|
-
|
|
78
|
-
`projects/data-suggestions/package.json`
|
|
79
|
-
|
|
80
|
-
Ejemplo:
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
{
|
|
84
|
-
"name": "data-suggestions",
|
|
85
|
-
"version": "0.0.2"
|
|
86
|
-
}
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Después de cambiar la versión, vuelve a compilar:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
ng build data-suggestions
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
|
-
## Empaquetar la librería (npm pack)
|
|
98
|
-
|
|
99
|
-
En la carpeta de salida del build:
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
cd dist/data-suggestions
|
|
103
|
-
npm pack
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Esto generará un archivo similar a:
|
|
107
|
-
|
|
108
|
-
```
|
|
109
|
-
data-suggestions-0.0.2.tgz
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## Instalar la librería en una aplicación Angular
|
|
115
|
-
|
|
116
|
-
En la aplicación Angular que vaya a consumir la librería:
|
|
117
|
-
|
|
118
|
-
```bash
|
|
119
|
-
npm install /ruta/al/workspace/dist/data-suggestions/data-suggestions-0.0.2.tgz
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
Comprueba que la instalación se ha realizado correctamente:
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
npm ls data-suggestions
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## Configuración de assets en la aplicación consumidora (OBLIGATORIO)
|
|
131
|
-
|
|
132
|
-
Para que la aplicación pueda acceder a los JSON de recomendaciones, es necesario configurar la copia de assets desde la librería.
|
|
133
|
-
|
|
134
|
-
Edita el archivo `angular.json` de la aplicación consumidora y añade la siguiente entrada en:
|
|
135
|
-
|
|
136
|
-
```
|
|
137
|
-
projects -> <NOMBRE_APP> -> architect -> build -> options -> assets
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Ejemplo completo:
|
|
141
|
-
|
|
142
|
-
```json
|
|
143
|
-
"assets": [
|
|
144
|
-
"src/favicon.ico",
|
|
145
|
-
"src/assets",
|
|
146
|
-
{
|
|
147
|
-
"glob": "**/*",
|
|
148
|
-
"input": "node_modules/data-suggestions/assets",
|
|
149
|
-
"output": "assets"
|
|
150
|
-
}
|
|
151
|
-
]
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
Después de modificar `angular.json`, reinicia el servidor de desarrollo:
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
CTRL+C
|
|
158
|
-
ng serve
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
## Comprobación de assets
|
|
164
|
-
|
|
165
|
-
Abre en el navegador (ajusta el nombre del fichero si es necesario):
|
|
166
|
-
|
|
167
|
-
```
|
|
168
|
-
http://localhost:4200/assets/recomendaciones/destacar-valores-mas-altos.json
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
Si el fichero se muestra correctamente, la configuración es correcta.
|
|
172
|
-
|
|
173
|
-
---
|
|
174
|
-
|
|
175
|
-
## Uso de la librería (Angular standalone)
|
|
176
|
-
|
|
177
|
-
```ts
|
|
178
|
-
import { Component } from '@angular/core';
|
|
179
|
-
import { DataSuggestionsTableComponent } from 'data-suggestions';
|
|
180
|
-
|
|
181
|
-
@Component({
|
|
182
|
-
selector: 'app-root',
|
|
183
|
-
standalone: true,
|
|
184
|
-
imports: [DataSuggestionsTableComponent],
|
|
185
|
-
template: `
|
|
186
|
-
<data-suggestions-table [dataset]="dataset" [goal]="goal"> </data-suggestions-table>
|
|
187
|
-
`,
|
|
188
|
-
})
|
|
189
|
-
export class AppComponent {
|
|
190
|
-
dataset = [
|
|
191
|
-
{ key: 'A', value: 10 },
|
|
192
|
-
{ key: 'B', value: 30 },
|
|
193
|
-
{ key: 'C', value: 20 },
|
|
194
|
-
];
|
|
195
|
-
|
|
196
|
-
goal = 'destacar-valores-mas-altos';
|
|
197
|
-
}
|
|
198
|
-
```
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## HttpClient en aplicaciones standalone
|
|
203
|
-
|
|
204
|
-
Si la librería utiliza `HttpClient`, la aplicación consumidora debe proveerlo explícitamente.
|
|
205
|
-
|
|
206
|
-
```ts
|
|
207
|
-
import { ApplicationConfig } from '@angular/core';
|
|
208
|
-
import { provideHttpClient } from '@angular/common/http';
|
|
209
|
-
|
|
210
|
-
export const appConfig: ApplicationConfig = {
|
|
211
|
-
providers: [provideHttpClient()],
|
|
212
|
-
};
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
---
|
|
216
|
-
|
|
217
|
-
## Problemas comunes
|
|
218
|
-
|
|
219
|
-
### Error 404 al cargar los JSON
|
|
220
|
-
|
|
221
|
-
- Verifica la configuración de `assets` en `angular.json`.
|
|
222
|
-
- Reinicia `ng serve` tras cualquier cambio.
|
|
223
|
-
|
|
224
|
-
### Cambios en la librería no se reflejan
|
|
225
|
-
|
|
226
|
-
- Incrementa la versión.
|
|
227
|
-
- Rebuild + npm pack.
|
|
228
|
-
- Reinstala el `.tgz`.
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
## API del componente
|
|
233
|
-
|
|
234
|
-
```html
|
|
235
|
-
<data-suggestions-table [dataset]="dataset" [goal]="goal"> </data-suggestions-table>
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
Inputs:
|
|
239
|
-
|
|
240
|
-
- `dataset`: `{ key: string; value: number }[]`
|
|
241
|
-
- `goal`: `string`
|
|
1
|
+
# Data Suggestions Library
|
|
2
|
+
|
|
3
|
+
Librería Angular para generar y mostrar sugerencias de visualización a partir de:
|
|
4
|
+
|
|
5
|
+
- un conjunto de datos (`dataset`)
|
|
6
|
+
- un objetivo de comunicación (`goal`)
|
|
7
|
+
|
|
8
|
+
La librería incluye ficheros JSON de recomendaciones y los carga desde la aplicación consumidora mediante `/assets/...`.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Requisitos
|
|
13
|
+
|
|
14
|
+
- Angular (standalone o con módulos)
|
|
15
|
+
- Node.js y npm
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Estructura de assets
|
|
20
|
+
|
|
21
|
+
Los ficheros de recomendaciones se encuentran en la librería en la siguiente ruta:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
projects/data-suggestions/src/assets/recomendaciones/*.json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Ejemplo:
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
projects/data-suggestions/src/assets/recomendaciones/destacar-valores-mas-altos.json
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Build de la librería (incluyendo assets)
|
|
36
|
+
|
|
37
|
+
### 1) Configurar ng-packagr para empaquetar assets
|
|
38
|
+
|
|
39
|
+
Asegúrate de tener este archivo en la librería:
|
|
40
|
+
|
|
41
|
+
`projects/data-suggestions/ng-package.json`
|
|
42
|
+
|
|
43
|
+
con el siguiente contenido:
|
|
44
|
+
|
|
45
|
+
```json
|
|
46
|
+
{
|
|
47
|
+
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
|
|
48
|
+
"dest": "../../dist/data-suggestions",
|
|
49
|
+
"lib": {
|
|
50
|
+
"entryFile": "src/public-api.ts"
|
|
51
|
+
},
|
|
52
|
+
"assets": ["src/assets"]
|
|
53
|
+
}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### 2) Compilar la librería
|
|
59
|
+
|
|
60
|
+
Desde la raíz del workspace:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ng build data-suggestions
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Verifica que los assets se han copiado correctamente:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
ls dist/data-suggestions/assets/recomendaciones | head
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Versionado de la librería
|
|
75
|
+
|
|
76
|
+
La versión del paquete se define en el `package.json` fuente de la librería:
|
|
77
|
+
|
|
78
|
+
`projects/data-suggestions/package.json`
|
|
79
|
+
|
|
80
|
+
Ejemplo:
|
|
81
|
+
|
|
82
|
+
```json
|
|
83
|
+
{
|
|
84
|
+
"name": "data-suggestions",
|
|
85
|
+
"version": "0.0.2"
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Después de cambiar la versión, vuelve a compilar:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
ng build data-suggestions
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Empaquetar la librería (npm pack)
|
|
98
|
+
|
|
99
|
+
En la carpeta de salida del build:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
cd dist/data-suggestions
|
|
103
|
+
npm pack
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Esto generará un archivo similar a:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
data-suggestions-0.0.2.tgz
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## Instalar la librería en una aplicación Angular
|
|
115
|
+
|
|
116
|
+
En la aplicación Angular que vaya a consumir la librería:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
npm install /ruta/al/workspace/dist/data-suggestions/data-suggestions-0.0.2.tgz
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Comprueba que la instalación se ha realizado correctamente:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm ls data-suggestions
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Configuración de assets en la aplicación consumidora (OBLIGATORIO)
|
|
131
|
+
|
|
132
|
+
Para que la aplicación pueda acceder a los JSON de recomendaciones, es necesario configurar la copia de assets desde la librería.
|
|
133
|
+
|
|
134
|
+
Edita el archivo `angular.json` de la aplicación consumidora y añade la siguiente entrada en:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
projects -> <NOMBRE_APP> -> architect -> build -> options -> assets
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Ejemplo completo:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
"assets": [
|
|
144
|
+
"src/favicon.ico",
|
|
145
|
+
"src/assets",
|
|
146
|
+
{
|
|
147
|
+
"glob": "**/*",
|
|
148
|
+
"input": "node_modules/data-suggestions/assets",
|
|
149
|
+
"output": "assets"
|
|
150
|
+
}
|
|
151
|
+
]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Después de modificar `angular.json`, reinicia el servidor de desarrollo:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
CTRL+C
|
|
158
|
+
ng serve
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Comprobación de assets
|
|
164
|
+
|
|
165
|
+
Abre en el navegador (ajusta el nombre del fichero si es necesario):
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
http://localhost:4200/assets/recomendaciones/destacar-valores-mas-altos.json
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
Si el fichero se muestra correctamente, la configuración es correcta.
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Uso de la librería (Angular standalone)
|
|
176
|
+
|
|
177
|
+
```ts
|
|
178
|
+
import { Component } from '@angular/core';
|
|
179
|
+
import { DataSuggestionsTableComponent } from 'data-suggestions';
|
|
180
|
+
|
|
181
|
+
@Component({
|
|
182
|
+
selector: 'app-root',
|
|
183
|
+
standalone: true,
|
|
184
|
+
imports: [DataSuggestionsTableComponent],
|
|
185
|
+
template: `
|
|
186
|
+
<data-suggestions-table [dataset]="dataset" [goal]="goal"> </data-suggestions-table>
|
|
187
|
+
`,
|
|
188
|
+
})
|
|
189
|
+
export class AppComponent {
|
|
190
|
+
dataset = [
|
|
191
|
+
{ key: 'A', value: 10 },
|
|
192
|
+
{ key: 'B', value: 30 },
|
|
193
|
+
{ key: 'C', value: 20 },
|
|
194
|
+
];
|
|
195
|
+
|
|
196
|
+
goal = 'destacar-valores-mas-altos';
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## HttpClient en aplicaciones standalone
|
|
203
|
+
|
|
204
|
+
Si la librería utiliza `HttpClient`, la aplicación consumidora debe proveerlo explícitamente.
|
|
205
|
+
|
|
206
|
+
```ts
|
|
207
|
+
import { ApplicationConfig } from '@angular/core';
|
|
208
|
+
import { provideHttpClient } from '@angular/common/http';
|
|
209
|
+
|
|
210
|
+
export const appConfig: ApplicationConfig = {
|
|
211
|
+
providers: [provideHttpClient()],
|
|
212
|
+
};
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## Problemas comunes
|
|
218
|
+
|
|
219
|
+
### Error 404 al cargar los JSON
|
|
220
|
+
|
|
221
|
+
- Verifica la configuración de `assets` en `angular.json`.
|
|
222
|
+
- Reinicia `ng serve` tras cualquier cambio.
|
|
223
|
+
|
|
224
|
+
### Cambios en la librería no se reflejan
|
|
225
|
+
|
|
226
|
+
- Incrementa la versión.
|
|
227
|
+
- Rebuild + npm pack.
|
|
228
|
+
- Reinstala el `.tgz`.
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## API del componente
|
|
233
|
+
|
|
234
|
+
```html
|
|
235
|
+
<data-suggestions-table [dataset]="dataset" [goal]="goal"> </data-suggestions-table>
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Inputs:
|
|
239
|
+
|
|
240
|
+
- `dataset`: `{ key: string; value: number }[]`
|
|
241
|
+
- `goal`: `string`
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
},
|
|
122
122
|
{
|
|
123
123
|
"visualVariable": "Order",
|
|
124
|
-
"sampleSize": "
|
|
124
|
+
"sampleSize": "5-10",
|
|
125
125
|
"variability": "High",
|
|
126
126
|
"recommendation": "Unordered"
|
|
127
127
|
},
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"visualVariable": "Grid lines",
|
|
154
|
-
"sampleSize": "
|
|
154
|
+
"sampleSize": "5-10",
|
|
155
155
|
"variability": "Moderate",
|
|
156
156
|
"recommendation": "With grid lines"
|
|
157
157
|
}
|