@@ -19,22 +19,28 @@
19 19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
20 20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.onPageLoad(function() {
21 21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
document.body.classList.add('pikchrshow');
22 22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e = { /* various DOM elements we work with... */
23 23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
previewTarget: E('#pikchrshow-output'),
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- previewModeLabel: E('#pikchrshow-output-wrapper > legend'),
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- btnCopy: E('#pikchrshow-output-wrapper > legend > .copy-button'),
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ previewLegend: E('#pikchrshow-output-wrapper > legend'),
25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ previewModeLabel: D.span(/*holds the text for the preview mode label*/),
26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ previewCopyButton: D.addClass(D.span(), 'copy-button'),
26 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btnSubmit: E('#pikchr-submit-preview'),
27 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cbDarkMode: E('#flipcolors-wrapper > input[type=checkbox]'),
28 29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
taContent: E('#content'),
29 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
taPreviewText: D.attr(D.textarea(), 'rows', 20, 'cols', 60,
30 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'readonly', true),
31 32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
uiControls: E('#pikchrshow-controls'),
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- btnTogglePreviewMode: D.button("Preview mode"),
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ previewModeToggle: D.button("Preview mode"),
33 34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectMarkupAlignment: D.select()
34 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.append(P.e.uiControls, P.e.btnTogglePreviewMode);
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ////////////////////////////////////////////////////////////
37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Setup the preview fieldset's LEGEND element...
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.append( P.e.previewLegend,
39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.previewModeToggle,
40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.previewModeLabel,
41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.previewCopyButton );
36 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
37 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
////////////////////////////////////////////////////////////
38 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Setup markup alignment selection...
39 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(P.e.uiControls, P.e.selectMarkupAlignment);
40 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.disable(D.option(P.e.selectMarkupAlignment, '', 'Markup Alignment'));
@@ -42,14 +48,12 @@
42 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.option(P.e.selectMarkupAlignment, ndx ? val : '', val);
43 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
44 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
45 51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
////////////////////////////////////////////////////////////
46 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Setup clipboard-copy of markup/SVG...
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.copyButton(P.e.btnCopy, {copyFromElement: P.e.taPreviewText});
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.btnCopy.addEventListener('text-copied',function(ev){
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.flashOnce(ev.target);
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- },false);
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.copyButton(P.e.previewCopyButton, {copyFromElement: P.e.taPreviewText});
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.previewCopyButton.addEventListener('text-copied', D.flashOnce.eventHandler, false);
51 55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
52 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
////////////////////////////////////////////////////////////
53 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Set up dark mode simulator...
54 58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e.cbDarkMode.addEventListener('change', function(ev){
55 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(ev.target.checked) D.addClass(P.e.previewTarget, 'dark-mode');
@@ -58,11 +62,11 @@
58 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(P.e.cbDarkMode.checked) D.addClass(P.e.previewTarget, 'dark-mode');
59 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
60 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
////////////////////////////////////////////////////////////
61 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// Set up preview update and preview mode toggle...
62 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e.btnSubmit.addEventListener('click', ()=>P.preview(), false);
63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.btnTogglePreviewMode.addEventListener('click', function(){
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.previewModeToggle.addEventListener('click', function(){
64 68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Rotate through the 4 available preview modes */
65 69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.previewMode = ++P.previewMode % 4;
66 70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.renderPreview();
67 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}, false);
68 72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e.selectMarkupAlignment.addEventListener('change', function(ev){
@@ -186,11 +190,12 @@
186 190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.addClass(preTgt, 'error');
187 191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e.previewModeLabel.innerText = "Error";
188 192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
189 193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
190 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.removeClass(preTgt, 'error');
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.enable(this.e.btnTogglePreviewMode);
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.removeClass(P.e.previewCopyButton, 'disabled');
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.enable(this.e.previewModeToggle);
192 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
let label;
193 198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch(this.previewMode){
194 199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 0:
195 200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
label = "Rendered SVG";
196 201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
preTgt.innerHTML = this.response.raw;
@@ -218,12 +223,11 @@
218 223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
label = "Raw SVG";
219 224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e.taPreviewText.value = this.response.raw.replace(f.rxNonce, '');
220 225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(D.clearElement(preTgt), this.e.taPreviewText);
221 226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
222 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.append(D.clearElement(this.e.previewModeLabel),
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- label, this.e.btnCopy);
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.e.previewModeLabel.innerText = label;
225 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
226 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
227 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
228 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Fetches the preview from the server and updates the preview to
229 233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
the rendered SVG content or error report.
@@ -233,11 +237,11 @@
233 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fp.toDisable = [
234 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* input elements to disable during ajax operations */
235 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e.btnSubmit, this.e.taContent,
236 240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e.selectMarkupAlignment,
237 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.e.cbAutoPreview, this.e.selectScript
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /* this.e.btnTogglePreviewMode is handled separately */
242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* this.e.previewModeToggle is handled separately */
239 243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
];
240 244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fp.target = this.e.previewTarget;
241 245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fp.updateView = function(c,isError){
242 246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.previewMode = 0;
243 247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.response.raw = c;
@@ -244,11 +248,12 @@
244 248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.response.isError = isError;
245 249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.enable(fp.toDisable);
246 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.renderPreview();
247 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
248 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.disable(fp.toDisable, this.e.btnTogglePreviewMode);
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.disable(fp.toDisable, this.e.previewModeToggle);
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.addClass(this.e.previewCopyButton, 'disabled');
250 255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const content = this.e.taContent.value.trim();
251 256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.response.raw = undefined;
252 257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.response.inputText = content;
253 258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!content){
254 259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fp.updateView("No pikchr content!",true);
255 260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!