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 -->
|
<!-- Right Group: ENTER, COPY, CLEAR, PR -->
|
||||||
<div class="d-flex flex-wrap justify-content-center gap-2 second">
|
<div class="d-flex flex-wrap justify-content-center gap-2 second">
|
||||||
<button
|
<button
|
||||||
|
*ngIf="showShashEnter"
|
||||||
class="btn btn-dark"
|
class="btn btn-dark"
|
||||||
[disabled]="selectedLabel === 'QUI' && isQUIFirstGroupComplete"
|
[disabled]="selectedLabel === 'QUI' && isQUIFirstGroupComplete"
|
||||||
(click)="padEnter()"
|
(click)="padEnter()"
|
||||||
>
|
>
|
||||||
Enter
|
shash ENTER
|
||||||
</button>
|
</button>
|
||||||
<button class="btn btn-dark">COPY</button>
|
<button class="btn btn-dark">COPY</button>
|
||||||
<button class="btn btn-dark">CLEAR</button>
|
<button class="btn btn-dark">CLEAR</button>
|
||||||
@ -139,32 +140,32 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 🟦 FIELD Modal -->
|
<!-- 🟦 FIELD Modal -->
|
||||||
<div id="fieldModal" class="field-modal" [style.display]="fieldModalOpen ? 'block' : 'none'">
|
<div id="fieldModal" class="field-modal" [style.display]="fieldModalOpen ? 'block' : 'none'">
|
||||||
<div class="field-modal-content">
|
<div class="field-modal-content">
|
||||||
<div class="field-modal-header">
|
<div class="field-modal-header">
|
||||||
<span class="close-btn" (click)="closeFieldModal()">×</span>
|
<span class="close-btn" (click)="closeFieldModal()">×</span>
|
||||||
<h5>FIELD</h5>
|
<h5>FIELD</h5>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<label>Runners selection</label>
|
<label>Runners selection</label>
|
||||||
<input type="text" class="field-display" [value]="fieldInput" readonly />
|
<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">
|
<div class="field-buttons">
|
||||||
<ng-container *ngFor="let key of ['0', '-', 'F', 'BACK', '7', '8', '9', '4', '5', '6', '1', '2', '3']">
|
<ng-container *ngFor="let key of ['0', '-', 'F', 'BACK', '7', '8', '9', '4', '5', '6', '1', '2', '3']">
|
||||||
<button
|
<button
|
||||||
[disabled]="fieldFEntered && key === 'F'"
|
[disabled]="fieldFEntered && key === 'F'"
|
||||||
(click)="handleFieldKey(key)"
|
(click)="handleFieldKey(key)"
|
||||||
>
|
>
|
||||||
{{ key }}
|
{{ key }}
|
||||||
</button>
|
</button>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<button class="span-two" (click)="confirmFieldEntry()" [disabled]="!fieldFEntered">ENTER</button>
|
<button class="span-two" (click)="confirmFieldEntry()" [disabled]="!fieldFEntered">ENTER</button>
|
||||||
<button class="field-cancel-btn" (click)="closeFieldModal()">CANCEL</button>
|
<button class="field-cancel-btn" (click)="closeFieldModal()">CANCEL</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -66,6 +66,11 @@ export class TouchPadMenuComponent implements OnInit {
|
|||||||
return this.selectedLabel !== null && this.selectedNumbers.length > 0;
|
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[][] {
|
private chunk<T>(array: T[], size: number): T[][] {
|
||||||
return Array.from({ length: Math.ceil(array.length / size) }, (_, i) =>
|
return Array.from({ length: Math.ceil(array.length / size) }, (_, i) =>
|
||||||
array.slice(i * size, i * size + size)
|
array.slice(i * size, i * size + size)
|
||||||
@ -95,16 +100,16 @@ export class TouchPadMenuComponent implements OnInit {
|
|||||||
if (this.isQUIFirstGroupComplete) {
|
if (this.isQUIFirstGroupComplete) {
|
||||||
if (!this.QUIGroup2.includes(number)) {
|
if (!this.QUIGroup2.includes(number)) {
|
||||||
this.QUIGroup2.push(number);
|
this.QUIGroup2.push(number);
|
||||||
this.selectedNumbers = [...this.QUIGroup1, ...this.QUIGroup2];
|
this.selectedNumbers = [...this.QUIGroup1, '-', ...this.QUIGroup2];
|
||||||
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!this.QUIGroup1.includes(number)) {
|
if (!this.QUIGroup1.includes(number)) {
|
||||||
this.QUIGroup1.push(number);
|
this.QUIGroup1.push(number);
|
||||||
this.selectedNumbers = [...this.QUIGroup1];
|
this.selectedNumbers = [...this.QUIGroup1];
|
||||||
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.selectionService.updatePartial({ numbers: this.selectedNumbers });
|
||||||
} else {
|
} else {
|
||||||
if (!this.selectedNumbers.includes(number)) {
|
if (!this.selectedNumbers.includes(number)) {
|
||||||
this.selectedNumbers.push(number);
|
this.selectedNumbers.push(number);
|
||||||
@ -116,9 +121,9 @@ export class TouchPadMenuComponent implements OnInit {
|
|||||||
this.canPrint = false;
|
this.canPrint = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
isNumberDisabled(number: number) {
|
isNumberDisabled(number: number): boolean {
|
||||||
if (this.selectedLabel === 'QUI') {
|
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);
|
return this.selectedNumbers.includes(number);
|
||||||
}
|
}
|
||||||
@ -152,6 +157,14 @@ export class TouchPadMenuComponent implements OnInit {
|
|||||||
if (this.selectedLabel === 'QUI') {
|
if (this.selectedLabel === 'QUI') {
|
||||||
if (!this.isQUIFirstGroupComplete && this.QUIGroup1.length > 0) {
|
if (!this.isQUIFirstGroupComplete && this.QUIGroup1.length > 0) {
|
||||||
this.isQUIFirstGroupComplete = true;
|
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) {
|
} else if (this.canPrint) {
|
||||||
this.print();
|
this.print();
|
||||||
@ -231,15 +244,14 @@ export class TouchPadMenuComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 🔘 FIELD Modal Logic
|
// 🔘 FIELD Modal Logic
|
||||||
canUseField(): boolean {
|
canUseField(): boolean {
|
||||||
const allowedLabels = ['WIN', 'SHP', 'THP', 'PLC', 'SHW'];
|
const allowedLabels = ['WIN', 'SHP', 'THP', 'PLC', 'SHW'];
|
||||||
return (
|
return (
|
||||||
this.selectedLabel !== null &&
|
this.selectedLabel !== null &&
|
||||||
allowedLabels.includes(this.selectedLabel) &&
|
allowedLabels.includes(this.selectedLabel) &&
|
||||||
this.selectedNumbers.length === 0
|
this.selectedNumbers.length === 0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
openFieldModal() {
|
openFieldModal() {
|
||||||
this.fieldModalOpen = true;
|
this.fieldModalOpen = true;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user