diff --git a/package-lock.json b/package-lock.json index 757a74c..531c6d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,6 +27,7 @@ "express": "^4.18.2", "rxjs": "~7.8.0", "sonarqube-scanner": "^4.3.0", + "swipl-wasm": "^7.0.5", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, @@ -5315,6 +5316,12 @@ "@types/node": "*" } }, + "node_modules/@types/emscripten": { + "version": "1.41.5", + "resolved": "https://registry.npmjs.org/@types/emscripten/-/emscripten-1.41.5.tgz", + "integrity": "sha512-cMQm7pxu6BxtHyqJ7mQZ2kXWV5SLmugybFdHCBbJ5eHzOo6VhBckEgAT3//rP5FwPHNPeEiq4SmQ5ucBwsOo4Q==", + "license": "MIT" + }, "node_modules/@types/eslint": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", @@ -13628,6 +13635,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/swipl-wasm": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/swipl-wasm/-/swipl-wasm-7.0.5.tgz", + "integrity": "sha512-3J6NYJq+G5xepS4zCTh15fdS9An0D/zqOLpF9l6y20nPEZcOagZ0v8Vt2IclPn4njFFL1LmgsBfHqjxZjkFYPA==", + "license": "BSD-2-Clause", + "dependencies": { + "@types/emscripten": "^1.41.5" + }, + "bin": { + "swipl-generate": "dist/bin/index.js" + } + }, "node_modules/symbol-observable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", diff --git a/package.json b/package.json index c7b133f..0192af4 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "express": "^4.18.2", "rxjs": "~7.8.0", "sonarqube-scanner": "^4.3.0", + "swipl-wasm": "^7.0.5", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, diff --git a/src/app/app.component.ts b/src/app/app.component.ts index c667523..5aa94ea 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -5,7 +5,7 @@ import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { CommonModule } from '@angular/common'; import { filter, take } from 'rxjs'; -import { Player } from './model'; +import { Player } from './util/model'; import { DataService } from './data.service'; @Component({ diff --git a/src/app/data.service.ts b/src/app/data.service.ts index 113e1a2..b62918b 100644 --- a/src/app/data.service.ts +++ b/src/app/data.service.ts @@ -1,5 +1,5 @@ import { Injectable } from '@angular/core'; -import { Player } from './model'; +import { Player } from './util/model'; @Injectable({ providedIn: 'root' diff --git a/src/app/modal-rotations/modal-rotations.component.ts b/src/app/modal-rotations/modal-rotations.component.ts index 1530d7a..6c7ea60 100644 --- a/src/app/modal-rotations/modal-rotations.component.ts +++ b/src/app/modal-rotations/modal-rotations.component.ts @@ -1,6 +1,6 @@ import { Component, Input } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; -import { Player} from '../model'; +import { Player} from '../util/model'; import { FormsModule } from '@angular/forms'; @Component({ diff --git a/src/app/screen-basic/screen-basic.component.ts b/src/app/screen-basic/screen-basic.component.ts index 32891f6..75b9c3d 100644 --- a/src/app/screen-basic/screen-basic.component.ts +++ b/src/app/screen-basic/screen-basic.component.ts @@ -3,8 +3,8 @@ import { Component, inject} from '@angular/core'; import { FormsModule } from '@angular/forms'; import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; import { CommonModule } from '@angular/common'; -import { Player } from '../model'; -import { iter } from '../util'; +import { Player } from '../util/model'; +import { assignPlayersRandomly, iter } from '../util/util'; import { DataService } from '../data.service'; @Component({ @@ -27,21 +27,8 @@ export class ScreenBasicComponent { this.numTeamsSelected = Number(this.numTeamsSelectorValue); } - let teams = Array.from({ length: this.numTeamsSelected }, () => []); - // clone array here - let localPlayers: Player[] = this.data.getPlayers(); - - let nameslen = localPlayers.length; - let iterator = iter(teams); - for(let i =0; i < nameslen; i++){ - let index = Math.floor(Math.random()* localPlayers.length); - let n = localPlayers[index]; - localPlayers.splice(index,1); - let team = iterator.next().value; - team.push(n); - - } - this.data.teams = teams; + let teams: Player[][]= Array.from({ length: this.numTeamsSelected }, () => []); + this.data.teams = assignPlayersRandomly(this.data.getPlayers(),teams); } } \ No newline at end of file diff --git a/src/app/screen-edit/screen-edit.component.ts b/src/app/screen-edit/screen-edit.component.ts index d9a6697..e8f681a 100644 --- a/src/app/screen-edit/screen-edit.component.ts +++ b/src/app/screen-edit/screen-edit.component.ts @@ -1,6 +1,6 @@ import { Component, inject, Input, ViewChild } from '@angular/core'; import { NgbAlert, NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { Player } from '../model'; +import { Player } from '../util/model'; import { ModalRotationsComponent } from '../modal-rotations/modal-rotations.component'; import { FormsModule } from '@angular/forms'; import { Subject } from 'rxjs/internal/Subject'; diff --git a/src/app/screen-rotations/screen-rotations.component.html b/src/app/screen-rotations/screen-rotations.component.html index 3f74f69..b38eb94 100644 --- a/src/app/screen-rotations/screen-rotations.component.html +++ b/src/app/screen-rotations/screen-rotations.component.html @@ -1,5 +1,9 @@