From 726aa540d285fdd051f04a9c5ccb69d5d3d98719 Mon Sep 17 00:00:00 2001 From: Dan Gowans Date: Tue, 20 Sep 2022 14:14:09 -0400 Subject: [PATCH] support toggling is-readonly class --- public-typescript/main.js | 2 ++ public-typescript/main.ts | 3 +++ public/javascripts/main.min.js | 2 +- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/public-typescript/main.js b/public-typescript/main.js index e14c387c..235cb10e 100644 --- a/public-typescript/main.js +++ b/public-typescript/main.js @@ -23,8 +23,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); const unlockField = (clickEvent) => { const fieldElement = clickEvent.currentTarget.closest(".field"); const inputOrSelectElement = fieldElement.querySelector("input, select"); + inputOrSelectElement.classList.remove("is-readonly"); if (inputOrSelectElement.tagName === "INPUT") { inputOrSelectElement.readOnly = false; + inputOrSelectElement.disabled = false; } else { const optionElements = inputOrSelectElement.querySelectorAll("option"); diff --git a/public-typescript/main.ts b/public-typescript/main.ts index 2fd1904f..6b86e6b2 100644 --- a/public-typescript/main.ts +++ b/public-typescript/main.ts @@ -53,8 +53,11 @@ import type * as globalTypes from "../types/globalTypes"; "input, select" ) as HTMLInputElement | HTMLSelectElement; + inputOrSelectElement.classList.remove("is-readonly"); + if (inputOrSelectElement.tagName === "INPUT") { (inputOrSelectElement as HTMLInputElement).readOnly = false; + (inputOrSelectElement as HTMLInputElement).disabled = false; } else { const optionElements = inputOrSelectElement.querySelectorAll("option"); diff --git a/public/javascripts/main.min.js b/public/javascripts/main.min.js index 75d45c43..fa2eb435 100644 --- a/public/javascripts/main.min.js +++ b/public/javascripts/main.min.js @@ -1 +1 @@ -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=e=>{const t=e.currentTarget.closest(".field").querySelector("input, select");if("INPUT"===t.tagName)t.readOnly=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()},t=["red","green","orange","blue","pink","yellow","purple"],o=["bright","light","dark"],l={highlightMap:(e,t,o)=>{let l,s=t;for(;!(l=e.querySelector("#"+s))&&s.includes("-");)s=s.slice(0,Math.max(0,s.lastIndexOf("-")));if(l){l.style.fill=null,l.classList.add("highlight","is-"+o);const e=l.querySelectorAll("path");for(const t of e)t.style.fill=null}},initializeUnlockFieldButtons:t=>{const o=t.querySelectorAll(".is-unlock-field-button");for(const t of o)t.addEventListener("click",e)},populateAliases:e=>{const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},getRandomColor:e=>{let l=e;return l.length<2&&(l+="a1"),exports.randomColor({seed:l+l,hue:t[l.codePointAt(l.length-1)%t.length],luminosity:o[l.codePointAt(l.length-2)%o.length]})}};exports.los=l})(); \ No newline at end of file +"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=e=>{const t=e.currentTarget.closest(".field").querySelector("input, select");if(t.classList.remove("is-readonly"),"INPUT"===t.tagName)t.readOnly=!1,t.disabled=!1;else{const e=t.querySelectorAll("option");for(const t of e)t.disabled=!1}t.focus()},t=["red","green","orange","blue","pink","yellow","purple"],o=["bright","light","dark"],l={highlightMap:(e,t,o)=>{let l,s=t;for(;!(l=e.querySelector("#"+s))&&s.includes("-");)s=s.slice(0,Math.max(0,s.lastIndexOf("-")));if(l){l.style.fill=null,l.classList.add("highlight","is-"+o);const e=l.querySelectorAll("path");for(const t of e)t.style.fill=null}},initializeUnlockFieldButtons:t=>{const o=t.querySelectorAll(".is-unlock-field-button");for(const t of o)t.addEventListener("click",e)},populateAliases:e=>{const t=e.querySelectorAll(".alias");for(const e of t)switch(e.dataset.alias){case"Lot":e.textContent=exports.aliases.lot;break;case"lot":e.textContent=exports.aliases.lot.toLowerCase();break;case"Occupancy":e.textContent=exports.aliases.occupancy;break;case"occupancy":e.textContent=exports.aliases.occupancy.toLowerCase();break;case"Occupant":e.textContent=exports.aliases.occupant;break;case"occupant":e.textContent=exports.aliases.occupant.toLowerCase();break;case"ExternalReceiptNumber":e.textContent=exports.aliases.externalReceiptNumber}},getRandomColor:e=>{let l=e;return l.length<2&&(l+="a1"),exports.randomColor({seed:l+l,hue:t[l.codePointAt(l.length-1)%t.length],luminosity:o[l.codePointAt(l.length-2)%o.length]})}};exports.los=l})(); \ No newline at end of file