Skip to content

Commit 72d8e05

Browse files
committed
HXL-CPLP/forum#60, #4: picturam.html; mvp of using CSS stylesheets rules (avoid add too much addEventListeners
1 parent 2f430db commit 72d8e05

File tree

1 file changed

+59
-9
lines changed

1 file changed

+59
-9
lines changed

docs/picturam.html

Lines changed: 59 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,23 @@
1010
<link rel="icon" href="img/favicon.png">
1111
<title>Numerordĭnātĭo pictūrae</title>
1212
<style>
13+
:root {
14+
/* --bcp47-language: 'lat,prs'; */
15+
--bcp47-language: 'lat';
16+
}
17+
1318
details>details {
1419
padding-left: 2em;
1520
}
1621

1722
[data-hide-significatum="1"] dl [data-significatum="1"] {
18-
display: none;
19-
/* display: initial; */
20-
}
21-
[data-show-bcp47-language] dl [bcp47-language="1"] {
22-
/* display: none; */
23-
display: initial;
23+
display: none;
2424
}
2525
</style>
26+
<!-- https://www.w3.org/wiki/Dynamic_style_-_manipulating_CSS_with_JavaScript -->
27+
<style id="picturam-stylesheet">
28+
29+
</style>
2630
</head>
2731

2832
<body>
@@ -50,7 +54,8 @@ <h1>Numerordĭnātĭo pictūrae</h1>
5054
</label>
5155
</div>
5256
<div class="form-check form-switch">
53-
<input class="form-check-input instrumentum-optionem" type="checkbox" role="switch" id="se" checked>
57+
<!-- <input class="form-check-input instrumentum-optionem" type="checkbox" role="switch" id="se" checked> -->
58+
<input class="form-check-input instrumentum-optionem" type="checkbox" role="switch" id="se">
5459
<label class="form-check-label" for="se">
5560
Expānsiōnem de significātum
5661
</label>
@@ -60,7 +65,7 @@ <h1>Numerordĭnātĭo pictūrae</h1>
6065
<div class="input-group mb-3">
6166
<span class="input-group-text" id="cl_label">BCP47 linguam</span>
6267
<input type="text" name="cl" id="cl" class="form-control instrumentum-optionem" placeholder="lat, arb, grk"
63-
aria-label="BCP47 linguam" aria-describedby="cl_label" value="lat, prs">
68+
aria-label="BCP47 linguam" aria-describedby="cl_label" value="">
6469
</div>
6570
</div>
6671
<div class="col">
@@ -81,7 +86,8 @@ <h1>Numerordĭnātĭo pictūrae</h1>
8186
</div>
8287
<textarea style="width: 100%; height: auto; min-height: 20em;" id="picturam-form-textarea"></textarea>
8388
</div>
84-
<div id="picturam-html" class="col" data-hide-significatum="">
89+
<!-- <div id="picturam-html" class="col" data-hide-significatum=""> -->
90+
<div id="picturam-html" class="col" data-hide-significatum="1">
8591
</div>
8692
</div>
8793

@@ -112,11 +118,55 @@ <h1>Numerordĭnātĭo pictūrae</h1>
112118
render_optionem()
113119
}
114120

121+
function picturam_css(object_de_array, stylesheet_id = 'picturam-stylesheet'){
122+
let picturamStylesheet = document.getElementById(stylesheet_id)
123+
let crudumStylesheet = []
124+
console.log(picturamStylesheet)
125+
console.log(object_de_array)
126+
127+
for (let [selector, optionem] of Object.entries(object_de_array)) {
128+
crudumStylesheet.push(`${selector} {\n ${optionem.join(";\n ")}\n}`)
129+
}
130+
131+
picturamStylesheet.innerHTML = crudumStylesheet.join("\n")
132+
}
133+
window.picturam_css = picturam_css
134+
135+
// picturam_css({
136+
// 'dl [data-bcp47-language="Lat" i]': [
137+
// 'display: none;'
138+
// ],
139+
// 'dl [data-bcp47-language="lat" i]': [
140+
// 'display: none;'
141+
// ],
142+
// })
143+
115144
function render_optionem() {
145+
let picturam_css_optionem = {}
116146
console.log('render_optionem')
117147
let details = document.querySelectorAll('#picturam-html details');
118148
// let significatum = document.querySelectorAll('[data-significatum]');
119149
[...details].map(item => document.getElementById('ce').checked ? item.setAttribute("open", 1) : item.removeAttribute("open"))
150+
151+
let cl_val = document.querySelector('#cl')
152+
let cl_val_list = cl_val.value.split(',').map(item => item.trim()).filter(item => item)
153+
if (cl_val_list && cl_val_list.length > 0) {
154+
for (let rem of cl_val_list) {
155+
picturam_css_optionem[`dl [data-bcp47-language="${rem}" i]`] = ['display: block !important;']
156+
}
157+
}
158+
159+
let cs_val = document.querySelector('#cs')
160+
let cs_val_list = cs_val.value.split(',').map(item => item.trim()).filter(item => item)
161+
if (cs_val_list && cs_val_list.length > 0) {
162+
for (let rem of cs_val_list) {
163+
picturam_css_optionem[`dl [data-bcp47-script="${rem}" i]`] = ['display: block !important;']
164+
}
165+
}
166+
console.log('picturam_css_optionem', picturam_css_optionem)
167+
picturam_css(picturam_css_optionem)
168+
169+
120170
// if (document.getElementById('ce').checked) {
121171
// [...details].map(item => item.setAttribute("open", document.getElementById('ce').checked))
122172
// }

0 commit comments

Comments
 (0)