@mapbox/mapbox-gl-style-spec 14.7.0-beta.1 → 14.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -244,6 +244,10 @@ var featuresets = {
244
244
  };
245
245
  var featureset = {
246
246
  experimental: true,
247
+ metadata: {
248
+ type: "*",
249
+ doc: "Arbitrary properties useful to track with the stylesheet, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'."
250
+ },
247
251
  selectors: {
248
252
  type: "array",
249
253
  value: "selector",
@@ -6467,7 +6471,8 @@ var paint_symbol = {
6467
6471
  interpolated: true,
6468
6472
  parameters: [
6469
6473
  "zoom",
6470
- "measure-light"
6474
+ "measure-light",
6475
+ "feature-state"
6471
6476
  ]
6472
6477
  },
6473
6478
  "property-type": "data-driven"
@@ -6498,7 +6503,8 @@ var paint_symbol = {
6498
6503
  interpolated: true,
6499
6504
  parameters: [
6500
6505
  "zoom",
6501
- "measure-light"
6506
+ "measure-light",
6507
+ "feature-state"
6502
6508
  ]
6503
6509
  },
6504
6510
  "property-type": "data-driven"
@@ -7612,6 +7618,32 @@ var paint_hillshade = {
7612
7618
  }
7613
7619
  };
7614
7620
  var paint_background = {
7621
+ "background-pitch-alignment": {
7622
+ type: "enum",
7623
+ values: {
7624
+ map: {
7625
+ doc: "The background is aligned to the plane of the map."
7626
+ },
7627
+ viewport: {
7628
+ doc: "The background is aligned to the plane of the viewport, covering the whole screen."
7629
+ }
7630
+ },
7631
+ "default": "map",
7632
+ doc: "Orientation of background layer.",
7633
+ "sdk-support": {
7634
+ "basic functionality": {
7635
+ js: "3.8.0",
7636
+ android: "11.8.0",
7637
+ ios: "11.8.0"
7638
+ }
7639
+ },
7640
+ expression: {
7641
+ interpolated: false,
7642
+ parameters: [
7643
+ ]
7644
+ },
7645
+ "property-type": "data-constant"
7646
+ },
7615
7647
  "background-color": {
7616
7648
  type: "color",
7617
7649
  "default": "#000000",
@@ -8350,9 +8382,7 @@ var paint_model = {
8350
8382
  doc: "An array for configuring the fade-out effect for the front cutoff of content on pitched map views. It contains three values: start, range and final opacity. The start parameter defines the point at which the fade-out effect begins, with smaller values causing the effect to start earlier. The range parameter specifies how long the fade-out effect will last. A value of 0.0 for range makes content disappear immediately without a fade-out effect. The final opacity determines content opacity at the end of the fade-out effect. A value of 1.0 for final opacity means that the cutoff is completely disabled.",
8351
8383
  "sdk-support": {
8352
8384
  "basic functionality": {
8353
- js: "3.5.0",
8354
- android: "11.5.0",
8355
- ios: "11.5.0"
8385
+ js: "3.5.0"
8356
8386
  }
8357
8387
  }
8358
8388
  }
@@ -9228,16 +9258,22 @@ var v8 = {
9228
9258
  js: "3.0.0",
9229
9259
  android: "11.0.0",
9230
9260
  ios: "11.0.0"
9261
+ },
9262
+ "data-driven styling": {
9263
+ js: "3.8.0",
9264
+ android: "11.8.0",
9265
+ ios: "11.8.0"
9231
9266
  }
9232
9267
  },
9233
9268
  expression: {
9234
9269
  interpolated: true,
9235
9270
  parameters: [
9236
9271
  "zoom",
9237
- "measure-light"
9272
+ "measure-light",
9273
+ "feature-state"
9238
9274
  ]
9239
9275
  },
9240
- "property-type": "data-constant"
9276
+ "property-type": "data-driven"
9241
9277
  },
9242
9278
  "fill-extrusion-line-width": {
9243
9279
  type: "number",
@@ -9892,1050 +9928,1058 @@ function getDefaultExportFromCjs (x) {
9892
9928
 
9893
9929
  var csscolorparser = {};
9894
9930
 
9895
- var parseCSSColor_1;
9896
- // (c) Dean McNamee <dean@gmail.com>, 2012.
9897
- //
9898
- // https://github.com/deanm/css-color-parser-js
9899
- //
9900
- // Permission is hereby granted, free of charge, to any person obtaining a copy
9901
- // of this software and associated documentation files (the "Software"), to
9902
- // deal in the Software without restriction, including without limitation the
9903
- // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9904
- // sell copies of the Software, and to permit persons to whom the Software is
9905
- // furnished to do so, subject to the following conditions:
9906
- //
9907
- // The above copyright notice and this permission notice shall be included in
9908
- // all copies or substantial portions of the Software.
9909
- //
9910
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
9911
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9912
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
9913
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
9914
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
9915
- // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
9916
- // IN THE SOFTWARE.
9917
- // http://www.w3.org/TR/css3-color/
9918
- var kCSSColorTable = {
9919
- 'transparent': [
9920
- 0,
9921
- 0,
9922
- 0,
9923
- 0
9924
- ],
9925
- 'aliceblue': [
9926
- 240,
9927
- 248,
9928
- 255,
9929
- 1
9930
- ],
9931
- 'antiquewhite': [
9932
- 250,
9933
- 235,
9934
- 215,
9935
- 1
9936
- ],
9937
- 'aqua': [
9938
- 0,
9939
- 255,
9940
- 255,
9941
- 1
9942
- ],
9943
- 'aquamarine': [
9944
- 127,
9945
- 255,
9946
- 212,
9947
- 1
9948
- ],
9949
- 'azure': [
9950
- 240,
9951
- 255,
9952
- 255,
9953
- 1
9954
- ],
9955
- 'beige': [
9956
- 245,
9957
- 245,
9958
- 220,
9959
- 1
9960
- ],
9961
- 'bisque': [
9962
- 255,
9963
- 228,
9964
- 196,
9965
- 1
9966
- ],
9967
- 'black': [
9968
- 0,
9969
- 0,
9970
- 0,
9971
- 1
9972
- ],
9973
- 'blanchedalmond': [
9974
- 255,
9975
- 235,
9976
- 205,
9977
- 1
9978
- ],
9979
- 'blue': [
9980
- 0,
9981
- 0,
9982
- 255,
9983
- 1
9984
- ],
9985
- 'blueviolet': [
9986
- 138,
9987
- 43,
9988
- 226,
9989
- 1
9990
- ],
9991
- 'brown': [
9992
- 165,
9993
- 42,
9994
- 42,
9995
- 1
9996
- ],
9997
- 'burlywood': [
9998
- 222,
9999
- 184,
10000
- 135,
10001
- 1
10002
- ],
10003
- 'cadetblue': [
10004
- 95,
10005
- 158,
10006
- 160,
10007
- 1
10008
- ],
10009
- 'chartreuse': [
10010
- 127,
10011
- 255,
10012
- 0,
10013
- 1
10014
- ],
10015
- 'chocolate': [
10016
- 210,
10017
- 105,
10018
- 30,
10019
- 1
10020
- ],
10021
- 'coral': [
10022
- 255,
10023
- 127,
10024
- 80,
10025
- 1
10026
- ],
10027
- 'cornflowerblue': [
10028
- 100,
10029
- 149,
10030
- 237,
10031
- 1
10032
- ],
10033
- 'cornsilk': [
10034
- 255,
10035
- 248,
10036
- 220,
10037
- 1
10038
- ],
10039
- 'crimson': [
10040
- 220,
10041
- 20,
10042
- 60,
10043
- 1
10044
- ],
10045
- 'cyan': [
10046
- 0,
10047
- 255,
10048
- 255,
10049
- 1
10050
- ],
10051
- 'darkblue': [
10052
- 0,
10053
- 0,
10054
- 139,
10055
- 1
10056
- ],
10057
- 'darkcyan': [
10058
- 0,
10059
- 139,
10060
- 139,
10061
- 1
10062
- ],
10063
- 'darkgoldenrod': [
10064
- 184,
10065
- 134,
10066
- 11,
10067
- 1
10068
- ],
10069
- 'darkgray': [
10070
- 169,
10071
- 169,
10072
- 169,
10073
- 1
10074
- ],
10075
- 'darkgreen': [
10076
- 0,
10077
- 100,
10078
- 0,
10079
- 1
10080
- ],
10081
- 'darkgrey': [
10082
- 169,
10083
- 169,
10084
- 169,
10085
- 1
10086
- ],
10087
- 'darkkhaki': [
10088
- 189,
10089
- 183,
10090
- 107,
10091
- 1
10092
- ],
10093
- 'darkmagenta': [
10094
- 139,
10095
- 0,
10096
- 139,
10097
- 1
10098
- ],
10099
- 'darkolivegreen': [
10100
- 85,
10101
- 107,
10102
- 47,
10103
- 1
10104
- ],
10105
- 'darkorange': [
10106
- 255,
10107
- 140,
10108
- 0,
10109
- 1
10110
- ],
10111
- 'darkorchid': [
10112
- 153,
10113
- 50,
10114
- 204,
10115
- 1
10116
- ],
10117
- 'darkred': [
10118
- 139,
10119
- 0,
10120
- 0,
10121
- 1
10122
- ],
10123
- 'darksalmon': [
10124
- 233,
10125
- 150,
10126
- 122,
10127
- 1
10128
- ],
10129
- 'darkseagreen': [
10130
- 143,
10131
- 188,
10132
- 143,
10133
- 1
10134
- ],
10135
- 'darkslateblue': [
10136
- 72,
10137
- 61,
10138
- 139,
10139
- 1
10140
- ],
10141
- 'darkslategray': [
10142
- 47,
10143
- 79,
10144
- 79,
10145
- 1
10146
- ],
10147
- 'darkslategrey': [
10148
- 47,
10149
- 79,
10150
- 79,
10151
- 1
10152
- ],
10153
- 'darkturquoise': [
10154
- 0,
10155
- 206,
10156
- 209,
10157
- 1
10158
- ],
10159
- 'darkviolet': [
10160
- 148,
10161
- 0,
10162
- 211,
10163
- 1
10164
- ],
10165
- 'deeppink': [
10166
- 255,
10167
- 20,
10168
- 147,
10169
- 1
10170
- ],
10171
- 'deepskyblue': [
10172
- 0,
10173
- 191,
10174
- 255,
10175
- 1
10176
- ],
10177
- 'dimgray': [
10178
- 105,
10179
- 105,
10180
- 105,
10181
- 1
10182
- ],
10183
- 'dimgrey': [
10184
- 105,
10185
- 105,
10186
- 105,
10187
- 1
10188
- ],
10189
- 'dodgerblue': [
10190
- 30,
10191
- 144,
10192
- 255,
10193
- 1
10194
- ],
10195
- 'firebrick': [
10196
- 178,
10197
- 34,
10198
- 34,
10199
- 1
10200
- ],
10201
- 'floralwhite': [
10202
- 255,
10203
- 250,
10204
- 240,
10205
- 1
10206
- ],
10207
- 'forestgreen': [
10208
- 34,
10209
- 139,
10210
- 34,
10211
- 1
10212
- ],
10213
- 'fuchsia': [
10214
- 255,
10215
- 0,
10216
- 255,
10217
- 1
10218
- ],
10219
- 'gainsboro': [
10220
- 220,
10221
- 220,
10222
- 220,
10223
- 1
10224
- ],
10225
- 'ghostwhite': [
10226
- 248,
10227
- 248,
10228
- 255,
10229
- 1
10230
- ],
10231
- 'gold': [
10232
- 255,
10233
- 215,
10234
- 0,
10235
- 1
10236
- ],
10237
- 'goldenrod': [
10238
- 218,
10239
- 165,
10240
- 32,
10241
- 1
10242
- ],
10243
- 'gray': [
10244
- 128,
10245
- 128,
10246
- 128,
10247
- 1
10248
- ],
10249
- 'green': [
10250
- 0,
10251
- 128,
10252
- 0,
10253
- 1
10254
- ],
10255
- 'greenyellow': [
10256
- 173,
10257
- 255,
10258
- 47,
10259
- 1
10260
- ],
10261
- 'grey': [
10262
- 128,
10263
- 128,
10264
- 128,
10265
- 1
10266
- ],
10267
- 'honeydew': [
10268
- 240,
10269
- 255,
10270
- 240,
10271
- 1
10272
- ],
10273
- 'hotpink': [
10274
- 255,
10275
- 105,
10276
- 180,
10277
- 1
10278
- ],
10279
- 'indianred': [
10280
- 205,
10281
- 92,
10282
- 92,
10283
- 1
10284
- ],
10285
- 'indigo': [
10286
- 75,
10287
- 0,
10288
- 130,
10289
- 1
10290
- ],
10291
- 'ivory': [
10292
- 255,
10293
- 255,
10294
- 240,
10295
- 1
10296
- ],
10297
- 'khaki': [
10298
- 240,
10299
- 230,
10300
- 140,
10301
- 1
10302
- ],
10303
- 'lavender': [
10304
- 230,
10305
- 230,
10306
- 250,
10307
- 1
10308
- ],
10309
- 'lavenderblush': [
10310
- 255,
10311
- 240,
10312
- 245,
10313
- 1
10314
- ],
10315
- 'lawngreen': [
10316
- 124,
10317
- 252,
10318
- 0,
10319
- 1
10320
- ],
10321
- 'lemonchiffon': [
10322
- 255,
10323
- 250,
10324
- 205,
10325
- 1
10326
- ],
10327
- 'lightblue': [
10328
- 173,
10329
- 216,
10330
- 230,
10331
- 1
10332
- ],
10333
- 'lightcoral': [
10334
- 240,
10335
- 128,
10336
- 128,
10337
- 1
10338
- ],
10339
- 'lightcyan': [
10340
- 224,
10341
- 255,
10342
- 255,
10343
- 1
10344
- ],
10345
- 'lightgoldenrodyellow': [
10346
- 250,
10347
- 250,
10348
- 210,
10349
- 1
10350
- ],
10351
- 'lightgray': [
10352
- 211,
10353
- 211,
10354
- 211,
10355
- 1
10356
- ],
10357
- 'lightgreen': [
10358
- 144,
10359
- 238,
10360
- 144,
10361
- 1
10362
- ],
10363
- 'lightgrey': [
10364
- 211,
10365
- 211,
10366
- 211,
10367
- 1
10368
- ],
10369
- 'lightpink': [
10370
- 255,
10371
- 182,
10372
- 193,
10373
- 1
10374
- ],
10375
- 'lightsalmon': [
10376
- 255,
10377
- 160,
10378
- 122,
10379
- 1
10380
- ],
10381
- 'lightseagreen': [
10382
- 32,
10383
- 178,
10384
- 170,
10385
- 1
10386
- ],
10387
- 'lightskyblue': [
10388
- 135,
10389
- 206,
10390
- 250,
10391
- 1
10392
- ],
10393
- 'lightslategray': [
10394
- 119,
10395
- 136,
10396
- 153,
10397
- 1
10398
- ],
10399
- 'lightslategrey': [
10400
- 119,
10401
- 136,
10402
- 153,
10403
- 1
10404
- ],
10405
- 'lightsteelblue': [
10406
- 176,
10407
- 196,
10408
- 222,
10409
- 1
10410
- ],
10411
- 'lightyellow': [
10412
- 255,
10413
- 255,
10414
- 224,
10415
- 1
10416
- ],
10417
- 'lime': [
10418
- 0,
10419
- 255,
10420
- 0,
10421
- 1
10422
- ],
10423
- 'limegreen': [
10424
- 50,
10425
- 205,
10426
- 50,
10427
- 1
10428
- ],
10429
- 'linen': [
10430
- 250,
10431
- 240,
10432
- 230,
10433
- 1
10434
- ],
10435
- 'magenta': [
10436
- 255,
10437
- 0,
10438
- 255,
10439
- 1
10440
- ],
10441
- 'maroon': [
10442
- 128,
10443
- 0,
10444
- 0,
10445
- 1
10446
- ],
10447
- 'mediumaquamarine': [
10448
- 102,
10449
- 205,
10450
- 170,
10451
- 1
10452
- ],
10453
- 'mediumblue': [
10454
- 0,
10455
- 0,
10456
- 205,
10457
- 1
10458
- ],
10459
- 'mediumorchid': [
10460
- 186,
10461
- 85,
10462
- 211,
10463
- 1
10464
- ],
10465
- 'mediumpurple': [
10466
- 147,
10467
- 112,
10468
- 219,
10469
- 1
10470
- ],
10471
- 'mediumseagreen': [
10472
- 60,
10473
- 179,
10474
- 113,
10475
- 1
10476
- ],
10477
- 'mediumslateblue': [
10478
- 123,
10479
- 104,
10480
- 238,
10481
- 1
10482
- ],
10483
- 'mediumspringgreen': [
10484
- 0,
10485
- 250,
10486
- 154,
10487
- 1
10488
- ],
10489
- 'mediumturquoise': [
10490
- 72,
10491
- 209,
10492
- 204,
10493
- 1
10494
- ],
10495
- 'mediumvioletred': [
10496
- 199,
10497
- 21,
10498
- 133,
10499
- 1
10500
- ],
10501
- 'midnightblue': [
10502
- 25,
10503
- 25,
10504
- 112,
10505
- 1
10506
- ],
10507
- 'mintcream': [
10508
- 245,
10509
- 255,
10510
- 250,
10511
- 1
10512
- ],
10513
- 'mistyrose': [
10514
- 255,
10515
- 228,
10516
- 225,
10517
- 1
10518
- ],
10519
- 'moccasin': [
10520
- 255,
10521
- 228,
10522
- 181,
10523
- 1
10524
- ],
10525
- 'navajowhite': [
10526
- 255,
10527
- 222,
10528
- 173,
10529
- 1
10530
- ],
10531
- 'navy': [
10532
- 0,
10533
- 0,
10534
- 128,
10535
- 1
10536
- ],
10537
- 'oldlace': [
10538
- 253,
10539
- 245,
10540
- 230,
10541
- 1
10542
- ],
10543
- 'olive': [
10544
- 128,
10545
- 128,
10546
- 0,
10547
- 1
10548
- ],
10549
- 'olivedrab': [
10550
- 107,
10551
- 142,
10552
- 35,
10553
- 1
10554
- ],
10555
- 'orange': [
10556
- 255,
10557
- 165,
10558
- 0,
10559
- 1
10560
- ],
10561
- 'orangered': [
10562
- 255,
10563
- 69,
10564
- 0,
10565
- 1
10566
- ],
10567
- 'orchid': [
10568
- 218,
10569
- 112,
10570
- 214,
10571
- 1
10572
- ],
10573
- 'palegoldenrod': [
10574
- 238,
10575
- 232,
10576
- 170,
10577
- 1
10578
- ],
10579
- 'palegreen': [
10580
- 152,
10581
- 251,
10582
- 152,
10583
- 1
10584
- ],
10585
- 'paleturquoise': [
10586
- 175,
10587
- 238,
10588
- 238,
10589
- 1
10590
- ],
10591
- 'palevioletred': [
10592
- 219,
10593
- 112,
10594
- 147,
10595
- 1
10596
- ],
10597
- 'papayawhip': [
10598
- 255,
10599
- 239,
10600
- 213,
10601
- 1
10602
- ],
10603
- 'peachpuff': [
10604
- 255,
10605
- 218,
10606
- 185,
10607
- 1
10608
- ],
10609
- 'peru': [
10610
- 205,
10611
- 133,
10612
- 63,
10613
- 1
10614
- ],
10615
- 'pink': [
10616
- 255,
10617
- 192,
10618
- 203,
10619
- 1
10620
- ],
10621
- 'plum': [
10622
- 221,
10623
- 160,
10624
- 221,
10625
- 1
10626
- ],
10627
- 'powderblue': [
10628
- 176,
10629
- 224,
10630
- 230,
10631
- 1
10632
- ],
10633
- 'purple': [
10634
- 128,
10635
- 0,
10636
- 128,
10637
- 1
10638
- ],
10639
- 'rebeccapurple': [
10640
- 102,
10641
- 51,
10642
- 153,
10643
- 1
10644
- ],
10645
- 'red': [
10646
- 255,
10647
- 0,
10648
- 0,
10649
- 1
10650
- ],
10651
- 'rosybrown': [
10652
- 188,
10653
- 143,
10654
- 143,
10655
- 1
10656
- ],
10657
- 'royalblue': [
10658
- 65,
10659
- 105,
10660
- 225,
10661
- 1
10662
- ],
10663
- 'saddlebrown': [
10664
- 139,
10665
- 69,
10666
- 19,
10667
- 1
10668
- ],
10669
- 'salmon': [
10670
- 250,
10671
- 128,
10672
- 114,
10673
- 1
10674
- ],
10675
- 'sandybrown': [
10676
- 244,
10677
- 164,
10678
- 96,
10679
- 1
10680
- ],
10681
- 'seagreen': [
10682
- 46,
10683
- 139,
10684
- 87,
10685
- 1
10686
- ],
10687
- 'seashell': [
10688
- 255,
10689
- 245,
10690
- 238,
10691
- 1
10692
- ],
10693
- 'sienna': [
10694
- 160,
10695
- 82,
10696
- 45,
10697
- 1
10698
- ],
10699
- 'silver': [
10700
- 192,
10701
- 192,
10702
- 192,
10703
- 1
10704
- ],
10705
- 'skyblue': [
10706
- 135,
10707
- 206,
10708
- 235,
10709
- 1
10710
- ],
10711
- 'slateblue': [
10712
- 106,
10713
- 90,
10714
- 205,
10715
- 1
10716
- ],
10717
- 'slategray': [
10718
- 112,
10719
- 128,
10720
- 144,
10721
- 1
10722
- ],
10723
- 'slategrey': [
10724
- 112,
10725
- 128,
10726
- 144,
10727
- 1
10728
- ],
10729
- 'snow': [
10730
- 255,
10731
- 250,
10732
- 250,
10733
- 1
10734
- ],
10735
- 'springgreen': [
10736
- 0,
10737
- 255,
10738
- 127,
10739
- 1
10740
- ],
10741
- 'steelblue': [
10742
- 70,
10743
- 130,
10744
- 180,
10745
- 1
10746
- ],
10747
- 'tan': [
10748
- 210,
10749
- 180,
10750
- 140,
10751
- 1
10752
- ],
10753
- 'teal': [
10754
- 0,
10755
- 128,
10756
- 128,
10757
- 1
10758
- ],
10759
- 'thistle': [
10760
- 216,
10761
- 191,
10762
- 216,
10763
- 1
10764
- ],
10765
- 'tomato': [
10766
- 255,
10767
- 99,
10768
- 71,
10769
- 1
10770
- ],
10771
- 'turquoise': [
10772
- 64,
10773
- 224,
10774
- 208,
10775
- 1
10776
- ],
10777
- 'violet': [
10778
- 238,
10779
- 130,
10780
- 238,
10781
- 1
10782
- ],
10783
- 'wheat': [
10784
- 245,
10785
- 222,
10786
- 179,
10787
- 1
10788
- ],
10789
- 'white': [
10790
- 255,
10791
- 255,
10792
- 255,
10793
- 1
10794
- ],
10795
- 'whitesmoke': [
10796
- 245,
10797
- 245,
10798
- 245,
10799
- 1
10800
- ],
10801
- 'yellow': [
10802
- 255,
10803
- 255,
10804
- 0,
10805
- 1
10806
- ],
10807
- 'yellowgreen': [
10808
- 154,
10809
- 205,
10810
- 50,
10811
- 1
10812
- ]
10813
- };
10814
- function clamp_css_byte(i) {
10815
- // Clamp to integer 0 .. 255.
10816
- i = Math.round(i);
10817
- // Seems to be what Chrome does (vs truncation).
10818
- return i < 0 ? 0 : i > 255 ? 255 : i;
10819
- }
10820
- function clamp_css_float(f) {
10821
- // Clamp to float 0.0 .. 1.0.
10822
- return f < 0 ? 0 : f > 1 ? 1 : f;
10823
- }
10824
- function parse_css_int(str) {
10825
- // int or percentage.
10826
- if (str[str.length - 1] === '%')
10827
- return clamp_css_byte(parseFloat(str) / 100 * 255);
10828
- return clamp_css_byte(parseInt(str));
10829
- }
10830
- function parse_css_float(str) {
10831
- // float or percentage.
10832
- if (str[str.length - 1] === '%')
10833
- return clamp_css_float(parseFloat(str) / 100);
10834
- return clamp_css_float(parseFloat(str));
10835
- }
10836
- function css_hue_to_rgb(m1, m2, h) {
10837
- if (h < 0)
10838
- h += 1;
10839
- else if (h > 1)
10840
- h -= 1;
10841
- if (h * 6 < 1)
10842
- return m1 + (m2 - m1) * h * 6;
10843
- if (h * 2 < 1)
10844
- return m2;
10845
- if (h * 3 < 2)
10846
- return m1 + (m2 - m1) * (2 / 3 - h) * 6;
10847
- return m1;
10848
- }
10849
- function parseCSSColor(css_str) {
10850
- // Remove all whitespace, not compliant, but should just be more accepting.
10851
- var str = css_str.replace(/ /g, '').toLowerCase();
10852
- // Color keywords (and transparent) lookup.
10853
- if (str in kCSSColorTable)
10854
- return kCSSColorTable[str].slice();
10855
- // dup.
10856
- // #abc and #abc123 syntax.
10857
- if (str[0] === '#') {
10858
- if (str.length === 4) {
10859
- var iv = parseInt(str.substr(1), 16);
10860
- // TODO(deanm): Stricter parsing.
10861
- if (!(iv >= 0 && iv <= 4095))
10862
- return null;
10863
- // Covers NaN.
10864
- return [
10865
- (iv & 3840) >> 4 | (iv & 3840) >> 8,
10866
- iv & 240 | (iv & 240) >> 4,
10867
- iv & 15 | (iv & 15) << 4,
10868
- 1
10869
- ];
10870
- } else if (str.length === 7) {
10871
- var iv = parseInt(str.substr(1), 16);
10872
- // TODO(deanm): Stricter parsing.
10873
- if (!(iv >= 0 && iv <= 16777215))
10874
- return null;
10875
- // Covers NaN.
10876
- return [
10877
- (iv & 16711680) >> 16,
10878
- (iv & 65280) >> 8,
10879
- iv & 255,
10880
- 1
10881
- ];
10882
- }
10883
- return null;
10884
- }
10885
- var op = str.indexOf('('), ep = str.indexOf(')');
10886
- if (op !== -1 && ep + 1 === str.length) {
10887
- var fname = str.substr(0, op);
10888
- var params = str.substr(op + 1, ep - (op + 1)).split(',');
10889
- var alpha = 1;
10890
- // To allow case fallthrough.
10891
- switch (fname) {
10892
- case 'rgba':
10893
- if (params.length !== 4)
10894
- return null;
10895
- alpha = parse_css_float(params.pop());
10896
- // Fall through.
10897
- case 'rgb':
10898
- if (params.length !== 3)
10899
- return null;
10900
- return [
10901
- parse_css_int(params[0]),
10902
- parse_css_int(params[1]),
10903
- parse_css_int(params[2]),
10904
- alpha
10905
- ];
10906
- case 'hsla':
10907
- if (params.length !== 4)
10908
- return null;
10909
- alpha = parse_css_float(params.pop());
10910
- // Fall through.
10911
- case 'hsl':
10912
- if (params.length !== 3)
10913
- return null;
10914
- var h = (parseFloat(params[0]) % 360 + 360) % 360 / 360;
10915
- // 0 .. 1
10916
- // NOTE(deanm): According to the CSS spec s/l should only be
10917
- // percentages, but we don't bother and let float or percentage.
10918
- var s = parse_css_float(params[1]);
10919
- var l = parse_css_float(params[2]);
10920
- var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;
10921
- var m1 = l * 2 - m2;
10922
- return [
10923
- clamp_css_byte(css_hue_to_rgb(m1, m2, h + 1 / 3) * 255),
10924
- clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),
10925
- clamp_css_byte(css_hue_to_rgb(m1, m2, h - 1 / 3) * 255),
10926
- alpha
10927
- ];
10928
- default:
10929
- return null;
10930
- }
10931
- }
10932
- return null;
10933
- }
10934
- try {
10935
- parseCSSColor_1 = csscolorparser.parseCSSColor = parseCSSColor;
10936
- } catch (e) {
9931
+ var hasRequiredCsscolorparser;
9932
+
9933
+ function requireCsscolorparser () {
9934
+ if (hasRequiredCsscolorparser) return csscolorparser;
9935
+ hasRequiredCsscolorparser = 1;
9936
+ // (c) Dean McNamee <dean@gmail.com>, 2012.
9937
+ //
9938
+ // https://github.com/deanm/css-color-parser-js
9939
+ //
9940
+ // Permission is hereby granted, free of charge, to any person obtaining a copy
9941
+ // of this software and associated documentation files (the "Software"), to
9942
+ // deal in the Software without restriction, including without limitation the
9943
+ // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
9944
+ // sell copies of the Software, and to permit persons to whom the Software is
9945
+ // furnished to do so, subject to the following conditions:
9946
+ //
9947
+ // The above copyright notice and this permission notice shall be included in
9948
+ // all copies or substantial portions of the Software.
9949
+ //
9950
+ // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
9951
+ // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
9952
+ // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
9953
+ // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
9954
+ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
9955
+ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
9956
+ // IN THE SOFTWARE.
9957
+ // http://www.w3.org/TR/css3-color/
9958
+ var kCSSColorTable = {
9959
+ 'transparent': [
9960
+ 0,
9961
+ 0,
9962
+ 0,
9963
+ 0
9964
+ ],
9965
+ 'aliceblue': [
9966
+ 240,
9967
+ 248,
9968
+ 255,
9969
+ 1
9970
+ ],
9971
+ 'antiquewhite': [
9972
+ 250,
9973
+ 235,
9974
+ 215,
9975
+ 1
9976
+ ],
9977
+ 'aqua': [
9978
+ 0,
9979
+ 255,
9980
+ 255,
9981
+ 1
9982
+ ],
9983
+ 'aquamarine': [
9984
+ 127,
9985
+ 255,
9986
+ 212,
9987
+ 1
9988
+ ],
9989
+ 'azure': [
9990
+ 240,
9991
+ 255,
9992
+ 255,
9993
+ 1
9994
+ ],
9995
+ 'beige': [
9996
+ 245,
9997
+ 245,
9998
+ 220,
9999
+ 1
10000
+ ],
10001
+ 'bisque': [
10002
+ 255,
10003
+ 228,
10004
+ 196,
10005
+ 1
10006
+ ],
10007
+ 'black': [
10008
+ 0,
10009
+ 0,
10010
+ 0,
10011
+ 1
10012
+ ],
10013
+ 'blanchedalmond': [
10014
+ 255,
10015
+ 235,
10016
+ 205,
10017
+ 1
10018
+ ],
10019
+ 'blue': [
10020
+ 0,
10021
+ 0,
10022
+ 255,
10023
+ 1
10024
+ ],
10025
+ 'blueviolet': [
10026
+ 138,
10027
+ 43,
10028
+ 226,
10029
+ 1
10030
+ ],
10031
+ 'brown': [
10032
+ 165,
10033
+ 42,
10034
+ 42,
10035
+ 1
10036
+ ],
10037
+ 'burlywood': [
10038
+ 222,
10039
+ 184,
10040
+ 135,
10041
+ 1
10042
+ ],
10043
+ 'cadetblue': [
10044
+ 95,
10045
+ 158,
10046
+ 160,
10047
+ 1
10048
+ ],
10049
+ 'chartreuse': [
10050
+ 127,
10051
+ 255,
10052
+ 0,
10053
+ 1
10054
+ ],
10055
+ 'chocolate': [
10056
+ 210,
10057
+ 105,
10058
+ 30,
10059
+ 1
10060
+ ],
10061
+ 'coral': [
10062
+ 255,
10063
+ 127,
10064
+ 80,
10065
+ 1
10066
+ ],
10067
+ 'cornflowerblue': [
10068
+ 100,
10069
+ 149,
10070
+ 237,
10071
+ 1
10072
+ ],
10073
+ 'cornsilk': [
10074
+ 255,
10075
+ 248,
10076
+ 220,
10077
+ 1
10078
+ ],
10079
+ 'crimson': [
10080
+ 220,
10081
+ 20,
10082
+ 60,
10083
+ 1
10084
+ ],
10085
+ 'cyan': [
10086
+ 0,
10087
+ 255,
10088
+ 255,
10089
+ 1
10090
+ ],
10091
+ 'darkblue': [
10092
+ 0,
10093
+ 0,
10094
+ 139,
10095
+ 1
10096
+ ],
10097
+ 'darkcyan': [
10098
+ 0,
10099
+ 139,
10100
+ 139,
10101
+ 1
10102
+ ],
10103
+ 'darkgoldenrod': [
10104
+ 184,
10105
+ 134,
10106
+ 11,
10107
+ 1
10108
+ ],
10109
+ 'darkgray': [
10110
+ 169,
10111
+ 169,
10112
+ 169,
10113
+ 1
10114
+ ],
10115
+ 'darkgreen': [
10116
+ 0,
10117
+ 100,
10118
+ 0,
10119
+ 1
10120
+ ],
10121
+ 'darkgrey': [
10122
+ 169,
10123
+ 169,
10124
+ 169,
10125
+ 1
10126
+ ],
10127
+ 'darkkhaki': [
10128
+ 189,
10129
+ 183,
10130
+ 107,
10131
+ 1
10132
+ ],
10133
+ 'darkmagenta': [
10134
+ 139,
10135
+ 0,
10136
+ 139,
10137
+ 1
10138
+ ],
10139
+ 'darkolivegreen': [
10140
+ 85,
10141
+ 107,
10142
+ 47,
10143
+ 1
10144
+ ],
10145
+ 'darkorange': [
10146
+ 255,
10147
+ 140,
10148
+ 0,
10149
+ 1
10150
+ ],
10151
+ 'darkorchid': [
10152
+ 153,
10153
+ 50,
10154
+ 204,
10155
+ 1
10156
+ ],
10157
+ 'darkred': [
10158
+ 139,
10159
+ 0,
10160
+ 0,
10161
+ 1
10162
+ ],
10163
+ 'darksalmon': [
10164
+ 233,
10165
+ 150,
10166
+ 122,
10167
+ 1
10168
+ ],
10169
+ 'darkseagreen': [
10170
+ 143,
10171
+ 188,
10172
+ 143,
10173
+ 1
10174
+ ],
10175
+ 'darkslateblue': [
10176
+ 72,
10177
+ 61,
10178
+ 139,
10179
+ 1
10180
+ ],
10181
+ 'darkslategray': [
10182
+ 47,
10183
+ 79,
10184
+ 79,
10185
+ 1
10186
+ ],
10187
+ 'darkslategrey': [
10188
+ 47,
10189
+ 79,
10190
+ 79,
10191
+ 1
10192
+ ],
10193
+ 'darkturquoise': [
10194
+ 0,
10195
+ 206,
10196
+ 209,
10197
+ 1
10198
+ ],
10199
+ 'darkviolet': [
10200
+ 148,
10201
+ 0,
10202
+ 211,
10203
+ 1
10204
+ ],
10205
+ 'deeppink': [
10206
+ 255,
10207
+ 20,
10208
+ 147,
10209
+ 1
10210
+ ],
10211
+ 'deepskyblue': [
10212
+ 0,
10213
+ 191,
10214
+ 255,
10215
+ 1
10216
+ ],
10217
+ 'dimgray': [
10218
+ 105,
10219
+ 105,
10220
+ 105,
10221
+ 1
10222
+ ],
10223
+ 'dimgrey': [
10224
+ 105,
10225
+ 105,
10226
+ 105,
10227
+ 1
10228
+ ],
10229
+ 'dodgerblue': [
10230
+ 30,
10231
+ 144,
10232
+ 255,
10233
+ 1
10234
+ ],
10235
+ 'firebrick': [
10236
+ 178,
10237
+ 34,
10238
+ 34,
10239
+ 1
10240
+ ],
10241
+ 'floralwhite': [
10242
+ 255,
10243
+ 250,
10244
+ 240,
10245
+ 1
10246
+ ],
10247
+ 'forestgreen': [
10248
+ 34,
10249
+ 139,
10250
+ 34,
10251
+ 1
10252
+ ],
10253
+ 'fuchsia': [
10254
+ 255,
10255
+ 0,
10256
+ 255,
10257
+ 1
10258
+ ],
10259
+ 'gainsboro': [
10260
+ 220,
10261
+ 220,
10262
+ 220,
10263
+ 1
10264
+ ],
10265
+ 'ghostwhite': [
10266
+ 248,
10267
+ 248,
10268
+ 255,
10269
+ 1
10270
+ ],
10271
+ 'gold': [
10272
+ 255,
10273
+ 215,
10274
+ 0,
10275
+ 1
10276
+ ],
10277
+ 'goldenrod': [
10278
+ 218,
10279
+ 165,
10280
+ 32,
10281
+ 1
10282
+ ],
10283
+ 'gray': [
10284
+ 128,
10285
+ 128,
10286
+ 128,
10287
+ 1
10288
+ ],
10289
+ 'green': [
10290
+ 0,
10291
+ 128,
10292
+ 0,
10293
+ 1
10294
+ ],
10295
+ 'greenyellow': [
10296
+ 173,
10297
+ 255,
10298
+ 47,
10299
+ 1
10300
+ ],
10301
+ 'grey': [
10302
+ 128,
10303
+ 128,
10304
+ 128,
10305
+ 1
10306
+ ],
10307
+ 'honeydew': [
10308
+ 240,
10309
+ 255,
10310
+ 240,
10311
+ 1
10312
+ ],
10313
+ 'hotpink': [
10314
+ 255,
10315
+ 105,
10316
+ 180,
10317
+ 1
10318
+ ],
10319
+ 'indianred': [
10320
+ 205,
10321
+ 92,
10322
+ 92,
10323
+ 1
10324
+ ],
10325
+ 'indigo': [
10326
+ 75,
10327
+ 0,
10328
+ 130,
10329
+ 1
10330
+ ],
10331
+ 'ivory': [
10332
+ 255,
10333
+ 255,
10334
+ 240,
10335
+ 1
10336
+ ],
10337
+ 'khaki': [
10338
+ 240,
10339
+ 230,
10340
+ 140,
10341
+ 1
10342
+ ],
10343
+ 'lavender': [
10344
+ 230,
10345
+ 230,
10346
+ 250,
10347
+ 1
10348
+ ],
10349
+ 'lavenderblush': [
10350
+ 255,
10351
+ 240,
10352
+ 245,
10353
+ 1
10354
+ ],
10355
+ 'lawngreen': [
10356
+ 124,
10357
+ 252,
10358
+ 0,
10359
+ 1
10360
+ ],
10361
+ 'lemonchiffon': [
10362
+ 255,
10363
+ 250,
10364
+ 205,
10365
+ 1
10366
+ ],
10367
+ 'lightblue': [
10368
+ 173,
10369
+ 216,
10370
+ 230,
10371
+ 1
10372
+ ],
10373
+ 'lightcoral': [
10374
+ 240,
10375
+ 128,
10376
+ 128,
10377
+ 1
10378
+ ],
10379
+ 'lightcyan': [
10380
+ 224,
10381
+ 255,
10382
+ 255,
10383
+ 1
10384
+ ],
10385
+ 'lightgoldenrodyellow': [
10386
+ 250,
10387
+ 250,
10388
+ 210,
10389
+ 1
10390
+ ],
10391
+ 'lightgray': [
10392
+ 211,
10393
+ 211,
10394
+ 211,
10395
+ 1
10396
+ ],
10397
+ 'lightgreen': [
10398
+ 144,
10399
+ 238,
10400
+ 144,
10401
+ 1
10402
+ ],
10403
+ 'lightgrey': [
10404
+ 211,
10405
+ 211,
10406
+ 211,
10407
+ 1
10408
+ ],
10409
+ 'lightpink': [
10410
+ 255,
10411
+ 182,
10412
+ 193,
10413
+ 1
10414
+ ],
10415
+ 'lightsalmon': [
10416
+ 255,
10417
+ 160,
10418
+ 122,
10419
+ 1
10420
+ ],
10421
+ 'lightseagreen': [
10422
+ 32,
10423
+ 178,
10424
+ 170,
10425
+ 1
10426
+ ],
10427
+ 'lightskyblue': [
10428
+ 135,
10429
+ 206,
10430
+ 250,
10431
+ 1
10432
+ ],
10433
+ 'lightslategray': [
10434
+ 119,
10435
+ 136,
10436
+ 153,
10437
+ 1
10438
+ ],
10439
+ 'lightslategrey': [
10440
+ 119,
10441
+ 136,
10442
+ 153,
10443
+ 1
10444
+ ],
10445
+ 'lightsteelblue': [
10446
+ 176,
10447
+ 196,
10448
+ 222,
10449
+ 1
10450
+ ],
10451
+ 'lightyellow': [
10452
+ 255,
10453
+ 255,
10454
+ 224,
10455
+ 1
10456
+ ],
10457
+ 'lime': [
10458
+ 0,
10459
+ 255,
10460
+ 0,
10461
+ 1
10462
+ ],
10463
+ 'limegreen': [
10464
+ 50,
10465
+ 205,
10466
+ 50,
10467
+ 1
10468
+ ],
10469
+ 'linen': [
10470
+ 250,
10471
+ 240,
10472
+ 230,
10473
+ 1
10474
+ ],
10475
+ 'magenta': [
10476
+ 255,
10477
+ 0,
10478
+ 255,
10479
+ 1
10480
+ ],
10481
+ 'maroon': [
10482
+ 128,
10483
+ 0,
10484
+ 0,
10485
+ 1
10486
+ ],
10487
+ 'mediumaquamarine': [
10488
+ 102,
10489
+ 205,
10490
+ 170,
10491
+ 1
10492
+ ],
10493
+ 'mediumblue': [
10494
+ 0,
10495
+ 0,
10496
+ 205,
10497
+ 1
10498
+ ],
10499
+ 'mediumorchid': [
10500
+ 186,
10501
+ 85,
10502
+ 211,
10503
+ 1
10504
+ ],
10505
+ 'mediumpurple': [
10506
+ 147,
10507
+ 112,
10508
+ 219,
10509
+ 1
10510
+ ],
10511
+ 'mediumseagreen': [
10512
+ 60,
10513
+ 179,
10514
+ 113,
10515
+ 1
10516
+ ],
10517
+ 'mediumslateblue': [
10518
+ 123,
10519
+ 104,
10520
+ 238,
10521
+ 1
10522
+ ],
10523
+ 'mediumspringgreen': [
10524
+ 0,
10525
+ 250,
10526
+ 154,
10527
+ 1
10528
+ ],
10529
+ 'mediumturquoise': [
10530
+ 72,
10531
+ 209,
10532
+ 204,
10533
+ 1
10534
+ ],
10535
+ 'mediumvioletred': [
10536
+ 199,
10537
+ 21,
10538
+ 133,
10539
+ 1
10540
+ ],
10541
+ 'midnightblue': [
10542
+ 25,
10543
+ 25,
10544
+ 112,
10545
+ 1
10546
+ ],
10547
+ 'mintcream': [
10548
+ 245,
10549
+ 255,
10550
+ 250,
10551
+ 1
10552
+ ],
10553
+ 'mistyrose': [
10554
+ 255,
10555
+ 228,
10556
+ 225,
10557
+ 1
10558
+ ],
10559
+ 'moccasin': [
10560
+ 255,
10561
+ 228,
10562
+ 181,
10563
+ 1
10564
+ ],
10565
+ 'navajowhite': [
10566
+ 255,
10567
+ 222,
10568
+ 173,
10569
+ 1
10570
+ ],
10571
+ 'navy': [
10572
+ 0,
10573
+ 0,
10574
+ 128,
10575
+ 1
10576
+ ],
10577
+ 'oldlace': [
10578
+ 253,
10579
+ 245,
10580
+ 230,
10581
+ 1
10582
+ ],
10583
+ 'olive': [
10584
+ 128,
10585
+ 128,
10586
+ 0,
10587
+ 1
10588
+ ],
10589
+ 'olivedrab': [
10590
+ 107,
10591
+ 142,
10592
+ 35,
10593
+ 1
10594
+ ],
10595
+ 'orange': [
10596
+ 255,
10597
+ 165,
10598
+ 0,
10599
+ 1
10600
+ ],
10601
+ 'orangered': [
10602
+ 255,
10603
+ 69,
10604
+ 0,
10605
+ 1
10606
+ ],
10607
+ 'orchid': [
10608
+ 218,
10609
+ 112,
10610
+ 214,
10611
+ 1
10612
+ ],
10613
+ 'palegoldenrod': [
10614
+ 238,
10615
+ 232,
10616
+ 170,
10617
+ 1
10618
+ ],
10619
+ 'palegreen': [
10620
+ 152,
10621
+ 251,
10622
+ 152,
10623
+ 1
10624
+ ],
10625
+ 'paleturquoise': [
10626
+ 175,
10627
+ 238,
10628
+ 238,
10629
+ 1
10630
+ ],
10631
+ 'palevioletred': [
10632
+ 219,
10633
+ 112,
10634
+ 147,
10635
+ 1
10636
+ ],
10637
+ 'papayawhip': [
10638
+ 255,
10639
+ 239,
10640
+ 213,
10641
+ 1
10642
+ ],
10643
+ 'peachpuff': [
10644
+ 255,
10645
+ 218,
10646
+ 185,
10647
+ 1
10648
+ ],
10649
+ 'peru': [
10650
+ 205,
10651
+ 133,
10652
+ 63,
10653
+ 1
10654
+ ],
10655
+ 'pink': [
10656
+ 255,
10657
+ 192,
10658
+ 203,
10659
+ 1
10660
+ ],
10661
+ 'plum': [
10662
+ 221,
10663
+ 160,
10664
+ 221,
10665
+ 1
10666
+ ],
10667
+ 'powderblue': [
10668
+ 176,
10669
+ 224,
10670
+ 230,
10671
+ 1
10672
+ ],
10673
+ 'purple': [
10674
+ 128,
10675
+ 0,
10676
+ 128,
10677
+ 1
10678
+ ],
10679
+ 'rebeccapurple': [
10680
+ 102,
10681
+ 51,
10682
+ 153,
10683
+ 1
10684
+ ],
10685
+ 'red': [
10686
+ 255,
10687
+ 0,
10688
+ 0,
10689
+ 1
10690
+ ],
10691
+ 'rosybrown': [
10692
+ 188,
10693
+ 143,
10694
+ 143,
10695
+ 1
10696
+ ],
10697
+ 'royalblue': [
10698
+ 65,
10699
+ 105,
10700
+ 225,
10701
+ 1
10702
+ ],
10703
+ 'saddlebrown': [
10704
+ 139,
10705
+ 69,
10706
+ 19,
10707
+ 1
10708
+ ],
10709
+ 'salmon': [
10710
+ 250,
10711
+ 128,
10712
+ 114,
10713
+ 1
10714
+ ],
10715
+ 'sandybrown': [
10716
+ 244,
10717
+ 164,
10718
+ 96,
10719
+ 1
10720
+ ],
10721
+ 'seagreen': [
10722
+ 46,
10723
+ 139,
10724
+ 87,
10725
+ 1
10726
+ ],
10727
+ 'seashell': [
10728
+ 255,
10729
+ 245,
10730
+ 238,
10731
+ 1
10732
+ ],
10733
+ 'sienna': [
10734
+ 160,
10735
+ 82,
10736
+ 45,
10737
+ 1
10738
+ ],
10739
+ 'silver': [
10740
+ 192,
10741
+ 192,
10742
+ 192,
10743
+ 1
10744
+ ],
10745
+ 'skyblue': [
10746
+ 135,
10747
+ 206,
10748
+ 235,
10749
+ 1
10750
+ ],
10751
+ 'slateblue': [
10752
+ 106,
10753
+ 90,
10754
+ 205,
10755
+ 1
10756
+ ],
10757
+ 'slategray': [
10758
+ 112,
10759
+ 128,
10760
+ 144,
10761
+ 1
10762
+ ],
10763
+ 'slategrey': [
10764
+ 112,
10765
+ 128,
10766
+ 144,
10767
+ 1
10768
+ ],
10769
+ 'snow': [
10770
+ 255,
10771
+ 250,
10772
+ 250,
10773
+ 1
10774
+ ],
10775
+ 'springgreen': [
10776
+ 0,
10777
+ 255,
10778
+ 127,
10779
+ 1
10780
+ ],
10781
+ 'steelblue': [
10782
+ 70,
10783
+ 130,
10784
+ 180,
10785
+ 1
10786
+ ],
10787
+ 'tan': [
10788
+ 210,
10789
+ 180,
10790
+ 140,
10791
+ 1
10792
+ ],
10793
+ 'teal': [
10794
+ 0,
10795
+ 128,
10796
+ 128,
10797
+ 1
10798
+ ],
10799
+ 'thistle': [
10800
+ 216,
10801
+ 191,
10802
+ 216,
10803
+ 1
10804
+ ],
10805
+ 'tomato': [
10806
+ 255,
10807
+ 99,
10808
+ 71,
10809
+ 1
10810
+ ],
10811
+ 'turquoise': [
10812
+ 64,
10813
+ 224,
10814
+ 208,
10815
+ 1
10816
+ ],
10817
+ 'violet': [
10818
+ 238,
10819
+ 130,
10820
+ 238,
10821
+ 1
10822
+ ],
10823
+ 'wheat': [
10824
+ 245,
10825
+ 222,
10826
+ 179,
10827
+ 1
10828
+ ],
10829
+ 'white': [
10830
+ 255,
10831
+ 255,
10832
+ 255,
10833
+ 1
10834
+ ],
10835
+ 'whitesmoke': [
10836
+ 245,
10837
+ 245,
10838
+ 245,
10839
+ 1
10840
+ ],
10841
+ 'yellow': [
10842
+ 255,
10843
+ 255,
10844
+ 0,
10845
+ 1
10846
+ ],
10847
+ 'yellowgreen': [
10848
+ 154,
10849
+ 205,
10850
+ 50,
10851
+ 1
10852
+ ]
10853
+ };
10854
+ function clamp_css_byte(i) {
10855
+ // Clamp to integer 0 .. 255.
10856
+ i = Math.round(i);
10857
+ // Seems to be what Chrome does (vs truncation).
10858
+ return i < 0 ? 0 : i > 255 ? 255 : i;
10859
+ }
10860
+ function clamp_css_float(f) {
10861
+ // Clamp to float 0.0 .. 1.0.
10862
+ return f < 0 ? 0 : f > 1 ? 1 : f;
10863
+ }
10864
+ function parse_css_int(str) {
10865
+ // int or percentage.
10866
+ if (str[str.length - 1] === '%')
10867
+ return clamp_css_byte(parseFloat(str) / 100 * 255);
10868
+ return clamp_css_byte(parseInt(str));
10869
+ }
10870
+ function parse_css_float(str) {
10871
+ // float or percentage.
10872
+ if (str[str.length - 1] === '%')
10873
+ return clamp_css_float(parseFloat(str) / 100);
10874
+ return clamp_css_float(parseFloat(str));
10875
+ }
10876
+ function css_hue_to_rgb(m1, m2, h) {
10877
+ if (h < 0)
10878
+ h += 1;
10879
+ else if (h > 1)
10880
+ h -= 1;
10881
+ if (h * 6 < 1)
10882
+ return m1 + (m2 - m1) * h * 6;
10883
+ if (h * 2 < 1)
10884
+ return m2;
10885
+ if (h * 3 < 2)
10886
+ return m1 + (m2 - m1) * (2 / 3 - h) * 6;
10887
+ return m1;
10888
+ }
10889
+ function parseCSSColor(css_str) {
10890
+ // Remove all whitespace, not compliant, but should just be more accepting.
10891
+ var str = css_str.replace(/ /g, '').toLowerCase();
10892
+ // Color keywords (and transparent) lookup.
10893
+ if (str in kCSSColorTable)
10894
+ return kCSSColorTable[str].slice();
10895
+ // dup.
10896
+ // #abc and #abc123 syntax.
10897
+ if (str[0] === '#') {
10898
+ if (str.length === 4) {
10899
+ var iv = parseInt(str.substr(1), 16);
10900
+ // TODO(deanm): Stricter parsing.
10901
+ if (!(iv >= 0 && iv <= 4095))
10902
+ return null;
10903
+ // Covers NaN.
10904
+ return [
10905
+ (iv & 3840) >> 4 | (iv & 3840) >> 8,
10906
+ iv & 240 | (iv & 240) >> 4,
10907
+ iv & 15 | (iv & 15) << 4,
10908
+ 1
10909
+ ];
10910
+ } else if (str.length === 7) {
10911
+ var iv = parseInt(str.substr(1), 16);
10912
+ // TODO(deanm): Stricter parsing.
10913
+ if (!(iv >= 0 && iv <= 16777215))
10914
+ return null;
10915
+ // Covers NaN.
10916
+ return [
10917
+ (iv & 16711680) >> 16,
10918
+ (iv & 65280) >> 8,
10919
+ iv & 255,
10920
+ 1
10921
+ ];
10922
+ }
10923
+ return null;
10924
+ }
10925
+ var op = str.indexOf('('), ep = str.indexOf(')');
10926
+ if (op !== -1 && ep + 1 === str.length) {
10927
+ var fname = str.substr(0, op);
10928
+ var params = str.substr(op + 1, ep - (op + 1)).split(',');
10929
+ var alpha = 1;
10930
+ // To allow case fallthrough.
10931
+ switch (fname) {
10932
+ case 'rgba':
10933
+ if (params.length !== 4)
10934
+ return null;
10935
+ alpha = parse_css_float(params.pop());
10936
+ // Fall through.
10937
+ case 'rgb':
10938
+ if (params.length !== 3)
10939
+ return null;
10940
+ return [
10941
+ parse_css_int(params[0]),
10942
+ parse_css_int(params[1]),
10943
+ parse_css_int(params[2]),
10944
+ alpha
10945
+ ];
10946
+ case 'hsla':
10947
+ if (params.length !== 4)
10948
+ return null;
10949
+ alpha = parse_css_float(params.pop());
10950
+ // Fall through.
10951
+ case 'hsl':
10952
+ if (params.length !== 3)
10953
+ return null;
10954
+ var h = (parseFloat(params[0]) % 360 + 360) % 360 / 360;
10955
+ // 0 .. 1
10956
+ // NOTE(deanm): According to the CSS spec s/l should only be
10957
+ // percentages, but we don't bother and let float or percentage.
10958
+ var s = parse_css_float(params[1]);
10959
+ var l = parse_css_float(params[2]);
10960
+ var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;
10961
+ var m1 = l * 2 - m2;
10962
+ return [
10963
+ clamp_css_byte(css_hue_to_rgb(m1, m2, h + 1 / 3) * 255),
10964
+ clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),
10965
+ clamp_css_byte(css_hue_to_rgb(m1, m2, h - 1 / 3) * 255),
10966
+ alpha
10967
+ ];
10968
+ default:
10969
+ return null;
10970
+ }
10971
+ }
10972
+ return null;
10973
+ }
10974
+ try {
10975
+ csscolorparser.parseCSSColor = parseCSSColor;
10976
+ } catch (e) {
10977
+ }
10978
+ return csscolorparser;
10937
10979
  }
10938
10980
 
10981
+ var csscolorparserExports = requireCsscolorparser();
10982
+
10939
10983
  function number(a, b, t) {
10940
10984
  return a * (1 - t) + b * t;
10941
10985
  }
@@ -10976,7 +11020,7 @@ class Color {
10976
11020
  if (typeof input !== 'string') {
10977
11021
  return void 0;
10978
11022
  }
10979
- const rgba = parseCSSColor_1(input);
11023
+ const rgba = csscolorparserExports.parseCSSColor(input);
10980
11024
  if (!rgba) {
10981
11025
  return void 0;
10982
11026
  }
@@ -14083,72 +14127,81 @@ class Step {
14083
14127
  }
14084
14128
  }
14085
14129
 
14086
- var unitbezier = UnitBezier;
14087
- function UnitBezier(p1x, p1y, p2x, p2y) {
14088
- // Calculate the polynomial coefficients, implicit first and last control points are (0,0) and (1,1).
14089
- this.cx = 3 * p1x;
14090
- this.bx = 3 * (p2x - p1x) - this.cx;
14091
- this.ax = 1 - this.cx - this.bx;
14092
- this.cy = 3 * p1y;
14093
- this.by = 3 * (p2y - p1y) - this.cy;
14094
- this.ay = 1 - this.cy - this.by;
14095
- this.p1x = p1x;
14096
- this.p1y = p1y;
14097
- this.p2x = p2x;
14098
- this.p2y = p2y;
14099
- }
14100
- UnitBezier.prototype = {
14101
- sampleCurveX: function (t) {
14102
- // `ax t^3 + bx t^2 + cx t' expanded using Horner's rule.
14103
- return ((this.ax * t + this.bx) * t + this.cx) * t;
14104
- },
14105
- sampleCurveY: function (t) {
14106
- return ((this.ay * t + this.by) * t + this.cy) * t;
14107
- },
14108
- sampleCurveDerivativeX: function (t) {
14109
- return (3 * this.ax * t + 2 * this.bx) * t + this.cx;
14110
- },
14111
- solveCurveX: function (x, epsilon) {
14112
- if (epsilon === undefined)
14113
- epsilon = 0.000001;
14114
- if (x < 0)
14115
- return 0;
14116
- if (x > 1)
14117
- return 1;
14118
- var t = x;
14119
- // First try a few iterations of Newton's method - normally very fast.
14120
- for (var i = 0; i < 8; i++) {
14121
- var x2 = this.sampleCurveX(t) - x;
14122
- if (Math.abs(x2) < epsilon)
14123
- return t;
14124
- var d2 = this.sampleCurveDerivativeX(t);
14125
- if (Math.abs(d2) < 0.000001)
14126
- break;
14127
- t = t - x2 / d2;
14128
- }
14129
- // Fall back to the bisection method for reliability.
14130
- var t0 = 0;
14131
- var t1 = 1;
14132
- t = x;
14133
- for (i = 0; i < 20; i++) {
14134
- x2 = this.sampleCurveX(t);
14135
- if (Math.abs(x2 - x) < epsilon)
14136
- break;
14137
- if (x > x2) {
14138
- t0 = t;
14139
- } else {
14140
- t1 = t;
14141
- }
14142
- t = (t1 - t0) * 0.5 + t0;
14143
- }
14144
- return t;
14145
- },
14146
- solve: function (x, epsilon) {
14147
- return this.sampleCurveY(this.solveCurveX(x, epsilon));
14148
- }
14149
- };
14130
+ var unitbezier;
14131
+ var hasRequiredUnitbezier;
14132
+
14133
+ function requireUnitbezier () {
14134
+ if (hasRequiredUnitbezier) return unitbezier;
14135
+ hasRequiredUnitbezier = 1;
14136
+ unitbezier = UnitBezier;
14137
+ function UnitBezier(p1x, p1y, p2x, p2y) {
14138
+ // Calculate the polynomial coefficients, implicit first and last control points are (0,0) and (1,1).
14139
+ this.cx = 3 * p1x;
14140
+ this.bx = 3 * (p2x - p1x) - this.cx;
14141
+ this.ax = 1 - this.cx - this.bx;
14142
+ this.cy = 3 * p1y;
14143
+ this.by = 3 * (p2y - p1y) - this.cy;
14144
+ this.ay = 1 - this.cy - this.by;
14145
+ this.p1x = p1x;
14146
+ this.p1y = p1y;
14147
+ this.p2x = p2x;
14148
+ this.p2y = p2y;
14149
+ }
14150
+ UnitBezier.prototype = {
14151
+ sampleCurveX: function (t) {
14152
+ // `ax t^3 + bx t^2 + cx t' expanded using Horner's rule.
14153
+ return ((this.ax * t + this.bx) * t + this.cx) * t;
14154
+ },
14155
+ sampleCurveY: function (t) {
14156
+ return ((this.ay * t + this.by) * t + this.cy) * t;
14157
+ },
14158
+ sampleCurveDerivativeX: function (t) {
14159
+ return (3 * this.ax * t + 2 * this.bx) * t + this.cx;
14160
+ },
14161
+ solveCurveX: function (x, epsilon) {
14162
+ if (epsilon === undefined)
14163
+ epsilon = 0.000001;
14164
+ if (x < 0)
14165
+ return 0;
14166
+ if (x > 1)
14167
+ return 1;
14168
+ var t = x;
14169
+ // First try a few iterations of Newton's method - normally very fast.
14170
+ for (var i = 0; i < 8; i++) {
14171
+ var x2 = this.sampleCurveX(t) - x;
14172
+ if (Math.abs(x2) < epsilon)
14173
+ return t;
14174
+ var d2 = this.sampleCurveDerivativeX(t);
14175
+ if (Math.abs(d2) < 0.000001)
14176
+ break;
14177
+ t = t - x2 / d2;
14178
+ }
14179
+ // Fall back to the bisection method for reliability.
14180
+ var t0 = 0;
14181
+ var t1 = 1;
14182
+ t = x;
14183
+ for (i = 0; i < 20; i++) {
14184
+ x2 = this.sampleCurveX(t);
14185
+ if (Math.abs(x2 - x) < epsilon)
14186
+ break;
14187
+ if (x > x2) {
14188
+ t0 = t;
14189
+ } else {
14190
+ t1 = t;
14191
+ }
14192
+ t = (t1 - t0) * 0.5 + t0;
14193
+ }
14194
+ return t;
14195
+ },
14196
+ solve: function (x, epsilon) {
14197
+ return this.sampleCurveY(this.solveCurveX(x, epsilon));
14198
+ }
14199
+ };
14200
+ return unitbezier;
14201
+ }
14150
14202
 
14151
- var UnitBezier$1 = /*@__PURE__*/getDefaultExportFromCjs(unitbezier);
14203
+ var unitbezierExports = requireUnitbezier();
14204
+ var UnitBezier = /*@__PURE__*/getDefaultExportFromCjs(unitbezierExports);
14152
14205
 
14153
14206
  const Xn = 0.95047, Yn = 1, Zn = 1.08883, t0 = 4 / 29, t1 = 6 / 29, t2 = 3 * t1 * t1, t3 = t1 * t1 * t1, deg2rad = Math.PI / 180, rad2deg = 180 / Math.PI;
14154
14207
  function xyz2lab(t) {
@@ -14258,7 +14311,7 @@ class Interpolate {
14258
14311
  t = exponentialInterpolation(input, 1, lower, upper);
14259
14312
  } else if (interpolation.name === 'cubic-bezier') {
14260
14313
  const c = interpolation.controlPoints;
14261
- const ub = new UnitBezier$1(c[0], c[1], c[2], c[3]);
14314
+ const ub = new UnitBezier(c[0], c[1], c[2], c[3]);
14262
14315
  t = ub.solve(exponentialInterpolation(input, 1, lower, upper));
14263
14316
  }
14264
14317
  return t;
@@ -18288,7 +18341,7 @@ function validateColor(options) {
18288
18341
  if (type !== 'string') {
18289
18342
  return [new ValidationError(key, value, `color expected, ${ type } found`)];
18290
18343
  }
18291
- if (parseCSSColor_1(value) === null) {
18344
+ if (csscolorparserExports.parseCSSColor(value) === null) {
18292
18345
  return [new ValidationError(key, value, `color expected, "${ value }" found`)];
18293
18346
  }
18294
18347
  return [];
@@ -19120,1059 +19173,1067 @@ var jsonlint$1 = {};
19120
19173
 
19121
19174
  /* parser generated by jison 0.4.15 */
19122
19175
 
19123
- (function (exports) {
19124
- /*
19125
- Returns a Parser object of the following structure:
19176
+ var hasRequiredJsonlint;
19126
19177
 
19127
- Parser: {
19128
- yy: {}
19129
- }
19178
+ function requireJsonlint () {
19179
+ if (hasRequiredJsonlint) return jsonlint$1;
19180
+ hasRequiredJsonlint = 1;
19181
+ (function (exports) {
19182
+ /*
19183
+ Returns a Parser object of the following structure:
19130
19184
 
19131
- Parser.prototype: {
19132
- yy: {},
19133
- trace: function(),
19134
- symbols_: {associative list: name ==> number},
19135
- terminals_: {associative list: number ==> name},
19136
- productions_: [...],
19137
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
19138
- table: [...],
19139
- defaultActions: {...},
19140
- parseError: function(str, hash),
19141
- parse: function(input),
19185
+ Parser: {
19186
+ yy: {}
19187
+ }
19142
19188
 
19143
- lexer: {
19144
- EOF: 1,
19145
- parseError: function(str, hash),
19146
- setInput: function(input),
19147
- input: function(),
19148
- unput: function(str),
19149
- more: function(),
19150
- less: function(n),
19151
- pastInput: function(),
19152
- upcomingInput: function(),
19153
- showPosition: function(),
19154
- test_match: function(regex_match_array, rule_index),
19155
- next: function(),
19156
- lex: function(),
19157
- begin: function(condition),
19158
- popState: function(),
19159
- _currentRules: function(),
19160
- topState: function(),
19161
- pushState: function(condition),
19189
+ Parser.prototype: {
19190
+ yy: {},
19191
+ trace: function(),
19192
+ symbols_: {associative list: name ==> number},
19193
+ terminals_: {associative list: number ==> name},
19194
+ productions_: [...],
19195
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$),
19196
+ table: [...],
19197
+ defaultActions: {...},
19198
+ parseError: function(str, hash),
19199
+ parse: function(input),
19162
19200
 
19163
- options: {
19164
- ranges: boolean (optional: true ==> token location info will include a .range[] member)
19165
- flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
19166
- backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
19167
- },
19201
+ lexer: {
19202
+ EOF: 1,
19203
+ parseError: function(str, hash),
19204
+ setInput: function(input),
19205
+ input: function(),
19206
+ unput: function(str),
19207
+ more: function(),
19208
+ less: function(n),
19209
+ pastInput: function(),
19210
+ upcomingInput: function(),
19211
+ showPosition: function(),
19212
+ test_match: function(regex_match_array, rule_index),
19213
+ next: function(),
19214
+ lex: function(),
19215
+ begin: function(condition),
19216
+ popState: function(),
19217
+ _currentRules: function(),
19218
+ topState: function(),
19219
+ pushState: function(condition),
19168
19220
 
19169
- performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
19170
- rules: [...],
19171
- conditions: {associative list: name ==> set},
19172
- }
19173
- }
19221
+ options: {
19222
+ ranges: boolean (optional: true ==> token location info will include a .range[] member)
19223
+ flex: boolean (optional: true ==> flex-like lexing behaviour where the rules are tested exhaustively to find the longest match)
19224
+ backtrack_lexer: boolean (optional: true ==> lexer regexes are tested in order and for each matching regex the action code is invoked; the lexer terminates the scan when a token is returned by the action code)
19225
+ },
19174
19226
 
19227
+ performAction: function(yy, yy_, $avoiding_name_collisions, YY_START),
19228
+ rules: [...],
19229
+ conditions: {associative list: name ==> set},
19230
+ }
19231
+ }
19175
19232
 
19176
- token location info (@$, _$, etc.): {
19177
- first_line: n,
19178
- last_line: n,
19179
- first_column: n,
19180
- last_column: n,
19181
- range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
19182
- }
19183
19233
 
19234
+ token location info (@$, _$, etc.): {
19235
+ first_line: n,
19236
+ last_line: n,
19237
+ first_column: n,
19238
+ last_column: n,
19239
+ range: [start_number, end_number] (where the numbers are indexes into the input string, regular zero-based)
19240
+ }
19184
19241
 
19185
- the parseError function receives a 'hash' object with these members for lexer and parser errors: {
19186
- text: (matched text)
19187
- token: (the produced terminal token, if any)
19188
- line: (yylineno)
19189
- }
19190
- while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
19191
- loc: (yylloc)
19192
- expected: (string describing the set of expected tokens)
19193
- recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
19194
- }
19195
- */
19196
- var parser = (function () {
19197
- var o = function (k, v, o, l) {
19198
- for (o = o || {}, l = k.length; l--; o[k[l]] = v);
19199
- return o;
19200
- }, $V0 = [
19201
- 1,
19202
- 12
19203
- ], $V1 = [
19204
- 1,
19205
- 13
19206
- ], $V2 = [
19207
- 1,
19208
- 9
19209
- ], $V3 = [
19210
- 1,
19211
- 10
19212
- ], $V4 = [
19213
- 1,
19214
- 11
19215
- ], $V5 = [
19216
- 1,
19217
- 14
19218
- ], $V6 = [
19219
- 1,
19220
- 15
19221
- ], $V7 = [
19222
- 14,
19223
- 18,
19224
- 22,
19225
- 24
19226
- ], $V8 = [
19227
- 18,
19228
- 22
19229
- ], $V9 = [
19230
- 22,
19231
- 24
19232
- ];
19233
- var parser = {
19234
- trace: function trace() {
19235
- },
19236
- yy: {},
19237
- symbols_: {
19238
- 'error': 2,
19239
- 'JSONString': 3,
19240
- 'STRING': 4,
19241
- 'JSONNumber': 5,
19242
- 'NUMBER': 6,
19243
- 'JSONNullLiteral': 7,
19244
- 'NULL': 8,
19245
- 'JSONBooleanLiteral': 9,
19246
- 'TRUE': 10,
19247
- 'FALSE': 11,
19248
- 'JSONText': 12,
19249
- 'JSONValue': 13,
19250
- 'EOF': 14,
19251
- 'JSONObject': 15,
19252
- 'JSONArray': 16,
19253
- '{': 17,
19254
- '}': 18,
19255
- 'JSONMemberList': 19,
19256
- 'JSONMember': 20,
19257
- ':': 21,
19258
- ',': 22,
19259
- '[': 23,
19260
- ']': 24,
19261
- 'JSONElementList': 25,
19262
- '$accept': 0,
19263
- '$end': 1
19264
- },
19265
- terminals_: {
19266
- 2: 'error',
19267
- 4: 'STRING',
19268
- 6: 'NUMBER',
19269
- 8: 'NULL',
19270
- 10: 'TRUE',
19271
- 11: 'FALSE',
19272
- 14: 'EOF',
19273
- 17: '{',
19274
- 18: '}',
19275
- 21: ':',
19276
- 22: ',',
19277
- 23: '[',
19278
- 24: ']'
19279
- },
19280
- productions_: [
19281
- 0,
19282
- [
19283
- 3,
19284
- 1
19285
- ],
19286
- [
19287
- 5,
19288
- 1
19289
- ],
19290
- [
19291
- 7,
19292
- 1
19293
- ],
19294
- [
19295
- 9,
19296
- 1
19297
- ],
19298
- [
19299
- 9,
19300
- 1
19301
- ],
19302
- [
19303
- 12,
19304
- 2
19305
- ],
19306
- [
19307
- 13,
19308
- 1
19309
- ],
19310
- [
19311
- 13,
19312
- 1
19313
- ],
19314
- [
19315
- 13,
19316
- 1
19317
- ],
19318
- [
19319
- 13,
19320
- 1
19321
- ],
19322
- [
19323
- 13,
19324
- 1
19325
- ],
19326
- [
19327
- 13,
19328
- 1
19329
- ],
19330
- [
19331
- 15,
19332
- 2
19333
- ],
19334
- [
19335
- 15,
19336
- 3
19337
- ],
19338
- [
19339
- 20,
19340
- 3
19341
- ],
19342
- [
19343
- 19,
19344
- 1
19345
- ],
19346
- [
19347
- 19,
19348
- 3
19349
- ],
19350
- [
19351
- 16,
19352
- 2
19353
- ],
19354
- [
19355
- 16,
19356
- 3
19357
- ],
19358
- [
19359
- 25,
19360
- 1
19361
- ],
19362
- [
19363
- 25,
19364
- 3
19365
- ]
19366
- ],
19367
- performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
19368
- /* this == yyval */
19369
- var $0 = $$.length - 1;
19370
- switch (yystate) {
19371
- case 1:
19372
- // replace escaped characters with actual character
19373
- this.$ = new String(yytext.replace(/\\(\\|")/g, '$' + '1').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\v/g, '\x0B').replace(/\\f/g, '\f').replace(/\\b/g, '\b'));
19374
- this.$.__line__ = this._$.first_line;
19375
- break;
19376
- case 2:
19377
- this.$ = new Number(yytext);
19378
- this.$.__line__ = this._$.first_line;
19379
- break;
19380
- case 3:
19381
- this.$ = null;
19382
- break;
19383
- case 4:
19384
- this.$ = new Boolean(true);
19385
- this.$.__line__ = this._$.first_line;
19386
- break;
19387
- case 5:
19388
- this.$ = new Boolean(false);
19389
- this.$.__line__ = this._$.first_line;
19390
- break;
19391
- case 6:
19392
- return this.$ = $$[$0 - 1];
19393
- case 13:
19394
- this.$ = {};
19395
- Object.defineProperty(this.$, '__line__', {
19396
- value: this._$.first_line,
19397
- enumerable: false
19398
- });
19399
- break;
19400
- case 14:
19401
- case 19:
19402
- this.$ = $$[$0 - 1];
19403
- Object.defineProperty(this.$, '__line__', {
19404
- value: this._$.first_line,
19405
- enumerable: false
19406
- });
19407
- break;
19408
- case 15:
19409
- this.$ = [
19410
- $$[$0 - 2],
19411
- $$[$0]
19412
- ];
19413
- break;
19414
- case 16:
19415
- this.$ = {};
19416
- this.$[$$[$0][0]] = $$[$0][1];
19417
- break;
19418
- case 17:
19419
- this.$ = $$[$0 - 2];
19420
- $$[$0 - 2][$$[$0][0]] = $$[$0][1];
19421
- break;
19422
- case 18:
19423
- this.$ = [];
19424
- Object.defineProperty(this.$, '__line__', {
19425
- value: this._$.first_line,
19426
- enumerable: false
19427
- });
19428
- break;
19429
- case 20:
19430
- this.$ = [$$[$0]];
19431
- break;
19432
- case 21:
19433
- this.$ = $$[$0 - 2];
19434
- $$[$0 - 2].push($$[$0]);
19435
- break;
19436
- }
19437
- },
19438
- table: [
19439
- {
19440
- 3: 5,
19441
- 4: $V0,
19442
- 5: 6,
19443
- 6: $V1,
19444
- 7: 3,
19445
- 8: $V2,
19446
- 9: 4,
19447
- 10: $V3,
19448
- 11: $V4,
19449
- 12: 1,
19450
- 13: 2,
19451
- 15: 7,
19452
- 16: 8,
19453
- 17: $V5,
19454
- 23: $V6
19455
- },
19456
- { 1: [3] },
19457
- {
19458
- 14: [
19459
- 1,
19460
- 16
19461
- ]
19462
- },
19463
- o($V7, [
19464
- 2,
19465
- 7
19466
- ]),
19467
- o($V7, [
19468
- 2,
19469
- 8
19470
- ]),
19471
- o($V7, [
19472
- 2,
19473
- 9
19474
- ]),
19475
- o($V7, [
19476
- 2,
19477
- 10
19478
- ]),
19479
- o($V7, [
19480
- 2,
19481
- 11
19482
- ]),
19483
- o($V7, [
19484
- 2,
19485
- 12
19486
- ]),
19487
- o($V7, [
19488
- 2,
19489
- 3
19490
- ]),
19491
- o($V7, [
19492
- 2,
19493
- 4
19494
- ]),
19495
- o($V7, [
19496
- 2,
19497
- 5
19498
- ]),
19499
- o([
19500
- 14,
19501
- 18,
19502
- 21,
19503
- 22,
19504
- 24
19505
- ], [
19506
- 2,
19507
- 1
19508
- ]),
19509
- o($V7, [
19510
- 2,
19511
- 2
19512
- ]),
19513
- {
19514
- 3: 20,
19515
- 4: $V0,
19516
- 18: [
19517
- 1,
19518
- 17
19519
- ],
19520
- 19: 18,
19521
- 20: 19
19522
- },
19523
- {
19524
- 3: 5,
19525
- 4: $V0,
19526
- 5: 6,
19527
- 6: $V1,
19528
- 7: 3,
19529
- 8: $V2,
19530
- 9: 4,
19531
- 10: $V3,
19532
- 11: $V4,
19533
- 13: 23,
19534
- 15: 7,
19535
- 16: 8,
19536
- 17: $V5,
19537
- 23: $V6,
19538
- 24: [
19539
- 1,
19540
- 21
19541
- ],
19542
- 25: 22
19543
- },
19544
- {
19545
- 1: [
19546
- 2,
19547
- 6
19548
- ]
19549
- },
19550
- o($V7, [
19551
- 2,
19552
- 13
19553
- ]),
19554
- {
19555
- 18: [
19556
- 1,
19557
- 24
19558
- ],
19559
- 22: [
19560
- 1,
19561
- 25
19562
- ]
19563
- },
19564
- o($V8, [
19565
- 2,
19566
- 16
19567
- ]),
19568
- {
19569
- 21: [
19570
- 1,
19571
- 26
19572
- ]
19573
- },
19574
- o($V7, [
19575
- 2,
19576
- 18
19577
- ]),
19578
- {
19579
- 22: [
19580
- 1,
19581
- 28
19582
- ],
19583
- 24: [
19584
- 1,
19585
- 27
19586
- ]
19587
- },
19588
- o($V9, [
19589
- 2,
19590
- 20
19591
- ]),
19592
- o($V7, [
19593
- 2,
19594
- 14
19595
- ]),
19596
- {
19597
- 3: 20,
19598
- 4: $V0,
19599
- 20: 29
19600
- },
19601
- {
19602
- 3: 5,
19603
- 4: $V0,
19604
- 5: 6,
19605
- 6: $V1,
19606
- 7: 3,
19607
- 8: $V2,
19608
- 9: 4,
19609
- 10: $V3,
19610
- 11: $V4,
19611
- 13: 30,
19612
- 15: 7,
19613
- 16: 8,
19614
- 17: $V5,
19615
- 23: $V6
19616
- },
19617
- o($V7, [
19618
- 2,
19619
- 19
19620
- ]),
19621
- {
19622
- 3: 5,
19623
- 4: $V0,
19624
- 5: 6,
19625
- 6: $V1,
19626
- 7: 3,
19627
- 8: $V2,
19628
- 9: 4,
19629
- 10: $V3,
19630
- 11: $V4,
19631
- 13: 31,
19632
- 15: 7,
19633
- 16: 8,
19634
- 17: $V5,
19635
- 23: $V6
19636
- },
19637
- o($V8, [
19638
- 2,
19639
- 17
19640
- ]),
19641
- o($V8, [
19642
- 2,
19643
- 15
19644
- ]),
19645
- o($V9, [
19646
- 2,
19647
- 21
19648
- ])
19649
- ],
19650
- defaultActions: {
19651
- 16: [
19652
- 2,
19653
- 6
19654
- ]
19655
- },
19656
- parseError: function parseError(str, hash) {
19657
- if (hash.recoverable) {
19658
- this.trace(str);
19659
- } else {
19660
- throw new Error(str);
19661
- }
19662
- },
19663
- parse: function parse(input) {
19664
- var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
19665
- var args = lstack.slice.call(arguments, 1);
19666
- var lexer = Object.create(this.lexer);
19667
- var sharedState = { yy: {} };
19668
- for (var k in this.yy) {
19669
- if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
19670
- sharedState.yy[k] = this.yy[k];
19671
- }
19672
- }
19673
- lexer.setInput(input, sharedState.yy);
19674
- sharedState.yy.lexer = lexer;
19675
- sharedState.yy.parser = this;
19676
- if (typeof lexer.yylloc == 'undefined') {
19677
- lexer.yylloc = {};
19678
- }
19679
- var yyloc = lexer.yylloc;
19680
- lstack.push(yyloc);
19681
- var ranges = lexer.options && lexer.options.ranges;
19682
- if (typeof sharedState.yy.parseError === 'function') {
19683
- this.parseError = sharedState.yy.parseError;
19684
- } else {
19685
- this.parseError = Object.getPrototypeOf(this).parseError;
19686
- }
19687
- function lex() {
19688
- var token;
19689
- token = lexer.lex() || EOF;
19690
- if (typeof token !== 'number') {
19691
- token = self.symbols_[token] || token;
19692
- }
19693
- return token;
19694
- }
19695
- var symbol, state, action, r, yyval = {}, p, len, newState, expected;
19696
- while (true) {
19697
- state = stack[stack.length - 1];
19698
- if (this.defaultActions[state]) {
19699
- action = this.defaultActions[state];
19700
- } else {
19701
- if (symbol === null || typeof symbol == 'undefined') {
19702
- symbol = lex();
19703
- }
19704
- action = table[state] && table[state][symbol];
19705
- }
19706
- if (typeof action === 'undefined' || !action.length || !action[0]) {
19707
- var errStr = '';
19708
- expected = [];
19709
- for (p in table[state]) {
19710
- if (this.terminals_[p] && p > TERROR) {
19711
- expected.push('\'' + this.terminals_[p] + '\'');
19712
- }
19713
- }
19714
- if (lexer.showPosition) {
19715
- errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
19716
- } else {
19717
- errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
19718
- }
19719
- this.parseError(errStr, {
19720
- text: lexer.match,
19721
- token: this.terminals_[symbol] || symbol,
19722
- line: lexer.yylineno,
19723
- loc: yyloc,
19724
- expected: expected
19725
- });
19726
- }
19727
- if (action[0] instanceof Array && action.length > 1) {
19728
- throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
19729
- }
19730
- switch (action[0]) {
19731
- case 1:
19732
- stack.push(symbol);
19733
- vstack.push(lexer.yytext);
19734
- lstack.push(lexer.yylloc);
19735
- stack.push(action[1]);
19736
- symbol = null;
19737
- {
19738
- yyleng = lexer.yyleng;
19739
- yytext = lexer.yytext;
19740
- yylineno = lexer.yylineno;
19741
- yyloc = lexer.yylloc;
19742
- }
19743
- break;
19744
- case 2:
19745
- len = this.productions_[action[1]][1];
19746
- yyval.$ = vstack[vstack.length - len];
19747
- yyval._$ = {
19748
- first_line: lstack[lstack.length - (len || 1)].first_line,
19749
- last_line: lstack[lstack.length - 1].last_line,
19750
- first_column: lstack[lstack.length - (len || 1)].first_column,
19751
- last_column: lstack[lstack.length - 1].last_column
19752
- };
19753
- if (ranges) {
19754
- yyval._$.range = [
19755
- lstack[lstack.length - (len || 1)].range[0],
19756
- lstack[lstack.length - 1].range[1]
19757
- ];
19758
- }
19759
- r = this.performAction.apply(yyval, [
19760
- yytext,
19761
- yyleng,
19762
- yylineno,
19763
- sharedState.yy,
19764
- action[1],
19765
- vstack,
19766
- lstack
19767
- ].concat(args));
19768
- if (typeof r !== 'undefined') {
19769
- return r;
19770
- }
19771
- if (len) {
19772
- stack = stack.slice(0, -1 * len * 2);
19773
- vstack = vstack.slice(0, -1 * len);
19774
- lstack = lstack.slice(0, -1 * len);
19775
- }
19776
- stack.push(this.productions_[action[1]][0]);
19777
- vstack.push(yyval.$);
19778
- lstack.push(yyval._$);
19779
- newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
19780
- stack.push(newState);
19781
- break;
19782
- case 3:
19783
- return true;
19784
- }
19785
- }
19786
- return true;
19787
- }
19788
- };
19789
- /* generated by jison-lex 0.3.4 */
19790
- var lexer = (function () {
19791
- var lexer = {
19792
- EOF: 1,
19793
- parseError: function parseError(str, hash) {
19794
- if (this.yy.parser) {
19795
- this.yy.parser.parseError(str, hash);
19796
- } else {
19797
- throw new Error(str);
19798
- }
19799
- },
19800
- // resets the lexer, sets new input
19801
- setInput: function (input, yy) {
19802
- this.yy = yy || this.yy || {};
19803
- this._input = input;
19804
- this._more = this._backtrack = this.done = false;
19805
- this.yylineno = this.yyleng = 0;
19806
- this.yytext = this.matched = this.match = '';
19807
- this.conditionStack = ['INITIAL'];
19808
- this.yylloc = {
19809
- first_line: 1,
19810
- first_column: 0,
19811
- last_line: 1,
19812
- last_column: 0
19813
- };
19814
- if (this.options.ranges) {
19815
- this.yylloc.range = [
19816
- 0,
19817
- 0
19818
- ];
19819
- }
19820
- this.offset = 0;
19821
- return this;
19822
- },
19823
- // consumes and returns one char from the input
19824
- input: function () {
19825
- var ch = this._input[0];
19826
- this.yytext += ch;
19827
- this.yyleng++;
19828
- this.offset++;
19829
- this.match += ch;
19830
- this.matched += ch;
19831
- var lines = ch.match(/(?:\r\n?|\n).*/g);
19832
- if (lines) {
19833
- this.yylineno++;
19834
- this.yylloc.last_line++;
19835
- } else {
19836
- this.yylloc.last_column++;
19837
- }
19838
- if (this.options.ranges) {
19839
- this.yylloc.range[1]++;
19840
- }
19841
- this._input = this._input.slice(1);
19842
- return ch;
19843
- },
19844
- // unshifts one char (or a string) into the input
19845
- unput: function (ch) {
19846
- var len = ch.length;
19847
- var lines = ch.split(/(?:\r\n?|\n)/g);
19848
- this._input = ch + this._input;
19849
- this.yytext = this.yytext.substr(0, this.yytext.length - len);
19850
- //this.yyleng -= len;
19851
- this.offset -= len;
19852
- var oldLines = this.match.split(/(?:\r\n?|\n)/g);
19853
- this.match = this.match.substr(0, this.match.length - 1);
19854
- this.matched = this.matched.substr(0, this.matched.length - 1);
19855
- if (lines.length - 1) {
19856
- this.yylineno -= lines.length - 1;
19857
- }
19858
- var r = this.yylloc.range;
19859
- this.yylloc = {
19860
- first_line: this.yylloc.first_line,
19861
- last_line: this.yylineno + 1,
19862
- first_column: this.yylloc.first_column,
19863
- last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
19864
- };
19865
- if (this.options.ranges) {
19866
- this.yylloc.range = [
19867
- r[0],
19868
- r[0] + this.yyleng - len
19869
- ];
19870
- }
19871
- this.yyleng = this.yytext.length;
19872
- return this;
19873
- },
19874
- // When called from action, caches matched text and appends it on next action
19875
- more: function () {
19876
- this._more = true;
19877
- return this;
19878
- },
19879
- // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
19880
- reject: function () {
19881
- if (this.options.backtrack_lexer) {
19882
- this._backtrack = true;
19883
- } else {
19884
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
19885
- text: '',
19886
- token: null,
19887
- line: this.yylineno
19888
- });
19889
- }
19890
- return this;
19891
- },
19892
- // retain first n characters of the match
19893
- less: function (n) {
19894
- this.unput(this.match.slice(n));
19895
- },
19896
- // displays already matched input, i.e. for error messages
19897
- pastInput: function () {
19898
- var past = this.matched.substr(0, this.matched.length - this.match.length);
19899
- return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, '');
19900
- },
19901
- // displays upcoming input, i.e. for error messages
19902
- upcomingInput: function () {
19903
- var next = this.match;
19904
- if (next.length < 20) {
19905
- next += this._input.substr(0, 20 - next.length);
19906
- }
19907
- return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, '');
19908
- },
19909
- // displays the character position where the lexing error occurred, i.e. for error messages
19910
- showPosition: function () {
19911
- var pre = this.pastInput();
19912
- var c = new Array(pre.length + 1).join('-');
19913
- return pre + this.upcomingInput() + '\n' + c + '^';
19914
- },
19915
- // test the lexed token: return FALSE when not a match, otherwise return token
19916
- test_match: function (match, indexed_rule) {
19917
- var token, lines, backup;
19918
- if (this.options.backtrack_lexer) {
19919
- // save context
19920
- backup = {
19921
- yylineno: this.yylineno,
19922
- yylloc: {
19923
- first_line: this.yylloc.first_line,
19924
- last_line: this.last_line,
19925
- first_column: this.yylloc.first_column,
19926
- last_column: this.yylloc.last_column
19927
- },
19928
- yytext: this.yytext,
19929
- match: this.match,
19930
- matches: this.matches,
19931
- matched: this.matched,
19932
- yyleng: this.yyleng,
19933
- offset: this.offset,
19934
- _more: this._more,
19935
- _input: this._input,
19936
- yy: this.yy,
19937
- conditionStack: this.conditionStack.slice(0),
19938
- done: this.done
19939
- };
19940
- if (this.options.ranges) {
19941
- backup.yylloc.range = this.yylloc.range.slice(0);
19942
- }
19943
- }
19944
- lines = match[0].match(/(?:\r\n?|\n).*/g);
19945
- if (lines) {
19946
- this.yylineno += lines.length;
19947
- }
19948
- this.yylloc = {
19949
- first_line: this.yylloc.last_line,
19950
- last_line: this.yylineno + 1,
19951
- first_column: this.yylloc.last_column,
19952
- last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
19953
- };
19954
- this.yytext += match[0];
19955
- this.match += match[0];
19956
- this.matches = match;
19957
- this.yyleng = this.yytext.length;
19958
- if (this.options.ranges) {
19959
- this.yylloc.range = [
19960
- this.offset,
19961
- this.offset += this.yyleng
19962
- ];
19963
- }
19964
- this._more = false;
19965
- this._backtrack = false;
19966
- this._input = this._input.slice(match[0].length);
19967
- this.matched += match[0];
19968
- token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
19969
- if (this.done && this._input) {
19970
- this.done = false;
19971
- }
19972
- if (token) {
19973
- return token;
19974
- } else if (this._backtrack) {
19975
- // recover context
19976
- for (var k in backup) {
19977
- this[k] = backup[k];
19978
- }
19979
- return false; // rule action called reject() implying the next rule should be tested instead.
19980
- }
19981
- return false;
19982
- },
19983
- // return next match in input
19984
- next: function () {
19985
- if (this.done) {
19986
- return this.EOF;
19987
- }
19988
- if (!this._input) {
19989
- this.done = true;
19990
- }
19991
- var token, match, tempMatch, index;
19992
- if (!this._more) {
19993
- this.yytext = '';
19994
- this.match = '';
19995
- }
19996
- var rules = this._currentRules();
19997
- for (var i = 0; i < rules.length; i++) {
19998
- tempMatch = this._input.match(this.rules[rules[i]]);
19999
- if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
20000
- match = tempMatch;
20001
- index = i;
20002
- if (this.options.backtrack_lexer) {
20003
- token = this.test_match(tempMatch, rules[i]);
20004
- if (token !== false) {
20005
- return token;
20006
- } else if (this._backtrack) {
20007
- match = false;
20008
- continue; // rule action called reject() implying a rule MISmatch.
20009
- } else {
20010
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
20011
- return false;
20012
- }
20013
- } else if (!this.options.flex) {
20014
- break;
20015
- }
20016
- }
20017
- }
20018
- if (match) {
20019
- token = this.test_match(match, rules[index]);
20020
- if (token !== false) {
20021
- return token;
20022
- }
20023
- // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
20024
- return false;
20025
- }
20026
- if (this._input === '') {
20027
- return this.EOF;
20028
- } else {
20029
- return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
20030
- text: '',
20031
- token: null,
20032
- line: this.yylineno
20033
- });
20034
- }
20035
- },
20036
- // return next match that has a token
20037
- lex: function lex() {
20038
- var r = this.next();
20039
- if (r) {
20040
- return r;
20041
- } else {
20042
- return this.lex();
20043
- }
20044
- },
20045
- // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
20046
- begin: function begin(condition) {
20047
- this.conditionStack.push(condition);
20048
- },
20049
- // pop the previously active lexer condition state off the condition stack
20050
- popState: function popState() {
20051
- var n = this.conditionStack.length - 1;
20052
- if (n > 0) {
20053
- return this.conditionStack.pop();
20054
- } else {
20055
- return this.conditionStack[0];
20056
- }
20057
- },
20058
- // produce the lexer rule set which is active for the currently active lexer condition state
20059
- _currentRules: function _currentRules() {
20060
- if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
20061
- return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
20062
- } else {
20063
- return this.conditions['INITIAL'].rules;
20064
- }
20065
- },
20066
- // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
20067
- topState: function topState(n) {
20068
- n = this.conditionStack.length - 1 - Math.abs(n || 0);
20069
- if (n >= 0) {
20070
- return this.conditionStack[n];
20071
- } else {
20072
- return 'INITIAL';
20073
- }
20074
- },
20075
- // alias for begin(condition)
20076
- pushState: function pushState(condition) {
20077
- this.begin(condition);
20078
- },
20079
- // return the number of states currently on the stack
20080
- stateStackSize: function stateStackSize() {
20081
- return this.conditionStack.length;
20082
- },
20083
- options: {},
20084
- performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
20085
- switch ($avoiding_name_collisions) {
20086
- case 0:
20087
- /* skip whitespace */
20088
- break;
20089
- case 1:
20090
- return 6;
20091
- case 2:
20092
- yy_.yytext = yy_.yytext.substr(1, yy_.yyleng - 2);
20093
- return 4;
20094
- case 3:
20095
- return 17;
20096
- case 4:
20097
- return 18;
20098
- case 5:
20099
- return 23;
20100
- case 6:
20101
- return 24;
20102
- case 7:
20103
- return 22;
20104
- case 8:
20105
- return 21;
20106
- case 9:
20107
- return 10;
20108
- case 10:
20109
- return 11;
20110
- case 11:
20111
- return 8;
20112
- case 12:
20113
- return 14;
20114
- case 13:
20115
- return 'INVALID';
20116
- }
20117
- },
20118
- rules: [
20119
- /^(?:\s+)/,
20120
- /^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,
20121
- /^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,
20122
- /^(?:\{)/,
20123
- /^(?:\})/,
20124
- /^(?:\[)/,
20125
- /^(?:\])/,
20126
- /^(?:,)/,
20127
- /^(?::)/,
20128
- /^(?:true\b)/,
20129
- /^(?:false\b)/,
20130
- /^(?:null\b)/,
20131
- /^(?:$)/,
20132
- /^(?:.)/
20133
- ],
20134
- conditions: {
20135
- 'INITIAL': {
20136
- 'rules': [
20137
- 0,
20138
- 1,
20139
- 2,
20140
- 3,
20141
- 4,
20142
- 5,
20143
- 6,
20144
- 7,
20145
- 8,
20146
- 9,
20147
- 10,
20148
- 11,
20149
- 12,
20150
- 13
20151
- ],
20152
- 'inclusive': true
20153
- }
20154
- }
20155
- };
20156
- return lexer;
20157
- }());
20158
- parser.lexer = lexer;
20159
- function Parser() {
20160
- this.yy = {};
20161
- }
20162
- Parser.prototype = parser;
20163
- parser.Parser = Parser;
20164
- return new Parser();
20165
- }());
20166
- if (typeof commonjsRequire !== 'undefined' && 'object' !== 'undefined') {
20167
- exports.parser = parser;
20168
- exports.Parser = parser.Parser;
20169
- exports.parse = function () {
20170
- return parser.parse.apply(parser, arguments);
20171
- };
20172
- }
20173
- } (jsonlint$1));
20174
19242
 
20175
- var jsonlint = /*@__PURE__*/getDefaultExportFromCjs(jsonlint$1);
19243
+ the parseError function receives a 'hash' object with these members for lexer and parser errors: {
19244
+ text: (matched text)
19245
+ token: (the produced terminal token, if any)
19246
+ line: (yylineno)
19247
+ }
19248
+ while parser (grammar) errors will also provide these members, i.e. parser errors deliver a superset of attributes: {
19249
+ loc: (yylloc)
19250
+ expected: (string describing the set of expected tokens)
19251
+ recoverable: (boolean: TRUE when the parser has a error recovery rule available for this particular error)
19252
+ }
19253
+ */
19254
+ var parser = (function () {
19255
+ var o = function (k, v, o, l) {
19256
+ for (o = o || {}, l = k.length; l--; o[k[l]] = v);
19257
+ return o;
19258
+ }, $V0 = [
19259
+ 1,
19260
+ 12
19261
+ ], $V1 = [
19262
+ 1,
19263
+ 13
19264
+ ], $V2 = [
19265
+ 1,
19266
+ 9
19267
+ ], $V3 = [
19268
+ 1,
19269
+ 10
19270
+ ], $V4 = [
19271
+ 1,
19272
+ 11
19273
+ ], $V5 = [
19274
+ 1,
19275
+ 14
19276
+ ], $V6 = [
19277
+ 1,
19278
+ 15
19279
+ ], $V7 = [
19280
+ 14,
19281
+ 18,
19282
+ 22,
19283
+ 24
19284
+ ], $V8 = [
19285
+ 18,
19286
+ 22
19287
+ ], $V9 = [
19288
+ 22,
19289
+ 24
19290
+ ];
19291
+ var parser = {
19292
+ trace: function trace() {
19293
+ },
19294
+ yy: {},
19295
+ symbols_: {
19296
+ 'error': 2,
19297
+ 'JSONString': 3,
19298
+ 'STRING': 4,
19299
+ 'JSONNumber': 5,
19300
+ 'NUMBER': 6,
19301
+ 'JSONNullLiteral': 7,
19302
+ 'NULL': 8,
19303
+ 'JSONBooleanLiteral': 9,
19304
+ 'TRUE': 10,
19305
+ 'FALSE': 11,
19306
+ 'JSONText': 12,
19307
+ 'JSONValue': 13,
19308
+ 'EOF': 14,
19309
+ 'JSONObject': 15,
19310
+ 'JSONArray': 16,
19311
+ '{': 17,
19312
+ '}': 18,
19313
+ 'JSONMemberList': 19,
19314
+ 'JSONMember': 20,
19315
+ ':': 21,
19316
+ ',': 22,
19317
+ '[': 23,
19318
+ ']': 24,
19319
+ 'JSONElementList': 25,
19320
+ '$accept': 0,
19321
+ '$end': 1
19322
+ },
19323
+ terminals_: {
19324
+ 2: 'error',
19325
+ 4: 'STRING',
19326
+ 6: 'NUMBER',
19327
+ 8: 'NULL',
19328
+ 10: 'TRUE',
19329
+ 11: 'FALSE',
19330
+ 14: 'EOF',
19331
+ 17: '{',
19332
+ 18: '}',
19333
+ 21: ':',
19334
+ 22: ',',
19335
+ 23: '[',
19336
+ 24: ']'
19337
+ },
19338
+ productions_: [
19339
+ 0,
19340
+ [
19341
+ 3,
19342
+ 1
19343
+ ],
19344
+ [
19345
+ 5,
19346
+ 1
19347
+ ],
19348
+ [
19349
+ 7,
19350
+ 1
19351
+ ],
19352
+ [
19353
+ 9,
19354
+ 1
19355
+ ],
19356
+ [
19357
+ 9,
19358
+ 1
19359
+ ],
19360
+ [
19361
+ 12,
19362
+ 2
19363
+ ],
19364
+ [
19365
+ 13,
19366
+ 1
19367
+ ],
19368
+ [
19369
+ 13,
19370
+ 1
19371
+ ],
19372
+ [
19373
+ 13,
19374
+ 1
19375
+ ],
19376
+ [
19377
+ 13,
19378
+ 1
19379
+ ],
19380
+ [
19381
+ 13,
19382
+ 1
19383
+ ],
19384
+ [
19385
+ 13,
19386
+ 1
19387
+ ],
19388
+ [
19389
+ 15,
19390
+ 2
19391
+ ],
19392
+ [
19393
+ 15,
19394
+ 3
19395
+ ],
19396
+ [
19397
+ 20,
19398
+ 3
19399
+ ],
19400
+ [
19401
+ 19,
19402
+ 1
19403
+ ],
19404
+ [
19405
+ 19,
19406
+ 3
19407
+ ],
19408
+ [
19409
+ 16,
19410
+ 2
19411
+ ],
19412
+ [
19413
+ 16,
19414
+ 3
19415
+ ],
19416
+ [
19417
+ 25,
19418
+ 1
19419
+ ],
19420
+ [
19421
+ 25,
19422
+ 3
19423
+ ]
19424
+ ],
19425
+ performAction: function anonymous(yytext, yyleng, yylineno, yy, yystate, $$, _$) {
19426
+ /* this == yyval */
19427
+ var $0 = $$.length - 1;
19428
+ switch (yystate) {
19429
+ case 1:
19430
+ // replace escaped characters with actual character
19431
+ this.$ = new String(yytext.replace(/\\(\\|")/g, '$' + '1').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\v/g, '\x0B').replace(/\\f/g, '\f').replace(/\\b/g, '\b'));
19432
+ this.$.__line__ = this._$.first_line;
19433
+ break;
19434
+ case 2:
19435
+ this.$ = new Number(yytext);
19436
+ this.$.__line__ = this._$.first_line;
19437
+ break;
19438
+ case 3:
19439
+ this.$ = null;
19440
+ break;
19441
+ case 4:
19442
+ this.$ = new Boolean(true);
19443
+ this.$.__line__ = this._$.first_line;
19444
+ break;
19445
+ case 5:
19446
+ this.$ = new Boolean(false);
19447
+ this.$.__line__ = this._$.first_line;
19448
+ break;
19449
+ case 6:
19450
+ return this.$ = $$[$0 - 1];
19451
+ case 13:
19452
+ this.$ = {};
19453
+ Object.defineProperty(this.$, '__line__', {
19454
+ value: this._$.first_line,
19455
+ enumerable: false
19456
+ });
19457
+ break;
19458
+ case 14:
19459
+ case 19:
19460
+ this.$ = $$[$0 - 1];
19461
+ Object.defineProperty(this.$, '__line__', {
19462
+ value: this._$.first_line,
19463
+ enumerable: false
19464
+ });
19465
+ break;
19466
+ case 15:
19467
+ this.$ = [
19468
+ $$[$0 - 2],
19469
+ $$[$0]
19470
+ ];
19471
+ break;
19472
+ case 16:
19473
+ this.$ = {};
19474
+ this.$[$$[$0][0]] = $$[$0][1];
19475
+ break;
19476
+ case 17:
19477
+ this.$ = $$[$0 - 2];
19478
+ $$[$0 - 2][$$[$0][0]] = $$[$0][1];
19479
+ break;
19480
+ case 18:
19481
+ this.$ = [];
19482
+ Object.defineProperty(this.$, '__line__', {
19483
+ value: this._$.first_line,
19484
+ enumerable: false
19485
+ });
19486
+ break;
19487
+ case 20:
19488
+ this.$ = [$$[$0]];
19489
+ break;
19490
+ case 21:
19491
+ this.$ = $$[$0 - 2];
19492
+ $$[$0 - 2].push($$[$0]);
19493
+ break;
19494
+ }
19495
+ },
19496
+ table: [
19497
+ {
19498
+ 3: 5,
19499
+ 4: $V0,
19500
+ 5: 6,
19501
+ 6: $V1,
19502
+ 7: 3,
19503
+ 8: $V2,
19504
+ 9: 4,
19505
+ 10: $V3,
19506
+ 11: $V4,
19507
+ 12: 1,
19508
+ 13: 2,
19509
+ 15: 7,
19510
+ 16: 8,
19511
+ 17: $V5,
19512
+ 23: $V6
19513
+ },
19514
+ { 1: [3] },
19515
+ {
19516
+ 14: [
19517
+ 1,
19518
+ 16
19519
+ ]
19520
+ },
19521
+ o($V7, [
19522
+ 2,
19523
+ 7
19524
+ ]),
19525
+ o($V7, [
19526
+ 2,
19527
+ 8
19528
+ ]),
19529
+ o($V7, [
19530
+ 2,
19531
+ 9
19532
+ ]),
19533
+ o($V7, [
19534
+ 2,
19535
+ 10
19536
+ ]),
19537
+ o($V7, [
19538
+ 2,
19539
+ 11
19540
+ ]),
19541
+ o($V7, [
19542
+ 2,
19543
+ 12
19544
+ ]),
19545
+ o($V7, [
19546
+ 2,
19547
+ 3
19548
+ ]),
19549
+ o($V7, [
19550
+ 2,
19551
+ 4
19552
+ ]),
19553
+ o($V7, [
19554
+ 2,
19555
+ 5
19556
+ ]),
19557
+ o([
19558
+ 14,
19559
+ 18,
19560
+ 21,
19561
+ 22,
19562
+ 24
19563
+ ], [
19564
+ 2,
19565
+ 1
19566
+ ]),
19567
+ o($V7, [
19568
+ 2,
19569
+ 2
19570
+ ]),
19571
+ {
19572
+ 3: 20,
19573
+ 4: $V0,
19574
+ 18: [
19575
+ 1,
19576
+ 17
19577
+ ],
19578
+ 19: 18,
19579
+ 20: 19
19580
+ },
19581
+ {
19582
+ 3: 5,
19583
+ 4: $V0,
19584
+ 5: 6,
19585
+ 6: $V1,
19586
+ 7: 3,
19587
+ 8: $V2,
19588
+ 9: 4,
19589
+ 10: $V3,
19590
+ 11: $V4,
19591
+ 13: 23,
19592
+ 15: 7,
19593
+ 16: 8,
19594
+ 17: $V5,
19595
+ 23: $V6,
19596
+ 24: [
19597
+ 1,
19598
+ 21
19599
+ ],
19600
+ 25: 22
19601
+ },
19602
+ {
19603
+ 1: [
19604
+ 2,
19605
+ 6
19606
+ ]
19607
+ },
19608
+ o($V7, [
19609
+ 2,
19610
+ 13
19611
+ ]),
19612
+ {
19613
+ 18: [
19614
+ 1,
19615
+ 24
19616
+ ],
19617
+ 22: [
19618
+ 1,
19619
+ 25
19620
+ ]
19621
+ },
19622
+ o($V8, [
19623
+ 2,
19624
+ 16
19625
+ ]),
19626
+ {
19627
+ 21: [
19628
+ 1,
19629
+ 26
19630
+ ]
19631
+ },
19632
+ o($V7, [
19633
+ 2,
19634
+ 18
19635
+ ]),
19636
+ {
19637
+ 22: [
19638
+ 1,
19639
+ 28
19640
+ ],
19641
+ 24: [
19642
+ 1,
19643
+ 27
19644
+ ]
19645
+ },
19646
+ o($V9, [
19647
+ 2,
19648
+ 20
19649
+ ]),
19650
+ o($V7, [
19651
+ 2,
19652
+ 14
19653
+ ]),
19654
+ {
19655
+ 3: 20,
19656
+ 4: $V0,
19657
+ 20: 29
19658
+ },
19659
+ {
19660
+ 3: 5,
19661
+ 4: $V0,
19662
+ 5: 6,
19663
+ 6: $V1,
19664
+ 7: 3,
19665
+ 8: $V2,
19666
+ 9: 4,
19667
+ 10: $V3,
19668
+ 11: $V4,
19669
+ 13: 30,
19670
+ 15: 7,
19671
+ 16: 8,
19672
+ 17: $V5,
19673
+ 23: $V6
19674
+ },
19675
+ o($V7, [
19676
+ 2,
19677
+ 19
19678
+ ]),
19679
+ {
19680
+ 3: 5,
19681
+ 4: $V0,
19682
+ 5: 6,
19683
+ 6: $V1,
19684
+ 7: 3,
19685
+ 8: $V2,
19686
+ 9: 4,
19687
+ 10: $V3,
19688
+ 11: $V4,
19689
+ 13: 31,
19690
+ 15: 7,
19691
+ 16: 8,
19692
+ 17: $V5,
19693
+ 23: $V6
19694
+ },
19695
+ o($V8, [
19696
+ 2,
19697
+ 17
19698
+ ]),
19699
+ o($V8, [
19700
+ 2,
19701
+ 15
19702
+ ]),
19703
+ o($V9, [
19704
+ 2,
19705
+ 21
19706
+ ])
19707
+ ],
19708
+ defaultActions: {
19709
+ 16: [
19710
+ 2,
19711
+ 6
19712
+ ]
19713
+ },
19714
+ parseError: function parseError(str, hash) {
19715
+ if (hash.recoverable) {
19716
+ this.trace(str);
19717
+ } else {
19718
+ throw new Error(str);
19719
+ }
19720
+ },
19721
+ parse: function parse(input) {
19722
+ var self = this, stack = [0], vstack = [null], lstack = [], table = this.table, yytext = '', yylineno = 0, yyleng = 0, TERROR = 2, EOF = 1;
19723
+ var args = lstack.slice.call(arguments, 1);
19724
+ var lexer = Object.create(this.lexer);
19725
+ var sharedState = { yy: {} };
19726
+ for (var k in this.yy) {
19727
+ if (Object.prototype.hasOwnProperty.call(this.yy, k)) {
19728
+ sharedState.yy[k] = this.yy[k];
19729
+ }
19730
+ }
19731
+ lexer.setInput(input, sharedState.yy);
19732
+ sharedState.yy.lexer = lexer;
19733
+ sharedState.yy.parser = this;
19734
+ if (typeof lexer.yylloc == 'undefined') {
19735
+ lexer.yylloc = {};
19736
+ }
19737
+ var yyloc = lexer.yylloc;
19738
+ lstack.push(yyloc);
19739
+ var ranges = lexer.options && lexer.options.ranges;
19740
+ if (typeof sharedState.yy.parseError === 'function') {
19741
+ this.parseError = sharedState.yy.parseError;
19742
+ } else {
19743
+ this.parseError = Object.getPrototypeOf(this).parseError;
19744
+ }
19745
+ function lex() {
19746
+ var token;
19747
+ token = lexer.lex() || EOF;
19748
+ if (typeof token !== 'number') {
19749
+ token = self.symbols_[token] || token;
19750
+ }
19751
+ return token;
19752
+ }
19753
+ var symbol, state, action, r, yyval = {}, p, len, newState, expected;
19754
+ while (true) {
19755
+ state = stack[stack.length - 1];
19756
+ if (this.defaultActions[state]) {
19757
+ action = this.defaultActions[state];
19758
+ } else {
19759
+ if (symbol === null || typeof symbol == 'undefined') {
19760
+ symbol = lex();
19761
+ }
19762
+ action = table[state] && table[state][symbol];
19763
+ }
19764
+ if (typeof action === 'undefined' || !action.length || !action[0]) {
19765
+ var errStr = '';
19766
+ expected = [];
19767
+ for (p in table[state]) {
19768
+ if (this.terminals_[p] && p > TERROR) {
19769
+ expected.push('\'' + this.terminals_[p] + '\'');
19770
+ }
19771
+ }
19772
+ if (lexer.showPosition) {
19773
+ errStr = 'Parse error on line ' + (yylineno + 1) + ':\n' + lexer.showPosition() + '\nExpecting ' + expected.join(', ') + ', got \'' + (this.terminals_[symbol] || symbol) + '\'';
19774
+ } else {
19775
+ errStr = 'Parse error on line ' + (yylineno + 1) + ': Unexpected ' + (symbol == EOF ? 'end of input' : '\'' + (this.terminals_[symbol] || symbol) + '\'');
19776
+ }
19777
+ this.parseError(errStr, {
19778
+ text: lexer.match,
19779
+ token: this.terminals_[symbol] || symbol,
19780
+ line: lexer.yylineno,
19781
+ loc: yyloc,
19782
+ expected: expected
19783
+ });
19784
+ }
19785
+ if (action[0] instanceof Array && action.length > 1) {
19786
+ throw new Error('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol);
19787
+ }
19788
+ switch (action[0]) {
19789
+ case 1:
19790
+ stack.push(symbol);
19791
+ vstack.push(lexer.yytext);
19792
+ lstack.push(lexer.yylloc);
19793
+ stack.push(action[1]);
19794
+ symbol = null;
19795
+ {
19796
+ yyleng = lexer.yyleng;
19797
+ yytext = lexer.yytext;
19798
+ yylineno = lexer.yylineno;
19799
+ yyloc = lexer.yylloc;
19800
+ }
19801
+ break;
19802
+ case 2:
19803
+ len = this.productions_[action[1]][1];
19804
+ yyval.$ = vstack[vstack.length - len];
19805
+ yyval._$ = {
19806
+ first_line: lstack[lstack.length - (len || 1)].first_line,
19807
+ last_line: lstack[lstack.length - 1].last_line,
19808
+ first_column: lstack[lstack.length - (len || 1)].first_column,
19809
+ last_column: lstack[lstack.length - 1].last_column
19810
+ };
19811
+ if (ranges) {
19812
+ yyval._$.range = [
19813
+ lstack[lstack.length - (len || 1)].range[0],
19814
+ lstack[lstack.length - 1].range[1]
19815
+ ];
19816
+ }
19817
+ r = this.performAction.apply(yyval, [
19818
+ yytext,
19819
+ yyleng,
19820
+ yylineno,
19821
+ sharedState.yy,
19822
+ action[1],
19823
+ vstack,
19824
+ lstack
19825
+ ].concat(args));
19826
+ if (typeof r !== 'undefined') {
19827
+ return r;
19828
+ }
19829
+ if (len) {
19830
+ stack = stack.slice(0, -1 * len * 2);
19831
+ vstack = vstack.slice(0, -1 * len);
19832
+ lstack = lstack.slice(0, -1 * len);
19833
+ }
19834
+ stack.push(this.productions_[action[1]][0]);
19835
+ vstack.push(yyval.$);
19836
+ lstack.push(yyval._$);
19837
+ newState = table[stack[stack.length - 2]][stack[stack.length - 1]];
19838
+ stack.push(newState);
19839
+ break;
19840
+ case 3:
19841
+ return true;
19842
+ }
19843
+ }
19844
+ return true;
19845
+ }
19846
+ };
19847
+ /* generated by jison-lex 0.3.4 */
19848
+ var lexer = (function () {
19849
+ var lexer = {
19850
+ EOF: 1,
19851
+ parseError: function parseError(str, hash) {
19852
+ if (this.yy.parser) {
19853
+ this.yy.parser.parseError(str, hash);
19854
+ } else {
19855
+ throw new Error(str);
19856
+ }
19857
+ },
19858
+ // resets the lexer, sets new input
19859
+ setInput: function (input, yy) {
19860
+ this.yy = yy || this.yy || {};
19861
+ this._input = input;
19862
+ this._more = this._backtrack = this.done = false;
19863
+ this.yylineno = this.yyleng = 0;
19864
+ this.yytext = this.matched = this.match = '';
19865
+ this.conditionStack = ['INITIAL'];
19866
+ this.yylloc = {
19867
+ first_line: 1,
19868
+ first_column: 0,
19869
+ last_line: 1,
19870
+ last_column: 0
19871
+ };
19872
+ if (this.options.ranges) {
19873
+ this.yylloc.range = [
19874
+ 0,
19875
+ 0
19876
+ ];
19877
+ }
19878
+ this.offset = 0;
19879
+ return this;
19880
+ },
19881
+ // consumes and returns one char from the input
19882
+ input: function () {
19883
+ var ch = this._input[0];
19884
+ this.yytext += ch;
19885
+ this.yyleng++;
19886
+ this.offset++;
19887
+ this.match += ch;
19888
+ this.matched += ch;
19889
+ var lines = ch.match(/(?:\r\n?|\n).*/g);
19890
+ if (lines) {
19891
+ this.yylineno++;
19892
+ this.yylloc.last_line++;
19893
+ } else {
19894
+ this.yylloc.last_column++;
19895
+ }
19896
+ if (this.options.ranges) {
19897
+ this.yylloc.range[1]++;
19898
+ }
19899
+ this._input = this._input.slice(1);
19900
+ return ch;
19901
+ },
19902
+ // unshifts one char (or a string) into the input
19903
+ unput: function (ch) {
19904
+ var len = ch.length;
19905
+ var lines = ch.split(/(?:\r\n?|\n)/g);
19906
+ this._input = ch + this._input;
19907
+ this.yytext = this.yytext.substr(0, this.yytext.length - len);
19908
+ //this.yyleng -= len;
19909
+ this.offset -= len;
19910
+ var oldLines = this.match.split(/(?:\r\n?|\n)/g);
19911
+ this.match = this.match.substr(0, this.match.length - 1);
19912
+ this.matched = this.matched.substr(0, this.matched.length - 1);
19913
+ if (lines.length - 1) {
19914
+ this.yylineno -= lines.length - 1;
19915
+ }
19916
+ var r = this.yylloc.range;
19917
+ this.yylloc = {
19918
+ first_line: this.yylloc.first_line,
19919
+ last_line: this.yylineno + 1,
19920
+ first_column: this.yylloc.first_column,
19921
+ last_column: lines ? (lines.length === oldLines.length ? this.yylloc.first_column : 0) + oldLines[oldLines.length - lines.length].length - lines[0].length : this.yylloc.first_column - len
19922
+ };
19923
+ if (this.options.ranges) {
19924
+ this.yylloc.range = [
19925
+ r[0],
19926
+ r[0] + this.yyleng - len
19927
+ ];
19928
+ }
19929
+ this.yyleng = this.yytext.length;
19930
+ return this;
19931
+ },
19932
+ // When called from action, caches matched text and appends it on next action
19933
+ more: function () {
19934
+ this._more = true;
19935
+ return this;
19936
+ },
19937
+ // When called from action, signals the lexer that this rule fails to match the input, so the next matching rule (regex) should be tested instead.
19938
+ reject: function () {
19939
+ if (this.options.backtrack_lexer) {
19940
+ this._backtrack = true;
19941
+ } else {
19942
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\n' + this.showPosition(), {
19943
+ text: '',
19944
+ token: null,
19945
+ line: this.yylineno
19946
+ });
19947
+ }
19948
+ return this;
19949
+ },
19950
+ // retain first n characters of the match
19951
+ less: function (n) {
19952
+ this.unput(this.match.slice(n));
19953
+ },
19954
+ // displays already matched input, i.e. for error messages
19955
+ pastInput: function () {
19956
+ var past = this.matched.substr(0, this.matched.length - this.match.length);
19957
+ return (past.length > 20 ? '...' : '') + past.substr(-20).replace(/\n/g, '');
19958
+ },
19959
+ // displays upcoming input, i.e. for error messages
19960
+ upcomingInput: function () {
19961
+ var next = this.match;
19962
+ if (next.length < 20) {
19963
+ next += this._input.substr(0, 20 - next.length);
19964
+ }
19965
+ return (next.substr(0, 20) + (next.length > 20 ? '...' : '')).replace(/\n/g, '');
19966
+ },
19967
+ // displays the character position where the lexing error occurred, i.e. for error messages
19968
+ showPosition: function () {
19969
+ var pre = this.pastInput();
19970
+ var c = new Array(pre.length + 1).join('-');
19971
+ return pre + this.upcomingInput() + '\n' + c + '^';
19972
+ },
19973
+ // test the lexed token: return FALSE when not a match, otherwise return token
19974
+ test_match: function (match, indexed_rule) {
19975
+ var token, lines, backup;
19976
+ if (this.options.backtrack_lexer) {
19977
+ // save context
19978
+ backup = {
19979
+ yylineno: this.yylineno,
19980
+ yylloc: {
19981
+ first_line: this.yylloc.first_line,
19982
+ last_line: this.last_line,
19983
+ first_column: this.yylloc.first_column,
19984
+ last_column: this.yylloc.last_column
19985
+ },
19986
+ yytext: this.yytext,
19987
+ match: this.match,
19988
+ matches: this.matches,
19989
+ matched: this.matched,
19990
+ yyleng: this.yyleng,
19991
+ offset: this.offset,
19992
+ _more: this._more,
19993
+ _input: this._input,
19994
+ yy: this.yy,
19995
+ conditionStack: this.conditionStack.slice(0),
19996
+ done: this.done
19997
+ };
19998
+ if (this.options.ranges) {
19999
+ backup.yylloc.range = this.yylloc.range.slice(0);
20000
+ }
20001
+ }
20002
+ lines = match[0].match(/(?:\r\n?|\n).*/g);
20003
+ if (lines) {
20004
+ this.yylineno += lines.length;
20005
+ }
20006
+ this.yylloc = {
20007
+ first_line: this.yylloc.last_line,
20008
+ last_line: this.yylineno + 1,
20009
+ first_column: this.yylloc.last_column,
20010
+ last_column: lines ? lines[lines.length - 1].length - lines[lines.length - 1].match(/\r?\n?/)[0].length : this.yylloc.last_column + match[0].length
20011
+ };
20012
+ this.yytext += match[0];
20013
+ this.match += match[0];
20014
+ this.matches = match;
20015
+ this.yyleng = this.yytext.length;
20016
+ if (this.options.ranges) {
20017
+ this.yylloc.range = [
20018
+ this.offset,
20019
+ this.offset += this.yyleng
20020
+ ];
20021
+ }
20022
+ this._more = false;
20023
+ this._backtrack = false;
20024
+ this._input = this._input.slice(match[0].length);
20025
+ this.matched += match[0];
20026
+ token = this.performAction.call(this, this.yy, this, indexed_rule, this.conditionStack[this.conditionStack.length - 1]);
20027
+ if (this.done && this._input) {
20028
+ this.done = false;
20029
+ }
20030
+ if (token) {
20031
+ return token;
20032
+ } else if (this._backtrack) {
20033
+ // recover context
20034
+ for (var k in backup) {
20035
+ this[k] = backup[k];
20036
+ }
20037
+ return false; // rule action called reject() implying the next rule should be tested instead.
20038
+ }
20039
+ return false;
20040
+ },
20041
+ // return next match in input
20042
+ next: function () {
20043
+ if (this.done) {
20044
+ return this.EOF;
20045
+ }
20046
+ if (!this._input) {
20047
+ this.done = true;
20048
+ }
20049
+ var token, match, tempMatch, index;
20050
+ if (!this._more) {
20051
+ this.yytext = '';
20052
+ this.match = '';
20053
+ }
20054
+ var rules = this._currentRules();
20055
+ for (var i = 0; i < rules.length; i++) {
20056
+ tempMatch = this._input.match(this.rules[rules[i]]);
20057
+ if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {
20058
+ match = tempMatch;
20059
+ index = i;
20060
+ if (this.options.backtrack_lexer) {
20061
+ token = this.test_match(tempMatch, rules[i]);
20062
+ if (token !== false) {
20063
+ return token;
20064
+ } else if (this._backtrack) {
20065
+ match = false;
20066
+ continue; // rule action called reject() implying a rule MISmatch.
20067
+ } else {
20068
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
20069
+ return false;
20070
+ }
20071
+ } else if (!this.options.flex) {
20072
+ break;
20073
+ }
20074
+ }
20075
+ }
20076
+ if (match) {
20077
+ token = this.test_match(match, rules[index]);
20078
+ if (token !== false) {
20079
+ return token;
20080
+ }
20081
+ // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)
20082
+ return false;
20083
+ }
20084
+ if (this._input === '') {
20085
+ return this.EOF;
20086
+ } else {
20087
+ return this.parseError('Lexical error on line ' + (this.yylineno + 1) + '. Unrecognized text.\n' + this.showPosition(), {
20088
+ text: '',
20089
+ token: null,
20090
+ line: this.yylineno
20091
+ });
20092
+ }
20093
+ },
20094
+ // return next match that has a token
20095
+ lex: function lex() {
20096
+ var r = this.next();
20097
+ if (r) {
20098
+ return r;
20099
+ } else {
20100
+ return this.lex();
20101
+ }
20102
+ },
20103
+ // activates a new lexer condition state (pushes the new lexer condition state onto the condition stack)
20104
+ begin: function begin(condition) {
20105
+ this.conditionStack.push(condition);
20106
+ },
20107
+ // pop the previously active lexer condition state off the condition stack
20108
+ popState: function popState() {
20109
+ var n = this.conditionStack.length - 1;
20110
+ if (n > 0) {
20111
+ return this.conditionStack.pop();
20112
+ } else {
20113
+ return this.conditionStack[0];
20114
+ }
20115
+ },
20116
+ // produce the lexer rule set which is active for the currently active lexer condition state
20117
+ _currentRules: function _currentRules() {
20118
+ if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {
20119
+ return this.conditions[this.conditionStack[this.conditionStack.length - 1]].rules;
20120
+ } else {
20121
+ return this.conditions['INITIAL'].rules;
20122
+ }
20123
+ },
20124
+ // return the currently active lexer condition state; when an index argument is provided it produces the N-th previous condition state, if available
20125
+ topState: function topState(n) {
20126
+ n = this.conditionStack.length - 1 - Math.abs(n || 0);
20127
+ if (n >= 0) {
20128
+ return this.conditionStack[n];
20129
+ } else {
20130
+ return 'INITIAL';
20131
+ }
20132
+ },
20133
+ // alias for begin(condition)
20134
+ pushState: function pushState(condition) {
20135
+ this.begin(condition);
20136
+ },
20137
+ // return the number of states currently on the stack
20138
+ stateStackSize: function stateStackSize() {
20139
+ return this.conditionStack.length;
20140
+ },
20141
+ options: {},
20142
+ performAction: function anonymous(yy, yy_, $avoiding_name_collisions, YY_START) {
20143
+ switch ($avoiding_name_collisions) {
20144
+ case 0:
20145
+ /* skip whitespace */
20146
+ break;
20147
+ case 1:
20148
+ return 6;
20149
+ case 2:
20150
+ yy_.yytext = yy_.yytext.substr(1, yy_.yyleng - 2);
20151
+ return 4;
20152
+ case 3:
20153
+ return 17;
20154
+ case 4:
20155
+ return 18;
20156
+ case 5:
20157
+ return 23;
20158
+ case 6:
20159
+ return 24;
20160
+ case 7:
20161
+ return 22;
20162
+ case 8:
20163
+ return 21;
20164
+ case 9:
20165
+ return 10;
20166
+ case 10:
20167
+ return 11;
20168
+ case 11:
20169
+ return 8;
20170
+ case 12:
20171
+ return 14;
20172
+ case 13:
20173
+ return 'INVALID';
20174
+ }
20175
+ },
20176
+ rules: [
20177
+ /^(?:\s+)/,
20178
+ /^(?:(-?([0-9]|[1-9][0-9]+))(\.[0-9]+)?([eE][-+]?[0-9]+)?\b)/,
20179
+ /^(?:"(?:\\[\\"bfnrt/]|\\u[a-fA-F0-9]{4}|[^\\\0-\x09\x0a-\x1f"])*")/,
20180
+ /^(?:\{)/,
20181
+ /^(?:\})/,
20182
+ /^(?:\[)/,
20183
+ /^(?:\])/,
20184
+ /^(?:,)/,
20185
+ /^(?::)/,
20186
+ /^(?:true\b)/,
20187
+ /^(?:false\b)/,
20188
+ /^(?:null\b)/,
20189
+ /^(?:$)/,
20190
+ /^(?:.)/
20191
+ ],
20192
+ conditions: {
20193
+ 'INITIAL': {
20194
+ 'rules': [
20195
+ 0,
20196
+ 1,
20197
+ 2,
20198
+ 3,
20199
+ 4,
20200
+ 5,
20201
+ 6,
20202
+ 7,
20203
+ 8,
20204
+ 9,
20205
+ 10,
20206
+ 11,
20207
+ 12,
20208
+ 13
20209
+ ],
20210
+ 'inclusive': true
20211
+ }
20212
+ }
20213
+ };
20214
+ return lexer;
20215
+ }());
20216
+ parser.lexer = lexer;
20217
+ function Parser() {
20218
+ this.yy = {};
20219
+ }
20220
+ Parser.prototype = parser;
20221
+ parser.Parser = Parser;
20222
+ return new Parser();
20223
+ }());
20224
+ if (typeof commonjsRequire !== 'undefined' && 'object' !== 'undefined') {
20225
+ exports.parser = parser;
20226
+ exports.Parser = parser.Parser;
20227
+ exports.parse = function () {
20228
+ return parser.parse.apply(parser, arguments);
20229
+ };
20230
+ }
20231
+ } (jsonlint$1));
20232
+ return jsonlint$1;
20233
+ }
20234
+
20235
+ var jsonlintExports = requireJsonlint();
20236
+ var jsonlint = /*@__PURE__*/getDefaultExportFromCjs(jsonlintExports);
20176
20237
 
20177
20238
  function readStyle(style) {
20178
20239
  if (style instanceof String || typeof style === 'string' || ArrayBuffer.isView(style)) {