Grammalecte  Hex Artifact Content

Artifact ece26d72644bfb16c02bb743e59aeec0ba6f007b8b4327987874540caa44fc5b:


0000: 2f 2f 20 4f 70 74 69 6f 6e 73 20 66 6f 72 20 47  // Options for G
0010: 72 61 6d 6d 61 6c 65 63 74 65 0a 0a 2f 2a 20 6a  rammalecte../* j
0020: 73 68 69 6e 74 20 65 73 76 65 72 73 69 6f 6e 3a  shint esversion:
0030: 36 20 2a 2f 0a 2f 2a 20 6a 73 6c 69 6e 74 20 65  6 */./* jslint e
0040: 73 76 65 72 73 69 6f 6e 3a 36 20 2a 2f 0a 2f 2a  sversion:6 */./*
0050: 20 67 6c 6f 62 61 6c 20 65 78 70 6f 72 74 73 20   global exports 
0060: 2a 2f 0a 0a 24 7b 6d 61 70 7d 0a 0a 0a 76 61 72  */..${map}...var
0070: 20 67 63 5f 6f 70 74 69 6f 6e 73 20 3d 20 7b 0a   gc_options = {.
0080: 20 20 20 20 67 65 74 4f 70 74 69 6f 6e 73 3a 20      getOptions: 
0090: 66 75 6e 63 74 69 6f 6e 20 28 73 43 6f 6e 74 65  function (sConte
00a0: 78 74 3d 22 4a 61 76 61 53 63 72 69 70 74 22 29  xt="JavaScript")
00b0: 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 74   {.        if (t
00c0: 68 69 73 2e 64 4f 70 74 2e 68 61 73 4f 77 6e 50  his.dOpt.hasOwnP
00d0: 72 6f 70 65 72 74 79 28 73 43 6f 6e 74 65 78 74  roperty(sContext
00e0: 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20  )) {.           
00f0: 20 72 65 74 75 72 6e 20 74 68 69 73 2e 64 4f 70   return this.dOp
0100: 74 5b 73 43 6f 6e 74 65 78 74 5d 3b 0a 20 20 20  t[sContext];.   
0110: 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 72       }.        r
0120: 65 74 75 72 6e 20 74 68 69 73 2e 64 4f 70 74 5b  eturn this.dOpt[
0130: 22 4a 61 76 61 53 63 72 69 70 74 22 5d 3b 0a 20  "JavaScript"];. 
0140: 20 20 20 7d 2c 0a 0a 20 20 20 20 67 65 74 4f 70     },..    getOp
0150: 74 69 6f 6e 73 43 6f 6c 6f 72 73 3a 20 66 75 6e  tionsColors: fun
0160: 63 74 69 6f 6e 20 28 73 54 68 65 6d 65 3d 22 44  ction (sTheme="D
0170: 65 66 61 75 6c 74 22 2c 20 73 43 6f 6c 6f 72 54  efault", sColorT
0180: 79 70 65 3d 22 61 52 47 42 22 29 20 7b 0a 20 20  ype="aRGB") {.  
0190: 20 20 20 20 20 20 6c 65 74 20 64 4f 70 74 43 6f        let dOptCo
01a0: 6c 6f 72 20 3d 20 28 74 68 69 73 2e 64 4f 70 74  lor = (this.dOpt
01b0: 43 6f 6c 6f 72 2e 68 61 73 4f 77 6e 50 72 6f 70  Color.hasOwnProp
01c0: 65 72 74 79 28 73 54 68 65 6d 65 29 29 20 3f 20  erty(sTheme)) ? 
01d0: 74 68 69 73 2e 64 4f 70 74 43 6f 6c 6f 72 5b 73  this.dOptColor[s
01e0: 54 68 65 6d 65 5d 20 3a 20 74 68 69 73 2e 64 4f  Theme] : this.dO
01f0: 70 74 43 6f 6c 6f 72 5b 22 44 65 66 61 75 6c 74  ptColor["Default
0200: 22 5d 3b 0a 20 20 20 20 20 20 20 20 6c 65 74 20  "];.        let 
0210: 64 43 6f 6c 6f 72 54 79 70 65 20 3d 20 28 74 68  dColorType = (th
0220: 69 73 2e 64 43 6f 6c 6f 72 54 79 70 65 2e 68 61  is.dColorType.ha
0230: 73 4f 77 6e 50 72 6f 70 65 72 74 79 28 73 43 6f  sOwnProperty(sCo
0240: 6c 6f 72 54 79 70 65 29 29 20 3f 20 74 68 69 73  lorType)) ? this
0250: 2e 64 43 6f 6c 6f 72 54 79 70 65 5b 73 43 6f 6c  .dColorType[sCol
0260: 6f 72 54 79 70 65 5d 20 3a 20 74 68 69 73 2e 64  orType] : this.d
0270: 43 6f 6c 6f 72 54 79 70 65 5b 22 61 52 47 42 22  ColorType["aRGB"
0280: 5d 3b 0a 20 20 20 20 20 20 20 20 6c 65 74 20 64  ];.        let d
0290: 43 6f 6c 6f 72 20 3d 20 7b 7d 3b 0a 20 20 20 20  Color = {};.    
02a0: 20 20 20 20 74 72 79 20 7b 0a 20 20 20 20 20 20      try {.      
02b0: 20 20 20 20 20 20 66 6f 72 20 28 6c 65 74 20 5b        for (let [
02c0: 73 4f 70 74 2c 20 73 43 6f 6c 6f 72 5d 20 6f 66  sOpt, sColor] of
02d0: 20 4f 62 6a 65 63 74 2e 65 6e 74 72 69 65 73 28   Object.entries(
02e0: 64 4f 70 74 43 6f 6c 6f 72 29 29 20 7b 0a 20 20  dOptColor)) {.  
02f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 43                dC
0300: 6f 6c 6f 72 5b 73 4f 70 74 5d 20 3d 20 64 43 6f  olor[sOpt] = dCo
0310: 6c 6f 72 54 79 70 65 5b 73 43 6f 6c 6f 72 5d 3b  lorType[sColor];
0320: 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20  .            }. 
0330: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72             retur
0340: 6e 20 64 43 6f 6c 6f 72 3b 0a 20 20 20 20 20 20  n dColor;.      
0350: 20 20 7d 0a 20 20 20 20 20 20 20 20 63 61 74 63    }.        catc
0360: 68 20 28 65 29 20 7b 0a 20 20 20 20 20 20 20 20  h (e) {.        
0370: 20 20 20 20 63 6f 6e 73 6f 6c 65 2e 65 72 72 6f      console.erro
0380: 72 28 65 29 3b 0a 20 20 20 20 20 20 20 20 20 20  r(e);.          
0390: 20 20 72 65 74 75 72 6e 20 7b 7d 3b 0a 20 20 20    return {};.   
03a0: 20 20 20 20 20 7d 0a 20 20 20 20 7d 2c 0a 0a 20       }.    },.. 
03b0: 20 20 20 6c 53 74 72 75 63 74 4f 70 74 3a 20 24     lStructOpt: $
03c0: 7b 6c 53 74 72 75 63 74 4f 70 74 7d 2c 0a 0a 20  {lStructOpt},.. 
03d0: 20 20 20 64 4f 70 74 3a 20 7b 0a 20 20 20 20 20     dOpt: {.     
03e0: 20 20 20 22 4a 61 76 61 53 63 72 69 70 74 22 3a     "JavaScript":
03f0: 20 6e 65 77 20 4d 61 70 20 28 24 7b 64 4f 70 74   new Map (${dOpt
0400: 4a 61 76 61 53 63 72 69 70 74 7d 29 2c 0a 20 20  JavaScript}),.  
0410: 20 20 20 20 20 20 22 46 69 72 65 66 6f 78 22 3a        "Firefox":
0420: 20 6e 65 77 20 4d 61 70 20 28 24 7b 64 4f 70 74   new Map (${dOpt
0430: 46 69 72 65 66 6f 78 7d 29 2c 0a 20 20 20 20 20  Firefox}),.     
0440: 20 20 20 22 54 68 75 6e 64 65 72 62 69 72 64 22     "Thunderbird"
0450: 3a 20 6e 65 77 20 4d 61 70 20 28 24 7b 64 4f 70  : new Map (${dOp
0460: 74 54 68 75 6e 64 65 72 62 69 72 64 7d 29 2c 0a  tThunderbird}),.
0470: 20 20 20 20 7d 2c 0a 0a 20 20 20 20 64 43 6f 6c      },..    dCol
0480: 6f 72 54 79 70 65 3a 20 24 7b 64 43 6f 6c 6f 72  orType: ${dColor
0490: 54 79 70 65 7d 2c 0a 0a 20 20 20 20 64 4f 70 74  Type},..    dOpt
04a0: 43 6f 6c 6f 72 3a 20 24 7b 64 4f 70 74 43 6f 6c  Color: ${dOptCol
04b0: 6f 72 7d 2c 0a 0a 20 20 20 20 64 4f 70 74 4c 61  or},..    dOptLa
04c0: 62 65 6c 3a 20 24 7b 64 4f 70 74 4c 61 62 65 6c  bel: ${dOptLabel
04d0: 7d 0a 7d 3b 0a 0a 0a 69 66 20 28 74 79 70 65 6f  }.};...if (typeo
04e0: 66 28 65 78 70 6f 72 74 73 29 20 21 3d 3d 20 27  f(exports) !== '
04f0: 75 6e 64 65 66 69 6e 65 64 27 29 20 7b 0a 20 20  undefined') {.  
0500: 20 20 65 78 70 6f 72 74 73 2e 67 65 74 4f 70 74    exports.getOpt
0510: 69 6f 6e 73 20 3d 20 67 63 5f 6f 70 74 69 6f 6e  ions = gc_option
0520: 73 2e 67 65 74 4f 70 74 69 6f 6e 73 3b 0a 20 20  s.getOptions;.  
0530: 20 20 65 78 70 6f 72 74 73 2e 67 65 74 4f 70 74    exports.getOpt
0540: 69 6f 6e 73 43 6f 6c 6f 72 73 20 3d 20 67 63 5f  ionsColors = gc_
0550: 6f 70 74 69 6f 6e 73 2e 67 65 74 4f 70 74 69 6f  options.getOptio
0560: 6e 73 43 6f 6c 6f 72 73 3b 0a 20 20 20 20 65 78  nsColors;.    ex
0570: 70 6f 72 74 73 2e 6c 53 74 72 75 63 74 4f 70 74  ports.lStructOpt
0580: 20 3d 20 67 63 5f 6f 70 74 69 6f 6e 73 2e 6c 53   = gc_options.lS
0590: 74 72 75 63 74 4f 70 74 3b 0a 20 20 20 20 65 78  tructOpt;.    ex
05a0: 70 6f 72 74 73 2e 64 4f 70 74 20 3d 20 67 63 5f  ports.dOpt = gc_
05b0: 6f 70 74 69 6f 6e 73 2e 64 4f 70 74 3b 0a 20 20  options.dOpt;.  
05c0: 20 20 65 78 70 6f 72 74 73 2e 64 43 6f 6c 6f 72    exports.dColor
05d0: 54 79 70 65 20 3d 20 67 63 5f 6f 70 74 69 6f 6e  Type = gc_option
05e0: 73 2e 64 43 6f 6c 6f 72 54 79 70 65 3b 0a 20 20  s.dColorType;.  
05f0: 20 20 65 78 70 6f 72 74 73 2e 64 4f 70 74 43 6f    exports.dOptCo
0600: 6c 6f 72 20 3d 20 67 63 5f 6f 70 74 69 6f 6e 73  lor = gc_options
0610: 2e 64 4f 70 74 43 6f 6c 6f 72 3b 0a 20 20 20 20  .dOptColor;.    
0620: 65 78 70 6f 72 74 73 2e 64 4f 70 74 4c 61 62 65  exports.dOptLabe
0630: 6c 20 3d 20 67 63 5f 6f 70 74 69 6f 6e 73 2e 64  l = gc_options.d
0640: 4f 70 74 4c 61 62 65 6c 3b 0a 7d 0a              OptLabel;.}.