revised trims
This commit is contained in:
@@ -18,22 +18,6 @@ export function addSeatToState(inSelectedSeat: I.JSCSelectedSeat): void {
|
|||||||
console.warn(`Cannot find corresponding venueXML pricescaleObj for pricescale with ID ${pricescaleID}`);
|
console.warn(`Cannot find corresponding venueXML pricescaleObj for pricescale with ID ${pricescaleID}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addSeatsItemToState(inItem: (string | undefined)[]): void {
|
|
||||||
if (inItem.every(v => v !== ("" || undefined || null))) {
|
|
||||||
config.state.selectedSeatsArr.push(<string[]>inItem);
|
|
||||||
config.state.cartChanged = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function addSeatObjToState(inSelectedSeat: I.JSCSelectedSeat): void {
|
|
||||||
const seatID: string = inSelectedSeat.id;
|
|
||||||
const seatObj: I.StateJSCSelectedSeats = {
|
|
||||||
[seatID]: inSelectedSeat
|
|
||||||
}
|
|
||||||
|
|
||||||
config.state.selectedSeatsObj = { ...config.state.selectedSeatsObj, ...seatObj }
|
|
||||||
}
|
|
||||||
|
|
||||||
export function removeSeatFromState(inSelectedSeat: I.JSCSelectedSeat): void {
|
export function removeSeatFromState(inSelectedSeat: I.JSCSelectedSeat): void {
|
||||||
delete config.state.selectedSeatsObj[inSelectedSeat.id];
|
delete config.state.selectedSeatsObj[inSelectedSeat.id];
|
||||||
|
|
||||||
@@ -57,3 +41,19 @@ export function maximumSelectedSeatsReached(inSeatObj: I.JSCSelectedSeat): boole
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addSeatsItemToState(inItem: (string | undefined)[]): void {
|
||||||
|
if (inItem.every(v => v !== ("" || undefined || null))) {
|
||||||
|
config.state.selectedSeatsArr.push(<string[]>inItem);
|
||||||
|
config.state.cartChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function addSeatObjToState(inSelectedSeat: I.JSCSelectedSeat): void {
|
||||||
|
const seatID: string = inSelectedSeat.id;
|
||||||
|
const seatObj: I.StateJSCSelectedSeats = {
|
||||||
|
[seatID]: inSelectedSeat
|
||||||
|
}
|
||||||
|
|
||||||
|
config.state.selectedSeatsObj = { ...config.state.selectedSeatsObj, ...seatObj }
|
||||||
|
}
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
import { config } from "./config";
|
import { config } from "./config";
|
||||||
import * as I from "../types/types";
|
import * as I from "../types/types";
|
||||||
|
|
||||||
export function addTrims() {
|
export function addTrims(): void {
|
||||||
const seatmapXML = config.state.seatmapXML;
|
const seatmapXML: any = config.state.seatmapXML;
|
||||||
const trimArr: I.Trim[] = seatmapXML.seatmap[0].trims[0].trim;
|
const trimArr: I.Trim[] = seatmapXML.seatmap[0].trims[0].trim;
|
||||||
|
|
||||||
trimArr.forEach(arr => {
|
trimArr.forEach(arr => {
|
||||||
const [xTrim, yTrim] = arr.coord[0].split(",").map(Number);
|
const [xTrim, yTrim] = arr.coord[0].split(",").map(Number);
|
||||||
const textArr: string[] = arr.text[0].split(";").filter(Boolean);
|
const textArr: string[] = arr.text[0].split(";").filter(Boolean);
|
||||||
const x = xTrim / 20;
|
const x: number = xTrim / 20;
|
||||||
const y = Math.round(yTrim / 21.25);
|
const y: number = Math.round(yTrim / 21.25);
|
||||||
|
|
||||||
console.log(`xTrim: ${xTrim} yTrim: ${yTrim} -> x: ${x} y: ${y}`);
|
decodeTrim(textArr, x, y);
|
||||||
|
|
||||||
decodeAddTrims(textArr, x, y);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function decodeAddTrims(textArr: string[], x: number, y: number) {
|
function decodeTrim(textArr: string[], x: number, y: number): void {
|
||||||
let i = 0;
|
const specialChar: Map<string, string> = new Map([
|
||||||
const specialChar = new Map([
|
|
||||||
["Ž", "Ä"],
|
["Ž", "Ä"],
|
||||||
["™", "Ö"],
|
["™", "Ö"],
|
||||||
["š", "Ü"],
|
["š", "Ü"],
|
||||||
@@ -28,28 +26,35 @@ function decodeAddTrims(textArr: string[], x: number, y: number) {
|
|||||||
["á", "ß"]
|
["á", "ß"]
|
||||||
]);
|
]);
|
||||||
|
|
||||||
textArr.forEach(element => {
|
textArr.map((element, index) => {
|
||||||
let character;
|
const character: string | undefined = specialChar.has(element) ? specialChar.get(element) : decodeNormalTrim(element);
|
||||||
|
|
||||||
if (specialChar.has(element))
|
if (character) {
|
||||||
character = specialChar.get(element);
|
const trimPos: I.TrimPos = getJSCTrimPos(x, y, index);
|
||||||
else {
|
applyTrim(character, trimPos);
|
||||||
const charCode = element.replace(/^\&\#/, "0");
|
|
||||||
character = String.fromCharCode(parseInt(charCode, 16));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (character)
|
|
||||||
applyTrim(x, y, i, character);
|
|
||||||
|
|
||||||
i++;
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function applyTrim(x: number, y: number, i: number, character: string) {
|
function decodeNormalTrim(element: string): string {
|
||||||
if (!/[^a-zA-Z0-9äöüÄÖÜß$]/.test(character)) {
|
const charCode: string = element.replace(/^\&\#/, "0");
|
||||||
const _x = (x - 1) + i;
|
return String.fromCharCode(parseInt(charCode, 16));
|
||||||
const _y = y - 1;
|
}
|
||||||
console.log(`${character} -> ${_x} ${_y}`);
|
|
||||||
jQuery(".seatCharts-row")[_y].children[_x].innerHTML = `<span class="trimChar">${character}</span>`
|
function applyTrim(inCharacter: string, inTrimPos: I.TrimPos): void {
|
||||||
|
const regex: RegExp = /[^a-zA-Z0-9äöüÄÖÜß$]/;
|
||||||
|
|
||||||
|
if (!regex.test(inCharacter)) {
|
||||||
|
console.log(`${inCharacter} -> ${inTrimPos.xJSC} ${inTrimPos.yJSC}`);
|
||||||
|
jQuery(".seatCharts-row")[inTrimPos.yJSC].children[inTrimPos.xJSC].innerHTML = `<span class="trimChar">${inCharacter}</span>`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function getJSCTrimPos(inX: number, inY: number, index: number): I.TrimPos {
|
||||||
|
return <I.TrimPos> {
|
||||||
|
x: inX,
|
||||||
|
y: inY,
|
||||||
|
xJSC: (inX - 1) + index,
|
||||||
|
yJSC: inY - 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
7
client/src/types/types.d.ts
vendored
7
client/src/types/types.d.ts
vendored
@@ -417,5 +417,12 @@ export interface ImportantNote {
|
|||||||
importantNoteEncoded: string;
|
importantNoteEncoded: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface TrimPos {
|
||||||
|
x: number;
|
||||||
|
y: number;
|
||||||
|
xJSC: number;
|
||||||
|
yJSC: number;
|
||||||
|
}
|
||||||
|
|
||||||
export type TypeBuyerType = (string | undefined)[][] | undefined;
|
export type TypeBuyerType = (string | undefined)[][] | undefined;
|
||||||
export type TypeBuyerTypeArr = (string | undefined)[];
|
export type TypeBuyerTypeArr = (string | undefined)[];
|
||||||
Reference in New Issue
Block a user