tfjs-evolution 0.0.1 → 0.0.3

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 CHANGED
@@ -1,24 +1,10 @@
1
- # TfjsEvolution
1
+ # Tfjs Evolution
2
2
 
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 17.3.0.
3
+ This is a placeholder for a package I am planning to publish.
4
+ I have experimented with Evolutionary Computing in TensorFlow.js, and I am planning a paper and a NPN package.
5
+ I was unable to find a NPM package, and decided to create one!
4
6
 
5
- ## Code scaffolding
6
7
 
7
- Run `ng generate component component-name --project tfjs-evolution` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project tfjs-evolution`.
8
- > Note: Don't forget to add `--project tfjs-evolution` or else it will be added to the default project in your `angular.json` file.
8
+ # Further help
9
9
 
10
- ## Build
11
-
12
- Run `ng build tfjs-evolution` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build tfjs-evolution`, go to the dist folder `cd dist/tfjs-evolution` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test tfjs-evolution` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
10
+ Feel free to get in touch: jorgeguerrabrazil@gmail.com
@@ -0,0 +1,48 @@
1
+ import { Component } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ export class DisplayPanelComponent {
6
+ constructor() {
7
+ this.classes = [];
8
+ this.classes_names = [
9
+ "Canário-da-Terra",
10
+ "Pardal",
11
+ "Bem-Te-Vi",
12
+ "Suiriri-Cavaleiro",
13
+ "Lavadeira-Mascarada",
14
+ "Anu-Branco",
15
+ "Beija-Flor-Tesoura",
16
+ "Casaca-de-Couro-da-Lama",
17
+ "Garibaldi",
18
+ "Periquitão",
19
+ "Pombo-Doméstico",
20
+ "Quero-Quero",
21
+ "Rolinha-Roxa",
22
+ "Sabiá-Do-Campo",
23
+ "Urubu-de-Cabeça-Preta"
24
+ ];
25
+ }
26
+ loadImages(number_of_species, options) {
27
+ this.add_species(number_of_species, options);
28
+ }
29
+ add_species(number_of_species, options) {
30
+ for (let i = 0; i < this.classes_names.length; i++) {
31
+ this.add_images(this.classes_names[i], number_of_species, options);
32
+ }
33
+ }
34
+ add_images(name, number_of_species, options) {
35
+ const class_add = [];
36
+ for (let i = 1; i < number_of_species; i++) {
37
+ class_add.push(`${options.base}/${name}/${options.file_name} ${i}.${options.file_extension}`);
38
+ }
39
+ this.classes.push({ name: name, images: class_add });
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: DisplayPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
42
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: DisplayPanelComponent, isStandalone: true, selector: "neuroevolution-display-panel", ngImport: i0, template: "<div *ngFor=\"let class of classes; index as i\">\r\n <h1>{{class.name}}</h1>\r\n <img *ngFor=\"let item of class.images; index as i\" [src]=\"item\" width=\"10%\" height=\"10%\" [id]=\"'class-1-' + i\" crossorigin=\"anonymous\" >\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: DisplayPanelComponent, decorators: [{
45
+ type: Component,
46
+ args: [{ selector: 'neuroevolution-display-panel', standalone: true, imports: [CommonModule], template: "<div *ngFor=\"let class of classes; index as i\">\r\n <h1>{{class.name}}</h1>\r\n <img *ngFor=\"let item of class.images; index as i\" [src]=\"item\" width=\"10%\" height=\"10%\" [id]=\"'class-1-' + i\" crossorigin=\"anonymous\" >\r\n</div>\r\n" }]
47
+ }] });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1wYW5lbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZmpzLWV2b2x1dGlvbi9zcmMvbGliL2NvbXBvbmVudHMvZGlzcGxheS1wYW5lbC9kaXNwbGF5LXBhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RmanMtZXZvbHV0aW9uL3NyYy9saWIvY29tcG9uZW50cy9kaXNwbGF5LXBhbmVsL2Rpc3BsYXktcGFuZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVMvQyxNQUFNLE9BQU8scUJBQXFCO0lBUGxDO1FBU0UsWUFBTyxHQUFVLEVBQUUsQ0FBQztRQUVwQixrQkFBYSxHQUFDO1lBQ1osa0JBQWtCO1lBQ2xCLFFBQVE7WUFDUixXQUFXO1lBQ1gsbUJBQW1CO1lBQ25CLHFCQUFxQjtZQUNyQixZQUFZO1lBQ1osb0JBQW9CO1lBQ3BCLHlCQUF5QjtZQUN6QixXQUFXO1lBQ1gsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsY0FBYztZQUNkLGdCQUFnQjtZQUNoQix1QkFBdUI7U0FDeEIsQ0FBQTtLQTJCRjtJQXhCQyxVQUFVLENBQUMsaUJBQXlCLEVBQUUsT0FBZTtRQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFHRCxXQUFXLENBQUMsaUJBQXlCLEVBQUUsT0FBZTtRQUVwRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3BFO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxJQUFZLEVBQUUsaUJBQXlCLEVBQUUsT0FBWTtRQUU5RCxNQUFNLFNBQVMsR0FBTyxFQUFFLENBQUM7UUFFekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztTQUNqRztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFDLENBQUMsQ0FBQTtJQUVsRCxDQUFDOzhHQTdDVSxxQkFBcUI7a0dBQXJCLHFCQUFxQix3RkNYbEMseVBBSUEseURER1ksWUFBWTs7MkZBSVgscUJBQXFCO2tCQVBqQyxTQUFTOytCQUNFLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBHcm91cCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZ3JvdXAnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICduZXVyb2V2b2x1dGlvbi1kaXNwbGF5LXBhbmVsJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXNwbGF5LXBhbmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGlzcGxheS1wYW5lbC5jb21wb25lbnQuY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlzcGxheVBhbmVsQ29tcG9uZW50IHtcclxuXHJcbiAgY2xhc3NlczogR3JvdXBbXT1bXTtcclxuXHJcbiAgY2xhc3Nlc19uYW1lcz1bXHJcbiAgICBcIkNhbsOhcmlvLWRhLVRlcnJhXCIsXHJcbiAgICBcIlBhcmRhbFwiLFxyXG4gICAgXCJCZW0tVGUtVmlcIixcclxuICAgIFwiU3VpcmlyaS1DYXZhbGVpcm9cIixcclxuICAgIFwiTGF2YWRlaXJhLU1hc2NhcmFkYVwiLFxyXG4gICAgXCJBbnUtQnJhbmNvXCIsICBcclxuICAgIFwiQmVpamEtRmxvci1UZXNvdXJhXCIsIFxyXG4gICAgXCJDYXNhY2EtZGUtQ291cm8tZGEtTGFtYVwiLFxyXG4gICAgXCJHYXJpYmFsZGlcIixcclxuICAgIFwiUGVyaXF1aXTDo29cIixcclxuICAgIFwiUG9tYm8tRG9tw6lzdGljb1wiLFxyXG4gICAgXCJRdWVyby1RdWVyb1wiLFxyXG4gICAgXCJSb2xpbmhhLVJveGFcIixcclxuICAgIFwiU2FiacOhLURvLUNhbXBvXCIsXHJcbiAgICBcIlVydWJ1LWRlLUNhYmXDp2EtUHJldGFcIlxyXG4gIF1cclxuXHJcblxyXG4gIGxvYWRJbWFnZXMobnVtYmVyX29mX3NwZWNpZXM6IG51bWJlciwgb3B0aW9uczogb2JqZWN0KXtcclxuICAgIHRoaXMuYWRkX3NwZWNpZXMobnVtYmVyX29mX3NwZWNpZXMsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcblxyXG4gIGFkZF9zcGVjaWVzKG51bWJlcl9vZl9zcGVjaWVzOiBudW1iZXIsIG9wdGlvbnM6IG9iamVjdCl7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNsYXNzZXNfbmFtZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5hZGRfaW1hZ2VzKHRoaXMuY2xhc3Nlc19uYW1lc1tpXSwgbnVtYmVyX29mX3NwZWNpZXMsIG9wdGlvbnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkX2ltYWdlcyhuYW1lOiBzdHJpbmcsIG51bWJlcl9vZl9zcGVjaWVzOiBudW1iZXIsIG9wdGlvbnM6IGFueSl7ICAgXHJcblxyXG4gICAgY29uc3QgY2xhc3NfYWRkOiBhbnk9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAxOyBpIDwgbnVtYmVyX29mX3NwZWNpZXM7IGkrKykgeyAgICAgIFxyXG4gICAgICBjbGFzc19hZGQucHVzaChgJHtvcHRpb25zLmJhc2V9LyR7bmFtZX0vJHtvcHRpb25zLmZpbGVfbmFtZX0gJHtpfS4ke29wdGlvbnMuZmlsZV9leHRlbnNpb259YCk7XHJcbiAgfVxyXG5cclxuICB0aGlzLmNsYXNzZXMucHVzaCh7bmFtZTogbmFtZSwgaW1hZ2VzOiBjbGFzc19hZGR9KSAgXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiAqbmdGb3I9XCJsZXQgY2xhc3Mgb2YgY2xhc3NlczsgaW5kZXggYXMgaVwiPlxyXG4gIDxoMT57e2NsYXNzLm5hbWV9fTwvaDE+XHJcbiAgPGltZyAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY2xhc3MuaW1hZ2VzOyBpbmRleCBhcyBpXCIgW3NyY109XCJpdGVtXCIgd2lkdGg9XCIxMCVcIiBoZWlnaHQ9XCIxMCVcIiBbaWRdPVwiJ2NsYXNzLTEtJyArIGlcIiBjcm9zc29yaWdpbj1cImFub255bW91c1wiID5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZmpzLWV2b2x1dGlvbi9zcmMvbGliL2ludGVyZmFjZXMvZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgR3JvdXAge1xyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAgaW1hZ2VzOiBzdHJpbmdbXVxyXG59XHJcbiJdfQ==
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from './lib/tfjs-evolution.service';
5
5
  export * from './lib/tfjs-evolution.component';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RmanMtZXZvbHV0aW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRmanMtZXZvbHV0aW9uXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGZqcy1ldm9sdXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RmanMtZXZvbHV0aW9uLmNvbXBvbmVudCc7XHJcbiJdfQ==
6
+ export * from './lib/components/display-panel/display-panel.component';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RmanMtZXZvbHV0aW9uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsd0RBQXdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdGZqcy1ldm9sdXRpb25cclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90ZmpzLWV2b2x1dGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGZqcy1ldm9sdXRpb24uY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGlzcGxheS1wYW5lbC9kaXNwbGF5LXBhbmVsLmNvbXBvbmVudCc7XHJcbiJdfQ==
@@ -1,5 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Injectable, Component } from '@angular/core';
3
+ import * as i1 from '@angular/common';
4
+ import { CommonModule } from '@angular/common';
3
5
 
4
6
  class TfjsEvolutionService {
5
7
  constructor() { }
@@ -30,6 +32,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
30
32
  ` }]
31
33
  }] });
32
34
 
35
+ class DisplayPanelComponent {
36
+ constructor() {
37
+ this.classes = [];
38
+ this.classes_names = [
39
+ "Canário-da-Terra",
40
+ "Pardal",
41
+ "Bem-Te-Vi",
42
+ "Suiriri-Cavaleiro",
43
+ "Lavadeira-Mascarada",
44
+ "Anu-Branco",
45
+ "Beija-Flor-Tesoura",
46
+ "Casaca-de-Couro-da-Lama",
47
+ "Garibaldi",
48
+ "Periquitão",
49
+ "Pombo-Doméstico",
50
+ "Quero-Quero",
51
+ "Rolinha-Roxa",
52
+ "Sabiá-Do-Campo",
53
+ "Urubu-de-Cabeça-Preta"
54
+ ];
55
+ }
56
+ loadImages(number_of_species, options) {
57
+ this.add_species(number_of_species, options);
58
+ }
59
+ add_species(number_of_species, options) {
60
+ for (let i = 0; i < this.classes_names.length; i++) {
61
+ this.add_images(this.classes_names[i], number_of_species, options);
62
+ }
63
+ }
64
+ add_images(name, number_of_species, options) {
65
+ const class_add = [];
66
+ for (let i = 1; i < number_of_species; i++) {
67
+ class_add.push(`${options.base}/${name}/${options.file_name} ${i}.${options.file_extension}`);
68
+ }
69
+ this.classes.push({ name: name, images: class_add });
70
+ }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: DisplayPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
72
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: DisplayPanelComponent, isStandalone: true, selector: "neuroevolution-display-panel", ngImport: i0, template: "<div *ngFor=\"let class of classes; index as i\">\r\n <h1>{{class.name}}</h1>\r\n <img *ngFor=\"let item of class.images; index as i\" [src]=\"item\" width=\"10%\" height=\"10%\" [id]=\"'class-1-' + i\" crossorigin=\"anonymous\" >\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] }); }
73
+ }
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: DisplayPanelComponent, decorators: [{
75
+ type: Component,
76
+ args: [{ selector: 'neuroevolution-display-panel', standalone: true, imports: [CommonModule], template: "<div *ngFor=\"let class of classes; index as i\">\r\n <h1>{{class.name}}</h1>\r\n <img *ngFor=\"let item of class.images; index as i\" [src]=\"item\" width=\"10%\" height=\"10%\" [id]=\"'class-1-' + i\" crossorigin=\"anonymous\" >\r\n</div>\r\n" }]
77
+ }] });
78
+
33
79
  /*
34
80
  * Public API Surface of tfjs-evolution
35
81
  */
@@ -38,5 +84,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
38
84
  * Generated bundle index. Do not edit.
39
85
  */
40
86
 
41
- export { TfjsEvolutionComponent, TfjsEvolutionService };
87
+ export { DisplayPanelComponent, TfjsEvolutionComponent, TfjsEvolutionService };
42
88
  //# sourceMappingURL=tfjs-evolution.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"tfjs-evolution.mjs","sources":["../../../projects/tfjs-evolution/src/lib/tfjs-evolution.service.ts","../../../projects/tfjs-evolution/src/lib/tfjs-evolution.component.ts","../../../projects/tfjs-evolution/src/public-api.ts","../../../projects/tfjs-evolution/src/tfjs-evolution.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TfjsEvolutionService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'neuroevolution-tfjs-evolution',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n tfjs-evolution works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class TfjsEvolutionComponent {\r\n\r\n}\r\n","/*\r\n * Public API Surface of tfjs-evolution\r\n */\r\n\r\nexport * from './lib/tfjs-evolution.service';\r\nexport * from './lib/tfjs-evolution.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;MAKa,oBAAoB,CAAA;AAE/B,IAAA,WAAA,GAAA,GAAiB;8GAFN,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCSY,sBAAsB,CAAA;8GAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAPvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGU,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAXlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAC7B,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,EAAE,EACD,QAAA,EAAA,CAAA;;;;AAIT,EAAA,CAAA,EAAA,CAAA;;;ACVH;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"tfjs-evolution.mjs","sources":["../../../projects/tfjs-evolution/src/lib/tfjs-evolution.service.ts","../../../projects/tfjs-evolution/src/lib/tfjs-evolution.component.ts","../../../projects/tfjs-evolution/src/lib/components/display-panel/display-panel.component.ts","../../../projects/tfjs-evolution/src/lib/components/display-panel/display-panel.component.html","../../../projects/tfjs-evolution/src/public-api.ts","../../../projects/tfjs-evolution/src/tfjs-evolution.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TfjsEvolutionService {\r\n\r\n constructor() { }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'neuroevolution-tfjs-evolution',\r\n standalone: true,\r\n imports: [],\r\n template: `\r\n <p>\r\n tfjs-evolution works!\r\n </p>\r\n `,\r\n styles: ``\r\n})\r\nexport class TfjsEvolutionComponent {\r\n\r\n}\r\n","import { Component} from '@angular/core';\r\nimport { Group } from '../../interfaces/group';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'neuroevolution-display-panel',\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: './display-panel.component.html',\r\n styleUrl: './display-panel.component.css'\r\n})\r\nexport class DisplayPanelComponent {\r\n\r\n classes: Group[]=[];\r\n\r\n classes_names=[\r\n \"Canário-da-Terra\",\r\n \"Pardal\",\r\n \"Bem-Te-Vi\",\r\n \"Suiriri-Cavaleiro\",\r\n \"Lavadeira-Mascarada\",\r\n \"Anu-Branco\", \r\n \"Beija-Flor-Tesoura\", \r\n \"Casaca-de-Couro-da-Lama\",\r\n \"Garibaldi\",\r\n \"Periquitão\",\r\n \"Pombo-Doméstico\",\r\n \"Quero-Quero\",\r\n \"Rolinha-Roxa\",\r\n \"Sabiá-Do-Campo\",\r\n \"Urubu-de-Cabeça-Preta\"\r\n ]\r\n\r\n\r\n loadImages(number_of_species: number, options: object){\r\n this.add_species(number_of_species, options);\r\n }\r\n\r\n\r\n add_species(number_of_species: number, options: object){\r\n\r\n for (let i = 0; i < this.classes_names.length; i++) {\r\n this.add_images(this.classes_names[i], number_of_species, options);\r\n }\r\n }\r\n\r\n add_images(name: string, number_of_species: number, options: any){ \r\n\r\n const class_add: any= [];\r\n\r\n for (let i = 1; i < number_of_species; i++) { \r\n class_add.push(`${options.base}/${name}/${options.file_name} ${i}.${options.file_extension}`);\r\n }\r\n\r\n this.classes.push({name: name, images: class_add}) \r\n\r\n }\r\n\r\n}\r\n","<div *ngFor=\"let class of classes; index as i\">\r\n <h1>{{class.name}}</h1>\r\n <img *ngFor=\"let item of class.images; index as i\" [src]=\"item\" width=\"10%\" height=\"10%\" [id]=\"'class-1-' + i\" crossorigin=\"anonymous\" >\r\n</div>\r\n","/*\r\n * Public API Surface of tfjs-evolution\r\n */\r\n\r\nexport * from './lib/tfjs-evolution.service';\r\nexport * from './lib/tfjs-evolution.component';\r\n\r\nexport * from './lib/components/display-panel/display-panel.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { Group } from '../../interfaces/group';
2
+ import * as i0 from "@angular/core";
3
+ export declare class DisplayPanelComponent {
4
+ classes: Group[];
5
+ classes_names: string[];
6
+ loadImages(number_of_species: number, options: object): void;
7
+ add_species(number_of_species: number, options: object): void;
8
+ add_images(name: string, number_of_species: number, options: any): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<DisplayPanelComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<DisplayPanelComponent, "neuroevolution-display-panel", never, {}, {}, never, never, true, never>;
11
+ }
@@ -0,0 +1,4 @@
1
+ export interface Group {
2
+ name: string;
3
+ images: string[];
4
+ }
package/package.json CHANGED
@@ -1,6 +1,17 @@
1
1
  {
2
2
  "name": "tfjs-evolution",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
+ "description": "This is an experimentation with evolutionary computing applied to neural networks using TensorFlow.js",
5
+ "author": "Jorge Guerra Pires",
6
+ "license": "MIT",
7
+ "keywords": [
8
+ "angular",
9
+ "evolutionary computing",
10
+ "genetic algorithms",
11
+ "neural networks",
12
+ "machine learning",
13
+ "optimization"
14
+ ],
4
15
  "peerDependencies": {
5
16
  "@angular/common": "^17.3.0",
6
17
  "@angular/core": "^17.3.0"
package/public-api.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './lib/tfjs-evolution.service';
2
2
  export * from './lib/tfjs-evolution.component';
3
+ export * from './lib/components/display-panel/display-panel.component';