Grammalecte  Hex Artifact Content

Artifact b5c79a2ce5ba61ddb0e5b9f137930b9c73966fac1044e8f834000a81ee84bdca:


0000: 2f 2f 20 4a 61 76 61 53 63 72 69 70 74 0a 2f 2f  // JavaScript.//
0010: 20 50 61 6e 65 6c 20 63 72 65 61 74 6f 72 0a 0a   Panel creator..
0020: 2f 2a 20 6a 73 68 69 6e 74 20 65 73 76 65 72 73  /* jshint esvers
0030: 69 6f 6e 3a 36 2c 20 2d 57 30 39 37 20 2a 2f 0a  ion:6, -W097 */.
0040: 2f 2a 20 6a 73 6c 69 6e 74 20 65 73 76 65 72 73  /* jslint esvers
0050: 69 6f 6e 3a 36 20 2a 2f 0a 2f 2a 20 67 6c 6f 62  ion:6 */./* glob
0060: 61 6c 20 47 72 61 6d 6d 61 6c 65 63 74 65 50 61  al GrammalectePa
0070: 6e 65 6c 2c 20 6f 47 72 61 6d 6d 61 6c 65 63 74  nel, oGrammalect
0080: 65 2c 20 78 47 72 61 6d 6d 61 6c 65 63 74 65 50  e, xGrammalecteP
0090: 6f 72 74 2c 20 73 68 6f 77 45 72 72 6f 72 2c 20  ort, showError, 
00a0: 77 69 6e 64 6f 77 2c 20 64 6f 63 75 6d 65 6e 74  window, document
00b0: 2c 20 63 6f 6e 73 6f 6c 65 20 2a 2f 0a 0a 22 75  , console */.."u
00c0: 73 65 20 73 74 72 69 63 74 22 3b 0a 0a 0a 63 6c  se strict";...cl
00d0: 61 73 73 20 47 72 61 6d 6d 61 6c 65 63 74 65 50  ass GrammalecteP
00e0: 61 6e 65 6c 20 7b 0a 0a 20 20 20 20 63 6f 6e 73  anel {..    cons
00f0: 74 72 75 63 74 6f 72 20 28 73 49 64 2c 20 73 54  tructor (sId, sT
0100: 69 74 6c 65 2c 20 6e 57 69 64 74 68 2c 20 6e 48  itle, nWidth, nH
0110: 65 69 67 68 74 2c 20 62 46 6c 65 78 69 62 6c 65  eight, bFlexible
0120: 3d 74 72 75 65 29 20 7b 0a 20 20 20 20 20 20 20  =true) {.       
0130: 20 74 68 69 73 2e 73 49 64 20 3d 20 73 49 64 3b   this.sId = sId;
0140: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 6e 57  .        this.nW
0150: 69 64 74 68 20 3d 20 6e 57 69 64 74 68 3b 0a 20  idth = nWidth;. 
0160: 20 20 20 20 20 20 20 74 68 69 73 2e 6e 48 65 69         this.nHei
0170: 67 68 74 20 3d 20 6e 48 65 69 67 68 74 3b 0a 20  ght = nHeight;. 
0180: 20 20 20 20 20 20 20 74 68 69 73 2e 62 46 6c 65         this.bFle
0190: 78 69 62 6c 65 20 3d 20 62 46 6c 65 78 69 62 6c  xible = bFlexibl
01a0: 65 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  e;.        this.
01b0: 62 48 6f 72 69 7a 53 74 72 65 63 68 20 3d 20 66  bHorizStrech = f
01c0: 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20 74 68  alse;.        th
01d0: 69 73 2e 62 56 65 72 74 53 74 72 65 63 68 20 3d  is.bVertStrech =
01e0: 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 20 20   false;.        
01f0: 74 68 69 73 2e 6e 50 6f 73 69 74 69 6f 6e 58 20  this.nPositionX 
0200: 3d 20 32 3b 0a 20 20 20 20 20 20 20 20 74 68 69  = 2;.        thi
0210: 73 2e 6e 50 6f 73 69 74 69 6f 6e 59 20 3d 20 32  s.nPositionY = 2
0220: 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 62  ;.        this.b
0230: 57 6f 72 6b 69 6e 67 20 3d 20 66 61 6c 73 65 3b  Working = false;
0240: 0a 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 62  ..        this.b
0250: 53 68 61 64 6f 77 20 3d 20 64 6f 63 75 6d 65 6e  Shadow = documen
0260: 74 2e 62 6f 64 79 2e 63 72 65 61 74 65 53 68 61  t.body.createSha
0270: 64 6f 77 52 6f 6f 74 20 7c 7c 20 64 6f 63 75 6d  dowRoot || docum
0280: 65 6e 74 2e 62 6f 64 79 2e 61 74 74 61 63 68 53  ent.body.attachS
0290: 68 61 64 6f 77 3b 0a 20 20 20 20 20 20 20 20 69  hadow;.        i
02a0: 66 20 28 74 68 69 73 2e 62 53 68 61 64 6f 77 29  f (this.bShadow)
02b0: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 74   {.            t
02c0: 68 69 73 2e 78 53 68 61 64 6f 77 50 61 6e 65 6c  his.xShadowPanel
02d0: 20 3d 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e   = oGrammalecte.
02e0: 63 72 65 61 74 65 4e 6f 64 65 28 22 64 69 76 22  createNode("div"
02f0: 2c 20 7b 69 64 3a 20 74 68 69 73 2e 73 49 64 2b  , {id: this.sId+
0300: 22 5f 73 68 61 64 6f 77 22 2c 20 73 74 79 6c 65  "_shadow", style
0310: 3a 20 22 77 69 64 74 68 3a 30 3b 68 65 69 67 68  : "width:0;heigh
0320: 74 3a 30 3b 22 7d 29 3b 0a 20 20 20 20 20 20 20  t:0;"});.       
0330: 20 20 20 20 20 74 68 69 73 2e 78 53 68 61 64 6f       this.xShado
0340: 77 20 3d 20 74 68 69 73 2e 78 53 68 61 64 6f 77  w = this.xShadow
0350: 50 61 6e 65 6c 2e 61 74 74 61 63 68 53 68 61 64  Panel.attachShad
0360: 6f 77 28 7b 6d 6f 64 65 3a 20 22 6f 70 65 6e 22  ow({mode: "open"
0370: 7d 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  });.            
0380: 74 68 69 73 2e 78 50 61 72 65 6e 74 20 3d 20 74  this.xParent = t
0390: 68 69 73 2e 78 53 68 61 64 6f 77 3b 0a 20 20 20  his.xShadow;.   
03a0: 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20       } else {.  
03b0: 20 20 20 20 20 20 20 20 20 20 74 68 69 73 2e 78            this.x
03c0: 50 61 72 65 6e 74 20 3d 20 64 6f 63 75 6d 65 6e  Parent = documen
03d0: 74 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20  t;.        }..  
03e0: 20 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65        this.xPane
03f0: 6c 42 61 72 20 3d 20 6f 47 72 61 6d 6d 61 6c 65  lBar = oGrammale
0400: 63 74 65 2e 63 72 65 61 74 65 4e 6f 64 65 28 22  cte.createNode("
0410: 64 69 76 22 2c 20 7b 63 6c 61 73 73 4e 61 6d 65  div", {className
0420: 3a 20 22 67 72 61 6d 6d 61 6c 65 63 74 65 5f 70  : "grammalecte_p
0430: 61 6e 65 6c 5f 62 61 72 22 7d 29 3b 0a 20 20 20  anel_bar"});.   
0440: 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c       this.xPanel
0450: 43 6f 6e 74 65 6e 74 20 3d 20 6f 47 72 61 6d 6d  Content = oGramm
0460: 61 6c 65 63 74 65 2e 63 72 65 61 74 65 4e 6f 64  alecte.createNod
0470: 65 28 22 64 69 76 22 2c 20 7b 63 6c 61 73 73 4e  e("div", {classN
0480: 61 6d 65 3a 20 22 67 72 61 6d 6d 61 6c 65 63 74  ame: "grammalect
0490: 65 5f 70 61 6e 65 6c 5f 63 6f 6e 74 65 6e 74 22  e_panel_content"
04a0: 7d 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73  });.        this
04b0: 2e 78 57 61 69 74 49 63 6f 6e 20 3d 20 74 68 69  .xWaitIcon = thi
04c0: 73 2e 5f 63 72 65 61 74 65 57 61 69 74 49 63 6f  s._createWaitIco
04d0: 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69  n();.        thi
04e0: 73 2e 78 43 6c 6f 73 65 42 75 74 74 6f 6e 20 3d  s.xCloseButton =
04f0: 20 6e 75 6c 6c 3b 0a 20 20 20 20 20 20 20 20 74   null;.        t
0500: 68 69 73 2e 78 50 61 6e 65 6c 20 3d 20 74 68 69  his.xPanel = thi
0510: 73 2e 5f 63 72 65 61 74 65 50 61 6e 65 6c 28 73  s._createPanel(s
0520: 54 69 74 6c 65 29 3b 0a 20 20 20 20 20 20 20 20  Title);.        
0530: 74 68 69 73 2e 63 65 6e 74 65 72 28 29 3b 0a 20  this.center();. 
0540: 20 20 20 7d 0a 0a 20 20 20 20 5f 63 72 65 61 74     }..    _creat
0550: 65 50 61 6e 65 6c 20 28 73 54 69 74 6c 65 29 20  ePanel (sTitle) 
0560: 7b 0a 20 20 20 20 20 20 20 20 74 72 79 20 7b 0a  {.        try {.
0570: 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 74 20              let 
0580: 78 50 61 6e 65 6c 20 3d 20 6f 47 72 61 6d 6d 61  xPanel = oGramma
0590: 6c 65 63 74 65 2e 63 72 65 61 74 65 4e 6f 64 65  lecte.createNode
05a0: 28 22 64 69 76 22 2c 20 7b 69 64 3a 20 74 68 69  ("div", {id: thi
05b0: 73 2e 73 49 64 2c 20 63 6c 61 73 73 4e 61 6d 65  s.sId, className
05c0: 3a 20 22 67 72 61 6d 6d 61 6c 65 63 74 65 5f 70  : "grammalecte_p
05d0: 61 6e 65 6c 22 7d 29 3b 0a 20 20 20 20 20 20 20  anel"});.       
05e0: 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c       this.xPanel
05f0: 42 61 72 2e 61 70 70 65 6e 64 43 68 69 6c 64 28  Bar.appendChild(
0600: 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65  oGrammalecte.cre
0610: 61 74 65 4e 6f 64 65 28 22 64 69 76 22 2c 20 7b  ateNode("div", {
0620: 63 6c 61 73 73 4e 61 6d 65 3a 20 22 67 72 61 6d  className: "gram
0630: 6d 61 6c 65 63 74 65 5f 70 61 6e 65 6c 5f 69 6e  malecte_panel_in
0640: 76 69 73 69 62 6c 65 5f 6d 61 72 6b 65 72 22 2c  visible_marker",
0650: 20 74 65 78 74 43 6f 6e 74 65 6e 74 3a 20 22 5f   textContent: "_
0660: 5f 67 72 61 6d 6d 61 6c 65 63 74 65 5f 70 61 6e  _grammalecte_pan
0670: 65 6c 5f 5f 22 7d 29 29 3b 0a 20 20 20 20 20 20  el__"}));.      
0680: 20 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65        this.xPane
0690: 6c 42 61 72 2e 61 70 70 65 6e 64 43 68 69 6c 64  lBar.appendChild
06a0: 28 74 68 69 73 2e 5f 63 72 65 61 74 65 42 75 74  (this._createBut
06b0: 74 6f 6e 73 28 29 29 3b 0a 20 20 20 20 20 20 20  tons());.       
06c0: 20 20 20 20 20 6c 65 74 20 78 54 69 74 6c 65 20       let xTitle 
06d0: 3d 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63  = oGrammalecte.c
06e0: 72 65 61 74 65 4e 6f 64 65 28 22 64 69 76 22 2c  reateNode("div",
06f0: 20 7b 63 6c 61 73 73 4e 61 6d 65 3a 20 22 67 72   {className: "gr
0700: 61 6d 6d 61 6c 65 63 74 65 5f 70 61 6e 65 6c 5f  ammalecte_panel_
0710: 74 69 74 6c 65 22 7d 29 3b 0a 20 20 20 20 20 20  title"});.      
0720: 20 20 20 20 20 20 78 54 69 74 6c 65 2e 61 70 70        xTitle.app
0730: 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e 5f 63  endChild(this._c
0740: 72 65 61 74 65 4c 6f 67 6f 28 29 29 3b 0a 20 20  reateLogo());.  
0750: 20 20 20 20 20 20 20 20 20 20 78 54 69 74 6c 65            xTitle
0760: 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 6f 47 72  .appendChild(oGr
0770: 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65 61 74 65  ammalecte.create
0780: 4e 6f 64 65 28 22 64 69 76 22 2c 20 7b 63 6c 61  Node("div", {cla
0790: 73 73 4e 61 6d 65 3a 20 22 67 72 61 6d 6d 61 6c  ssName: "grammal
07a0: 65 63 74 65 5f 70 61 6e 65 6c 5f 6c 61 62 65 6c  ecte_panel_label
07b0: 22 2c 20 74 65 78 74 43 6f 6e 74 65 6e 74 3a 20  ", textContent: 
07c0: 73 54 69 74 6c 65 7d 29 29 3b 0a 20 20 20 20 20  sTitle}));.     
07d0: 20 20 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e         this.xPan
07e0: 65 6c 42 61 72 2e 61 70 70 65 6e 64 43 68 69 6c  elBar.appendChil
07f0: 64 28 78 54 69 74 6c 65 29 3b 0a 20 20 20 20 20  d(xTitle);.     
0800: 20 20 20 20 20 20 20 78 50 61 6e 65 6c 2e 61 70         xPanel.ap
0810: 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e 78  pendChild(this.x
0820: 50 61 6e 65 6c 42 61 72 29 3b 0a 20 20 20 20 20  PanelBar);.     
0830: 20 20 20 20 20 20 20 74 68 69 73 2e 5f 63 72 65         this._cre
0840: 61 74 65 4d 65 73 73 73 61 67 65 42 6c 6f 63 6b  ateMesssageBlock
0850: 28 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ();.            
0860: 78 50 61 6e 65 6c 2e 61 70 70 65 6e 64 43 68 69  xPanel.appendChi
0870: 6c 64 28 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65  ld(this.xPanelMe
0880: 73 73 61 67 65 42 6c 6f 63 6b 29 3b 0a 20 20 20  ssageBlock);.   
0890: 20 20 20 20 20 20 20 20 20 78 50 61 6e 65 6c 2e           xPanel.
08a0: 61 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73  appendChild(this
08b0: 2e 78 50 61 6e 65 6c 43 6f 6e 74 65 6e 74 29 3b  .xPanelContent);
08c0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74  .            ret
08d0: 75 72 6e 20 78 50 61 6e 65 6c 3b 0a 20 20 20 20  urn xPanel;.    
08e0: 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 63 61      }.        ca
08f0: 74 63 68 20 28 65 29 20 7b 0a 20 20 20 20 20 20  tch (e) {.      
0900: 20 20 20 20 20 20 73 68 6f 77 45 72 72 6f 72 28        showError(
0910: 65 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  e);.        }.  
0920: 20 20 7d 0a 0a 20 20 20 20 5f 63 72 65 61 74 65    }..    _create
0930: 4c 6f 67 6f 20 28 29 20 7b 0a 20 20 20 20 20 20  Logo () {.      
0940: 20 20 6c 65 74 20 78 49 6d 67 20 3d 20 64 6f 63    let xImg = doc
0950: 75 6d 65 6e 74 2e 63 72 65 61 74 65 45 6c 65 6d  ument.createElem
0960: 65 6e 74 28 22 69 6d 67 22 29 3b 0a 20 20 20 20  ent("img");.    
0970: 20 20 20 20 78 49 6d 67 2e 73 72 63 20 3d 20 22      xImg.src = "
0980: 64 61 74 61 3a 69 6d 61 67 65 2f 70 6e 67 3b 62  data:image/png;b
0990: 61 73 65 36 34 2c 69 56 42 4f 52 77 30 4b 47 67  ase64,iVBORw0KGg
09a0: 6f 41 41 41 41 4e 53 55 68 45 55 67 41 41 41 42  oAAAANSUhEUgAAAB
09b0: 41 41 41 41 41 51 43 41 59 41 41 41 41 66 38 2f  AAAAAQCAYAAAAf8/
09c0: 39 68 41 41 41 41 43 58 42 49 57 58 4d 41 41 41  9hAAAACXBIWXMAAA
09d0: 33 58 41 41 41 4e 31 77 46 43 4b 4a 74 34 41 41  3XAAAN1wFCKJt4AA
09e0: 41 43 38 55 6c 45 51 56 51 34 6a 58 33 54 62 55  AC8UlEQVQ4jX3TbU
09f0: 67 54 63 52 77 48 38 50 38 39 64 64 75 35 75 39  gTcRwH8P89ddu5u9
0a00: 74 74 30 38 32 61 5a 6d 70 46 45 55 34 74 46 7a  tt082aZmpFEU4tFz
0a10: 30 51 47 54 55 77 43 69 30 68 65 6e 69 52 39 4d  0QGTUwCi0heniR9M
0a20: 53 55 49 4b 52 61 44 30 52 76 49 6c 4b 69 67 73  SUIKRaD0RvIlKigs
0a30: 6f 6f 6f 2b 69 4e 46 61 30 58 4a 59 75 77 49 6a  ooo+iNFa0XJYuwIj
0a40: 45 4b 31 39 4f 63 44 74 50 45 6c 73 47 30 6b 74  EK19OcDtPElsG0kt
0a50: 79 70 35 39 31 74 37 75 37 2b 76 55 68 37 4d 50  yp591t7u7+vUh7MP
0a60: 58 33 2b 76 66 35 2f 6e 38 2f 2b 50 30 42 6d 4b  X3+vf5/n8/+P0BmK
0a70: 4a 49 50 55 55 56 6c 68 32 72 64 56 56 65 65 73  JIPUUVlh2rdVVees
0a80: 57 6c 7a 45 79 62 71 67 2b 62 46 4f 73 6f 79 6c  WlzEybqg+bFOsoyl
0a90: 6e 71 50 6d 4e 61 76 47 46 66 6b 6e 56 32 4f 6d  nqPmNavGFfknV2Om
0aa0: 75 32 4c 76 6a 61 33 76 78 41 55 52 4b 4a 69 62  u2Lvja3vxAURKJib
0ab0: 33 6f 70 48 69 7a 75 38 72 69 4c 4b 36 67 6a 52  3opHizu8riLK6gjR
0ac0: 79 75 4b 67 6d 6f 53 6f 4d 52 46 45 4e 52 55 71  yuKgmoSoMRFENRUq
0ad0: 66 58 54 7a 76 42 47 4b 36 32 4c 43 32 75 6f 46  fXTzvBGK62LC2uoF
0ae0: 6b 4f 6c 34 52 68 6a 51 38 2b 71 57 74 37 64 50  kOl4RhjQ8+qWt7dP
0af0: 4e 45 33 73 62 64 70 2b 32 4c 58 62 73 47 65 39  NE3sbdp+2LXbsGe9
0b00: 71 62 34 72 49 6f 2f 42 66 77 46 79 36 6e 57 51  qb4rIo/BfwFy6nWQ
0b10: 34 54 68 57 47 4e 44 7a 62 63 66 75 32 39 64 4d  4ThWGNDzbcfu29dM
0b20: 44 68 32 6e 48 55 37 43 79 70 59 4e 4c 6d 7a 54  Dh2nHU7CypYNLmzT
0b30: 64 61 30 2f 4c 35 63 4e 75 7a 6d 44 51 69 2f 41  da0/L5cNuzmDQi/A
0b40: 34 59 32 37 6b 36 65 51 78 4c 49 37 39 77 53 2f  4Y27k6eQxLI79wS/
0b50: 31 31 44 30 41 41 4d 4e 76 73 36 58 54 36 6f 6a  11D0AAMNvs6XT6oj
0b60: 56 4a 6a 4a 45 67 54 62 4d 79 32 42 54 37 37 78  VJjJEgTbMy2BT77x
0b70: 42 4d 70 30 39 4b 63 70 61 57 56 31 75 63 34 31  BMp09KcpaWV1uc41
0b80: 6a 51 6f 69 30 4e 64 55 48 66 6a 65 4f 4f 39 57  jQoi0NdUHfjeOO9W
0b90: 57 6e 37 41 56 46 37 73 37 6e 39 38 36 53 69 74  Wn7AVF7s7n986Sit
0ba0: 68 50 4a 47 65 75 70 42 68 32 50 43 53 50 2f 78  hPJGeupBh2PCSP/x
0bb0: 78 71 78 41 70 33 65 71 36 77 75 55 56 37 57 63  xqxAp3eq6wuUV7Wc
0bc0: 36 4d 53 5a 49 45 68 41 38 76 48 6a 62 66 4f 65  6MSZIEhA8vHjbfOe
0bd0: 2f 4f 63 57 33 7a 6d 41 75 4b 79 2b 6e 55 7a 41  /OcW3zmAuKy+nUzA
0be0: 79 44 32 62 6f 77 38 4f 44 61 45 52 4f 46 71 38  yD2bow8ODaEROFq8
0bf0: 41 79 5a 35 57 42 59 64 45 5a 58 47 71 47 78 5a  AyZ5WBYdEZXGqGxZ
0c00: 36 31 48 4a 56 2b 39 48 59 43 4a 52 62 54 4e 41  61HJV+9HYCJRbTNA
0c10: 30 51 42 41 34 30 48 57 75 6e 61 4b 4e 35 64 4b  0QBA40HWunaKN5dK
0c20: 67 2f 44 42 4b 78 65 43 49 65 30 39 54 68 2f 6d  g/DBKxeCIe09Th/m
0c30: 34 4d 4a 77 69 4d 53 5a 6d 4c 45 7a 4d 51 41 41  4MJwiMSZmLEzMQAA
0c40: 42 51 52 75 4e 71 67 75 38 4e 59 58 33 64 6f 54  BQRuNqgu8NYX3doT
0c50: 63 4d 70 76 43 6b 4c 62 74 51 5a 32 41 4a 6b 72  cMpvCkLbtQZ2AJkr
0c60: 50 4f 5a 47 31 7a 6c 6e 59 31 33 54 2b 48 79 39  POZG1zlnY13T+Hy9
0c70: 45 65 68 59 39 30 68 35 37 65 71 63 6f 72 63 5a  EehY90h57eqcorcZ
0c80: 2f 6c 63 74 5a 75 4d 7a 41 73 4f 6a 4c 45 71 77  /lctZuMzAsOjLEqw
0c90: 4e 76 36 36 2f 36 76 5a 63 50 59 52 42 43 2b 43  Nv66/6vZcPYRBC+C
0ca0: 33 63 47 61 42 78 68 53 65 74 32 61 76 31 42 70  3cGaBxhSet2av1Bp
0cb0: 59 67 54 54 59 37 6b 35 79 32 4a 50 54 34 31 73  YgTTY7k5y2JPT41s
0cc0: 6c 49 52 36 41 78 76 38 52 39 6e 6e 4f 73 2b 34  lIR6Axv8R9nnOs+4
0cd0: 50 66 2b 32 72 39 39 32 75 4f 78 47 56 4a 77 67  Pf+2r992uOxGVJwg
0ce0: 41 41 41 45 49 4e 66 67 74 33 42 47 67 73 45 53  AAAEINfgt3BGgsES
0cf0: 57 74 57 61 73 31 69 47 44 79 6c 2b 43 54 2f 75  WtWas1iGDyl+CT/u
0d00: 37 57 70 76 78 4e 46 52 63 34 78 37 71 74 42 6f  7WpvxNFRc4x7qtBo
0d10: 5a 46 68 53 46 65 6a 62 37 7a 31 66 71 39 4e 59  ZFhSFejb7z1fq9NY
0d20: 66 6a 73 69 54 2b 63 77 63 51 61 76 42 72 75 43  fjsiT+cwcQavBruC
0d30: 4f 67 55 34 53 49 47 6f 31 38 61 6d 75 6f 71 33  OgU4SIGo18amuoq3
0d40: 4a 73 33 46 4e 6c 79 6e 56 74 48 33 38 35 2b 73  Js3FNlynVtH385+s
0d50: 35 33 7a 65 2b 74 38 63 52 6b 55 52 78 33 79 4d  53ze+t8cRkURx3yM
0d60: 54 54 52 42 41 45 51 56 41 55 58 62 46 6c 66 33  TTRBAEQVAUXbFlf3
0d70: 58 79 73 74 4a 4b 41 32 4e 45 78 65 46 42 64 57  XystJKA2NExeFBdW
0d80: 41 53 44 41 41 41 2b 4d 51 41 43 43 45 45 6d 71  ASDAAA+MQACCEEmq
0d90: 62 4a 30 62 36 50 4d 43 37 4a 77 68 44 55 38 59  bJ0b6PMC7JwhDU8Y
0da0: 46 48 56 35 75 39 4e 5a 36 34 4c 45 72 54 2f 6f  FHV5u9NZ64LErT/o
0db0: 57 2f 36 33 74 50 56 36 75 4a 77 6d 4b 6f 4f 4e  W/63tPV6uJwmKoON
0dc0: 44 37 38 75 37 46 67 35 4e 68 41 41 44 34 43 56  D78u7Fg5NhAAD4CV
0dd0: 62 7a 59 39 63 77 72 57 51 72 41 41 41 41 41 45  bzY9cwrWQrAAAAAE
0de0: 6c 46 54 6b 53 75 51 6d 43 43 22 3b 0a 20 20 20  lFTkSuQmCC";.   
0df0: 20 20 20 20 20 72 65 74 75 72 6e 20 78 49 6d 67       return xImg
0e00: 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 5f 63 72  ;.    }..    _cr
0e10: 65 61 74 65 42 75 74 74 6f 6e 73 20 28 29 20 7b  eateButtons () {
0e20: 0a 20 20 20 20 20 20 20 20 6c 65 74 20 78 42 75  .        let xBu
0e30: 74 74 6f 6e 4c 69 6e 65 20 3d 20 6f 47 72 61 6d  ttonLine = oGram
0e40: 6d 61 6c 65 63 74 65 2e 63 72 65 61 74 65 4e 6f  malecte.createNo
0e50: 64 65 28 22 64 69 76 22 2c 20 7b 63 6c 61 73 73  de("div", {class
0e60: 4e 61 6d 65 3a 20 22 67 72 61 6d 6d 61 6c 65 63  Name: "grammalec
0e70: 74 65 5f 70 61 6e 65 6c 5f 63 6f 6d 6d 61 6e 64  te_panel_command
0e80: 73 22 7d 29 3b 0a 20 20 20 20 20 20 20 20 78 42  s"});.        xB
0e90: 75 74 74 6f 6e 4c 69 6e 65 2e 61 70 70 65 6e 64  uttonLine.append
0ea0: 43 68 69 6c 64 28 74 68 69 73 2e 78 57 61 69 74  Child(this.xWait
0eb0: 49 63 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 69  Icon);.        i
0ec0: 66 20 28 74 68 69 73 2e 73 49 64 20 3d 3d 3d 20  f (this.sId === 
0ed0: 22 67 72 61 6d 6d 61 6c 65 63 74 65 5f 67 63 5f  "grammalecte_gc_
0ee0: 70 61 6e 65 6c 22 29 20 7b 0a 20 20 20 20 20 20  panel") {.      
0ef0: 20 20 20 20 20 20 74 68 69 73 2e 78 43 6c 69 70        this.xClip
0f00: 62 6f 61 72 64 42 75 74 74 6f 6e 20 3d 20 74 68  boardButton = th
0f10: 69 73 2e 5f 63 72 65 61 74 65 43 6f 70 79 42 75  is._createCopyBu
0f20: 74 74 6f 6e 28 29 3b 0a 20 20 20 20 20 20 20 20  tton();.        
0f30: 20 20 20 20 78 42 75 74 74 6f 6e 4c 69 6e 65 2e      xButtonLine.
0f40: 61 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73  appendChild(this
0f50: 2e 78 43 6c 69 70 62 6f 61 72 64 42 75 74 74 6f  .xClipboardButto
0f60: 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  n);.        }.  
0f70: 20 20 20 20 20 20 69 66 20 28 74 68 69 73 2e 62        if (this.b
0f80: 46 6c 65 78 69 62 6c 65 29 20 7b 0a 20 20 20 20  Flexible) {.    
0f90: 20 20 20 20 20 20 20 20 74 68 69 73 2e 78 57 69          this.xWi
0fa0: 64 74 68 42 75 74 74 6f 6e 20 3d 20 74 68 69 73  dthButton = this
0fb0: 2e 5f 63 72 65 61 74 65 4d 6f 76 65 42 75 74 74  ._createMoveButt
0fc0: 6f 6e 28 22 63 68 61 6e 67 65 57 69 64 74 68 22  on("changeWidth"
0fd0: 2c 20 22 c2 a0 22 2c 20 22 c3 89 74 65 6e 64 72  , "..", "..tendr
0fe0: 65 20 65 6e 20 6c 61 72 67 65 75 72 22 29 3b 0a  e en largeur");.
0ff0: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
1000: 2e 78 48 65 69 67 68 74 42 75 74 74 6f 6e 20 3d  .xHeightButton =
1010: 20 74 68 69 73 2e 5f 63 72 65 61 74 65 4d 6f 76   this._createMov
1020: 65 42 75 74 74 6f 6e 28 22 63 68 61 6e 67 65 48  eButton("changeH
1030: 65 69 67 68 74 22 2c 20 22 c2 a0 22 2c 20 22 c3  eight", "..", ".
1040: 89 74 65 6e 64 72 65 20 65 6e 20 68 61 75 74 65  .tendre en haute
1050: 75 72 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20  ur");.          
1060: 20 20 78 42 75 74 74 6f 6e 4c 69 6e 65 2e 61 70    xButtonLine.ap
1070: 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e 78  pendChild(this.x
1080: 57 69 64 74 68 42 75 74 74 6f 6e 29 3b 0a 20 20  WidthButton);.  
1090: 20 20 20 20 20 20 20 20 20 20 78 42 75 74 74 6f            xButto
10a0: 6e 4c 69 6e 65 2e 61 70 70 65 6e 64 43 68 69 6c  nLine.appendChil
10b0: 64 28 74 68 69 73 2e 78 48 65 69 67 68 74 42 75  d(this.xHeightBu
10c0: 74 74 6f 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d  tton);.        }
10d0: 0a 20 20 20 20 20 20 20 20 78 42 75 74 74 6f 6e  .        xButton
10e0: 4c 69 6e 65 2e 61 70 70 65 6e 64 43 68 69 6c 64  Line.appendChild
10f0: 28 74 68 69 73 2e 5f 63 72 65 61 74 65 4d 6f 76  (this._createMov
1100: 65 42 75 74 74 6f 6e 28 22 75 70 22 2c 20 22 e2  eButton("up", ".
1110: 80 af 22 2c 20 22 4d 6f 6e 74 65 72 22 29 29 3b  ..", "Monter"));
1120: 20 2f 2f 20 75 73 65 20 63 68 61 72 20 e2 8f b6   // use char ...
1130: 20 77 68 65 6e 20 57 69 6e 64 6f 77 73 20 31 30   when Windows 10
1140: 20 62 65 20 76 61 73 74 20 6d 61 6a 6f 72 69 74   be vast majorit
1150: 79 20 6f 66 20 4f 53 20 28 54 72 65 62 75 63 68  y of OS (Trebuch
1160: 65 74 20 4d 53 20 6e 6f 74 20 75 70 64 61 74 65  et MS not update
1170: 64 20 6f 6e 20 6f 74 68 65 72 20 4f 53 29 0a 20  d on other OS). 
1180: 20 20 20 20 20 20 20 78 42 75 74 74 6f 6e 4c 69         xButtonLi
1190: 6e 65 2e 61 70 70 65 6e 64 43 68 69 6c 64 28 74  ne.appendChild(t
11a0: 68 69 73 2e 5f 63 72 65 61 74 65 4d 6f 76 65 42  his._createMoveB
11b0: 75 74 74 6f 6e 28 22 6c 65 66 74 22 2c 20 22 e2  utton("left", ".
11c0: 80 af 22 2c 20 22 c3 80 20 67 61 75 63 68 65 22  ..", ".. gauche"
11d0: 29 29 3b 20 2f 2f 20 75 73 65 20 63 68 61 72 20  )); // use char 
11e0: e2 8f b4 20 77 68 65 6e 20 57 69 6e 64 6f 77 73  ... when Windows
11f0: 20 31 30 20 62 65 20 76 61 73 74 20 6d 61 6a 6f   10 be vast majo
1200: 72 69 74 79 20 6f 66 20 4f 53 20 28 54 72 65 62  rity of OS (Treb
1210: 75 63 68 65 74 20 4d 53 20 6e 6f 74 20 75 70 64  uchet MS not upd
1220: 61 74 65 64 20 6f 6e 20 6f 74 68 65 72 20 4f 53  ated on other OS
1230: 29 0a 20 20 20 20 20 20 20 20 78 42 75 74 74 6f  ).        xButto
1240: 6e 4c 69 6e 65 2e 61 70 70 65 6e 64 43 68 69 6c  nLine.appendChil
1250: 64 28 74 68 69 73 2e 5f 63 72 65 61 74 65 4d 6f  d(this._createMo
1260: 76 65 42 75 74 74 6f 6e 28 22 63 65 6e 74 65 72  veButton("center
1270: 22 2c 20 22 e2 80 af 22 2c 20 22 43 65 6e 74 72  ", "...", "Centr
1280: 65 72 22 29 29 3b 20 2f 2f 20 63 68 61 72 20 e2  er")); // char .
1290: 80 a2 20 63 61 6e 20 62 65 20 75 73 65 64 20 61  .. can be used a
12a0: 6c 72 65 61 64 79 0a 20 20 20 20 20 20 20 20 78  lready.        x
12b0: 42 75 74 74 6f 6e 4c 69 6e 65 2e 61 70 70 65 6e  ButtonLine.appen
12c0: 64 43 68 69 6c 64 28 74 68 69 73 2e 5f 63 72 65  dChild(this._cre
12d0: 61 74 65 4d 6f 76 65 42 75 74 74 6f 6e 28 22 72  ateMoveButton("r
12e0: 69 67 68 74 22 2c 20 22 e2 80 af 22 2c 20 22 c3  ight", "...", ".
12f0: 80 20 64 72 6f 69 74 65 22 29 29 3b 20 2f 2f 20  . droite")); // 
1300: 75 73 65 20 63 68 61 72 20 e2 8f b5 20 77 68 65  use char ... whe
1310: 6e 20 57 69 6e 64 6f 77 73 20 31 30 20 62 65 20  n Windows 10 be 
1320: 76 61 73 74 20 6d 61 6a 6f 72 69 74 79 20 6f 66  vast majority of
1330: 20 4f 53 20 28 54 72 65 62 75 63 68 65 74 20 4d   OS (Trebuchet M
1340: 53 20 6e 6f 74 20 75 70 64 61 74 65 64 20 6f 6e  S not updated on
1350: 20 6f 74 68 65 72 20 4f 53 29 0a 20 20 20 20 20   other OS).     
1360: 20 20 20 78 42 75 74 74 6f 6e 4c 69 6e 65 2e 61     xButtonLine.a
1370: 70 70 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e  ppendChild(this.
1380: 5f 63 72 65 61 74 65 4d 6f 76 65 42 75 74 74 6f  _createMoveButto
1390: 6e 28 22 64 6f 77 6e 22 2c 20 22 e2 80 af 22 2c  n("down", "...",
13a0: 20 22 44 65 73 63 65 6e 64 72 65 22 29 29 3b 20   "Descendre")); 
13b0: 2f 2f 20 75 73 65 20 63 68 61 72 20 e2 8f b7 20  // use char ... 
13c0: 77 68 65 6e 20 57 69 6e 64 6f 77 73 20 31 30 20  when Windows 10 
13d0: 62 65 20 76 61 73 74 20 6d 61 6a 6f 72 69 74 79  be vast majority
13e0: 20 6f 66 20 4f 53 20 28 54 72 65 62 75 63 68 65   of OS (Trebuche
13f0: 74 20 4d 53 20 6e 6f 74 20 75 70 64 61 74 65 64  t MS not updated
1400: 20 6f 6e 20 6f 74 68 65 72 20 4f 53 29 0a 20 20   on other OS).  
1410: 20 20 20 20 20 20 74 68 69 73 2e 78 43 6c 6f 73        this.xClos
1420: 65 42 75 74 74 6f 6e 20 3d 20 74 68 69 73 2e 5f  eButton = this._
1430: 63 72 65 61 74 65 43 6c 6f 73 65 42 75 74 74 6f  createCloseButto
1440: 6e 28 29 3b 0a 20 20 20 20 20 20 20 20 78 42 75  n();.        xBu
1450: 74 74 6f 6e 4c 69 6e 65 2e 61 70 70 65 6e 64 43  ttonLine.appendC
1460: 68 69 6c 64 28 74 68 69 73 2e 78 43 6c 6f 73 65  hild(this.xClose
1470: 42 75 74 74 6f 6e 29 3b 0a 20 20 20 20 20 20 20  Button);.       
1480: 20 72 65 74 75 72 6e 20 78 42 75 74 74 6f 6e 4c   return xButtonL
1490: 69 6e 65 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20  ine;.    }..    
14a0: 5f 63 72 65 61 74 65 57 61 69 74 49 63 6f 6e 20  _createWaitIcon 
14b0: 28 29 20 7b 0a 20 20 20 20 20 20 20 20 6c 65 74  () {.        let
14c0: 20 78 57 61 69 74 49 63 6f 6e 20 3d 20 6f 47 72   xWaitIcon = oGr
14d0: 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65 61 74 65  ammalecte.create
14e0: 4e 6f 64 65 28 22 64 69 76 22 2c 20 7b 63 6c 61  Node("div", {cla
14f0: 73 73 4e 61 6d 65 3a 20 22 67 72 61 6d 6d 61 6c  ssName: "grammal
1500: 65 63 74 65 5f 73 70 69 6e 6e 65 72 22 7d 29 3b  ecte_spinner"});
1510: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
1520: 78 57 61 69 74 49 63 6f 6e 3b 0a 20 20 20 20 7d  xWaitIcon;.    }
1530: 0a 0a 20 20 20 20 5f 63 72 65 61 74 65 43 6f 70  ..    _createCop
1540: 79 42 75 74 74 6f 6e 20 28 29 20 7b 0a 20 20 20  yButton () {.   
1550: 20 20 20 20 20 6c 65 74 20 78 42 75 74 74 6f 6e       let xButton
1560: 20 3d 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e   = oGrammalecte.
1570: 63 72 65 61 74 65 4e 6f 64 65 28 22 64 69 76 22  createNode("div"
1580: 2c 20 7b 69 64 3a 20 22 67 72 61 6d 6d 61 6c 65  , {id: "grammale
1590: 63 74 65 5f 63 6c 69 70 62 6f 61 72 64 5f 62 75  cte_clipboard_bu
15a0: 74 74 6f 6e 22 2c 20 63 6c 61 73 73 4e 61 6d 65  tton", className
15b0: 3a 20 22 67 72 61 6d 6d 61 6c 65 63 74 65 5f 70  : "grammalecte_p
15c0: 61 6e 65 6c 5f 62 75 74 74 6f 6e 20 67 72 61 6d  anel_button gram
15d0: 6d 61 6c 65 63 74 65 5f 63 6f 70 79 5f 62 75 74  malecte_copy_but
15e0: 74 6f 6e 22 2c 20 74 65 78 74 43 6f 6e 74 65 6e  ton", textConten
15f0: 74 3a 20 22 f0 9f 93 8b 22 2c 20 74 69 74 6c 65  t: "....", title
1600: 3a 20 22 43 6f 70 69 65 72 20 6c 65 20 63 6f 6e  : "Copier le con
1610: 74 65 6e 75 20 64 65 20 6c e2 80 99 c3 a9 64 69  tenu de l.....di
1620: 74 65 75 72 20 64 61 6e 73 20 6c 65 20 70 72 65  teur dans le pre
1630: 73 73 65 2d 70 61 70 69 65 72 73 22 7d 29 3b 0a  sse-papiers"});.
1640: 20 20 20 20 20 20 20 20 78 42 75 74 74 6f 6e 2e          xButton.
1650: 6f 6e 63 6c 69 63 6b 20 3d 20 28 29 20 3d 3e 20  onclick = () => 
1660: 7b 20 74 68 69 73 2e 63 6f 70 79 54 65 78 74 54  { this.copyTextT
1670: 6f 43 6c 69 70 62 6f 61 72 64 28 29 3b 20 7d 3b  oClipboard(); };
1680: 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20  .        return 
1690: 78 42 75 74 74 6f 6e 3b 0a 20 20 20 20 7d 0a 0a  xButton;.    }..
16a0: 20 20 20 20 5f 63 72 65 61 74 65 4d 6f 76 65 42      _createMoveB
16b0: 75 74 74 6f 6e 20 28 73 41 63 74 69 6f 6e 2c 20  utton (sAction, 
16c0: 73 4c 61 62 65 6c 2c 20 73 54 69 74 6c 65 29 20  sLabel, sTitle) 
16d0: 7b 0a 20 20 20 20 20 20 20 20 6c 65 74 20 78 42  {.        let xB
16e0: 75 74 74 6f 6e 20 3d 20 6f 47 72 61 6d 6d 61 6c  utton = oGrammal
16f0: 65 63 74 65 2e 63 72 65 61 74 65 4e 6f 64 65 28  ecte.createNode(
1700: 22 64 69 76 22 2c 20 7b 63 6c 61 73 73 4e 61 6d  "div", {classNam
1710: 65 3a 20 22 67 72 61 6d 6d 61 6c 65 63 74 65 5f  e: "grammalecte_
1720: 70 61 6e 65 6c 5f 62 75 74 74 6f 6e 20 67 72 61  panel_button gra
1730: 6d 6d 61 6c 65 63 74 65 5f 6d 6f 76 65 5f 62 75  mmalecte_move_bu
1740: 74 74 6f 6e 20 67 72 61 6d 6d 61 6c 65 63 74 65  tton grammalecte
1750: 5f 6d 6f 76 65 5f 62 75 74 74 6f 6e 5f 22 2b 73  _move_button_"+s
1760: 41 63 74 69 6f 6e 2c 20 74 65 78 74 43 6f 6e 74  Action, textCont
1770: 65 6e 74 3a 20 73 4c 61 62 65 6c 2c 20 74 69 74  ent: sLabel, tit
1780: 6c 65 3a 20 73 54 69 74 6c 65 7d 29 3b 0a 20 20  le: sTitle});.  
1790: 20 20 20 20 20 20 78 42 75 74 74 6f 6e 2e 6f 6e        xButton.on
17a0: 63 6c 69 63 6b 20 3d 20 28 29 20 3d 3e 20 7b 20  click = () => { 
17b0: 74 68 69 73 5b 73 41 63 74 69 6f 6e 5d 28 29 3b  this[sAction]();
17c0: 20 7d 3b 0a 20 20 20 20 20 20 20 20 72 65 74 75   };.        retu
17d0: 72 6e 20 78 42 75 74 74 6f 6e 3b 0a 20 20 20 20  rn xButton;.    
17e0: 7d 0a 0a 20 20 20 20 5f 63 72 65 61 74 65 43 6c  }..    _createCl
17f0: 6f 73 65 42 75 74 74 6f 6e 20 28 29 20 7b 0a 20  oseButton () {. 
1800: 20 20 20 20 20 20 20 6c 65 74 20 78 42 75 74 74         let xButt
1810: 6f 6e 20 3d 20 6f 47 72 61 6d 6d 61 6c 65 63 74  on = oGrammalect
1820: 65 2e 63 72 65 61 74 65 4e 6f 64 65 28 22 64 69  e.createNode("di
1830: 76 22 2c 20 7b 63 6c 61 73 73 4e 61 6d 65 3a 20  v", {className: 
1840: 22 67 72 61 6d 6d 61 6c 65 63 74 65 5f 70 61 6e  "grammalecte_pan
1850: 65 6c 5f 62 75 74 74 6f 6e 20 67 72 61 6d 6d 61  el_button gramma
1860: 6c 65 63 74 65 5f 63 6c 6f 73 65 5f 62 75 74 74  lecte_close_butt
1870: 6f 6e 22 2c 20 74 65 78 74 43 6f 6e 74 65 6e 74  on", textContent
1880: 3a 20 22 c3 97 22 2c 20 74 69 74 6c 65 3a 20 22  : "..", title: "
1890: 46 65 72 6d 65 72 20 6c 61 20 66 65 6e c3 aa 74  Fermer la fen..t
18a0: 72 65 22 7d 29 3b 0a 20 20 20 20 20 20 20 20 78  re"});.        x
18b0: 42 75 74 74 6f 6e 2e 6f 6e 63 6c 69 63 6b 20 3d  Button.onclick =
18c0: 20 28 29 20 3d 3e 20 7b 20 74 68 69 73 2e 68 69   () => { this.hi
18d0: 64 65 28 29 3b 20 7d 3b 0a 20 20 20 20 20 20 20  de(); };.       
18e0: 20 72 65 74 75 72 6e 20 78 42 75 74 74 6f 6e 3b   return xButton;
18f0: 0a 20 20 20 20 7d 0a 0a 20 20 20 20 5f 63 72 65  .    }..    _cre
1900: 61 74 65 4d 65 73 73 73 61 67 65 42 6c 6f 63 6b  ateMesssageBlock
1910: 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68   () {.        th
1920: 69 73 2e 78 50 61 6e 65 6c 4d 65 73 73 61 67 65  is.xPanelMessage
1930: 42 6c 6f 63 6b 20 3d 20 6f 47 72 61 6d 6d 61 6c  Block = oGrammal
1940: 65 63 74 65 2e 63 72 65 61 74 65 4e 6f 64 65 28  ecte.createNode(
1950: 22 64 69 76 22 2c 20 7b 69 64 3a 20 22 67 72 61  "div", {id: "gra
1960: 6d 6d 61 6c 65 63 74 65 5f 70 61 6e 65 6c 5f 6d  mmalecte_panel_m
1970: 65 73 73 61 67 65 5f 62 6c 6f 63 6b 22 7d 29 3b  essage_block"});
1980: 0a 20 20 20 20 20 20 20 20 6c 65 74 20 78 50 61  .        let xPa
1990: 6e 65 6c 4d 65 73 73 61 67 65 43 6c 6f 73 65 42  nelMessageCloseB
19a0: 75 74 74 6f 6e 20 3d 20 6f 47 72 61 6d 6d 61 6c  utton = oGrammal
19b0: 65 63 74 65 2e 63 72 65 61 74 65 4e 6f 64 65 28  ecte.createNode(
19c0: 22 64 69 76 22 2c 20 7b 69 64 3a 20 22 67 72 61  "div", {id: "gra
19d0: 6d 6d 61 6c 65 63 74 65 5f 70 61 6e 65 6c 5f 6d  mmalecte_panel_m
19e0: 65 73 73 61 67 65 5f 63 6c 6f 73 65 5f 62 75 74  essage_close_but
19f0: 74 6f 6e 22 2c 20 74 65 78 74 43 6f 6e 74 65 6e  ton", textConten
1a00: 74 3a 20 22 c3 97 22 7d 29 3b 0a 20 20 20 20 20  t: ".."});.     
1a10: 20 20 20 78 50 61 6e 65 6c 4d 65 73 73 61 67 65     xPanelMessage
1a20: 43 6c 6f 73 65 42 75 74 74 6f 6e 2e 6f 6e 63 6c  CloseButton.oncl
1a30: 69 63 6b 20 3d 20 28 29 20 3d 3e 20 7b 20 74 68  ick = () => { th
1a40: 69 73 2e 68 69 64 65 4d 65 73 73 61 67 65 28 29  is.hideMessage()
1a50: 20 7d 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73   };.        this
1a60: 2e 78 50 61 6e 65 6c 4d 65 73 73 61 67 65 42 6c  .xPanelMessageBl
1a70: 6f 63 6b 2e 61 70 70 65 6e 64 43 68 69 6c 64 28  ock.appendChild(
1a80: 78 50 61 6e 65 6c 4d 65 73 73 61 67 65 43 6c 6f  xPanelMessageClo
1a90: 73 65 42 75 74 74 6f 6e 29 3b 0a 20 20 20 20 20  seButton);.     
1aa0: 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65     this.xPanelMe
1ab0: 73 73 61 67 65 20 3d 20 6f 47 72 61 6d 6d 61 6c  ssage = oGrammal
1ac0: 65 63 74 65 2e 63 72 65 61 74 65 4e 6f 64 65 28  ecte.createNode(
1ad0: 22 64 69 76 22 2c 20 7b 69 64 3a 20 22 67 72 61  "div", {id: "gra
1ae0: 6d 6d 61 6c 65 63 74 65 5f 70 61 6e 65 6c 5f 6d  mmalecte_panel_m
1af0: 65 73 73 61 67 65 22 7d 29 3b 0a 20 20 20 20 20  essage"});.     
1b00: 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65     this.xPanelMe
1b10: 73 73 61 67 65 41 63 74 69 6f 6e 42 75 74 74 6f  ssageActionButto
1b20: 6e 20 3d 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65  n = oGrammalecte
1b30: 2e 63 72 65 61 74 65 4e 6f 64 65 28 22 64 69 76  .createNode("div
1b40: 22 2c 20 7b 69 64 3a 20 22 67 72 61 6d 6d 61 6c  ", {id: "grammal
1b50: 65 63 74 65 5f 70 61 6e 65 6c 5f 6d 65 73 73 61  ecte_panel_messa
1b60: 67 65 5f 61 63 74 69 6f 6e 5f 62 75 74 74 6f 6e  ge_action_button
1b70: 22 7d 29 3b 0a 20 20 20 20 20 20 20 20 74 68 69  "});.        thi
1b80: 73 2e 78 50 61 6e 65 6c 4d 65 73 73 61 67 65 42  s.xPanelMessageB
1b90: 6c 6f 63 6b 2e 61 70 70 65 6e 64 43 68 69 6c 64  lock.appendChild
1ba0: 28 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65 73 73  (this.xPanelMess
1bb0: 61 67 65 29 3b 0a 20 20 20 20 20 20 20 20 74 68  age);.        th
1bc0: 69 73 2e 78 50 61 6e 65 6c 4d 65 73 73 61 67 65  is.xPanelMessage
1bd0: 42 6c 6f 63 6b 2e 61 70 70 65 6e 64 43 68 69 6c  Block.appendChil
1be0: 64 28 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65 73  d(this.xPanelMes
1bf0: 73 61 67 65 41 63 74 69 6f 6e 42 75 74 74 6f 6e  sageActionButton
1c00: 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 6e  );.    }..    in
1c10: 73 65 72 74 49 6e 74 6f 50 61 67 65 20 28 29 20  sertIntoPage () 
1c20: 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68  {.        if (th
1c30: 69 73 2e 62 53 68 61 64 6f 77 29 20 7b 0a 20 20  is.bShadow) {.  
1c40: 20 20 20 20 20 20 20 20 20 20 6f 47 72 61 6d 6d            oGramm
1c50: 61 6c 65 63 74 65 2e 63 72 65 61 74 65 53 74 79  alecte.createSty
1c60: 6c 65 28 22 63 6f 6e 74 65 6e 74 5f 73 63 72 69  le("content_scri
1c70: 70 74 73 2f 70 61 6e 65 6c 2e 63 73 73 22 2c 20  pts/panel.css", 
1c80: 6e 75 6c 6c 2c 20 74 68 69 73 2e 78 53 68 61 64  null, this.xShad
1c90: 6f 77 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20  ow);.           
1ca0: 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72   oGrammalecte.cr
1cb0: 65 61 74 65 53 74 79 6c 65 28 22 63 6f 6e 74 65  eateStyle("conte
1cc0: 6e 74 5f 73 63 72 69 70 74 73 2f 70 61 6e 65 6c  nt_scripts/panel
1cd0: 5f 67 63 2e 63 73 73 22 2c 20 6e 75 6c 6c 2c 20  _gc.css", null, 
1ce0: 74 68 69 73 2e 78 53 68 61 64 6f 77 29 3b 0a 20  this.xShadow);. 
1cf0: 20 20 20 20 20 20 20 20 20 20 20 6f 47 72 61 6d             oGram
1d00: 6d 61 6c 65 63 74 65 2e 63 72 65 61 74 65 53 74  malecte.createSt
1d10: 79 6c 65 28 22 63 6f 6e 74 65 6e 74 5f 73 63 72  yle("content_scr
1d20: 69 70 74 73 2f 70 61 6e 65 6c 5f 6c 78 67 2e 63  ipts/panel_lxg.c
1d30: 73 73 22 2c 20 6e 75 6c 6c 2c 20 74 68 69 73 2e  ss", null, this.
1d40: 78 53 68 61 64 6f 77 29 3b 0a 20 20 20 20 20 20  xShadow);.      
1d50: 20 20 20 20 20 20 6f 47 72 61 6d 6d 61 6c 65 63        oGrammalec
1d60: 74 65 2e 63 72 65 61 74 65 53 74 79 6c 65 28 22  te.createStyle("
1d70: 63 6f 6e 74 65 6e 74 5f 73 63 72 69 70 74 73 2f  content_scripts/
1d80: 70 61 6e 65 6c 5f 63 6f 6e 6a 2e 63 73 73 22 2c  panel_conj.css",
1d90: 20 6e 75 6c 6c 2c 20 74 68 69 73 2e 78 53 68 61   null, this.xSha
1da0: 64 6f 77 29 3b 0a 20 20 20 20 20 20 20 20 20 20  dow);.          
1db0: 20 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63    oGrammalecte.c
1dc0: 72 65 61 74 65 53 74 79 6c 65 28 22 63 6f 6e 74  reateStyle("cont
1dd0: 65 6e 74 5f 73 63 72 69 70 74 73 2f 70 61 6e 65  ent_scripts/pane
1de0: 6c 5f 74 66 2e 63 73 73 22 2c 20 6e 75 6c 6c 2c  l_tf.css", null,
1df0: 20 74 68 69 73 2e 78 53 68 61 64 6f 77 29 3b 0a   this.xShadow);.
1e00: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
1e10: 2e 78 53 68 61 64 6f 77 2e 61 70 70 65 6e 64 43  .xShadow.appendC
1e20: 68 69 6c 64 28 74 68 69 73 2e 78 50 61 6e 65 6c  hild(this.xPanel
1e30: 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 64  );.            d
1e40: 6f 63 75 6d 65 6e 74 2e 62 6f 64 79 2e 61 70 70  ocument.body.app
1e50: 65 6e 64 43 68 69 6c 64 28 74 68 69 73 2e 78 53  endChild(this.xS
1e60: 68 61 64 6f 77 50 61 6e 65 6c 29 3b 0a 20 20 20  hadowPanel);.   
1e70: 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20       } else {.  
1e80: 20 20 20 20 20 20 20 20 20 20 69 66 20 28 21 64            if (!d
1e90: 6f 63 75 6d 65 6e 74 2e 67 65 74 45 6c 65 6d 65  ocument.getEleme
1ea0: 6e 74 42 79 49 64 28 22 67 72 61 6d 6d 61 6c 65  ntById("grammale
1eb0: 63 74 65 5f 63 73 73 70 61 6e 65 6c 22 29 29 20  cte_csspanel")) 
1ec0: 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20  {.              
1ed0: 20 20 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63    oGrammalecte.c
1ee0: 72 65 61 74 65 53 74 79 6c 65 28 22 63 6f 6e 74  reateStyle("cont
1ef0: 65 6e 74 5f 73 63 72 69 70 74 73 2f 70 61 6e 65  ent_scripts/pane
1f00: 6c 2e 63 73 73 22 2c 20 22 67 72 61 6d 6d 61 6c  l.css", "grammal
1f10: 65 63 74 65 5f 63 73 73 70 61 6e 65 6c 22 2c 20  ecte_csspanel", 
1f20: 64 6f 63 75 6d 65 6e 74 2e 68 65 61 64 29 3b 0a  document.head);.
1f30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
1f40: 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65  oGrammalecte.cre
1f50: 61 74 65 53 74 79 6c 65 28 22 63 6f 6e 74 65 6e  ateStyle("conten
1f60: 74 5f 73 63 72 69 70 74 73 2f 70 61 6e 65 6c 5f  t_scripts/panel_
1f70: 67 63 2e 63 73 73 22 2c 20 6e 75 6c 6c 2c 20 64  gc.css", null, d
1f80: 6f 63 75 6d 65 6e 74 2e 68 65 61 64 29 3b 0a 20  ocument.head);. 
1f90: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f                 o
1fa0: 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65 61  Grammalecte.crea
1fb0: 74 65 53 74 79 6c 65 28 22 63 6f 6e 74 65 6e 74  teStyle("content
1fc0: 5f 73 63 72 69 70 74 73 2f 70 61 6e 65 6c 5f 6c  _scripts/panel_l
1fd0: 78 67 2e 63 73 73 22 2c 20 6e 75 6c 6c 2c 20 64  xg.css", null, d
1fe0: 6f 63 75 6d 65 6e 74 2e 68 65 61 64 29 3b 0a 20  ocument.head);. 
1ff0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f                 o
2000: 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65 61  Grammalecte.crea
2010: 74 65 53 74 79 6c 65 28 22 63 6f 6e 74 65 6e 74  teStyle("content
2020: 5f 73 63 72 69 70 74 73 2f 70 61 6e 65 6c 5f 63  _scripts/panel_c
2030: 6f 6e 6a 2e 63 73 73 22 2c 20 6e 75 6c 6c 2c 20  onj.css", null, 
2040: 64 6f 63 75 6d 65 6e 74 2e 68 65 61 64 29 3b 0a  document.head);.
2050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2060: 6f 47 72 61 6d 6d 61 6c 65 63 74 65 2e 63 72 65  oGrammalecte.cre
2070: 61 74 65 53 74 79 6c 65 28 22 63 6f 6e 74 65 6e  ateStyle("conten
2080: 74 5f 73 63 72 69 70 74 73 2f 70 61 6e 65 6c 5f  t_scripts/panel_
2090: 74 66 2e 63 73 73 22 2c 20 6e 75 6c 6c 2c 20 64  tf.css", null, d
20a0: 6f 63 75 6d 65 6e 74 2e 68 65 61 64 29 3b 0a 20  ocument.head);. 
20b0: 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20             }.   
20c0: 20 20 20 20 20 20 20 20 20 64 6f 63 75 6d 65 6e           documen
20d0: 74 2e 62 6f 64 79 2e 61 70 70 65 6e 64 43 68 69  t.body.appendChi
20e0: 6c 64 28 74 68 69 73 2e 78 50 61 6e 65 6c 29 3b  ld(this.xPanel);
20f0: 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d  .        }.    }
2100: 0a 0a 20 20 20 20 73 68 6f 77 20 28 29 20 7b 0a  ..    show () {.
2110: 20 20 20 20 20 20 20 20 74 68 69 73 2e 78 50 61          this.xPa
2120: 6e 65 6c 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61  nel.style.displa
2130: 79 20 3d 20 22 66 6c 65 78 22 3b 0a 20 20 20 20  y = "flex";.    
2140: 7d 0a 0a 20 20 20 20 68 69 64 65 20 28 29 20 7b  }..    hide () {
2150: 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 78 50  .        this.xP
2160: 61 6e 65 6c 2e 73 74 79 6c 65 2e 64 69 73 70 6c  anel.style.displ
2170: 61 79 20 3d 20 22 6e 6f 6e 65 22 3b 0a 20 20 20  ay = "none";.   
2180: 20 7d 0a 0a 20 20 20 20 63 65 6e 74 65 72 20 28   }..    center (
2190: 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73  ) {.        this
21a0: 2e 6e 50 6f 73 69 74 69 6f 6e 20 3d 20 35 3b 0a  .nPosition = 5;.
21b0: 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 65 74          this.set
21c0: 53 69 7a 65 41 6e 64 50 6f 73 69 74 69 6f 6e 28  SizeAndPosition(
21d0: 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 6c 65  );.    }..    le
21e0: 66 74 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20  ft () {.        
21f0: 69 66 20 28 21 5b 31 2c 20 34 2c 20 37 5d 2e 69  if (![1, 4, 7].i
2200: 6e 63 6c 75 64 65 73 28 74 68 69 73 2e 6e 50 6f  ncludes(this.nPo
2210: 73 69 74 69 6f 6e 29 29 20 7b 20 74 68 69 73 2e  sition)) { this.
2220: 6e 50 6f 73 69 74 69 6f 6e 20 2d 3d 20 31 20 7d  nPosition -= 1 }
2230: 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e 73  ;.        this.s
2240: 65 74 53 69 7a 65 41 6e 64 50 6f 73 69 74 69 6f  etSizeAndPositio
2250: 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20  n();.    }..    
2260: 72 69 67 68 74 20 28 29 20 7b 0a 20 20 20 20 20  right () {.     
2270: 20 20 20 69 66 20 28 21 5b 33 2c 20 36 2c 20 39     if (![3, 6, 9
2280: 5d 2e 69 6e 63 6c 75 64 65 73 28 74 68 69 73 2e  ].includes(this.
2290: 6e 50 6f 73 69 74 69 6f 6e 29 29 20 7b 20 74 68  nPosition)) { th
22a0: 69 73 2e 6e 50 6f 73 69 74 69 6f 6e 20 2b 3d 20  is.nPosition += 
22b0: 31 20 7d 3b 0a 20 20 20 20 20 20 20 20 74 68 69  1 };.        thi
22c0: 73 2e 73 65 74 53 69 7a 65 41 6e 64 50 6f 73 69  s.setSizeAndPosi
22d0: 74 69 6f 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a 20  tion();.    }.. 
22e0: 20 20 20 75 70 20 28 29 20 7b 0a 20 20 20 20 20     up () {.     
22f0: 20 20 20 69 66 20 28 21 5b 37 2c 20 38 2c 20 39     if (![7, 8, 9
2300: 5d 2e 69 6e 63 6c 75 64 65 73 28 74 68 69 73 2e  ].includes(this.
2310: 6e 50 6f 73 69 74 69 6f 6e 29 29 20 7b 20 74 68  nPosition)) { th
2320: 69 73 2e 6e 50 6f 73 69 74 69 6f 6e 20 2b 3d 20  is.nPosition += 
2330: 33 20 7d 3b 0a 20 20 20 20 20 20 20 20 74 68 69  3 };.        thi
2340: 73 2e 73 65 74 53 69 7a 65 41 6e 64 50 6f 73 69  s.setSizeAndPosi
2350: 74 69 6f 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a 20  tion();.    }.. 
2360: 20 20 20 64 6f 77 6e 20 28 29 20 7b 0a 20 20 20     down () {.   
2370: 20 20 20 20 20 69 66 20 28 21 5b 31 2c 20 32 2c       if (![1, 2,
2380: 20 33 5d 2e 69 6e 63 6c 75 64 65 73 28 74 68 69   3].includes(thi
2390: 73 2e 6e 50 6f 73 69 74 69 6f 6e 29 29 20 7b 20  s.nPosition)) { 
23a0: 74 68 69 73 2e 6e 50 6f 73 69 74 69 6f 6e 20 2d  this.nPosition -
23b0: 3d 20 33 20 7d 3b 0a 20 20 20 20 20 20 20 20 74  = 3 };.        t
23c0: 68 69 73 2e 73 65 74 53 69 7a 65 41 6e 64 50 6f  his.setSizeAndPo
23d0: 73 69 74 69 6f 6e 28 29 3b 0a 20 20 20 20 7d 0a  sition();.    }.
23e0: 0a 20 20 20 20 63 68 61 6e 67 65 57 69 64 74 68  .    changeWidth
23f0: 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68   () {.        th
2400: 69 73 2e 62 48 6f 72 69 7a 53 74 72 65 63 68 20  is.bHorizStrech 
2410: 3d 20 21 74 68 69 73 2e 62 48 6f 72 69 7a 53 74  = !this.bHorizSt
2420: 72 65 63 68 3b 0a 20 20 20 20 20 20 20 20 74 68  rech;.        th
2430: 69 73 2e 73 65 74 53 69 7a 65 41 6e 64 50 6f 73  is.setSizeAndPos
2440: 69 74 69 6f 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a  ition();.    }..
2450: 20 20 20 20 63 68 61 6e 67 65 48 65 69 67 68 74      changeHeight
2460: 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68   () {.        th
2470: 69 73 2e 62 56 65 72 74 53 74 72 65 63 68 20 3d  is.bVertStrech =
2480: 20 21 74 68 69 73 2e 62 56 65 72 74 53 74 72 65   !this.bVertStre
2490: 63 68 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73  ch;.        this
24a0: 2e 73 65 74 53 69 7a 65 41 6e 64 50 6f 73 69 74  .setSizeAndPosit
24b0: 69 6f 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20  ion();.    }..  
24c0: 20 20 73 65 74 53 69 7a 65 41 6e 64 50 6f 73 69    setSizeAndPosi
24d0: 74 69 6f 6e 20 28 29 20 7b 0a 20 20 20 20 20 20  tion () {.      
24e0: 20 20 2f 2f 20 73 69 7a 65 0a 20 20 20 20 20 20    // size.      
24f0: 20 20 69 66 20 28 74 68 69 73 2e 78 57 69 64 74    if (this.xWidt
2500: 68 42 75 74 74 6f 6e 20 26 26 20 74 68 69 73 2e  hButton && this.
2510: 78 48 65 69 67 68 74 42 75 74 74 6f 6e 29 20 7b  xHeightButton) {
2520: 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69  .            thi
2530: 73 2e 78 57 69 64 74 68 42 75 74 74 6f 6e 2e 73  s.xWidthButton.s
2540: 74 79 6c 65 2e 6f 70 61 63 69 74 79 20 3d 20 28  tyle.opacity = (
2550: 74 68 69 73 2e 62 48 6f 72 69 7a 53 74 72 65 63  this.bHorizStrec
2560: 68 29 20 3f 20 22 2e 39 22 20 3a 20 22 22 3b 0a  h) ? ".9" : "";.
2570: 20 20 20 20 20 20 20 20 20 20 20 20 74 68 69 73              this
2580: 2e 78 48 65 69 67 68 74 42 75 74 74 6f 6e 2e 73  .xHeightButton.s
2590: 74 79 6c 65 2e 6f 70 61 63 69 74 79 20 3d 20 28  tyle.opacity = (
25a0: 74 68 69 73 2e 62 56 65 72 74 53 74 72 65 63 68  this.bVertStrech
25b0: 29 20 3f 20 22 2e 39 22 20 3a 20 22 22 3b 0a 20  ) ? ".9" : "";. 
25c0: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
25d0: 20 6c 65 74 20 6e 57 69 64 74 68 20 3d 20 4d 61   let nWidth = Ma
25e0: 74 68 2e 6d 69 6e 28 74 68 69 73 2e 6e 57 69 64  th.min(this.nWid
25f0: 74 68 2c 20 77 69 6e 64 6f 77 2e 69 6e 6e 65 72  th, window.inner
2600: 57 69 64 74 68 2d 32 30 30 29 3b 0a 20 20 20 20  Width-200);.    
2610: 20 20 20 20 6c 65 74 20 6e 48 65 69 67 68 74 20      let nHeight 
2620: 3d 20 4d 61 74 68 2e 6d 69 6e 28 74 68 69 73 2e  = Math.min(this.
2630: 6e 48 65 69 67 68 74 2c 20 77 69 6e 64 6f 77 2e  nHeight, window.
2640: 69 6e 6e 65 72 48 65 69 67 68 74 2d 31 30 30 29  innerHeight-100)
2650: 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 74 68  ;.        if (th
2660: 69 73 2e 62 46 6c 65 78 69 62 6c 65 29 20 7b 0a  is.bFlexible) {.
2670: 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 77              // w
2680: 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20  idth.           
2690: 20 69 66 20 28 74 68 69 73 2e 62 48 6f 72 69 7a   if (this.bHoriz
26a0: 53 74 72 65 63 68 29 20 7b 0a 20 20 20 20 20 20  Strech) {.      
26b0: 20 20 20 20 20 20 20 20 20 20 6e 57 69 64 74 68            nWidth
26c0: 20 3d 20 4d 61 74 68 2e 6d 69 6e 28 74 68 69 73   = Math.min(this
26d0: 2e 6e 57 69 64 74 68 2a 31 2e 33 33 2c 20 77 69  .nWidth*1.33, wi
26e0: 6e 64 6f 77 2e 69 6e 6e 65 72 57 69 64 74 68 2d  ndow.innerWidth-
26f0: 32 30 30 29 3b 0a 20 20 20 20 20 20 20 20 20 20  200);.          
2700: 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20    }.            
2710: 2f 2f 20 68 65 69 67 68 74 0a 20 20 20 20 20 20  // height.      
2720: 20 20 20 20 20 20 6e 48 65 69 67 68 74 20 3d 20        nHeight = 
2730: 28 5b 34 2c 20 35 2c 20 36 5d 2e 69 6e 63 6c 75  ([4, 5, 6].inclu
2740: 64 65 73 28 74 68 69 73 2e 6e 50 6f 73 69 74 69  des(this.nPositi
2750: 6f 6e 29 29 20 3f 20 6e 48 65 69 67 68 74 20 3a  on)) ? nHeight :
2760: 20 4d 61 74 68 2e 66 6c 6f 6f 72 28 77 69 6e 64   Math.floor(wind
2770: 6f 77 2e 69 6e 6e 65 72 48 65 69 67 68 74 2a 30  ow.innerHeight*0
2780: 2e 34 35 29 3b 0a 20 20 20 20 20 20 20 20 20 20  .45);.          
2790: 20 20 69 66 20 28 74 68 69 73 2e 62 56 65 72 74    if (this.bVert
27a0: 53 74 72 65 63 68 29 20 7b 0a 20 20 20 20 20 20  Strech) {.      
27b0: 20 20 20 20 20 20 20 20 20 20 6e 48 65 69 67 68            nHeigh
27c0: 74 20 3d 20 28 5b 34 2c 20 35 2c 20 36 5d 2e 69  t = ([4, 5, 6].i
27d0: 6e 63 6c 75 64 65 73 28 74 68 69 73 2e 6e 50 6f  ncludes(this.nPo
27e0: 73 69 74 69 6f 6e 29 29 20 3f 20 28 77 69 6e 64  sition)) ? (wind
27f0: 6f 77 2e 69 6e 6e 65 72 48 65 69 67 68 74 2d 31  ow.innerHeight-1
2800: 30 30 29 20 3a 20 4d 61 74 68 2e 66 6c 6f 6f 72  00) : Math.floor
2810: 28 77 69 6e 64 6f 77 2e 69 6e 6e 65 72 48 65 69  (window.innerHei
2820: 67 68 74 2a 30 2e 36 37 29 3b 0a 20 20 20 20 20  ght*0.67);.     
2830: 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20         }.       
2840: 20 7d 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e   }.        this.
2850: 78 50 61 6e 65 6c 2e 73 74 79 6c 65 2e 77 69 64  xPanel.style.wid
2860: 74 68 20 3d 20 60 24 7b 6e 57 69 64 74 68 7d 70  th = `${nWidth}p
2870: 78 60 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73  x`;.        this
2880: 2e 78 50 61 6e 65 6c 2e 73 74 79 6c 65 2e 68 65  .xPanel.style.he
2890: 69 67 68 74 20 3d 20 60 24 7b 6e 48 65 69 67 68  ight = `${nHeigh
28a0: 74 7d 70 78 60 3b 0a 20 20 20 20 20 20 20 20 2f  t}px`;.        /
28b0: 2f 20 70 6f 73 69 74 69 6f 6e 0a 20 20 20 20 20  / position.     
28c0: 20 20 20 6c 65 74 20 6f 50 6f 73 20 3d 20 6e 75     let oPos = nu
28d0: 6c 6c 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74  ll;.        swit
28e0: 63 68 20 28 74 68 69 73 2e 6e 50 6f 73 69 74 69  ch (this.nPositi
28f0: 6f 6e 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20  on) {.          
2900: 20 20 63 61 73 65 20 31 3a 20 6f 50 6f 73 20 3d    case 1: oPos =
2910: 20 7b 20 74 6f 70 3a 22 22 2c 20 20 20 20 20 72   { top:"",     r
2920: 69 67 68 74 3a 22 22 2c 20 20 20 20 20 62 6f 74  ight:"",     bot
2930: 74 6f 6d 3a 22 2d 32 70 78 22 2c 20 6c 65 66 74  tom:"-2px", left
2940: 3a 22 2d 32 70 78 22 2c 20 6d 61 72 67 69 6e 54  :"-2px", marginT
2950: 6f 70 3a 22 22 2c 20 20 20 20 20 20 20 20 20 20  op:"",          
2960: 20 20 20 20 20 20 6d 61 72 67 69 6e 4c 65 66 74        marginLeft
2970: 3a 22 22 20 7d 3b 20 62 72 65 61 6b 3b 0a 20 20  :"" }; break;.  
2980: 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 32            case 2
2990: 3a 20 6f 50 6f 73 20 3d 20 7b 20 74 6f 70 3a 22  : oPos = { top:"
29a0: 22 2c 20 20 20 20 20 72 69 67 68 74 3a 22 22 2c  ",     right:"",
29b0: 20 20 20 20 20 62 6f 74 74 6f 6d 3a 22 2d 32 70       bottom:"-2p
29c0: 78 22 2c 20 6c 65 66 74 3a 22 35 30 25 22 2c 20  x", left:"50%", 
29d0: 20 6d 61 72 67 69 6e 54 6f 70 3a 22 22 2c 20 20   marginTop:"",  
29e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 61                ma
29f0: 72 67 69 6e 4c 65 66 74 3a 60 2d 24 7b 6e 57 69  rginLeft:`-${nWi
2a00: 64 74 68 2f 32 7d 70 78 60 20 7d 3b 20 62 72 65  dth/2}px` }; bre
2a10: 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ak;.            
2a20: 63 61 73 65 20 33 3a 20 6f 50 6f 73 20 3d 20 7b  case 3: oPos = {
2a30: 20 74 6f 70 3a 22 22 2c 20 20 20 20 20 72 69 67   top:"",     rig
2a40: 68 74 3a 22 2d 32 70 78 22 2c 20 62 6f 74 74 6f  ht:"-2px", botto
2a50: 6d 3a 22 2d 32 70 78 22 2c 20 6c 65 66 74 3a 22  m:"-2px", left:"
2a60: 22 2c 20 20 20 20 20 6d 61 72 67 69 6e 54 6f 70  ",     marginTop
2a70: 3a 22 22 2c 20 20 20 20 20 20 20 20 20 20 20 20  :"",            
2a80: 20 20 20 20 6d 61 72 67 69 6e 4c 65 66 74 3a 22      marginLeft:"
2a90: 22 20 7d 3b 20 62 72 65 61 6b 3b 0a 20 20 20 20  " }; break;.    
2aa0: 20 20 20 20 20 20 20 20 63 61 73 65 20 34 3a 20          case 4: 
2ab0: 6f 50 6f 73 20 3d 20 7b 20 74 6f 70 3a 22 35 30  oPos = { top:"50
2ac0: 25 22 2c 20 20 72 69 67 68 74 3a 22 22 2c 20 20  %",  right:"",  
2ad0: 20 20 20 62 6f 74 74 6f 6d 3a 22 22 2c 20 20 20     bottom:"",   
2ae0: 20 20 6c 65 66 74 3a 22 2d 32 70 78 22 2c 20 6d    left:"-2px", m
2af0: 61 72 67 69 6e 54 6f 70 3a 60 2d 24 7b 6e 48 65  arginTop:`-${nHe
2b00: 69 67 68 74 2f 32 7d 70 78 60 2c 20 6d 61 72 67  ight/2}px`, marg
2b10: 69 6e 4c 65 66 74 3a 22 22 20 7d 3b 20 62 72 65  inLeft:"" }; bre
2b20: 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ak;.            
2b30: 63 61 73 65 20 35 3a 20 6f 50 6f 73 20 3d 20 7b  case 5: oPos = {
2b40: 20 74 6f 70 3a 22 35 30 25 22 2c 20 20 72 69 67   top:"50%",  rig
2b50: 68 74 3a 22 22 2c 20 20 20 20 20 62 6f 74 74 6f  ht:"",     botto
2b60: 6d 3a 22 22 2c 20 20 20 20 20 6c 65 66 74 3a 22  m:"",     left:"
2b70: 35 30 25 22 2c 20 20 6d 61 72 67 69 6e 54 6f 70  50%",  marginTop
2b80: 3a 60 2d 24 7b 6e 48 65 69 67 68 74 2f 32 7d 70  :`-${nHeight/2}p
2b90: 78 60 2c 20 6d 61 72 67 69 6e 4c 65 66 74 3a 60  x`, marginLeft:`
2ba0: 2d 24 7b 6e 57 69 64 74 68 2f 32 7d 70 78 60 20  -${nWidth/2}px` 
2bb0: 7d 3b 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20  }; break;.      
2bc0: 20 20 20 20 20 20 63 61 73 65 20 36 3a 20 6f 50        case 6: oP
2bd0: 6f 73 20 3d 20 7b 20 74 6f 70 3a 22 35 30 25 22  os = { top:"50%"
2be0: 2c 20 20 72 69 67 68 74 3a 22 2d 32 70 78 22 2c  ,  right:"-2px",
2bf0: 20 62 6f 74 74 6f 6d 3a 22 22 2c 20 20 20 20 20   bottom:"",     
2c00: 6c 65 66 74 3a 22 22 2c 20 20 20 20 20 6d 61 72  left:"",     mar
2c10: 67 69 6e 54 6f 70 3a 60 2d 24 7b 6e 48 65 69 67  ginTop:`-${nHeig
2c20: 68 74 2f 32 7d 70 78 60 2c 20 6d 61 72 67 69 6e  ht/2}px`, margin
2c30: 4c 65 66 74 3a 22 22 20 7d 3b 20 62 72 65 61 6b  Left:"" }; break
2c40: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61  ;.            ca
2c50: 73 65 20 37 3a 20 6f 50 6f 73 20 3d 20 7b 20 74  se 7: oPos = { t
2c60: 6f 70 3a 22 2d 32 70 78 22 2c 20 72 69 67 68 74  op:"-2px", right
2c70: 3a 22 22 2c 20 20 20 20 20 62 6f 74 74 6f 6d 3a  :"",     bottom:
2c80: 22 22 2c 20 20 20 20 20 6c 65 66 74 3a 22 2d 32  "",     left:"-2
2c90: 70 78 22 2c 20 6d 61 72 67 69 6e 54 6f 70 3a 22  px", marginTop:"
2ca0: 22 2c 20 20 20 20 20 20 20 20 20 20 20 20 20 20  ",              
2cb0: 20 20 6d 61 72 67 69 6e 4c 65 66 74 3a 22 22 20    marginLeft:"" 
2cc0: 7d 3b 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20  }; break;.      
2cd0: 20 20 20 20 20 20 63 61 73 65 20 38 3a 20 6f 50        case 8: oP
2ce0: 6f 73 20 3d 20 7b 20 74 6f 70 3a 22 2d 32 70 78  os = { top:"-2px
2cf0: 22 2c 20 72 69 67 68 74 3a 22 22 2c 20 20 20 20  ", right:"",    
2d00: 20 62 6f 74 74 6f 6d 3a 22 22 2c 20 20 20 20 20   bottom:"",     
2d10: 6c 65 66 74 3a 22 35 30 25 22 2c 20 20 6d 61 72  left:"50%",  mar
2d20: 67 69 6e 54 6f 70 3a 22 22 2c 20 20 20 20 20 20  ginTop:"",      
2d30: 20 20 20 20 20 20 20 20 20 20 6d 61 72 67 69 6e            margin
2d40: 4c 65 66 74 3a 60 2d 24 7b 6e 57 69 64 74 68 2f  Left:`-${nWidth/
2d50: 32 7d 70 78 60 20 7d 3b 20 62 72 65 61 6b 3b 0a  2}px` }; break;.
2d60: 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65              case
2d70: 20 39 3a 20 6f 50 6f 73 20 3d 20 7b 20 74 6f 70   9: oPos = { top
2d80: 3a 22 2d 32 70 78 22 2c 20 72 69 67 68 74 3a 22  :"-2px", right:"
2d90: 2d 32 70 78 22 2c 20 62 6f 74 74 6f 6d 3a 22 22  -2px", bottom:""
2da0: 2c 20 20 20 20 20 6c 65 66 74 3a 22 22 2c 20 20  ,     left:"",  
2db0: 20 20 20 6d 61 72 67 69 6e 54 6f 70 3a 22 22 2c     marginTop:"",
2dc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
2dd0: 6d 61 72 67 69 6e 4c 65 66 74 3a 22 22 20 7d 3b  marginLeft:"" };
2de0: 20 62 72 65 61 6b 3b 0a 20 20 20 20 20 20 20 20   break;.        
2df0: 7d 0a 20 20 20 20 20 20 20 20 2f 2f 20 63 68 61  }.        // cha
2e00: 6e 67 65 0a 20 20 20 20 20 20 20 20 74 68 69 73  nge.        this
2e10: 2e 78 50 61 6e 65 6c 2e 73 74 79 6c 65 2e 74 6f  .xPanel.style.to
2e20: 70 20 3d 20 6f 50 6f 73 2e 74 6f 70 3b 0a 20 20  p = oPos.top;.  
2e30: 20 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65        this.xPane
2e40: 6c 2e 73 74 79 6c 65 2e 72 69 67 68 74 20 3d 20  l.style.right = 
2e50: 6f 50 6f 73 2e 72 69 67 68 74 3b 0a 20 20 20 20  oPos.right;.    
2e60: 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c 2e      this.xPanel.
2e70: 73 74 79 6c 65 2e 62 6f 74 74 6f 6d 20 3d 20 6f  style.bottom = o
2e80: 50 6f 73 2e 62 6f 74 74 6f 6d 3b 0a 20 20 20 20  Pos.bottom;.    
2e90: 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c 2e      this.xPanel.
2ea0: 73 74 79 6c 65 2e 6c 65 66 74 20 3d 20 6f 50 6f  style.left = oPo
2eb0: 73 2e 6c 65 66 74 3b 0a 20 20 20 20 20 20 20 20  s.left;.        
2ec0: 74 68 69 73 2e 78 50 61 6e 65 6c 2e 73 74 79 6c  this.xPanel.styl
2ed0: 65 2e 6d 61 72 67 69 6e 54 6f 70 20 3d 20 6f 50  e.marginTop = oP
2ee0: 6f 73 2e 6d 61 72 67 69 6e 54 6f 70 3b 0a 20 20  os.marginTop;.  
2ef0: 20 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65        this.xPane
2f00: 6c 2e 73 74 79 6c 65 2e 6d 61 72 67 69 6e 4c 65  l.style.marginLe
2f10: 66 74 20 3d 20 6f 50 6f 73 2e 6d 61 72 67 69 6e  ft = oPos.margin
2f20: 4c 65 66 74 3b 0a 20 20 20 20 7d 0a 0a 20 20 20  Left;.    }..   
2f30: 20 72 65 64 75 63 65 20 28 29 20 7b 0a 20 20 20   reduce () {.   
2f40: 20 20 20 20 20 2f 2f 20 74 6f 64 6f 0a 20 20 20       // todo.   
2f50: 20 7d 0a 0a 20 20 20 20 67 65 74 57 69 64 74 68   }..    getWidth
2f60: 20 28 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65   () {.        re
2f70: 74 75 72 6e 20 74 68 69 73 2e 78 50 61 6e 65 6c  turn this.xPanel
2f80: 43 6f 6e 74 65 6e 74 2e 6f 66 66 73 65 74 57 69  Content.offsetWi
2f90: 64 74 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20  dth;.    }..    
2fa0: 6c 6f 67 49 6e 6e 65 72 48 54 4d 4c 20 28 29 20  logInnerHTML () 
2fb0: 7b 0a 20 20 20 20 20 20 20 20 2f 2f 20 66 6f 72  {.        // for
2fc0: 20 64 65 62 75 67 67 69 6e 67 0a 20 20 20 20 20   debugging.     
2fd0: 20 20 20 63 6f 6e 73 6f 6c 65 2e 6c 6f 67 28 74     console.log(t
2fe0: 68 69 73 2e 78 50 61 6e 65 6c 2e 69 6e 6e 65 72  his.xPanel.inner
2ff0: 48 54 4d 4c 29 3b 0a 20 20 20 20 7d 0a 0a 20 20  HTML);.    }..  
3000: 20 20 73 74 61 72 74 57 61 69 74 49 63 6f 6e 20    startWaitIcon 
3010: 28 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69  () {.        thi
3020: 73 2e 62 57 6f 72 6b 69 6e 67 20 3d 20 74 72 75  s.bWorking = tru
3030: 65 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e  e;.        this.
3040: 78 57 61 69 74 49 63 6f 6e 2e 73 74 79 6c 65 2e  xWaitIcon.style.
3050: 76 69 73 69 62 69 6c 69 74 79 20 3d 20 22 76 69  visibility = "vi
3060: 73 69 62 6c 65 22 3b 0a 20 20 20 20 7d 0a 0a 20  sible";.    }.. 
3070: 20 20 20 73 74 6f 70 57 61 69 74 49 63 6f 6e 20     stopWaitIcon 
3080: 28 29 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69  () {.        thi
3090: 73 2e 62 57 6f 72 6b 69 6e 67 20 3d 20 66 61 6c  s.bWorking = fal
30a0: 73 65 3b 0a 20 20 20 20 20 20 20 20 74 68 69 73  se;.        this
30b0: 2e 78 57 61 69 74 49 63 6f 6e 2e 73 74 79 6c 65  .xWaitIcon.style
30c0: 2e 76 69 73 69 62 69 6c 69 74 79 20 3d 20 22 68  .visibility = "h
30d0: 69 64 64 65 6e 22 3b 0a 20 20 20 20 7d 0a 0a 20  idden";.    }.. 
30e0: 20 20 20 73 68 6f 77 4d 65 73 73 61 67 65 20 28     showMessage (
30f0: 73 4d 65 73 73 61 67 65 2c 20 73 41 63 74 69 6f  sMessage, sActio
3100: 6e 4d 65 73 73 61 67 65 3d 22 22 2c 20 73 41 63  nMessage="", sAc
3110: 74 69 6f 6e 4e 61 6d 65 3d 22 22 29 20 7b 0a 20  tionName="") {. 
3120: 20 20 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e         this.xPan
3130: 65 6c 4d 65 73 73 61 67 65 42 6c 6f 63 6b 2e 73  elMessageBlock.s
3140: 74 79 6c 65 2e 64 69 73 70 6c 61 79 20 3d 20 22  tyle.display = "
3150: 62 6c 6f 63 6b 22 3b 0a 20 20 20 20 20 20 20 20  block";.        
3160: 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65 73 73 61  this.xPanelMessa
3170: 67 65 2e 74 65 78 74 43 6f 6e 74 65 6e 74 20 3d  ge.textContent =
3180: 20 73 4d 65 73 73 61 67 65 3b 0a 20 20 20 20 20   sMessage;.     
3190: 20 20 20 69 66 20 28 73 41 63 74 69 6f 6e 4d 65     if (sActionMe
31a0: 73 73 61 67 65 29 20 7b 0a 20 20 20 20 20 20 20  ssage) {.       
31b0: 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c       this.xPanel
31c0: 4d 65 73 73 61 67 65 41 63 74 69 6f 6e 42 75 74  MessageActionBut
31d0: 74 6f 6e 2e 74 65 78 74 43 6f 6e 74 65 6e 74 20  ton.textContent 
31e0: 3d 20 73 41 63 74 69 6f 6e 4d 65 73 73 61 67 65  = sActionMessage
31f0: 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 68  ;.            th
3200: 69 73 2e 78 50 61 6e 65 6c 4d 65 73 73 61 67 65  is.xPanelMessage
3210: 41 63 74 69 6f 6e 42 75 74 74 6f 6e 2e 73 74 79  ActionButton.sty
3220: 6c 65 2e 64 69 73 70 6c 61 79 20 3d 20 22 62 6c  le.display = "bl
3230: 6f 63 6b 22 3b 0a 20 20 20 20 20 20 20 20 20 20  ock";.          
3240: 20 20 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65 73    this.xPanelMes
3250: 73 61 67 65 41 63 74 69 6f 6e 42 75 74 74 6f 6e  sageActionButton
3260: 2e 6f 6e 63 6c 69 63 6b 20 3d 20 28 29 20 3d 3e  .onclick = () =>
3270: 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20   {.             
3280: 20 20 20 74 68 69 73 2e 65 78 65 63 75 74 65 42     this.executeB
3290: 75 74 74 6f 6e 41 63 74 69 6f 6e 28 73 41 63 74  uttonAction(sAct
32a0: 69 6f 6e 4e 61 6d 65 29 3b 0a 20 20 20 20 20 20  ionName);.      
32b0: 20 20 20 20 20 20 7d 3b 0a 20 20 20 20 20 20 20        };.       
32c0: 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20   } else {.      
32d0: 20 20 20 20 20 20 74 68 69 73 2e 78 50 61 6e 65        this.xPane
32e0: 6c 4d 65 73 73 61 67 65 41 63 74 69 6f 6e 42 75  lMessageActionBu
32f0: 74 74 6f 6e 2e 73 74 79 6c 65 2e 64 69 73 70 6c  tton.style.displ
3300: 61 79 20 3d 20 22 6e 6f 6e 65 22 3b 0a 20 20 20  ay = "none";.   
3310: 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20       }.    }..  
3320: 20 20 68 69 64 65 4d 65 73 73 61 67 65 20 28 29    hideMessage ()
3330: 20 7b 0a 20 20 20 20 20 20 20 20 74 68 69 73 2e   {.        this.
3340: 78 50 61 6e 65 6c 4d 65 73 73 61 67 65 42 6c 6f  xPanelMessageBlo
3350: 63 6b 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79  ck.style.display
3360: 20 3d 20 22 6e 6f 6e 65 22 3b 0a 20 20 20 20 20   = "none";.     
3370: 20 20 20 74 68 69 73 2e 78 50 61 6e 65 6c 4d 65     this.xPanelMe
3380: 73 73 61 67 65 41 63 74 69 6f 6e 42 75 74 74 6f  ssageActionButto
3390: 6e 2e 73 74 79 6c 65 2e 64 69 73 70 6c 61 79 20  n.style.display 
33a0: 3d 20 22 6e 6f 6e 65 22 3b 0a 20 20 20 20 7d 0a  = "none";.    }.
33b0: 0a 20 20 20 20 65 78 65 63 75 74 65 42 75 74 74  .    executeButt
33c0: 6f 6e 41 63 74 69 6f 6e 20 28 73 41 63 74 69 6f  onAction (sActio
33d0: 6e 4e 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20  nName) {.       
33e0: 20 73 77 69 74 63 68 20 28 73 41 63 74 69 6f 6e   switch (sAction
33f0: 4e 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20  Name) {.        
3400: 20 20 20 20 63 61 73 65 20 22 22 3a 0a 20 20 20      case "":.   
3410: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65               bre
3420: 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ak;.            
3430: 63 61 73 65 20 22 72 65 73 74 61 72 74 57 6f 72  case "restartWor
3440: 6b 65 72 22 3a 0a 20 20 20 20 20 20 20 20 20 20  ker":.          
3450: 20 20 20 20 20 20 78 47 72 61 6d 6d 61 6c 65 63        xGrammalec
3460: 74 65 50 6f 72 74 2e 70 6f 73 74 4d 65 73 73 61  tePort.postMessa
3470: 67 65 28 7b 0a 20 20 20 20 20 20 20 20 20 20 20  ge({.           
3480: 20 20 20 20 20 20 20 20 20 73 43 6f 6d 6d 61 6e           sComman
3490: 64 3a 20 22 72 65 73 74 61 72 74 57 6f 72 6b 65  d: "restartWorke
34a0: 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20  r",.            
34b0: 20 20 20 20 20 20 20 20 64 50 61 72 61 6d 3a 20          dParam: 
34c0: 7b 20 22 6e 54 69 6d 65 44 65 6c 61 79 22 3a 20  { "nTimeDelay": 
34d0: 31 30 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20  10 },.          
34e0: 20 20 20 20 20 20 20 20 20 20 64 49 6e 66 6f 3a            dInfo:
34f0: 20 7b 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20   {}.            
3500: 20 20 20 20 7d 29 3b 0a 20 20 20 20 20 20 20 20      });.        
3510: 20 20 20 20 20 20 20 20 74 68 69 73 2e 73 74 6f          this.sto
3520: 70 57 61 69 74 49 63 6f 6e 28 29 3b 0a 20 20 20  pWaitIcon();.   
3530: 20 20 20 20 20 20 20 20 20 20 20 20 20 62 72 65               bre
3540: 61 6b 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20  ak;.            
3550: 64 65 66 61 75 6c 74 3a 0a 20 20 20 20 20 20 20  default:.       
3560: 20 20 20 20 20 20 20 20 20 63 6f 6e 73 6f 6c 65           console
3570: 2e 6c 6f 67 28 22 41 63 74 69 6f 6e 20 69 6e 63  .log("Action inc
3580: 6f 6e 6e 75 65 3a 20 22 2c 20 73 41 63 74 69 6f  onnue: ", sActio
3590: 6e 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20  n);.        }.  
35a0: 20 20 7d 0a 0a 20 20 20 20 6f 70 65 6e 55 52 4c    }..    openURL
35b0: 20 28 73 55 52 4c 29 20 7b 0a 20 20 20 20 20 20   (sURL) {.      
35c0: 20 20 78 47 72 61 6d 6d 61 6c 65 63 74 65 50 6f    xGrammalectePo
35d0: 72 74 2e 70 6f 73 74 4d 65 73 73 61 67 65 28 7b  rt.postMessage({
35e0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 43 6f  .            sCo
35f0: 6d 6d 61 6e 64 3a 20 22 6f 70 65 6e 55 52 4c 22  mmand: "openURL"
3600: 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 64 50  ,.            dP
3610: 61 72 61 6d 3a 20 7b 22 73 55 52 4c 22 3a 20 73  aram: {"sURL": s
3620: 55 52 4c 7d 2c 0a 20 20 20 20 20 20 20 20 20 20  URL},.          
3630: 20 20 64 49 6e 66 6f 3a 20 7b 7d 0a 20 20 20 20    dInfo: {}.    
3640: 20 20 20 20 7d 29 3b 0a 20 20 20 20 7d 0a 7d 0a      });.    }.}.