fix : added enable and disable for shash enter (labels)
This commit is contained in:
parent
6d9be9c8e4
commit
244604702a
@ -17,11 +17,12 @@
|
||||
<!-- Right Group: ENTER, COPY, CLEAR, PR -->
|
||||
<div class="d-flex flex-wrap justify-content-center gap-2 second">
|
||||
<button
|
||||
*ngIf="showShashEnter"
|
||||
class="btn btn-dark"
|
||||
[disabled]="selectedLabel === 'QUI' && isQUIFirstGroupComplete"
|
||||
(click)="padEnter()"
|
||||
>
|
||||
Enter
|
||||
shash ENTER
|
||||
</button>
|
||||
<button class="btn btn-dark">COPY</button>
|
||||
<button class="btn btn-dark">CLEAR</button>
|
||||
@ -139,32 +140,32 @@
|
||||
</div>
|
||||
|
||||
<!-- 🟦 FIELD Modal -->
|
||||
<div id="fieldModal" class="field-modal" [style.display]="fieldModalOpen ? 'block' : 'none'">
|
||||
<div class="field-modal-content">
|
||||
<div class="field-modal-header">
|
||||
<span class="close-btn" (click)="closeFieldModal()">×</span>
|
||||
<h5>FIELD</h5>
|
||||
</div>
|
||||
<div id="fieldModal" class="field-modal" [style.display]="fieldModalOpen ? 'block' : 'none'">
|
||||
<div class="field-modal-content">
|
||||
<div class="field-modal-header">
|
||||
<span class="close-btn" (click)="closeFieldModal()">×</span>
|
||||
<h5>FIELD</h5>
|
||||
</div>
|
||||
|
||||
<label>Runners selection</label>
|
||||
<input type="text" class="field-display" [value]="fieldInput" readonly />
|
||||
<label>Runners selection</label>
|
||||
<input type="text" class="field-display" [value]="fieldInput" readonly />
|
||||
|
||||
<p><strong>Total Runners</strong><br />1,2,3,4,5,6,7,8,9,10,11,12</p>
|
||||
<p><strong>Total Runners</strong><br />1,2,3,4,5,6,7,8,9,10,11,12</p>
|
||||
|
||||
<div class="field-buttons">
|
||||
<ng-container *ngFor="let key of ['0', '-', 'F', 'BACK', '7', '8', '9', '4', '5', '6', '1', '2', '3']">
|
||||
<button
|
||||
[disabled]="fieldFEntered && key === 'F'"
|
||||
(click)="handleFieldKey(key)"
|
||||
>
|
||||
{{ key }}
|
||||
</button>
|
||||
</ng-container>
|
||||
<div class="field-buttons">
|
||||
<ng-container *ngFor="let key of ['0', '-', 'F', 'BACK', '7', '8', '9', '4', '5', '6', '1', '2', '3']">
|
||||
<button
|
||||
[disabled]="fieldFEntered && key === 'F'"
|
||||
(click)="handleFieldKey(key)"
|
||||
>
|
||||
{{ key }}
|
||||
</button>
|
||||
</ng-container>
|
||||
|
||||
<button class="span-two" (click)="confirmFieldEntry()" [disabled]="!fieldFEntered">ENTER</button>
|
||||
<button class="field-cancel-btn" (click)="closeFieldModal()">CANCEL</button>
|
||||
<button class="span-two" (click)="confirmFieldEntry()" [disabled]="!fieldFEntered">ENTER</button>
|
||||
<button class="field-cancel-btn" (click)="closeFieldModal()">CANCEL</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -66,6 +66,11 @@ export class TouchPadMenuComponent implements OnInit {
|
||||
return this.selectedLabel !== null && this.selectedNumbers.length > 0;
|
||||
}
|
||||
|
||||
get showShashEnter(): boolean {
|
||||
const enabledLabels = ['FOR', 'QUI', 'TAN', 'EXA', 'WSP', 'TRE', 'MJP', 'JKP', 'SJP', '.'];
|
||||
return enabledLabels.includes(this.selectedLabel || '');
|
||||
}
|
||||
|
||||
private chunk<T>(array: T[], size: number): T[][] {
|
||||
return Array.from({ length: Math.ceil(array.length / size) }, (_, i) =>
|
||||
array.slice(i * size, i * size + size)
|
||||
@ -95,16 +100,16 @@ export class TouchPadMenuComponent implements OnInit {
|
||||
if (this.isQUIFirstGroupComplete) {
|
||||
if (!this.QUIGroup2.includes(number)) {
|
||||
this.QUIGroup2.push(number);
|
||||
this.selectedNumbers = [...this.QUIGroup1, ...this.QUIGroup2];
|
||||
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
|
||||
this.selectedNumbers = [...this.QUIGroup1, '-', ...this.QUIGroup2];
|
||||
}
|
||||
} else {
|
||||
if (!this.QUIGroup1.includes(number)) {
|
||||
this.QUIGroup1.push(number);
|
||||
this.selectedNumbers = [...this.QUIGroup1];
|
||||
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
|
||||
}
|
||||
}
|
||||
|
||||
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
|
||||
} else {
|
||||
if (!this.selectedNumbers.includes(number)) {
|
||||
this.selectedNumbers.push(number);
|
||||
@ -116,9 +121,9 @@ export class TouchPadMenuComponent implements OnInit {
|
||||
this.canPrint = false;
|
||||
}
|
||||
|
||||
isNumberDisabled(number: number) {
|
||||
isNumberDisabled(number: number): boolean {
|
||||
if (this.selectedLabel === 'QUI') {
|
||||
return this.QUIGroup1.includes(number) || this.QUIGroup2.includes(number);
|
||||
return false; // ✅ Allow reuse in second group
|
||||
}
|
||||
return this.selectedNumbers.includes(number);
|
||||
}
|
||||
@ -152,6 +157,14 @@ export class TouchPadMenuComponent implements OnInit {
|
||||
if (this.selectedLabel === 'QUI') {
|
||||
if (!this.isQUIFirstGroupComplete && this.QUIGroup1.length > 0) {
|
||||
this.isQUIFirstGroupComplete = true;
|
||||
|
||||
// ✅ Add dash to represent separator
|
||||
this.selectedNumbers = [...this.QUIGroup1, '-'];
|
||||
this.QUIGroup2 = [];
|
||||
|
||||
// Update to prepare for second group
|
||||
this.selectionService.updatePartial({ numbers: [...this.selectedNumbers] });
|
||||
return;
|
||||
}
|
||||
} else if (this.canPrint) {
|
||||
this.print();
|
||||
@ -231,15 +244,14 @@ export class TouchPadMenuComponent implements OnInit {
|
||||
}
|
||||
|
||||
// 🔘 FIELD Modal Logic
|
||||
canUseField(): boolean {
|
||||
const allowedLabels = ['WIN', 'SHP', 'THP', 'PLC', 'SHW'];
|
||||
return (
|
||||
this.selectedLabel !== null &&
|
||||
allowedLabels.includes(this.selectedLabel) &&
|
||||
this.selectedNumbers.length === 0
|
||||
);
|
||||
}
|
||||
|
||||
canUseField(): boolean {
|
||||
const allowedLabels = ['WIN', 'SHP', 'THP', 'PLC', 'SHW'];
|
||||
return (
|
||||
this.selectedLabel !== null &&
|
||||
allowedLabels.includes(this.selectedLabel) &&
|
||||
this.selectedNumbers.length === 0
|
||||
);
|
||||
}
|
||||
|
||||
openFieldModal() {
|
||||
this.fieldModalOpen = true;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user